本文主要是介绍操作系统 ucore lab0,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
环境配置及x86-32硬件简介
虚拟环境
因课程需要,在之前进行计算机网络实验时,下载安装过VMware,现在我使用的版本为VMware 15 Pro。
操作环境
正巧的是,我为了比较不同版本的Linux系统,在电脑上同时装有Ubuntu 18.04.1、CentOS 7和Kali Linux,所以我也直接使用了已有的Ubuntu 18.04.1,由于之前没有过多使用,所以该虚拟机还处于裸机状态,符合本次实验的使用要求。
配置过程
1.换源
1.备份文件:
mv /etc/apt/sources.list /etc/apt/sourses.list.backup
2.新建并打开文件:
sudo gedit /etc/apt/sources.list
3.写入文件:
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
4.刷新一下:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install build-essential
2.gcc
apt-get install gcc
成功下载安装 gcc 7.4.0。
3.qemu
下载:wget https://download.qemu.org/qemu-4.1.0.tar.xz
解压源代码:tar xvJf qemu-4.1.0.tar.xz
进入qemu目录内:cd qemu-4.1.0
对源代码包进行配置:./configure
编译:make
对源代码包配置时遇到问题,解决如下:
错误1:
checking for pkg-config... no
pkg-config not found
configure: error: Please reinstall the pkg-config distribution
解决方法:
sudo apt-get install pkg-config错误2:
ERROR:glib-2.40 gthread-2.0 is required to compile QEMU
解决方法:
sudo apt-get install libglib2.0-dev错误3:
ERROR: pixman >= 0.21.8 not present.
Please install the pixman devel package.
解决方法:
sudo apt-get install libpixman-1-dev
成功下载安装 qemu 4.1.0。
4.git
sudo apt-get install git
成功下载安装 git 2.17.1。
5.gdb
apt-get install gdb
成功下载安装gdb 8.1.0。
6.Eclipse-CDT
sudo apt-get install eclipse-cdt
成功下载安装Eclipse-CDT 8.6.0-2
x86-32硬件
运行模式
实模式下只有16位的寻址空间,且没有保护机制。
保护模式有32位的寻址空间,有强大的保护机制来确保操作系统的安全,确保应用程序之间的安全。
内存框架
寄存器
-
通用寄存器
-
段寄存器
段寄存器用来寻址。在实模式和保护模式下,段寄存器代表的含义不同。
-
指令和标志寄存器
对于16位而言,由CS和EIP共同决定地址。
对于32位保护模式而言,CS和EIP有了新的含义,它们结合在一起来完成对32位地址空间的寻址,此时EIP表示指令的段内偏移地址。
EFLAGS通过标志位BIT的0~1,来表示一些状态,比如加法是否溢出。有一些BIT不能由应用程序来修改,只能是由运行在特权态的操作系统来修改。
-
控制寄存器(CR0,CR1,CR2,CR3)
用于控制和确定处理器的操作模式以及当前执行任务的特性。
CR0:保护控制位和协处理器控制位。
CR2和CR3:由分页管理机制使用。 -
系统地址寄存器、调试寄存器和测试寄存器
系统地址寄存器:为了方便快速地定位GDT、LDT和IDT,处理器采用一些特殊的寄存器保存这些段的基地址和段界限。
调试寄存器:一共有8个调试寄存器DR0-DR7,DR0-DR3可以分别设置4个断点的线性地址,DR4-DR5保留未用,DR6是断点状态寄存器,DR7是断点控制寄存器(包括断点类型、断点长度,断点开放/禁止)。
测试寄存器: 一共有8个测试寄存器TR0-TR7,TR0-TR2保留,TR3-TR5用作CACHE测试,TR6为命令测试寄存器,TR7为测试数据寄存器。
这篇关于操作系统 ucore lab0的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!