<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          他開源了耗時(shí) 5 年寫的操作系統(tǒng)

          共 1829字,需瀏覽 4分鐘

           ·

          2021-07-16 16:30

          轉(zhuǎn)自:CSDN


          前幾天,Hacker News 上有一則帖子登上了 TOP 榜,引起了不少人的關(guān)注:我花了 5 年時(shí)間編寫自己的操作系統(tǒng)。

          “5年”、“自己的操作系統(tǒng)”,這兩點(diǎn)顯然是吸引人們點(diǎn)擊查看的主要原因:帖主憑一己之力,用 5 年時(shí)間寫出來的操作系統(tǒng)會(huì)是怎樣的?

          好奇心被勾起,于是便打開了這位帖主提供的 GitHub 地址:

          https://github.com/halfer53/winix

          剛看到這個(gè)操作系統(tǒng)的簡(jiǎn)述,許多人就感到意外了:帖主開發(fā)的 Winix 系統(tǒng)主要是受到了他在大學(xué)時(shí)所學(xué)習(xí)的 Minix1 操作系統(tǒng)的啟發(fā)——起初 Linus Torvalds 也是在 Minix 操作平臺(tái)上建立的 Linux。

          據(jù)了解,這位帖主 @halfer53 是一位來自新西蘭的開發(fā)者,而他在業(yè)余時(shí)間開發(fā)的 Winix用于 Waikato RISC 架構(gòu)微處理器WRAMP)的 UNIX 風(fēng)格操作系統(tǒng),也是一個(gè)兼顧可用性和性能的混合內(nèi)核。


          功能及演示

          Winix 雖然僅由 @halfer53 一人開發(fā),但系統(tǒng)功能意外地還挺齊全:

          • 內(nèi)核內(nèi)存管理:虛擬內(nèi)存、頁面映射

          • 進(jìn)程管理:內(nèi)核線程、進(jìn)程創(chuàng)建

          • 異??刂坪椭袛嗵幚沓绦?/span>

          • 支持大部分 POSIX api 的內(nèi)存文件系統(tǒng)

          • 支持多個(gè)管道和重定向的 Bourne shell

          • 用戶內(nèi)存管理:malloc() free()

          • ucontext.h 支持的用戶協(xié)程

          • Stacktrace (堆棧跟蹤)轉(zhuǎn)儲(chǔ),段錯(cuò)誤分析

          Winix 還支持許多命令(均已提供源碼)

          @halfer53 演示了前兩個(gè)命令的運(yùn)行結(jié)果:

          (玩貪吃蛇)

          (在 bash 中使用管道)


          如何運(yùn)行

          關(guān)于該系統(tǒng)要如何運(yùn)行,@halfer53 也給出了具體步驟:

          1、下載最新的 Rexsimulator:https://github.com/halfer53/rexsimulator/releases(注意:mono 需要在 Linux 環(huán)境下運(yùn)行)

          2、下載最新的 WINIX 二進(jìn)制文件 winix.srec:https://github.com/halfer53/winix/releases

          3、運(yùn)行 Rexsimulator.exe

          4、點(diǎn)擊 Quick Load,選擇 winix.srec

          然后就可以加載 Winix 了:


          編譯和調(diào)試

          • 如何編譯

          編譯之前,首先要在 Linux / WSL 中通過 sudo apt-get install xutils-dev gcc 命令行進(jìn)行安裝。

          克隆和編譯:

          git clone https://github.com/halfer53/winix.gitcd winixexport PATH=`pwd`/tools/bin:$PATHmake
          • 調(diào)試技巧

          調(diào)試 Makefile:與 linux kbuild 相似,Winix 支持 verbose 選項(xiàng),你可以通過將 verbose 設(shè)置為 1 來調(diào)試 Makefile。

          make V=1

          調(diào)試內(nèi)核:kprintf() 將是你的朋友;在 bash 中輸入 trace 以查找串口 2 中的所有系統(tǒng)調(diào)用。


          網(wǎng)友:前途可期

          @halfer53 開發(fā)的 Winix 也引起了眾多網(wǎng)友的熱議:

          評(píng)論 1:Winix 以 RISC 架構(gòu)為目標(biāo),那么隨著 RISC-V 的飛速發(fā)展,偏向 RISC 的操作系統(tǒng)肯定會(huì)為平臺(tái)提供優(yōu)勢(shì)和優(yōu)勢(shì),就像 Linux 在 x86-32 和 x86-64 開始發(fā)展時(shí)所具備的優(yōu)勢(shì)一樣。

          評(píng)論 2:我在 90 年代初做了同樣的事情,而我認(rèn)為這是我迄今為止從中學(xué)到最多的項(xiàng)目。雖然我從未發(fā)布過它,因?yàn)槲艺J(rèn)為它的時(shí)代已經(jīng)過去了,但它的確是一個(gè)有趣的練習(xí)。調(diào)試此類開發(fā)的早期階段非常困難,尤其是當(dāng)你在裸機(jī)上而不是在 VM 上進(jìn)行調(diào)試時(shí)。

          評(píng)論 3:哈哈,我喜歡你對(duì)這個(gè)項(xiàng)目的描述,聽起來比我的更有希望。

          參考鏈接:

          • https://github.com/halfer53/winix

          • https://news.ycombinator.com/item?id=27647079

          - END -

          ??「點(diǎn)擊關(guān)注」第一時(shí)間收到更新??

          瀏覽 76
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  新国产在线观看色情 | 片黄AA | 91视频你懂的 | 欧美性猛交ⅩXXX乱大交吃奶 | 激情在线小视频 |