linux通過核心啟動引數預留系統記憶體

2021-08-07 14:16:45 字數 988 閱讀 1958

1 首先正常啟動核心

我們需要啟動核心後查詢一些資訊。

2. 檢視系統記憶體資訊

核心啟動後通過 

cat /proc/iomem
檢視記憶體的分布,結果類似:

100000000-10dffffff : system ram
但是我們會看到有很多條這樣的項,我們主要關注"system ram"這樣的項,因為這代表系統記憶體。

3. 在system ram的段,找乙個位址最高的ram項的結束位址,然後計算出預留的起始位址

例如,我需要預留4m記憶體,起始位址就是

0x10dffffff - 0x400000 = 0x10dbfffff

這個是記憶體實體地址,你所選的預留記憶體的位址是需要由你自己來規劃的。我這裡之所以選擇末端位址,是因為我的機器啟動時,末端的位址基本上用不到。

4. 通過核心啟動引數預留記憶體

在啟動命令列新增如下引數:

memmap=4m$0x10dbfffff
這樣就表示從0x10dbfffff處預留出4m記憶體。

注意:如果是通過grub啟動,需要確定grub是否支援識別$,否則需要通過轉義字元:

memmap=4m\$0x10dbfffff

5. 驗證

最後要做的事情就是重啟核心,等核心啟動完成後,再通過cat /proc/iomem,觀察我們預留的 0x10dbfffff ~ 0x10dfffffe是否是 「reserved」狀態。

參考:

預留linux系統隨機埠 核心引數控制

隨機埠可能會占用後面準備使用的埠,然後在後面程序啟動的時候,無法繫結埠引起服務異常 通過核心引數控制,在 etc sysctl.conf新增 net.ipv4.ip local reserved ports 8000,8080這個容易被沖掉,可以修改下預設的核心引數,通過tune實現 修改配置檔案 ...

Linux的核心啟動引數

linux核心在啟動的時候,能接收某些命令列選項或啟動時引數。當核心不能識別某些硬體進而不能設定硬體引數或者為了避免核心更改某些引數的值,可以通過這種方式手動將這些引數傳遞給核心。如果不使用啟動管理器,比如直接從bios或者把核心檔案用 cp zimage dev fd0 等方法直接從裝置啟動,就不...

Linux的核心啟動引數

linux核心在啟動的時候,能接收某些命令列選項或啟動時引數。當核心不能識別某些硬體進而不能設定硬體引數或者為了避免核心更改某些引數的值,可以通過這種方式手動將這些引數傳遞給核心。如果不使用啟動管理器,比如直接從bios或者把核心檔案用 cp zimage dev fd0 等方法直接從裝置啟動,就不...