文章出處



它山之石可以攻玉。




對于《深入理解計算機系統》這本神人寫就的神書, 我等凡人就不評論什么啦。

這本書的 第二,三 部分, 真的真的對我理解操作系統有很大的幫助。 (第一部分偏硬件,如果搞高性能,第一部分還是蠻重要的) 。 第一部分的的確確有些艱深, 從剖析匯編碼, 窺探機器碼, 到 理論上造CPU, 雖然作者(布賴恩特)講的十分清楚, 但是仍然無法彌補我智商上的先天缺陷(俗稱:腦殘)。

書中的內容真的是很豐富。 我覺得也正是書中的內容太多, 知識點太多, 所以很難完全讀懂。 因為, 這本書很厚, 你讀著讀著前面的東西就忘得七七八八啦, 讀著讀著就不知所云啦, 讀著讀著就讀出智商缺陷啦。 書中的內容雖然很多, 很全面, 但是又都很有必要, 都很經典, 很精準 ------ 這也許就是 神人布賴恩特的神奇之處。

看了這本書后, 才深切的理解到: 這么復雜的東西竟然是人類發明的, 好神奇!

沒辦法, 說好的不評論什么的, 還是無恥的寫了一堆廢話。 ------ 唉, 沒辦法, 神書就是有這樣的魔力。



csapp.h 是這本書中的一個頭文件。 Linux本身不帶有這個文件,這個文件是作者編寫的。 它整合的好多其他的頭文件, 所以有了它就沒必要再寫那么多頭文件啦。

下載地址: http://csapp.cs.cmu.edu/public/code.html





Ubuntu(我的是Ubuntu14.04)中使用方法:

  • 首先下載 csapp.h 和 csapp.c

    方法一

    編譯鏈接csapp.h:
    1.我的當前工作目錄為~/WorkSpace,目錄下有3個文件,fork.c, csapp.h, csapp.c。

2.編譯csapp.c文件,命令為gcc -c csapp.c,生成目標文件csapp.o。

3.編譯fork.c文件,命令為gcc -c fork.c,生成目標文件fork.o。

4.鏈接目標文件csapp.o、fork.o(由于csapp.c文件中有關于線程中部分,gcc編譯的時候必須帶 -lpthread,否則會出現一堆錯誤),命令為
gcc -o fork csapp.o inet_aton.o -lpthread,生成可執行文件fork,然后 ./fork 運行即可。



方法二

把csapp.h 放到gcc的頭文件文件夾中。 

1.把csapp.h csapp.c文件放到/usr/include(看的別人的方法是放到/usr/lib下, 我試了試, 不可以啊 V_V||).

2.在csapp.h里面最后一行#end if之前添加:
#include
(記住: 這里#include 一定要寫在接近文件結尾的地方, 即: 所有函數的聲明的后面, #end if 之前。如果寫在文件開始也是會有一堆錯誤出現的)

3.csapp.c文件中有關于線程中部分,gcc編譯的時候必須帶 -lpthread,否則會出錯的。

4.在要編譯的文件頭添加#include

5具體的指令如下:gcc -o fork fork.c -lpthread
然后運行: ./fork



gcc常用選項: http://blog.csdn.net/max__payne/article/details/2058898






文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()