自己动手写操作系统(五)

自己动手写操作系统(五)这里开始就进入了 core 的启动流程 类似于 linux 的 kernel core 的入口函数是 start core 如何定义如何函数呢 我们这里通过编译指令就可以了 参看下面的配置文件 ENTRY start core SECTIONS 0x text text rodataALIGN 0

  这里开始就进入了core的启动流程(类似于linux的kernel)。core的入口函数是start_core,如何定义如何函数呢?我们这里通过编译指令就可以了。参看下面的配置文件:

ENTRY (start_core) SECTIONS { . = 0x; .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


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178754.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:33
下一篇 2026年3月26日 下午4:34


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号