X86系统启动

BIOS找到以0X55AA结束的512Byte扇道,把此512字节内容加载到起始地址为07c00h的内存,然后BIOS把控制权限这段内存中的程序了。这段程序就是系统的开始了。

最简单的系统:

    ;org 0100h   ;调试用
    org 07c00h  ;最终留下
    mov ax, cs
    mov ds, ax
    call    DispStr
    jmp $
DispStr:
    mov ax, BootMessage
    mov bp, ax
    mov cx, 16
    mov ax, 01301h
    mov bx, 000ch
    mov dl, 0
    int 10h
    ret
    BootMessage:   db   "Hello, OS world!"
    times   510-($-$$) db 0
    dw 0xaa55

  用NASM编译出bin文件后,用visual box软驱加载此bin文件,可以看见hello world了:

可以认为,一个世界上最小的系统已经起来了

时间: 2024-12-25 18:44:13

X86系统启动的相关文章

The Boot Process at a Glance x86/x64系统启动过程解析

哥又来干体力活了.人肉翻译一下: The Boot Process at a Glance This section explains the boot process in sufficient detail to understand the system address map and other bus protocol-related matters that are explained later in this article. You need to have a clear u

X86控制寄存器和系统地址寄存器

80386控制寄存器和系统地址寄存器如下表所示.它们用于控制工作方式,控制分段管理机制及分页管理机制的实施. 控制寄存器 CRx BIT31 BIT30—BIT12 BIT11—BIT5 BIT4 BIT3 BIT2 BIT1 BIT0 CR0 PG 0000000000000000 ET TS EM MP PE CR1 保留 CR2 页故障线性地址 CR3 页目录表物理页码 000000000000   BIT47—BIT16 BIT15—BIT0 全局描述符表寄存器GDTR 基地址 界限 中

linux系统启动

在本文中,我们按电源按钮简要叙述,以便能够登录到系统,在此期间,系统和计算机硬件是如何一起工作.既作为自己整理知识的摘要,有可能linux0绍,高手请略过. 一般来说linux的启动能够分成三个阶段:BIOS阶段,系统引导阶段,系统启动阶段. 一.BIOS阶段 BIOS(基本输入输出系统),是固化在电脑ROM中的一段程序.这是安装电脑前都已经固化好的. 对电脑有一些了解的同学应该都知道电脑是由cpu,内存,硬盘,显示器等再加一个铁盒子封装起来,而电脑的执行都是由CPU一条条指令执行并指挥着其它硬

调试 Android* x86 应用程序的方法以及要使用的工具

作者:Xiaodong Wang 1.简介 众所周知,Android* 开发人员头顶许多称呼:设计员.程序猿等,并且通常会不可避免地被称为故障检修工.代码中的错误无法避免,因此无论您是否一开始就造成错误,了解调试工具以及如何迅速而有效地跟踪并解决错误都很重要.鉴于此,如今的 Android 开发人员必须掌握有效的调试技巧.本文提供了 Android 应用程序调试工具的简单教学,用于帮助 Android SDK 以及相关工具的新手迅速入门,并在 Android x86 平台上更有效地解决故障. 2

OPENWRT X86 安装使用教程 (未完成)

目 录 一 下载 Openwrt 镜像文件 二 将镜像文件写入目标磁盘 2.1  写盘工具 2.2 Physdiskwrite 写盘 2.3 win32diskimager 写盘 三 管理界面 3.1 openwrt 的控制台 3.1.1  本机控制台 3.1.2  远程控制台(telnet/SSH) 3.1.3 SSH 登录 3.1.4 winSCP 的使用 3.2 openwrt 的 web 管理界面 四 基本网络设置 4.1 web 管理界面设置网络接口 4.2  使用控制台设置网络接口

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

Linux内核的配置与编译(X86平台)

说明:只供学习交流 目的: (1):配置.编译X86平台下的Linux-2.6.29内核 (2):在vmware下安装编译好的内核并启动 工具: Gcc编译器, Linux-2.6.29内核 步骤: (一):清除临时文件,中间文件和配置文件等(刚从网上下载下来的文件这步可省略). make clean 删除大多数的由编译生成的文件.但会保留内核的配置文件.config. make mrproper 删除所有的编译生成的文件,还有内核配置文件,再加上各种备份文件. make distclean m

linux系统启动流程(CentOS5/6/7为例)

一个操作系统要完整启动起来需要哪些步骤呢?今天以CentOS为例探索一下linux的启动流程: 一.Linux系统的组成--kernel+rootfs(根文件系统) kernel: 内核,进行进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能等等 rootfs: 根文件系统 1.内核设计流派: 单内核(monolithic kernel): Linux 把所有功能集成于同一个程序 微内核(micro kernel): Windows, Solaris 每种功能使用一个单独子系统实现 2.

CentOS系统启动

CentOS(RHEL)系列操作系统的启动流程: Intel X86兼容架构 Linux的系统组成: 内核+应用程序(GNU/Linux): 单纯的指Linux内核 从硬盘存储和启动操作系统的角度: Linux的系统组成: 内核+根文件系统(rootfs) 内核功能: 进程管理, 文件系统管理, 内存管理, 网络协议, 驱动程序, 安全功能, ...... Linux系统的系统运行环境可以分为两部分: 内核空间: 内核代码(系统调用) 就是内核进程占用的CPU和内存资源的总和; 用户空间: 应用