uboot1.1.6:在u-boot啟動階段 do_bootm_linux往往會分析核心映象,這裡面會遇到幾個結構體,如下:
image_header_t 裡面定義了映象的頭部
typedef struct image_header image_header_t;
這裡面#define ih_magic 0x27051956 /* image magic number */
(1)用u-boot 的mkimage 工具處理核心映像zimage。
(2)通過網路、串列埠、u 盤、sd 卡等方式將處理過的核心映像傳輸到sdram 的一定位置(一般使用0x30008000)
(3)然後使用」bootm"等核心引導命令來啟動核心。
為什麼要用u-boot 的mkimage 工具處理核心映像zimage?
因為在用bootm 命令引導核心的時候,bootm 需要讀取乙個64 位元組的檔案頭,來獲取這個核心映象所針對的cpu 體系結構、os、載入到記憶體中的位置、在記憶體中入口點的位置以及映象名等等資訊。這樣bootm 才能為os 設定好啟動環境,並跳入核心映象的入口點。而mkimage 就是新增這個檔案頭的專用工具。具體的實現請看u-boot 中bootm 的原始碼和mkimage 的原始碼。
可參考這個裡面的分析
typedef struct bd_info bi_dram[config_nr_dram_banks];
#ifdef config_has_eth1
/* second onboard ethernet port */
unsigned char bi_enet1addr[6];
#endif
} bd_t;
以下為傳遞給核心中使用的引數struct tag u;
};
struct tag_header hdr主要標識頭部
struct tag_header ;
struct tag_mem32 ;
struct tag_cmdline ;
KVM映象image 轉換 調整
qemu img create f raw test.raw 8g 建立乙個raw格式,大小為8g的映象。qemu img info disk1.qcow2 檢視映象大小及實際占用多少空間 qemu img resize disk1.qcow2 150m 更改大小 加150m qcow2格式只能加 ...
hive中有關分桶
首先,在hive中為什麼要分桶?單個分割槽或者表中的資料量越來越大,當分割槽不能更細粒度的劃分資料時,會採用分桶的技術將資料更加細粒度的劃分和管理。分割槽和分桶的區別 分割槽 乙個分割槽在表目錄之中就是目錄下的乙個檔案,在表中的字段因為是偽列,所以定義分割槽的時候應該加上 對應的字段型別。例如 cr...
oracle exp 中有關direct使用
oracle提供2種模式匯出表資料,傳統模式conventional path和直接模式direct path,有direct指定。conventional path export 比較direct path export 一 差異 1.conventional path export.傳統匯出模式...