UNIX环境高级编程第九章

1.终端登陆:init使系统进入多用户状态。

/etc/ttys:包含了终端设备,一行有设备名和传递给getty程序的参数。

init从ttys文件读数据,对每一个可以登录的终端设备进行一次fork,得到的子程序进行exec getty程序进行终端开启初始化设置。

getty程序1.调用open2.添加文件描述符3.getty输出“login:”等用户输入用户名,getty结束。login调用crypt进行密码验证,与阴影口令文件中pw_passwd比较,如果失败,父进程再次fork调用getty等待login

getty:用来开启终端,进行终端初始化,设置终端。

2.进程组,是一个或者多个进程的集合。getpgrp(void) = getpgid(pid)得到进程组。

至少有一个组员,有一个或者0个组长,进程组长是进程ID=组ID的程序。进程组长可以创建终止组里面的组员)。

3.setpgid(pid_t pid, pid_t pgid)//加入一个现有的组,或者创建一个新进程组。

把pid进程的进程组设置为pgid。如果pid=pgid,或者pgid为0,pid上任成为组长进程组ID委pid;为了也能使用调用者的进程ID,如果pid为0,使用调用者的进程ID;只能设置自己和子进程的进程组ID,子进程调用了exec则不可以对子进程进行改变。为了防止父子进程次序不确定产生竞争条件,组员和组长都设置子进程的进程组ID

4.会话。会话是一个或多个进程组的集合。shell管道线把几个进程编成一组。

关于创建新会话,只能由非组长创建,不然会出错,可以由组长的子进程创建。创建之后,该会话成为会话首进程,创建了只有一个组员的新的会话组,并且该会话组没有控制终端。想获得新会话的会话首进程可以调用getsid函数

5控制终端:一个会话有一个控制终端,会话首进程是控制进程,有前台进程组一个,其他都是后台进程组,会话首进程也属于后台。

中断:DELETE、CTRL+C,退出:CTRL+\通知前台进程组;断网通知会话首进程。获得前台进程组tcgetpgrp函数

6.孤儿进程组:所有的子进程和父进程都不在一个会话。

时间: 2024-12-19 15:59:33

UNIX环境高级编程第九章的相关文章

自学:Unix环境高级编程 第一章 Unix基础知识

1.2 Unix体系结构 内核(kernel):控制计算机硬件资源,提供程序运行环境. 系统调用(system call):内核的接口. 公用函数库构建在系统调用接口之上. 应用程序既可使用公用函数库,也可使用系统调用 shell是一个特殊的应用程序,为运行其他应用程序提供了一个接口. 1.3 登录    1.登录名 系统在其口令文件(通常是/etc/passwd文件)中查看登录名. 例如:sar:x:205:105:Stephen Rago:/home/sar:/bin/ksh 口令文件中的登

【转】apue《UNIX环境高级编程第三版》第一章答案详解

原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此,我要感谢网易的一个工程师朋友和室友,没有他们,我不会开始真正的学习这本书,希望大家以后开始慢慢进步.废话少说,直接上课后习题了. UNIX高级编程第一章习题答案: 1.1在系统上验证,除根目录外,目录l和l l是不同的. 答:这个验证有很多方法可使用命令ls .cd.vim等,目录.指向当前目录,目录..指

《Unix环境高级编程》读书笔记 第7章-进程环境

1. main函数 int main( int argc, char *argv[] ); argc是命令行参数的数目,包括程序名在内 argv是指向参数的各个指针所构成的数组,即指针数组 当内核执行C程序时(使用exec函数),在调用main前先调用一个特殊的启动例程.可执行程序文件将此启动例程指定为程序的起始地址——这是由连接器设置的,而连接器则是由C编译器调用.启动例程从内核取得命令行参数和环境变量值,然后按上述方式调用main函数做好安排. 2. 进程终止 有8种方式使进程终止,其中5种

《Unix环境高级编程》读书笔记 第3章-文件I/O

1. 引言 Unix系统的大多数文件I/O只需用到5个函数:open.read.write.lseek以及close 本章描述的函数经常被称为不带缓冲的I/O.术语不带缓冲指的是在用户的进程中对其不会自动缓冲,每个read和write都调用内核中的一个系统调用.但是,所有磁盘I/O都要经过内核的块缓存区(也称为内核的缓冲区高速缓存).唯一例外的是对原始磁盘设备的I/O. 2. 文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用.文件描述符是一个非负整数,其变化范围是0~OPEN_MAX

UNIX环境高级编程学习笔记(第一章UNIX基础知识)

总所周知,UNIX环境高级编程是一本很经典的书,之前我粗略的看了一遍,感觉理解得不够深入. 听说写博客可以提高自己的水平,因此趁着这个机会我想把它重新看一遍,并把每一章的笔记写在博客里面. 我学习的时候使用的平台是Windows+VMware+debian,使用secureCRT来连接(可以实现多个终端连接). 因为第一章是本书大概的描述,所以第一章的我打算写得详细一点,而且书本的原话占的比例会比较多,重点的东西会用粗体显示出来. 1.1  引言 所有操作系统都为他们所运行的程序提供服务.典型的

OS X下UNIX环境高级编程(第三版)学习日志-第一章ChapterI,编译apue包与第一个例程

1.从网络上获取代码,地址如下apue最新官方下载地址 2.解压到本地 由于最新版本是第三版(3rd Edition),apue.3e,就是我们要的源代码 3.编译源代码 编译过程中笔者并未遇到任何问题,所以建议大家也下载最新版本的代码来学习,贴一下笔者的环境信息 Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple

Unix环境高级编程

Advanced Programming in the UNIX Environment Second Edition Unix 环境高级编程 第二版 目录: 第一章:UNIX基础知识 第二章:UNIX标准化及实现 第三章:文件I/O 第四章:文件和目录 第五章:标准I/O库 第六章:系统数据文件盒信息 第七章:进程环境 第八章:进程控制 第九章:进程关系 第十章:信号 第十一章:线程 第十二章:线程控制 第十三章:守护线程 第十四章:高级I/O 第十五章:进程间通信 第十六章:网络IPC:套接

(七) 一起学 Unix 环境高级编程(APUE) 之 进程关系 和 守护进程

. . . . . 目录 (一) 一起学 Unix 环境高级编程(APUE) 之 标准IO (二) 一起学 Unix 环境高级编程(APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程(APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程(APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程(APUE) 之 进程控制 (七) 一起学 Unix 环境高级编程(APUE) 之 进程关系

(六) 一起学 Unix 环境高级编程(APUE) 之 进程控制

. . . . . 目录 (一) 一起学 Unix 环境高级编程(APUE) 之 标准IO (二) 一起学 Unix 环境高级编程(APUE) 之 文件 IO (三) 一起学 Unix 环境高级编程(APUE) 之 文件和目录 (四) 一起学 Unix 环境高级编程(APUE) 之 系统数据文件和信息 (五) 一起学 Unix 环境高级编程(APUE) 之 进程环境 (六) 一起学 Unix 环境高级编程(APUE) 之 进程控制 上一篇博文中我们讨论了进程环境,相信大家对进程已经有了初步的认识