1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      自主操作系統(tǒng)LMOS-00.04發(fā)布啦-創(chuàng)新互聯(lián)

      更多的信息請訪問我的CU博客

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

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

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


      標(biāo)題名稱:自主操作系統(tǒng)LMOS-00.04發(fā)布啦-創(chuàng)新互聯(lián)
      網(wǎng)站鏈接:http://www.ef60e0e.cn/article/gdopc.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        革吉县| 灵台县| 泗水县| 堆龙德庆县| 唐山市| 大埔县| 三河市| 丘北县| 肇庆市| 富平县| 玉环县| 呼玛县| 靖江市| 临湘市| 扶绥县| 弥渡县| 连州市| 香格里拉县| 阳西县| 冷水江市| 黄陵县| 萨嘎县| 南宫市| 佛教| 肃北| 报价| 道孚县| 兴海县| 阿坝| 墨竹工卡县| 从化市| 武川县| 施甸县| 东山县| 准格尔旗| 萝北县| 赤城县| 禄丰县| 兴和县| 邵阳市| 库车县|