一、编译
1. 将汇编代码编译为二进制模块文件
nasm mbr.asm -o mbr
nasm loader.asm -o loader
2. 将wirte.c文件编译为二进制模块文件
gcc -m32 -fno-asynchronous-unwind-tables -s -c -o write.o write.c
//再将wirte.o二进制模块文件转换为汇编代码,使用objconv工具
objconv -fnasm write.o -o write.asm
3.将mbr.bin文件写入虚拟磁盘boot.img,实际写入512字节。
dd if=mbr.bin of=boot.img bs=512 count=1 conv=notrunc
将loader.bin文件写入虚拟磁盘boot.img,写入第1个扇区,共4块大小文件,文件不足填充0
dd if=loader.bin of=boot.img bs=512 count=4 seek=1 conv=notrunc
4.ld kernel/main.o -Ttext 0xc0001500 -e main -o kernel/kernel.bin
5.远程linux下载到本地文件
(从192.168.13.133主机上下载/home/jadeshu/kernel.bin文件保存到本机目录/home/Administrator/)
scp root@192.168.13.133:/home/jadeshu/kernel.bin /home/Administrator/
6.64位linux编译32位注意:
6.1 nasm汇编 nasm -f elf 纯二进制文件 nasm -f bin 也是默认选项
6.2 gcc编译 gcc -m32
6.3 ld连接 ld -m elf_i386
7.挂载拷入
dd if=./boot.bin of=./boot.img bs=512 count=1 conv=notrunc
sudo mount ./boot.img /media/ -t vfat -o loop
sudo cp loader.bin /media/
sudo cp kernel.bin /media/
sudo sync
sudo umount /media/
二、centos32位系统
安装minimal 32位版本(centos6)
2.1、开启网络
登录 root 后,在命令端(扔掉你的鼠标吧)输入:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
编译文件ifcfg-eth0中的 改为,最后保存文件。
再reboot 重启即可
重启后测试ping www.baidu.com看看是否成功
2.2、安装 gcc、c++ 编译器以及内核文件:
yum -y install gcc gcc-c++ kernel-devel
2.3、安装图形界面
CentOS 当前最流行的图形界面是 GNOME 和 KDE
首先安装 X Window System,X 窗口系统是运行在 Linux 上的一个图形界面程序,而 GNOME 和 KDE 都是以 X 窗口系统为基础建构成的。
yum -y groupinstall "X Window System"
安装 GNOME
yum -y groupinstall "Desktop"
安装 KDE
yum -y groupinstall "KDE Desktop"
设置 GNOME 为默认启动
执行 vi /etc/inittab 命令:
把id改成5保存然后重启
2.4、安装输入法
yum -y groupinstall "Input Methods"
让 Linux 支持中文:
yum -y groupinstall "Chinese support"
2.5、安装字体
依次点击左上角的“System”->“Administration”->“Add/Remove Software”:
在左侧搜索框输入“dejavu”,点击“Find”按钮,在结果中找到“Monospace sans-serif font faces”,最后点击“Apply”按钮,便会自动安装:
2.6、安装VIM编辑器
完整的 VIM 编辑器需要安装四个包:
- vim-filesystem
- vim-common
- vim-enhanced
- vim-minimal
你可以通过以下命令查看本机已经存在的包,确认一下你的 VIM 是否已经安装:
rpm -qa|grep vim
yum -y install vim-enhanced
其实默认的语法高亮以及光标所位置显示已经默认为我们打开了,我们只需要再加多一个自动缩进就 OK 啦!
做法:
vim /etc/vimrc
增加:
set cindent