学习操作系统原理最好的方法是自己写一个简单的操作系统。按一下电脑上的电源按钮,电脑就启动了,不一会儿电脑屏幕上就出现了登录界面或直接进入了桌面。这是一个很日常的场景,但有时候会有个疑问:电脑内部是如何启动的?本讲我们就简单的介绍一下。因为本教程属于入门型,不考虑UEFI等比较新的技术,但不影响对操作系统基本原理的学习。电脑的启动过程在细节上是比较复杂的,但在大的过程上分为以下几个:上电->BIOS->MBR(boot)->loader->kernel->交互界面(图形/命令行)上面是一个比较经典的电脑启动过程,可以看到电脑启动过程类似接力赛,下面介绍一下接力赛的每一棒。1.上电上电就是我们按了
学习操作系统原理最好的方法是自己写一个简单的操作系统。在大学计算机课程中会学到一个叫冯·诺依曼结构的东西,很多同学当时学的也不是很清楚,也就是记住冯·诺依曼结构中五个部分的名称,能应付考试。主要原因还是当时大家的计算机知识比较少,的确不好深入理解。计算机组成与运行原理和冯·诺依曼结构密切相关,今天我们就来回顾一下冯·诺依曼结构,也许能温故知新。1946年冯·诺依曼提出了计算机的三个基本原则:计算机硬件由五个部分组成:运算器、控制器、存储器、输入设备和输出设备。计算机采用二进制。计算机采用“存储程序”模式。以上三个基本原则虽然是七十多年前提出的,但现在的计算机仍然沿用这些原则。下面将这三个基本原
学习操作系统原理最好的方法是自己写一个简单的操作系统。在大学计算机课程中会学到一个叫冯·诺依曼结构的东西,很多同学当时学的也不是很清楚,也就是记住冯·诺依曼结构中五个部分的名称,能应付考试。主要原因还是当时大家的计算机知识比较少,的确不好深入理解。计算机组成与运行原理和冯·诺依曼结构密切相关,今天我们就来回顾一下冯·诺依曼结构,也许能温故知新。1946年冯·诺依曼提出了计算机的三个基本原则:计算机硬件由五个部分组成:运算器、控制器、存储器、输入设备和输出设备。计算机采用二进制。计算机采用“存储程序”模式。以上三个基本原则虽然是七十多年前提出的,但现在的计算机仍然沿用这些原则。下面将这三个基本原
学习操作系统原理最好的方法是自己写一个简单的操作系统。汇编语法主要有两种:Intel语法和AT&T语法。由于大部分介绍x86汇编的书籍和资料用的都是Intel语法,毕竟x86就是Intel发明的,大家学过的x86汇编大概率也是Intel语法,所以GrapeOS的汇编也用Intel语法。支持Intel语法的x86汇编器不止一种,常见的有MASM和NASM。MASM来自微软公司,只能在微软的操作系统Windows和MS-DOS上用。NASM是开源软件,支持多平台。GrapeOS选用NASM。下面介绍一下NASM在Linux上的使用1.首次使用需要先安装yuminstallnasm由于我之前已经安装
学习操作系统原理最好的方法是自己写一个简单的操作系统。汇编语法主要有两种:Intel语法和AT&T语法。由于大部分介绍x86汇编的书籍和资料用的都是Intel语法,毕竟x86就是Intel发明的,大家学过的x86汇编大概率也是Intel语法,所以GrapeOS的汇编也用Intel语法。支持Intel语法的x86汇编器不止一种,常见的有MASM和NASM。MASM来自微软公司,只能在微软的操作系统Windows和MS-DOS上用。NASM是开源软件,支持多平台。GrapeOS选用NASM。下面介绍一下NASM在Linux上的使用1.首次使用需要先安装yuminstallnasm由于我之前已经安装
学习操作系统原理最好的方法是自己写一个简单的操作系统。在上一讲中我们介绍了屏幕显示的原理,本讲我们来实战一下。一、向屏幕输出一个字符mbr4.asmmbr4.asm中的代码如下:;将屏幕第一行的第一个字符显示为‘G’。movah,0x07;黑底白字moval,'G';G的ASCII码是0x47,此时ax的值为0x0747。movbx,0xb800moves,bxmov[es:0],ax;文本模式显存地址从0xb8000开始。stop:;标号hltjmpstoptimes510-($-$$)db0;将从上条指令结束到最后2个字节前的空余字节全部置为0。db0x55,0xaa上面代码中的注释比较详
学习操作系统原理最好的方法是自己写一个简单的操作系统。在上一讲中我们介绍了屏幕显示的原理,本讲我们来实战一下。一、向屏幕输出一个字符mbr4.asmmbr4.asm中的代码如下:;将屏幕第一行的第一个字符显示为‘G’。movah,0x07;黑底白字moval,'G';G的ASCII码是0x47,此时ax的值为0x0747。movbx,0xb800moves,bxmov[es:0],ax;文本模式显存地址从0xb8000开始。stop:;标号hltjmpstoptimes510-($-$$)db0;将从上条指令结束到最后2个字节前的空余字节全部置为0。db0x55,0xaa上面代码中的注释比较详
学习操作系统原理最好的方法是自己写一个简单的操作系统。一、屏幕显示原理电脑显示器屏幕是由很多很小的像素组成的。每个像素就像是一个小灯泡,在屏幕上一排一排的整齐排列着。只要能控制每个像素的颜色就能显示出各种各样的图形。如果近距离观察过会场或室外的大屏幕会有更直观的感受,这种大屏幕上每个像素就是一个小灯泡。屏幕显示原理大致可以如下表示:CPU(程序)->显卡(显存)->显示器(屏幕)在程序的控制下,CPU将要显示的数据发送到显卡上的显存(显卡上的内存),显存中的数据和屏幕上的像素是有对应关系的,显卡会不断的从显存中取出数据发给显示器,显示器就会在屏幕上显示出对应的图形。发给显示器前,显卡可能会对数
学习操作系统原理最好的方法是自己写一个简单的操作系统。一、屏幕显示原理电脑显示器屏幕是由很多很小的像素组成的。每个像素就像是一个小灯泡,在屏幕上一排一排的整齐排列着。只要能控制每个像素的颜色就能显示出各种各样的图形。如果近距离观察过会场或室外的大屏幕会有更直观的感受,这种大屏幕上每个像素就是一个小灯泡。屏幕显示原理大致可以如下表示:CPU(程序)->显卡(显存)->显示器(屏幕)在程序的控制下,CPU将要显示的数据发送到显卡上的显存(显卡上的内存),显存中的数据和屏幕上的像素是有对应关系的,显卡会不断的从显存中取出数据发给显示器,显示器就会在屏幕上显示出对应的图形。发给显示器前,显卡可能会对数
学习操作系统原理最好的方法是自己写一个简单的操作系统。前面我们介绍过电脑的启动过程:上电->BIOS->MBR(boot)->loader->kernel->交互界面(图形/命令行)本讲我们要介绍的是MBR(MasterBootRecord,主引导记录)。在电脑中对磁盘的读写是按扇区为基本单位的,一般每个扇区为512个字节。也就是说每读一次磁盘,读取的字节数是512字节的整数倍。同样每写一次磁盘,写入的字节数也是512字节的整数倍。MBR是磁盘的第一个扇区,又叫做主引导扇区,特点是最后2个字节的内容必须是0x55和0xAA。下面我们来做几个实验来加深对MBR的了解。1.不加载虚拟磁盘启动QEM