計算機系統是由硬件和系統軟件組成的,它們共同工做來運行應用程序;html
信息就是位+上下文;java
hello.c
--->hello.i
--->hello.s
--->hello.o
;linux
瞭解編譯系統的益處:緩存
硬件:安全
只由ASCII字符構成的文件稱爲文本文件,全部其餘文件都成爲二進制文件服務器
存儲設備造成了層次的結構網絡
從上之下,設備變得訪問速度愈來愈慢,容量也愈來愈大,而且每字節造價也愈來愈低儲存器結構的主要思想是一層上的存儲器做爲低一層存儲器的高速緩存
進程是操做系統對一個正在運行的程序的一種抽象。須要運行的進程數是多於能夠運行他們的cpu個數的。一個cpu看上去都像是在併發地執行多個進程,這是經過處理器在進程間切換來實現的。操做系統的這種交錯機制稱上下文交換。併發
處理器讀取並解釋存放在主存裏的二進制指令函數
操做系統內核是應用程序和硬件之間的媒介。它提供三個基本的抽象:1)文件是對I/O設備的抽象;2)虛擬存儲器是對主存和磁盤的抽象;3)進程是對處理器、主存和I/O設備的抽象。性能
網絡提供了計算機系統之間通訊的手段。從特殊系統的角度來看,網絡就是一種I/O設備。
問題1 what is GCC?
問題1 解決:
gcc –E hello.c –o hello.i;gcc –E
調用cppgcc –S hello.i –o hello.s;gcc –S
調用cclgcc –c hello.s –o hello.o;gcc -c
調用asgcc hello.o –o hello ;gcc -o
調用ldc
只編不鏈,目標文件.oS
只編不匯,彙編代碼E
只進行預編,不作任何處理g
在可執行程序中包含標準調試信息I dir
在頭文件的搜索路徑列表中添加dir目錄問題2 彙編到機械以及機械到彙編的轉換?
問題2 解決:
gcc-c hello.s-s hello.o
彙編--->機械
objdump - d hello.o
機械--->彙編
問題3 符號和符號表是什麼?
問題3解決:
問題4 瞭解ELF頭包含哪些信息?
問題4解決:(參考狄維佳的博客)
老師,我電腦出現了一些問題,可是本週我在嘗試訓練編譯了一些簡單的代碼以下
(1)vi hello.c #include<stdio.h> main() { printf("Hello"); } gcc hello.c ls a.out hello.c 以後就會出現結果 ./out Hello! (2)預處理: ls ./out hello.c hello.o gcc-E hello.c -o hello.o vi hello.i (3)編譯 gcc-S hello.i -o hello.s ls a.out hello.c hello.i hello.s vi hello.s (4)彙編 gcc - c hello.s - o hello.o ls hello.c hello.i hello.o hello.s vi hello.o
我會盡快修復好電腦,完成代碼上傳,望老師見諒!
這學期相比上學期,可以更多的跟着老師在課堂上學習。並且老師也改變了教學方式,從原先的一週一篇博客到如今的兩篇博客,減輕了咱們的壓力。看着如此如此厚的一本書,我倍感焦急,不知道可以從中習得多少知識,可以掌握多少知識,但願這學期可以把書本從厚學薄再學厚,先從中精煉而後本身再拓展,讓本身可以充分理解。加油!
| | 代碼行數(新增/累積)| 博客量(新增/累積)|學習時間(新增/累積)|重要成長|
| ----- | :---------😐:------😐:----------: |
| 目標 | 5000行 | 30篇 | 400小時 | |
| 第一週 | 40/40 | 1/1 | 15/15 | |