簡體   English   中英

Linux啟動過程中的內存分配?

[英]Memory allocation during linux booting?

我試圖在Google和此網站上搜索此主題,但找不到正確的答案。

我正在嘗試在Linux啟動過程中的設置的物理地址上分配一個大的連續內存塊(幾MB)。 但是我仍然不清楚應該在哪里放置“ alloc_bootmem”函數。 我在ARM處理器上運行Linux。

  1. AFAIK,有一種方法可以創建一個驅動程序,該驅動程序包含對“ alloc_bootmem”的調用,然后將該驅動程序直接編譯到內核中。

  2. 另一種方法是在Linux內核源代碼中的某個位置添加“ alloc_bootmem”。

  3. 我認為存在的最后一種方法是創建一個設置文件,例如boot.rc?(不確定),以便在引導過程中Linux將保留我要分配的內存。

如果有一個明確的方法或一個指向該問題的答案的鏈接,我將非常感謝大家的幫助。 基本問題是“我應該在哪里調用“ alloc_bootmem”,以便它在啟動期間可以工作?”

謝謝,Shahril

看一下: http : //lwn.net/Kernel/LDD3/第8章,它解釋了早期引導階段的內存分配。

有關啟動內存分配的更多信息,可以在這里找到:

https://www.kernel.org/doc/gorman/html/understand/understand022.html

此功能用於在系統啟動期間分配大內存塊,它使用物理內存而不是虛擬內存。 MMU啟動並運行后,無法訪問內存AFAIK

如果您正在尋找較大的連續內存分配,則可能應該使用其他分配器,看看:

http://lwn.net/Articles/396702/

暫無
暫無

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

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