它山之石可以攻玉。 對于《深入理解計算機系統》這本神人寫就的神書, 我等凡人就不評論什么啦。 這本書的 第二,三 部分, 真的真的對我理解操作系統有很大的幫助。 (第一部分偏硬件,如果搞高性能,第一部分還是蠻重要的) 。 第一部分的的確確有些艱深, 從剖析匯編碼, 窺探機器碼, 到 理論上造CPU, 雖然作者(布賴恩特)講的十分清楚, 但是仍然無法彌補我智商上的先天缺陷(俗稱:腦殘)。 書中的內容真的是很豐富。 我覺得也正是書中的內容太多, 知識點太多, 所以很難完全讀懂。 因為, 這本書很厚, 你讀著讀著前面的東西就忘得七七八八啦, 讀著讀著就不知所云啦, 讀著讀著就讀出智商缺陷啦。 書中的內容雖然很多, 很全面, 但是又都很有必要, 都很經典, 很精準 ------ 這也許就是 神人布賴恩特的神奇之處。 沒辦法, 說好的不評論什么的, 還是無恥的寫了一堆廢話。 ------ 唉, 沒辦法, 神書就是有這樣的魔力。 csapp.h 是這本書中的一個頭文件。 Linux本身不帶有這個文件,這個文件是作者編寫的。 它整合的好多其他的頭文件, 所以有了它就沒必要再寫那么多頭文件啦。 下載地址: http://csapp.cs.cmu.edu/public/code.html 首先下載 csapp.h 和 csapp.c 編譯鏈接csapp.h: 2.編譯csapp.c文件,命令為 3.編譯fork.c文件,命令為 4.鏈接目標文件csapp.o、fork.o(由于csapp.c文件中有關于線程中部分,gcc編譯的時候必須帶 -lpthread,否則會出現一堆錯誤),命令為 1.把csapp.h csapp.c文件放到/usr/include(看的別人的方法是放到/usr/lib下, 我試了試, 不可以啊 V_V||). 2.在csapp.h里面最后一行#end if之前添加:
3.csapp.c文件中有關于線程中部分,gcc編譯的時候必須帶 -lpthread,否則會出錯的。 4.在要編譯的文件頭添加#include
5具體的指令如下: gcc常用選項: http://blog.csdn.net/max__payne/article/details/2058898
看了這本書后, 才深切的理解到: 這么復雜的東西竟然是人類發明的, 好神奇!
Ubuntu(我的是Ubuntu14.04)中使用方法:
方法一
1.我的當前工作目錄為~/WorkSpace,目錄下有3個文件,fork.c, csapp.h, csapp.c。gcc -c csapp.c
,生成目標文件csapp.o。gcc -c fork.c
,生成目標文件fork.o。
gcc -o fork csapp.o inet_aton.o -lpthread
,生成可執行文件fork,然后 ./fork
運行即可。
方法二
把csapp.h 放到gcc的頭文件文件夾中。
#include
(記住: 這里#includegcc -o fork fork.c -lpthread
然后運行: ./fork
文章列表