xv6操作系统学习笔记

0x00背景

最近在看操作系统上的书 然后选了本知乎推荐的xv6
https://th0ar.gitbooks.io/xv6-chinese/content/content/chapter0.html

我们从这几个问题入手

操作系统作用是什么?
内核的作用是什么?
内核概念 - 一个向其他运行中程序提供服务的特殊程序。
内核的权限保护机制是什么?

0x01操作系统接口

不熟悉的接口

exec(filename,*argv)
sbrk(n)
read(fd,buf,n)
write(fd,buf,n)
dup(fd)
pipe(p)
chdir(dirname)
mkdir(dirname)
mknod(name,major,minor)
fstat(fd)

进程和内存

shell
进程
–用户内存空间(指令,数据,栈)
–进程状态(仅内核可见)
系统调用 exec 将从某个文件(通常是可执行文件)里读取内存镜像,并将其替换到调用它的进程的内存空间。

I/O 和文件描述符

文件描述符—作为进程(表的索引)
文件描述符和 fork 的交叉使用使得 I/O 重定向能够轻易实现。fork 会复制父进程的文件描述符和内存,所以子进程和父进程的文件描述符一模一样。
exec 会替换调用它的进程的内存但是会保留它的文件描述符表
利用文件描述符 重定向i/o

管道

管道是一个小的内核缓冲区,它以文件描述符对的形式提供给进程,一个用于写操作,一个用于读操作。

文件系统

文件系统提供文件和目录,文件就是一个简单的字节数组,而目录包含指向文件和其他目录的引用。

0x01第一个进程

进程是一个抽象概念,它让一个程序可以假设它独占一台机器。进程向程序提供“看上去”私有的,其他进程无法读写的内存系统(或地址空间),以及一颗“看上去”仅执行该程序的CPU。

内存布局
进程见的切换实际是由线程调度来调节

创建第一个地址空间

创建第一个进程

将控制权从用户转到内核是通过中断机制实现的,具体地说是系统调用、中断和异常。

运行第一个进程

让硬件在进程的内核栈中执行系统调用与中断。

The first system call: exec

mit:
https://pdos.csail.mit.edu/6.828/2012/xv6.html
https://pdos.csail.mit.edu/6.828/2012/xv6/book-rev7.pdf

转载于:https://www.cnblogs.com/Tesi1a/p/7624056.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值