
开源项目FreeNOS源码分析
开源项目FreeNOS是一个使用C++编写的具有一个完整功能的操作系统,包括启动引导原理、进程调度、页面管理、设备驱动等,研究它可以加深对操作系统原理的理解,可以见识到关于C++的设计模式,虚函数以及继承的使用。
jeremy505
Talk less,think more!
展开
-
FreeNOS中物理内存与虚拟内存的初始化过程(七)
在跳转到kmain函数之前已经开启了分页机制,一个操作系统需要建立堆栈以及对内存进行管理,以下部分分析相关函数。原创 2019-03-21 18:49:48 · 943 阅读 · 0 评论 -
FreeNOS中C++源码部分相关类构造函数以及方法函数的初始化过程(六)
上节分析到从汇编代码正式跳转到C++代码,即kerne/Main.cpp中的kmain函数,接下来分析相关类构造函数以及方法函数的初始化过程。原创 2019-03-16 11:47:46 · 922 阅读 · 0 评论 -
FreeNOS中的boot.S中全局描述表GDT、中断描述符表IDT以及分页机制的分析(五)
先了解一下概念性的东西(来源于百度百科),后面结合源码分析。 一、CPU工作方式,实时模式与保护模式 在80286以前,CPU只有实时模式,地址总线有20位,而内存地址是16位,也就是最多能够访问 2^20 =1M 的内存空间。 在80286及以后,内存地址改为16位或32位,至少可以访问到 2^32=4G 的内存空间。但为了保证后续的CPU能够运行旧的CPU,只能保持向下兼容。因此,80286及...原创 2019-03-13 22:48:43 · 1003 阅读 · 0 评论 -
FreeNOS-kernel目录下boot.S、链接脚本kernel.ld文件分析(四)
上节提到过引导程序在将控制权交给内核时,相关寄存器状态已确定,并且程序入口地址为boot.S文件中的_start,下个面就来看看boot.S文件。原创 2019-03-11 10:59:11 · 1260 阅读 · 0 评论 -
关于FreeNOS使用grub引导启动遵守Multiboot规范的内核过程分析(三)
FreeNOS使用grub引导启动内核镜像,并且遵守Grub Multiboot规范,此文具体结合FreeNOS分析grub启动过程以及简要介绍Grub Multiboot规范。原创 2019-03-09 13:03:12 · 1020 阅读 · 0 评论 -
FreeNOS自动化构建工具Scons生成ISO过程(二)
FreeNOS使用自动化构建工具Scons来编译源码以及制作生成启动镜像,Scons的作用与make类似。原创 2019-03-08 13:00:17 · 1311 阅读 · 0 评论 -
在ubuntu上编译运行FreeNOS(一)
网上关于FreeNOS编译运行讲解资料不全,而且大多或多或少存在错误,此处给出实际编译运行步骤以及避免错误操作,为学习FreeNOS搭建一个良好的学习平台。原创 2019-03-08 10:44:44 · 2219 阅读 · 1 评论