寫在前面的話:
一切偉大的行動和思想都有乙個眇乎小哉的開始。
第1章 歷史和標準
看第1章題目就可以知道本章要講的是歷史和標準。我們會問,歷史是講誰的歷史?
1.unix和c語言的歷史
這段歷史已經聽過很多了,要注意它是at&t公司整出來的,其中c語言完全是為了實現unix核心及相關軟體而開發的。注意其中的前後關係,unix一開始是用組合語言寫的,開發c語言是為了重寫unix。書中有一段話:「c語言的設計理念和設計需求出自於幾位程式設計師的構思,他們的目的很單純:為實現unix核心及相關軟體而開發一種高層語言。像unix作業系統本身一樣,c語言由專業程式設計師設計而為己用。」這讓我非常佩服那個年代老美那幫程式設計師,不光是技術,還有他們那種純粹。
unix第七版**為了兩大分支:bsd(伯克利軟體發布)和system v。由來我就不說了,自己看書,這裡只要知道它們是unix系統的兩個衍生系統,bsd是加州大學伯克利分校搞出來的,而system v是at&t的。
2.linux的歷史
講linux歷史前要先了解偉大的gnu專案。unix剛問世時是不開源的,要花美刀才能用,richard stallman致力於開發出一套完整而又可自由獲取,包含核心以及所有相關軟體包的類unix系統,於是發起了gnu專案(「gnu's not unix」)。
gnu專案制定了gnu gpl(通用公共許可協議),以gpl發布的軟體必須開源,可以修改,但修改後仍要繼續開源,哈哈,只要一用我的東西,就避免不了打上我的烙印!就這樣,gun專案開發了大量能夠在unix上執行的軟體,emacs文字編輯器,gcc,bash shell都是這個時候的成果,但是唯獨沒有自己的核心。
這個時候,linus torvalds整出了linux,據說他那個時候還是個在讀大學生。好了,眾望所歸,gnu專案完美了,一整套linux作業系統就這樣誕生了。
3.標準化
對這一小節進行歸納,總的來說,講了三個標準:
1)c語言標準:c99
2)作業系統介面標準:posix標準和sus標準
3)linux系統標準:lsb標準
具體每個標準的由來不多說,需要注意的是在作業系統介面標準中包括了很多實時性擴充套件,如:檔案同步、非同步io、程序排程、高精度時鐘和定時器、程序間通訊,這些也是本書主要講的東西。
誠如作者michael kerrisk在前言中說,他把興趣集中在了核心和使用者控制項的「分水嶺」——linux程式設計介面上,本書介紹了大量的api介面。博主正奮戰在學習嵌入式的道路上,前段時間剛剛接觸了i/o、程序和網路程式設計,直到見到本書,才明白自己學的多麼膚淺——居然有人能將api介面寫了這麼厚兩本書。於是立志吃透本書,把自己的讀書筆記分享出來,望諸位指教!
讀書筆記之linux unix系統程式設計手冊 43
程序間通訊介紹 1.unix系統上各種通訊和同步工具,並根據功能將他們分成了三類 1 通訊 這些工具關注程序之間的資料交換 2 同步 這些程序關注程序和執行緒操作之間的同步 3 訊號 儘管訊號的主要作用並不在此,但在特定場景下可以將它作為一種同步技術 2.資料傳輸工具 為了通訊,乙個程序將資料寫入i...
《Linux UNIX系統程式設計手冊》第2章讀書筆記
寫在前面的話 紅燭啊!你流一滴淚,灰一分心。灰心流淚你的果,創造光明你的因。紅燭啊!莫問收穫,但問耕耘。第2章 基本概念 本章講了很多基本概念,有的概念會貫穿全書,有的概念作者只簡單提了一下,後面的章節會有深入講解。對於這些概念,博主不一一介紹,而是將其中有聯絡的概念放到一起說。一 linux系統的...
《Linux UNIX系統程式設計手冊》第3章讀書筆記
寫在前面的話 i was so much order then,i m younger than that now.昔日我曾如此蒼老,如今才是風華正茂。bob dylan my back pages 第3章 系統程式設計概念 本章主要講系統呼叫和庫函式的概念,以及對執行系統呼叫和庫函式之後的狀態進行...