随笔分类 -  系统

摘要:首发公号:Rand_cs 共享内核空间 我们常说,每个进程都有自己的虚拟地址空间,但其中内核部分是共享的。 这就有个问题,如何共享的? 系统启动时创建了一张内核页表,里面记录着内核地址空间与物理地址空间的映射关系,而每次 fork 子进程时都会复制一份内核页表,所以说每个进程页表中的内核部分是“相同 阅读全文
posted @ 2023-11-29 00:23 Rand_CS 阅读(30) 评论(0) 推荐(0) 编辑
摘要:有朋友问我关于操作系统详细的面经,之前的分享里面经写的的确不是很详细,这里重新整理一份分享给大家。我是因为做了一个简易的操作系统,面试问题也主要是围绕着操作系统展开,这里就面试遇到的问题以及我自己的想法整理一下,可以参考参考,有什么问题也还请批评指正。 这个是实际问到我的问题 自己引申出来的问题 黑 阅读全文
posted @ 2022-09-22 22:59 Rand_CS 阅读(36) 评论(0) 推荐(0) 编辑
摘要:首发公号:Rand_cs 在 L i n u x Linux Linux 的文件系统中,有个很重要的概念就是挂载,挂载大家应该都很熟悉,除了根文件系统,其他所有文件系统都要先挂载到根文件系统中的某个目录之后才能访问。 所谓的根文件系统就是系统启动的时候安装的第一个文件系统,它也是内核映像所在的文件系 阅读全文
posted @ 2022-01-20 12:25 Rand_CS 阅读(105) 评论(0) 推荐(0) 编辑
摘要:TIME 首发公号:Rand_cs 相信很多朋友接触计算机的时候都有这么一个疑惑,为什么计算机在关机断电,隔一段时间后重启的时间依然正确? 这背后的原因其实不难猜测,关机后重启的时间正确说明关机的情况下时钟仍然在工作,关机的情况下时钟仍然在工作,说明这个时钟应是有备用电源支持它工作的。 这个时钟叫做 阅读全文
posted @ 2022-01-20 12:21 Rand_CS 阅读(24) 评论(0) 推荐(0) 编辑
摘要:前言 时隔四个多月,终于把 x v 6 xv6 xv6 这个系列写完了,我把它们整合起来做成了这个 P D F PDF PDF,并命名为给操作系统捋条线。在写第一篇计算机启动的时候,我就说过想要通过 x v 6 xv6 xv6 给操作系统的前前后后,里里外外捋一条线出来,让自己让大家都对操作系统有个 阅读全文
posted @ 2021-10-30 12:42 Rand_CS 阅读(18) 评论(0) 推荐(0) 编辑
摘要:文件系统调用 本文接着上文系统调用,也是接着 x v 6 xv6 xv6 文件系统的最后一层,讲述各种具体的文件系统调用是怎么实现的,文件描述符, i n o d e inode inode,文件之间到底有什么关系,创建打开关闭删除文件到底是何意义,文件删除之后数据就不存在了吗,链接又作何解释等等问 阅读全文
posted @ 2021-09-21 22:08 Rand_CS 阅读(33) 评论(0) 推荐(0) 编辑
摘要:INTERRUPT 中断是硬件和软件交互的一种机制,可以说整个操作系统,整个架构都是由中断来驱动的。中断的机制分为两种,中断和异常,中断通常为 I O IO IO 设备触发的异步事件,而异常是 C P U CPU CPU 执行指令时发生的同步事件。本文主要来说明 I O IO IO 外设触发的中断, 阅读全文
posted @ 2021-09-21 22:01 Rand_CS 阅读(123) 评论(0) 推荐(0) 编辑
摘要:公号:Rand_cs SYSCALL 系统调用就是调用操作系统提供的一系列内核功能函数,因为内核总是对用户程序持不信任的态度,一些核心功能不能直接交由用户程序来实现执行。用户程序只能发出请求,然后内核调用相应的内核函数来帮着处理,将结果返回给应用程序。如此才能保证系统的稳定和安全。本文采用 x v 阅读全文
posted @ 2021-09-21 21:51 Rand_CS 阅读(16) 评论(0) 推荐(0) 编辑
摘要:文件系统 公众号:Rand_cs 本文继续来看 x v 6 xv6 xv6 的文件系统部分, x v 6 xv6 xv6 将文件系统的设计分为 7 层: 磁 盘 → 缓 存 区 → 日 志 → i n o d e → 目 录 → 路 径 → 文 件 系 统 调 用 磁盘 \rightarrow 缓存 阅读全文
posted @ 2021-08-30 19:31 Rand_CS 阅读(21) 评论(0) 推荐(0) 编辑
摘要:键盘驱动程序 公众号:Rand_cs 键盘如何工作的前文曾经说过,当时是以 Linux 0.11 为基础讲的但不系统,本文以 xv6 的键盘驱动程序为例来系统地讲述键盘是如何工作的。关于驱动程序前文磁盘那一篇说过了,它就是硬件物理接口的封装,所以了解键盘驱动程序,同样的还是先来了解键盘的一些物理接口 阅读全文
posted @ 2021-08-30 19:21 Rand_CS 阅读(49) 评论(0) 推荐(0) 编辑
摘要:日志 公众号:Rand_cs 本文来聊聊文件系统中的日志系统,来看一个简单的日志系统是如何实现的。本文是接着前面的 xv6 系列,用到的一些前导知识不再说明,没看的可以先看一下。 文件系统设计中通常要考虑错误恢复,这是因为文件系统会涉及对磁盘的多次写操作,如果在写的过程中系统崩溃了,就会使得磁盘上的 阅读全文
posted @ 2021-08-30 19:17 Rand_CS 阅读(9) 评论(0) 推荐(0) 编辑
摘要:键盘驱动程序 公众号:Rand_cs 键盘如何工作的前文曾经说过,当时是以 Linux 0.11 为基础讲的但不系统,本文以 xv6 的键盘驱动程序为例来系统地讲述键盘是如何工作的。关于驱动程序前文磁盘那一篇说过了,它就是硬件物理接口的封装,所以了解键盘驱动程序,同样的还是先来了解键盘的一些物理接口 阅读全文
posted @ 2021-08-22 10:49 Rand_CS 阅读(23) 评论(0) 推荐(0) 编辑
摘要:LOCK 公众号:Rand_cs 锁,大家应该很熟悉了,用来避免竞争,实现同步。本文以 xv6 为例来讲解锁本身是怎么实现的,废话不多说,先来看一些需要了解的概念: 一些概念 公共资源:顾名思义就是被多个任务共享的资源,可以是公共内存,也可以是公共文件等等 临界区: 要访问使用公共资源,肯定得通过一 阅读全文
posted @ 2021-08-16 16:45 Rand_CS 阅读(7) 评论(0) 推荐(0) 编辑
摘要:磁盘驱动程序 本文来聊聊磁盘驱动程序,驱动程序是硬件的接口,操作系统通过这个接口来控制硬件工作,所以驱动程序就好比是硬件和系统之间的桥梁。这是百科上给出的解释,可能看起来还是云里雾里,我来做做注解。 每个硬件都有自己的 “CPU”(控制器),寄存器,有着自己的一套执行逻辑。对外提供了一些列的物理接口 阅读全文
posted @ 2021-08-16 16:43 Rand_CS 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Rand_cs 调度是操作系统里面一个很重要的概念,进程中有调度,页面置换有调度,磁盘访问也有调度,本文讲述的是进程之间的调度,以及多处理器之间的调度策略。废话不多时直接来看,先来简单了解各种概念: 各种概念简析 各种时间 到达时间:进程到达等待队列的时间 开始时间:CPU 开始执行进程的时间 完成 阅读全文
posted @ 2021-08-09 21:12 Rand_CS 阅读(15) 评论(0) 推荐(0) 编辑
摘要:前文讲述了 xv6 的启动过程,本文接着讲述 xv6 内存管理的部分,直接来看。 公众号:Rand_cs 启动部分完善 前文只是介绍了启动的过程,但是各类函数之间的调用,地址的变换,内存布局的变化并没有详细说明明,本节来完善。 BIOS 还是从 BIOS 开始,入口点是 0 x f f f f 0 阅读全文
posted @ 2021-08-09 21:11 Rand_CS 阅读(43) 评论(0) 推荐(0) 编辑
摘要:磁盘即分区 温彻斯特硬盘 今天我们所使用的机械硬盘实质上都是温彻斯特硬盘,最早是在 1973 年由 IBM 研制的一种新型硬盘 IBM 3340。它使用了一种了不起的技术:磁头不与盘片接触,只有不予接触才可能有着更高的转速而且磁盘才不易损坏。至于这个名字的来历,是因为 IBM3340 拥有两个 30 阅读全文
posted @ 2021-07-29 11:53 Rand_CS 阅读(17) 评论(0) 推荐(0) 编辑
摘要:系统调用就是调用操作系统提供的一系列内核功能函数,因为内核总是对用户程序持不信任的态度,一些核心功能不能交由用户程序来实现执行。用户程序只能发出请求,然后内核调用相应的内核函数来帮着处理,将结果返回给应用程序。如此才能保证系统的稳定和安全,关于系统调用的这些理论知识不多说,书本上有一大堆,本文旨在捋 阅读全文
posted @ 2021-07-29 11:51 Rand_CS 阅读(17) 评论(0) 推荐(0) 编辑
摘要:中断是硬件和软件交互的一种机制,可以说整个操作系统,整个架构都是由中断来驱动的。一个中断的起末会经历设备,中断控制器,CPU 三个阶段:设备产生中断信号,中断控制器翻译信号,CPU 来实际处理信号。 中断控制器前面的文章曾讲过一些 PIC,PIC 只用于单处理器,对于如今的多核多处理器时代,PIC 阅读全文
posted @ 2021-07-29 11:48 Rand_CS 阅读(59) 评论(0) 推荐(0) 编辑
摘要:启动 启动方面的文章之前也写过,那是我的第一篇文章,本文在前文的基础之上完善,然后增加了多处理器启动的情况,废话不多说直接来看。 启动可以分为两种,一种为冷启动,是指计算机在关机状态下按 POWER 键启动,又叫硬件启动,比如开机,这种启动方式在启动之前计算机处于断电状态,像内存这种需要加电维持的存 阅读全文
posted @ 2021-07-29 11:47 Rand_CS 阅读(82) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示