簡體   English   中英

內核的文件類型是什么(例如Linux內核)?

[英]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

內核可能包含單個文件,也可能不包含單個文件。 當您在某個USB或驅動器上刻錄OS映像時,它會更改該USB或驅動器上的文件系統,然后OS便很容易搜索.bin文件,因此可以完成鏈接。 是的,內核可以是一個exe文件。 我剛剛創建了一個只有一個exe文件的小內核。

可以使exe文件獨立於OS。 請在此處查看僅包含一個exe文件的內核。 請檢查此內容以了解如何鏈接多個二進制文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM