自主操作系統(tǒng)LMOS-00.04發(fā)布啦-創(chuàng)新互聯(lián)

更多的信息請(qǐng)?jiān)L問(wèn)我的CU博客

創(chuàng)新互聯(lián)公司的客戶來(lái)自各行各業(yè),為了共同目標(biāo),我們?cè)诠ぷ魃厦芮信浜?,從?chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對(duì)我們的要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。專業(yè)領(lǐng)域包括網(wǎng)站制作、成都網(wǎng)站建設(shè)、電商網(wǎng)站開(kāi)發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā)。

    恍恍然三個(gè)月過(guò)去了,也三個(gè)月沒(méi)寫點(diǎn)什么了,這三個(gè)月我倒是寫了不少代碼,是時(shí)侯把lmos拿出來(lái)說(shuō)說(shuō)了,這將是lmos的第四個(gè)開(kāi)發(fā)版。今年的三個(gè)月已經(jīng)完了,又只有9個(gè)月了,時(shí)間緊迫的孩紙們要抓緊啦,其實(shí)開(kāi)發(fā)操作系統(tǒng)內(nèi)核就是要足夠的時(shí)間,時(shí)間越多越好,可往往不如我愿,時(shí)間總是不夠用。
    先來(lái)說(shuō)說(shuō)lmos第四個(gè)開(kāi)發(fā)版有什么新的特性吧。
    1、從這個(gè)版本開(kāi)始,lmos不在支持32位x86體系結(jié)構(gòu)了,而是支持更先進(jìn)那么一點(diǎn)點(diǎn)的64位x86體系結(jié)構(gòu)了,它的名字叫AMD64。
    2、lmos這個(gè)版本開(kāi)始擁有虛擬內(nèi)存了。這個(gè)說(shuō)起來(lái)很復(fù)雜,那就等會(huì)兒在說(shuō)。
    3、lmos從這個(gè)版本開(kāi)始,支持從U盤啟動(dòng)了,當(dāng)然有個(gè)前提,那就是你的計(jì)算機(jī)主板必須支持從U
盤這類USB介質(zhì)引導(dǎo)你的計(jì)算機(jī),這點(diǎn)給想要在物理機(jī)上驗(yàn)證和搗鼓lmos的朋友提供了方便。
    為什么lmos從32位突然之間就變成全64位的了,是因?yàn)槲议_(kāi)發(fā)虛擬內(nèi)存管理器在32位下受到了嚴(yán)重的局限性。后來(lái)一想以后反正要支持64位的,不如趁早,以免日后麻煩。其實(shí)現(xiàn)在物理機(jī)的內(nèi)存容量已經(jīng)超過(guò)4GB了。x86——64體系結(jié)構(gòu)是AMD公司最先定義出來(lái)的,這就是為什么叫AMD64的原因。實(shí)現(xiàn)AMD64體系結(jié)構(gòu)的時(shí)候,他們的工程師被要求這樣,要保證原有32位的os和app,能夠不經(jīng)過(guò)任何修改就能運(yùn)行在AMD64體系結(jié)構(gòu)上。64位的OS能夠執(zhí)行未經(jīng)修改的32位app。在這些保證下還要盡量改進(jìn)x86.你不得不驚嘆搞x86的工程師們有多偉大、有多痛苦,呵呵。其實(shí)AMD64體系結(jié)構(gòu)改得還是不錯(cuò)的。段 幾乎不起作用了,TSS的作用也改變了,中斷的棧也更加規(guī)范了,寄存器全64位了而且寄存器還多了不少,看來(lái)他們也知道x86的寄存器太少了,頁(yè)表也是4層了,支持4KB,2MB,1GB這幾種大小的頁(yè)面。LMOS是全64位的內(nèi)核,同時(shí)也要求應(yīng)用程序和驅(qū)動(dòng)也是64位的,LMOS不會(huì)兼容32位的程序。AMD64的寄存器雖然是64位的,但并不代表它可以訪問(wèn)0~0xffffffffffffffff之間所有的物理地址,事實(shí)上在當(dāng)前的AMD64體系結(jié)構(gòu)的CPU上只有48根地址線,甚至更少。那么它是怎么做的呢,它要求64位寄存器從48位開(kāi)始用符號(hào)位擴(kuò)展,也就是說(shuō)CPU只能訪問(wèn)這兩個(gè)區(qū)間的地址:0~0x00007fffffffffff和
0xffff800000000000~0xffffffffffffffff,如果你訪問(wèn)0x800000000000~0xffff800000000000之間的地址CPU會(huì)產(chǎn)生異常。但這一實(shí)現(xiàn)非常有利于日后的擴(kuò)展,我這有幅圖大家可以看看:
   自主操作系統(tǒng)LMOS-00.04發(fā)布啦
    這一改變佐證了LMOS的可移植性,因?yàn)長(zhǎng)MOS內(nèi)核有硬件抽象層的概念,我只花了幾個(gè)周的時(shí)間寫了個(gè)64位的硬件抽象層,然后把這個(gè)層和上層硬件無(wú)關(guān)的層鏈接起來(lái)就完事兒了。也就是說(shuō)我要把LMOS移植到ARM體系結(jié)構(gòu)上,只要寫個(gè)ARM的硬件抽象層外加少許改動(dòng)就行了,這種設(shè)計(jì)使lmos成為通用操作系統(tǒng)變成可能。
    在來(lái)看看這一版本中l(wèi)mos的虛擬內(nèi)存管理器。虛擬內(nèi)存在操作系統(tǒng)理論書(shū)籍中只花很少篇幅介紹了那么一點(diǎn)點(diǎn),實(shí)際中虛擬內(nèi)存可謂重中之重,可謂是操作系統(tǒng)內(nèi)核的內(nèi)核。先看看LMOS這一版本中虛擬內(nèi)存管理器的總框架圖,我畫的很簡(jiǎn)陋,大家看看吧:
   自主操作系統(tǒng)LMOS-00.04發(fā)布啦
    為什么虛擬內(nèi)存管理是內(nèi)核的內(nèi)核,我舉個(gè)例子吧。比如操作系統(tǒng)要描述一個(gè)線程,那么就必須要定義一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)表示一個(gè)線程,(說(shuō)句題外話,我現(xiàn)在才真正明白,C語(yǔ)言書(shū)前面那句話:“程序=數(shù)據(jù)結(jié)構(gòu)+算法”)好了回來(lái),這個(gè)表示線程的數(shù)據(jù)結(jié)構(gòu)只有在內(nèi)存中有了真正的實(shí)例,程序(內(nèi)核)才能工作。內(nèi)核為支持多線程那么這種數(shù)據(jù)結(jié)構(gòu)的實(shí)例就需要很多,比如可能有2000個(gè)線程你總不能靜態(tài)的定義2000個(gè)這種數(shù)據(jù)結(jié)構(gòu)的數(shù)組,這樣確實(shí)能夠工作,但是這樣使用內(nèi)存太低效了,太不智能了,因?yàn)橛锌赡苡袝r(shí)系統(tǒng)中只有兩三個(gè)線程,這時(shí)就浪費(fèi)了內(nèi)存,如果有時(shí)系統(tǒng)中超過(guò)2000個(gè)線程時(shí),這時(shí)你沒(méi)辦法了。類似這種數(shù)據(jù)結(jié)構(gòu)系統(tǒng)中是非常多的,通常只有幾10字節(jié)、幾100字節(jié)到1KB之間。既然靜態(tài)的不行,就只有用動(dòng)態(tài)的方法,那就是:要用的時(shí)侯就分配并初始化一個(gè)數(shù)據(jù)結(jié)構(gòu)實(shí)例,不要時(shí)就釋放這個(gè)實(shí)例所占用的內(nèi)存空間。LMOS這個(gè)版本重新實(shí)現(xiàn)了一個(gè)更為先進(jìn)的內(nèi)存池,來(lái)處理這種問(wèn)題,先說(shuō)了這種數(shù)據(jù)結(jié)構(gòu)只有10字節(jié)、幾100字節(jié)到1KB之間。你總不能一次就分配一個(gè)頁(yè)面,這叫浪費(fèi)。內(nèi)存池就是為解決這個(gè)問(wèn)題的。
    現(xiàn)代意義的操作系統(tǒng),好像都有保護(hù)、安全這種類概念,這些概念是怎么實(shí)現(xiàn)的呢,CPU提供了一些機(jī)制。把一部分關(guān)鍵指令規(guī)定為特權(quán)指令,把程序里出現(xiàn)的訪存地址規(guī)定為虛擬地址,要通過(guò)地址映射部件映射之后,才能訪問(wèn)真正的物理內(nèi)存。這兩套機(jī)制形成了編寫現(xiàn)代操作系統(tǒng)的基石。這使得每個(gè)進(jìn)程都有一個(gè)獨(dú)立的地址空間,而這個(gè)空間由于權(quán)力不同,可以被分為,用戶空間和內(nèi)核空間。這樣就形成了一個(gè)“保護(hù)”的概念。這些概念在lmos中是如何利用的呢,這有個(gè)圖:
   自主操作系統(tǒng)LMOS-00.04發(fā)布啦
    由上可知,x86——64下 只能訪問(wèn)兩個(gè)區(qū)間的地址,既然硬件都是這么實(shí)現(xiàn)的,而且這種實(shí)現(xiàn)有利于擴(kuò)展,那么我也沒(méi)什么好改的了,0~0x00007fffffffffff的虛擬地址區(qū)間為進(jìn)程的用戶空間,這個(gè)空間是每個(gè)進(jìn)程私有的,其它別的進(jìn)程不能訪問(wèn),而且這個(gè)區(qū)間有虛擬內(nèi)存管理器分配和映射物理內(nèi)存。0xffff800000000000~0xffffffffffffffff的虛擬地址區(qū)間為L(zhǎng)MOS內(nèi)核空間,這個(gè)空間是所有進(jìn)程共享的,在x86上好像只能這樣了沒(méi)有別的選擇,我試過(guò)很多種別的空間分配法都沒(méi)法成立。只能是上圖那樣的。
   LMOS這個(gè)版本支持U盤啟動(dòng)了,為了讓更多的人,能夠在物理機(jī)上搗鼓和驗(yàn)證LMOS內(nèi)核,我這次重寫了lmos內(nèi)核的引導(dǎo)程序,以便能從U盤啟動(dòng)lmos,大家也更能相信LMOS是個(gè)真正的玩意兒。U盤也不用很大,32MB就行啦,但是使用前請(qǐng)備份好你U盤中的數(shù)據(jù)。LMOS會(huì)刪除U盤上所有的數(shù)據(jù)。如果你想搗鼓一下的話,請(qǐng)?jiān)趌inux下插入U(xiǎn)盤,然后到/dev目錄下查看你U盤的設(shè)備文件名,一般可能是sd(x)這樣的名字,括號(hào)中的X是變化的,如果你有兩塊硬盤的話,你就會(huì)在/dev目錄下看到:sda、sdb、這樣的設(shè)備文件名,當(dāng)你在插入U(xiǎn)盤時(shí),就會(huì)看到sdc,找到且確認(rèn)是U盤的設(shè)備文件名后,在終端下切換到放lmos內(nèi)核文件的目錄下,執(zhí)行sudo make U_DSK=/dev/sdb,(我的linux下,我的U盤設(shè)備文件名是 sdb 所以才能這樣,如果你的不是或者不能確定是不是,千萬(wàn)別執(zhí)行上面那條命令),否則造成的數(shù)據(jù)丟失,本人一概不負(fù)責(zé)。
    虛擬機(jī)中安裝,我推薦大家使用這種方式,這樣既不需要另的一塊空U盤,也不需要大家的宿主操作系統(tǒng)是LINUX。大家首先確保你的宿主操作系統(tǒng)中安裝有Oracle VM VirtualBox 虛擬機(jī)軟件。如果沒(méi)有請(qǐng)大家自行下載相關(guān)操作系統(tǒng)版本的Oracle VM VirtualBox并安好。安裝好后,先新建個(gè)虛擬機(jī),然后下載(點(diǎn)此下載)本人提供的虛擬機(jī)硬盤鏡像。并掛載在虛擬機(jī)上,啟動(dòng)虛擬機(jī)即可運(yùn)行LMOS。這次我還提供了VMDK格式的硬盤鏡像。方便使用VM虛擬機(jī)的朋友。
    最后說(shuō)說(shuō)這次的shell,我提供了幾條極為簡(jiǎn)單的命令:
    r 重啟計(jì)算機(jī) 如下圖
   自主操作系統(tǒng)LMOS-00.04發(fā)布啦
    t 查看lmos內(nèi)部的進(jìn)程、線程數(shù) 如下圖
   自主操作系統(tǒng)LMOS-00.04發(fā)布啦
    m 查看計(jì)算機(jī)物理內(nèi)存的使用情況 如下圖
   自主操作系統(tǒng)LMOS-00.04發(fā)布啦
    p 查看計(jì)算機(jī)內(nèi)部的pci總線和設(shè)備 如下圖
   自主操作系統(tǒng)LMOS-00.04發(fā)布啦
   LMOS內(nèi)核鏡像包下載

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:自主操作系統(tǒng)LMOS-00.04發(fā)布啦-創(chuàng)新互聯(lián)
標(biāo)題URL:http://bm7419.com/article32/gdopc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站云服務(wù)器、網(wǎng)站設(shè)計(jì)公司、網(wǎng)站建設(shè)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營(yíng)