WangFuJie Blog

路在脚下,心向远方

自制操作系统 - 信号与闹钟

信号与闹钟

在 UNIX 系统中,信号是一种 软件中断 处理机制。信号机制提供了一种处理异步事件的方法。例如执行 CTRL+C 组合键会产生一个 SIGINT 信号来终止一个程序的执行。通过信号还可以实现闹钟功能,指定多长时间后去执行某个函数。

自制操作系统 - 任务会话与tty设备

任务会话与tty设备

进程会话(session)**是 一组相关进程的集合。主要用于:管理 终端控制、实现 作业控制(job control)、组织进程之间的父子关系和权限。tty设备是一个抽象的终端设备,虽然目前我们的系统只支持一个终端,但是我们需要tty设备做信号处理。

自制操作系统 - 定时器

定时器

加入内核定时器机制,使得任务可以在一定时间之后执行特定的功能。比如:任务睡眠、蜂鸣器超时、阻塞超时。我们通过链表实现定时器,当任务sleep或阻塞产生一个定时器加入链表,在每次时钟中断都去判断是否有任务需要被唤醒。

自制操作系统 - CSI控制序列

CSI控制序列

控制序列是指由一些非控制字符构成的一个特殊字符序列,终端在收到这个序列时并不是将它们直接显示在屏幕上,而是采取一定的控制操作,比如:移动光标、删除字符、删除行、插入字符、插入行等。

自制操作系统 - init进程与内核内存保护

init进程与内核内存保护

osh 和 init应该属于用户程序,但是目前我们直接编译进内核了。到目前我们的系统已经可以执行程序了,因此需要将这两个程序独立出来,作为用户程序放到用户空间去执行。并且目前用户进程是可以访问内核内存的,我们需要对内核内存进行保护,不允许用户进程访问。