网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > linux > 系统管理 > 内核技术 > 介绍Linux内核函数Start_kernel()的功能  

介绍Linux内核函数Start_kernel()的功能

2007-07-06  作者:bitsCN整理  来源:中国网管联盟  点评 投稿 收藏

  Start_kernel()中调用了一系列初始化函数,以完成kernel本身的设置。这些动作有的是公共的,有的则是需要配置的才会执行的。

网管下载dl.bitscn.com

  在start_kernel()函数中,

网管有家www.bitscn.net

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

网管联盟bitsCN_com

  设置与体系结构相关的环境(setup_arch()) 网管bitscn_com

  页表结构初始化(paging_init())

网管网www.bitscn.com

  使用"arch/alpha/kernel/entry.S"中的入口点设置系统自陷入口(trap_init())

网管网www_bitscn_com

  使用alpha_mv结构和entry.S入口初始化系统IRQ(init_IRQ()) 网管朋友网www_bitscn_net

  核心进程调度器初始化(包括初始化几个缺省的Bottom-half,sched_init()) 网管下载dl.bitscn.com

  时间、定时器初始化(包括读取CMOS时钟、估测主频、初始化定时器中断等,time_init()) 网管网www.bitscn.com

  提取并分析核心启动参数(从环境变量中读取参数,设置相应标志位等待处理,(parse_options())

网管u家bitscn.net

  控制台初始化(为输出信息而先于PCI初始化,console_init()) 网管有家www.bitscn.net

  剖析器数据结构初始化(prof_buffer和prof_len变量) 网管联盟bitsCN@com

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

网管下载dl.bitscn.com

  延迟校准(获得时钟jiffies与CPU主频ticks的延迟,calibrate_delay()) 中国网管论坛bbs.bitsCN.com

  内存初始化(设置内存上下界和页表项初始值,mem_init()) 网管u家www.bitscn.net

  创建和设置内部及通用cache("slab_cache",kmem_cache_sizes_init())

网管u家u.bitsCN.com

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

网管u家www.bitscn.net

  创建文件cache("files_cache",filescache_init()) 网管论坛bbs_bitsCN_com

  创建目录cache("dentry_cache",dcache_init())

网管网www.bitscn.com

  创建与虚存相关的cache("vm_area_struct","mm_struct",vma_init()) 网管u家u.bitscn@com

  块设备读写缓冲区初始化(同时创建"buffer_head"cache用户加速访问,buffer_init())

中国网管联盟bitsCN.com

  创建页cache(内存页hash表初始化,page_cache_init()) 网管网www.bitscn.com

  创建信号队列cache("signal_queue",signals_init())

网管u家www.bitscn.net

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

网管论坛bbs_bitsCN_com

  创建内存文件描述符表("filp_cache",file_table_init()) 网管论坛bbs_bitsCN_com

  检查体系结构漏洞(对于alpha,此函数为空,check_bugs()) 中国网管论坛bbs.bitsCN.com

  SMP机器其余CPU(除当前引导CPU)初始化(对于没有配置SMP的内核,此函数为空,smp_init())

网管bitscn_com

  启动init过程(创建第一个核心线程,调用init()函数,原执行序列调用cpu_idle() 等待调度,init()) 网管有家www.bitscn.net

  至此start_kernel()结束,基本的核心环境已经建立起来了。

网管有家www.bitscn.net

TAGs   功能   函数   介绍   初始   创建   cache   设置   内存   核心   入口      
 上一篇:基于Linux操作系统上的C编程与内核导读   下一篇:Linux内核模块是如何被调入内核工作的?
介绍Linux内核函数Start_kernel()的功能 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
最新推荐文章:
网管论坛交流: