顯示具有 什麼是Embedded Linux 標籤的文章。 顯示所有文章
顯示具有 什麼是Embedded Linux 標籤的文章。 顯示所有文章

2009年10月18日 星期日

什麼是Embedded Linux

什麼是Embedded Linux, 這是一個常常被首次接觸的人所問的問題, 要說明Embedded Linux之前先要了解什麼是Linux, 原則上Linux是一個從Unix所修改過來的OS, 而Unix是則是大型電腦主機所使用的一個OS系統, 而Unix則是一個多人多工的作業系統, 因為PC的日益強大, 所以便有人將Unix給予改寫使其可以在PC上使用, 更進一步由於PC的普遍而使有心人將其修改重寫, 並且免費提供使用, 以及開放其原始供大家修改, 讓它可以執行在各種CPU的電腦上。而embedded linux則是將其修改用在embedded的系統中, 因為embedded系統有OS的加入, 將可使embedded更強壯而可以做更多的事, 也因此使得embedded系統更智能化, 也讓embedded系統可以更容易開發及維護。
對於什麼是embedded系統, 也是有很多種說法, 而我們最簡單的說法則是一種專用機器, 而上是有CPU的運算能力, 而它不是一般的泛用型的機器,另外一種的簡單說法, 則是不是PC的其它都是embedded系統。

它通常會由以下幾個部分所組成:
  • SoC的CPU及內建DRAM & Flash
  • boot loader
  • linux kernel (included device drivers)
  • root file system
  • middle ware (daemon) (eg. apache, OpenSSH, iptables...)
  • application
而且在embedded linux中大部分是由C語言所,部分在boot loader & kernel booting會用到組合語言。而在開發embedded linux時你可能會需要以下各方面知識,或者一個具有以下能力的團隊來開發:
  • C language
  • Assembly language
  • 了解如何編譯cross tool chain (compiler & glibc)
  • boot loader
  • Linux kernel
  • linux device driver
  • 了解如何編譯各個middle ware source code by cross compiler
  • 了解Linux系統的開機順序
所以一個完整的embedded linux的開發者所需的知識很廣,而且要深,不然就需要將部分的軟件外包給其他人員。