前言

2018-02-24 15:41 更新

前言

背景

2007 年開始系統(tǒng)地學(xué)習(xí) Shell 編程,并在蘭大開源社區(qū)寫了序列文章。

在編寫《Shell 編程范例》文章的《進(jìn)程操作》一章時(shí),為了全面了解進(jìn)程的來龍去脈,對(duì)程序開發(fā)過程的細(xì)節(jié)、ELF 格式的分析、進(jìn)程的內(nèi)存映像等進(jìn)行了全面地梳理,后來搞得“雪球越滾越大”,甚至脫離了 Shell 編程關(guān)注的內(nèi)容。所以想了個(gè)小辦法,“大事化小,小事化了”,把涉及到的內(nèi)容進(jìn)行了分解,進(jìn)而演化成另外一個(gè)完整的序列。

2008 年 3 月 1 日,當(dāng)初步完成整個(gè)序列時(shí),做了如下的小結(jié):

到今天,關(guān)于"Linux 下 C 語言開發(fā)過程"的一個(gè)簡單視圖總算粗略地完成了,從寒假之前的一段時(shí)間到現(xiàn)在過了將近一個(gè)月左右吧。寫這個(gè)主題的目的源自“Shell 編程范例之進(jìn)程操作”,當(dāng)寫到這一章時(shí),突然對(duì)進(jìn)程的由來、本身和去向感到“迷惑不解”。所以想著好好花些時(shí)間來弄清楚它們,現(xiàn)在發(fā)現(xiàn),這個(gè)由來就是這里的程序開發(fā)過程,進(jìn)程來自一個(gè)普通的文本文件,在這里是 C 語言程序,C 語言程序經(jīng)過編輯、預(yù)處理、編譯、匯編、鏈接、執(zhí)行而成為一個(gè)進(jìn)程;而進(jìn)程本身呢?當(dāng)一個(gè)可執(zhí)行文件被執(zhí)行以后,有了 exec 調(diào)用,被程序解釋器映射到了內(nèi)存中,有了它的內(nèi)存映像;而進(jìn)程的去向呢?通過不斷地執(zhí)行指令和內(nèi)存映像的變化,進(jìn)程完成著各項(xiàng)任務(wù),等任務(wù)完成以后就可以退出了(exit)。

這樣一份視圖實(shí)際上是在寒假之前繪好的,可以從下圖中看到它;不過到現(xiàn)在才明白背后的很多細(xì)節(jié)。這些細(xì)節(jié)就是這個(gè)序列的每個(gè)篇章,可以對(duì)照“視圖”來閱讀它們。

C語言程序開發(fā)過程視圖

現(xiàn)狀

目前整個(gè)序列大部分都已經(jīng)以 Blog 的形式寫完,大體結(jié)構(gòu)目下:

計(jì)劃

考慮到整個(gè) Linux 世界的蓬勃發(fā)展,Linux 和 C 語言的應(yīng)用環(huán)境越來越多,相關(guān)使用群體會(huì)不斷增加,所以最近計(jì)劃把該序列重新整理,以自由書籍的方式不斷更新,以便惠及更多的讀者。

打算重新規(guī)劃、增補(bǔ)整個(gè)序列,并以開源項(xiàng)目的方式持續(xù)維護(hù),并通過 泰曉科技|TinLab.org 平臺(tái)接受讀者的反饋,直到正式發(fā)行出版。

自由書籍將會(huì)維護(hù)在 泰曉科技項(xiàng)目倉庫中。項(xiàng)目相關(guān)信息如下:

歡迎大家指出本書初稿中的不足,甚至參與到相關(guān)章節(jié)的寫作、校訂和完善中來。

如果有時(shí)間和興趣,歡迎參與??梢酝ㄟ^ 泰曉科技 聯(lián)系我們,或者直接關(guān)注微博@泰曉科技并私信我們。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)