作業系統思考 第零章 前言

2021-07-15 03:24:49 字數 1416 閱讀 3573

原文:chapter 0 preface

譯者:飛龍

協議:cc by-nc-sa 4.0

在許多電腦科學的課程中,作業系統都是高階話題。學生在上這門課之前,它們已經知道了如何使用c語言程式設計,他們也可能上過計算機體系結構(組成原理)的課程。通常這門課的目標是讓學生們接觸作業系統的設計與實現,並帶有一些他們未來在該領域所研究的隱含假設,或者讓他們手寫os的一部分。

這本書為一些不同的讀者準備,並且具有不同的目標。我為歐林工學院中一門叫做軟體系統的課程編寫了它。

多數學生在學完python程式設計之後上了這門課,所以目標之一就是幫助他們學習c語言。對於課程的這一部分,我使用了o』reilly的《head first c》(中譯本為《嗨翻c語言》)作為補充。

我的一些學生從沒有寫過作業系統,但是它們中許多人都會使用c語言編寫底層的應用,或者與嵌入式打交道。我的課程包括作業系統的要素、網路、資料庫、和嵌入式系統,而且強調了程式設計師需要知道的一些話題。

這本書並不假設你學過計算機體系結構。在講解過程中,我會解釋所需的東西。

如果這本書成功了,它會帶給你對程式執行中所發生事情的深入理解,並且你可以使它們執行速度更快以及更加可靠。

第一章解釋了編譯語言和解釋語言的一些差異,以及編譯器工作原理的一些洞察。推薦閱讀《嗨翻c語言》的第一章。

第二章解釋了作業系統如何使用程序來保證執行中的程式不相互影響。

第三章解釋了虛擬記憶體和位址翻譯。推薦閱讀《嗨翻c語言》的第二章。

第四章有關檔案系統和資料流。推薦閱讀《嗨翻c語言》的第三章。

第五章描述了數值、字母和其它值如何編碼,同時展示了按位運算。

第六章解釋了如何使用動態記憶體管理,它如何工作。推薦閱讀《嗨翻c語言》的第六章。

第七章有關快取和儲存器層次結構。

第八章有關多工和排程。

第九章有關posix執行緒和互斥體。推薦閱讀《嗨翻c語言》的第十二章,和《little book of semaphores》的第一和第二章。

第十章有關posix條件變數和生產者/消費者問題。推薦閱讀《little book of semaphores》的第三和第四章。

第十一章有關posix訊號量和c中的實現。

本書的當前版本(v0.5)是個初稿。當我處理文字時,我還沒有把放進來。所以我確信有些地方的解釋加上之後會更好。

本書的示例**可以在訪問。git是乙個版本控制系統,它允許你跟蹤專案所組成的檔案。git控制下的一系列檔案叫做倉庫。github是乙個為git倉庫提供儲存空間的託管服務,以及乙個便利的web介面。

我的倉庫的github的主頁提供了如下方式來獲取**:

如果你需要提供建議或糾錯,請向[email protected]傳送郵件。如果我基於你的反饋作出修改,我會將你新增到貢獻者名單中(除非你要求被忽略)。

如果你包含了錯誤所在句子的一小部分,我會很容易找到它。頁面和章節的號碼也可以,但是不是十分易於處理。多謝了!

Docker 第零章 前言

對於乙個後端開發者而言,對於docker也是前年十月份才開始聽說的 很慚愧,docker在2013年就已經出現了 當時有個新專案啟動,領導們在技術選型時,在部署方面選定的是docker。那個時候也只是翻了下相關資料,並沒有過多了解過。而且專案到後期,也並沒有用docker來實施。而在年初剛開始時,由...

第 5 章 作業系統

執行狀態 執行的所有所資源都已經配備足夠了,並且給他cpu資源 就緒狀態 其他的所有資源都配足夠了,只缺cpu資源 萬事俱備只欠東風 等待狀態 除了沒有cpu資源,還缺其他資源 不是必須缺少,但是肯定缺cpu資源 執行時缺少某個資源,進入等待狀態,等到資源配備足夠以後,不能直接 進入執行狀態,要重新...

作業系統前言總結

作業系統 4個基本特徵 併發共享 虛擬非同步 其實同時共享微觀的角度看是交替訪問 虛擬特性比如4核的cpu電腦卻可以同時開啟許多程式不僅僅是4個程式 虛擬儲存器和虛擬處理器 時分復用 空分復用 發展歷史 1.手工作業系統 早期的打孔機,打孔表示01 2.單道批處理系統 離線輸入輸出,並監督程式負責控...