环境
本实验环境使用Ubuntu 12.04,提供i386库的支持,减少麻烦,同时需要资源较少。
系统下载:Ubuntu 12.04(清华源,建议使用迅雷)
oslab源码+gcc-3.4:提取码(0to7),gcc版本不能选用太高,否则无法支持Linux0.11的makefile
系统配置
需要配置国内源,这里选用网易源
sudo su
cat <<-EOF > /etc/apt/sources.list
deb http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
EOF
# or 直接vim修改,需要添加sudo
apt-get update # 12.04版本必须使用apt-get,没有apt
编译gcc-3.4
推荐安装vmtools或者open-vm-tools,ubuntu12.04源没有提供open-vm-tools-desktop,这里更推荐安装vmtools。或者开启ssh,远程连接并安装lrzsz进行文件传输。
# ssh + lrzsz传输文件
sudo apt-get install -y openssh-server
ps -ef | grep ssh | grep -v grep # 查看是否运行
sudo apt-get install lrzsz build-essential bin86 manpages-dev libc6-dev-i386 ia32-libs ia32-libs-gtk
sudo apt-get install vim cscope exuberant-ctags
在27行左右位置找到PermitRootLogin,修改为PermitRootLogin yes。可以选择设置root密码登录,也可以选择普通用户登录。如果修改了ssh服务,需要/etc/init.d/ssh restart
重启服务。
# 上传文件之后,解压文件
tar xvf *.tar.gz
# 安装gcc
cd gcc-3.4
sudo ./inst.sh amd64
cd ..
# 编译内核
cd ~/oslab/linux-0.11
make all
make -j 2
../run