1.boot目录:主要功能是计算机上电后,引导内核启动,将代码加载到内存中,并做一些进入32位保护运行方式前的系统初始化工作。 1.1.bootsect.s:程序是磁盘引导块程序。编译后会驻留在磁盘的第一个扇区中,PC上电ROM BIOS自检后,将被BIOS加载到内存0x7C00处进行执行。 1.2 ...
分类:
系统相关 时间:
2020-07-12 01:15:07
阅读次数:
100
! ! SYS_SIZE is the number of clicks (16 bytes) to be loaded. ! 0x3000 is 0x30000 bytes = 196kB, more than enough for current ! versions of linux ! SY ...
分类:
系统相关 时间:
2020-07-11 19:07:43
阅读次数:
75
1 代码 修改bootsecet.s,代码如下。原本的bootsect.s代码很长,但完成第一个功能,只需如下的21行代码。 1 entry _start 2 _start: 3 mov ah,#0x03 4 xor bh,bh 5 int 0x10 6 mov cx,#11 7 mov bx,#0 ...
分类:
其他好文 时间:
2020-07-08 20:03:29
阅读次数:
54
分析OS系统调用 一些基本概念 系统调用概念 系统库中为系统调用编写了许多接口函数(API),不同的API对应了不同的真正的(OS内核中)系统调用 从实模式到保护模式 x86系统在刚开机时处于实模式,即cs:ip的寻址方式为cs左移四位+ip,寻址能力只有20位,当bootsect.s和setup. ...
分类:
其他好文 时间:
2020-06-20 13:08:19
阅读次数:
48
Linux操作系统的启动的主要流程: PC上电后,自动进入实模式(实模式就是寄存器都是16位的,最大寻址范围是1M,最大分段是64KB),从地址0xFFFF0开始执行,这里一般都是ROM-BIOS的地址。 BIOS加载第一个扇区(引导扇区,512字节)的程序(bootsect.s)到绝对地址0x7C ...
分类:
系统相关 时间:
2020-03-08 22:05:03
阅读次数:
93
bootsect.s(引导扇区程序)做了件什么事? 将硬盘中的OS程序(setup.s)读入内存 今天看一下setup.s后又做了什么事。 为什么一开始操作系统的程序要用汇编来编写?因为我们要严格地控制程序在哪里执行。汇编能做到,而C语言要需要编译才可以,在哪里执行我们是控制不了的。 为什么要做这件 ...
分类:
其他好文 时间:
2019-12-28 10:01:25
阅读次数:
118
1、计算机的启动 1、首先计算机的工作原理可以简单的概述为取指,执行;再取指,再执行;以此类推的过程,cpu就是一个不停取指执行不会休息的机器。 2、那么x86结构的计算机上电后是是怎么工作的呢?其实上电后(未加载操作系统代码之前)会先执行内存中一段为BIOS固化的区域,这段区域是每次开机都必须执行 ...
分类:
系统相关 时间:
2019-11-09 21:53:12
阅读次数:
97
这是linux由BIOS加载后执行的第一段的启动程序代码,即文件 boot/bootsect.s 启动代码短小精悍,却又十分高效,利用效率让人惊叹! 多处借鉴,重在学习 如有错误,欢迎指正 ...
分类:
系统相关 时间:
2018-11-25 01:25:56
阅读次数:
199
一、总体功能介绍 这是关于 中boot文件夹下 源文件的说明,其中涉及到了一些基础知识可以参考这两篇文章。 1. "操作系统启动过程" 2. "软盘相关知识和通过BIOS中断访问软盘" bootsect.s 代码是磁盘引导块程序,存储在磁盘的第一个扇区中(0面0道1扇区),在计算机上电BIOS自检后 ...
分类:
系统相关 时间:
2018-05-23 23:35:56
阅读次数:
270
主要描述 boot/目录中的三个汇编代码文件,见列表 3-1 所示。正如在前一章中提到的,这三个 文件虽然都是汇编程序,但却使用了两种语法格式。bootsect.s 和 setup.s 采用近似于 Intel 的汇编语言语法,需要使用 Intel 8086 汇编编译器和连接器 as86 和ld86, ...
分类:
系统相关 时间:
2018-02-13 21:42:33
阅读次数:
307