易燃物匯聚 YouTube 有聲書與書評
程序是怎樣跑起來的(第3版) 封面

程序是怎樣跑起來的(第3版)

矢澤久雄

1.1萬人在讀
11.7萬字總字數
¥29.9定價

有聲書與視頻解讀 YouTube視頻解讀 1

內容簡介

本書從計算機的內部結構開始講起,以圖配文的形式詳細講解了二進制、內存、數據壓縮、源文件和可執行文件、操作系統和應用程序的關係、彙編語言、硬件控制方法等內容,目的是讓讀者瞭解從用戶雙擊程序圖標到程序開始運行之間到底發生了什麼。書中還專設了“如果是你,你會怎樣講呢?”專欄,以小學生、老奶奶等爲對象講解程序的運行原理,頗爲有趣。 第3版升級了書中用到的軟件產品和開發工具,並在正文和註釋中補充了大量內容,讓初學者更容易理解。對於舊版中頗受好評的硬件相關章節,更新了C語言的樣例代碼。書末附錄關於C語言的章節也升級至最新標準。 第12章新增了Python機器學習的內容,讓初學者能夠輕鬆體驗人工智能的樂趣。附錄也增加了對Python語言的介紹。 本書圖文並茂,通俗易懂,非常適合計算機愛好者及相關從業人員閱讀。

讀者書評

★★★★★

這本書是對《計算機是怎樣跑起來的》很好的補充,同爲入門類書籍,這本書很好的補充了操作系統原理、硬件驅動原理、編譯原理(包括彙編語言基礎講解)及機器學習的基本內容,推薦讀完《計算機是怎樣跑起來的》的書友繼續補充這本書的知識。

★★★★★

我們日常生活基本離不開計算機,作爲一名計算機專業的學生、編程愛好者,我上學學到的都是計算機是由什麼組成的:CPU、內存、硬盤、主板、輸入/輸出設備等,內容非常抽象(也可能是我上學的時候沒學好吧,學校的教科書說得雲裏霧裏的)。看完此書有一種豁然開朗的感覺,計算機底層都是二進制數據,那麼二進制數據是怎麼表示文本、圖像、文件的呢?小數的計算爲什麼會產生溢出?書中很通俗地科普了這些知識,值得計算機相關從業者或愛好者一讀。

★★★★★

日本人寫的計算機科普書一直是計算機書籍中的一個特殊的門類,他們很喜歡圖文並茂,特別是用一些生活或者漫畫的形式來解釋原理,生動有趣。這本書也不例外,可以說是深入淺出:既有對計算機原理(CPU、操作系統)的生動介紹,也有對C語言和彙編語言之間一一對應關係的逐行解讀,最後還加入了一段對於機器學習的說明,也很淺顯易懂。推薦給想要知道計算機到底是如何運行的朋友。

★★★★★

入門書籍伴隨的特性就是內容淺,那麼基於書裏的內容回答下書名裏的問題,程序是怎樣跑起來的? 操作系統和應用程序都屬於程序,操作系統和應用程序跑起來的方式卻完全不同,應用程序的運行基於操作系統,那麼以應用程序爲例:開發人員編寫的程序源代碼,經過編譯器、彙編器、鏈接器生成可執行文件,再有加載器加載進內存,同時會用到虛擬內存,內存佈局由高到低分爲系統內核區、棧區、堆區、數據區、代碼區、保留區;程序由指令和數據組成,CPU 是寄存器的集合,PC(程序計數器)寄存器讀取指令,通用寄存器存儲數據、累加器負責計算等等,簡單的可以說是 CPU 和 內存一起讓程序跑起來。

★★★★★

讀者建議:有一定計算機基礎概念,對程序運行底層機理感興趣的人員。 主要內容:程序源代碼經過“編譯+鏈接”形成機器碼/字節碼,機器碼直接由CPU運行,字節碼通過虛擬機解釋後形成機器碼由CPU運行。CPU將機器碼加載到內存中,分配變量、函數、棧、堆4個空間。CPU按程序指令對數據進行運算(加/移位/邏輯),通過中斷機制和I/O通道實現數據的出入。

★★★★★

學習是一個由易到難的過程。這本《程序是怎樣跑起來的》,就是一門講解計算機基礎知識的入門書籍,可以理解成是一本“計算機組成原理”的圖解簡述版,內含大量圖解。是我先避開黑皮書、補課看的第一本書。這本書的優點是真的非常通俗易懂,不會勸退,適合菜鳥入門。看完腦子裏對計算機組成建立起了一個模糊的框架,以及對一些概念瞭解,知道是怎麼一回事。本書的缺點是知識講的“淺”,因爲是入門書籍,想要深入就應該去翻大黑皮書。 這本書比較適合學了《微機原理》之後,又寫了一段時間的代碼的同學來看,能夠把整個知識體系給串起來。 我們以前學習的很多知識,其實是很割裂的,大學學習的 C 語言,單片機,微機原理,數字電路與模擬電路等很多知識,當時學習像是一個一個的點,工作之後慢慢連成了線,直至今日慢慢變成了面。我們逐漸形成了自己的知識體系,瞭解到了這個世界的浩瀚,知道自己所學之淺薄。 這本書的核心其實是想告訴我們,我們寫的一行代碼,背後運行起來究竟發生了什麼,就如同我們寫的一個 a = b + 1,其實會拆解成以下的步驟: 1️⃣先翻譯成彙編,轉換成多條指令,會用到各類寄存器,這裏面會涉及到精簡指令集和複雜指令集 2️⃣然後還會再轉換成機器碼,存儲到硬盤上,在硬盤數據的存儲組織此處不表 3️⃣執行的時候會從硬盤上將數據和程序加載到內存中,在執行的時候將相關的指令與數據存儲在寄存器中,真正的計算其實是 cpu來進行的 4️⃣而 cpu 的計算,其實就是一條條去執行背後的指令,其原理是圖靈機與馮諾依曼體系 5️⃣而因爲 cpu的高速與存儲介質讀取的低速之間,我們又做了很多的優化,包括硬盤緩存,內存,cpu 緩存等多種優化手段 越來越感慨圖靈機的設計之巧妙,就如同歐幾里得的《幾何原理》對於整個幾何而言。 整個體系中,根基不變,但細節處還有諸多值得打磨與提升的,就如同今天的 cpu 頻率還在不斷提升一般,內存、硬盤等介質也在不停更新迭代。 從硬件到軟件,從操作系統到應用程序,從數字電路到模擬電路,還有很多值得學習的東西!

★★★★★

讀完矢澤久雄的《程序是怎麼跑起來的(第三版)》,最大的感受不是“學到了多少新知識”,而是終於把許多理所當然卻從未認真思考過的問題重新想了一遍。 在日常開發中,我們習慣於從高級語言開始思考問題:函數怎麼寫、組件怎麼拆、狀態如何管理。但這本書刻意把視角向下移動,從電源接通、CPU 上電、內存初始化講起,一步步把“程序運行”這件事拆解到最底層。這種從硬件到軟件、從物理到抽象的敘事方式,讓人第一次真正意識到:程序並不是“天生就能跑”,而是被層層機制精心託舉起來的結果。 書中對 CPU、內存、寄存器、指令執行流程的講解尤其令人印象深刻。它沒有陷入晦澀的硬件細節,而是用“數據如何在內存中被讀取、修改、再寫回”的過程,解釋了程序執行的本質。這讓我重新理解了“變量”“函數調用”“條件判斷”這些高級概念在底層到底意味着什麼——它們本質上只是數據和指令在特定規則下的流動。以前覺得這些知識“離業務太遠”,現在才發現:當你知道它們的來路,很多性能問題、邊界問題、甚至 Bug 的行爲都會變得合理起來。 第三版中對操作系統角色的強調也非常到位。程序並不是直接控制硬件,而是運行在操作系統提供的“受控環境”中。進程、內存保護、系統調用、上下文切換……這些平時只在面試中出現的名詞,在書中被串成了一條完整的邏輯鏈。讀到這裏時,會產生一種非常工程化的敬畏感:我們寫的每一行代碼,實際上都在和操作系統協作,而不是單打獨鬥。 讓我尤爲認同的一點是,這本書並不追求“把你變成底層專家”,而是努力建立一種縱向的技術直覺。它告訴讀者:即便你主要寫的是前端、業務系統或腳本語言,也值得知道代碼最終會被翻譯成什麼、在哪裏運行、受哪些限制。這種直覺不會立刻轉化爲代碼量,但會在關鍵時刻影響你的技術判斷。 總的來說,《程序是怎麼跑起來的(第三版)》是一部非常適合中級程序員回爐重造的書。它不教你“怎麼寫更快的業務代碼”,卻能讓你明白“代碼爲什麼會這樣運行”。當你再回到日常開發時,會發現自己看待程序的方式發生了變化——從“能跑就行”,變成了“我知道它是怎麼跑的”。而這種確定感,正是技術成長中最稀缺、也最踏實的東西。

★★★★★

作爲一本初級讀物還是不錯的,比較平易近人,通俗易懂,但是想要深入瞭解的話,還是建議讀一下具體語言理論著作,這裏是比較廣泛介紹,沒有深入探討

★★★★★

入門科普性質的讀物,不作爲專業性學習書籍或者手冊查詢,貫穿了一個程序是怎麼從程序員寫的源代碼轉換爲機器可以運行的機器碼再被CPU執行的全過程,讓讀者對程序運行的過程或本質有了一個大概印象,但也僅僅是大概印象,這本書內容跨度和廣度很大,但深度不深,總的說來這本書閱讀難度不大,不過若一次性大量閱讀本書,其知識跨度過大還是容易讓讀者應接不暇,這是一本好書,揭開了程序運行背後神祕的面紗,適合作爲計算機導論

★★★★★

計算機的硬件並不只有CPU,還有用來存儲程序指令和數據的內存,通過I/O[插圖]連接的鍵盤、顯示器、硬盤、打印機等外部設備。在不同的計算機中,這些外部設備的訪問方式也有所不同。 Windows爲消除這些硬件差異做出了巨大的貢獻。

書籍信息

作者矢澤久雄
譯者周自恆
出版社人民郵電出版社有限公司
出版時間2022-07-01
ISBN9787115595133
分類計算機-計算機綜合
格式EPUB
完結狀態連載中
章節數125