
這篇簡短的文章描述了Linux內(nèi)核首選的編碼風(fēng)格。編碼風(fēng)格是很個人化的東西,我不會把自己的觀點強加給任何人。但是,Linux內(nèi)核的代碼畢竟是我必須有能力維護的,因此我寧愿它的編碼風(fēng)格是我喜歡的。
匯編語言的優(yōu)點是速度快,可以直接對硬件進行操作,這對諸如圖形處理等關(guān)鍵應(yīng)用是非常重要的。Linux 是一個用 C 語言開發(fā)的操作系統(tǒng),這使得很多程序員開始忘記在 Linux 中還可以直接使用匯編.
gcc和cc是一樣的,c++和g++是一樣的。一般c程序就用gcc編譯,c++程序就用g++編譯
調(diào)度程序運行時,要在所有可運行狀態(tài)的進程中選擇最值得運行的進程投入運行。
本文從Linux內(nèi)核幾種軟中斷機制相互關(guān)系和發(fā)展沿革入手,分析了這些機制的實現(xiàn)方法,給出了它們的基本用法。
2004年4月20日最新版本的GCC編譯器3.4.0發(fā)布了。目前,GCC可以用來編譯C/C++、FORTRAN、JAVA、OBJC、ADA等語言的程序,可根據(jù)需要選擇安裝支持的語言。
眾所周知,內(nèi)核的編譯系統(tǒng)kbuild是個很龐大的系統(tǒng)。但是,它所使用的make和我們平時用的make是一模一樣的。kbuild只是通過預(yù)定義一些變量(obj-m,obj-y等等)和目標(biāo)(bzImage ,menuconfig等等),使內(nèi)核的編譯和擴展變得十分方便。
命令行很有趣。就象用一大堆收集到的積木,竟可以完成許多意想不到的創(chuàng)舉,一些極其復(fù)雜的工作,只需幾行命令就可以解決。這是因為,在 Unix 中,shell 可不是簡單的命令解釋器(典型的有 Windows 中的 DOS ),而是一個全功能的編程環(huán)境。
.“/”對等于DOS下的””(根目錄,意味著所有其他目錄的父目錄,或者是在目錄之間和目錄和文件之間的一個間隔符號)。
如今,日志文件系統(tǒng)(ext3)已經(jīng)成為 Linux 的缺省文件系統(tǒng)。本文向大家揭示了日志文件系統(tǒng)背后的一些思想,以及在電源故障或系統(tǒng)崩潰時,如何提供更好的完整性。此外本文還介紹了現(xiàn)行的幾種日志文件 系統(tǒng)和下一代日志文件系統(tǒng)。
伴隨著 Linux 2.4 版本的發(fā)行,出現(xiàn)了大量的文件系統(tǒng)可能性,其中包括 ReiserFS、XFS、GFS 和其它文件系統(tǒng)。這些文件系統(tǒng)聽起來的確都很酷,但是它們真正能做些什么呢,擅長在哪些方面,以及在 Linux 產(chǎn)品環(huán)境下如何才能安全地使用它們呢?Daniel Robbins 通過向您展示如何在 Linux 2.4 的環(huán)境下建立這些新的高級文件系統(tǒng)來回答以上的問題。遵從這個方法,它提供了在實際實現(xiàn)過程中的有價值的建議、性能信息和重要的技術(shù)性注意要點,以便于您在新的文件系統(tǒng)中能有令人愉快的經(jīng)歷。
介紹 Linux® 的 flash 文件系統(tǒng),并探索它們?nèi)绾瓮ㄟ^平均讀寫(wear leveling)處理底層的可消耗設(shè)備(flash 部件),并鑒別各種不同的 flash 文件系統(tǒng)以及它們的基本設(shè)計。
Linux 內(nèi)核的組織并沒有出現(xiàn)混亂的現(xiàn)象,反而顯得非常的簡潔,而且具有很好的擴展性,開發(fā)人員可以很方便的向 Linux 內(nèi)核中增加新的內(nèi)容。原因之一就是 Linux 采用了模塊化的內(nèi)核配置系統(tǒng),從而保證了內(nèi)核的擴展性。
BusyBox 是很多標(biāo)準(zhǔn) Linux? 工具的一個單個可執(zhí)行實現(xiàn)。BusyBox 包含了一些簡單的工具,例如 cat 和 echo,還包含了一些更大、更復(fù)雜的工具,例如 grep、find、mount 以及 telnet(不過它的選項比傳統(tǒng)的版本要少);有些人將 BusyBox 稱為 Linux 工具里的瑞士軍刀。本文將探索 BusyBox 的目標(biāo),它是如何工作的,以及為什么它對于內(nèi)存有限的環(huán)境來說是如此重要。
通過對嵌入式GUI軟件Microwindows進行分析并與X window進行對比,闡述Microwindows用于嵌入式設(shè)備上的優(yōu)點;簡要論述Microwindows的體系結(jié)構(gòu)和圖形應(yīng)用程序接口;介紹其設(shè)備驅(qū)動特性、API、客戶機/服務(wù)器模型、畫圖機制和FLTK。
由于嵌入式uClinux操作系統(tǒng)的內(nèi)核定制高度靈活性,開發(fā)者可以很容易地對其進行按需配置,來滿足實際應(yīng)用需要。又由于uClinux是源代碼公開,因此開發(fā)人員只有了解內(nèi)核原理就可以自己開發(fā)部分軟件,例如增加各類驅(qū)動程序。
Linux支持多種文件系統(tǒng),包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,為了對各類文件系統(tǒng) 進行統(tǒng)一管理,Linux引入了虛擬文件系統(tǒng)VFS(Virtual File System),為各類文件系統(tǒng)提供一個統(tǒng)一的操作界面和應(yīng)用編程接口。
隨著網(wǎng)絡(luò)控制技術(shù)的快速發(fā)展,工業(yè)以太網(wǎng)得到逐步完善,在工業(yè)控制領(lǐng)域獲得越來越廣泛的應(yīng)用。工業(yè)以太網(wǎng)使用了TCP/IP協(xié)議,便于聯(lián)網(wǎng),并具有高速控制網(wǎng)絡(luò)的優(yōu)點。隨著32位嵌入式CPU價格的下降,性能指標(biāo)的提高,為嵌入式系統(tǒng)的廣泛應(yīng)用和Linux在嵌入式系統(tǒng)中的發(fā)展提供了廣闊的空間。由于Linux的高度靈活性,可以容易地根據(jù)應(yīng)用領(lǐng)域的特點對它進行定制開發(fā),以滿足實際應(yīng)用需要。
Linux 和其他類 UNIX 系統(tǒng)總是附帶了大量的工具,它們執(zhí)行從顯而易見的到不可思議的廣泛功能。類 UNIX 編程環(huán)境的成功很大程度上歸功于工具的高品質(zhì)和選擇,以及這些工具之間相互銜接的簡易性。
時鐘管理是操作系統(tǒng)不可或缺的一個重要組成部分。無論是應(yīng)用程序還是內(nèi)核本身都在大量使用各種各樣的timer。本文介紹了Linux操作系統(tǒng)曾經(jīng)使用和現(xiàn)在正在使用的時鐘管理機制,著重闡述了內(nèi)核時鐘子系統(tǒng)的整體架構(gòu)以及在x86平臺上的應(yīng)用。