FreeNOS学习1——系统安装和使用
官网安装教程:http://www.freenos.org/doxygen/index.html
整体思路:在Ubuntu操作系统下,安装qemu虚拟机,然后用虚拟机运行FreeNOS的镜像。以下是详细操作步骤:
一、下载必要的开发工具
Update your system repository cache and install the required development tools using:
$ sudo apt-get update
$ sudo apt-get install build-essential scons genisoimage xorriso qemu-system
其中scons是一个用python写的自动化构建工具,用于编译FreeNOS的源码。详细介绍如下:
scons介绍:https://blog.csdn.net/u013720726/article/details/70473521
qemu是一个虚拟机工具,详细介绍如下:
一文读懂qemu模拟器:https://www.imooc.com/article/37495
使用qemu搭建qemu内核开发环境:https://www.cnblogs.com/hellogc/p/7482066.html
If your Ubuntu host is 64-bit, you need to install the GCC multilib package to cross compile for the 32-bit architecture:
$ sudo apt-get install gcc-multilib g++-multilib
二、源码及镜像的下载
To download and extract the released source code on your host OS, run the following commands. Replace 'x.x.x' with the version of FreeNOS:
$ wget http://www.FreeNOS.org/pub/FreeNOS/source/FreeNOS-x.x.x.tar.gz
$ tar zxf FreeNOS-x.x.x.tar.gz
下载源文件的包,并解压,效果如下
另外如果不想编译源代码而直接使用编译好的镜像,那么可以在官网上下载镜像,8.5M左右大小。
然后创建一个FreeNOS文件夹,把源码包和镜像都放进去,方便后续管理。
三、源码的编译
这部分比较繁琐和复杂,留着以后写。
其实上一步下载了镜像后,就可以跨过这一步。直接开始在虚拟机上运行镜像看看。
四、运行虚拟机
进入FreeNOS文件夹,输入:
qemu-img create FreeNOS.img 10G
就会在该文件夹下,创建一个叫做FreeNOS.img镜像。
然后输入:
qemu-system-x86_64 -m -smp -hda FreeNOS.img -cdrom FreeNOS-1.0..iso -boot dc
-m分配虚拟内存,单位为MB;
-smp分配虚拟硬盘空间,单位为GB;
-hda指定虚拟机文件路径和文件名;
-cdrom指定ios镜像文件路径和文件名;
-boot指定从磁盘启动。执行命令后(成功)打开虚拟机窗口:
就会成功打开虚拟机,运行该镜像:
相关链接:
FreeNOS学习笔记(一):https://blog.csdn.net/sim0hayha/article/details/79504535
FreeNOS学习笔记(一)安装:https://blog.csdn.net/qq_38172320/article/details/86556073
FreeNOS学习-lib-std-log学习:https://blog.csdn.net/len_yue_mo_fu/article/details/82781766
FreeNOS自动化构建工具Scons生成ISO过程(二): https://blog.csdn.net/weixin_38134600/article/details/88344517
FreeNOS学习1——系统安装和使用的更多相关文章
- Linux学习3-Linux系统安装CentOS6.5
1.启动虚拟机(虚拟机的安装参见Linux学习1-创建虚拟机) 本此安装系统:CentOS6.5 2.启动客户端后迅速按下F2键进入Bios设置,注意:启动后需鼠标点击虚拟机的屏幕并迅 ...
- FreeNOS学习3——了解目录结构和Main函数
下载源码的文件夹,看到里面有以下内容: 解释一下里面都有啥 lib -> 共享代码 1.libfs 文件系统(磁盘管理) 2.liballoc 内存分配和虚拟内存映射(内存管理) 3.libex ...
- 轻松学习Linux系统安装篇之fdisk命令行工具的使用
fdisk 的介绍: fdisk 命令是磁盘分区表操作工具:和以前Dos和windows下的分区工具功能一样:fdsik 能划分磁盘成为若干个区,同时也能为每个分区指定分区的文件系统 ...
- FreeNOS学习2——操作系统是如何启动的
The System Boot Process Explained:https://www.webopedia.com/DidYouKnow/Hardware_Software/BootProcess ...
- 嵌入式linux的学习之路[转]
我认为的一条学习嵌入式Linux的路: 1)学习 Linux系统安装. 常用命令.应用程序安装. 2) 学习 Linux 下的 C 编程.这本书必学<UNIX 环境高级编程>.<UN ...
- 轻松学习Linux之Shell文件和目录属性详解
轻松学习Linux之Shell文件和目录属性详解 轻松学习Linux之理解Sitcky 轻松学习Linux之理解umask 轻松学习Linux之理解SUID&SGUID 本系列多媒体教程已完成 ...
- 20165333 预备作业3 Linux安装及学习
预备作业3 Linux安装及学习 Linux系统安装 在老师的教程帮助下成功的完成了虚拟机的安装,但安装过程中也遇到了一些问题.在下载ubuntu时,总是下载失败,在求助同学后,在中文版官网的网址,才 ...
- 轻松学习LINUX系列教程推出
本系列多媒体教程已完成的博文: 1.轻松学习Linux之入门篇 http://chenguang.blog.51cto.com/350944/449214 2.轻松学习Linux之本地安装系统 (分区 ...
- [原创]Oracle 12c 抢先安装手迹
[前言] Oracle 12c 终于投放市场了,唉,等了很久了.据官方说这是一个为云计算平台量身定做的版本....且不管真的假的,先让我们把它装上再说. 注:笔者在安装的过程中发现12c的安装过程,较 ...
随机推荐
- Python之路,Day1 - Python基础1 --转自金角大王
本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...
- 三角形数且是完全平方数 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛 E.Half-consecutive Numbers
三角形数:an=n*(n+1)/2; 完全平方数:bn=c^2; 既是三角形数又是完全平方数:An=6*A(n-1)-A(n-2)+2; A[23]={ 0, 1, 8, 49, 288, 1681, ...
- laravel 自定义常量方法
laravel 自定义常量方法 版本5以上验证OK 常量定义方案A: step1 按路径生成constants文件app/config/constants.php step2 constants文件里 ...
- PHP header 的7种用法
这篇文章介绍的内容是关于PHP header()的7种用法 ,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 PHP header 的7种用法 1. 跳转页面 header('Locat ...
- 最长公共子序列(LCS)、最长递增子序列(LIS)、最长递增公共子序列(LICS)
最长公共子序列(LCS) [问题] 求两字符序列的最长公共字符子序列 问题描述:字符序列的子序列是指从给定字符序列中随意地(不一定连续)去掉若干个字符(可能一个也不去掉)后所形成的字符序列.令给定的字 ...
- @codeforces - 618G@ Combining Slimes
目录 @description@ @solution@ @part - 0@ @part - 1@ @part - 2@ @part - 3@ @accepted code@ @details@ @d ...
- :after选择器-----分割线
分割线: 让span中的文字覆盖分割线,需要:给div和span设置同样的background-color,并且给span设置z-index. 接下来就是margin和padding的调整了. 效果: ...
- linux lvm删除导致无法启动
要想编辑/etc/fstab文件,我们需要在系统中重新挂载根目录,使其具有可读写状态,使用如下命令: mount -o remount,rw / 该条命令的作用是,以可读写的形式重新挂载根分区. 然后 ...
- PyTorch中view的用法
相当于numpy中resize()的功能,但是用法可能不太一样. 我的理解是: 把原先tensor中的数据按照行优先的顺序排成一个一维的数据(这里应该是因为要求地址是连续存储的),然后按照参数组合成其 ...
- H3C PPP基本配置