linux操作系統(tǒng)入門教程, Linux入門教程 SheLL的入門及提高教程
標(biāo)簽: linux
上傳時(shí)間: 2013-06-15
上傳用戶:集美慧
·本書全面介紹了Linux的編程知識(shí),包括Linux程序的調(diào)試、SheLL編程、Linux的內(nèi)存管理、Linux的系統(tǒng)調(diào)用、標(biāo)準(zhǔn)I/O流、進(jìn)程與進(jìn)程調(diào)度、進(jìn)程間通信、信號(hào)編程、Linux多線程編程、網(wǎng)絡(luò)編程、數(shù)據(jù)庫編程、圖形編程等。書中最后還介紹了近年來較為熱門的Linux國際化和本地化程序設(shè)計(jì)。 本書內(nèi)容豐富、深入淺出,每章內(nèi)容都含有大量編程實(shí)例,以加強(qiáng)讀者理解和提供給讀者使用。本書適合希望利用
標(biāo)簽: Linux 應(yīng)用開發(fā)
上傳時(shí)間: 2013-08-05
上傳用戶:ommshaggar
at91rm9200啟動(dòng)過程教程 系統(tǒng)上電,檢測(cè)BMS,選擇系統(tǒng)的啟動(dòng)方式,如果BMS為高電平,則系統(tǒng)從片內(nèi)ROM啟動(dòng)。AT91RM9200的ROM上電后被映射到了0x0和0x100000處,在這兩個(gè)地址處都可以訪問到ROM。由于9200的ROM中固化了一個(gè)BOOTLOAER程序。所以PC從0X0處開始執(zhí)行這個(gè)BOOTLOAER(準(zhǔn)確的說應(yīng)該是一級(jí)BOOTLOADER)。這個(gè)BOOTLOER依次完成以下步驟: 1、PLL SETUP,設(shè)置PLLB產(chǎn)生48M時(shí)鐘頻率提供給USB DEVICE。同時(shí)DEBUG USART也被初始化為48M的時(shí)鐘頻率; 2、相應(yīng)模式下的堆棧設(shè)置; 3、檢測(cè)主時(shí)鐘源(Main oscillator); 4、中斷控制器(AIC)的設(shè)置; 5、C 變量的初始化; 6、跳到主函數(shù)。 完成以上步驟后,我們可以認(rèn)為BOOT過程結(jié)束,接下來的就是LOADER的過程,或者也可以認(rèn)為是裝載二級(jí)BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、連接在外部總線上的8位并行FLASH的順序依次來找合法的BOOT程序。所謂合法的指的是在這些存儲(chǔ)設(shè)備的開始地址處連續(xù)的存放的32個(gè)字節(jié),也就是8條指令必須是跳轉(zhuǎn)指令或者裝載PC的指令,其實(shí)這樣規(guī)定就是把這8條指令當(dāng)作是異常向量表來處理。必須注意的是第6條指令要包含將要裝載的映像的大小。關(guān)于如何計(jì)算和寫這條指令可以參考用戶手冊(cè)。一旦合法的映像找到之后,則BOOT程序會(huì)把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超過16K-3K的大小。當(dāng)BOOT程序完成了把合法的映像搬到SRAM的任務(wù)以后,接下來就進(jìn)行存儲(chǔ)器的REMAP,經(jīng)過REMAP之后,SRAM從映設(shè)前的0X200000地址處被映設(shè)到了0X0地址并且程序從0X0處開始執(zhí)行。而ROM這時(shí)只能在0X100000這個(gè)地址處看到了。至此9200就算完成了一種形式的啟動(dòng)過程。如果BOOT程序在以上所列的幾種存儲(chǔ)設(shè)備中找到合法的映像,則自動(dòng)初始化DEBUG USART口和USB DEVICE口以準(zhǔn)備從外部載入映像。對(duì)DEBUG口的初始化包括設(shè)置參數(shù)115200 8 N 1以及運(yùn)行XMODEM協(xié)議。對(duì)USB DEVICE進(jìn)行初始化以及運(yùn)行DFU協(xié)議。現(xiàn)在用戶可以從外部(假定為PC平臺(tái))載入你的映像了。在PC平臺(tái)下,以WIN2000為例,你可以用超級(jí)終端來完成這個(gè)功能,但是還是要注意你的映像的大小不能超過13K。一旦正確從外部裝載了映像,接下來的過程就是和前面一樣重映設(shè)然后執(zhí)行映像了。我們上面講了BMS為高電平,AT91RM9200選擇從片內(nèi)的ROM啟動(dòng)的一個(gè)過程。如果BMS為低電平,則AT91RM9200會(huì)從片外的FLASH啟動(dòng),這時(shí)片外的FLASH的起始地址就是0X0了,接下來的過程和片內(nèi)啟動(dòng)的過程是一樣的,只不過這時(shí)就需要自己寫啟動(dòng)代碼了,至于怎么寫,大致的內(nèi)容和ROM的BOOT差不多,不同的硬件設(shè)計(jì)可能有不一樣的地方,但基本的都是一樣的。由于片外FLASH可以設(shè)計(jì)的大,所以這里編寫的BOOTLOADER可以一步到位,也就是說不用像片內(nèi)啟動(dòng)可能需要BOOT好幾級(jí)了,目前AT91RM9200上使用較多的bootloer是u-boot,這是一個(gè)開放源代碼的軟件,用戶可以自由下載并根據(jù)自己的應(yīng)用配置。總的說來,筆者以為AT91RM9200的啟動(dòng)過程比較簡(jiǎn)單,ATMEL的服務(wù)也不錯(cuò),不但提供了片內(nèi)啟動(dòng)的功能,還提供了UBOOT可供下載。筆者寫了一個(gè)BOOTLODER從片外的FLASHA啟動(dòng),效果還可以。 uboot結(jié)構(gòu)與使用uboot是一個(gè)龐大的公開源碼的軟件。他支持一些系列的arm體系,包含常見的外設(shè)的驅(qū)動(dòng),是一個(gè)功能強(qiáng)大的板極支持包。其代碼可以 http://sourceforge.net/projects/u-boot下載 在9200上,為了啟動(dòng)uboot,還有兩個(gè)boot軟件包,分別是loader和boot。分別完成從sram和flash中的一級(jí)boot。其源碼可以從atmel的官方網(wǎng)站下載。 我們知道,當(dāng)9200系統(tǒng)上電后,如果bms為高電平,則系統(tǒng)從片內(nèi)rom啟動(dòng),這時(shí)rom中固化的boot程序初始化了debug口并向其發(fā)送'c',這時(shí)我們打開超級(jí)終端會(huì)看到ccccc...。這說明系統(tǒng)已經(jīng)啟動(dòng),同時(shí)xmodem協(xié)議已經(jīng)啟動(dòng),用戶可以通過超級(jí)終端下載用戶的bootloader。作為第一步,我們下載loader.bin.loader.bin將被下載到片內(nèi)的sram中。這個(gè)loder完成的功能主要是初始化時(shí)鐘,sdram和xmodem協(xié)議,為下載和啟動(dòng)uboot做準(zhǔn)備。當(dāng)下載了loader.bin后,超級(jí)終端會(huì)繼續(xù)打印:ccccc....。這時(shí)我們就可以下在uboot了。uboot將被下載到sdram中的一個(gè)地址后并把pc指針調(diào)到此處開始執(zhí)行uboot。接著我們就可以在終端上看到uboot的SheLL啟動(dòng)了,提示符uboot>,用戶可以u(píng)boot>help 看到命令列表和大概的功能。uboot的命令包含了對(duì)內(nèi)存、flash、網(wǎng)絡(luò)、系統(tǒng)啟動(dòng)等一些命令。 如果系統(tǒng)上電時(shí)bms為低電平,則系統(tǒng)從片外的flash啟動(dòng)。為了從片外的flash啟動(dòng)uboot,我們必須把boot.bin放到0x0地址出,使得從flash啟動(dòng)后首先執(zhí)行boot.bin,而要少些boot.bin,就要先完成上面我們講的那些步驟,首先開始從片內(nèi)rom啟動(dòng)uboot。然后再利用uboot的功能完成把boot.bin和uboot.gz燒寫到flash中的目的,假如我們已經(jīng)啟動(dòng)了uboot,可以這樣操作: uboot>protect off all uboot>erase all uboot>loadb 20000000 uboot>cp.b 20000000 10000000 5fff uboot>loadb 21000000 uboot>cp.b 210000000 10010000 ffff 然后系統(tǒng)復(fù)位,就可以看到系統(tǒng)先啟動(dòng)boot,然后解壓縮uboot.gz,然后啟動(dòng)uboot。注意,這里uboot必須壓縮成.gz文件,否則會(huì)出錯(cuò)。 怎么編譯這三個(gè)源碼包呢,首先要建立一個(gè)arm的交叉編譯環(huán)境,關(guān)于如何建立,此處不予說明。建立好了以后,分別解壓源碼包,然后修改Makefile中的編譯器項(xiàng)目,正確填寫你的編譯器的所在路徑。 對(duì)loader和boot,直接make。對(duì)uboot,第一步:make_at91rm9200dk,第二步:make。這樣就會(huì)在當(dāng)前目錄下分別生成*.bin文件,對(duì)于uboot.bin,我們還要壓縮成.gz文件。 也許有的人對(duì)loader和boot搞不清楚為什么要兩個(gè),有什么區(qū)別嗎?首先有區(qū)別,boot主要完成從flash中啟動(dòng)uboot的功能,他要對(duì)uboot的壓縮文件進(jìn)行解壓,除此之外,他和loader并無大的區(qū)別,你可以把boot理解為在loader的基礎(chǔ)上加入了解壓縮.gz的功能而已。所以這兩個(gè)并無多大的本質(zhì)不同,只是他們的使命不同而已。 特別說名的是這三個(gè)軟件包都是開放源碼的,所以用戶可以根據(jù)自己的系統(tǒng)的情況修改和配置以及裁減,打造屬于自己系統(tǒng)的bootloder。
上傳時(shí)間: 2013-10-27
上傳用戶:wsf950131
The C500 microcontroller family usually provides only one on-chip synchronous serialchannel (SSC). If a second SSC is required, an emulation of the missing interface mayhelp to avoid an external hardware solution with additional electronic components.The solution presented in this paper and in the attached source files emulates the mostimportant SSC functions by using optimized SW routines with a performance up to 25KBaud in Slave Mode with half duplex transmission and an overhead less than 60% atSAB C513 with 12 MHz. Due to the implementation in C this performance is not the limitof the chip. A pure implementation in assembler will result in a strong reduction of theCPU load and therefore increase the maximum speed of the interface. In addition,microcontrollers like the SAB C505 will speed up the interface by a factor of two becauseof an optimized architecture compared with the SAB C513.Moreover, this solution lays stress on using as few on-chip hardware resources aspossible. A more excessive consumption of those resources will result in a highermaximum speed of the emulated interface.Due to the restricted performance of an 8 bit microcontroller a pin compatible solution isprovided only; the internal register based programming interface is replaced by a set ofsubroutine calls.The attached source files also contain a test SheLL, which demonstrates how to exchangeinformation between an on-chip HW-SSC and the emulated SW-SSC via 5 external wiresin different operation modes. It is based on the SAB C513 (Siemens 8 bit microcontroller).A table with load measurements is presented to give an indication for the fraction of CPUperformance required by software for emulating the SSC.
標(biāo)簽: synchronous Emulating serial
上傳時(shí)間: 2014-01-31
上傳用戶:z1191176801
The solution presented in this paper and in the attached source files emulates the mostimportant SSC functions by using SW routines implemented in C. The code is focused onthe SAB C513, but will fit to all C500 derivatives.Beyond the low level software drivers a test SheLL is delivered. This SheLL allows a quicktest of the software drivers by an emulator or a starter kit demo board.
上傳時(shí)間: 2013-11-24
上傳用戶:363186
SheLL
標(biāo)簽: LinuxSheLL 腳本 編寫
上傳時(shí)間: 2013-10-26
上傳用戶:windwolf2000
755頁高清版Linux C編程一站式教程,如果你在做Linux軟件開發(fā),請(qǐng)不要錯(cuò)過。 Makefile,SheLL,文件系統(tǒng),I/O,信號(hào),進(jìn)程,線程,TCP/IP,UDP,Socket編程等等內(nèi)容
上傳時(shí)間: 2013-10-23
上傳用戶:lo25643
實(shí)時(shí)操作系統(tǒng),Kernel部分完成于2006年上半年,其IPC部分甚至是年中時(shí)才具備相 應(yīng)的雛形。最開始時(shí)是因?yàn)橐獮榕笥炎鲆粋€(gè)小型的手持設(shè)備,而本人起初又是另一國內(nèi)老牌 實(shí)時(shí)操作系統(tǒng):DOOLOO RTOS開發(fā)人員,但這個(gè)團(tuán)隊(duì)在2005年底已經(jīng)解散。但朋友的系統(tǒng)要 上,用其他小型系統(tǒng)嗎,一不熟悉,二看不上。答應(yīng)朋友的事,總得有解決方法吧,即使是原來 的DOOLOO RTOS,因?yàn)槠浞耉xWorks結(jié)構(gòu),導(dǎo)致它的核心太大,包括太多不必要的東西(一套 完整的libc庫),這些方案都否決了。怎么辦?當(dāng)時(shí)朋友那邊也不算太急,先自己寫一套內(nèi)核吧。 這個(gè)就是源頭!(后來雖然朋友的項(xiàng)目夭折了,但這套OS則保留下來了,并開源了,萬幸) 1 序 3 1.1 RT-Thread誕生 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2 艱難的發(fā)展期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3 一年增加0.0.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4 Cortex-M3的變革 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5 面向?qū)ο笤O(shè)計(jì)方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.6 文檔結(jié)構(gòu) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 實(shí)時(shí)系統(tǒng) 7 2.1 嵌入式系統(tǒng) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.2 實(shí)時(shí)系統(tǒng) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 軟實(shí)時(shí)與硬實(shí)時(shí) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3 快速入門 11 3.1 準(zhǔn)備環(huán)境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 3.2 初識(shí)RT-Thread . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.3 系統(tǒng)啟動(dòng)代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4 用戶入口代碼 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.5 跑馬燈的例子 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.6 生產(chǎn)者消費(fèi)者問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 RT-Thread簡(jiǎn)介 25 4.1 實(shí)時(shí)內(nèi)核 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 4.2 虛擬文件系統(tǒng) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.3 輕型IP協(xié)議棧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.4 SheLL系統(tǒng) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.5 圖形用戶界面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.6 支持的平臺(tái) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 5 內(nèi)核對(duì)象模型 29 5.1 C語言的對(duì)象化模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 5.2 內(nèi)核對(duì)象模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 6 線程調(diào)度與管理 39 6.1 實(shí)時(shí)系統(tǒng)的需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
標(biāo)簽: RT-Thread 實(shí)時(shí)操作系統(tǒng) 編程指南 版本
上傳時(shí)間: 2013-10-14
上傳用戶:1234321@q
This book is for students and Linux System Administrators. It provides the skills to read, write, and debug Linux SheLL scripts using bash SheLL. The book begins by describing Linux and simple scripts to automate frequently executed commands and continues by describing conditional logic, user interaction, loops, menus, traps, and functions.
上傳時(shí)間: 2014-12-30
上傳用戶:黃蛋的蛋黃
本書介紹Linux環(huán)境下的編程方法,內(nèi)容包括Linux系統(tǒng)命令、 SheLL腳本、編程語言(gawk、Perl)、系統(tǒng)內(nèi)核、安全體系、X Window等,內(nèi)容豐富、論述全面,涵蓋了Linux系統(tǒng)的方方面面。本書附帶光盤包括了RedHat Linux系統(tǒng)的最新版本,及安裝方法,還包括本書的大量程序代碼,極大地方便了讀者,為使用和將要使用Linux系統(tǒng)的技術(shù)人員提供了較全面的參考。 目 錄前言第一篇 Linux系統(tǒng)介紹第1章 Linux簡(jiǎn)介 …11.1 Linux 的起源 11.2 自由軟件基金會(huì)的GNU計(jì)劃 11.3 Linux 的發(fā)音 21.4 Linux 的特點(diǎn) 21.5 基本硬件要求 31.6 如何獲得Linux 31.6.1 從網(wǎng)上下載Linux 31.6.2 從光盤獲得Linux 31.7 涉及Linux 的Web 網(wǎng)址和新聞?dòng)懻摻M 61.8 Linux 的不足之處 7第2章 外殼及常用命令 82.1 登錄和退出 82.2 Linux 系統(tǒng)的外殼 82.3 外殼的常用命令 92.3.1 更改帳號(hào)密碼 92.3.2 聯(lián)機(jī)幫助 92.3.3 遠(yuǎn)程登錄 92.3.4 文件或目錄處理 92.3.5 改變工作目錄 102.3.6 復(fù)制文件 102.3.7 移動(dòng)或更改文件、目錄名稱 102.3.8 建立新目錄 102.3.9 刪除目錄 112.3.10 刪除文件 112.3.11 列出當(dāng)前所在的目錄位置 112.3.12 查看文件內(nèi)容 112.3.13 分頁查看文件內(nèi)容 112.3.14 查看目錄所占磁盤容量 112.3.15 文件傳輸 112.3.16 文件權(quán)限的設(shè)定 122.3.17 檢查自己所屬的工作組名稱 132.3.18 改變文件或目錄工作組所有權(quán) 132.3.19 改變文件或目錄的最后修改時(shí)間 132.3.20 文件的鏈接 132.3.21 文件中字符串的查尋 142.3.22 查尋文件或命令的路徑 142.3.23 比較文件或目錄的內(nèi)容 142.3.24 文件打印輸出 142.3.25 一般文件的打印 142.3.26 troff 文件的打印 142.3.27 打印機(jī)控制命令 142.3.28 進(jìn)程控制 152.3.29 外殼變量 162.3.30 環(huán)境變量 162.3.31 別名 162.3.32 歷史命令 172.3.33 文件的壓縮 172.3.34 管道命令的使用 172.3.35 輸入/輸出控制 182.3.36 查看系統(tǒng)中的用戶 182.3.37 改變用戶名 182.3.38 查看用戶名 182.3.39 查看當(dāng)前系統(tǒng)上所有工作站 的用戶 192.3.40 與某工作站上的用戶交談 192.3.41 檢查遠(yuǎn)程系統(tǒng)是否正常 192.3.42 電子郵件的使用簡(jiǎn)介 19第3章 Linux系統(tǒng)的網(wǎng)絡(luò)功能 213.1 Linux支持的網(wǎng)絡(luò)協(xié)議 213.1.1 TCP/IP 213.1.2 TCP/IP 版本 6 213.1.3 IPX/SPX 213.1.4 AppleTalk 協(xié)議集 213.1.5 廣域網(wǎng) 223.1.6 ISDN 223.1.7 PPP、SLIP及PLIP 223.1.8 業(yè)余無線電 223.1.9 ATM 223.2 Linux系統(tǒng)下的文件共享和打印共享 223.2.1 Machintosh 環(huán)境 223.2.2 Windows 環(huán)境 223.2.3 Novell 環(huán)境 233.2.4 UNIX 環(huán)境 233.3 Linux系統(tǒng)中的Internet/Intranet功能 233.3.1 郵件 233.3.2 Web 服務(wù)器 243.3.3 Web 瀏覽器 243.3.4 FTP 服務(wù)器和客戶機(jī) 243.3.5 新聞服務(wù) 243.3.6 域名系統(tǒng) 243.3.7 DHCP和 bootp 243.3.8 NIS 243.4 Linux系統(tǒng)下應(yīng)用程序的遠(yuǎn)程執(zhí)行 243.4.1 Telnet 253.4.2 遠(yuǎn)程命令 253.4.3 X Window 253.5 Linux系統(tǒng)的網(wǎng)絡(luò)互連功能 253.5.1 路由器 253.5.2 網(wǎng)橋 253.5.3 IP偽裝 253.5.4 IP統(tǒng)計(jì) 263.5.5 IP 別名 263.5.6 流量限制器 263.5.7 防火墻 263.5.8 端口下傳 263.5.9 負(fù)載平衡 263.5.10 EQL 273.5.11 代理服務(wù)器 273.5.12 按需撥號(hào) 273.5.13 管道、移動(dòng)IP和虛擬個(gè)人網(wǎng)絡(luò) 273.6 Linux系統(tǒng)中的網(wǎng)絡(luò)管理 273.6.1 Linux系統(tǒng)下的網(wǎng)絡(luò)管理應(yīng)用程序 273.6.2 SNMP 283.7 企業(yè)級(jí)Linux網(wǎng)絡(luò) 283.7.1 高可用性 283.7.2 RAID 283.7.3 冗余網(wǎng)絡(luò) 28第4章 Linux系統(tǒng)管理簡(jiǎn)介 294.1 root 帳號(hào) 294.2 啟動(dòng)和關(guān)閉系統(tǒng) 294.2.1 從軟盤啟動(dòng) 294.2.2 使用LILO 啟動(dòng) 294.2.3 關(guān)閉Linux系統(tǒng) 304.3 掛接文件系統(tǒng) 304.3.1 掛接軟盤 304.3.2 創(chuàng)建新的文件系統(tǒng) 304.3.3 卸載文件系統(tǒng) 314.4 檢查文件系統(tǒng) 314.5 使用文件作為交換區(qū) 314.6 系統(tǒng)和文件的備份 324.7 設(shè)置系統(tǒng) 334.7.1 設(shè)置系統(tǒng)名 334.7.2 使用維護(hù)磁盤 334.7.3 重新設(shè)置root 帳號(hào)口令 334.7.4 設(shè)置登錄信息 33第二篇 Linux高級(jí)語言及管理編程第5章 外殼編程 355.1 創(chuàng)建和運(yùn)行外殼程序 355.1.1 創(chuàng)建外殼程序 355.1.2 運(yùn)行外殼程序 355.2 使用外殼變量 365.2.1 給變量賦值 365.2.2 讀取變量的值 375.2.3 位置變量和其他系統(tǒng)變量 375.2.4 引號(hào)的作用 375.3 數(shù)值運(yùn)算命令 385.4 條件表達(dá)式 405.4.1 if 表達(dá)式 405.4.2 case 表達(dá)式 415.5 循環(huán)語句 425.5.1 for 語句 435.5.2 while 語句 435.5.3 until 語句 445.6 shift 命令 445.7 select 語句 455.8 repeat 語句 465.9 子函數(shù) 46第6章 gawk語言編程 486.1 gawk的主要功能 486.2 如何執(zhí)行g(shù)awk程序 486.3 文件、記錄和字段 486.4 模式和動(dòng)作 496.5 比較運(yùn)算和數(shù)值運(yùn)算 506.6 內(nèi)部函數(shù) 506.6.1 隨機(jī)數(shù)和數(shù)學(xué)函數(shù) 516.6.2 字符串的內(nèi)部函數(shù) 516.6.3 輸入輸出的內(nèi)部函數(shù) 526.7 字符串和數(shù)字 526.8 格式化輸出 526.9 改變字段分隔符 546.10 元字符 546.11 調(diào)用gawk程序 556.12 BEGIN和END 556.13 變量 566.14 內(nèi)置變量 566.15 控制結(jié)構(gòu) 576.15.1 if 表達(dá)式 576.15.2 while 循環(huán) 576.15.3 for 循環(huán) 586.15.4 next 和 exit 586.16 數(shù)組 586.17 用戶自定義函數(shù) 586.18 幾個(gè)實(shí)例 59第7章 Perl語言編程 607.1 什么是Perl 607.2 Perl的現(xiàn)狀 607.3 初試Perl 607.4 Perl變量 607.4.1 標(biāo)量 607.4.2 數(shù)組 637.4.3 相關(guān)數(shù)組 657.5 文件句柄和文件操作 657.6 循環(huán)結(jié)構(gòu) 667.6.1 foreach循環(huán) 667.6.2 判斷運(yùn)算 667.6.3 for循環(huán) 677.6.4 while 和 until循環(huán) 677.7 條件結(jié)構(gòu) 677.8 字符匹配 687.9 替換和翻譯 697.9.1 替換 697.9.2 翻譯 707.10 子過程 707.10.1 子過程的定義 707.10.2 參數(shù) 707.10.3 返回值 707.11 Perl程序的完整例子 71第三篇 Linux系統(tǒng)內(nèi)核分析第8章 Linux內(nèi)核簡(jiǎn)介 738.1 系統(tǒng)初始化 738.2 系統(tǒng)運(yùn)行 738.3 內(nèi)核提供的各種系統(tǒng)調(diào)用 748.3.1 進(jìn)程的基本概念和系統(tǒng) 的基本數(shù)據(jù)結(jié)構(gòu) 748.3.2 創(chuàng)建和撤消進(jìn)程 748.3.3 執(zhí)行程序 748.4 存取文件系統(tǒng) 75第9章 系統(tǒng)進(jìn)程 769.1 什么是進(jìn)程 769.2 進(jìn)程的結(jié)構(gòu) 769.3 進(jìn)程調(diào)度 789.4 進(jìn)程使用的文件 799.5 進(jìn)程使用的虛擬內(nèi)存 809.6 創(chuàng)建進(jìn)程 819.7 進(jìn)程的時(shí)間和計(jì)時(shí)器 819.7.1 實(shí)時(shí)時(shí)鐘 819.7.2 虛擬時(shí)鐘 819.7.3 形象時(shí)鐘 819.8 程序的執(zhí)行 829.8.1 ELF文件 829.8.2 腳本文件 82第10章 內(nèi)存管理 8310.1 內(nèi)存管理的作用 8310.2 虛擬內(nèi)存的抽象模型 8310.3 按需裝入頁面 8410.4 交換 8510.5 共享虛擬內(nèi)存 8510.6 存取控制 8510.7 高速緩存 8610.7.1 緩沖區(qū)高速緩存 8610.7.2 頁面高速緩存 8610.7.3 交換高速緩存 8610.7.4 硬件高速緩存 8610.8 系統(tǒng)頁面表 8610.9 頁面的分配和釋放 8710.9.1 頁面的分配 8810.9.2 頁面的釋放 8810.10 內(nèi)存映射 8810.11 請(qǐng)求調(diào)頁 8910.12 頁面高速緩存 8910.13 內(nèi)核交換守護(hù)進(jìn)程 90第11章 進(jìn)程間通信 9111.1 信號(hào)機(jī)制 9111.2 管道機(jī)制 9211.3 System V IPC 機(jī)制 9311.3.1 信息隊(duì)列 9311.3.2 信號(hào)量 9411.3.3 共享內(nèi)存 96第12章 PCI 9812.1 PCI 系統(tǒng) 9812.2 PCI地址空間 9812.3 PCI設(shè)置頭 9912.4 PCI I/O 和 PCI 內(nèi)存地址 10012.5 PCI-ISA橋 10012.6 PCI-PCI 橋 10012.7 PCI初始化 10112.7.1 Linux系統(tǒng)內(nèi)核有關(guān)PCI的 數(shù)據(jù)結(jié)構(gòu) 10112.7.2 PCI 設(shè)備驅(qū)動(dòng)程序 10212.7.3 PCI BIOS 函數(shù) 10512.7.4 PCI Fixup 105第13章 中斷和中斷處理 10613.1 中斷 10613.2 可編程中斷控制器 10613.3 初始化中斷處理的數(shù)據(jù)結(jié)構(gòu) 10713.4 中斷處理 108第14章 設(shè)備驅(qū)動(dòng)程序 10914.1 硬件設(shè)備的管理 10914.2 輪詢和中斷 11014.3 直接內(nèi)存存取 11014.4 內(nèi)存 11114.5 設(shè)備驅(qū)動(dòng)程序和內(nèi)核之間的接口 11114.5.1 字符設(shè)備 11214.5.2 塊設(shè)備 11314.6 硬盤 11314.6.1 IDE 硬盤 11514.6.2 初始化IDE 硬盤子系統(tǒng) 11514.6.3 SCSI 硬盤 11514.6.4 初始化 SCSI 磁盤子系統(tǒng) 11614.6.5 傳遞塊設(shè)備請(qǐng)求 11814.7 網(wǎng)絡(luò)設(shè)備 11814.7.1 網(wǎng)絡(luò)設(shè)備文件名 11814.7.2 總線信息 11814.7.3 網(wǎng)絡(luò)接口標(biāo)記 11914.7.4 協(xié)議信息 11914.7.5 初始化網(wǎng)絡(luò)設(shè)備 119第15章 文件系統(tǒng) 12115.1 Linux文件系統(tǒng)概述 12115.2 ext2文件系統(tǒng) 12215.2.1 ext2的索引節(jié)點(diǎn) 12215.2.2 ext2超級(jí)塊 12415.2.3 ext2 數(shù)據(jù)塊組描述符 12415.2.4 ext2 中的目錄 12515.2.5 在ext2 文件系統(tǒng)中查找文件 12515.2.6 改變ext2 文件系統(tǒng)中文件 的大小 12615.3 VFS 12715.3.1 VFS 超級(jí)塊 12815.3.2 VFS 索引節(jié)點(diǎn) 12915.3.3 登記文件系統(tǒng) 12915.3.4 掛接文件系統(tǒng) 13015.3.5 在VFS中查找文件 13115.3.6 撤消文件系統(tǒng) 13115.3.7 VFS 索引節(jié)點(diǎn)緩存 13215.3.8 VFS目錄緩存 13215.4 緩沖區(qū)緩存 13315.5 /proc 文件系統(tǒng) 135第16章 網(wǎng)絡(luò)系統(tǒng) 13616.1 TCP/IP 網(wǎng)絡(luò)簡(jiǎn)介 13616.2 TCP/IP網(wǎng)絡(luò)的分層 13716.3 BSD 套接口 13816.4 INET套接口層 14016.4.1 創(chuàng)建BSD 套接口 14116.4.2 給INET BSD 套接口指定地址 14116.4.3 在INET BSD套接口上創(chuàng)建連接 14216.4.4 監(jiān)聽I(yíng)NET BSD 套接口 14216.4.5 接收連接請(qǐng)求 14316.5 IP 層 14316.5.1 套接口緩沖區(qū) 14316.5.2 接收IP數(shù)據(jù)包 14416.5.3 發(fā)送IP數(shù)據(jù)包 14416.5.4 數(shù)據(jù)碎片 14416.6 地址解析協(xié)議 145第17章 系統(tǒng)內(nèi)核機(jī)制 14717.1 Bottom Half處理 14717.2 任務(wù)隊(duì)列 14817.3 計(jì)時(shí)器 14917.4 等待隊(duì)列 14917.5 信號(hào)量 150第四篇 Linux系統(tǒng)高級(jí)編程第18章 Linux內(nèi)核模塊編程 15118.1 一個(gè)簡(jiǎn)單程序Hello World 15118.2 設(shè)備文件 15218.3 /proc文件系統(tǒng) 15618.4 使用/proc輸入 15818.5 與設(shè)備文件通信 16218.6 啟動(dòng)參數(shù) 16918.7 系統(tǒng)調(diào)用 17018.8 阻塞進(jìn)程 17218.9 替換printk 17718.10 調(diào)度任務(wù) 178第19章 有關(guān)進(jìn)程通信的編程 18119.1 進(jìn)程間通信簡(jiǎn)介 18119.2 半雙工UNIX管道 18119.2.1 基本概念 18119.2.2 使用C語言創(chuàng)建管道 18219.2.3 創(chuàng)建管道的簡(jiǎn)單方法 18519.2.4 使用管道的自動(dòng)操作 18719.2.5 使用半雙工管道時(shí)的注意事項(xiàng) 18819.3 命名管道 18819.3.1 基本概念 18819.3.2 創(chuàng)建FIFO 18819.3.3 FIFO操作 18919.3.4 FIFO的阻塞 19019.3.5 SIGPIPE信號(hào) 19019.4 System V IPC 19019.4.1 基本概念 19019.4.2 消息隊(duì)列基本概念 19119.4.3 系統(tǒng)調(diào)用msgget() 19419.4.4 系統(tǒng)調(diào)用msgsnd() 19519.4.5 系統(tǒng)調(diào)用msgctl() 19719.4.6 一個(gè)msgtool的實(shí)例 19919.5 使用信號(hào)量編程 20119.5.1 基本概念 20119.5.2 系統(tǒng)調(diào)用semget() 20219.5.3 系統(tǒng)調(diào)用semop() 20319.5.4 系統(tǒng)調(diào)用semctl() 20419.5.5 使用信號(hào)量集的實(shí)例:semtool 20519.6 共享內(nèi)存 20919.6.1 基本概念 20919.6.2 系統(tǒng)內(nèi)部用戶數(shù)據(jù)結(jié)構(gòu) shmid_ds 20919.6.3 系統(tǒng)調(diào)用shmget() 21019.6.4 系統(tǒng)調(diào)用shmat() 21119.6.5 系統(tǒng)調(diào)用shmctl() 21119.6.6 系統(tǒng)調(diào)用shmdt() 21219.6.7 使用共享內(nèi)存的實(shí)例:shmtool 212第20章 高級(jí)線程編程 21520.1 線程的概念和用途 21520.2 一個(gè)簡(jiǎn)單的例子 21520.3 線程同步 21720.4 使用信號(hào)量協(xié)調(diào)程序 21820.5 信號(hào)量的實(shí)現(xiàn) 22020.5.1 Semaphore.h 22020.5.2 Semaphore.c 221第21章 Linux系統(tǒng)網(wǎng)絡(luò)編程 22521.1 什么是套接口 22521.2 兩種類型的Internet套接口 22521.3 網(wǎng)絡(luò)協(xié)議分層 22521.4 數(shù)據(jù)結(jié)構(gòu) 22521.5 IP地址和如何使用IP地址 22621.5.1 socket() 22621.5.2 bind() 22621.5.3 connect() 22721.5.4 listen() 22821.5.5 accept() 22821.5.6 send() 和 recv() 22921.5.7 sendto() 和 recvfrom() 23021.5.8 close() 和 shutdown() 23021.5.9 getpeername() 23121.5.10 gethostname() 23121.6 DNS 23121.7 客戶機(jī)/服務(wù)器模式 23221.8 簡(jiǎn)單的數(shù)據(jù)流服務(wù)器程序 23221.9 簡(jiǎn)單的數(shù)據(jù)流客戶機(jī)程序 23421.10 數(shù)據(jù)報(bào)套接口 23521.11 阻塞 237第22章 Linux I/O端口編程 24022.1 如何在 C 語言下使用I/O端口 24022.1.1 一般的方法 24022.1.2 另一個(gè)替代方法: /dev/port 24122.2 硬件中斷 與 DMA 存取 24122.3 高精確的時(shí)間 24122.3.1 延遲時(shí)間 24122.3.2 時(shí)間的量測(cè) 24322.4 使用其他程序語言 24322.5 一些有用的 I/O 端口 24322.5.1 并行端口 24322.5.2 游戲端口 24422.5.3 串行端口 245第五篇 Linux系統(tǒng)安全分析第23章 系統(tǒng)管理員安全 24723.1 安全管理 24723.2 超級(jí)用戶 24723.3 文件系統(tǒng)安全 24723.3.1 Linux文件系統(tǒng)概述 24723.3.2 設(shè)備文件 24823.3.3 /etc/mknod命令 24923.3.4 安全考慮 24923.3.5 find命令 25023.3.6 secure程序 25023.3.7 ncheck命令 25023.3.8 安裝和拆卸文件系統(tǒng) 25023.3.9 系統(tǒng)目錄和文件 25123.4 作為root運(yùn)行的程序 25123.4.1 啟動(dòng)系統(tǒng) 25123.4.2 init進(jìn)程 25123.4.3 進(jìn)入多用戶 25223.4.4 shutdown命令 25223.4.5 系統(tǒng)V的cron程序 25223.4.6 系統(tǒng)V版本2之后的cron程序 25223.4.7 /etc/profile 25323.5 /etc/passwd文件 25323.5.1 口令時(shí)效 25323.5.2 UID和GID 25423.6 /etc/group文件 25423.7 增加、刪除和移走用戶 25423.7.1 增加用戶 25423.7.2 刪除用戶 25523.7.3 將用戶移到另一個(gè)系統(tǒng) 25523.8 安全檢查 25523.8.1 記帳 25523.8.2 其他檢查命令 25623.8.3 安全檢查程序的問題 25623.8.4 系統(tǒng)泄密后怎么辦 25723.9 加限制的環(huán)境 25823.9.1 加限制的外殼 25823.9.2 用chroot()限制用戶 25823.10 小系統(tǒng)安全 25923.11 物理安全 25923.12 用戶意識(shí) 26023.13 系統(tǒng)管理員意識(shí) 26123.13.1 保持系統(tǒng)管理員個(gè)人的 登錄安全 26123.13.2 保持系統(tǒng)安全 261第24章 系統(tǒng)程序員安全 26324.1 系統(tǒng)子程序 26324.1.1 I/O子程序 26324.1.2 進(jìn)程控制 26324.1.3 文件屬性 26424.1.4 UID和GID的處理 26524.2 標(biāo)準(zhǔn)C程序庫 26524.2.1 標(biāo)準(zhǔn)I/O 26524.2.2 /etc/passwd的處理 26624.2.3 /etc/group的處理 26724.2.4 加密子程序 26824.2.5 運(yùn)行外殼 26824.3 編寫安全的C程序 26824.3.1 需要考慮的安全問題 26824.3.2 SUID/SGID程序指導(dǎo)準(zhǔn)則 26924.3.3 編譯、安裝SUID/SGID程序 的方法 26924.4 root用戶程序的設(shè)計(jì) 270第25章 Linux系統(tǒng)的網(wǎng)絡(luò)安全 27225.1 UUCP系統(tǒng)概述 27225.1.1 UUCP命令 27225.1.2 uux命令 27225.1.3 uucico程序 27325.1.4 uuxqt程序 27325.2 UUCP的安全問題 27325.2.1 USERFILE文件 27325.2.2 L.cmds文件 27425.2.3 uucp登錄 27425.2.4 uucp使用的文件和目錄 27425.3 HONEYDANBER UUCP 27525.3.1 HONEYDANBER UUCP與 老UUCP的差別 27525.3.2 登錄名規(guī)則 27625.3.3 MACHINE規(guī)則 27725.3.4 組合MACHINE和LOGNAME 規(guī)則 27825.3.5 uucheck命令 27825.3.6 網(wǎng)關(guān) 27825.3.7 登錄文件檢查 27925.4 其他網(wǎng)絡(luò) 27925.4.1 遠(yuǎn)程作業(yè)登錄 27925.4.2 NSC網(wǎng)絡(luò)系統(tǒng) 28025.5 通信安全 28025.5.1 物理安全 28025.5.2 加密 28125.5.3 用戶身份鑒別 28225.6 SUN OS系統(tǒng)的網(wǎng)絡(luò)安全 28325.6.1 確保NFS的安全 28325.6.2 NFS安全性方面的缺陷 28425.6.3 遠(yuǎn)程過程調(diào)用鑒別 28425.6.4 Linux鑒別機(jī)制 28425.6.5 DES鑒別系統(tǒng) 28525.6.6 公共關(guān)鍵字的編碼 28625.6.7 網(wǎng)絡(luò)實(shí)體的命名 28625.6.8 DES鑒別系統(tǒng)的應(yīng)用 28725.6.9 遺留的安全問題 28725.6.10 性能 28825.6.11 啟動(dòng)和setuid程序引起的問題 28825.6.12 小結(jié) 289第26章 Linux系統(tǒng)的用戶安全性 29026.1 口令安全 29026.2 文件許可權(quán) 29026.3 目錄許可 29126.4 umask命令 29126.5 設(shè)置用戶ID和同組用戶ID許可 29126.6 cp mv ln和cpio命令 29126.7 su和newgrp命令 29226.7.1 su命令 29226.7.2 newgrp命令 29226.8 文件加密 29226.9 其他安全問題 29326.9.1 用戶的.profile文件 29326.9.2 ls -a 29326.9.3 .exrc文件 29326.9.4 暫存文件和目錄 29326.9.5 UUCP和其他網(wǎng)絡(luò) 29326.9.6 特洛伊木馬 29426.9.7 誘騙 29426.9.8 計(jì)算機(jī)病毒 29426.9.9 要離開自己已登錄的終端 29426.9.10 智能終端 29426.9.11 斷開與系統(tǒng)的連接 29426.9.12 cu命令 29526.10 保持帳戶安全的要點(diǎn) 295第六篇 X window系統(tǒng)的內(nèi)部結(jié)構(gòu)和使用第27章 X Window系統(tǒng)的基本知識(shí) 29727.1 X Window系統(tǒng)介紹 29727.1.1 X的特點(diǎn) 29727.1.2 什么是窗口系統(tǒng) 29827.1.3 X發(fā)展的歷史 29927.1.4 X的產(chǎn)品 29927.1.5 MIT發(fā)行的X 29927.2 X的基本結(jié)構(gòu) 30227.2.1 X 的基本元素 30327.2.2 服務(wù)程序和客戶程序如何 交互通信 30427.2.3 X 的網(wǎng)絡(luò)概況 30627.3 從用戶界面的角度概觀X 30727.3.1 管理界面:窗口管理器 30727.3.2 應(yīng)用程序界面和工具箱 30927.3.3 其他系統(tǒng)角度 30927.4 術(shù)語和符號(hào) 31027.4.1 術(shù)語 31027.4.2 符號(hào) 31127.5 啟動(dòng)和關(guān)閉X 31227.5.1 啟動(dòng)X 31227.5.2 執(zhí)行X程序的方式 31327.5.3 關(guān)閉X 31427.6 窗口管理器基礎(chǔ)—uwm 31527.6.1 什么是窗口管理器 31527.6.2 啟動(dòng)uwm 31527.6.3 基本窗口操作 —uwm 的菜單 31527.6.4 移動(dòng)窗口 31627.6.5 重定窗口大小 31627.6.6 建立新窗口 31627.6.7 管理屏幕空間 31827.6.8 中止應(yīng)用程序窗口 32027.6.9 激活uwm菜單的其他方式 32027.7 使用 x的網(wǎng)絡(luò)設(shè)備 32027.7.1 指定遠(yuǎn)程終端機(jī)—display 選項(xiàng) 32127.7.2 實(shí)際使用遠(yuǎn)程的顯示器 32227.7.3 控制存取顯示器—xhost 32227.8 終端機(jī)模擬器—詳細(xì)介紹xterm 32327.8.1 選擇xterm功能—菜單與 命令行選項(xiàng) 32327.8.2 滾動(dòng)xterm屏幕 32427.8.3 記錄與終端機(jī)的交互過程—寫 記錄 32527.8.4 剪貼文本 32527.8.5 使用Tektronix模擬功能 32627.8.6 使用不同的字體 32727.8.7 使用顏色 32727.8.8 其他xterm選項(xiàng) 32727.8.9 設(shè)定終端機(jī)鍵盤 328第28章 實(shí)用程序和工具 32928.1 實(shí)用程序 32928.2 保存、顯示和打印屏幕圖像 33028.3 使用X的應(yīng)用程序 33228.3.1 文字編輯器—Xedit 33328.3.2 郵件/信息處理系統(tǒng)—xmh 33628.4 示例和游戲程序 33628.4.1 找出通過隨機(jī)迷宮的 路徑—maze 33628.4.2 擔(dān)任鼠標(biāo)指針的大眼睛— xeyes 33628.4.3 智慧盤游戲—puzzle 33728.4.4 打印一個(gè)大X標(biāo)志—xlogo 33728.4.5 跳動(dòng)的多面體—ico 33728.4.6 動(dòng)態(tài)幾何圖案—muncher與 plaid 33728.7 顯示信息和狀態(tài)的程序 33728.7.1 列出X服務(wù)程序的特征— xdpyinfo 33828.7.2 獲取有關(guān)窗口的信息 33828.7.3 觀察X的事件—xev 340第29章 定制X Window系統(tǒng) 34129.1 使用X的字體和顏色 34129.1.1 字體初步 34129.1.2 字體命名 34229.1.3 觀察特定字體的內(nèi)容—xfd 34329.1.4 保存字體和位置 34329.1.5 例子:在你的服務(wù)程序中 增加新字體 34529.1.6 使用X的顏色 34629.2 定義和使用圖形 34729.2.1 系統(tǒng)圖形程序庫 34729.2.2 交互編輯圖形—bitmap 34729.2.3 編輯圖形的其他方法 34929.2.4 定制根窗口—xsetroot 34929.3 定義應(yīng)用程序的缺省選項(xiàng)— Resources 35029.3.1 什么是資源 35029.3.2 XToolkit 35129.3.3 管理資源—資源管理器 35329.3.4 資源的類型—如何指定值 35829.4 實(shí)際使用資源 35929.4.1 在何處保存資源的缺省值 35929.4.2 在服務(wù)程序上保存缺省值— xrdb 36329.4.3 常見的錯(cuò)誤和修正 36629.5 定制鍵盤和鼠標(biāo) 36729.5.1 實(shí)際使用轉(zhuǎn)換 36829.5.2 轉(zhuǎn)換—格式和規(guī)則 37429.5.3 轉(zhuǎn)換規(guī)范中常見的問題 37729.6 鍵盤和鼠標(biāo)—對(duì)應(yīng)和參數(shù) 37929.6.1 鍵盤和鼠標(biāo)映射—xmodmap 37929.6.2 鍵盤和鼠標(biāo)參數(shù)設(shè)定—xset 38229.7 進(jìn)一步介紹和定制uwm 38429.7.1 uwm的新特征 38429.7.2 定制uwm 38629.8 顯示器管理器—xdm 39029.8.1 需要做些什么 39029.8.2 xdm 39129.8.3 xdm的更多信息 39229.8.4 uwm配置 395附錄A Gcc使用介紹 396附錄B 安裝X Window窗口系統(tǒng) 410
標(biāo)簽: LINUX 系統(tǒng)分析 高級(jí)編程
上傳時(shí)間: 2013-11-10
上傳用戶:changeboy
蟲蟲下載站版權(quán)所有 京ICP備2021023401號(hào)-1