自己动手写操作系统(五)
这里开始就进入了core的启动流程(类似于linux的kernel)。core的入口函数是start_core,如何定义如何函数呢?我们这里通过编译指令就可以了。参看下面的配置文件:
ENTRY (start_core)SECTIONS
{. = 0x100000;.text :{*(.text)}.rodata ALIGN (0x1000) : {*(.rodata)}.data ALIGN (0x1000) : {*(.data)}.bss ALIGN (0x1000) : {sbss = .;*(COMMON)*(.bss)ebss = .;}
}
ENTRY就是入口函数的定义方法。我们自己编写的进程都是以main作为入口函数的。可能用这个也可以修改为其他函数哈~~。
start_core里面做的处理基本就是gdt,中断,内存,时钟等的初始化。我们这里主要先关注一下内存的初始化。
内存目前来说分配器有3个:coalition,fragment,vm。coalition用于内核kmalloc分配连续的物理内存。fragment用于分配4K的页给内核vmallc和用户态的mallc。
vm用来管理每个进程的虚拟地址。相关介绍如下图:
接下来我们会逐一介绍每个内存分配器的实现和遇到的问题点。哈哈,简直就是天坑~~~。大家有兴趣的话可以看一下我的github针对mm的修改。改的天翻地覆~~~。
谢谢。
arale os的github:https://github.com/wangsun1983/arale
自己动手写操作系统(五)相关推荐
- 自己动手写操作系统--个人实践
近期開始看于渊的<自己动手写操作系统>这本书,刚開始看就发现做系统的引导盘居然是软盘!心里那个汗啊! 如今都是U盘了,谁还用软盘.于是考虑用U盘. 于是開始下面步骤: 1.既然书上说给先要 ...
- 「操作系统」《自己动手写操作系统》1.1前期准备工作
一.软硬件 1.硬件 一台计算机(笔者使用的是Win7 x64操作系统) 2.软件 点击此处下载<自己动手写操作系统>的光盘配套文件以及相应工具 汇编编译器:NASM(资源文件中有) 软盘 ...
- 自己动手写java虚拟机_自己动手写操作系统(要了解的知识点)
自己动手写操作系统(开篇) 自己动手写操作系统(字符显示) 说明:Intel 8086 或者不同的处理器,开机寄存器数据可能不一样,但是大致原理差不多 了解过计算机启动的同学肯定知道,当计算机启动的时 ...
- 《自己动手写操作系统》读书笔记——初识保护模式
<自己动手写操作系统>读书笔记--初识保护模式 http://www.cnblogs.com/pang123hui/archive/2010/11/27/2309930.html 书本第三 ...
- 全面剖析《自己动手写操作系统》第四章---加载Loader.bin
全面剖析<自己动手写操作系统>第四章--FAT12文件系统 http://blog.csdn.net/zgh1988/article/details/7284834 1.突破512字 ...
- 自己动手写操作系统0
文章目录 自己动手写操作系统0 环境搭建 NASM VirtualBox 添加软盘启动 VMware 开启虚拟机 其他软件 Floppy 自己动手写操作系统0 参考余渊老师写的<自己动手写操作系 ...
- 自己动手写操作系统之环境构建篇
自己动手写操作系统之环境构建篇 最近开始看自己动手写操作系统,但是书中采用软盘启动很是郁闷,于是想是否可以从优盘启动呢?作为一名BIOS工程师,曾经用优盘启动过dos,linux等系统,于是做了如下尝 ...
- 自己动手写操作系统——(1)将引导写入U盘
为什么写博客呢,想了一下,首先是为了给自己留着复习用,因为时间一长,肯定有好多东西会忘记的,在这里留个记录,以后再整理起来就不会太麻烦了:再者是为了分享一下经验,由于在下比较愚笨,说不定在哪个方面就理 ...
- 磨刀不误砍柴工 —— 自己动手写操作系统 入门导引
磨刀不误砍柴工 刺猬@http://blog.csdn.net/littlehedgehog <自己动手写操作系统>其实阅读所需要的前提不过只是C和汇编了,里面涉及到很多操作系统的东西.于 ...
- 磨刀不误砍柴工 ——《自己动手写操作系统》入门导引
磨刀不误砍柴工 刺猬@http://blog.csdn.net/littlehedgehog <自己动手写操作系统>其实阅读所需要的前提不过只是C和汇编了,里面涉及到很多操作系统的东西.于 ...
最新文章
- 雷达篇(八)合成孔径雷达工作模式
- 安装OpenCV时提示缺少boostdesc_bgm.i文件的问题解决方案
- WINDOWS 需要您的当前凭证
- 三层聚合实验的注意事项
- mysql 冷热表_Redis+MySQL冷热数据交换
- elasticsearch scroll 一页最大数据量_elasticsearch 百亿级数据检索案例与原理
- WinAPI【消息及相关结构体】
- 郑州轻工业学校计算机网络,计算机网络期末考试a卷(郑州轻工业学院).doc
- [转载] 使用python 中的numpy创建数组
- 20191202_k-中心聚类算法和k-mean算法Python实现
- 熊族部落---要邀请码
- 如何正确删除TFS上项目
- LabView制作登录界面
- 微信小程序 模拟支付宝账单的个人记账小程序
- java 拼图游戏_Java 拼图游戏
- Java(二十二) -- 生产者消费者模式
- 手机开热点,电脑连不上
- Android 名词解释
- Mos结电容Cgd、Cgs、Cds与分布参数Ciss、Crss、Coss
- 3D打印云平台在线显示