首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MIT 6.828 操作系统工程 lab1 2018 fall part1 & part2 笔记 and 中文注释源代码阅读

引导加载程序必须执行的两个主要功能: 将处理器从实模式切换到 32位保护模式; 通过x86的特殊I / O指令直接访问IDE磁盘设备寄存器,从硬盘读取内核; 引导加载程序的源代码: boot/boot.S...* * 磁盘布局 * * 此程序(boot.S和main.c)是引导加载程序。这应该 * 被存储在磁盘的第一个扇区中。 * * * 第二个扇区开始保存内核映像。...* * * 控制从boot.S开始-设置保护模式, * 和一个堆栈,然后运行C代码,然后调用bootmain() * * * 该文件中的bootmain()会接管,读取内核并跳转到该内核...while (pa < end_pa) { // 由于尚未启用分页,因此我们正在使用 // 一个特定的段映射 (参阅 boot.S), 我们可以 // 直接使用物理地址.

2K50
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    关于启动引导的那些事儿(上) : Legacy Boot

    本篇文章大致会涉及MBR、GPT、UEFI等内容,以使用Grub引导Linux为例,来分析启动的具体过程。 启动综述 对于PC来说,启动电脑的目的是为了启动操作系统。...) 操作系统的引导程序引导操作系统 MBR In Practice 在Linux下,我们可以使用指令dump出MBR。...我最终选择采用Linux的Live OS的MBR来进行分析。Live OS通常是用来安装或检修Linux系统的阉割版Linux,类似于Windows阵营的PE系统。...Linux通常使用Grub进行引导,比如这个Live OS。因此这一段MBR当然就是Grub写入的MBR了(grub-install指令)。...BTW,这段程序的源码位于Grub项目的boot.S。所以你费那么大劲分析老半天是为了啥? MBR只是程序 确实。你或许会问,那后66字节算什么呢,那些难道也是程序嘛?确实,一般来说那些都不是程序。

    2.8K10

    Linux - Linux内存管理

    为了解决内存紧缺的问题,Linux引入了虚拟内存的概念。为了解决快速存取,引入了缓存机制、交换机制等。...要深入了解Linux内存运行机制,需要知道下面提到的几个方面。 首先,Linux系统会不时地进行页面交换操作,以保持尽可能多的空闲物理内存。...其次,Linux进行页面交换是有条件的,不是所有页面在不用时都交换到虚拟内存中,Linux内核根据“最近最经常使用”算法,仅仅将一些不经常使用的页面文件交换到虚拟内存中。...Linux虽然可以在一段时间内自行恢复,但是恢复后的系统已经基本不可用了。...Linux下可以使用文件系统中的一个常规文件或者一个独立分区作为交换空间。同时Linux允许使用多个交换分区或者交换文件。

    52.3K41

    Linux】--- Linux权限概念

    shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。...2.3 Linux中的用户 Linux下有两种用户:超级管理员(root)、普通用户。 超级管理员(root):可以再linux系统下做任何事情,不受权限约束 普通用户:在linux下做有限的事情。...Linux具有组的概念,主要是在多人协作的时候,更好的进行权限管理!...而在Linux中不通过后缀区分文件类型!但并不是说Linux不用后缀。 那通过什么区分呢?即ls -l第一个属性列。 Linux文件类型: -:普通文件。...很简单一个道理,Linux系统不以文件后缀作为区分文件类型的依据,但并不代表gcc不需要,Linux系统 != gcc。

    11311
    领券