OSNEWS中文版重點推薦:業餘作業系統開發第一部分:你準備好了嗎?

2020-12-05 開源中國

你目前正在閱讀的的文章目的是幫助你回答一個問題比較簡單,但非常重要的問題:你真的準備開發作業系統?對一些愛好者來說實際上是高要求,浪費時間,同時回報太晚的工作。許多業餘作業系統項目最終抵達一條死胡同,慢慢被它的創造者遺棄,因為他們不能足夠理解方向在哪裡,並且所寫的代碼設計不良,也不能有效維護,或者當需要花費大量時間開始小小的malloc() 工作時就不知所措而屈服了。

試圖開發業餘作業系統的一些糟糕理由

我將帶來下一代計算革命:簡單地說:不會。答案長點就是:把自己視為一個小的研究團隊。你可以讓一些東西更有序,當然這只是在小規模的情況下。沒有大規模的支持,你的產品不會大規模分銷。是的,你不能為了吸引更多的觀眾而模擬一個現有的作業系統。

我想精通一門程式語言,需要一些挑戰性的練習:有些人試圖通過作業系統開發來學習一種新的程式語言,認為為了真正理解語言需要挑戰。這也不是一個好主意。

———-首先,通過作業系統開發之外的世界學習編程比通過作業系統開發學習語言更簡單些,你不應該高估自己承受挫折和壓力的的能力。

———-其次,由於是新的語言,你會犯更多的錯誤,而且低層開發比應用程式層的那些錯誤更難調試。如果是應用程式層,你可以通過小巧的工具,比如GDB和Valgrindthose來幫助你。

———-第三,因為你不會真正學習到程序語言本身,而只是學習到它的一個子集。 整個標準庫不能使用,除了一些像C一樣工作的語言之外,許多程序語言的特點是需要一個有時你不能提供的實時支持。舉例來說:C + +異常和虛函數表,C# 和Java的垃圾收集器( garbage collectors )和實時指針檢查, Pascal Object的動態數組和字符串… 這裡和這裡都有更多細節。

總之,編寫代碼是個很難的事情。當你編寫代碼的時候,受代碼所限你並不能真正學會那種程式語言。不要這樣做。

實現一個新內核複雜的可怕,但有一條更容易的道路。我就將採用Linux原始碼,並且調整到直到我得到一個我需要的作業系統, 這不會那麼難:可能我是第一個通過展示main.c 文件將你引入Linux原始碼的人。你的第一個任務是定位實際的主要函數位置。你的第二個任務是理解每個提到的函數位置,理解它應該做什麼。你的第三個任務是花時間理解這一切。

正如你現在應該明白,離開了豐富的知識,要修改一個現成的,老的代碼庫真的很難很難。 代碼重複使用是一個非常崇高的目標,它有許多優點,但現在你必須明白,這不會讓你的生活變得更簡單,而是讓它變得更壞,因為你不但要了解整個內核開發,而且代碼庫的所有細節你都要看。

•我不想對Linux/Windows/Mac OS X中的X詳加敘述, 這些完全需要重新做:所有的現代作業系統都有自己的怪異模式,特別是桌面更是體現之一,這是毫無疑問的。另一方面,如果對他們的抱怨相對較小,你真的應該考慮貢獻補丁以修復相關項目,如果這個方法失敗就只有重寫失敗的組件。

•我正在尋找一份令人興奮的工作:比照. 我將帶來下一代計算革命: 除非你在一個作業系統研究室就職,否則你很難從你編寫的作業系統獲得金錢,因為很長一段時間它沒有得到實際應用。(這可能會維持很長一段時間)。

試圖開發業餘作業系統的一些很好的理由

•我想實驗新的作業系統: 你有關於作業系統自己的想法,並且你在現有作業系統市場中找不到?業餘作業系統開發可能是一種嘗試方法,你可以實現你的想法,看看是否它在實踐中也能使用。

•我現在在語言方面很有經驗,並且正在尋找編程挑戰,或者想知道我的電腦最低水平怎樣:作業系統開發確實在很大程度上都能做到。 ,你將學習怎樣在比文字顯示設備調試軟體更難的情況下調試軟體, 學習到在沒有標準庫或者任何形式的輔助下怎樣做,為什麼有這麼多人對這個X86的架構,它在你的電腦運作良好,因為來自供應商的文檔太糟了。

•我一直都在作業系統上工作,知道它的代碼庫好,但卻有許多抱怨:如果處理這些抱怨將意味著重大變化,那種軟體不兼容,你可能除了付出別無選擇,雖然本文中描述的方式對作業系統開發不是一個完全有效的途徑(另一途徑當然比從零開始編寫一個全新的作業系統更有價值)。

•我想直接打補丁或者並行部分可對作業系統的改變實在太大:可以肯定的一點是在啟動一個新項目是最佳選擇。如果你認為你也需要這樣,那麼歡迎來到俱樂部。

•我正在尋找一個激動人心的業餘愛好:當然,這取決於你怎樣定義「激動」,但如果你準備充分,作業系統開發可以說是地球上最令人興奮的業餘愛好之一 。這有點類似於養育子女或種植植物: 當然,這很慢,有時它觸及你的神經,讓你感覺非常吃力不討好。但這會讓成功的感覺更好。另外,自己可以完全控制電腦的行為,擁有對硬體的絕對權力是極其有樂趣的。

那麼,你準備好了嗎?

除了問題階段,為了在這條路上獲得成功,這裡是一些你必須知道或者快速學習的事情:

•通用計算機科學:你必須熟悉並能流利地處理二進位和十六進位數字,布爾邏輯,數據結構(數組,連接,哈希表等),和排序算法。

•計算機系統結構:你應該知道的桌上型電腦全部內部組織。 詞句 ALU(算術邏輯單元),中斷,內存和PCI總線和DMA(直接內存訪問)對你應該不會神秘。更多自動化機制像TLB(旁路轉換緩衝多級緩存,或分支預測的知識長遠來說是非常寶貴的資產,一旦你試圖為性能而優化代碼。

編譯器和可執行文件的內部:你必須大致知道在預處理,編譯,和連接二進位生成步驟中間要發生什麼,並且能找到需要在它的說明中控制的工具鏈。你還應該了解連結器腳本和可執行文件的內部結構。

•彙編語言:你必須知道彙編語言是什麼,它怎樣工作,你必須能夠簡單地編寫彙編程序(玩玩堆棧和寄存器,彙編語言:你必須知道彙編語言是什麼,它怎樣工作,你必須能夠簡單地編寫彙編程序(玩玩堆棧和寄存器,加減數,如果實現類似分支)。你可以用其他程式語言編寫作業系統的大部分,但有時你需要完成一些代碼片段組合工作。

•C或C++:即使您打算使用另一種程式語言來編寫的作業系統,但是為了理解網絡上的代碼你需要了解C或者C++,因為你會看到作業系統原始碼或者其它作業系統開發教程。

•您的系統程式語言:無論你計劃用C#,Java,彙編,BASIC,C語言,C++,Pascal,Erlang或REBOL編寫你的作業系統,你應該非常熟悉它。 其實,你甚至應該訪問它的內部結構描述。比如,你應該知道怎樣從彙編代碼中調用一個用你選擇的語言編寫的一個函數,你的語言需要什麼類型的實時支持,以及怎樣實現它。

(以上清單來自OSdev wiki,可以根據個人經驗調整。 )

這部分嚮導「你準備好了嗎?」結束了。如果你完成了這一點,恭喜你!你應該有正確的心態和足夠的知識,以開始業餘作業系統開發冒險。下一篇文章將解釋如何為你的作業系統項目設定的目標和期望,如果你真的想善終這真的是很重要的一步。

相關焦點

  • 國產作業系統不僅僅是換皮膚
    昨天寫國產作業系統的文章,頭條推薦量突破10萬,這證明國人對國產作業系統還是很關注的。桌面作業系統都有哪些部分組成?一個普通用戶使用的桌面作業系統的組成部分主要包括: 內核、驅動以及固件:主要用於驅動硬體可以正常工作,除了CPU、內存、磁碟外,最主要的是要廣泛兼容不同的網卡、顯卡、音效卡和外設等硬體設備。
  • 七年級上冊重點短語和句型強勢來襲,你準備好了嗎?
    原標題:七年級上冊重點短語和句型強勢來襲,你準備好了嗎? 今天,顏老師分享的是新人教版七年級上冊重點短語和句型,想要進步的同學,趕緊學起來喲!很高興見到你 7. — What’s your telephone number?你的電話號碼是多少? 一I t ’s 281-9176. 我的電話號碼是281-9176 8. —Are you Helen? 你是海倫嗎?
  • 殭屍ZOMBI中文版 PC免安裝破解版下載 完整漢化
    遊戲發行:Ubisoft   遊戲平臺:PC   發售時間:2015年8月18日     遊戲介紹:   《殭屍》是一款由Ubisoft製作發行的動作射擊類遊戲,目前公布的中文版遊戲內容已成功的集成了最新的
  • 腦機接口,你準備好了嗎?
    小時候看衛斯理的科幻小說,裡面就經常會出現外星人為了收集人腦信息,會給部分人類植入晶片,來採集數據,同時被植入晶片的人會有特別的超能力,感覺好夢幻。另一種是晶片輔助你更好的開發大腦潛力。人類不是一直說大腦只有被有效開發10%嗎?今後可能可以通過晶片接口買不同的卡片,給大腦直接灌輸你所需要的知識。有了腦機接口未必不能實現,而且這種輸入應該就是不會遺忘類別的。
  • 健身房模擬器中文版 遊戲攻略分享
    健身房模擬器是一款PC模擬器遊戲,遊戲中玩家將以第一人稱視角,觀看自己在健身房的鍛鍊,期間你可以選擇各種訓練項目,十分真實的場景與動作刻畫,能夠讓玩家在這裡體驗更真實,鈴鍛鍊、伏地挺身、仰臥起坐、臥推,啄12機,拉機等一系列有關健身房中的訓練,在這裡你一併都能感受的到,隨著時間的更替,隨時查看自己身體的變化,是一項非常不錯的成就體驗感遊戲
  • 槍火重生中文版 遊戲攻略分享
    槍火重生(Gunfire Reborn)是一款卡通風格的Roguelike第一人稱射擊FPS遊戲,本作是一款融合了第一人稱射擊、Roguelite隨機要素和RPG策略為一體的遊戲,在遊戲裡玩家可以操縱不同能力的英雄組建多種Build玩法,使用隨機掉落的武器在隨機性關卡中進行冒險挑戰。
  • 你知道計算機專業的分類嗎?
    二、計算機學科專業基礎綜合的考試內容包括:數據結構、計算機組成原理、作業系統和計算機網絡,重點考查考生掌握相關基礎知識、基本理論和分析問題解決問題的能力。考試內容及試卷結構在考試大綱中確定。
  • 既然有了Android 谷歌為何還要從零開始開發新作業系統
    導語:《快公司》雜誌周末刊文稱,谷歌近期宣布正開發一款全新的作業系統Fuchsia。那麼,在Android系統早已發展壯大的情況下,谷歌為何要從頭開始開發又一款作業系統?不過,谷歌有著充分的理由,「重啟」一個沉寂數十年的軟體開發領域。  「外殼堅硬」的內核  你可能不太清楚自己手機、平板電腦和筆記本的某些方面:這些設備作業系統的「內核」非常古老。Android使用了Linux內核,這一內核起源於1991年。
  • 國產作業系統Deepin安裝
    Deepin是中國第一款具備國際影響力的Linux發行版本,支持超過30種語言,用戶遍布全球。作為國產優秀的Linux內核桌面級作業系統,8月6日,Deepin再一次發布了最新版桌面作業系統---深度作業系統20Beta。
  • 又一國產作業系統登場:紅旗Linux
    華為甚至還在2019年底發布了獨立開發的鴻蒙手機OS,並對其進行了開源處理,這一突破性創舉一度在全社會引起熱議。事實上,有突破的並不止手機作業系統。 在華為鴻蒙發布後,1月6日IT之家消息,又有一款國產作業系統宣布推出新版本,它就是紅旗Linux。紅旗Linux定位桌面作業系統,界面設計媲美Windows。
  • PPT曝光華為自研作業系統:命名「鴻蒙」 或已用於華為手機中
    對於華為來說,他們早就在準備作業系統的B計劃,以應對不能使用Android和Windows系統的極端情況。5月19日,有網友近日在社交網絡上曝光了華為的自研作業系統,命名為「鴻蒙」,其已用於華為手機中(安全部分)。
  • 世界汽車拉力錦標賽5中文版 免安裝破解版下載
    >遊戲平臺:PC   發售時間:2015年10月9日   整理時間:2015年10月13日     遊戲介紹:   由知名廠商Kylotonn Games專注於競速遊戲的製作,推出了自己的新作《世界汽車拉力錦標賽5》中文版遊戲資源
  • 蘭州「限塑令」本月底實施 你準備好了嗎?
    蘭州「限塑令」本月底實施你準備好了嗎?塑料口袋、塑料外賣餐盒、塑料吸管……這些都是隨處可見的「日常生活用品」。廉價、輕便、密封性好的塑料製品給我們的生活帶來了很多的便利。年底蘭州市主城區禁止銷售、使用一次性發泡塑料餐具,商場、超市、市場不再使用不可降解塑膠袋;市場監督管理部門將嚴厲打擊違規生產、銷售國家明令禁止的塑料製品……距離「限塑令」執行不到一個月,你準備好了嗎?這些「硬槓槓」你必須要知道。限塑限哪些?你知道嗎?
  • 華為「作業系統」開發完畢,投入使用的「代價」有多大?
    3月15日消息,華為 CEO 餘承東在接受媒體採訪時表示,華為公司目前已經開發完成自己的智慧型手機作業系統和電腦作業系統,其主要目的是防止美國科技巨頭谷歌(Android)和微軟(Windows)中止系統授權。
  • 程式設計師注意了:Nginx之父因業餘時間開發軟體已被捕
    大家好,我是隔壁小王聊數碼,今天我們要聊的主題是Nginx之父被抓事件。據國內最早、也是業界最早的企業級專業IT門戶至頂網報導,十二月十二日,俄羅斯警方突擊搜查了Nginx公司在莫斯科的辦公室,一名員工稱,當時俄羅斯警方直接拘留了Nginx公司的兩位同事。
  • RPG製作大師VX v1.02 簡體中文版下載
    軟體名稱:RPG製作大師VX v1.02中文版  運行環境:XP/WIN7/WIN8  軟體介紹:  RPG製作大師是在家居系列主機證監會
  • C Primer Plus 中文版 PDF
    學習C語言如果只推薦一本教材,那麼我一定會推薦這本《C Primer Plus》,豆瓣評分高達9.4分,如今已經更新到了第六版。首先基礎內容非常詳實,c語言的語法規則是比較精煉短小的,而這本書除了精講語法內容,還配有大量的代碼示例和代碼講解,這對於小白來說,是非常重要的。
  • 魔獸爭霸3冰封王座 1.24e中文版下載
    名稱:魔獸爭霸3冰封王座 1.24e中文版下載  遊戲開發:Blizzard  遊戲發行:Blizzard
  • 成為一名空管人,你準備好了嗎?
    姑姑為你的熱血感到驕傲,但要成為一名合格的、優秀的空管人絕不是要創造奇蹟,成為英雄,而是在日復一日的工作中做到勤勤懇懇,時刻準備著……你參觀塔臺那天碰上大風天,你說站在上面都能隱約感覺到腳下有些搖晃。當然,不可能每個人都會面臨這樣的抉擇,但是當你選擇了空管行業,就意味著你的工作將與「人命」緊密相連,你的一時疏忽,可能會導致極為嚴重的後果。只有時刻謹記「人命大於天」,敬畏每一個生命個體,才能讓一架架飛機安全平穩著陸。成為一名空管人,你準備好了嗎,將敬畏生命刻進心底,因為它是乘客旅途中的定心丸,是空管人崗位職責的底線,是民航人的使命擔當!
  • Facebook中文版下載
    Facebook中文版下載是一款讓人越玩越上癮的軟體。與好友、家人和志同道合之人建立聯繫,感受社交魅力。私下溝通、刷視頻追劇、買賣交易,或者與你的社群成員閒聊吹水,都在這裡。在 Facebook,你可以和關注的用戶輕鬆保持聯繫。 一起發現,一起體驗,精彩不斷,就在 Facebook!