Linux嵌入式系統(tǒng)高級程序設(shè)計

出版時間:20101015  出版社:人民郵電出版社  作者:Gene Sally  頁數(shù):336  譯者:郭旭  
Tag標(biāo)簽:無  

前言

在大約十年前進(jìn)入嵌入式Linux領(lǐng)域時,我面對的一個問題是:我是不是應(yīng)該使用操作系統(tǒng)?選擇Linux意味著經(jīng)常需要將該操作系統(tǒng)移植到目標(biāo)硬件上運(yùn)行,并聯(lián)編移植所需的工具。隨著時間的流逝,事情有了很大的變化,對許多項(xiàng)目來說Linux已經(jīng)是默認(rèn)選項(xiàng),而需要決策的是在具體項(xiàng)目上應(yīng)該使用該操作系統(tǒng)的哪些特性。如今的問題是:我應(yīng)該如何配置我的Linux發(fā)布版?用技術(shù)術(shù)語來說,這是開發(fā)者態(tài)度在很短的時間范圍內(nèi)所發(fā)生的巨大轉(zhuǎn)變。 在嵌入式領(lǐng)域,Linux是如此普遍,以至于嵌入式處理器和開發(fā)板默認(rèn)情況下都附帶了Linux。買家都期望開發(fā)板會啟動Linux,并帶有隨硬件一同提供的、進(jìn)行嵌入式開發(fā)所需的工具。不同于Linux發(fā)展的早期階段,現(xiàn)在的開發(fā)者無需把Linux移植到相應(yīng)的開發(fā)板上,只需要對一個已經(jīng)能夠運(yùn)行的Linux內(nèi)核和根文件系統(tǒng)進(jìn)行配置,使之適合應(yīng)用的需求即可。 著眼于這樣的背景,我以一個用戶的視角來撰寫本書:他即將開始其項(xiàng)目,而手頭已經(jīng)有一個可以在開發(fā)板上運(yùn)行的Linux發(fā)布版。這不見得是最終隨產(chǎn)品交付的Linux發(fā)布版,但很可能作為開發(fā)的起點(diǎn)。本書描述了諸如從頭開始構(gòu)建交叉編譯器之類的任務(wù),以便讀者理解,但讀者或許會使用與開發(fā)板一同提供的交叉編譯器,這樣讀者就可以集中精力開發(fā)實(shí)際的應(yīng)用。但學(xué)習(xí)構(gòu)建和配置用于Linux系統(tǒng)的工具絕非浪費(fèi),當(dāng)讀者需要從你的系統(tǒng)中壓榨出內(nèi)存的每一位時,這些就成為基本功了。 更進(jìn)一步,對于新的片上系統(tǒng)(System on a Chip, SOC)式設(shè)計,開發(fā)板附帶的Linux發(fā)布版帶有芯片上的設(shè)備所需的所有驅(qū)動程序。需要開發(fā)驅(qū)動程序的情形是比較罕見的。這意味著,大多數(shù)工程師把時間花費(fèi)在內(nèi)核的定制上,而不需要構(gòu)建新的內(nèi)核組件,而花費(fèi)在所有內(nèi)核配置和開發(fā)方面的總時間,只是過去幾年的幾分之一。 隨著嵌入式設(shè)備中的處理器變得更為強(qiáng)大,開發(fā)者逐漸發(fā)現(xiàn)可以使用C以外的語言進(jìn)行開發(fā)。將C++用于開發(fā)已經(jīng)很常見,還有其他高級語言如Python、TCL、Java,甚至Perl或PHP。對于使用匯編語言開始嵌入式開發(fā)的人來說,在嵌入式目標(biāo)機(jī)上使用類似Perl的語言幾乎是異端(如果不算是叛教的話)。但這些高級語言可以大大提高嵌入式開發(fā)的效率。在上市時間至關(guān)重要的環(huán)境下,高級語言顯然會成為主流。 嵌入式項(xiàng)目的開發(fā)過程不同于其他的軟件項(xiàng)目。首先會有一個設(shè)計過程,這涉及建立一個專用的容器,以及一個用戶界面(可能是一個小的LCD顯示器和一些按鈕)。但更重要的是軟件的部署和更新。項(xiàng)目的代碼不會放到CD或網(wǎng)站上,而必須下載到帶有Linux發(fā)布版的目標(biāo)板上。在軟件最初安裝后,可能需要將其更新為包含bug修正或其他特性的新版本。根據(jù)系統(tǒng)的配置方式,更新系統(tǒng)本身可能會成為另一個項(xiàng)目。 如果讀者是在工作中開始一個嵌入式項(xiàng)目,或購買了某種面向計算機(jī)業(yè)余愛好者的比較廉價的開發(fā)板,我預(yù)祝你的努力能夠獲得好運(yùn)。與以前任何時候相比,目前在嵌入式項(xiàng)目中使用Linux都更為容易,且有更多樂趣。

內(nèi)容概要

時至今日,多數(shù)嵌入式產(chǎn)品中都有l(wèi)inux的身影。嵌入式開發(fā)人員可以使用更先進(jìn)的方法、花費(fèi)更多的時間來調(diào)優(yōu)linux,并可以利用開源代碼構(gòu)建健壯的、特性豐富的應(yīng)用程序?! ”緯鴥?nèi)容新穎、邏輯嚴(yán)密,全面介紹了linux嵌入式開發(fā)環(huán)境,還進(jìn)一步就目標(biāo)板和開發(fā)環(huán)境的選擇提供了建議。全書以項(xiàng)目方式帶領(lǐng)讀者一步步深入嵌入式linux開發(fā)的各種技術(shù),分析了開發(fā)中的常見問題?! ∪绻闶菍I(yè)的嵌入式開發(fā)人員,并對linux開發(fā)有基本的了解,那么本書恰好適合你閱讀。

作者簡介

Gene Sally 從十幾歲就開始接觸計算機(jī),有著近10年的嵌入式項(xiàng)目開發(fā)經(jīng)驗(yàn)。利用Linux開發(fā)過會計、保險處理、社會福利系統(tǒng)以及電信管理軟件的測試軟件。曾任職于一家專門開發(fā)嵌入式Linux工具和發(fā)布版的公司,擔(dān)任過工程師、培訓(xùn)師、技術(shù)支持等職務(wù)。

書籍目錄

第1章 嵌入式linux簡介 第2章 配置軟件環(huán)境 第3章 目標(biāo)機(jī)仿真與虛擬機(jī) 第4章 開始你的項(xiàng)目 第5章 獲取對應(yīng)于目標(biāo)板的linux 第6章 從頭開始創(chuàng)建linux發(fā)布版 第7章 啟動目標(biāo)板 第8章 配置應(yīng)用開發(fā)環(huán)境 第9章 應(yīng)用開發(fā) 第10章 調(diào)試應(yīng)用程序 第11章 內(nèi)核配置和開發(fā) 第12章 實(shí)時 第13章 使用開源軟件項(xiàng)目 第14章 busybox 第15章 系統(tǒng)設(shè)計 第16章 系統(tǒng)微調(diào) 第17章 部署應(yīng)用程序 第18章 處理現(xiàn)場更新

章節(jié)摘錄

插圖:1.基于標(biāo)準(zhǔn)Linux操作系統(tǒng)和相關(guān)的開源項(xiàng)目遵守工業(yè)標(biāo)準(zhǔn)。大多數(shù)情況下,可用的開源實(shí)現(xiàn)是某個標(biāo)準(zhǔn)的規(guī)范或參考實(shí)現(xiàn)。參考實(shí)現(xiàn)包含了對規(guī)范的解釋,是一致性測試的基礎(chǔ)。簡言之,參考實(shí)現(xiàn)是用于度量其他實(shí)現(xiàn)的標(biāo)準(zhǔn)。如果讀者不熟悉參考實(shí)現(xiàn)的概念,可能會有點(diǎn)困惑。例如,POSIX中用于處理線程和進(jìn)程間通信的部分,通常稱作標(biāo)準(zhǔn)組是IEEE(Institute of Electricaland Electronics Engineers,電氣和電子工程師協(xié)會)的一部分,它是一個委員會,設(shè)計了用于與線程交互的API,但該標(biāo)準(zhǔn)的實(shí)現(xiàn)則由另一個標(biāo)準(zhǔn)組完成。實(shí)際上,在標(biāo)準(zhǔn)的工作開始時,委員會的一個或多個參與者會自愿創(chuàng)建相關(guān)的代碼,即參考實(shí)現(xiàn)。參考實(shí)現(xiàn)會包括一個測試套件,其他實(shí)現(xiàn)需要通過測試套件,才能證明相關(guān)代碼是按照規(guī)范編寫的。使用基于標(biāo)準(zhǔn)的軟件,不僅關(guān)系到質(zhì)量,也關(guān)系到平臺無關(guān)性。項(xiàng)目基于遵守標(biāo)準(zhǔn)的軟件,可以減少因?yàn)樘囟ㄓ趶S商的特性而鎖定到具體平臺的可能性。廠商可能是善意的,但這些額外特性的好處通常會因?yàn)槿狈ゲ僮餍院妥杂蛇x擇權(quán)而被抵消,互操作性和自由選擇權(quán)已經(jīng)悄然成為商業(yè)事務(wù)的一部分,但很少被認(rèn)真考慮。在一個有許多嵌入式設(shè)備建立連接(很多時候是連接到任意的系統(tǒng),而非彼此連接)的世界里,標(biāo)準(zhǔn)變得越發(fā)重要。以太網(wǎng)是一種這樣的連接方法,但還有其他選擇,如Zigbee、CANbus、SCSI,這只是其中幾個例子而已。2.進(jìn)程隔離與控制Linux內(nèi)核在最基本的層面上,以通用API的形式提供了這些服務(wù),供訪問系統(tǒng)資源之用。管理任務(wù),使之與內(nèi)核彼此隔離。提供統(tǒng)一接口,供訪問系統(tǒng)硬件資源之用。當(dāng)存在爭用時,充當(dāng)資源的仲裁者。這些是非常重要的特性,與硬件和資源訪問未能得到嚴(yán)密管理的環(huán)境相比,這些特性將產(chǎn)生一個更為穩(wěn)定的環(huán)境。例如,在沒有操作系統(tǒng)時,每個運(yùn)行的程序?qū)λ锌捎玫奈锢韮?nèi)存都具有同等訪問權(quán)限。這意味著,一個程序中的溢出錯誤,將會寫入到由另一個程序使用的內(nèi)存中,除非對系統(tǒng)中所有的代碼進(jìn)行檢查,否則第二個程序的失敗原因會看似神秘而無法解釋。資源爭用的概念是比較復(fù)雜的,不僅僅只是確保兩個進(jìn)程不會同時向串口寫數(shù)據(jù)這樣簡單,稀缺的資源是處理器時間,而操作系統(tǒng)可以決定在何時運(yùn)行哪個進(jìn)程,以便最大化所能處理的工作量。

媒體關(guān)注與評論

“如果你從事Linux嵌入式開發(fā),此書絕對不容錯過?!薄  獊嗰R遜讀者討論

編輯推薦

《Linux嵌入式系統(tǒng)高級程序設(shè)計》:Linux嵌入式系統(tǒng)開發(fā)最新動態(tài),以項(xiàng)目方式揭示Linux嵌入式開發(fā)的全過程,嵌入式系統(tǒng)開發(fā)人員必備。

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    Linux嵌入式系統(tǒng)高級程序設(shè)計 PDF格式下載


用戶評論 (總計13條)

 
 

  •   其實(shí)不是關(guān)于“程序設(shè)計”的一本書,叫做“Linux嵌入式系統(tǒng)設(shè)計”就可以了。涵蓋了嵌入式Linux的多個方面,讀之有助于縱觀全局。
  •   linux嵌入式必備
  •   畢竟是外國人寫的書,介紹角度與國產(chǎn)嵌入式linux書籍差別很大。但總體感覺還可以
  •   喜歡這種對技術(shù)開發(fā)全過程和細(xì)節(jié)深入描述和探討的教材!
  •   并非適用所有人,對技術(shù)有瘋狂熱愛的看看吧。
  •   這本書適合有一定的基礎(chǔ)的開發(fā)者,入門級地看起來有點(diǎn)難度
  •   沒細(xì)看,詳評以后再寫吧
  •   原以為是一本多么經(jīng)典的書,一天都翻得差不多了,覺得跟高級兩個字一點(diǎn)也掛不上鉤啊! 我就是看到高級程序設(shè)計這幾個字才買的,看完了覺得自己好像什么東西都沒有學(xué)到,唉! 不過,送貨的速度還是值得表揚(yáng)的。。。
  •   幫同學(xué)買的,他說書中的內(nèi)容為深入,點(diǎn)到為止
  •   113頁mknod null c 3 1應(yīng)該是mknod null c 1 3
  •   推薦從事嵌入式開發(fā)的朋友購買,由淺入深,娓娓道來,適合初學(xué)者和中等程度的工程師使用以下是亞馬遜網(wǎng)站上的兩個評論--------------------------“對嵌入式Linux開發(fā)最廣泛、最新的見解”在嵌入式Linux領(lǐng)域,這是一本極佳的開發(fā)者指南,這個領(lǐng)域可選的書籍很多,這本書有幾個特性值得推薦。這本書特別新,在嵌入式Linux環(huán)境方面有廣闊且富于教育意義的視角,并花費(fèi)了一些額外的功夫:對目標(biāo)板和開發(fā)環(huán)境的選擇提出建議(包括如何進(jìn)行選擇,和其他一些不那么容易過時的信息),并描述了整個嵌入式Linux開發(fā)過程。該書描述了如何選擇目標(biāo)板和伴隨的開發(fā)環(huán)境,在獲得目標(biāo)板后需要做什么、如何啟動目標(biāo)板、如何開發(fā)一個定制的Linux環(huán)境、如何調(diào)試應(yīng)用程序、硬實(shí)時/軟實(shí)時需求的本質(zhì)、系統(tǒng)微調(diào)、如何處理對軟件的現(xiàn)場更新,等等。本書中有一章對每一種嵌入式系統(tǒng)開發(fā)都非常重要(不僅僅是Linux),但其他書中基本上沒有見到,是第17章“部署應(yīng)用程序”。這一章討論了創(chuàng)建一流的嵌入式最終產(chǎn)品的所有問題。這些問題不僅包括最終交付的硬件和軟件,還包括與機(jī)械設(shè)計、工業(yè)設(shè)計、制造設(shè)計等環(huán)節(jié)及可部署的啟動裝載程序和文件系統(tǒng)的“系統(tǒng)集成”。本書內(nèi)容極佳,平易近人,在構(gòu)建嵌入式Linux系統(tǒng)方面很有價值,不僅適用于開發(fā)者。對愛好者和其他領(lǐng)域的人...員來說,如果試著將應(yīng)用程序部署到最新發(fā)布的Beagelboard、Bug Labs和Gumstix嵌入式Linux系統(tǒng)上,本書也很有價值。--Ira Laefsky MSE/MBAIT咨詢師,Arthur D.Little公司和DEC公司前高級技術(shù)人員--------------------------“接觸第一個嵌入式Linux項(xiàng)目的最自然方式”我在一年前進(jìn)入到嵌入式Linux領(lǐng)域。閱讀的第一批書是Yaghmour和Hallinan的書。這些書很好,但這并不意味著Sally的書是多余的。我喜歡這本書的地方在于,它用項(xiàng)目的方式使讀者掌握的一個嵌入式Linux項(xiàng)目。其章節(jié)排布順序和內(nèi)容深度極佳。我覺得本書的闡述是學(xué)習(xí)這些內(nèi)容的很自然的方式。在本書開頭,Sally詳細(xì)指出了找一塊能運(yùn)行Linux(帶有良好支持)的評估板的好處。利用這種板子,你可以探索需要改變的東西。注意,這與普通的方式有很大區(qū)別,可以避免開發(fā)過程中的部分缺陷。接下來,Sally探討了不同的Linux發(fā)布版和可用的工具鏈。其詳細(xì)程度超出了任何其他一本書。這部分內(nèi)容非常有幫助。其他章節(jié)向讀者說明了前進(jìn)的道路。這些內(nèi)容同樣闡述得很好。也許其他書籍在某些時候更詳細(xì)一些,但在嵌入式Linux領(lǐng)域中,讀者不應(yīng)該僅限于使用一本書。不同的書,總是物有所值的。-------------------------- 閱讀更多 ›
  •   薄薄的一本書盡然定價65,人民郵電黑啊。網(wǎng)上買書,看不到實(shí)物,容易上當(dāng)啊。
  •   這本書之所以吸引我完全是因?yàn)闀锩婧小案呒壋绦蛟O(shè)計”這幾個字,讓我誤以為會比O'RLLY的《構(gòu)建嵌入式linux系統(tǒng)》更有技術(shù)含量,然后書到了之后才發(fā)現(xiàn)被數(shù)名給騙了,概述純粹講的就是如何搭建嵌入式開發(fā)環(huán)境,跟程序設(shè)計扯不上多大關(guān)系。所以還是推薦買O'relly的那本書。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7