L4RE学习笔记——简单教程

1.最简单的组件构成可能包含以下几部分(以hello应用为例):


Fiasco.OC— Microkernel

Sigma0— Root Pager

Moe— Root Task

Ned— Init Process

hello— Hello World Application


2.x86主机上利用qemu运行L4REiso镜像

2.1首先,需要一个modules.list文件来定义包含所需模块的entry

modaddr0x002000000


entryhello

kernelfiasco -serial_esc

roottaskmoe rom/hello.cfg

modulel4re

modulened

modulehello.cfg

modulehello

这个文件描述了所有需要放在ISO镜像里的二进制文件和脚本文件,同样也描述了GRUBmenu.lstx86主机的启动菜单项包含的内容)文件的内容。这个文件可以在l4/conf/modules.list路径查找。

2.2entry中的module在编译时都会生成,除了hello.cfghello.cfg的内容应该类似下面这样:

localL4 = require("L4");

L4.default_loader:start({},"rom/hello");

第一行保证了”L4”这个package,对这个脚本是可用的。

第二行利用“L4”这个package中的default_loader来加载"rom/hello"这个二进制文件。

这个文件同样可以在l4/conf/examples目录下找到。


注:modules.list中定义的所有modules的数据空间(dataspace)为:L4Re::Dataspace,而名字空间(namespace)为:L4Re::Namespace;并且其对init进程(Ned)会作为‘rom’形式呈现(什么意思呢?直观的说就是系统启动后entry下的所有module二进制文件会包含在/rom目录下)。


2.3编译内核

进入内核目录——kernel/fiasco/,利用命令创建内核编译目录以及相应文件:

make
			BUILDDIR=mybuild
cd
			mybuild
make
			config
make


2.4编译L4RE

进入l4目录,执行如下命令:

makeB=builddir

makeO=builddir/ config

makeO=builddir/ -j4


2.5打包镜像,并用qemu验证

进入L4RE编译目录——l4/builddir,执行如下命令:

makegrub2iso E=helloMODULE_SEARCH_PATH=/home/gaojy/l4re-base-18.06/src/kernel/fiasco/mybuild/


makegrub2iso E=helloMODULE_SEARCH_PATH=/home/gaojy/l4re-base-18.06/src/kernel/fiasco/mybuild/

斜体部分改为自己源码路径。执行成功后会弹出qemu窗口打印”helloworld!”字样。




附录:


源码路径:http://www.l4re.org/download/snapshots/


如果第一次搭建环境,你可能需要安装如下软件:

sudo
apt-get install make gawk g++ binutils pkg-config g++-multilib
subversion libncurses5-dev qemu xorriso
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值