Fork me on GitHub

seL4之hello-2旅途(完成更新)

seL4之hello-2旅途 #

2016/11/19 13:15:38

If you like my blog, please buy me a cup of coffee.

回顾上周

  • seL4运行环境搭建.
  • 完成hell0-1的运行.

补充上周

1.微内核与宏内核有什么不同?####

微内核——用户态提供OS服务,一般采用server-client架构。代表:L4系列微内核

宏内核——内核态提供OS服务,通过syscall结构向用户态提供服务。

出于对seL4的学习,我们比较关注微内核的评价:

  1. 优势:安全性好、可移植性好、灵活性高、容易debug
  2. 劣势:性能低

2.介绍微内核

第一代微内核:

目标是用于解决Unix的可维护性等问题;

代表是CMU的Mach——以失败告终,主要原因是性能不足.

第二代微内核:

目标是解决第一代微内核的性能问题;

代表是LiedtkeL3L4;

主要贡献是通过改进IPC机制,大幅提高了性能,并支持运行Linux,即L4 Linux(虚拟化).

第三代微内核:

目标是解决第二代微内核的安全性问题;

代表是OKL4、seL4

主要贡献是提出enndpoint的IPC机制、基于capability的权限管理机制,提高了安全性.

L4家族简史

图片来源:L4_family_tree

介绍本周

  • 了解seL4的启动流程和初始化线程
  • 了解seL4的几种内核对象和权能机制

来自伊甸一点的温馨提醒:注意本周内容较多,建议分多次练习,并记录下实验结果

1.提供本次必要的实验手册 ###

文件信息


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 ###

未完待续额...

2016年11月20日09:13:01

1.介绍Cscope ####

From 百度词条

Cscope 是一款开源免费的 C/C++浏览工具,自带一个基于文本的用户界面,通过cscope可以很方便地找到某个函数或变量的定义位置、被调用的位置等信息。Cscope对 C /C++支持较好,也可以自己定制来支持Java和Perl、Python等脚本语言。Vim和gvim都提供了cscope接口,通过适当的配置,可以在Unix/Linux下实现变量、函数、文件等之间跳转,就像Windows下的Source Insight一样灵活易用。由于cscope是开源免费的,而且配合vim可以脱离鼠标,实现全键盘操作,方便快捷地浏览源代码,深受程序员、Geek等人士的喜爱。

From Wikipedia

cscope is a programming tool which works in console mode, text-based interface, that allows computer programmers or software developers to search source code of the programming language C, with some support for C++ and Java. It is often used on very large projects to find source code, functions, declarations, definitions and regular expressions given a text string. cscope is free and released under a BSD license. The original developer of cscope is Joe Steffen.

有兴趣的可以专门了解一下cscope,这里简单介绍如何使用cscope搭配vim来更好地阅读seL4的代码.

这里是cscope的查询界面


这里是cscope的help界面


2.举一个简单例子

通过指令: vim a.cpp 进入vim界面


vim界面示意图如下:


在vim中使用cscope进行查询操作


按F5运行程序:


退出vim,或者另起终端,查看是否生成可执行文件


使用指令 ./a 运行该文件


3.安装cscope以及修改vim配置文件 ####

先介绍到这里,我们来安装一下cscope,以及修改一下vim的配置文件,让大家也可以在vim中玩得更开心玩得更高兴.

由于已经安装过cscope,我这里就不在演示安装截图了,因为之前没有保存下来.

安装指令如下: sudo apt-get install cscope

小白的我温馨提示: 使用指令 ls -a可以查看隐藏的文件

小白的我温馨提示:如果您存在文件.vimrc,有必要先对您的.vimrc文件进行备份

配置文件流程请移步强大的vim配置文件,让编程更随意

好哒,这样就完成对vim配置文件的修改.

通过指令 ls -a 来查看是否成功获取.vimrc文件

上述博客提供两种得到.vimrc的方法

获取配置文件方法1

通过指令touch .vimrc创建空的文件,使用指令 gedit .vimrc进入文件,复制上述博客的代码,保存到创建的.vimrc中即可

获取配置文件方法2

利用上述博客提供的方法
执行指令 wget https://files.cnblogs.com/ma6174/vimrc.zip

再执行指令 unzip -f vimrc.zip -d ~/

4.学习cscope ###

这里不再对vim配置文件进行折腾,想了解更多请移步.

vim主页

强大的vim配置文件,让编程更随意

晒晒我的vimrc配置【不定期更新】

这里不再对cscope的使用做详细讲解,想了解更多请移步.

cscope主页

Vim + Cscope打造Linux下的Source Insight

2016年11月20日10:42:50

转载注意

转载请注明原作者:伊甸一点

转载请以链接形式注明文章地址

posted @ 2016-11-19 16:28  伊甸一点  阅读(2176)  评论(5编辑  收藏  举报