自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 MINIX 3 学习之内核篇(四)

本篇的难点在于了解pre_init和kmain两函数之间的数据是分离的,这样就能理解kmain里一些操作的原因。篇幅虽然很长,但其实技术点就这一个,理解了就没啥难度了,所谓技术就是一层窗户纸,捅破了也就不过如此。祝大家学习愉快!

2023-12-20 23:26:45 1023 2

原创 快速搭建最简单的QEMU ARM64位Linux 运行环境

解压busybox-1.36.1.tar.bz2,开始编译。文件加上可执行权限,然后生成ramdisk文件。如果遇到ssl相关的头文件找不到的报错,请执行。要的就是简单,快速,祝您成功!参数为您的环境路经。

2023-12-18 23:55:05 420

原创 MINIX 3 学习之内核篇(三)

本篇继续分析pre_init函数的后半部分,代码不多。开始分析吧!

2023-12-18 23:35:07 765 1

原创 MINIX 3 学习之内核篇(二)

这部分逻辑比较简单,实际上就是在生成kinfo,伙伴们了解一下即可。到此还剩下一段代码没有分析。pg_clear();pg_load();这段代码涉及MMU及虚拟地址空间的概念,将下一篇文章集中分析,请关注!

2023-12-17 13:32:41 537 1

原创 MINIX 3 系统搭建之环境启动日志及显示画面

补充一个启动日志,供大家参考。

2023-12-17 13:27:04 361 1

原创 MINIX 3 学习之内核篇(一)

这段是内核入口代码,整体逻辑比较简单,可以简化类似这样C代码pre_init();kmain();while(1);怎么样,这样就清晰多了。解决了这段汇编之后,后边就重点看这两个神奇函数是如何启动整个系统了。

2023-12-15 00:11:00 1180

原创 MINIX 3 系统之微内核架构概述

MINIX 3 是一款历史悠久的微内核系统,Linux的诞生跟它也有些渊源,感兴趣的同学可以去了解下。这里要简单阐述下微内核和宏内核的概念。:如果了解Linux系统结构,那么对linux kernel应该不陌生,这个由全球顶尖程序员构建的超级内核,已经几乎称霸了这个星球上的所有电子设备,数以亿计的手机,PC,服务器,汽车,甚至是火箭卫星,都是它的领地。Android系统靠他来开疆拓土,PC桌面系统靠它来和Windows抗衡,服务器更是靠它来撑起宏大的计算世界。

2023-12-13 23:59:50 502 1

原创 MINIX 3 系统之搭建QEMU ARM运行环境

MINIX 3是一个比较完善的微内核架构的类unix系统。如果想要了解和学习操作系统,Linux肯定是首选,而且几乎所学即所用。但是,如今的Linux已经复杂到一定层度,即便有丰富的视频和书籍作为参考,想通过Linux以窥操作系统之精髓,继而自己实现一个系统,个人认为不是一个最佳路径。MINIX 3 则是一个好的选择,不同于Linux这种将所有功能堆在一起的宏内核结构,MINIX 3 通过合理的设计,将整个操作系统的功能拆分成一个个的独立系统组件,通过组件间的相互协作,进而完成系统功能。

2023-12-12 23:36:26 1000

原创 seL4的官方库的封装思想浅谈

seL4官方发力的重点基本在内核层面。我觉得这种决策很好,可以更专注内核的演化和质量。而基于内核构建OS,实际上更像是一个应用工程问题,而且也是众口难调的问题。但是呢,官方又不能一点不管,毕竟内核提供的都是些高度抽象的OS功能和概念,再加上微内核架构的应用的编程模型并没有像Linux那样得到广泛普及,想快速基于seL4 SysCall做系统OS开发难度还是很大的。因此,官方提供一组抽象层次更高一些的库,来加速用户空间的构造。

2023-12-07 21:11:08 422 1

原创 seL4之seL4_BootInfo详解

以下是一个seL4_BootInfo的通常示例。不同的sel4内核配置可能会应影响到这个结构体的定义。如开启MCS时,seL4_BootInfo会多出一些数据项。设计上来说,sel4通过统一的数据结构,而不是设立单独的信息获取系统调用来实现,是一个较为安全的做法,因为只有root task才能访问和操作这些系统关键资源。但是从seL4_BootInfo的结构上来看,信息稍显杂乱,还不能做到所有版本统一,在项目中需要注意版本对应的问题。

2023-12-06 00:36:09 453 1

原创 libselsimple-default

本库是libsel4simple接口的一个实现,通过调用接口,使用来构造一个,就得到了一个可用的,然后就可以使用libsel4simple所提供的接口来访问系统启动环境资源了。

2023-12-05 22:15:10 424

原创 libsel4simple

libsel4simple库主要为seL4用户空间程序提供seL4启动环境的抽象访问接口,通过这些接口可以访问并操作内核提供的资源,而不必关心这些资源是如何取到的。通过定义一个结构体,并设计了一组以这个为参数的函数,使用时,只需要定义一个的变量,并将它初始化,就可以调用库接口访问系统资源了。注意:这个库是不提供具体初始化方法的,库则提供了方法。

2023-12-05 22:13:59 336

原创 sel4runtime

本库为seL4用户空间程序提供了简单的C运行环境,一般这个功能会包含在C库中。seL4没有刻意绑定某个具体C库,而是自己实现了一个基础版本,并且可以用Musl C扩展。通常来说,runtime的一个具体功能是_start本库为两类程序提供了runtime,1),2)。两种程序的区别主要在与的,内核启动Root Task的同时,还会把内核的数据传递给Root Task。所以需要runtime针对Root Task特殊处理一下。

2023-12-05 22:06:16 789

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除