一个典型的操作系统包括进程管理、内存管理、文件系统、设备驱动等多个子系统。### 1.2 C语言的选择C语言因其接近硬件的特性和高效的执行效率,成为实现操作系统内核的优选语言。它允许直接操作内存和硬件寄存器,且生成的代码体积较小,适合嵌入式系统和简单操作系统的开发。### 1.3 开发环境搭建- **工具链**:...
写操作系统要⽤汇编和C语⾔,尽管这个Hello OS很⼩,但也要⽤到两种编程语⾔。 本实验没有自己实现引导程序, 暂且借用Ubuntu的grub,降低难度。 PC机BIOS固件是固化在PC机主板上的ROM芯⽚中的,掉电也能保存,PC机上电后的第⼀ 条指令就是BIOS固件中的,它负责检测和初始化CPU、内存及主板平台,然后加载引...
操作系统,是最贴近硬件的软件。 它和编译器是互为递归的关系:编译器在操作系统上运行,操作系统是编程语言写的,编程语言是编译器编译的。 操作系统、编译器、编程语言的关系 操作系统大约分为这4个模块:进程管理、内存管理、设备管理、网络子系统。 进程管理、内存管理,这2个是操作系统的核心模块。 操作系统要想运...
1 首先要在官网下载dev c++ 2 然后点击Free Download 3 接着保存文件,安装。4 我们打开编译器再菜单栏里fixed-project,然后如下图勾选,点击确定 5 之后就可以编写程序了,下图是一个简单的等级评定系统。操作系统最重要的是能使用户输入数据,这里用到的是scanf,括号里的前一个参数是输入的数据类型,然后赋给...
1 C语言当然是可以写操作系统的,但是操作系统的编写一般都不仅仅只是用C语言编写的写操作系统需要编程语言提供以下几个特征:1、跨平台,不能是只在某个平台下编译(VB就不行);2 2、必须是编译型语言(PHP就不行),或者有一个非常高效的解释器;3 3、必须有方便的操作硬件的功能,容易嵌入汇编(Java就不行...
第一天直接写了一个“操作系统”的二进制文件,详细在: https://www.toutiao.com/a7003704649312141836 由于写二进制文件很不方便,也太繁琐,所以我们使用了编译器,编译器可以将汇编语言编译成二进制的机器码,以后就直接写汇编,然后用编译器把我们写的汇编生成二进制文件就行了。这就大大提高了人的编程效率。
写到这,终于才把一些苦力活都干完了,也终于到了我们的内核代码部分,也终于开始第一次用 c 语言写代码了!为了这个阶段性的胜利,以及更好地进入内核部分,下图贴一张到目前为止的流程图。(其中黄色部分是今天准备做的事情) 二、先上代码 loader.asm ... ...
C语言本身不像Java等自带内存管理系统,在C语言中这一工作完全由程序员控制,这种控制权在开发操作系统时是极为重要的,再加上指针这一大杀器,程序员可以方便的直接操作内存,像创建页表(page table)、DMA控制器、Memory mapped IO等等。 有的同学可能对指针(pointer)心生畏惧,的确,对于大部分工作在应用层的程序员来...