标签:编译过程 括号 start 16px 服务器 elf 目录 libssl 网络
内核代码:Linux 5.0.1;
操作系统:Ubuntu19.04;
qemu:本次使用的模拟器,运行内核代码;
gdb:linux下的断点调试工具;
一、构建MenuOS系统
创建一个目录kernel,下载linux-5.0.1内核,下载相关编译工具,编译。命令如下:
mkdir kernel #创建目录 cd kernel #进入此目录 wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.0.1.tar #下载内核 xz -d linux-5.0.1.tar.xz # 解压缩 tar -xvf linux-5.0.1.tar #解压缩 cd linux-5.0.1 #进入刚解压缩的内核文件夹 sudo apt install build-essential flex bison libssl-dev libelf-dev libncurses-dev #下载编译工具
接着开始配置
sudo make i386_defconfig #生成32位的配置文件
make menuconfig #开启文本菜单选项,对窗口有限制,尽量调大窗口
输入以上命令后出现如下界面:
找到最后一个选项Kernel hacking
按回车后,选则Compile-time checks and compiler options
按回车后选择Compile the kernel with debug info,按Y,前面的方括号中出现星号即为选中
选择下方Save
选择OK,然后一路EXIT退出。
接着漫长的编译过程。
make
编译完成后,安装模拟器qemu
sudo apt-get install qemu
构造MenuOS
cd /kernel #进入工作目录 mkdir rootfs #创建MenuOS根目录 sudo git clone https://github.com/mengning/menu.git #下载menu系统 cd menu sudo apt-get install libc6-dev-i386 #在64位环境编译32位需要安装 sudo chmod 777 Makefile #将Makefile从只读修改为可读写 vim Makefile #修改Makefile中的内核版本
sudo make rootfs #初始化根目录
cd /kernel #进入工作目录 sudo git clone https://github.com/mengning/linuxnet.git #下载实验代码 cd linuxnet/lab2 #进入服务器目录 sudo make #编译前检查一下Makefile文件中的目录是否与自己的匹配 cd ../../menu/ sudo make rootfs #编译,将服务器端集成到系统中
cd /kernel #进入工作目录 cd linuxnet/lab3 #进入客户端目录 sudo make #同样,在编译前检查一下Makefile,修改其内核版本 sudo make rootfs #编译,将客户端集成到系统中
在我们将客户端与服务器端都集成到系统之后,qemu
虚拟机所显示的结果与之前构建MenuOS
的相同。
但是输入命令help
后会看到其中已经添加了客户端
以及服务器端
所对应的replyhi
和hello
命令。
标签:编译过程 括号 start 16px 服务器 elf 目录 libssl 网络
原文地址:https://www.cnblogs.com/gfsh/p/12031610.html