[英]What is the file type of a kernel (Linux kernel for example)?
一般而言,我對Linux內核和操作系統非常感興趣。 我想知道的是,內核具有什么文件類型或擴展名? 它顯然沒有.exe或.out擴展名,因為它們用於操作系統上安裝的應用程序。
內核只是二進制文件嗎?
額外的問題:我知道Linux Kernel源代碼分為許多.c文件,但是我想知道在編譯時,所有這些文件都被編譯成一個二進制文件還是在外部鏈接?
(我希望我的任務不要模糊)
Linux內核(或任何其他OS內核)只是一個二進制映像,其中包含目標體系結構的機器代碼。 它有點像靜態鏈接的可執行文件,因為在運行之前沒有操作系統可以鏈接任何依賴項,因此一旦加載到主內存中,它就可以在沒有任何其他幫助程序的情況下執行。 這並不意味着它不能動態加載任何其他模塊。 在Linux中,當您從用戶空間加載模塊時,這種行為很容易看出來(這與加載.so文件的過程不同)。
該圖像在存儲到文件系統中之前可能已被壓縮,這就是為什么您可能會從“文件”中得到類似以下輸出的原因:
文件/boot/vmlinuz-2.6.39-400.215.7.el6uek.x86_64
/boot/vmlinuz-2.6.39-400.215.7.el6uek.x86_64:Linux內核x86引導可執行文件bzImage ,版本2.6.39-400.215.7.el6uek.x86_64,RO-rootFS,swap_dev 0x3,普通VGA
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.