一起玩Linux
文章平均质量分 82
从一个初学者的角度,一层层剥开Linux的心
姚灯灯
programonkey
展开
-
Linux是怎样启动的
今天早上在上操作系统课的时候,老师有提到计算机从按下开关键到最后由操作系统完全接管的整个过程。不过讲课毕竟是十分抽象的,因为之前自己也看过这方面的内容,但是老是记不住,所以今天晚上就花了点时间,把《鸟哥的Linux私房菜》的相关部分又看了一遍。下面就把核心流程给过一遍吧! 我们都知道,操作系统对计算机的管理起到了决定性的作用。可是,操作系统在关机状态下存在磁盘中的,而运行又是在内原创 2014-10-21 20:32:23 · 870 阅读 · 0 评论 -
从一段代码看fork()函数及其引发的竞争
首先来看一段从《UNIX环境高级编程》中摘录的一段非常有意思的代码。借此我们再来谈谈fork()函数的一些问题。#include "apue.h"static void charatatime(char*);intmain(void){ pid_t pid; if((pid=fork())<0){ err_sys("fork error"); }else原创 2014-10-12 20:51:01 · 1190 阅读 · 0 评论 -
Linux------进程的创建和终结
进程的创建:Linux通过两个步骤创建新的进程:fork()和exec().其中fork可以创建当前进程(父进程)的一个副本,即子进程。父进程和子进程只有PID不同。在这之后,系统中有两个进程,执行同样的操作。父进程的内容将被复制,但是在Linux中运用了一种写时复写(copy on write)技术,使进程的创建更为高效。接下来exec将读取可执行文件载入地址空间中运行。这样一个进程就创建好原创 2014-08-04 21:18:32 · 1199 阅读 · 0 评论 -
Linux内核------进程的基本知识
进程:传统上,Linux操作系统下运行的应用程序,服务器和其他程序都称为进程。当然进程不仅仅表示一段处于执行期的可执行代码,还包括其他资源,例如打开的文件,挂起的信号和内核内部数据等。其实还有个概念叫,线程或者说轻量级进程,不过在Linux中线程和进程其实是类似的。可以把线程看做和其他进程共享某些数据和资源的进程。进程的表示:通常进程是由一个叫task_struct的结构表示的,或者叫原创 2014-08-01 20:34:12 · 789 阅读 · 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 · 8730 阅读 · 0 评论 -
Linux 文件系统初步
在Linux系统中,如果我们想要知道一个文件的具体信息,那么最简便的方法自然就是ls命令了。如下图所示:当在shell输入命令"ls -l old"时,在下方就会显示出关于文件old的一些信息.下面就从左到右逐步分析每部分输出所代表的具体含义。其中输出的第一部分包含十个字符,其中第一个字符用于表示文件的类型。那么我们就先来说说在UNIX/Linux系统中的文件类型好了。文件原创 2014-10-07 20:03:35 · 1054 阅读 · 0 评论