亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關注微信公眾號

介紹Linux內核函數Start_kernel()的功能
2007-07-28   網絡

Start_kernel()中調用了一系列初始化函數,以完成kernel本身的設置。這些動作有的是公共的,有的則是需要配置的才會執行的。

  在start_kernel()函數中,

  輸出Linux版本信息(printk(linux_banner))

  設置與體系結構相關的環境(setup_arch())

  頁表結構初始化(paging_init())

  使用"arch/alpha/kernel/entry.S"中的入口點設置系統自陷入口(trap_init())

  使用alpha_mv結構和entry.S入口初始化系統IRQ(init_IRQ())

  核心進程調度器初始化(包括初始化幾個缺省的Bottom-half,sched_init())

  時間、定時器初始化(包括讀取CMOS時鐘、估測主頻、初始化定時器中斷等,time_init())

  提取并分析核心啟動參數(從環境變量中讀取參數,設置相應標志位等待處理,(parse_options())

  控制臺初始化(為輸出信息而先于PCI初始化,console_init())

  剖析器數據結構初始化(prof_buffer和prof_len變量)

  核心Cache初始化(描述Cache信息的Cache,kmem_cache_init())

  延遲校準(獲得時鐘jiffies與CPU主頻ticks的延遲,calibrate_delay())

  內存初始化(設置內存上下界和頁表項初始值,mem_init())

  創建和設置內部及通用cache("slab_cache",kmem_cache_sizes_init())

  創建uid taskcount SLAB cache("uid_cache",uidcache_init())

  創建文件cache("files_cache",filescache_init())

  創建目錄cache("dentry_cache",dcache_init())

  創建與虛存相關的cache("vm_area_struct","mm_struct",vma_init())

  塊設備讀寫緩沖區初始化(同時創建"buffer_head"cache用戶加速訪問,buffer_init())

  創建頁cache(內存頁hash表初始化,page_cache_init())

  創建信號隊列cache("signal_queue",signals_init())

  初始化內存inode表(inode_init())

  創建內存文件描述符表("filp_cache",file_table_init())

  檢查體系結構漏洞(對于alpha,此函數為空,check_bugs())

  SMP機器其余CPU(除當前引導CPU)初始化(對于沒有配置SMP的內核,此函數為空,smp_init())

  啟動init過程(創建第一個核心線程,調用init()函數,原執行序列調用cpu_idle() 等待調度,init())

  至此start_kernel()結束,基本的核心環境已經建立起來了。

熱詞搜索:

上一篇:Linux內核模塊是如何被調入內核工作的?
下一篇:基于Linux操作系統上的C編程與內核導讀

分享到: 收藏