博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xv6操作系统学习笔记
阅读量:7093 次
发布时间:2019-06-28

本文共 892 字,大约阅读时间需要 2 分钟。

0x00背景

最近在看操作系统上的书 然后选了本知乎推荐的xv6

我们从这几个问题入手

操作系统作用是什么?

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

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://www.cnblogs.com/Tesi1a/p/7624056.html

你可能感兴趣的文章
iOS面试中经常问的点 - 基础问题(二)
查看>>
建立git密钥对
查看>>
合并区间
查看>>
看一篇,学一篇,今日份的pandas,你该这么学!No.2
查看>>
Python项目案例介绍,炫酷飞机大战,内附源码文件领取
查看>>
JavaScript基础(一)
查看>>
ES6 Promise介绍
查看>>
IM客户端消息推送的几种方式及特点
查看>>
发布 HashiCorp Consul Helm Chart
查看>>
Android性能优化之内存泄漏
查看>>
成都顾连康复医院:骨折术后真正的康复应该是这样的
查看>>
3、Ktor学习-ApplicationCall简介;
查看>>
云计算面试题,浅谈Linux云计算运维工程师面试技巧
查看>>
10月25日云栖精选夜读:全世界都在关注中国企业的互联网架构?云栖大会道出了真相...
查看>>
让你的APP实现即时聊天功能
查看>>
阿里P7谈论前端的五大优势!
查看>>
干货|区块链技术入门——比特币运行及交易原理剖析(分享实录)
查看>>
从 shuffle 看代码品味(面试题)
查看>>
InnoDb索引机制
查看>>
網站頁面載入速度在 2019 年對於 Google SEO 排名的影響 - TechMoon 科技月球
查看>>