计算机系统
EW_DUST
这个作者很懒,什么都没留下…
展开
-
select多路复用 源码剖析
简单说一下5种IO阻塞IO: 一直等待知道数据到来。非阻塞IO: 直接返回有没有数据,没有就直接返回错误。IO复用:将多个IO,放在一起,一个个轮询。信号驱动:设置一个信号,当有IO的信号的时候告诉我。异步IO:直接丢给别人做。可以去看看这个博客。select是IO复用的一种。函数原型如下。int select (int __nfds, fd_set *__restrict ...原创 2020-02-24 18:52:31 · 393 阅读 · 0 评论 -
MIT 6.828 (六) Lab 6: Network Driver (default final project)
哦豁,到了这章,大佬的博客已经没了,要靠自己翻译了。Lab 6: Network Driver (default final project)IntroductionLab6 是最后一个实验了,做完这个,一个简单的内核就已经实现了,现在你可以自己做自己的内核。现在,你有一个文件系统,操作系统没有网络堆栈。在这个实验室里你要编写一个网络接口卡的驱动程序。该卡将基于Intel 82540EM芯...原创 2020-02-06 14:38:05 · 1115 阅读 · 0 评论 -
MIT6.828 (零)提前做好送人头准备 随时跑路
被某个大佬带入坑,看看了评价好像确实不错,所以就开始干了。首先第一件事就是搜索资源,像我这么菜的,要是没人告诉我怎么做,基本上是没啥希望的。资源第一个肯定就是官方的了,另外还有,2019的.然后就是一些比较好的大佬的资源。知乎超级详细的某个大佬2014 大佬github这个也是有些应该够用了,也许够了,嗯,也许够了,因为我也只是刚开始。。虚拟机如果做的事 2018年之前的 随...原创 2019-12-31 20:20:24 · 1421 阅读 · 1 评论 -
linux0.11操作系统源码剖析fork.c
fork() 用于创建 一个新的进程,一次调用两次返回。父进程返回子进程的PID 子进程是 0.fork() 采用写时复制,也就是 创建的时候 就复制了页表,并没有实际的内存空间,子进程这个时候和父亲共享内存,但是子进程只有 读的权限,当修改的时候 才复制一份。知乎大佬的nettle的回答:linux下的fork()函数传统的fork()系统调用直接把所有的资源复制给新创建的进程.lin...原创 2019-12-14 13:55:45 · 871 阅读 · 0 评论 -
linux1.0操作系统源码剖析 sched.h sched.c
#ifndef _SCHED_H#define _SCHED_H#define NR_TASKS 64 //系统最多的进程数#define HZ 100 // 系统时钟频率 100HZ#define FIRST_TASK task[0] //任务0是 比较特殊 init()#define LAST_TASK task[NR_TASKS-1] //任务数组里...原创 2019-12-12 15:56:56 · 1500 阅读 · 2 评论