女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微內(nèi)核的差異性及開發(fā)工作

嵌入式IoT ? 來源:搜狐網(wǎng) ? 作者:搜狐網(wǎng) ? 2020-09-01 10:23 ? 次閱讀

1.本文目的

隨著RT-Thread Smart微內(nèi)核發(fā)布會(huì)的臨近,對(duì)于開源社區(qū)以及國產(chǎn)RTOS比較關(guān)注的人或許早有耳聞。RT-Thread要發(fā)布微內(nèi)核操作系統(tǒng)了。從去年的華為提出鴻蒙微內(nèi)核到目前為止,都未曾真正見到一個(gè)微內(nèi)核系統(tǒng)面向大眾。從真正的開發(fā)者角度來看,或許真正的關(guān)注點(diǎn)不在于多少先進(jìn)技術(shù)的提出,而實(shí)際的關(guān)注點(diǎn)在于是否好用,是否能夠快速高效的開發(fā)出穩(wěn)定的產(chǎn)品,是否用上了之后能夠減少自己的工作量。本文主要從微內(nèi)核開發(fā)的思維角度出發(fā),談一談RT-Thread Smart以及我個(gè)人進(jìn)行微內(nèi)核開發(fā)工作的所思所想。

2.微內(nèi)核的差異性

內(nèi)核是操作系統(tǒng)中管理資源的核心部分,它充當(dāng)著計(jì)算機(jī)程序與硬件之間橋梁。

其實(shí)在程序運(yùn)行時(shí),用戶態(tài)程序想要訪問外設(shè),必須要通過內(nèi)核進(jìn)行資源調(diào)度,然后進(jìn)行統(tǒng)一的管理。現(xiàn)在許多CPU中,最基本的都會(huì)有用戶模式和超級(jí)管理員模式兩種。用戶程序首先必須要有可以自己管理的一段內(nèi)存空間,進(jìn)行業(yè)務(wù)邏輯的設(shè)計(jì),如果要使用到共享資源或者硬件資源時(shí),那就需要通知內(nèi)核,此時(shí)內(nèi)核進(jìn)行調(diào)度和分配,在合適的時(shí)機(jī)給申請(qǐng)資源的應(yīng)用程序。如果訪問特殊的寄存器,這時(shí)候,還需要切換CPU的模式,從而訪問超級(jí)管理員才能使用的寄存器。

這種權(quán)限的控制核心都是由內(nèi)核進(jìn)行,用戶態(tài)程序申請(qǐng)?jiān)L問內(nèi)核資源的時(shí)候,通常是通過軟件中斷的形式實(shí)現(xiàn),這會(huì)導(dǎo)致硬件的中斷處理程序?qū)⒖刂茩?quán)轉(zhuǎn)移到作為操作系統(tǒng)一部分的適當(dāng)?shù)闹袛嗵幚沓绦蛏希谶M(jìn)程中將模式位轉(zhuǎn)換為內(nèi)核模式。中斷處理程序檢查生成了哪個(gè)中斷,如果合適,檢查附加參數(shù)(通常通過寄存器傳遞),然后調(diào)用適當(dāng)?shù)膬?nèi)核服務(wù)例程來處理系統(tǒng)調(diào)用請(qǐng)求的服務(wù)。

此時(shí)如果用戶程序訪問了非法指令,或者訪問了本不該自己訪問的東西,也會(huì)產(chǎn)生軟件中斷,從而將事件交給內(nèi)核處理,內(nèi)核進(jìn)行保存錯(cuò)誤日志,并負(fù)責(zé)清理垃圾。

上述也僅僅介紹了內(nèi)核態(tài)與用戶態(tài)的基本工作流程,微內(nèi)核基本也是沿用了這套思想,但是微內(nèi)核體現(xiàn)的正是這個(gè)微的特定。為了體現(xiàn)微這個(gè)特點(diǎn),微內(nèi)核一般只會(huì)提供最少的進(jìn)程和內(nèi)存管理的服務(wù),客戶端程序與應(yīng)用程序只在用戶地址空間之間進(jìn)行消息的傳遞,這樣并不會(huì)影響內(nèi)核的功能,但是這樣的方式會(huì)大大增加消息傳遞的負(fù)載,也就是說,大量的消息傳遞也會(huì)降低系統(tǒng)的運(yùn)行性能。但這些犧牲帶來的好處也是顯而易見的,對(duì)開發(fā)者來說非常的方便,不用過分關(guān)注內(nèi)核的穩(wěn)定性問題,只需要好好處理上層的業(yè)務(wù)邏輯即可。

3.微內(nèi)核該怎么寫應(yīng)用程序?

微內(nèi)核的應(yīng)用程序部分一般不需要過度的去關(guān)注內(nèi)核部分的代碼,就像我們進(jìn)行Linux開發(fā)應(yīng)用程序一樣。首先應(yīng)該充分的相信微內(nèi)核內(nèi)核部分的可靠性,如果一出問題就總是懷疑內(nèi)核是不是有BUG那就不太適合進(jìn)行微內(nèi)核的開發(fā)工作。我們?cè)陂_發(fā)Linux的時(shí)候,遇到問題,總不會(huì)把Linux的整個(gè)代碼再review一遍,這樣是費(fèi)力不討好。

所以進(jìn)行微內(nèi)核的開發(fā)工作,首先需要知道微內(nèi)核提供的編程規(guī)范,以及所提供的API函數(shù)進(jìn)行程序設(shè)計(jì)。其實(shí)在C語言中,也是會(huì)提供一些標(biāo)準(zhǔn)庫函數(shù)的,比如RT-Thread Smart中提供的musl庫等等。當(dāng)然還有不同微內(nèi)核系統(tǒng)中所提供的專用的API,比如對(duì)RT-Thread比較熟悉的人,在上手RT-Thread Smart時(shí),也能夠找到很多之前用到的函數(shù)API的接口的影子。

而APP的編譯是獨(dú)立的,只需要交叉編譯工具鏈,將程序鏈接到指定的入口地址,無論是通過makefile還是scons或者CMake都做不做限制,編譯出來的程序,微內(nèi)核通過加載器加載到內(nèi)存中去執(zhí)行程序。

另外編寫應(yīng)用程序需要注意的是不同線程之間的消息傳遞機(jī)制,以及線程與進(jìn)程之間的關(guān)系。這個(gè)是非常值得關(guān)注和思考的問題。

4.微內(nèi)核的效率和實(shí)時(shí)性怎么樣?

我覺得微內(nèi)核的實(shí)時(shí)性是弱于RTOS強(qiáng)于LInux的,之所有有這樣的結(jié)論,是因?yàn)槲?nèi)核確實(shí)會(huì)存在大量消息傳遞機(jī)制傳遞消息的問題。對(duì)于直接進(jìn)行處理事件的RTOS來說,這樣的方式必然會(huì)降低系統(tǒng)響應(yīng)的速度。如果業(yè)務(wù)邏輯簡(jiǎn)單倒是看不到很明顯的差異,但是一旦涉及到任務(wù)量大,應(yīng)用程序很多的情況時(shí),內(nèi)核的負(fù)載太大了。

例如在用戶態(tài)進(jìn)行網(wǎng)絡(luò)協(xié)議棧的處理上來說,如果說驅(qū)動(dòng)在內(nèi)核層,網(wǎng)絡(luò)協(xié)議棧在用戶層,數(shù)據(jù)將直接從內(nèi)核驅(qū)動(dòng)過來,然后通過消息傳遞機(jī)制比如共享內(nèi)存?zhèn)鬟f到用戶態(tài),用戶態(tài)接收到通知,然后再拷貝數(shù)據(jù),處理數(shù)據(jù),然后通過系統(tǒng)調(diào)用,又將處理好的數(shù)據(jù)傳遞到內(nèi)核層。這個(gè)過程涉及到太長(zhǎng)的鏈路,一定會(huì)影響系統(tǒng)的性能。但是如果驅(qū)動(dòng)在應(yīng)用層,那也需要大量的消息傳遞機(jī)制來確保兩個(gè)進(jìn)程間的通信的迅速以及準(zhǔn)確。總體說起來,對(duì)于目前高性能的處理器來說,性能一般不是太大的瓶頸,架構(gòu)的穩(wěn)定與系統(tǒng)復(fù)雜度也是需要好好均衡的,魚與熊掌不可得兼,舍魚而取熊掌者也,至于其中的利弊,個(gè)人來做評(píng)判與選擇。

5.如何客觀的評(píng)價(jià)RT-Thread Smart混合微內(nèi)核?

從我的角度去看這個(gè)東西,或許是用瑕不掩瑜這個(gè)詞語概況比較恰當(dāng)一點(diǎn)。凡事在開始階段,都是在摸著石頭過河,沒有人會(huì)知道這個(gè)東西的真正面目是什么,也沒有人徹底的能夠描繪出它的全貌,所以開發(fā)的過程一步一步的進(jìn)行的是挖坑再填坑的過程,剛開始沒有輪子,然后慢慢有了一個(gè)輪子形狀的東西,能轉(zhuǎn)但是很奇怪,因?yàn)椴⒉环秸H缓舐目吵梢粋€(gè)方形的,之后慢慢磨,終于變成圓形的了,這時(shí)候就走的很順暢了。我說的上述過程大概就是我做了一點(diǎn)微內(nèi)核的開發(fā)工作的心路歷程吧。

真正的做下來,沒有什么嘗試是毫無意義的。造不如買,買不如租這種思維模式,收益的也只是眼前,從長(zhǎng)遠(yuǎn)的大趨勢(shì)上來看,唯有走在最前面的人,才能看得到最好的風(fēng)景。這次RT-Thread Smart 混合微內(nèi)核的發(fā)布,具體能夠有哪些東西值得關(guān)注,我后面再慢慢細(xì)說。我不敢說這個(gè)是一個(gè)極其好用的東西,但是我覺得至少走出了第一步,這也是一個(gè)突破。更多的功能完善,更加穩(wěn)定的實(shí)現(xiàn)細(xì)節(jié)可能需要的是更多的努力吧,還有需要更多人的智慧,才能不斷推進(jìn)技術(shù)走向更高的高峰。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴

原文標(biāo)題:微內(nèi)核進(jìn)行開發(fā)工作究竟是怎樣的感受?

文章出處:【微信號(hào):Embeded_IoT,微信公眾號(hào):嵌入式IoT】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    晶體管之間的差異

    晶體管之間的差異性:就三極管,mos管和可控硅之間的差別和相同點(diǎn)的相關(guān)概念有點(diǎn)模糊,請(qǐng)各位大俠指點(diǎn)!!!
    發(fā)表于 06-07 23:27

    SKYLAB:BLE藍(lán)牙模塊SKB360與SKB362相比差異性

    智能照明方案。為了方便工程師的BLE4.0模塊選型,本篇小編就來具體為大家介紹一下BLE4.0模塊SKB360和SKB362的差異性。SKB360和SKB362的不同點(diǎn):硬件區(qū)別:SoC類型不一樣
    發(fā)表于 06-07 18:08

    線性穩(wěn)壓器和開關(guān)式穩(wěn)壓器的特性有什么差異性

    線性穩(wěn)壓器和開關(guān)式穩(wěn)壓器的特性有什么差異性?DCDC開關(guān)式穩(wěn)壓器有哪幾種類型?
    發(fā)表于 03-08 07:59

    基于 stm32 的應(yīng)用實(shí)例 —— USART 串口通訊(stm32 與主機(jī)通訊)精選資料分享

    目標(biāo)一、基于寄存器、固件庫編程的差異性二、參考資料文章說明一、基于寄存器、固件庫編程的差異性基于寄存器與基于固件庫的 stm32 LED 流水燈例子的編程方式有什么差異使用固件庫,目前比較多的例程
    發(fā)表于 08-03 06:03

    模擬電路設(shè)計(jì)使HDTV體現(xiàn)出差異性

    模擬電路設(shè)計(jì)使HDTV體現(xiàn)出差異性 隨著高清電視(HDTV)顯示器技術(shù)的成熟,模擬視頻和音頻處理的質(zhì)量將最終使電視機(jī)之間產(chǎn)生差異性。HDTV中的數(shù)字處理(包括圖像擴(kuò)縮、
    發(fā)表于 10-29 15:54 ?699次閱讀
    模擬電路設(shè)計(jì)使HDTV體現(xiàn)出<b class='flag-5'>差異性</b>

    RS274D與RS274X 的差異性比較

    RS274D與RS274X 的差異性比較 GERBER FILE 目前常見到的有二種格式 RS-274D 及 RS-274X . 在CAM軟件中,這二種格式都有支援,這二種格式的最大分別,在于RS-274X 內(nèi)
    發(fā)表于 03-09 11:52 ?7734次閱讀
    RS274D與RS274X 的<b class='flag-5'>差異性</b>比較

    考慮季節(jié)差異性的不同時(shí)間尺度含風(fēng)電系統(tǒng)旋轉(zhuǎn)備用優(yōu)化研究

    考慮季節(jié)差異性的不同時(shí)間尺度含風(fēng)電系統(tǒng)旋轉(zhuǎn)備用優(yōu)化研究_溫步瀛
    發(fā)表于 01-04 16:32 ?0次下載

    測(cè)試軟件及測(cè)試終端差異性研究分析

    ,Probe軟件在不同終端下的測(cè)試指標(biāo)相差不大;CDS在不同終端條件下的測(cè)試結(jié)果差異性很大,對(duì)測(cè)試終端要求較高。ATU和Probe相比較,相同條件下ATU測(cè)試指標(biāo)差于Probe測(cè)試指標(biāo)。
    的頭像 發(fā)表于 02-01 09:22 ?7425次閱讀
    測(cè)試軟件及測(cè)試終端<b class='flag-5'>差異性</b>研究分析

    SMR和ZNS兩種技術(shù)差異,你不能不知道

    分析對(duì)比一下SMR和ZNS這兩種技術(shù)的差異性
    的頭像 發(fā)表于 06-25 10:32 ?5355次閱讀
    SMR和ZNS兩種技術(shù)<b class='flag-5'>差異</b>,你不能不知道

    電流法的測(cè)試結(jié)果差異性影響分析

    原文標(biāo)題:【賽盛技術(shù)案例分享】測(cè)試布置與分布參數(shù)對(duì)輻射發(fā)射及電流法的測(cè)試結(jié)果差異性影響分析 文章出處:【信公眾號(hào):深圳市賽盛技術(shù)有限公司】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。 責(zé)任編輯:haq
    的頭像 發(fā)表于 09-28 15:17 ?2282次閱讀
    電流法的測(cè)試結(jié)果<b class='flag-5'>差異性</b>影響分析

    工業(yè)以太網(wǎng)交換機(jī)存在有哪些差異性

    通過之前對(duì)工業(yè)交換機(jī)的認(rèn)知,我們了解到工業(yè)以太網(wǎng)交換機(jī)采用存儲(chǔ)轉(zhuǎn)換的交換方式,同時(shí)提高了以太網(wǎng)通信速度,并且內(nèi)置智能報(bào)警設(shè)計(jì)監(jiān)控網(wǎng)絡(luò)運(yùn)行狀況,使得在惡劣危險(xiǎn)的工業(yè)環(huán)境中保證以太網(wǎng)可靠穩(wěn)定的運(yùn)行。那么,工業(yè)以太網(wǎng)交換機(jī)有哪些差異性呢?
    的頭像 發(fā)表于 10-23 14:47 ?2494次閱讀

    閑談工業(yè)以太網(wǎng)交換機(jī)和家用交換機(jī)的差異性

    通過之前對(duì)工業(yè)交換機(jī)的認(rèn)知,我們了解到工業(yè)以太網(wǎng)交換機(jī)采用存儲(chǔ)轉(zhuǎn)換的交換方式,同時(shí)提高了以太網(wǎng)通信速度,并且內(nèi)置智能報(bào)警設(shè)計(jì)監(jiān)控網(wǎng)絡(luò)運(yùn)行狀況,使得在惡劣危險(xiǎn)的工業(yè)環(huán)境中保證以太網(wǎng)可靠穩(wěn)定的運(yùn)行。那么,工業(yè)以太網(wǎng)交換機(jī)有哪些差異性呢》接下來我們就跟隨飛暢科技的小編一起來看看吧!
    發(fā)表于 10-27 11:37 ?1786次閱讀

    基于差異性累積與子空間傳播的法向估計(jì)算法

    以分割為基礎(chǔ)的法向估計(jì)算法主要是通過法向的差異來構(gòu)造點(diǎn)之間的相似性。針對(duì)由于距離屬性的缺失使這類算法對(duì)于緊鄰面及一些光滑曲面的估計(jì)結(jié)果并不理想的問題,提出基于差異性累積與子空間傳播的法向估計(jì)
    發(fā)表于 04-21 11:13 ?1次下載
    基于<b class='flag-5'>差異性</b>累積與子空間傳播的法向估計(jì)算法

    基于差異性代碼克隆的代碼塊補(bǔ)全提示方法

    在軟件編程中,通過代碼補(bǔ)全提示可以提高編碼效率,但目前缺乏有效的工具和手段從規(guī)模差異較大的相似代碼中找到合適的候選代碼。針對(duì)該問題,基于差異性代碼克隆技術(shù)設(shè)計(jì)一種新的代碼塊補(bǔ)全提示方法。通過改進(jìn)
    發(fā)表于 05-28 11:22 ?4次下載

    可編程IC的類型、主要功能、相似性和差異性

    電子發(fā)燒友網(wǎng)站提供《可編程IC的類型、主要功能、相似性和差異性.pdf》資料免費(fèi)下載
    發(fā)表于 01-03 14:08 ?0次下載
    可編程IC的類型、主要功能、相似性和<b class='flag-5'>差異性</b>