Lab 2 物理内存管理
Lab 2 物理内存管理1 实验目的
理解基于段页式内存地址的转换机制
页表的建立和使用
物理内存的管理方法
2 实验内容三个部分:
发现系统中的物理内存
建立对物理内存的初步管理:了解连续内存管理
建立页表实现虚拟内存到物理内存之间的映射,了解段页式内存管理机制
2.1 练习
分析 ucore提供的答案,说明自己的实现与参考答案区别
列出本实验中重要的知识点
对应的 OS 原理
未出现但很重要的知识点
练习0:填写已有实验
本实验依赖于实验一
需要将实验一的代码填入lab2相应位置
练习1:实现first-fit 连续物理内存分配算法3 物理内存管理3.1 实验执行流程概述
总控函数:kern_init
调用完成物理内存初始化的pmm_init函数之前和之后的区别:
首先,bootloader工作有所增加,在bootloader中完成了对内存资源的探测工作,使得 ucore kernel 在后续执行中能够基于其探测出的物理内存情况进行物理内存管理初始化工作
其次,bootloader 不像lab1,直接调用kern_init,而是先调用kern_entry函数(/lab ...
Lab 1 系统软件启动过程
Lab 1 系统软件启动过程参考博客
参考博客
[toc]
1 实验目的
需要某种机制加载并运行操作系统
更加简单的软件——Bootloader
能完成切换到 x86 保护模式并显示字符
为启动 ucore
整个 Bootloader 执行代码小于512个字节,能放到硬盘的主引导扇区
分析和实现 Bootloader和ucore
计算机原理
CPU 的编址与寻址:基于分段机制的内存管理 【连续物理内存分配
CPU 的中断机制
外设:串口/并口/CGA(显示器),时钟(产生时钟中断),硬盘(读取)
Bootloader
编译运行 Bootloader 的过程
调试的方法
PC 启动 Bootloader 的过程
ELF执行文件的格式和加载
外设访问:读硬盘,在CGA上显示字符串
ucore OS
编译运行
启动过程
调试方法
函数调用关系:在汇编级了解函数调用栈的结构和处理过程
中断管理:与软件相关的中断处理 【系统调用,异常
外设管理:时钟
2 实验内容
lab 1 中包含一个 Bootloader 和 一个 OS
Bootloader 可以切换到 x8 ...
Linux 入门学习3
Linux 入门学习3[toc]
学习使用 Vim 编辑器,编辑、保存文件,以及查看、浏览文件
1 使用文本编辑器 Vim1.1 基本命令
任何文件需要编辑默认化的编辑器
功能强大的全屏幕文本编辑器
新建、编辑、显示文件
Vim只有 命令,没有 菜单
命令:
vi: 新建一个文件
语法:vi 文件名
编辑:回车后进入全屏幕的命令模式
进入命令模式:Vim 等待输入指令
输入 i, a, o, 进入输入模式(左下角会有 insert)
i: 在当前光标所在字符的前面,转为输入模式
I: 在当前光标所在行的行首转换为输入模式
a: 在当前光标所在字符的后面,转为输入模式
A:
o: 在当前光标所在行的下方,新建一行,并转为输入模式
O:
s: 删除光标所在字符
r: 替换光标处字符
退出编辑:按 ESC
ESC 后进入命令模式,==先输入 冒号==:
w: 保存不退出
w!: 强制保存不退出
wq或 x: 保存并退出
wq!: 强制保存并退出
q: 不保存退出
q!: 不保存强制退出
e!: 放弃所有修改,从上次保存文件开始编辑
遇到的问题:由于我在插入模式编辑完 ...
Linux 入门学习2
Linux 入门学习2参考博客
[toc]
学习如何创建文件、文件夹、以及文件的复制粘贴剪切等操作。
1 文件、文件夹的创建1.1 创建文件夹
命令:mkdir make directories
默认登陆所在目录是 root的 home目录
指定在某个目录下创建:mkdir /目录名/文件夹名
创建文件夹的同时创建子文件夹:mkdir -p 文件夹名/子文件夹名
-p选项:递归创建
1.2 创建文件
命令:touch
语法:touch /目录/文件名
在目录下创建文件
注意:
目录需要写绝对路径
2 查看当前目录以及切换目录2.1 查看当前目录
命令:pwd
2.2 切换目录
命令:cd,change directories
语法:cd /目录
3 对文件进行复制、粘贴、删除操作3.1 复制
命令:cp,copy
语法:cp 原文件路径 目标路径
选项:
-r: 复制一个目录
-p: 复制文件的属性与之前原文件一致
复制改名一起完成:再复制的目标路径最后写上文件名
3.2 删除
删除空目录
命令:rmdir,删除空目录
删除文件
命令:rm
选项
-f: ...
Linux 入门学习1
Linux 入门学习1参考博客
[toc]
1 学习命令基本格式1.1 基本格式
命令由三部分组成:命令 [-选项] [参数]
选项与参数可以省略
有多个选项是可以写在一起的,“-”代表选项
参数可以是一个对象,也可以是目录
例:ls -l / 代表查看目录
ls: 查看目录。显示目录下的文件或者文件夹(只能看到文件名)
-l: 显示目录下的详细文件或者文件夹的信息
/: 根目录。夹上参数后,表示查看 根目录 下的文件
1.2 目录查看根目录时,可以看到许多文件夹,如下图所示:
/: 根目录,无上一级
/home: 每个用户的家目录,在我们创建一个新用户时,home目录下会创建一个以用户名文名称的文件夹
/tmp: 临时存放文件的地方
/bin: 命令保存的目录
/boot: 启动目录,包含系统启动时的相关文件
/root: root用户的家目录,
2 ls 目录命令处理`ls`目录处理命令,全称: `list`
其他目录命令:
ls -a或 ls --all: 查看目录下的全部文件(包括隐藏文件)
![image-20210307103745762](E:\L ...
LinuxLearning
LinuxLearning[toc]
0 Linux 系统简介0.0 历史
操作系统始于二十世纪五十年代,当时的操作系统能运行批处理程序。批处理程序不需要用户的交互,它从文件或者穿孔卡片读取数据,然后输出到另外一个文件或者打印机
二十世纪六十年代初,交互式操作系统开始流行。它不仅仅可以交互,还能使多个用户从不同的终端同时操作主机。这样的操作系统被称作分时操作系统,它的出现对批处理操作系统是个极大的挑战。
UNIX 最初免费发布并因此在大学里受到欢迎。后来,UNIX 实现了 TCP/IP 协议栈
Linux 本身只是操作系统的内核。内核是使其它程序能够运行的基础。它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上
其中有些程序是必需的,比如说,命令行解释器(shell),它用于用户交互和编写 shell 脚本。
许多重要的软件,包括 C 编译器,都来自于自由软件基金 GNU 项目。GNU 项目开始于 1984 年,目的是为了开发一个完全类似于 UNIX 的免费操作系统。为了表扬 GNU 对 Linux 的贡献,许多人把 Linux 称为 GNU/Li ...