{eval=Array;=+count(Array);}
Linux誕生之初是林納斯花了兩月時間寫的勉強可以運行且漏洞百出的Linux0.01版本,他寫Linux的初衷很簡單,只想看看電腦硬件是如何協同運行的,也就是說他想通過程序來玩硬件。文雅一點就是他想學習。
后來玩膩了,也覺得自己寫的東西沒多大卵用,所以就本著極客精神放到互聯網上給大家一起玩,還引入了開源協議。隨著玩這個小系統的人越來越多,大量高手都把自己的業余時間與構思添加如Linux中,當Linux頗具規模的時候被各方盯上想收入囊中,但此時的Linux已經深陷開源泥潭,當初的開源協議讓Linux根本無法為林納斯獲利。
當Linux1.0版本出來時它的光芒足吸引了大量想得到系統最終控制權且不想交授權費的商人。
加上Linux有全世界頂尖高手的日夜維護,其生態圈已經頗具規模,同時Linux被大量極客玩家塞進各式各樣機器里玩,故而到了今天,Linux只是一個內核,允許全世界每一個玩家下載下來自己修改,想怎么玩就怎么玩 永遠沒人問你要授權費 連特朗普也不行,由于當初的開源協議,林納斯雖說貴為生父,可他在開源協議面前也無法說是自己的,他除了獲得名聲之外自己沒從Linux里獲得一分錢盈利。
說那個0.01版本有多厲害?其實它只是一個漏洞百出的單片機版本,勉強可以運行而已,并不是現在的支持多CPU,多線程,多任務,多用戶。稍有腦洞的程序猿都可以為單片機寫一個運行程序,真正厲害的是開源之后的那些極客為Linux寫的補丁,已經完全把0.01版本的框架拆得面目全非,林納斯只是做了一個開頭,今天的Linux是全世界極客智慧的結晶。
linus大學時期寫的linux內核,應該是0.11版本。2008年的大三寒假,有幸拜讀了趙炯的這本《linux內核完全剖析》,這本書剖析的內核版本就是linux 0.11版本的源碼,也就是linus大學時期所寫的那個版本。跟現在最新的5.x的內核相比,那可真是秀珍極了。然而,你要知道現在linux的高樓大廈都起于那抔黃土,所以linux0.11內核技術上多厲害倒不是最主要的,沒有linux0.11內核就沒有現在的5.x的linux內核,這才是它的歷史意義。類似沒有毛主席就沒有新中國,道理是一樣的,這是其一。
第二個,我們來說說linux 0.11的技術功能。linux0.11內核作為linux內核的創始版本,功能不算全面,但是核心功能都有了!比如:
所以,你看,這已經是現代操作系統的技術架構的雛形了。基于這個雛形,才有了后續linux內核的不斷發展和進化。所以它的技術引導意義是很大的。
第三個,我想從學習的角度來談一下linux0.11內核的意義。最新的linux內核已經太冗余了,里面加入了各種各樣的需求和特性,已經把linux內核的核心功能深埋在層層的業務代碼下面了,如果從最新的linux內核源碼入手,你可能像進入一個迷宮一樣不得要領,空耗耐心,最終放棄。而其實linux0.11內核代碼已經代表了linux內核的核心功能和開發理念。所以,如果從學習的角度來看,linux0.11內核以其精簡的代碼量、濃縮的功能模塊和相對沒那么多的業務代碼,所以能更純粹的滿足我們學習的需求。
本人是linux內核愛好者,有十年linux內核和驅動開發經驗,持續在頭條分享通俗易懂的linux內核開發視頻。免費的《linux內核開發100講》系列視頻持續更新,有需要的小伙伴可以來學習噢。
Linus本人是個牛人,但是最初的Linux談不上有多厲害,因為最初他寫的程序是為了完成作業,他也僅僅只是模仿UNIX寫了一段內核,而且不是完整內容的內核,就是一個內存分配和任務調度模塊,連當時流行的軟驅這種硬件的驅動程序都沒有,這種大學生作業其實有很多,要是說這種內核多厲害也是UNIX厲害,因為都是山寨UNIX內核,幾個月以后Linus又寫了一個軟驅的驅動程序,形成了最初的0.01版本的Linux,到這里為止Linux還說不上有多厲害或者有什么影響,但Linus做了一個影響巨大的決定,把自己的這個作業交給開源組織公開給大家一起來玩,從這里開始Linux才真正牛逼起來,內核版本也不斷進化,逐漸形成了自己獨立內核,但即使這樣Linux幾乎所有概念和思想都來自UNIX,比如把硬件設備也當做文件處理,管道概念文件命名規則等,所以學過Linux的能很快熟悉UNIX,反過來也一樣。
我不是否定Linus的牛逼和偉大,只是想告訴大家當一個人對科學技術有興趣的時候,自己動手實踐有多重要,即使是模仿前輩自己動手也是難能可貴,其實另外一個例子是比爾蓋茨大叔,蓋茨大叔讀中學的時候對電子學發生了濃厚興趣,天天和自己的好友在車庫里擺弄電子小玩意鉆研BASIC,高中沒畢業就自己注冊了一家公司,即后來的微軟,蓋茨大叔又極有商業頭腦,聽說IBM在找PC機的操作系統,蓋茨大叔立馬從別人哪兒買了一個DOS改頭換面,從IBM哪拿到了訂單,這才有了后來的微軟這個巨人。所以敢于實踐敢于行動有多么重要,是一切成功的基礎和起點。
先說結論:即使在現在的目光來看,Linus也是非常非常牛皮。正如linus本人所言:“talk is cheap,show me your code”,東西都是說起來容易,做起來難。1991年linux發布第一版本內核,那個年代沒有谷歌,沒有雅虎,計算機手冊可能都不全。那是一個沒有復制粘貼的年代,所以到底有多牛不言而喻。
在Kernel.org上可以找到最為古老的Linux內核0.0.1版(有興趣的朋友可以去看看):
一共88個文件,代碼行數如下:
當然最開始版本,肯定不是一部封神,不過在當時那個環境能夠通過參考Minix就憑自己一個人寫出能boot的系統,已經是相當相當厲害了。在Linus的帶領下,以及無數開源愛好者的共同努力,linux才有了現在的規模。
linus通過學習MINIX后,發現MINIX的版權協議只能用于教育學習上面,所以他基于MINIX的基礎上開發了Linux。而MINIX的開發是基于Unix的基礎而成。 而Unix也不是憑空出來的,也是兩位大牛在參考Multics的基礎上開發而來。盡管這些大牛都是在巨人的肩膀上進行開發才得來今天的linux系統,但這并不影響他們的偉大啊,全球這么多人,這么多血計算機的前輩,Linus站了出來,分享了自己做的系統,并通過開源網站帶領著大家一起開發維護linux操作系統,這么多年來,無數操作系統提出與退場,Linux一路走來越加輝煌。要知道這是一款開源操作系統,背后沒有微軟,google,這樣的巨頭做爸爸。但是它殺出來了,我想這與linus獨特的個人魅力也是有很大關系的。
30年前,那個少年有著勇氣寫出一個操作系統,并有勇氣把它放在網絡上給大家參考建議,同樣這30年來Linus一直在社區帶領著大家開發維護linux操作系統,難道這還不夠厲害嗎?
可能現在有很多計算機開發者同樣能編寫一個操作系統簡單內核,首先那是30年前,計算機手冊都不一定能找全,另外能帶領linux走到現在才是linus更厲害的地方。
咳咳,就這么說吧。
作為一個三流程序員,多少次下定決心看一遍這個初始版本,也沒看完過。
現在那么多程序員,我猜哈,能看過甚至參透這個初始版本的,不足百分之一,甚至更低。
所以,你就知道有多厲害了。
Linus是一個天才程序員。
Read The Fucking Source Code,應該就是Linus的至理名言。
Linux內核是操作系統的根本,能搞出操作系統,這不是一般人能做到的。在當時有兩大操作系統Windows和Unix,不過他們都是有版權的。
Linux可能是參考了一些Unix的知識,不過肯定是原創的。
基本上是以一人之力,攪得操作系統江湖天翻地覆。
Linus就軟件技術而言,是頂級的,本人一生吹。
Linux操作系統有多強,現在應用最廣泛的移動操作系統安卓就是建立在Linux系統之上的。
最關鍵的一點,就是Linux操作系統免費,這一點Linus就該被刻在榮譽殿堂。
你以為Linus只搞了一個操作系統就完事了?
聽說過Git嗎?
版本管理工具。
他寫的。
Git的價值和作用真的不弱于Linux操作系統,給所有的IT技術公司帶來了便利。
所以,Linus是一個大佬,軟件領域的大佬。
即使是Linux最初的版本,就技術而言,也是大佬級別的。
最后我的建議是,如果你真的喜歡軟件,就把這個最初的Linux版本、Git,二者的源碼讀一遍,受益會是終身的。
喜歡的朋友點個贊哦,也可以點個關注支持下。
承認別人優秀,一直都很困難
--鍵盤俠
首先當時的計算機算力很低,可能相當于現在的單片機,但是當時環境和資料不如現在,打個比方,現在做一個企業站,只需要幾百塊,但是90年代,一個頁面5000,很可能找不到人。
現在為啥就那么便宜呢?網絡上到處可以搜索到學習資料,開源系統,簡單處理就可以用。但是90年代不行,很多東西沒有資料的時候,主要靠自己看硬件資料,結合軟件理論,自己去嘗試,這個過程可能1次,可能100次,可能更多。
單片機對于現在很多人來說太簡單了,但是看問題要有代入感,如果是你,在當時的環境,你能做出來什么。
有人說,現在很多程序員都是面向百度編程,離了網絡什么都不會了。那么如果你在linus那個年代,你還可以編程嗎?
有些人可能技術很厲害,但是缺乏毅力,和耐心。世界上比linus厲害的人多很多,但是堅持下來做事的又有多少。
linus 牛
可以這么說,學習過操作系統的學生,一般過的去的,都可以完成。
沒有貶低的意思。
換個說法吧,其實當時的操作系統,比如DOS,UNIX,LINUX,早期版本,一個人在兩可接受的時間內都能完成。
這里面存在一個歷史機遇,就是unix走向封閉,教學用的東西極度稀缺,minux做的松垮,linux一下填補了一個重要的需求,社區很快就形成了
最初linus的編程水平多優秀不敢說,但是能在大學就寫出內核,至少說明他對CPU及其周邊設備搞的很明白,所有設備的編程都搞通了,這是難得的牛B。
要知道硬件的驅動編程比一般的商務流程編程要難的多,一會中斷、一會DMA,因為基本沒有debug可用,看不到寄存器狀態,只能信賴技術手冊,一個bit的錯誤的結果就是死機,沒人告訴你如何解決,因為那時也沒有互聯網可以搜索解決辦法,一切靠自己。
另外,linus的編程除了大部分的C語言,還有大量的匯編代碼,雖然那時的x86指令不多,但是匯編系統也不智能,一切靠大腦,不是靠網絡。
現在Linus一會噴Java、一會噴C++,其實所有系統底層的開發,必須搞清楚代碼的一切細節,即便不是每一個指令,但代碼的結構、數據結構是必須清清楚楚的,否則無法保證程序的可靠運行,java甚至C++是有很多盲區的,根本不知道到底用了多少代碼空間,多少棧空間深度,多少堆空間,不知道這些,系統的資源就會失控,也就別說系統的可靠運行了。系統運行在實存(物理內存),棧、堆溢出的結構就是死機。
0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答0
回答