嵌入式裝置上的 Linux 系統開發(2)

來源:互聯網
上載者:User

嵌入式裝置的檔案系統

系統需要一種以結構化格式儲存和檢索資訊的方法;這就需要檔案系統的參與。Ramdisk(請參閱參考資料)是通過將電腦的 RAM 用作裝置來建立和掛裝檔案系統的一種機制,它通常用於無盤系統(當然包括微型嵌入式裝置,它只包含作為永久儲存媒質的快閃記憶體晶片)。

使用者可以根據可靠性、健壯性和/或增強功能的需求來選擇檔案系統的類型。下一節將討論幾個可用選項及其優缺點。

第二版擴充檔案系統(Ext2fs)
Ext2fs 是 Linux 事實上的標準檔案系統,它已經取代了它的前任 — 擴充檔案系統(或 Extfs)。Extfs 支援的檔案大小最大為 2 GB,支援的最大檔案名稱大小為 255 個字元 — 而且它不支援索引節點(包括資料修改時間標記)。Ext2fs 做得更好;它的優點是:

  • Ext2fs 支援達 4 TB 的記憶體。
  • Ext2fs 檔案名稱最長可以到 1012 個字元。
  • 當建立檔案系統時,管理員可以選擇邏輯塊的大小(通常大小可選擇 1024、2048 和 4096 位元組)。
  • Ext2fs 了實現快速符號連結:不需要為此目的而分配資料區塊,並且將目標名稱直接儲存在索引節點(inode)表中。這使效能有所提高,特別是在速度上。

因為 Ext2 檔案系統的穩定性、可靠性和健壯性,所以幾乎在所有基於 Linux 的系統(包括台式機、伺服器和工作站 — 並且甚至一些嵌入式裝置)上都使用 Ext2 檔案系統。然而,當在嵌入式裝置中使用 Ext2fs 時,它有一些缺點

  • Ext2fs 是為象 IDE 裝置那樣的塊裝置設計的,這些裝置的邏輯塊大小是 512 位元組,1 K 位元組等這樣的倍數。這不太適合於扇區大小因裝置不同而不同的快閃記憶體裝置。
  • Ext2 檔案系統沒有提供對基於扇區的擦除/寫操作的良好管理。在 Ext2fs 中,為了在一個扇區中擦除單個位元組,必須將整個扇區複製到 RAM,然後擦除,然後重寫入。考慮到快閃記憶體裝置具有有限的擦除壽命(大約能進行 100,000 次擦除),在此之後就不能使用它們,所以這不是一個特別好的方法。
  • 在出現電源故障時,Ext2fs 不是防崩潰的。
  • Ext2 檔案系統不支援損耗平衡,因此縮短了扇區/快閃記憶體的壽命。(損耗平衡確保將位址範圍的不同地區輪流用於寫和/或擦除操作以延長快閃記憶體裝置的壽命。)
  • Ext2fs 沒有特別完美的扇區管理,這使設計塊驅動程式十分困難。

由於這些原因,通常相對於 Ext2fs,在嵌入式環境中使用 MTD/JFFS2 組合是更好的選擇。

用 Ramdisk 掛裝 Ext2fs
通過使用 Ramdisk 的概念,可以在嵌入式裝置中建立並掛裝 Ext2 檔案系統(以及用於這一目的的任何檔案系統)。

清單 6. 建立一個簡單的基於 Ext2fs 的 Ramdisk

 mke2fs -vm0 /dev/ram 4096

  mount -t ext2 /dev/ram /mnt
  cd /mnt
  cp /bin, /sbin, /etc, /dev ... files in mnt
  cd ../
  umount /mnt
  dd if=/dev/ram bs=1k count=4096 of=ext2ramdisk

 

mke2fs 是用於在任何裝置上建立 ext2 檔案系統的公用程式 — 它建立超級塊、索引節點以及索引節點表等等。

在上面的用法中,/dev/ram 是上面構建有 4096 個塊的 ext2 檔案系統的裝置。然後,將這個裝置(/dev/ram)掛裝在名為 /mnt 的臨時目錄上並且複製所有必需的檔案。一旦複製完這些檔案,就卸裝這個檔案系統並且裝置(/dev/ram)的內容被轉儲到一個檔案(ext2ramdisk)中,它就是所需的 Ramdisk(Ext2 檔案系統)。

上面的順序建立了一個 4 MB 的 Ramdisk,並用必需的檔案公用程式來填充它。

一些要包含在 Ramdisk 中的重要目錄是:

  • /bin — 儲存大多數象 init、busybox、shell、檔案管理公用程式等二進位檔案。
  • /dev — 包含用在裝置中的所有裝置節點
  • /etc — 包含系統的所有設定檔
  • /lib — 包含所有必需的庫,如 libc、libdl 等

日誌快閃記憶體檔案系統,版本 2(JFFS2)
瑞典的 Axis Communications 開發了最初的 JFFS,Red Hat 的 David Woodhouse 對它進行了改進。第二個版本,JFFS2,作為用於微型嵌入式裝置的原始快閃記憶體晶片的實際檔案系統而出現。JFFS2 檔案系統是日誌結構化的,這意味著它基本上是一長列節點。每個節點包含有關檔案的部分資訊 — 可能是檔案的名稱、也許是一些資料。相對於 Ext2fs,JFFS2 因為有以下這些優點而在無盤嵌入式裝置中越來越受歡迎:

  • JFFS2 在扇區層級上執行快閃記憶體擦除/寫/讀操作要比 Ext2 檔案系統好。
  • JFFS2 提供了比 Ext2fs 更好的崩潰/掉電安全保護。當需要更改少量資料時,Ext2 檔案系統將整個扇區複製到記憶體(DRAM)中,在記憶體中合并新資料,並寫回整個扇區。這意味著為了更改單個字,必須對整個扇區(64 KB)執行讀/擦除/寫常式 — 這樣做的效率非常低。要是運氣差,當正在 DRAM 中合并資料時,發生了電源故障或其它事故,那麼將丟失整個資料集合,因為在將資料讀入 DRAM 後就擦除了快閃記憶體扇區。JFFS2 附加檔案而不是重寫整個扇區,並且具有崩潰/掉電安全保護這一功能。
  • 這可能是最重要的一點:JFFS2 是專門為象快閃記憶體晶片那樣的嵌入式裝置建立的,所以它的整個設計提供了更好的快閃記憶體管理。

因為本文主要是寫關於快閃記憶體裝置的使用,所以在嵌入式環境中使用 JFFS2 的缺點很少:

當檔案系統已滿或接近滿時,JFFS2 會大大放慢運行速度。這是因為垃圾收集的問題(更多資訊,請參閱參考資料)。

建立 JFFS2 檔案系統
在 Linux 下,用 mkfs.jffs2 命令建立 JFFS2 檔案系統(基本上是使用 JFFS2 的 Ramdisk)。

清單 7. 建立 JFFS2 檔案系統

mkdir jffsfile

 cd jffsfile

 

 /* copy all the /bin, /etc, /usr/bin, /sbin/ binaries and /dev entries
that are needed for the filesystem here */

 

 /* Type the following command under jffsfile directory to create the JFFS2 Image */

 

 ./mkfs.jffs2 -e 0x40000 -p -o ../jffs.image

 


上面顯示了 mkfs.jffs2 的典型用法。-e 選項確定快閃記憶體的擦除扇區大小(通常是 64 KB)。-p 選項用來在映像的剩餘空間用零填充。-o 選項用於輸出檔案,通常是 JFFS2 檔案系統映像 — 在本例中是 jffs.image。一旦建立了 JFFS2 檔案系統,它就被裝入快閃記憶體中適當的位置(引導裝載程式告知核心尋找檔案系統的地址)以便核心能掛裝它。

tmpfs
當 Linux 運行於嵌入式裝置上時,該裝置就成為功能齊全的單元,許多守護進程會在後台運行並產生許多日誌訊息。另外,所有核心日誌記錄機制,象 syslogd、dmesg 和 klogd,會在 /var 和 /tmp 目錄下產生許多訊息。由於這些進程產生了大量資料,所以允許將所有這些寫操作都發生在快閃記憶體是不可取的。由於在重新引導時這些訊息不需要持久儲存,所以這個問題的解決方案是使用 tmpfs。

tmpfs 是基於記憶體的檔案系統,它主要用於減少對系統的不必要的快閃記憶體寫操作這一唯一目的。因為 tmpfs 駐留在 RAM 中,所以寫/讀/擦除的操作發生在 RAM 中而不是在快閃記憶體中。因此,日誌訊息寫入 RAM 而不是快閃記憶體中,在重新引導時不會保留它們。tmpfs 還使用磁碟交換空間來儲存,並且當為隱藏檔而請求頁面時,使用虛擬記憶體(VM)子系統。

tmpfs 的優點包括:

  • 動態檔案系統大小 — 檔案系統大小可以根據被複製、建立或刪除的檔案或目錄的數量來縮放。使得能夠最理想地使用記憶體。

速度 — 因為 tmpfs 駐留在 RAM,所以讀和寫幾乎都是瞬時的。即使以交換的形式隱藏檔,I/O 操作的速度仍非常快。

tmpfs 的一個缺點是當系統重新引導時會丟失所有資料。因此,重要的資料不能儲存在 tmpfs 上。

掛裝 tmpfs
諸如 Ext2fs 和 JFFS2 等大多數其它檔案系統都駐留在底層塊裝置之上,而 tmpfs 與它們不同,它直接位於 VM 上。因而,掛裝 tmpfs 檔案系統是很簡單的事:

清單 8. 掛裝 tmpfs

/* Entries in /etc/rc.d/rc.sysinit for creating/using tmpfs */

 # mount -t tmpfs tmpfs /var -o size=512k
 # mkdir -p /var/tmp
 # mkdir -p /var/log
 # ln -s /var/tmp /tmp

 

上面的命令將在 /var 上建立 tmpfs 並將 tmpfs 的最大大小限制為 512 K。同時,tmp/ 和 log/ 目錄成為 tmpfs 的一部分以便在 RAM 中儲存日誌訊息。

如果您想將 tmpfs 的一個項添加到 /etc/fstab,那麼它可能看起來象這樣:

tmpfs /var tmpfs size=32m 0 0

這將在 /var 上掛裝一個新的 tmpfs 檔案系統。

圖形化使用者介面(GUI)選項
從使用者的觀點來看,圖形化使用者介面(GUI)是系統的一個最至關重要的方面:使用者通過 GUI 與系統進行互動。所以 GUI 應該便於使用並且非常可靠。但它還需要是有記憶體意識的,以便在記憶體受限的、微型嵌入式裝置上可以無縫執行。所以,它應該是輕量級的,並且能夠快速裝入。

另一個要考慮的重要方面涉及許可證問題。一些 GUI 分發版具有允許免費使用的許可證,甚至在一些商業產品中也是如此。另一些許可證要求如果想將 GUI 合并入項目中則要支付版稅。

最後,大多數開發人員可能會選擇 XFree86,因為 XFree86 為他們提供了一個能使用他們喜歡的工具的熟悉環境。但是市場上較新的 GUI,象 Century Software 的 Microwindows(Nano-X)和 Trolltech 的 QT/Embedded,與 X 在嵌入式 Linux 的競技舞台中展開了激烈競爭,這主要是因為它們佔用很少的資源、執行的速度很快並且具有定製視窗構件的支援。

讓我們看一看這些選項中的每一個。

Xfree86 4.X(帶框架緩衝區支援的 X11R6.4)
XFree86 Project, Inc. 是一家生產 XFree86 的公司,該產品是一個可以免費重複分發、開放源碼的 X Window 系統。X Window 系統(X11)為應用程式以圖形方式進行顯示提供了資源,並且它是 UNIX 和類 UNIX 的機器上最常用的視窗系統。它很小但很有效,它運行在為數眾多的硬體上,它對網路透明並且有良好的文檔說明。X11 為視窗管理、事件處理、同步和客戶機間通訊提供強大的功能 — 並且大多數開發人員已經熟悉了它的 API。它具有對核心框架緩衝區的內建支援,並佔用非常少的資源 — 這非常有助於記憶體相對較少的裝置。X 伺服器支援 VGA 和非 VGA 圖形卡,它對色彩深度 1、2、4、8、16 和 32 提供支援,並對渲染提供內建支援。最新的發行版是 XFree86 4.1.0。

它的優點包括:

  • 框架緩衝區體繫結構的使用提高了效能。
  • 佔用的資源相對很小 — 大小在 600 K 到 700 K 位元組的範圍內,這使它很容易在小型裝置上運行。
  • 非常好的支援:線上有許多文檔可用,還有許多專用於 XFree86 開發的郵遞列表。
  • X API 非常適合擴充。

它的缺點包括:

  • 比最近出現的嵌入式 GUI 工具效能差。
  • 此外,當與 GUI 中最新的開發 — 象專門為嵌入式環境設計的 Nano-X 或 QT/Embedded — 相比時,XFree86 似乎需要更多的記憶體。

Microwindows
Microwindows 是 Century Software 的開放原始碼項目,設計用於帶小型顯示單元的微型裝置。它有許多針對現代圖形視窗環境的功能組件。象 X 一樣,有多種平台支援 Microwindows。

Microwindows 體繫結構是基於客戶機/伺服器的並且具有分層設計。最底層是螢幕和輸入裝置驅動程式(關於鍵盤或滑鼠)來與實際硬體互動。在中介層,可移植的圖形引擎提供對線的繪製、地區的填充、多邊形、裁剪以及顏色模型的支援。

在最上層,Microwindows 支援兩種 API:Win32/WinCE API 實現,稱為 Microwindows;另一種 API 與 GDK 非常相似,它稱為 Nano-X。Nano-X 用在 Linux 上。它是象 X 的 API,用於佔用資源少的應用程式。

Microwindows 支援 1、2、4 和 8 bpp(每像素的位元)的 palletized 顯示,以及 8、16、24 和 32 bpp 的真彩色顯示。Microwindows 還支援使它速度更快的框架緩衝區。Nano-X 伺服器佔用的資源大約在 100 K 到 150 K 位元組。

原始 Nano-X 應用程式的平均大小在 30 K 到 60 K。由於 Nano-X 是為有記憶體限制的低端裝置設計的,所以它不象 X 那樣支援很多函數,因此它實際上不能作為微型 X(Xfree86 4.1)的替代品。

可以在 Microwindows 上運行 FLNX,它是針對 Nano-X 而不是 X 進行修改的 FLTK(快速輕巧工具箱(Fast Light Toolkit))應用程式開發環境的一個版本。本文中描述 FLTK。

Nano-X 的優點包括:

  • 與 Xlib 實現不同,Nano-X 仍在每個客戶機上同步運行,這意味著一旦發送了客戶機請求包,伺服器在為另一個客戶機提供服務之前一直等待,直到整個包都到達為止。這使伺服器代碼非常簡單,而啟動並執行速度仍非常快。
  • 佔用很小的資源

Nano-X 的缺點包括:

  • 連網功能組件至今沒有經過適當地調整(特別是網路透明性)。
  • 還沒有太多現成的應用程式可用。
  • 與 X 相比,Nano-X 雖然近來正在加速開發,但仍沒有那麼多文檔說明而且沒有很好的支援,但這種情形會有所改變。

Microwindows 上的 FLTK API
FLTK 是一個簡單但靈活的 GUI 工具箱,它在 Linux 世界中贏得越來越多的關注,它特別適用於佔用資源很少的環境。它提供了您期望從 GUI 工具箱中獲得的大多數視窗構件,如按鈕、對話方塊、文字框以及出色的"賦值器"選擇(用於輸入數值的視窗構件)。還包括滑動器、捲軸、刻度盤和其它一些構件。

針對 Microwindows GUI 引擎的 FLTK 的 Linux 版本被稱為 FLNX。FLNX 由兩個組件構成:Fl_Widget 和 FLUID。Fl_Widget 由所有基本視窗構件 API 組成。FLUID(快速輕巧的使用者介面設計器(Fast Light User Interface Designer, FLUID))是用來產生 FLTK 原始碼的圖形編輯器。總的來說,FLNX 是能用來為嵌入式環境建立應用程式的一個出色的 UI 構建器。

Fl_Widget 佔用的資源大約是 40 K 到 48 K,而 FLUID(包括了每個視窗構件)大約佔用 380 K。這些非常小的資源佔用率使 Fl_Widget 和 FLUID 在嵌入式開發世界中非常受歡迎。

優點包括:

  • 習慣於在象 Windows 這樣已建立得較好的環境中開發基於 GUI 的應用程式的任何人都會非常容易地適應 FLTK 環境。
  • 它的文檔包括一本十分完整且編寫良好的手冊。
  • 它使用 LGPL 進行分發,所以開發人員可以靈活地發放他們應用程式的許可證。
  • FLTK 是一個 C++ 庫(Perl 和 Python 綁定也可用)。物件導向模型的選擇是一個好的選擇,因為大多數現代 GUI 環境都是物件導向的;這也使將編寫的應用程式移植到類似的 API 中變得更容易。
  • Century Software 的環境提供了幾個有用的工具,諸如 ScreenToP 和 ViewML 瀏覽器。

它的缺點是:

  • 普通的 FLTK 可以與 X 和 Windows API 一同工作,而 FLNX 不能。它與 X 的不相容性阻礙了它在許多項目中的使用。

Qt/Embedded
Qt/Embedded 是 Trolltech 新開發的用於嵌入式 Linux 的圖形化使用者介面系統。Trolltech 最初建立 Qt 作為跨平台的開發工具用於 Linux 台式機。它支援各種有 UNIX 特點的系統以及 Microsoft Windows。KDE — 最流行的 Linux 案頭環境之一,就是用 Qt 編寫的。

Qt/Embedded 以原始 Qt 為基礎,並做了許多出色的調整以適用於嵌入式環境。Qt Embedded 通過 Qt API 與 Linux I/O 設施直接互動。那些熟悉並已適應了物件導向編程的人員將發現它是一個理想環境。而且,物件導向的體繫結構使代碼結構化、可重用並且運行快速。與其它 GUI 相比,Qt GUI 非常快,並且它沒有分層,這使得 Qt/Embedded 成為用於運行基於 Qt 的程式的最緊湊環境。

Trolltech 還推出了 Qt 掌上機環境(Qt Palmtop Environment,俗稱 Qpe)。Qpe 提供了一個基本桌面視窗,並且該環境為開發提供了一個便於使用的介面。Qpe 包含全套的個人資訊管理(Personal Information Management (PIM))應用程式、網際網路客戶機、公用程式等等。然而,為了將 Qt/Embedded 或 Qpe 整合到一個產品中,需要從 Trolltech 獲得商業許可證。(原始 Qt 自版本 2.2 以後就可以根據 GPL 獲得 。)

它的優點包括:

  • 物件導向的體繫結構有助於更快地執行
  • 佔用很少的資源,大約 800 K
  • 消除鋸齒文本和混合視頻的象素映射

它的缺點是:

  • Qt/Embedded 和 Qpe 只能在獲得商業許可證的情況下才能使用。

結束語
嵌入式 Linux 開發正迅速地發展著。您必須學習並從引導裝載程式和分發版到檔案系統和 GUI 中的每一個事物的各種選項中作出選擇。但是要感謝有這種選擇自由度以及非常活躍的 Linux 社區,Linux 上的嵌入式開發已經達到了新的境界,並且調整模組以適合您的規範從未比現在更簡單。這已經導致出現了許多時新的手持和微型裝置作為開放盒,這是件好事 — 因為事實是您不必成為一個專家從這些模組中進行選擇來調整您的裝置以滿足您自己的要求和需要。

我們希望這篇對嵌入式 Linux 領域的介紹性概述能激起您進行實驗的慾望,並且希望您將體會擺弄微型裝置的樂趣以滿足您的愛好。為進一步有助於您的項目,請參閱下面的"參考資料",連結到有關我們這裡已經概述的技術的更深入的資訊。

 

參考資料

·         引導

  • 如需獲得對 vmlinux 和 zimage 之間區別的極好解釋,請在 Alessandro Rubini 編寫的"Kernel Configuration: dealing with the unexpected(Linux Magazine)的一文中找到"Booting your kernel"一節。
  • 有關核心、映像和引導過程的更多資訊,請閱讀中央昆士蘭大學(Central Queensland University)的系統管理文本的第 13 章。
  • 要進一步瞭解引導過程的工作原理,請參閱 ROLO: A Developer's Guide,它討論了在不利用 BIOS 的情況下引導 Linux(Embedded Linux Works,2001 年 6 月)。

·         小型分發版

  • The Embedded Linux Distributions Quick Reference Guide 涵蓋了許多商業的和開放源碼的分發版(Linux Devices,2001 年 8 月)。
  • 請查看另一個詳盡的分發版和有用的工具的清單(Linux-embedded.com)。

·         工具鏈

  • Wiki 工具鏈頁麵包含到本文提到的所有三個工具鏈的連結,還有對它們的評論。

·         裝置驅動程式

  • Memory Technology Device (MTD) Subsystem for Linux 的目的是簡化記憶體裝置(特別是快閃記憶體裝置)的驅動程式的建立。
  • Vipin Malik 編寫的 The Linux MTD, JFFS HOWTO 將協助您使 MTD 和 JFFS2 一起工作。
  • Linux for PowerPC Embedded Systems HOWTO 有一個很好的裝置驅動程式清單。
  • 理解 Linux device drivers 有助於理解本篇介紹性文章(Penguin Magazine)。
  • 要精通 Linux 裝置驅動程式,請閱讀 O'Reilly 的 Linux Device Drivers,第 2 版一書。

·         有用的工具

  • 請查看 LART 上的 Jflash-linux。
  • Binutils、GCC 和 Glibc 都可從 Free Software Foundation 下載獲得。
  • 許多有用的下載都可從 Netwinder.org 獲得,這是一個致力於 NetWinder 平台上開發工作的志願者網站。
  • 請在 Mark Nielsen 寫得非常棒的 How to use a Ramdisk for Linux 一文中閱讀有關 Ramdisk 的所有資訊。
  • FLNX 是以 FLTK(快速輕巧的工具箱)為基礎的。

·         檔案系統

  • 第二版擴充檔案系統 Ext2fs 的首頁在 SourceForge。
  • Red Hat 英國公司的 David Woodhouse 概述了大量有關 JFFS2:日誌快閃記憶體檔案系統,第 2 版的背景知識。
  • Vipin Malik 的 JFFS - A practical guide 一文也詳細討論了 JFFS,包括垃圾收集的問題(Embedded Linux Works,2001 年 5 月)。
  • 您可以在 Linux HeadQuarters 閱讀更多有關 tmpfs 的資訊。
  • Cliff Brake 和 Jeff Sutherland 編寫的 Flash Filesystems for Embedded Linux Systems 一文論述了用於快閃記憶體裝置的更多檔案系統(Embedded Linux Journal)。

·         GUI

  • Xfree86 是 X 開發的首頁。
  • 在 Microwindows 網站上可以找到有關 Microwindows 和 Nano-X 的資訊。
  • 請查看一篇對 Microwindows 的一些缺點(GNOME gtk 開發人員的郵遞列表)的討論(時間比較長了)。
  • 您將在 Microwindows Project Links 上找到豐富的 Microwindows/Nano-X 連結。
  • 在 Trolltech 上尋找有關 Qt/Embedded 的更多資訊。
  • The Embedded Linux GUI/Windowing Quick Reference Guide 中有豐富的連結(Linux Devices,2002 年 2 月)。

·         一般參考資料

  • General Public License 或 GPL 確保使用者複製、分發和修改軟體的權利。
  • ARM Linux 是您瞭解有關 Linux 用於 ARM 處理器的資訊的一個非常好的網站。它由 ARM 的建立者 Russell King 來維護。
  • Penguinppc.org 是關於 Linux 用於 PowerPC 系列處理器的的首頁。該網站上有一個關於為基於 PPC 的體繫結構建立工具鏈的資料豐富的教程。
  • Linux Devices 是一個非常全面的網站,它包含有關 Linux 和嵌入式開發的出版發行、快速參考、新聞和特色報告等各種資訊。
  • Silicon Penguin 列表網站上擁有嵌入式 Linux 參考資料的詳盡集合。
  • ARMLinux - the book 可從 Aleph One 上獲得。您可以定購一本,也可以線上閱讀。
  • 嵌入式 Linux 協會(Embedded Linux Consortium)是一個非贏利的互助協會,它歡迎致力於嵌入式 Linux 領域的開發人員成為會員。
  • 訪問 IBM 關於嵌入式 Linux 的首頁,獲得新聞、產品和開發人員參考資料。
  • IBM 的 Linux wristwatch 是運行 Linux 的微型嵌入式裝置的樣本;本文的作者之一,Vishal Kulkarni 也參與了它的研發。請在 IBM's Linux Watch: The Challenge of Miniaturization(PDF 格式),或本文(FreeOS.com,2001 年 3 月)中閱讀有關它的資訊。
  • developerWorks 上瀏覽更多 Linux 參考資料。
  • developerWorks 上瀏覽更多無線領域的參考資料。

關於作者
Anand K Santhanam 在印度 Madras 大學獲得電腦科學工學學士學位。自 1999 年 7 月以來他一直在印度為 IBM Global Services(軟體實驗室)工作。他是 IBM Linux 小組的成員,這個小組主要致力於嵌入式系統中的 ARM-Linux、裝置驅動程式和電源管理的研究和開發。他感興趣的其它領域是 O/S 本質和連網。可以通過 asanthan@in.ibm.com 與他聯絡。

Vishal Kulkarni 從印度 Maharashtra 的 Shivaji 大學獲得電子工程的學士學位。自 1999 年 3 月以來他一直在印度為 IBM Global Services(軟體實驗室)工作。在此之前,他曾在美國 IBM Austin 工作了一年半多。他是 IBM Linux 小組的成員,這個小組主要致力於嵌入式裝置上的 ARM-Linux、裝置驅動程式和 GUI。他感興趣的其它領域是 O/S 本質和連網。可以通過 kvishal@in.ibm.com 與他聯絡。

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.