Rand

其他

捋一捋控制台的输入输出

的处理通常只是移动光标不覆盖原来的字符,但也说不准,不同的机器编译器的处理不一样。另外字符一般是输出到光标的位置,但光标与字符真的有关系吗?它俩本身没有任何关系,是我们人为地将它俩绑定到了一起。
2021年10月12日
其他

深入理解进程三之大杂烩

PROCESS本篇是进程第三篇,也是最后一篇,涉及的内容方面有些多,所以取了个名大杂烩。本篇主要就是来解决余下的一些问题:程序的加载,第一个进程的创建,进程的休眠唤醒,等待退出,还有锁同步的问题,最后还简单聊了聊运行库,废话不多说,一个一个来看。加载程序使用分身术()创建出来的进程执行的是与父进程相同的程序,通常不是咱们想要的,咱们想要的是子进程去执行不同的程序,这就需要学会另一门技能变身术()
2021年10月7日
其他

深入理解进程之创建调度切换

主要是来创建普通进程,而第一个创建放在加载程序之后比较合适,本篇就先不讲述。好了本文到这儿也结束了,本文主要讲述了进程的创建与切换,虽然是反着讲的,但影响应该不大。普通进程的创建没什么技巧,
2021年10月5日
其他

深入理解进程之数据结构篇

PROCESS进程,这个词大家应该耳熟能详了,那进程是什么呢?我们说程序一般是外存上的一个可执行文件,而进程就是这个可执行文件在内存中的一个执行实例。概念始终只会是一个抽象的概念,本文以及后面的几篇文章通过
2021年10月3日
其他

了解文件系统调用吗?如何实现的?

1,需要同步到磁盘上去,当然不是直接写到磁盘对应位置,而是写到日志区,当然也不是马上就写到日志区,还要等待提交,等待磁盘请求。这些也算是基操了不再多言,有疑惑翻看前面的文章。"更新完毕"
2021年9月16日
其他

系统调用如何实现?

SYSCALL系统调用就是调用操作系统提供的一系列内核功能函数,因为内核总是对用户程序持不信任的态度,一些核心功能不能直接交由用户程序来实现执行。用户程序只能发出请求,然后内核调用相应的内核函数来帮着处理,将结果返回给应用程序。如此才能保证系统的稳定和安全。本文采用
2021年9月7日
其他

多处理器下的中断机制

重定向表但是这些寄存器是不能直接访问的,需要通过另外两个映射到内存的寄存器来读写上述的寄存器。内存映射的两个寄存器这两个寄存器是内存映射的,IOREGSEL,地址为
2021年8月31日
其他

inode、目录、路径

的内容有些多有些复杂,我们放在后面讲,先来看看数据区中数据块的组织与管理。数据块的分配和释放由位图来管理,但位图管理的区域不止数据区,而是整个文件系统。有关位图的宏定义如下://
2021年8月26日
其他

如何实现一个简单的日志系统

表示当前的日志空间已经使用的块数,它们两者之和如果小于日志空间,则可以继续下一步,否则等待。若能继续下一步,表示日志空间的空闲区域足够容纳当前系统调用的写入操作,则执行该文件系统调用,将
2021年8月23日
其他

带你了解键盘驱动程序

相关的部分,其他部分同样的感兴趣的见文末的链接。XV6驱动程序就是硬件物理接口的封装,键盘驱动程序也是如此,它的主要功能就是将读取扫描码转换成计算机所需要的信息,比如说转换成字符,信号等等。xv6
2021年8月19日
其他

带你了解磁盘驱动程序

磁盘驱动程序本文来聊聊磁盘驱动程序,驱动程序是硬件的接口,操作系统通过这个接口来控制硬件工作,所以驱动程序就好比是硬件和系统之间的桥梁。这是百科上给出的解释,可能看起来还是云里雾里,我来做做注解。每个硬件都有自己的
2021年8月17日
其他

LOCK

上,中断也可能导致并发,在允许中断时,内核代码可能在任何时候停下来,然后执行中断处理程序,内核代码和中断处理程序交叉访问公共资源也可能导致错误。所以在取锁检验锁都要在关中断下进行。另外
2021年8月13日
其他

多处理器下的调度

调度是操作系统里面一个很重要的概念,进程中有调度,页面置换有调度,磁盘访问也有调度,本文讲述的是进程之间的调度,以及多处理器之间的调度策略。废话不多时直接来看,先来简单了解各种概念:各种概念简析各种时间到达时间:进程到达等待队列的时间开始时间:CPU
2021年8月3日
自由知乎 自由微博
其他

内联汇编

先被当作输入对象读入,汇编代码运算出结果后又被当作输出对象输出。占位符占位符前面已经用过很多次了,这里再具体看看,占位符可以分为两种:序号占位符,名称占位符序号占位符对
2021年7月31日
其他

实例讲解多处理器下的计算机启动

启动启动方面的文章之前也写过,那是我的第一篇文章,本文在前文的基础之上完善,然后增加了多处理器启动的情况,废话不多说直接来看。启动可以分为两种,一种为冷启动,是指计算机在关机状态下按
2021年7月29日
其他

再谈中断(APIC)

的初始化配置,到时能翻手册查阅就行。但又回到那个点上,各个详细资料大多都是英文的,所以本文总结下来:一定要学好英语!!!本文就到这里了,有什么错误还请批评指正,也欢迎大家来同我交流讨论共同进步。
2021年7月23日
其他

捋一捋文件系统

*fd_array[NR_OPEN_DEFAULT]),可以看出它是一个指针数组,指向的是文件表项(文件结构体)。这个数组的索引便是文件描述符,他是一个数组的索引,所以文件描述符都是非负整数。dup
2021年7月15日
其他

捋一捋磁盘及分区

GPT,它有着以下优点:每个硬盘的分区数分区大小几乎没有限制分区表有备份,磁盘首位分别保存了一份相同的分区表关键数据结构有循环冗余检测使用全局标识符(GUID)来标识分区类型每个分区有名称使用
2021年7月7日
其他

捋一捋系统调用

系统调用就是调用操作系统提供的一系列内核功能函数,因为内核总是对用户程序持不信任的态度,一些核心功能不能交由用户程序来实现执行。用户程序只能发出请求,然后内核调用相应的内核函数来帮着处理,将结果返回给应用程序。如此才能保证系统的稳定和安全,关于系统调用的这些理论知识不多说,书本上有一大堆,本文旨在捋清楚系统调用这条线。总述Linux
2021年5月17日
其他

使用分身术变身术创建新进程

各元素表示的意思大都已经说明,根据命名应该还是很好记住各元素所代表的意义,下面再重点说几点:e_ident前4位是固定的魔数,e_ident[0]
2021年5月3日
其他

键盘

2021年4月19日
其他

实模式是如何到保护模式的?

CPU工作模式在还是16位CPU的天下时,并没有实模式这一说。直到CPU发展到32位,推出保护模式后,为了区别两种模式,便将之前的模式称为实模式。处于向下兼容的考虑,现代的CPU依然保持对16位模式的兼容,刚开机时,32位的CPU是先处于16位的实模式的,而后再进入保护模式。本文就围绕着实模式与保护模式展开,介绍实模式与保护模式得特点,以及实模式是如何过渡到保护模式的。01实模式特点1、地址总线只使用了20根,寻址范围为220B=1MB。2、寄存器只使用了16位,所以如果只用单一的寄存器来寻址的话只能访问到216B=64KB的空间。3、分段,访问内存采用“段+偏移”的方式,即“段基址:段内偏移地址”,而真实的物理地址为段基址*16
2021年4月5日