在ubuntu上编译运行FreeNOS(一)

网上关于FreeNOS编译运行讲解资料不全,而且大多或多或少存在错误,此处给出实际编译运行步骤以及避免错误操作,为学习FreeNOS搭建一个良好的学习平台。
FreeNOS是一个使用C++编写的一个具有完整多任务调度,进程间通信以及中断处理等功能作系统,还包括文件系统挂载,文件节点创建,基本上涵盖了一个操作系统启动初期的实地址模式到保护模式的跳转,初始化硬件资源以及实现内核态与用户态的陷阱门接口,加载设备驱动,最后进入shell终端,是学习操作系统很好的一个开源项目。
项目主页 www.freenos.org,该项目源码使用C++编写,使用了许多经典的设计模式,模块类,虚函数也运用的十分巧妙,对深刻学习理解C++编程有很大的帮助作用。
至于如何编程以及运行FreeNOS,官网上有十分详细的说明,环境搭建如下:
http://www.freenos.org/documentation/freenos-developers-handbook.html
在这里插入图片描述
建议使用32bit 的ubuntu进行编译,64bit会在指令上编译报错,需要额外处理,此处选择 ubuntu 12.04 32bit,下载源码FreeNOS-0.0.4:
http://www.freenos.org/pub/index.html
在ubuntu上解压之后输入scons iso进行编译:
在这里插入图片描述
此处需要注意的是g++版本不要选择的太高,否则即使编译成功后面使用qemu运行镜像文件在启动方面会存在问题,不能进入shell终端。小编自己最开始使用g+±4.9版本编译通过之后使用qemu启动镜像之后一直进不去shell终端,后来怀疑g++版本过高,于是后面使用g+±4.6.3编译之后使用qemu启动镜像之后进入令人激动的shell终端:
在这里插入图片描述
在官网也有说明,建议选择相近版本g++进行编译:
在这里插入图片描述
如果在编译过程中出现警告错误,即g++把所有warnings当作Error,可以修改编译标志,如下所示:
在这里插入图片描述
在site_scons目录下的build.py中,去掉(注释或者删除)关于-Werror:
在这里插入图片描述处理之后:
在这里插入图片描述
按照以上部分基本就可以编译运行成功。
后面下节再说明如何看FreeNOS的源码以及镜像启动执行流程。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值