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

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

前言

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

內(nèi)容概要

時(shí)至今日,多數(shù)嵌入式產(chǎn)品中都有l(wèi)inux的身影。嵌入式開發(fā)人員可以使用更先進(jìn)的方法、花費(fèi)更多的時(shí)間來(lá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ā)人員,并對(duì)linux開發(fā)有基本的了解,那么本書恰好適合你閱讀。

作者簡(jiǎn)介

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

書籍目錄

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

章節(jié)摘錄

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

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

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

編輯推薦

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

圖書封面

圖書標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


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


用戶評(píng)論 (總計(jì)13條)

 
 

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

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

京ICP備13047387號(hào)-7