终端登陆
- Linux采用了管理文件方式,在/etc/inittab中包含了了配置信息,指定了init应该启动的终端设备。
- 而在Ubuntu发行中,,使用放在/etc/init的*.conf命名的配置文件中。
网络登陆
- Linux网络登陆与BSD基本相同,使用xinetd,等待大多数的网络连接。首先,init调用一个shell,使得其执行/etc/rc,由此启动守护进程xinetd,xinetd等待TCP/IP的链接,每次一个服务请求到达,执行一次fork,产生一个进程。
- etc/init文件夹中存放的是用于自启动的脚本文件。rc1~6存放的是系统初始化时,不同的启动等级的配置文件。
进程组
- 每个进程有一个进程ID以外,还属于一个进程组,每个进程组都有自己独立的ID号。
- 进程组组长的ID就是进程组的ID,组长可以创建一个进程组和进程,只要进程组中还有进程存在,进程组就存在,与组长是否存在无关。
- 子进程可以调用exec函数,获得独立,离开进程组的管理。
会话
- 会话是一个或者多个进程的集合,子进程创建会话会发生:1、该进程会变成会话的首进程。2、该进程成为新的进程组的组长进程。3、该进程将没有控制终端。
- 会话首进程ID会被视作会话的ID。
- 使用setsid创建新的会话。使用getsid得到会话ID。
控制终端
- 建立与控制终端链接的会话称为控制进程。
- 一个会话中的几个进程可以被称之为一个前台进程和多个后台进程。
- 有三个特殊字符可以控制终端驱动程序产生特殊的信号:
1、Delete或者Ctrl+C : 产生中断SIGINT。
2、Ctrl+\ :退出字符,产生SIGQUIT。
3、Ctrl+Z :挂起字符,产生SIGSTP。