为了学习操作系统原理我自己写了一个简单的操作系统,取名叫GrapeOS。GrapeOS是一个x86多任务桌面操作系统,但非常简单,代码只有4千行。下面我来简单介绍一下GrapeOS。一、功能介绍1.桌面在桌面上可以通过鼠标双击“MyCompuer”来打开资源管理器。2.资源管理器资源管理器中显示的是磁盘根目录中的文件列表,可以通过鼠标右键菜单新建文件、重命名文件、删除文件、刷新文件列表。因为文件系统采用FAT16格式,所以文件名都是大写的。3.打开应用程序目前只写了“记事本”这一个应用程序,可以直接双击“NOTEPAD.EXE”这个文件打开记事本,也可以双击后缀名是“TXT”的文件打开记事本。
学习操作系统原理最好的方法是自己写一个简单的操作系统。1.开发环境简介为了减少开发过程中不必要的麻烦,希望大家的开发环境尽量与我的保持一致。我的开发环境如下:Windows10电脑一台VisualStudioCode(最好是最新版)VirtualBox6.0.24CentOS7.9.2009QEMU7.1.0各软件的作用如下:VisualStudioCode用来编写GrapeOS代码。VirtualBox用来运行CentOS和GrapeOS。CentOS用来编译GrapeOS代码,并使用其它Linux下的工具协助开发。QEMU用来运行和调试GrapeOS。2.开发环境安装2.1安装Visual
学习操作系统原理最好的方法是自己写一个简单的操作系统。1.开发环境简介为了减少开发过程中不必要的麻烦,希望大家的开发环境尽量与我的保持一致。我的开发环境如下:Windows10电脑一台VisualStudioCode(最好是最新版)VirtualBox6.0.24CentOS7.9.2009QEMU7.1.0各软件的作用如下:VisualStudioCode用来编写GrapeOS代码。VirtualBox用来运行CentOS和GrapeOS。CentOS用来编译GrapeOS代码,并使用其它Linux下的工具协助开发。QEMU用来运行和调试GrapeOS。2.开发环境安装2.1安装Visual
学习操作系统原理最好的方法是自己写一个简单的操作系统。在上一讲中我们已经安装配置了开发环境,在本讲中我们来测试一下开发环境是否正常。我们的测试流程如下:1.在VisualStudioCode中编写GrapeOS代码;2.在CentOS中编译GrapeOS代码;3.在QEMU中运行GrapeOS。注意:在本讲中涉及到的代码或操作如有不懂的地方暂时不用管,后面会讲。本讲只是为了测试开发环境是否正常,只要你能跟着做下来就行。下面我们来依次测试这3步流程。1.在VisualStudioCode中编写GrapeOS代码1.1在我们上讲中建立的共享文件夹中新建一个名为“grapeos-course”的文件
学习操作系统原理最好的方法是自己写一个简单的操作系统。在上一讲中我们已经安装配置了开发环境,在本讲中我们来测试一下开发环境是否正常。我们的测试流程如下:1.在VisualStudioCode中编写GrapeOS代码;2.在CentOS中编译GrapeOS代码;3.在QEMU中运行GrapeOS。注意:在本讲中涉及到的代码或操作如有不懂的地方暂时不用管,后面会讲。本讲只是为了测试开发环境是否正常,只要你能跟着做下来就行。下面我们来依次测试这3步流程。1.在VisualStudioCode中编写GrapeOS代码1.1在我们上讲中建立的共享文件夹中新建一个名为“grapeos-course”的文件
由于GrapeOS目前只支持x86,所以本讲我们简单的介绍一下x86。百度百科上是这样介绍的:x86泛指一系列基于Intel8086且向后兼容的中央处理器指令集架构。中央处理器就是我们平时说的CPU,英文全称是CentralProcessingUnit。有人可能对指令集不是很清楚。计算机的运行过程主要就是CPU执行各种指令的过程,某种CPU能执行的所有指令的集合就叫该种CPU的指令集。但光这么说感觉有点泛泛而谈。其实指令集就是CPU的语言,就像人类的语言,我们可以从横向和纵向分别对比一下。从横向来说,人类的语言有很多种,不同的人群说着不同的语言,但可以用不同的语言来描述同一件事情。同样指令集也
由于GrapeOS目前只支持x86,所以本讲我们简单的介绍一下x86。百度百科上是这样介绍的:x86泛指一系列基于Intel8086且向后兼容的中央处理器指令集架构。中央处理器就是我们平时说的CPU,英文全称是CentralProcessingUnit。有人可能对指令集不是很清楚。计算机的运行过程主要就是CPU执行各种指令的过程,某种CPU能执行的所有指令的集合就叫该种CPU的指令集。但光这么说感觉有点泛泛而谈。其实指令集就是CPU的语言,就像人类的语言,我们可以从横向和纵向分别对比一下。从横向来说,人类的语言有很多种,不同的人群说着不同的语言,但可以用不同的语言来描述同一件事情。同样指令集也
学习操作系统原理最好的方法是自己写一个简单的操作系统。在GrapeOS中会用到2种CPU模式,一种是实模式(realmode),另一种是保护模式(protectedmode)。在本教程中,保护模式特指32位保护模式。这两种模式最主要的不同点是对内存地址的访问方式不同,此外还有其它的不同点。这两者具体的不同之处我们会逐步介绍,本讲我们先来介绍一下实模式。实模式也叫8086模式。其实几乎所有的x86汇编教程和书籍都会讲实模式,如果没有说是什么模式,一般都是实模式。在第二讲中已经提到学习本教程的前提条件之一是会x86汇编,所以看到本讲的朋友应该是会x86基本汇编的。也就是说大家应该是懂实模式的,只不
学习操作系统原理最好的方法是自己写一个简单的操作系统。在GrapeOS中会用到2种CPU模式,一种是实模式(realmode),另一种是保护模式(protectedmode)。在本教程中,保护模式特指32位保护模式。这两种模式最主要的不同点是对内存地址的访问方式不同,此外还有其它的不同点。这两者具体的不同之处我们会逐步介绍,本讲我们先来介绍一下实模式。实模式也叫8086模式。其实几乎所有的x86汇编教程和书籍都会讲实模式,如果没有说是什么模式,一般都是实模式。在第二讲中已经提到学习本教程的前提条件之一是会x86汇编,所以看到本讲的朋友应该是会x86基本汇编的。也就是说大家应该是懂实模式的,只不
学习操作系统原理最好的方法是自己写一个简单的操作系统。按一下电脑上的电源按钮,电脑就启动了,不一会儿电脑屏幕上就出现了登录界面或直接进入了桌面。这是一个很日常的场景,但有时候会有个疑问:电脑内部是如何启动的?本讲我们就简单的介绍一下。因为本教程属于入门型,不考虑UEFI等比较新的技术,但不影响对操作系统基本原理的学习。电脑的启动过程在细节上是比较复杂的,但在大的过程上分为以下几个:上电->BIOS->MBR(boot)->loader->kernel->交互界面(图形/命令行)上面是一个比较经典的电脑启动过程,可以看到电脑启动过程类似接力赛,下面介绍一下接力赛的每一棒。1.上电上电就是我们按了