Linux内核
姚灯灯
programonkey
展开
-
Linux内核------进程的基本知识
进程: 传统上,Linux操作系统下运行的应用程序,服务器和其他程序都称为进程。当然进程不仅仅表示一段处于执行期的可执行代码,还包括其他资源,例如打开的文件,挂起的信号和内核内部数据等。其实还有个概念叫,线程或者说轻量级进程,不过在Linux中线程和进程其实是类似的。可以把线程看做和其他进程共享某些数据和资源的进程。 进程的表示: 通常进程是由一个叫task_struct的结构表示的,或者叫原创 2014-08-01 20:34:12 · 792 阅读 · 0 评论 -
Linux------进程的创建和终结
进程的创建: Linux通过两个步骤创建新的进程:fork()和exec().其中fork可以创建当前进程(父进程)的一个副本,即子进程。父进程和子进程只有PID不同。在这之后,系统中有两个进程,执行同样的操作。父进程的内容将被复制,但是在Linux中运用了一种写时复写(copy on write)技术,使进程的创建更为高效。接下来exec将读取可执行文件载入地址空间中运行。这样一个进程就创建好原创 2014-08-04 21:18:32 · 1203 阅读 · 0 评论 -
模拟shell ( 进程函数:fork(),execvp(),wait() )
shell是一个管理进程和运行进程的程序,下面我们就通过模拟一个shell程序这个实例来更好地认识认识在Linux/Unix系统中,进程的创建和结束,以及父子进程之间的一些关系。接下来先贴上源代码的中命令的读取部分: numargs=0; while(numargs<MAXARGS){ printf("Arg[%d]?",numargs); if(fgets(argbuf,A原创 2014-09-11 21:28:18 · 8737 阅读 · 0 评论 -
模拟文件系统
先来将一下总的设计,然后再结合具体的函数进行详细的分析。 首先,创建一个大约100M的文件作为模拟的硬盘。硬盘的空间总共分为三个部分:超级块区,inode区和磁盘块区。其中超级块区就是一个struct结构,其中保存了inode区和磁盘块区的使用情况。inode区则由1024个inode块组成。一个inode块对应一个目录文件或者普通文件,其中保存了对应文件的文件类型,文件大小,占用原创 2015-04-13 20:13:03 · 10232 阅读 · 6 评论