
Magenta
昵称:RainMaker
这个作者很懒,什么都没留下…
展开
-
Magenta - 内存管理概述
内存管理是个比较大的话题,本文只做个简单的介绍。建议先Magenta自带的文档memory,会对内存管理有个直观的认识。vmas表示处理器层面的地址空间,和具体的cpu的arch有关。一般分为2大类:kernel space和process space。在Magneta下输入命令“k vmm asp原创 2017-07-17 09:22:28 · 1188 阅读 · 0 评论 -
Syscall - restart或retry的处理
在user利用syscall指令(x86)或svc指令(Arm)发起系统调用后,如果kernel在处理系统调用的过程中被异常打断(如果有信号量pending或被异常唤醒等),此时是retry还是返回?由于是在user的进程上下文中,根据机制和策略分离的原则,kernel一般不会在系统调用处理函数中做retry动作,而是返回user space后再次发起系统调用。原创 2017-07-06 11:21:38 · 1610 阅读 · 0 评论 -
Magenta - 概述
Magenta是按照微内核的思路打造的,但不同于学院派的微内核,看上去没那么美,走的是一条实用化的道路。 本想自己写点东西,但magenta自带的文档已经挺完善,以下的内容的一部分来自对文档的引用。Magenta-概述基于微内核的特性,Magenta只负责管理如下资源: 1/ scheduler,继承自LK并增强; 2/ 中断,处理(一部分,另一部分可在user spa原创 2017-05-25 16:07:19 · 14716 阅读 · 2 评论 -
Magenta: devmgr进程的线程分布
devmgr和devhost的关系我们以后再说,今天先看看devmgr的线程有哪些功能。原创 2017-07-11 17:43:09 · 993 阅读 · 0 评论 -
Magenta - 文件系统概述
Magenta - 文件系统概述文件系统最初用于管理存储设备上的文件,后期随着虚拟文件系统的出现,也使用文件系统的方式来管理设备、提供kernel配置接口等等。文件访问流程Magneta是以微内核的方式实现,所以其文件系统是以client/server的方式实现的。server利用Port监听Channel,以获取用户的请求事件;用户发起的文件操作请求并不是由kernel实现的,请求经过Channe原创 2017-06-15 12:25:55 · 2705 阅读 · 0 评论 -
Magenta - Namespace
Magenta的Namespace当前比较简单,只实现了类似于Linux的Mount-space,其他的space隔离暂未看到。Namespace的实现和其文件系统密切相关,后续有机会详细描述,现在只大概说明。Magenta是以Client/Service的方式实现了文件系统。在devmgr进程中,除了做设备管理之外(device add,device remo原创 2017-06-09 14:29:32 · 421 阅读 · 0 评论 -
Magenta- Qemu + bootloader
Magenta的code下载、配置、编译等等就不说了,就从其从Qemu中运行开始说起。如下是Qemu启动Magenta的命令:qemu-system-x86_64 -m 2048 -serialstdio -vga std -net none -smp 4 -machine q35-kernel /home/kevin/workshop/room/source/fuchs原创 2017-05-11 11:22:02 · 1480 阅读 · 0 评论 -
Magenta- 支持虚拟化
Magneta实现了类似于Kvm+Qemu一套东西,但要简单得多,当前只支持在物理magenta上虚拟运行另一个magenta实例。原创 2017-06-08 16:46:02 · 841 阅读 · 0 评论 -
Magenta - BP启动AP(x86篇)
Magenta支持SMP,所以需要Bootstrap CPU(BP)启动Application CPU(AP)的功能。这部分和体系架构密切相关,就以x86结构为例说明。AP的启动,在各个系统上的流程大同小异,大概都分为2大部分:原创 2017-06-07 15:30:25 · 1399 阅读 · 0 评论 -
Magenta - Userboot
Magenta-Userboot在kernel初始化完毕后,需要跳转至user space并初始化user的init进程(devmgr),此也是user的第一个进程。为了可以顺利的启动user进程,magenta在 编译,初始化和启动 阶段分别做了特殊处理。userboot就是专为此而实现的模块。包括:kernel userboot:运行在kernel空间,为进入user空间做准备user us原创 2017-05-31 11:17:42 · 824 阅读 · 0 评论 -
Magenta - 前言
从知道有fuchsia/magenta这回事到接触,也有段时间了。中间断断续续的读了读源码,但由于magenta更新得很频繁,且不时有大的结构调整,导致不得不回头再读,顿觉无趣。本想待magenta稍稳定后再细读,但又怕一段时间后,没了这个趣味,也怕人就这么懒掉了,所以还是先做个简单的小结吧。原创 2017-05-11 12:10:13 · 522 阅读 · 0 评论