從頭編寫一個操作系統(tǒng)有多難

這是一種不可能完成的任務钥庇。

一個人不能完成智嚷,一個公司也不能完成。

首先糠悯,你的操作系統(tǒng)是準備模仿Linux還是Windows帮坚?先模仿再超越是我們慣用的方法。現(xiàn)代人構建操作系統(tǒng)的方法逢防,一般是在Linux的內核上叶沛,進行各種風騷的操作蒲讯。增加圖形界面忘朝,增加新的硬件驅動。連Google這樣大的公司判帮,在推出Android的時候局嘁,也沒有重新編寫一個操作系統(tǒng),而是在Linux的基礎上進行改裝晦墙。

從系統(tǒng)的核心說起悦昵,你的操作系統(tǒng)準備支持幾種CPU?Intel的和AMD的都要支持嗎晌畅?Arm處理器是否也要支持但指?還是準備制造自己的CPU?那更是一個浩大無比的工程抗楔。我們知道棋凳,現(xiàn)在的處理器是從以前8位的進化到16位,進化到32位连躏,再進化到64位剩岳。那么,你的系統(tǒng)是否還要兼容以前32位的程序入热?或者說拍棕,干脆不兼容世界上已有的任何程序晓铆?那么這樣的系統(tǒng)還有什么用處呢?

除非你準備把所有的硬件都重新設計一遍绰播,否則你的操作系統(tǒng)就必然要模仿Linux骄噪,或者在linux的基礎上開發(fā)〈缆幔或者你有辦法弄到Windows的源代碼腰池,在windows的基礎上開發(fā)∶γⅲ看看Windows走過的路示弓,你就會知道開發(fā)操作系統(tǒng)這條路是多么的艱辛:先有了Dos,然后是Win95呵萨,Win98,Win200,WinXP...Win8,Win10奏属。人們一直在抱怨Windows的不穩(wěn)定,有Bug潮峦,但人們一直在用囱皿。所以,你開發(fā)新的操作系統(tǒng)忱嘹,必須有足夠多的人來使用嘱腥,幫你反饋系統(tǒng)中有什么Bug,然后再修補拘悦,再提高齿兔。希望一下子構建一個操作系統(tǒng),能夠媲美WinXP都不是一件簡單的事情础米。要知道分苇,XP已經是近20年前的系統(tǒng)了。你要在很短的時間內把別人20年走過的路重新走一遍屁桑,這是多么的不現(xiàn)實医寿。

操作系統(tǒng)要干些什么呢?首先蘑斧,要和鍵盤鼠標打交道靖秩。那么,你們團隊里就要有人了解鍵盤和鼠標如何驅動竖瘾。單單驅動鍵盤都不是一件容易的事情沟突,按鍵發(fā)出的信息如何送到系統(tǒng)內,系統(tǒng)對此作出什么反應准浴?鼠標按下的時候事扭,看似是單擊,但可能已經發(fā)出了成百上千次點擊信號乐横,你的系統(tǒng)怎樣分辨出這是一次單擊還是拖動求橄?如果你的系統(tǒng)還要在平板電腦和手機上使用今野,那么,用戶點擊觸摸屏的操作是否也要支持罐农?你的團隊里還要有人懂得觸摸屏如何驅動条霜。

然后要和顯示器打交道。現(xiàn)代的操作系統(tǒng)不可能是單純的字符界面涵亏。那么你要在顯示器上顯示圖形宰睡。你的團隊中要有人精通顯示器如何驅動。如果用顯卡气筋,顯卡的驅動由廠商提供拆内,那么問題來了:你的操作系統(tǒng)還沒做出來,廠商怎么會知道如何為你的系統(tǒng)寫驅動呢宠默?所以最早的驅動麸恍,必然是你的團隊的人自己編寫。

CPU要訪問內存的數(shù)據搀矫。那么你的內存怎樣管理抹沪?不同的程序都在同時執(zhí)行,怎樣保證各自使用各自的內存瓤球?有些程序要使用系統(tǒng)內的同一個組件融欧,那么你的系統(tǒng)怎樣分辨出誰在使用?你是否要使用線程卦羡、進程的概念噪馏?是否要使用c語言來編寫底層的系統(tǒng)?如果還是用c語言虹茶,那么c語言所有的陷阱你都要遇到逝薪,不止一次,而是會千百次蝴罪、上萬次的遇到。程序依然在該溢出的時候溢出步清,毫不客氣要门。資源依然回在該鎖死的時候鎖死,毫不手軟廓啊。也就是說欢搜,前人經歷的所有坑,你都要經歷一遍谴轮,再把它們依次填平炒瘟。

數(shù)據要存儲在硬盤或者U盤上,那么第步,你的團隊里要有人懂得如何編寫硬盤和U盤的管理程序疮装。硬盤的扇區(qū)劃分是否要分的和以往有不同缘琅?文件怎樣存儲在硬盤上,才能條理整齊廓推,同時讀寫高效刷袍?是否要支持權限管理?是否要加密和解密樊展?是否要保護系統(tǒng)文件呻纹?要知道,Linux系統(tǒng)下的“rm -rf /* ”刪庫跑路已經不是一個說說而已的笑話专缠,而是真實發(fā)生過很多次的事情雷酪。假如你的系統(tǒng)模仿Linux,是否連這個最脆弱的特征也要模仿涝婉?外部存儲器的容量越來越大太闺,從最早的1.44M軟盤到現(xiàn)在幾個T的硬盤,其間經歷了些什么嘁圈?你的團隊全部要經歷一遍嗎省骂?從最早的MBR到現(xiàn)在的gpt,經歷的不是簡單的磁盤分區(qū)表變化而已最住。多少位的機器钞澳,能夠訪問多大的存儲,不是人們簡單的設定涨缚,也并非當時的人沒有能力編寫大容量硬盤訪問程序的能力轧粟。歷史必須完整的重演一遍,你才能知道其中的技術含量脓魏。

不光這些兰吟,單單識別一下外設都不是一件容易的事情:你插一個東西到USB接口上,現(xiàn)在一個簡單的任務是:識別這是個啥茂翔?可能是鍵盤混蔼,鼠標,U盤珊燎,手寫筆惭嚣,移動硬盤,打印機悔政,手機...你的操作系統(tǒng)要能識別出來吧晚吞?然后找到驅動,讓設備正常運行起來谋国。

網絡接口槽地,用戶界面,硬件驅動,操作系統(tǒng)的每一件事情都是相當艱深的課題......

你的系統(tǒng)要使用漢字嗎捌蚊?那么GB2312,GBK,GB18030都要能按照次序兼容吧集畅?UTF8是否也要兼容?這里面的坑有多深逢勾?你Google/百度一下“亂碼”牡整,就可以發(fā)現(xiàn)數(shù)以萬計的記錄。這些記錄都是別人經歷過坑溺拱。

如果你在Linux的基礎上開發(fā)逃贝,請大膽的說出來,像Google公司那樣迫摔,不要害羞沐扳,這不丟臉。請不要像當年的漢芯一樣句占,拿別人的東西隨便mark一下沪摄,就說是自己的東西,這樣才丟了全國人民的臉纱烘。

從頭編寫一個操作系統(tǒng)是很難很難的事情杨拐。單靠一兩家公司是不可能實現(xiàn)的。要想成功擂啥,只有一種方法可行:拿出當年制造原子彈的決心和勇氣哄陶,舉全國人民之力,召集全世界優(yōu)秀的人才哺壶,先制造出自己的芯片屋吨,然后編寫自己的系統(tǒng),軟件硬件一起搞山宾,從硬件的層面就支持漢字至扰,讓人們用起來,在反饋中改進和提高资锰。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末敢课,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子台妆,更是在濱河造成了極大的恐慌翎猛,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件接剩,死亡現(xiàn)場離奇詭異,居然都是意外死亡萨咳,警方通過查閱死者的電腦和手機懊缺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鹃两,你說我怎么就攤上這事遗座。” “怎么了俊扳?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵途蒋,是天一觀的道長。 經常有香客問我馋记,道長号坡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任梯醒,我火速辦了婚禮宽堆,結果婚禮上,老公的妹妹穿的比我還像新娘茸习。我一直安慰自己畜隶,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布号胚。 她就那樣靜靜地躺著籽慢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猫胁。 梳的紋絲不亂的頭發(fā)上箱亿,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天,我揣著相機與錄音杜漠,去河邊找鬼极景。 笑死,一個胖子當著我的面吹牛驾茴,可吹牛的內容都是我干的盼樟。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼锈至,長吁一口氣:“原來是場噩夢啊……” “哼晨缴!你這毒婦竟也來了?” 一聲冷哼從身側響起峡捡,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤击碗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后们拙,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稍途,經...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年砚婆,在試婚紗的時候發(fā)現(xiàn)自己被綠了械拍。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖坷虑,靈堂內的尸體忽然破棺而出甲馋,到底是詐尸還是另有隱情,我是刑警寧澤迄损,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布定躏,位于F島的核電站,受9級特大地震影響芹敌,放射性物質發(fā)生泄漏痊远。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一党窜、第九天 我趴在偏房一處隱蔽的房頂上張望拗引。 院中可真熱鬧,春花似錦幌衣、人聲如沸矾削。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哼凯。三九已至,卻和暖如春楚里,著一層夾襖步出監(jiān)牢的瞬間断部,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工班缎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蝴光,地道東北人。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓达址,卻偏偏與公主長得像蔑祟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子沉唠,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內容

  • Linux系統(tǒng)一般有4個主要部分:內核疆虚、shell、文件系統(tǒng)和應用程序满葛。 內核径簿、shell和文件系統(tǒng)一起形成了基本...
    請愛護小動物閱讀 2,571評論 0 22
  • Linux系統(tǒng)一般有4個主要部分: 內核、shell嘀韧、文件系統(tǒng)和應用程序篇亭。內核、shell和文件系統(tǒng)一起形成了基本...
    偷風箏的人_閱讀 3,255評論 1 17
  • 姓名:吳兆陽 學號:14020199009 轉自韋東山 嵌牛導讀:對嵌入式初學者锄贷,沒有足夠的視野選擇一個合適投入方...
    吳兆陽閱讀 2,387評論 0 4
  • 學習stm32gpio 學習linux 程序員的三大方向 程序員的方向暗赶,一般可以分為3類:專業(yè)領域鄙币、業(yè)務領域肃叶、操作...
    王公民閱讀 764評論 0 3
  • 一夜碧綠洗蹂随,搖曳風姿生, 忽降玉露水因惭,無處可躲藏岳锁。
    雪中凝閱讀 78評論 0 7