Unix高级编程:进程关系与登录shell详解
需积分: 0 99 浏览量
更新于2024-07-31
收藏 562KB PDF 举报
本章节主要探讨的是Unix环境高级编程中的"进程关系",特别是针对9.2终端登录部分。在Unix系统中,用户登录的过程是一个核心操作,它涉及到多个关键组件和交互。早期的Unix系统,如V7,用户通过R
S-232连接哑终端进行登录,无论是本地还是远程,登录都依赖于内核的终端设备驱动程序,如D
H-11和DZ-11。这些终端设备的数量限制了同时登录的最大人数。
系统管理者会维护一个"/etc/ttytabs"文件,记录每个终端设备及其相关的参数,如波特率等。启动时,内核创建进程ID1(init进程),它负责将系统带入多用户模式。init进程会遍历该文件,对每个允许登录的终端调用fork函数,生成子进程,然后执行getty程序。getty负责管理和控制终端,包括打开终端设备以便进行读写操作。
值得注意的是,图9-1中的实际用户ID和有效用户ID在getty进程启动时都是0,意味着它们具有超级用户权限。getty程序以空环境启动,这意味着它不会继承任何环境变量。当终端设备为调制解调器时,open函数可能在设备驱动程序层面被阻塞,直到用户完成拨号连接。
此外,本章还将深入讨论进程组的概念,这是Unix系统中用于管理一组相关进程的方式,使得父进程可以同时监控和协调子进程的行为。进程组在处理多任务、信号传递以及进程间的同步等方面发挥着重要作用。章节还会提及POSIX.1引入的对话期新概念,这可能是对进程交互的一种扩展或优化。
此外,虽然没有明确提及,但提到的信号处理也是这一章不可或缺的一部分,因为它们与进程间通信密切相关。如果读者对Unix信号不熟悉,可能需要参考第10章进行补充学习,因为信号在许多操作系统级交互中扮演着核心角色。
这一章深入剖析了Unix系统中的进程关系,包括终端登录流程、进程组管理、getty的作用以及信号的运用,这些都是理解Unix高级编程不可或缺的知识点。
331 浏览量
2013-04-19 上传
2009-07-30 上传
2011-08-18 上传
2024-11-07 上传
2024-11-07 上传
2024-11-07 上传
2024-11-07 上传
JsenLong
- 粉丝: 33
- 资源: 35
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析