歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在嵌入式系統中使用 Linux 的優點和缺點

在嵌入式系統中使用 Linux 的優點和缺點

日期:2017/2/28 16:29:17   编辑:Linux教程

雖然大多數 Linux 系統運行在 PC 平台上,但 Linux 也可以作為嵌入式系統的可靠主力。Linux 流行的“back-to-basics”方法使得它的安裝和管理比 UNIX 更加簡單靈活,這對於那些 UNIX 專家們來說又是一個優點,他們已經因為 Linux 中有許多命令和編程接口同傳統的 UNIX 一樣而賞識它了。

典型的壓縮包裝 Linux 系統經過打包,在擁有硬盤和大容量內存的 PC 機上運行,嵌入式系統可不要這麼高的配置。一個功能完備的 Linux 內核要求大約 1 MB 內存。而 Linux 微內核只占用其中很小一部分內存,包括虛擬內存和所有核心的操作系統功能在內,只需占用 Pentium CPU 系統的 100 K 內存。只要有 500 K 的內存,一個有網絡棧和基本實用程序的完全的 Linux 系統就可以在一台 8 位總線(SX)的 Intel 386 微處理器上運行的很好了。由於內存要求常常是需要的應用所決定的,比如 Web 服務器或者 SNMP 代理,Linux 系統甚至可以僅使用 256 KB ROM 和 512 KB RAM 進行工作。因此它是一個瞄准嵌入式市場的輕量級操作系統。

與傳統的實時操作系統相比(RTOS),采用象嵌入式 Linux 這樣的開放源碼的操作系統的另外一個好處是 Linux 開發團體看來會比 RTOS 的供應商更快地支持新的 IP 協議和其它協議。例如,用於 Linux 的設備驅動程序要比用於商業操作系統的設備驅動程序多,如網絡接口卡(NIC)驅動程序以及並口和串口驅動程序。

閃存

快閃 RAM 內存是大多數 Palm 設備用來存儲操作系統的專用的存儲器。它具有允許操作系統升級的優點,還可以用於數字式蜂窩電話、數字式照相機、LAN 交換機、PC 卡、數字式機頂盒、嵌入式控制器和其它小型設備。嵌入式系統,如嵌入式 Linux,不要求有磁盤驅動器,盡管可能使用其它的內存組織方式。www.linuxidc.com因此如果,打個比方,Linux 用完了閃存,它就可以將其中一部分作為只讀的文件系統來存儲額外的程序和靜態數據。

核心 Linux 操作系統本身的微內核體系結構相當簡單。網絡和文件系統以模塊形式置於微內核的上層。驅動程序和其它部件可在運行時作為可加載模塊編譯到或者是添加到內核。這為構造定制的可嵌入系統提供了高度模塊化的構件方法。而在典型情況下該系統需結合定制的驅動程序和應用程序以提供附加功能。

嵌入式系統也常常要求通用的功能,為了避免重復勞動,這些功能的實現運用了許多現成的程序和驅動程序,它們可以用於公共外設和應用。Linux 可以在外設范圍廣泛的多數微處理器上運行,並早已經有了現成的應用庫。

Linux 用於嵌入式的因特網設備也是很合適的,原因是它支持多處理器系統,該特性使 Linux 具有了伸縮性。因而設計人員可以選擇在雙處理器系統上運行實時應用,提高整體的處理能力。例如,您可以在一個處理器運行 GUI,同時在另一個處理器上運行 Linux 系統。

在嵌入式系統上運行 Linux 的一個缺點是 Linux 體系提供實時性能需要添加實時軟件模塊。而這些模塊運行的內核空間正是操作系統實現調度策略、硬件中斷異常和執行程序的部分。由於這些實時軟件模塊是在內核空間運行的,因此代碼錯誤可能會破壞操作系統從而影響整個系統的可靠性,這對於實時應用將是一個非常嚴重的弱點。

另一方面,現成的 RTOS 完全是為實時性能而設計的,它通過在由用戶而非系統級進程啟動時分配給某個進程以高於其它進程的優先級的方式來實現可靠性。進程在操作系統看來就是在內存裡或硬盤驅動器上執行的程序。給他們指定進程 ID 或者數字標識符為的是讓操作系統跟蹤正在執行的程序和這些程序的相關聯的優先等級。這樣的方式保證了 RTOS 時間能比 Linux 提供更高的可靠性(可預見性)。但最重要的,這還是一種更加經濟的選擇。

不同類型的嵌入式 Linux 系統

已經有許多嵌入式 Linux 系統的示例;可以有把握地說,某種形式的 Linux 能在幾乎任一台執行代碼的計算機上運行。例如,ELKS(可嵌入 Linux 內核子集)方案計劃在 Palm Pilot 上使用 Linux。下面列出了一些更加廣為人知的小型嵌入式 Linux 版本:

ETLinux ― 設計用於在小型工業計算機,尤其是 PC/104 模塊上運行的 Linux 的完全分發版。

LEM ― 運行在 386 上的小型(<8 MB)多用戶、網絡 Linux 版本。

LOAF― “Linux On A Floppy”分發版,運行在 386 上。

uClinux ― 在沒有 MMU 的系統上運行的 Linux。目前支持 Motorola 68K、MCF5206 和 MCF5207 ColdFire 微處理器。

uLinux― 在 386 上運行的 tiny Linux 分發版。

ThinLinux ― 面向專用的照相機服務器、X-10 控制器、MP3 播放器和其它類似的嵌入式應用的最小化的 Linux 分發版。

Copyright © Linux教程網 All Rights Reserved