UNIX环境高级编程:进程关系与登录详解
需积分: 0 160 浏览量
更新于2024-08-02
收藏 561KB PDF 举报
"UNIX环境高级编程共32章"
在深入探讨UNIX环境高级编程的第9章之前,让我们先回顾一下前文提及的一些基础概念。进程是操作系统中的基本执行单元,每个进程都有一个父进程,而父进程可以等待并获取子进程的退出状态。此外,进程还可以组织成进程组,使得在某些操作中可以方便地处理一组相关的进程。信号是UNIX系统中进程间通信的重要机制,用于通知进程发生了特定事件。
第9章主要讨论的是进程之间的关系,特别是与POSIX.1标准引入的对话期(Session)概念。对话期是一种组织进程的方式,它包括一个会话领导进程和一组与之关联的进程,通常用于管理登录会话和控制终端。登录shell和从登录shell启动的进程构成了一个会话的一部分,这些进程的生命周期、交互方式和控制都与会话紧密相关。
在早期的UNIX系统中,如V7,用户通过本地或远程终端登录,登录过程通常涉及到终端设备驱动程序。当系统启动时,init进程(进程ID为1)被创建,并进入多用户模式。init会读取/etc/ttys文件,根据文件内容为每个可登录的终端设备创建一个新的子进程来执行getty程序。getty程序负责处理与用户的交互,如设置终端类型、波特率等,并准备接收用户的登录信息。
在图9-1所示的过程中,init及其生成的getty子进程都以root权限运行,拥有超级用户特权。getty打开终端设备,准备接收用户的登录输入。如果终端连接的是调制解调器,open函数可能会等待调制解调器的响应,如用户的拨号。
在这一章中,还会详细介绍如何处理终端登录过程中的信号,比如SIGHUP(挂断信号),当调制解调器挂断或者终端会话结束时,这个信号会被发送给会话领导进程。同时,还会涉及如何通过控制终端来管理和控制会话中的进程,包括进程组的领导权转移和终端的分离等。
了解这些内容对于开发涉及多进程交互、终端控制或登录脚本的UNIX应用程序至关重要。第10章关于信号的讨论也是理解进程间通信和系统响应行为的关键,如果你对UNIX信号不熟悉,建议先预览一下该章节的内容,以确保对第9章的深入理解。
2009-08-12 上传
2009-08-12 上传
2009-08-12 上传
2009-08-12 上传
2021-09-29 上传
2009-08-12 上传
2009-08-12 上传
rouchel
- 粉丝: 0
- 资源: 25
最新资源
- 开源通讯录备份系统项目,易于复刻与扩展
- 探索NX二次开发:UF_DRF_ask_id_symbol_geometry函数详解
- Vuex使用教程:详细资料包解析与实践
- 汉印A300蓝牙打印机安卓App开发教程与资源
- kkFileView 4.4.0-beta版:Windows下的解压缩文件预览器
- ChatGPT对战Bard:一场AI的深度测评与比较
- 稳定版MySQL连接Java的驱动包MySQL Connector/J 5.1.38发布
- Zabbix监控系统离线安装包下载指南
- JavaScript Promise代码解析与应用
- 基于JAVA和SQL的离散数学题库管理系统开发与应用
- 竞赛项目申报系统:SpringBoot与Vue.js结合毕业设计
- JAVA+SQL打造离散数学题库管理系统:源代码与文档全览
- C#代码实现装箱与转换的详细解析
- 利用ChatGPT深入了解行业的快速方法论
- C语言链表操作实战解析与代码示例
- 大学生选修选课系统设计与实现:源码及数据库架构