[MIT 6.S081] Lec 3: OS organization and system calls 笔记

Lec 3: OS organization and system calls

Topic

  • Isolation 隔离性
  • Kernel/User mode 内核/用户模式
  • System Call 系统调用
  • xv6 实现

Isolation 隔离性

Unix Interface - 实现复用和物理内存隔离:

  • abstract the HW resource 抽象硬件资源
  • process: instead CPU 进程:应用程序通过进程与 CPU 交换, 抽象了 CPU
  • exec: instead of memory 加载镜像, 内存隔离
  • files: instead of disk block 文件系统: 抽象了磁盘块

Defensive 防御性

App cannot crash the OS
App cannot break out of its isolation
通过硬件实现强隔离性 Strong Isolation between apps + OS
typical: HW support:

  • user/kernel mode
  • virtual memory

user/kernel mode

user: unprivileged instructions - ADD, SUB, JRC, BRANCH
kernel: privileged instructions - setup page table设置页表寄存器, 关闭时钟中断

virtual memory

page table: virtual addr -> physical addr
process has own page table
memory isolation

User/Kernel mode Switch

在这里插入图片描述
RISC-V: ECALL 指令: 控制权由用户转移至内核
在这里插入图片描述
每个应用程序发起系统调用通过 syscall 函数

Kernel = Trusted Computing Base(TCB) 内核被称为可被信任的计算空间

  • Kernel must have no bugs
  • Kernel must treat processes as malicious

Monolithic Kernel vs Micro Kernel 宏内核 vs 微内核

  • 宏内核: 所有操作系统服务都在内核态
    • 缺点: 内核中有大量代码, Bug 隐患
    • 有点: 子模块在同一程序, 性能好
  • 微内核: 内核仅有较少模块
    • 优点: 较少的 Bug
    • 缺点: 用户态内核态切换的性能损耗; 共享困难

xv6: 宏内核

内核编译

  1. Makefile 读取 C 文件, 调用 gcc 编译器 生成 .s 的 RISC-V 汇编语言文件
  2. 调用汇编解释器生成 .o 的二进制文件
  3. 所有内核 C 文件重复 1, 2 的操作
  4. 系统加载器(Loader)收集所有 .o 文件, 链接在一起生成内核文件
    在这里插入图片描述

传给QEMU的几个参数:

  • kernel:这里传递的是内核文件(kernel目录下的kernel文件),这是将在QEMU中运行的程序文件。
  • m:这里传递的是RISC-V虚拟机将会使用的内存数量
  • smp:这里传递的是虚拟机可以使用的CPU核数
  • drive:传递的是虚拟机使用的磁盘驱动,这里传入的是fs.img文件
    在这里插入图片描述

XV6 启动过程

kernel/entry.S -> kernel/start.c-start() -> kernel/main.c-main()-> kernel/proc.c-userinit() 第一个用户进程, 用于与操作系统交互

userinit() 中会执行 initcode 代码, 其中会执行系统调用 SYS_exec, 并执行用户态的 init 程序(user/init.c), 最终将 shell 运行起来.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值