【TencentOS tiny】又有一個操作系統開源

来源:https://www.cnblogs.com/iot-dev/archive/2019/10/16/11688861.html
-Advertisement-
Play Games

新聞 2019年9月18日,騰訊宣佈將 `自主研發 輕量級`物聯網實時操作系統 TencentOS tiny 。相比市場上其它系統,騰訊TencentOS tiny在資源占用、設備成本、功耗管理以及安全穩定等層面極具競爭力。該系統的開源可大幅降低物聯網應用開發成本,提升開發效率,同時支持一鍵上雲,對 ...


新聞

2019年9月18日,騰訊宣佈將開源 自主研發輕量級物聯網實時操作系統TencentOS tiny。相比市場上其它系統,騰訊TencentOS tiny在資源占用、設備成本、功耗管理以及安全穩定等層面極具競爭力。該系統的開源可大幅降低物聯網應用開發成本,提升開發效率,同時支持一鍵上雲,對接雲端海量資源。

源碼已在github上開源:https://github.com/Tencent/TencentOS-tiny

正題

很榮幸,能親眼見證TencentOS tiny的開源,也很榮幸能在一個多月前內測使用過它~

不得不說,TencentOS tiny的內核確實是非常非常小巧,最少資源占用為RAM 0.6KB,ROM 1.8 KB。這是他們團隊自主研發的RTOS,源碼非常簡單易懂,源碼作者以非常清晰的邏輯實現了整個內核(還是非常佩服戴大神的,膜拜一下)。

瞭解一下TencentOS tiny的框架
TencentOS tiny的主體架構圖
TencentOS tiny主要由一個輕量級RTOS內核+多個物聯網組件構成,,從下到上主要包括:

CPU庫 :TencentOS tiny支持的CPU IP核架構,當前主要支持ARM Cortex M0/3/4/7,還有現在很火的RISC-V,當然,騰訊物聯網團隊肯定也會支持更多種類更多IP核與開發板。

驅動管理層 :包括BSP板級支持包,這些東西主要由MCU晶元廠家開發與維護,、HAL硬體抽象、Drivers設備驅動,這部分對於純粹嵌入式開發者來說還是很重要的,肯定會越來越完善的!

內核TencentOS tiny實時內核包括任務管理、實時調度、時間管理、中斷管理、記憶體管理、異常處理、軟體定時器、鏈表、消息隊列、信號量、互斥鎖、事件標誌等模塊,接下來我也將寫一系列TencentOS tiny內核源碼分析的文章,敬請期待吧!

IoT協議棧TencentOS tiny提供lwip、AT Adapter、SAL層,支持不同的網路硬體,如乙太網、串口WIFI、GPRS、NB-IoT、4G等通信模塊。在TCP/IP網路協議棧上提供常用的物聯網協議棧應用層,如COAP、MQTT,支撐終端業務快速接入騰訊雲;

安全框架TencentOS tiny為了確保物聯網終端數據傳輸安全以及設備認證安全,提供了比較完整的安全解決方案。安全框架提供的DTLSTLS安全協議加固了COAPMQTT的傳輸層,可確保物聯網終端在對接騰訊雲時實現安全認證和數據加密;另外針對低資源的終端硬體,安全框架還提供與騰訊雲IoTHub配套的密鑰認證方案,確保資源受限設備也能在一定程度上實現設備安全認證;物聯網安全是非常重要的,這些框架也是必須存在的。

組件框架TencentOS tiny提供文件系統、KV存儲、自組網、JS引擎、低功耗框架、設備框架、OTA、調試工具鏈等一系列組件,這部分我覺得還是很不錯的,期待ing;

開放API (規劃開發中):TencentOS tiny將在協議中間件和框架層上提供開放API函數,這樣子就能很方便使用中間組件的功能,我是最喜歡這種開發的,不造輪子,能直接使用。簡單來說這個API能快速對接騰訊雲,實現終端業務上雲的需求,最大程度減少終端物聯網產品開發周期,節省開發成本;

示例應用TencentOS tiny提供的示例代碼,模塊測試代碼等,方便用戶參考使用。

騰訊雲物聯網平臺(圖中最上層的部分):嚴格來說這部分不算TencentOS tiny的框架內容,這是接入平臺層了,騰訊雲的物聯網平臺都是提供多種語言的SDK包,當然在嵌入式設備上肯定使用C SDK的,不過總的來說都是很不錯的。

總的來說TencentOS tiny還是非常不錯的,該有的功能都有,可以考慮使用一下這個操作系統~

對於傑傑來說,作為嵌入式開發者,我是很看好物聯網的,也一直在往這條路上緩緩前行,在萬物互聯的時代,說不定真的能在賺錢的同時還能為世界做出一丟丟貢獻(如果沒有那就算了)。

據我所知,TencentOS tiny後續也將推出基於事件驅動模型的調度,用於某些單片機上不支持基於上下文調度的多任務。

順便再透露一下,我將接下來會寫一系列TencentOS tiny內核分析的文章,全網首發哦!ps:得到源碼作者的親自指點,絕對乾貨!!!

喜歡就關註我吧!

歡迎關註我公眾號

圖文教程:

簡單上手:

深度源碼分析:

配套常式:

視頻教程:

相關PPT資料:

喜歡就關註我吧!

歡迎關註我公眾號

相關代碼可以在公眾號後臺獲取。
更多資料歡迎關註“物聯網IoT開發”公眾號!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 引言 大家在裸機編程中很可能經常用到 這種變數,用來標誌一下某個事件的發生,然後在迴圈中判斷這些標誌是否發生,如果是等待多個事件的話,還可能會 這樣子做判斷。當然,如果聰明一點的同學就會拿 的`某些位 A`事件,第二位表示 事件,當這兩個事件都發生的時候,就判斷 的值是多少,從而判斷出哪個事件發生了 ...
  • 互斥鎖 互斥鎖又稱互斥互斥鎖,是一種特殊的信號量,它和信號量不同的是,它具有 等特性,在操作系統中常用於對臨界資源的 處理。在任意時刻互斥鎖的狀態只有兩種, ,當互斥鎖被任務持有時,該互斥鎖處於閉鎖狀態,當該任務釋放互斥鎖時,該互斥鎖處於開鎖狀態。 一個任務持有互斥鎖就表示它擁有互斥鎖的所有權,只有 ...
  • 信號量 信號量( )在操作系統中是一種實現系統中任務與任務、任務與中斷間同步或者臨界資源互斥保護的機制。在多任務系統中,各任務之間常需要同步或互斥,信號量就可以為用戶提供這方面的支持。 抽象來說,信號量是一個非負整數,每當信號量被獲取( )時,該整數會減一,當該整數的值為 時,表示信號量處於無效狀態 ...
  • 消息隊列 在前一篇文章中 "【TencentOS tiny學習】源碼分析(3)——隊列" 我們描述了TencentOS tiny的隊列實現,同時也點出了TencentOS tiny的隊列是依賴於消息隊列的,那麼我們今天來看看消息隊列的實現。 其實消息隊列是TencentOS tiny的一個 基礎組件 ...
  • 隊列基本概念 隊列是一種常用於任務間通信的數據結構,隊列可以在 傳遞消息,實現了任務接收來自其他任務或中斷的不固定長度的消息,任務能夠從隊列裡面讀取消息,當隊列中的消息是空時,讀取消息的任務將被阻塞,用戶還可以指定任務等待消息的時間 ,在這段時間中,如果隊列為空,該任務將 狀態以等待隊列數據有效。當 ...
  • 溫馨提示:本文不描述與浮點相關的寄存器的內容,如需瞭解自行查閱(畢竟我自己也不懂) 調度器的基本概念 中提供的任務調度器是基於優先順序的全搶占式調度,在系統運行過程中,當有比當前任務優先順序更高的任務就緒時,當前任務將立刻被 ,高優先順序任務 處理器運行。 內核中也允許創建相同優先順序的任務。相同優先順序的任 ...
  • 任務的基本概念 從系統的角度看,任務是競爭系統資源的最小運行單元。TencentOS tiny是一個支持多任務的操作系統,任務可以使用或等待CPU、使用記憶體空間等系統資源,並獨立於其它任務運行,理論上任何數量的任務都可以共用同一個優先順序,這樣子處於就緒態的多個相同優先順序任務將會以時間片切換的方式共用 ...
  • 移植前的準備工作 1. 獲取STM32的裸機工程模板 STM32的裸機工程模板直接使用野火STM32開發板配套的固件庫常式即可。可以從我 上獲取 "https://github.com/jiejieTop/TencentOS Demo" 下載TencentOS tiny 源碼 TencentOS t ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...