1. 程式人生 > >《計算機是怎樣跑起來的》閱讀筆記

《計算機是怎樣跑起來的》閱讀筆記

前言

  • 其實不僅是計算機,其他學問亦是如此。首先要劃出一個“知識的範圍”,精通一門學問所必知必會的知識都在這個範圍內。其次是掌握該範圍內每個知識點中“基礎中的基礎知識”。最後是能獨當一面的“目標”,即掌握了這些知識可以做什麼。

第1章 計算機的三大原則

1.3 軟體是指令和資料的集合

  • 無論是哪個程式,其內容都是數值的羅列,每個數值要麼是指令,要麼是資料。

1.5 只要理解了三大原則,即使遇到難懂的最新技術,也能輕鬆應對

  • 所謂計算機的協同工作指的是,輸入到一臺計算機中的資料,可以通過網際網路傳送到與這臺計算機相連的其他計算機上執行運算,運算所輸出的結果再返回給這臺計算機。像這樣部署在其他計算機上能執行某種運算的程式就叫作XML Web服務。

第3章 體驗一次手工彙編

3.1 從程式設計師的角度看硬體

  • 然而真正需要了解的硬體資訊只有以下7種(如圖3.1所示),所以沒有必要在程式設計時還總是盯著詳細的電路圖看。

  • 即便是相同的機器語言,例如01010011,只要CPU的種類不同,對它的解釋也就不同。

3.3 Z80 CPU的暫存器結構

  • 既然資料的運算是在CPU中進行的,那麼在CPU內部就應該有儲存資料的地方。這種儲存資料的地方叫作“暫存器”。

  • PC暫存器也叫作“程式指標”,儲存著指向CPU接下來要執行的指令的地址。PC暫存器的值會隨著滴答滴答的時鐘訊號自動更新,可以說程式就是依靠不斷變化的PC暫存器的值執行起來的。

第4章 程式像河水一樣流動著

4.4 結構化程式設計

  • 簡單地說,所謂結構化程式設計就是“為了把程式編寫得具備結構性,僅使用順序執行、條件分支和迴圈表示程式的流程即可,而不再使用跳轉指令”。

  • 但是即使使用了結構化異常處理,在硬體上使用的也還是跳轉指令,只是說在高階語言中不用再寫相當於跳轉指令的語句了。如果把用高階語言所編寫的程式轉換成機器語言,像結構化異常處理這樣的語句還是會被轉換為跳轉指令。

4.5 畫流程圖來思考演算法

  • 所謂演算法(Algorithm),就是解決既定問題的步驟。想讓計算機解決問題,就需要把問題的解法轉換成程式的流程。

4.6 特殊的程式流程——中斷處理

  • 像這樣由於外部的原因使正常的流程中斷,中斷後再返回到之前流程的過程就是中斷處理流程。

4.7 特殊的程式流程——事件驅動

  • 通常把使用者在應用程式中點選滑鼠或者敲擊鍵盤這樣的操作稱作“事件”(Event)。負責檢測事件的是Windows。Windows通過呼叫應用程式的WndProc()函式通知應用程式事件的發生。而應用程式則根據事件的型別做出相應的處理。這種機制就是事件驅動。可以說事件驅動也是一種特殊的條件分支,它以從Windows送來的通知為條件,根據通知的內容決定程式下一步的流程。

第5章 與演算法成為好朋友的七個要點

5.2 要點1:演算法中解決問題的步驟是明確且有限的

  • 而且請諸位注意這樣一個條件,那就是“步驟必須是明確的並且步驟數必須是有限的”。

第7章 面向物件程式設計

7.8 觀點6:面向物件程式設計通過在物件間傳遞訊息驅動程式

  • 在時序圖中,把用矩形表示的物件橫向排列,從上往下表示時間的流逝,用箭頭表示物件間的訊息傳遞(即程式上的函式呼叫)。

第8章 資料庫

8.4 通過拆表和整理資料實現規範化

  • 規範化的要點是在一個數據庫中要避免重複儲存相同的資料。

8.5 用主鍵和外來鍵在表間建立關係

  • 當出現多對多關係時,可以在這兩張表之間再加入一張表,把多對多關係分解成兩個一對多關係(如圖8.10所示)。加入的這張表被稱作連線表(Link Table)。

8.7 設計使用者介面

  • 只要通過拆表實現了規範化、設定了主鍵和外來鍵、確保沒有多對多關係、根據需要設定了參照完整性和索引,那麼資料庫的設計就告一段落了。

8.9 使用資料物件向DBMS傳送SQL語句

  • 在Windows應用程式中,向DBMS傳送SQL語句時,一般情況下使用的都是被稱為資料物件(Data Object)的軟體元件(參考第7章所介紹的類)。

第9章 TCP/IP 協議

9.2 實驗1:檢視網絡卡的MAC地址

  • 乙太網中的每臺計算機都需要先確認一件事:在網線上有沒有其他的計算機正在傳輸電訊號,也就是說要先確保沒有人在佔用網路,然後才能傳送自己想傳輸的電訊號。誰先搶到了網線的使用權,誰就先發送。萬一遇到了多臺計算機同時都想傳送電訊號的情況,只需要讓這些計算機等待一段長度隨機的時間後再重新發送相同的電訊號即可。

  • 在每一塊網絡卡所帶有的ROM(Read Only Memory,只讀儲存器)中,都預先燒錄了一個唯一的MAC地址。網絡卡的製造廠商負責確定這個MAC地址是什麼。因為MAC地址是由製造廠商的編號和產品編號兩部分組成的,所以世界上的每一個MAC地址都是獨一無二的。

9.3 實驗2:檢視計算機的IP地址

  • 通常把設定了IP地址的計算機稱為“主機”(Host)。因為路由器也算是計算機的一種,所以它們也有IP地址。在TCP/IP網路中,傳輸的資料都會攜帶MAC地址和IP地址兩個地址。

  • 子網掩碼中,值為1的那些位對應著IP地址中的網路地址,後面值為0的那些位則對應著主機地址。因此255.255.255.240這個子網掩碼就表示,其所對應的IP地址前28位元是網路地址,後4位元是主機地址。

9.5 實驗4:路由器是資料傳輸過程中的指路人

  • 分佈在世界各地的LAN中的路由器相互交換著資訊,網際網路正是由於這種資訊的交換才得以聯通。這種資訊被稱作“路由表”,用來記錄應該把資料轉發到哪裡。

9.7 實驗6:DNS伺服器可以把主機名解析成IP地址

  • 諸位的計算機都有一個主機名,每個LAN也都有一個域名。舉例來說,筆者所使用的計算機的主機名是ma50j(源於這臺計算機的型號),所在的LAN的域名是yzw.co.jp把主機名和域名組合起來所形成的ma50j.yze.co.jp,就是能夠標識筆者這臺計算機的一個世界範圍內獨一無二的名字,這個名字與IP地址的作用是等價的。通常把這種由主機名和域名組合起來形成的名字稱作FQDN(Fully Qualified Domain Name,完整限定域名)。

第11章 XML究竟是什麼

  • 通常把用於定義新語言的語言稱作元語言。通過使用XML可以定義出各種各樣的新語言。

11.1 XML是標記語言

  • 通常把通過新增標籤為資料賦予意義的行為稱為“標記”。為這種給資料賦予意義的行為定義規則的語言就是“標記語言”。HTML是用於編寫網頁的標記語言,更簡單地說法就是HTML決定了可用於編寫網頁的標籤。

11.2 XML是可擴充套件的語言

  • XML本身並不會限定標籤的種類,反倒是允許XML的使用者隨心所欲地建立標籤。也就是說,在“<”和“>”中的單詞可以是任意的。這就是所謂的“可擴充套件”。

11.3 XML是元語言

  • XML並沒有限定標籤的使用方式,使用什麼樣的標籤都可以。可以說XML僅僅限定了進行標記時標籤的書寫格式(書寫風格)。也就是說通過定義要使用的標籤種類,就可以創造出一門新的標記語言。通常把這種用於創造語言的語言稱作“元語言”。

11.4 XML可以為資訊賦予意義

  • 也就是說,XML的主要用途是為在網際網路上交換的資訊賦予意義(如圖11.9所示)。當然,在網際網路以外的場景也可以使用XML。只不過在XML誕生的過程中網際網路一直伴隨其左右。

11.9 XML可用於各種各樣的領域

  • SOAP(Simple Object Access Protocol,簡單物件訪問協議)可用於分散式計算。所謂分散式計算,就是把程式分散部署在用網路連線起來的多臺計算機上,使這些計算機相互協作,充分發揮計算機整體的計算能力。簡單地說,SOAP就是使執行在A公司計算機中的A程式,可以呼叫執行在B公司計算機中的B程式。

第12章 SE負責監管計算機系統的構建

12.3 系統開發過程的規範

  • 在瀑布模型中,每完成一個階段,都要書寫文件(報告)並進行稽核。進行稽核時還需要召開會議,在會上由SE為開發團隊的成員、上司以及客戶講解文件的內容。若稽核通過了,就可以從上司或客戶那裡得到批准,繼續進入後續的開發階段。若稽核沒有通過,則不能進入後續的階段。一旦進入了後續的階段,就不能回退到之前的階段。為了避免回退到上一階段,一是要力求完美地完成每一個階段的工作,二是要徹底地執行稽核過程,這些就是瀑布模型的特徵。

12.7 技術能力和溝通能力

  • 正如之前講解的那樣,SE所要具備的能力是多種多樣的。這些能力大體上可以分為兩類——技術能力(Technical Skill)和溝通能力(Communication Skill)。所謂技術能力,是指靈活運用硬體、軟體、網路、資料庫等技術的能力。而所謂溝通能力,是指和他人交換資訊的能力,而且這裡要求的是雙向的資訊交換能力。一個方向是從客戶到SE,即SE傾聽客戶等的需求;另一個方向是從SE到客戶,即SE向客戶等人傳達資訊。

12.10 大幅提升裝置利用率的多機備份

  • 專家也好普通人也罷,只有為社會做出了貢獻才能有成就感,才會覺得工作有意義。可能有人會覺得“這麼說來,即使是程式設計師,只要能意識到自己也是在為社會做貢獻不就好了嗎?”能這樣想就對了!SE也好程式設計師也罷,所有和計算機相關的工程師都要有這樣一種意識:我們要讓計算機技術服務於社會。如果能有這樣的決心,就應該能作為一生的事業和計算機愉快地相處下去了吧。

閱讀感受

★★★☆☆
語言組織上通俗易懂是個亮點,但內容相對有點老舊,作為基礎的入門材料可以看看。

版權資訊

書名:計算機是怎樣跑起來的
作者:[日]矢澤久雄
譯者:胡屹
出版社:人民郵電出版社
出版時間:2015-05

以上就是本文的全部內容,如果您喜歡這篇文章,歡迎將它分享給朋友們。

感謝您的閱讀,祝您生活愉快!

作者:小美哥
2018-09-20