A. linux 內核的特點有哪些
Linux 是一個開放自由的操作系統內核,具有一些鮮明特點如下:
(1) Linux 是一個一體化內核;
註:「一體化內核」是也稱「宏內核」,是相對於「微內核」而言的。幾乎所有
的嵌入式和實時系統都採用微內核,如 VxWorks、uC/OS-II、PSOS 等。
(2) 可移植性強。盡管 Linus 最初只為在 X86 PC 上實現一個「類 UNIX」,後來隨
著加入者的努力,Linux 目前已經成為支持硬體平台最廣泛的操作系統;
註:目前已經在 X86、IA64、ARM、MIPS、AVR32、M68K、S390、Blackfin、M32R
等眾多架構處理器上運行。
(3) 是一個可裁剪操作系統內核。Linux 極具伸縮性,內核可以任意裁剪,可以大至
幾十或者上百兆,可以小至幾百 K,運行的設備從超級計算機、大型伺服器到
小型嵌入式系統、掌上移動設備或者嵌入式模塊,都可以運行;
(4) 模塊化。Linux 內核採用模塊化設計,很多功能模塊都可以編譯為模塊,可以在
內核運行中動態載入/卸載而無需重啟系統;
(5) 網路支持完善。Linux 內核集成了完整的 POSIX 網路協議棧,網路功能完善;
(6) 穩定性強。運行 Linux 的內核的伺服器可以做到幾年不用復位重啟;
(7) 安全性好。Linux 源碼開放,由眾多黑客參與 Linux 的開發,一旦發現漏洞都能及時修復;
(8) 支持的設備廣泛。Linux 源碼中,設備驅動源碼佔了很大比例,幾乎能支持任何
常見設備,無論是很老舊的設備還是最新推出的硬體設備,幾乎都能找到 Linux下的驅動。致遠電子那邊有很多的,你可以去看一下
B. linux系統的特點是什麼
Linux系統在短短的幾年之內就得到了非常迅猛的發展,
這與Linux系統的良好特性是分不開的。Linux系統包含了UNIX系統的全部功能和特性,簡單地說,
Linux系統具有以下主要特性。
一.開放性
是指系統遵循世界標准規范,特別是遵循開放系統互連(OSI)國際標准。凡遵循國際標准所開發的硬體和軟體,都能彼此兼容,可方便地實現互連。
二.多用戶
是指系統資源可以被不同用戶使用,每個用戶對自己的資源(例如:文件、設備)有特定的許可權,互不影響。Linux和Unix都具有多用戶的特性。
三.多任務
是現代計算機的最主要的一個特點。它是指計算機同時執行多個程序,而且各個程序的運行互相獨立。Linux系統調度每一個進程平等地訪問微處理器。由於CPU的處理速度非常快,其結果是,啟動的應用程序看起來好像在並行運行。事實上,從處理器執行一個應用程序中的一組指令到Linux調度微處理器再次運行這個程序之間只有很短的時間延遲,用戶是感覺不出來的。
四.良好的用戶界面
Linux向用戶提供了兩種界面:用戶界面和系統調用。Linux的傳統用戶界面是基於文本的命令行界面,即shell,它既可以聯機使用,又可存在文件上離線使用。shell有很強的程序設計能力,用戶可方便地用它編製程序,從而為用戶擴充系統功能提供了更高級的手段。可編程Shell是指將多條命令組合在一起,形成一個Shell程序,這個程序可以單獨運行,也可以與其他程序同時運行。 系統調用給用戶提供編程時使用的界面。用戶可以在編程時直接使用系統提供的系統調用命令。系統通過這個界面為用戶程序提供低級、高效率的服務。Linux還為用戶提供了圖形用戶界面。它利用滑鼠、菜單、窗口、滾動條等設施,給用戶呈現一個直觀、易操作、交互性強的友好的圖形化界面。
五.設備獨立性
設備獨立性是指操作系統把所有外部設備統一當作成文件來看待,只要安裝它們的驅動程序,任何用戶都可以象使用文件一樣,操縱、使用這些設備,而不必知道它們的具體存在形式。 具有設備獨立性的操作系統,通過把每一個外圍設備看作一個獨立文件來簡化增
C. 請教如何分析mips linux kernel call trace-CSDN論壇
抄1、
[ 233.110000] Kernel bug detected[#1]:前面的幾行很重要,是襲oops的直接原因,但是你沒有沾上來
2、
[ 233.110000] Call Trace:
[ 233.110000] [<80210d30>] do_ade+0x1c0/0x598
[ 233.110000] [<80200404>] ret_from_exception+0x0/0x10
這個是oops時的調用棧
3、 do_ade+0x1c0/0x598
具體出錯的位置,0x598是do_ade的長度,0x1c0是出錯的指令在do_ade里的偏移。你可以通過反匯編根據0x1c0這個偏移定位到具體的c代碼
D. 基於MIPS指令集的Linux系統與基於X86指令集的Linux系統有什麼區別
MIPS和x86是兩種不同的處理器架構,屬於硬體范疇;
Linux 則是操作系統軟體,它支持包括 MIPS , x86, arm 等各種各樣的處理器架構平台。換句話說,它可以跑在依據不同處理器架構規范實作出來的各種處理器上面。
Linux 大部分的代碼都是由C語言寫成,因為C語言是一種高級別的語言,用它寫的程序可以被編譯成各種指令集中指令所構成的二進制可執行程序。C語言雖然高級別,但是有時候在沒辦法使用C語言的場合(比方為了訪問處理器內不同寄存器就需要使用匯編而非C語言),或者有時候為了追求效率的提升,我們必須得用匯編來寫程序。Linux內核為了支持不同的處理器架構,所以在其代碼中包括了少量的匯編代碼。所以我們可以認為,就內核源代碼級別來說,基於不同指令集的Linux內核是沒有太多區別的。
這是內核,對於不同應用程序來說,我們也可以認為是沒什麼區別,因為應用程序基於C函數庫導出的不同函數,以及Linux內核所提供的系統調用,這些都是C語言介面,所以應用程序都用高級語言寫成,基本上不會使用匯編語言。
如果要真說有什麼區別,那就體現在編譯後出來的二進制代碼上。我們認為那是完全不同的。因為完成同一個功能的二進制代碼,裡麵包含的是來自不同指令集內的不同指令。
就這么多了,您還需要多少詳細的解答?:)
(該解答來自JulianTec - 您在 arm 架構下學習嵌入式Linux的上佳指導。)