seL4之hello-2旅途
seL4之hello-2旅途
2016/11/19 13:15:38
回顾上周
- seL4运行环境搭建.
- 完成hell0-1的运行.
补充上周
1.微内核与宏内核有什么不同?
微内核——用户态提供OS服务,一般采用server-client架构。代表:L4系列微内核
宏内核——内核态提供OS服务,通过syscall结构向用户态提供服务。
出于对seL4的学习,我们比较关注微内核的评价:
- 优势:安全性好、可移植性好、灵活性高、容易debug
- 劣势:性能低
2.介绍微内核
第一代微内核:
目标是用于解决Unix的可维护性等问题;
代表是CMU的Mach——以失败告终,主要原因是性能不足.
第二代微内核:
目标是解决第一代微内核的性能问题;
代表是Liedtke的L3和L4;
主要贡献是通过改进IPC机制,大幅提高了性能,并支持运行Linux,即L4 Linux(虚拟化).
第三代微内核:
目标是解决第二代微内核的安全性问题;
代表是OKL4、seL4
主要贡献是提出enndpoint的IPC机制、基于capability的权限管理机制,提高了安全性.
L4家族简史
[blockquote]
图片来源:L4_family_tree
[/blockquote]
介绍本周
- 了解seL4的启动流程和初始化线程
- 了解seL4的几种内核对象和权能机制
来自伊甸一点的温馨提醒:注意本周内容较多,建议分多次练习,并记录下实验结果
1.提供本次必要的实验手册
- 下载PDF文档以及实验截图链接:http://pan.baidu.com/s/1pL51h5h
文件信息
File: C:\Users\PengFei_Zheng\Desktop\欢迎访问伊甸一点.zip Size: 4260011 bytes Modified: 2016年11月19日, 14:42:42 MD5: 374FBCC1782185B358BE3DD7D58FFE88 SHA1: 5261FA4259D9976A227EC7EC86B108E86EF5C1EE CRC32: 21F07023
来自伊甸一点的温馨提醒:请原谅为文件加了密码,需要密码请在下方留言
2.详细介绍实验步骤
0. 查看手册明确实验内容
来自伊甸一点的温馨提示:手册在刚刚下载的文件中
1. 初始化hello-2状态
执行命令 make ia32_hello-2_defconfig
运行结果截图:
2. 进入hello-2目录下
- 执行命令如下图所示:
注意到有一个名字叫做cscope.out
的文件.
来自伊甸一点的温馨提醒:这里先不解释它是怎么来的,我们先往下走,之后会和它打交道的
- 进入文件main.c: gedit main.c
hello-2 的部分main
函数代码:
需要做的就是完成当中对TODO1 ~ TODO15的修改.
对于小白的我来说还是有点难度的,开发者很贴心地为我们配上了solution
文档.
来自小白的我的温馨提醒:不过还是建议大家先自己尝试完成对代码的阅读和修改,然后通过solution
进行对比以及修改.
solution
的路径如下所示:
相信大家通过自己的阅读和尝试已经将上述的TODO1~TODO15都修改完成了.
希望大家能够在上述的练习中明白其中调用的函数,以及函数的作用,对于某一个函数来说.我们要做的是明白函数名,函数返回值,函数参数,函数作用,函数处理逻辑.
如果没有按照上面的来学习函数的话,还是重新回到TODO1~TODO15重新看上几遍.
3. 生成hello-2
生成hello-2的指令: make
注意需要在项目的Makefile目录下进行make操作
刚开始执行时的截图:
之行结束的截图:
如果大家在执行上面的时候出现了错误,首先查看报出的错误,根据错误信息进行修改我们的mian.c,一般当main.c中的TODO都按照solution
提示完成之后,程序是不会出现错误的。
如果确定main.c没有错误,但是程序依旧报错的话,可以尝试下面操作.
首先执行指令: make ia32_hello-2_defconfig
执行指令: make
伊甸一点给的对比截图:
完成上述操作之后,程序应该就可以成功跑起来了,但是现在我们只是生成了hello-2
,还没有运行hello-2
4. 运行hello-2
运行指令如下所示: qemu-system-i386 -nographic -m 512 -kernel images/kernel-ia32-pc99 -initrd images/hello-2-image-ia32-pc99
来自伊甸一点的温馨提醒:指令有点长,注意不要copy错了
小白的我给的运行部分截图1:
小白的我给的运行部分截图2:
退出模拟器的指令: Ctrl+a
松开之后再按 x
当前时间:2016/11/19 16:15:32
(今天第一次使用markdown,写得好累啊)
如果你喜欢我的博客,please buy me a cup of coffee.
右侧选择打赏.
3.强大的vim+cscope
未完待续额...
转载注意
转载请注明原作者:伊甸一点
转载请以链接形式注明文章地址
特别说明
安科开发对markdown的支持不是很好
已经将本地的html文件上传到安科开发
有需要的可以下载来看 http://files.cnblogs.com/files/zpfbuaa/seL4%E4%B9%8Bhello-2.zip