Linux操作系统下关于引导和初始化的问题
http://tech.ddvip.com 2007年07月10日 社区交流
内容摘要:Linux操作系统下关于引导和初始化的问题
系统引导和初始化概述
相关代码(引导扇区的程序及其辅助程序,以x86体系为例):
linux-2.4.22archi386ootootsect.S:Linux引导扇区的源代码;512字节
linux-2.4.22archi386ootsetup.S:辅助程序;
linux-2.4.22archi386ootvideo.S:辅助程序,用于引导过程中的屏幕显示.
linux-2.4.22archi386ootcompressedhead.S,
linux-2.4.22archi386ootcompressedmisc.c :用于对内核映像解压缩
-----------------------------------------
linux-2.4.22archi386kernelhead.s系统初始化入口
linux-2.4.22initmain.c 系统初始化入口
参考文档:linux-2.5.75Documentationi386oot.txt
过程描述
系统加电,CPU RESET
跳到地址0xFFFFFFF0,此处是BIOS
BIOS完成它的操作把第一扇区的内容读入到0x7c00
就是bootsect.S
把自己移到绝对地址0x90000处,并调转到那里继
续执行
通过BIOS提供的读磁盘调用"int 0x13"从磁盘上读
入setup和内核的映像
将(boot/setup.S)2kB字节的代码读入内存0x90200处,
然后跳转到setup的代码中做执行内核映像的准备
从0x100000开始执行startup_32()进行初始化(head.s)
---〉start_kernel()[main.c]-cpu_idle()
start_kernel()创建的进程init()被调度执行,完成
1.指令的跳转及其机理
l 80x86/Pentium的地址映射
0–640 KB MS-DOS Area.
640–768 KB Video Buffer Area.
768–896 KB in 16-KB sections (total of eight sections) - Expansion Area.
896 -960 KB in 16-KB sections (total of four sections) - Extended System BIOS Area.
责编:豆豆技术应用
- 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专题……