回覆列表
  • 1 # 魔鐵的世界

    Unix和Linux屬於大型作業系統,憑個人之力,根本不可能完成。以Linux系統為例,它的版權人林納斯.託瓦茲(Linux之父)是個天才程式設計師,沒日沒夜忙了差不多半年,寫出Linux的0.01版,也就是初級版本,你猜原始碼有多少?大概有1萬行。

    Linux0.01版釋出後,林納斯和全球成千上萬黑客(和現在喜歡在網上偷雞摸狗的黑客不同,那時的黑客都是程式設計師大牛,主要以改進電腦軟硬體效能為樂趣)一起修改完善。從1991年0.01版釋出,到1994年Linux1.0正式版釋出,三年時間,參與的程式設計師能輕鬆坐滿一個足球場,你猜程式碼有多少行?一共17萬多行。

    除非你認為自己的程式設計天賦和勤奮努力程度能碾壓上述大牛,那麼可以試試以個人之力,寫一個Linux級別的作業系統。

    更重要的是,當時還是486電腦當道的時代,作業系統遠沒有今天覆雜,那怕是iOS和安卓這樣的公司化運作的作業系統專案,也並沒有從0寫起,而是“踩在前人的肩膀上爬梯子”,iOS的核心是Unix,安卓系統的核心是Linux,蘋果公司和谷歌公司在原有系統上“改擴建”,搞成了自己的東西。

    當然,如果不是要寫Linux這樣的大型作業系統,就是想寫來玩玩,比如搞個mini的,還是有可操作性的:建議從最基礎的玩起,先寫監控程式(作業系統的原型),僅具有載入程式和執行程式的功能。監控程式玩熟練之後,可以寫用於微控制器的微型作業系統,包含控制程式、編譯器和簡單的應用程式。個人要熟練寫作業系統,大致說來需要具備下列素質:熟練運用C語言程式設計;會組合語言;瞭解基本的硬體知識;會寫硬體驅動程式;會軟體架構設計;不過,上面這些都精通了,隨便去網際網路大廠拿個七八十萬年薪的offer是分分鐘的事,何苦自己折騰!

  • 2 # 吳氏三姐妹

    我們的學校確實應該從基礎抓起,有作業系統這麼課程,真正實踐寫一個作業系統的,估計寥寥無幾。可能大部分教課的老師(99%)自己都不會。

    作業系統按照使用目的來說,簡單可以分成專用作業系統和通用作業系統。

    我們目前比較難的在於通用作業系統,但是現在有開源的linux和unix通用系統,有構建於其上的開源android系統。封閉的windows作業系統,網路上也洩露了很多版的系統原始碼,其實構建一個通用作業系統也不是難於上青天。

    專用的作業系統,為了特定的目的和硬體而實現,實現難度會更低一些。

    為了深入掌握計算機,我們的教學應該更加深入的普及彙編,計算機程式語言設計,更重要的是硬體,指令及設計等配套的開發工作。

    資訊科學是綜合的科學,是人類目前所有的科學,技術及工程的集大成者。從基礎研究開始吧。

  • 3 # yanghmcn

    先說結論:不難。大約6個月可以出一個能用的。

    準備工作:系統學習作業系統理論。有幾個經典的教科書可以看。當然你本身要非常熟練C語言。然後看unix原始碼。有這方面的教科書可以看。動之前,搞明白你設計的系列跟現有的有什麼不同,目標是什麼等。然後,動手吧。從載入程式開始,這個要彙編,可以參考現成的。

    我說能用的系統指,命令列可用。如果要做GUI,再來半年。

  • 4 # cyler

    讀一遍linux程式碼,如果讀不懂就買一個教你讀linux程式碼的書。

    等你能讀懂了,就可以動手了。就這樣。

  • 5 # 6小羊羔6

    今天你很棒哦,能題出這個問題,你是家鄉的未來,你是祖國的未來;

    先從學基礎開始C語言、x86等,再說了系統有大有小,都是系統,看你的目的是什麼了。想商用這就不是一個人就能完成的了。

  • 6 # 供應鏈管理軟體

    寫一個作業系統相對還是簡單的,複雜的是應用,沒有應用,你的作業系統就是一個擺設,和沒有一樣。

    應用有不同的層次,比如要適應不同的硬體環境,就要編寫大量的驅動程式;要有很多的應用程式就要有很多的人在上面開發應用,而要開發就要有不同的語言,不同的開發工具!最重要的是就是這個都有了,誰會在上面開發呢?因為開發人員是要吃飯的!

    接下來是使用者,沒有使用者就沒有人買單!

    萬里長征,華為這樣的一個企業也做不了!因為有那麼多過不去的坎!

  • 7 # owlKnight

    《30天自制作業系統》這書可以看看啊,日本程式設計師弄的,這書還蠻有名的啊。還有類似的《30天自制編譯器》,還有自制程式語言,自制cpu之類的。上當當上搜啊。

  • 8 # 九曲青溪

    有興趣就去幹,就算寫不出,你也會從中學習到大量知識,對你後面的路有很大幫助。

    另外我要罵人:那些說風涼話的、諷刺的,你們要麼是老了且無所作為,要麼是一個慫蛋。不管你覺得自己多牛逼,但你對一個有求知慾的人出言諷刺,就說明你是一個垃圾。(不包括那些客觀表達困難的人)

  • 9 # 哪是剎車

    需要的知識量好大,我只能列出一小部分

    編譯原理

    計算機體系架構

    各種cpu的指令集

    各類io裝置的介面知識

    彙編

    c語言

    我想不出來了

  • 10 # 風哥做遊戲

    以上回答都不靠譜,首先,開發成本,10億美元起步。如果完全自主的話,保守估計1500-8000億美元。生態構建 ,短時間內構建一個比較活躍的生態,燒錢砸的話,2萬億美元起步,成果概率15%。 如果你能調配這麼多資金,可以考慮。

  • 11 # 憂鬱的吃瓜大叔

    寫一個作業系統並不是不可完成的任務,精通作業系統原理,精通匯編和C語言,完成一個簡單的作業系統問題不大。難就難在各個細節,從做出來,到使用者喜歡,要差十萬八千里

  • 12 # 二十四畫名

    你們都說的太難了太複雜了,這不是打擊樓主積極性麼?其實寫作業系統沒那麼難,按照我說的步驟,很多人都可以去寫。

    首先,你要有一支筆,鉛筆就行。當然了,有人問圓珠筆可不可以?也可以,而且還不會褪色。同理,簽字筆鋼筆也是可以的。我說用鉛筆的目的就是怕有的小夥伴寫錯了後能方便擦除。

    其次,你要有一張白紙,不然不好儲存。有的小夥伴就說了,刻在石頭上可不可以,那當然也可以的,只不過更費時間而已。要是作業系統寫的大的話,一張紙可能還不夠,所以需要再備一張紙。

    再次,就是知識儲備了。我們都知道中國文化博大精深,但是也不必全都瞭解認識。寫作業系統的話,我們其實只需要認識和了解一部分知識就夠了,我自己覺得3年級以上應該就能對付了。

    最後,也是最重要的一步,就是寫了!前面準備了這麼多就是為了現在了。把紙攤開後,一筆一劃寫出"作業系統",注意哦,不要連筆寫,不然別人不好讀懂。字最好寫的不要太大,不過也沒關係,因為我們前面有備份的一張紙,足夠能寫完了。

  • 13 # fleeing_alone

    你問問李納斯脫襪子,他就寫了一個核心,其他周邊的程式都是開源組織貢獻出來的,是全世界開源愛好的結晶。

    你要寫作業系統,是要在馮諾依曼結構上寫呢,還是推倒了,重新設計計算機,不過量子計算機出來後,很有可能顛覆原來的設計,那微軟的windows就開始落寞了,linux以及前生都將會變革,不過想要打倒它們你必須有產品,有超前的設計,就是一個字“快”,處理速度比現在快個幾十億億億億迴圈,被,人們才會接受你的產品,才能顛覆他們。

    把計算機的結構重新設計出來,然而這只是第一步,第二步找材料,材料對於產品研發至關重要,比如說導電效能,磁場效能,耐高溫,等等,地球上沒有的話只能等,天上掉餡兒餅了,哪天掉個隕石什麼的,

    硬體都設計好了後,開始研發語言,因為你的計算機重新設計了,所以程式語言也需要重新定義,C語言已經算最好的了,你可以設計出D語言,E語言,要比C或者彙編快更多,特性更強。

    語言設計出來後,就開始設計作業系統了,作業系統就是虛擬在硬體的一個入口,協調各個硬體溝通交流,把結果返回過來。

    第四步完事後一個完整的產品就設計出來了,但你要把眼光放高點,因為你的產品不是賣給別人,不是讓它普及,是要打出地球,打太空仗,你要把計算機送到太空去,多多益善,因為計算能力超前,光速也不在話下,所以你可以通過量子,讓時空扭曲,輕而易舉到另一個星球,這樣的話發現下一個文明也就是輕而易舉的事了,你要記住,等你找到適合人類居住的新環境不要忘了我,路我已經給你鋪好了,孩子快動手吧。

  • 14 # 還是叫老李吧

    如果你想寫個作業系統,不知道需要哪些基礎,有兩辦法:

    一、找學前班或小學低年級老師,他(她)們不僅能教你怎麼寫“作業系統”,甚至還能教拼音怎麼寫。

    二、睡一覺,什麼都有可能。

  • 15 # jackkong

    居然有比較熱心的網友比較認真的回答這個問題,稍顯些許幽默。

    其實知識是次要的,你需要的僅僅是一顆類似於linus大神的大腦。

  • 16 # 手機使用者58346494071

    寫作業系統不是象操作“複製”“貼上”那樣簡單,要讓電腦執行一個簡單的動作,背後就是一連串的機器碼,從哪裡取一個數,送到哪裡去,不出20步就能把你弄昏頭。

  • 17 # 叫啥好呢是吧

    12年前,我買過一本linux核心程式碼講解的書,英文的,講的是debianlinux初代的最基礎核心程式碼,這本書是全英文的,大部分篇幅都是程式碼與註釋,而且還是初代的最簡單的程式碼,這本書2000多頁,你想想考慮下吧,反正我看了100多頁就放棄了。我覺得我夠閒的了,居然能看100多頁。

  • 18 # 有且只有N個

    不需要具備啥條件,但是有一條一定要做到,就是至少得活到三百多歲,並且不腦子還好使。Linux核心目前程式碼行數是幾千萬行,你看看得寫多久吧

  • 19 # 帥帥勇闖天涯

    先了解現在的作業系統都幹了啥,不用看那些可選的周邊模組,就先看人家任務排程、記憶體管理、檔案管理、io,看完這些再考慮要不要自己寫。光知道世上有個Unix就想自己也做一個這對大部分人來講完全不現實,這好比知道世界上有火箭就想自己造一個一樣,區別只在於火箭的複雜程度你一望便知,但作業系統的複雜程度外行完全看不出來。

  • 20 # 程式猿祥祥

    按照樓sir的說法,數邏,計組,彙報與介面,作業系統,編譯原理,計算機體系結構,這幾門課上下來,你就拿到了一個完整的計算機,更不用說作業系統了。

  • 中秋節和大豐收的關聯?
  • 三十歲一無所有,想把房子賣了,拿來做生意不知道做什麼,很迷茫?