Linux操作系统下关于引导和初始化的问题
http://tech.ddvip.com 2007年07月10日 社区交流
内容摘要:Linux操作系统下关于引导和初始化的问题
(4)通过调用BIOS程序显示"Loading Linux"信息;
(5)自举程序BIOS调用来加载的setup()函数,并把它放在起始地址为0x00090200的内存中;
(6)自举程序BIOS调用加载剩余的内核程序,并将其放入起始地址为0x00010000或者0x00100000;
(根据内核类型,对于小内核zImage放在 0x10000 ,大内核bzImage放在0x100000)
此处是如何判断要加载的内核是什么的
(7)然后,跳转到setup()函数.
Setup()函数的功用
Setup()函数可以在/linux-2.4.22/arch/i386/boot/setup.S文件中找到.
Setup()函数代码是在完整的内核自举程序加载以后,才会跳到相应的函数代码处.在内核文件中,
其偏移地址是0x200.这使得自举程序很容易找到这段代码,并将其拷贝到起始物理地址为0x00090200的
内存中.
这个Setup()文函数到底是做什么用的 在计算机时里,内核要正确地操作所有硬件就必需首先要检
测到它们,并且以一种有序的方式进行初始化.Setup()函数初始化所有的硬件设备,从而为内核操作它创
造了一个环境.
但是,前面我们不是已经提到过BIOS会检测所有的硬件吗 虽然BIOS初始化了所有的硬件,但是Linux
内核并不放心,它还要以自己的方式对所有的硬件进行初始化.Linux内核之所以要设计成这样,是为了
增强可移植性和稳定性.这也是Linux内核要优于很多目前可用的Unix和类Unix内核的原因之一,并且
也使得它在很多方面表现的非常出众.
Setup()函数主要完成以下任务:
(1)首先是检测系统可用内存的总量,它是通过BIOS程序来完成检测的;
(2)设置键盘重复延迟时间和重复速度;
(3)检测视频卡;
(4)重新初始化硬盘控制器和硬盘参数;
责编:豆豆技术应用
- Linux/Unix 新闻
- Linux/Unix 入门
- Linux/Unix 命令
- Linux/Unix 安装
- Linux 嵌入式系统
- Linux/Unix 编程
- Linux/Unix 管理
- Linux/Unix 桌面
- Linux/Unix 内核
- Linux/Unix 软件
- SCO Unix
- NetBSD
- OpenBSD
- Redhat/Fedora Linux
- 手机
- Linux/Unix find 搜索命令
- Linux/Unix vi 命令
- Linux/Unix kde 桌面环境
- Linux/Unix GNOME 桌面环境
- Linux/Unix Make 命令
- Linux/Unix crontab 命令
- Linux/Unix ext3 文件系统
- Linux/Unix 文件系统详解
- Linux/Unix ADSL 拨号设置
- Linux/Unix GRUB 配置及应用
- Linux/Unix nfs配置
- Linux/Unix 硬件信息查看及管理
- Linux/Unix 优化
- Linux/Unix 交换分区Swap管理及应用
- Linux/Unix 用户管理
- Linux/Unix Ramdisk
- Linux/Unix 密码恢复管理
- Linux/Unix 文件删除恢复
- Linux/Unix fdisk分区
- Linux/Unix lvs负载均衡管理
- Linux/Unix root用户
- Linux/Unix 集群
- Linux/Unix 日志
- 更多Linux/Unix专题……