标签:-o term 返回 多任务 指令 led 信息 学习总结 了解
@
在Linux系统分析这门课中,我们主要学习了中断,系统调用,程序加载执行,进程管理,文件系统,计时器方面等方面的内容。
通过这门课的学习让我初步了解到了,Linux系统的大致运行过程。
VFS
通过构建一个通用文件模型,使得VFS
使用一套统一的操作来管理不同的文件系统。另外在Linux中外设也被看成是一种文件,系统对设备文件的读写将转换成驱动程序对外设的读写操作。Linux系统的启动做了些什么,我们大致可以从start_kernel
这个函数里面略窥一二。
kernel_init
(所有用户进程的祖先),kthreadd
(所有内核进程的祖先)的初始化及运行宏观上 Linux 操作系统的体系架构分为?户态和内核态。
计算机的硬件资源是有限 的,为了减少有限资源的访问和使?冲突,CPU 和操作系统必须提供?些机制对?户程序进?权限划分。
一些和底层相关的执行就需要高权限,那就是内核态。普通的执行就是用户态。有权限的执行,这样就避免了普通的程序使用高权限的指令导致系统崩溃。
在系统运行的过程中,我们会创建新的进程去执行新的任务。为了提高CPU的利用率(有些进程等待IO资源,CPU无事可做),设计了各种进程调度算法。
为了实现进程的切换,引入中断的概念。在中断的过程中,保存下当前进程运行所需要的信息,然后将下一个进程的信息加载到当前的寄存器和内存中,开始执行新的进程。
这样就使得多任务能同时在系统内执行,而且合适的进程调度算法使得不会有进程得不到执行。
在Linux中,一切都是文件,通过对文件的定义和操作来控制设备的执行和数据的存储。并且使用VFS虚拟文件系统,实现对多种文件系统的兼容。
要实现操作系统对其它各种不同文件系统的支持,就要将对各种不同文件系统的操作和管理纳入到一个统一的框架中。 对用户程序隐去各种不同文件系统的实现细节,为用户程序提供一个统一的、抽象的、虚拟的文件系统界面,这就是所谓的虚拟文件系统(VFS)。
在Linux中,LED灯这个外设被看成是一个设备文件。Linux系统通过打开这个文件,对它进行read() write()
操作,从而转化成设备驱动程序对设备的操作。
read
系统调用,中断,进入内核态VFS
层次,sys_read()
会根据fd在进程打开文件表中找到相应的系统打开文件表VFS
的sys_read
,sys_write
,等函数,转化为对设备的操作这样,Linux系统就通过对文件的简单读写,完成了对外设的操作。
孟老师课程+博客的方式个人觉得很好,通过自己线下的博客编写,不仅加深了自己的理解,也有助于自己期末进行知识的复习。
李老师的授课中,源码讲解,要素过多,上课的时候不容易跟得上,建议也有一个小作业加深对上课内容的理解。
标签:-o term 返回 多任务 指令 led 信息 学习总结 了解
原文地址:https://www.cnblogs.com/chengjin96/p/13272542.html