1.1 隨便先說下
Linux 內(nèi)核非常龐大,我說的非常大并不是為了嚇唬大家,確實(shí)是非常多的代碼,超過 600 萬行的代碼,所以我寫文章介紹 Linux 內(nèi)核,也不可能每一行代碼去分析,但是我會(huì)提煉其中的重點(diǎn)出來,告訴大家,Linux 內(nèi)核的構(gòu)成,包含哪些東西,我們不管學(xué)習(xí)什么,最關(guān)鍵的是學(xué)會(huì)其中的思想,但是我們?nèi)绻裁炊歼€不會(huì)的時(shí)候,可以學(xué)著由表透里,就像我打籃球一直不會(huì)后仰跳投,但是我可以把科比的研究一遍又一遍,總有一天我也能聽到自己打鐵的哐哐聲。
但是我希望我的文字略帶微笑著去面對(duì)這些代碼,去面對(duì) Linux 森林,然后你從這個(gè)森林走出來后,可以明白森林里的有哪些路,你下一次想帶個(gè)妹子進(jìn)去約會(huì),可以找到屬于自己的旮旯。
雖然 Linux 內(nèi)核非常龐大,但是橫向?qū)Ρ扔?jì)算機(jī)的發(fā)展史, Linux 的歷史非常的簡短,計(jì)算機(jī)出現(xiàn)的時(shí)候,還沒有什么花里胡哨的包裝,都是光著身子跑,用技術(shù)的語言說就是它只能執(zhí)行一個(gè)任務(wù),執(zhí)行一個(gè)進(jìn)程,也可以叫“裸跑”,學(xué)習(xí)計(jì)算機(jī)的同學(xué)應(yīng)該很快明白什么是裸機(jī)程序,裸機(jī)程序只可以讓一個(gè)進(jìn)程使用硬件資源,這無形上對(duì)硬件資源的浪費(fèi)。
可以拿我們的手機(jī)來比喻,裸機(jī)的話,我們玩王者榮耀的時(shí)候,有人打電話進(jìn)來的話,王者榮耀是要被終止的,后來就有了操作系統(tǒng),操作系統(tǒng)可以保證多任務(wù)執(zhí)行,同樣的 CPU 芯片,有了操作系統(tǒng),我可以開微信,QQ ,還同時(shí)做其他很多事情。
所以就出來了很多操作系統(tǒng),操作系統(tǒng)我認(rèn)為可以分為實(shí)時(shí)操作系統(tǒng)和通用操作系統(tǒng),實(shí)時(shí)操作(RTOS 全稱Real Time Operating System)系統(tǒng)可以理解為對(duì)時(shí)間要求非??量?,可以用一個(gè)詞“必須”來理解,就是在某個(gè)時(shí)間片之內(nèi)必須要做某件事情。
而通用操作系統(tǒng),我們可以很常見,比如電腦 windows,Android 手機(jī)等,Linux 也可以認(rèn)識(shí)是通用 OS,因?yàn)樗麄儗?duì)時(shí)間上要求不是很嚴(yán)苛。
Linux 可以通過配置某個(gè)宏定義變成實(shí)時(shí)操作系統(tǒng),但是我們使用 Linux 主要是針對(duì)他的通用 OS,多用戶,多任務(wù)等特別突出的性能。
世界上的嵌入式操作系統(tǒng)數(shù)不勝數(shù),我有一個(gè)很厲害的師弟,前幾年也參與了一個(gè)國內(nèi)嵌入式操作系統(tǒng)的開發(fā),當(dāng)然了,他們是以盈利為目的了,還有我認(rèn)識(shí)的周立功先生,他們公司也研發(fā)了一個(gè)嵌入式操作系統(tǒng),但是對(duì)于我們開發(fā)者來說,做項(xiàng)目的時(shí)候,選擇適合自己項(xiàng)目的系統(tǒng)就好了,對(duì)于學(xué)習(xí)來說,我認(rèn)為,應(yīng)該學(xué)習(xí)最先進(jìn)的操作系統(tǒng),這樣才能讓自己的技術(shù)有更大的先進(jìn)性。
VxWorks 是美國 WindRiver 公司的產(chǎn)品,市場占有率比較高的嵌入式操作系統(tǒng)。VxWorks 實(shí)時(shí)操作系統(tǒng)由 400 多個(gè)相對(duì)獨(dú)立、短小精悍的目標(biāo)模塊組成,用戶可根據(jù)需要選擇適當(dāng)?shù)哪K來裁剪和配置系統(tǒng),具有優(yōu)先級(jí)的任務(wù)調(diào)度、任務(wù)間同步與通信、中斷處理、定時(shí)器和內(nèi)存管理等功能,符合 POSIX (可移植操作系統(tǒng)接口)規(guī)范的內(nèi)存管理,多處理器控制程序,并且具有簡明易懂的用戶接口,在核心方面甚至町以微縮到 8 KB。
這個(gè)操作系統(tǒng)不敢吹太多,可以自己去了解下,因?yàn)榉€(wěn)定性太好了,應(yīng)用到了航空,衛(wèi)星,軍事等各個(gè)領(lǐng)域,實(shí)用性非常強(qiáng),所以很多培訓(xùn)機(jī)構(gòu)也針對(duì)這個(gè)操作系統(tǒng)開了培訓(xùn)課程。
μC/OS-II
μC/OS-II是在μC-OS的基礎(chǔ)上發(fā)展起來的,是美國嵌入式系統(tǒng)專家 Jean J.Labrosse 用 C 語言編寫的一個(gè)結(jié)構(gòu)小巧、支持搶占式的多任務(wù)實(shí)時(shí)內(nèi)核。μC/OS-II 能管理 64 個(gè)任務(wù),并提供任務(wù)調(diào)度與管理、內(nèi)存管理、任務(wù)間同步與通信、時(shí)間管理和中斷服務(wù)等功能,具有執(zhí)行效率高、占用空間小、實(shí)時(shí)性能優(yōu)良和可擴(kuò)展性強(qiáng)等特點(diǎn)。
μClinux
μClinux 是一種優(yōu)秀的嵌入式 Linux 版本,其全稱為 micro-control Linux,從字面意思看是指微控制 Linux。同標(biāo)準(zhǔn)的 Linux 相比,μClinux 的內(nèi)核非常小,但是它仍然繼承了 Linux 操作系統(tǒng)的主要特性,包括良好的穩(wěn)定性和移植性、強(qiáng)大的網(wǎng)絡(luò)功能、出色的文件系統(tǒng)支持、標(biāo)準(zhǔn)豐富的 API,以及 TCP/IP 網(wǎng)絡(luò)協(xié)議等。因?yàn)闆]有 MMU 內(nèi)存管理單元,所以其多任務(wù)的實(shí)現(xiàn)需要一定技巧。
eCos
eCos(embedded Configurable operating system),即嵌入式可配置操作系統(tǒng)。它是一個(gè)源代碼開放的可配置、可移植、面向深度嵌入式應(yīng)用的實(shí)時(shí)操作系統(tǒng)。最大特點(diǎn)是配置靈活,采用模塊化設(shè)計(jì),核心部分由小同的組件構(gòu)成,包括內(nèi)核、C 語言庫和底層運(yùn)行包等。每個(gè)組件可提供大量的配置選項(xiàng)(實(shí)時(shí)內(nèi)核也可作為可選配置),使用 eCos 提供的配置工具可以很方便地配置,并通過不同的配置使得 eCos 能夠滿足不同的嵌入式應(yīng)用要求。
內(nèi)核的工作
我們使用的計(jì)算機(jī)大家都知道是操作系統(tǒng),那內(nèi)核是什么呢?那我們先簡單說說操作系統(tǒng),操作系統(tǒng)是面向用戶的,計(jì)算機(jī)用戶可以使用計(jì)算機(jī)操作系統(tǒng)來工作,聊天,玩游戲,我們使用的這些東西都是應(yīng)用軟件,對(duì)應(yīng)用程序來說,內(nèi)核就是它的操作系統(tǒng),這個(gè)系統(tǒng)可以為應(yīng)用程序工作,管理應(yīng)用程序。
內(nèi)核還有一個(gè)比較重要的工作,就是管理應(yīng)用,為應(yīng)用程序準(zhǔn)備好運(yùn)行內(nèi)存,管理應(yīng)用程序的執(zhí)行,讓應(yīng)用程序通行無阻,當(dāng)然了,這個(gè)是理想的情況,不理想的情況就是導(dǎo)致內(nèi)存或者資源不夠用的情況,應(yīng)用出現(xiàn)崩潰等異常。
除了管理應(yīng)用以外,內(nèi)核還需要管理硬件設(shè)備,Linux 內(nèi)核下面有非常多的設(shè)備驅(qū)動(dòng)代碼,如果一個(gè)內(nèi)核開發(fā)工程師說他不懂設(shè)備驅(qū)動(dòng),那簡直就是一個(gè)笑話,內(nèi)核跟 CPU 和硬件設(shè)備關(guān)系非常密切,在整個(gè)操作系統(tǒng)中的地位,具有承上啟下的作用。
1.2 UNIX 的誕生
生日:UNIX 在 1969 年出生。
他的父親和母親:是 Dennis Ritchie 和 Ken Thompson 兩個(gè)人擦出了靈感的火花創(chuàng)造出來的。
出生戶籍地址:貝爾實(shí)驗(yàn)室
貝爾實(shí)驗(yàn)室圖片
貝爾實(shí)驗(yàn)室的logo
出生具體流程:
1965 年,貝爾實(shí)驗(yàn)室要做一個(gè)項(xiàng)目,這個(gè)項(xiàng)目叫PDP-7計(jì)算機(jī)計(jì)劃,發(fā)起人是通用電氣和麻省理工學(xué)院,他們給這個(gè)操作系統(tǒng)起了一個(gè)漂亮的名字叫做「MULTICS 操作系統(tǒng)」("Multiplexed Information and Computing Service"的縮寫)。做事情總是有個(gè)計(jì)劃,他們給這個(gè)操作系統(tǒng)給出的計(jì)劃是,這個(gè)操作系統(tǒng)可以多個(gè)人使用,按照我們現(xiàn)在的人來說就是多用戶系統(tǒng),多任務(wù),多層次等等。
到了1969 年,發(fā)起人覺得這個(gè)進(jìn)度太慢了,本來想早點(diǎn)制造出來我們好用來玩電腦游戲的,結(jié)果你們這幾個(gè)科學(xué)家整了這么久還是沒整出來,那只好停掉了,停掉了投資方就不再提供后備的資源了,留下的東西就自己瞎整吧,投資方也不管了。
計(jì)劃被停下來了,當(dāng)時(shí),Ken Thompson 在調(diào)試一個(gè)程序,這個(gè)程序名字叫做 “星級(jí)旅游”,這個(gè)程序運(yùn)行在一個(gè)叫做 GE-635 的機(jī)器上面,但是因?yàn)檫@個(gè)機(jī)器的硬件設(shè)備比較落后,運(yùn)行速度非常慢,這讓Ken Thompson感覺非常不爽,然后他發(fā)現(xiàn)之前做「PDP-7計(jì)算機(jī)計(jì)劃」項(xiàng)目的時(shí)候還有一臺(tái)PDP-7計(jì)算機(jī),這個(gè)計(jì)算機(jī)就是圖片下面的那個(gè)計(jì)算機(jī),當(dāng)時(shí)應(yīng)該沒有人想到計(jì)算機(jī)可以做到這么小,然后他們就把 GE-635 程序移植到 PDP-7 計(jì)算機(jī)上面。
到了1970年,PDP-7 可以運(yùn)行 GE-635程序了,但是卻只能支持兩個(gè)用戶,當(dāng)時(shí) Brian Kernighan 就開玩笑的稱他們的系統(tǒng)是 “UNiplexed Information and Computing Service”,這個(gè)縮寫就是 UNICS,再后來,大家就取諧音,稱為 UNIX。所以1970 年可以稱為 UNIX元年。
湯姆遜和丹尼斯里奇
PDP-7計(jì)算機(jī)
1.3 BSD操作系統(tǒng)
伯克利軟件套件(英語:Berkeley Software Distribution,縮寫為 BSD ),也被稱為伯克利UNIX(Berkeley UNIX),是一個(gè)操作系統(tǒng)的名稱。衍生于UNIX(類UNIX),1970年代由伯克利加州大學(xué)的學(xué)生比爾·喬伊(Bill Joy)開創(chuàng),也被用來代表其衍生出的各種套件。
BSD 常被當(dāng)作工作站級(jí)別的 UNIX 系統(tǒng),這得歸功于 BSD 用戶許可證非常地寬松,許多 1980 年代成立的計(jì)算機(jī)公司,不少都從 BSD 中獲益,比較著名的例子如 DEC 的 Ultrix,以及 Sun 公司的 SunOS。1990 年代,BSD 很大程度上被 System V 4.x 版以及 OSF/1 系統(tǒng)所取代,但其開源版本被采用,促進(jìn)了因特網(wǎng)的開發(fā)。
BSD 比 Linux 早出現(xiàn),穩(wěn)定性和安全性都在 Linux 之上,甚至 Windows 和 OS X 都有來自 BSD 的代碼,但是現(xiàn)在一提到開源自由軟件,人們首先想到的是Linux,而不是資格更老的BSD。
UNIX創(chuàng)始人之一的 Ken Thompson 曾如此評(píng)價(jià) Linux,「Linux不過是反微軟思潮下的產(chǎn)物」,這個(gè)家伙覺得 Linux 不可能有多大的成就,非常自信的覺得 BSD 在任何時(shí)候都可以擊敗 Linux,甚至覺得Linux 是一個(gè)低端和下流的操作系統(tǒng)內(nèi)核。
但是事實(shí)證明,Linux 贏得了這場戰(zhàn)爭,有實(shí)力,也有些運(yùn)氣,Linux 在發(fā)展的時(shí)候,BSD 當(dāng)時(shí)正被官司纏上,沒有多余的心思應(yīng)戰(zhàn) Linux,而BSD腹背受敵的原因很明顯是因?yàn)樗麄兊纳虡I(yè)化,而Linux正是因?yàn)殚_源而更受全世界開發(fā)者的青睞。
一個(gè)事情的成功,90% 是由他的領(lǐng)導(dǎo)者決定的,就好像一個(gè)球隊(duì)能走多遠(yuǎn),隊(duì)長和教練可以決定它的深度,Linux 也一樣,Linus Torvalds 是位杰出的領(lǐng)袖人物,他成功的讓一群性格迥異的、絕非泛泛之輩的黑客共同合作開發(fā),而沒有如其他開源項(xiàng)目一般分崩離棄。
還有一點(diǎn),Linux 的硬件支持比 BSD 好,這在各種終端設(shè)備上來說簡直就是一種驚喜,隨著PC不斷被邊緣化,移動(dòng)端的產(chǎn)品急需找到一款適合他們的操作系統(tǒng),Linux 是最好不過的人選了。
GNU 的大力支持,GNU 的許可證與 BSD 不兼容,因此 Linux 的出現(xiàn)讓兩者完美結(jié)合,所以現(xiàn)在Linux 全名叫 GNU/Linux。
BSD 走的是教堂式的學(xué)院派路線,而 Linux 則是代表了市集式的駭客精神,BSD很自信,覺得自己是貴族出生,應(yīng)該享受這世界上的榮華富貴,而Linux再一次驗(yàn)證了農(nóng)村包圍城市的必然性,成王敗寇,功敗垂成。
BSD原本就有極佳的根基,缺乏的可能是一點(diǎn)運(yùn)氣,未來或許大有可為。
(點(diǎn)擊查看大圖)
1.4 GNU計(jì)劃的產(chǎn)生
因?yàn)?UNIX 操作系統(tǒng)的商業(yè)化,原來的 UNXI 系統(tǒng)已經(jīng)不能再被隨意的使用,很多人都希望能有一款免費(fèi)好用的操作系統(tǒng),因?yàn)椴⒉皇敲總€(gè)人都很有錢,也不是每個(gè)人都有能力自己去寫操作系統(tǒng),此時(shí),理查·斯托曼在麻省理工學(xué)院人工智能實(shí)驗(yàn)室發(fā)起 GNU 計(jì)劃,希望發(fā)展出一套完整的開放源代碼操作系統(tǒng)來取代 UNIX,計(jì)劃中的操作系統(tǒng),名為 GNU。
1983年9月27日,理查·斯托曼在 net.UNIX-wizards 和 net.usoft 新聞組中公布這項(xiàng)計(jì)劃。在此項(xiàng)計(jì)劃中,開發(fā)出了很多我們現(xiàn)在熟悉的常用的工具,包括GNU編譯器套裝(GCC)、GNU的C庫(glibc)、以及 GNU 核心工具組(coreutils)。另外也是 GNU 除錯(cuò)器(GDB)、GNU 二進(jìn)制實(shí)用程序(binutils)的 GNU Cash shell中 和 GNOME 桌面環(huán)境。
當(dāng)然,GNU計(jì)劃的目的還是開發(fā)出一款自由傳播的操作系統(tǒng),這個(gè)操作系統(tǒng)的名字叫 Hurd,但是由于對(duì)操作系統(tǒng)的要求過高,以至于 Hurd 一直處于測(cè)試階段,本意是一個(gè)好事情,但是能力有限啊,開發(fā)的東西老是出bug,再好的創(chuàng)意那也是徒勞了。
不過 Linus 大神通過 GNU 發(fā)布了自己的 Linux 系統(tǒng)后,就火起來了,真的就一發(fā)不可收拾,這也是為什么 GNU 和 Linux 關(guān)系密切的原因。
1.5 UNIX 衍生系統(tǒng)發(fā)展圖
用文字來描述事實(shí)總是感覺有點(diǎn)欠缺,就好像兩個(gè)人發(fā)生爭執(zhí),可以通過吵嘴解決問題,也可以通過大家解決問題,但是我認(rèn)為打架應(yīng)該是最直接的,你說得再多也沒有槍桿子來得實(shí)在。
本書的重心主要放在 Linux 上,可以觀察 Linux 的發(fā)展軌跡,還是非常給力的,當(dāng)然了,BSD 目前來說市場占有率不能跟 Linux 相提并論,但是他在整個(gè) UNIX 上也有有著自己的一席之地的。
1.6 Linux的導(dǎo)火索MINIX
MINIX啟動(dòng)界面
在 UNIX 產(chǎn)生后,版權(quán)在 AT&T 手里,在 Version 7 UNIX 發(fā)布之后,發(fā)布新的授權(quán)條款,將UNIX 源碼私有化,在大學(xué)不得再使用 UNIX 源碼,荷蘭阿姆斯特丹自由大學(xué)計(jì)算機(jī)科學(xué)系的塔能鮑姆教授(Andrew Stuart "Andy" Tanenbaum)為了教學(xué),自己寫了一個(gè)類 UNIX 的小系統(tǒng),命名為 MINIX(意為mini-UNIX)。
永遠(yuǎn)不要小看任何一個(gè)人,如果這個(gè)人能夠編寫出自己的教學(xué)操作系統(tǒng),你更加不要隨便惹他,你可能不可以,但是下面的這個(gè)家伙是可以的,大家可能都不知道什么是“宏內(nèi)核”和“微內(nèi)核”,但是這個(gè)家伙和 Linus 的辯論轟動(dòng)一時(shí),不管怎么說,Linux 應(yīng)該是現(xiàn)在的勝利者,最直接的原因是開源,讓更多的開發(fā)者可以使用 Linux 內(nèi)核移植到自己的設(shè)備上,包括 ARM 設(shè)備。
但是我們也不能抹殺 ast 的作用,在計(jì)算機(jī)系統(tǒng)的貢獻(xiàn)上,和教學(xué)的貢獻(xiàn)上,肯定是具有一席之地的,作為本文的撰寫者,他們都是我們的始祖,技術(shù)無國界,請(qǐng)收下我的膝蓋。
1.7 Linux 的出生
我們的主角人物,林納斯 托瓦茲(Linus Torvalds)1991年,林納斯·托瓦茲在赫爾辛基大學(xué)上學(xué)時(shí),對(duì)操作系統(tǒng)很好奇。由于但是 386BSD 還沒有出來??墒撬幌矚g他的 386 電腦上的 MS-DOS 操作系統(tǒng),所以就安裝了 Minix,可對(duì) Minix 只允許在教育上使用很不滿(在當(dāng)時(shí) Minix 不允許被用作任何商業(yè)使用),于是他便開始寫他自己的操作系統(tǒng)。
Linux 的第一個(gè)版本在 1991 年 9 月被大學(xué) FTP server 管理員 Ari Lemmke 發(fā)布在 Internet上,最初 Torvalds 稱這個(gè)內(nèi)核的名稱為 「Freax」,意思是自由「free」和奇異「freak」的結(jié)合字,并且附上「X」這個(gè)常用的字母,以配合所謂的類 UNIX 的系統(tǒng)。但是 FTP 服務(wù)器管理員嫌原來的命名「Freax」的名稱不好聽,把內(nèi)核的稱呼改成「Linux」,當(dāng)時(shí)僅有 10000 行代碼,仍必須運(yùn)行于Minix操作系統(tǒng)之上,而且必須使用硬盤開機(jī),隨后在10月份第二個(gè)版本(0.02版)發(fā)布,同時(shí)這位芬蘭赫爾辛基的大學(xué)生在 comp.os.minix 上發(fā)布這樣一則公告
Hello everybody out there using minix- I'm doing a (free) operation system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. |
1994 年 3 月,Linux1.0 版正式發(fā)布。為了讓 Linux 可以在商業(yè)上使用,林納斯·托瓦茲決定更改他原來的協(xié)議(這個(gè)協(xié)議會(huì)限制商業(yè)使用),以 GNU GPL 協(xié)議來代替。之后許多開發(fā)者致力融合 GNU 元素到 Linux 中,做出一個(gè)有完整功能的、自由的操作系統(tǒng)。
80386 的芯片
80386的電腦
如果單憑林納斯一個(gè)人的力量,Linux 不可能發(fā)展到這個(gè)程度,我認(rèn)為在那個(gè)時(shí)候,他做了一個(gè)非常正確的決定,就是「開源」,讓世界上更多的優(yōu)秀程序員加入到他的事業(yè)當(dāng)中,為了讓更多的人同步開發(fā),林納斯還寫了 GIT ,這個(gè)讓很多協(xié)作開發(fā)者為之興奮的工具。
1.8 Linux的標(biāo)志物
Linux 的標(biāo)志和吉祥物是一只名字叫做 Tux 的企鵝,標(biāo)志的由來是因?yàn)?Linus 在澳洲時(shí)曾被一只動(dòng)物園里的企鵝咬了一口,便選擇企鵝作為 Linux的標(biāo)志。更容易被接受的說法是:企鵝代表南極,而南極又是全世界所共有的一塊陸地。這也就代表 Linux 是所有人的 Linux。
曾經(jīng)有一個(gè)笑話說林納斯被企鵝咬了之后,因?yàn)橐н^的傷口會(huì)發(fā)炎,發(fā)炎的時(shí)候傷口會(huì)有點(diǎn)疼,晚上寫代碼想打瞌睡,但是就是因?yàn)檫@個(gè)炎癥的疼痛感刺激著自己,當(dāng)然了,這個(gè)只是個(gè)傳說,傳說是否是真的,哪天大神心情好了可能會(huì)揭曉答案。
1.9 Linux的現(xiàn)狀
今天在 Linus Torvalds 帶領(lǐng)下,眾多開發(fā)共同參與開發(fā)和維護(hù) Linux 內(nèi)核。理查德·斯托曼領(lǐng)導(dǎo)的自由軟件基金會(huì),繼續(xù)提供大量支持 Linux 內(nèi)核的 GNU 組件。一些個(gè)人和企業(yè)開發(fā)的第三方的非 GNU 組件也提供對(duì) Linux 內(nèi)核的支持,這些第三方組件包括大量的作品,有內(nèi)核模塊和用戶應(yīng)用程序和庫等內(nèi)容。Linux 社區(qū)或企業(yè)都推出一些重要的 Linux發(fā)行版,包括 Linux內(nèi)核、GNU組件、非GNU組件,以及其他形式的的軟件包管理系統(tǒng)軟件。
目前這個(gè)階段,可以說每個(gè)人都脫離不開 Linux,好吧,肯定有人跑出來抬杠,我就問你,你手機(jī)底層是 Linux 內(nèi)核你可知道,你說你用的是塞班手機(jī),那里購物的云平臺(tái),淘寶,亞馬遜等都是用 Linux 開發(fā)維護(hù)的,好吧你說你是個(gè)老板,買東西都是別人給你買的,那么你炒股吧,很多股票平臺(tái)都是基于 Linux 開發(fā)維護(hù)的。
1.10 為什么學(xué)習(xí)Linux
Linux 內(nèi)核現(xiàn)在覆蓋的領(lǐng)域非常廣,手機(jī)、平板、路由器等等,就大家非常喜歡的蘋果操作系統(tǒng),底層內(nèi)核也是有 Linux的影子,Linux 的普及毋庸置疑,學(xué)習(xí) Linux 應(yīng)該作為每個(gè)技術(shù)人員的標(biāo)配。
剛開始參加工作的時(shí)候,很多面試官都問我,你對(duì) Linux 是不是非常懂,我每次都回答,我對(duì) Linux 也是剛剛?cè)腴T,但是我非常喜歡Linux ,而且我也會(huì)持續(xù)在 Linux 上面做研究,學(xué)習(xí),我也喜歡和這些 Linux 愛好者一起探討問題。
學(xué)習(xí)完 Linux 內(nèi)核你會(huì)對(duì)整個(gè)計(jì)算機(jī)體系有一個(gè)更深刻的認(rèn)知,作為一個(gè)開發(fā)者,不管你從事的是驅(qū)動(dòng)開發(fā),應(yīng)用開發(fā),還是后臺(tái)開發(fā),你都需要理解計(jì)算機(jī)操作系統(tǒng)和內(nèi)核的運(yùn)行機(jī)制,才可能更好的編寫你的代碼,出現(xiàn)更少的錯(cuò)誤。
作為開發(fā)人員,不應(yīng)該只局限在自己的小領(lǐng)域,因?yàn)槟阍O(shè)計(jì)的模塊,看起來非常小,但是你不了解進(jìn)程的調(diào)用機(jī)制,不知道進(jìn)程會(huì)阻塞,就緒,執(zhí)行幾個(gè)狀態(tài),你怎么可能編寫好一個(gè)低容錯(cuò)率的代碼呢?
-
內(nèi)核
+關(guān)注
關(guān)注
3文章
1378瀏覽量
40343 -
Linux
+關(guān)注
關(guān)注
87文章
11329瀏覽量
209967 -
RTOS
+關(guān)注
關(guān)注
22文章
817瀏覽量
119767
原文標(biāo)題:Linux是怎么來的?終于有一篇文章講清楚了
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論