極客時間:操作系統實戰45講


程序編譯過程:

gcc HelloWorld.c -E -o HelloWorld.i 預處理:加入頭文件,替換宏。

gcc HelloWorld.c -S -c HelloWorld.s 編譯:包含預處理,將 C 程序轉換成匯編程序。

gcc HelloWorld.c -c HelloWorld.o 匯編:包含預處理和編譯,將匯編程序轉換成可鏈接的二進制程序。

gcc HelloWorld.c -o HelloWorld 鏈接:包含以上所有操作,將可鏈接的二進制程序和其它別的庫鏈接在一起,形成可執行的程序文件。

 

.i:有很多#開頭的常量或變量

.s:匯編指令

.o:看不懂

objdump -d HelloWorld可以得到有內存地址和二進制指令的匯編文件

 

手寫操作系統

鏈接:https://zhuanlan.zhihu.com/p/373996858

操作系統啟動經歷的流程:

加電后啟動BIOS固件,加載引導設備GRUB,引導后加載磁盤分區中的操作系統,可以在界面中自己選擇

原文:簡單解釋一下,PC 機 BIOS 固件是固化在 PC 機主板上的 ROM 芯片中的,掉電也能保存,PC 機上電后的第一條指令就是 BIOS 固件中的,它負責檢測和初始化 CPU、內存及主板平台,然后加載引導設備(大概率是硬盤)中的第一個扇區數據,到 0x7c00 地址開始的內存空間,再接着跳轉到 0x7c00 處執行指令,在我們這里的情況下就是 GRUB 引導程序。

 

內核:宏內核,微內核,混合內核

宏內核有極致的性能,微內核有極致的擴展性,可移植性

內核功能:文件管理,內存管理,I/O管理,進程管理

 

三種內核架構

Linux內核:內核架構最為復雜,宏內核,但性能強勁

Darwin內核:微內核架構,ios內核

windows NT(new technology):混合內核架構,windows內核

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM