Unix系统中字符终端的管理
与字符终端管理有关的文件1:/etc/ttydefs,定义波特率和终端设置
2:/usr/share/lib/terminfo,这是一个目录,字符终端设备和打印机的描述数据库
3:/etc/saf,服务访问工具(Service Access Facility)用于管理串口设备和其它服务的一个目录.
/etc/ttydefs
此文件包含SAF端口监控ttymon要用到的终端信息,主要是波特率和终端设置.
下面是我的/etc/ttydefs
# more /etc/ttydefs
# VERSION=1
460800:460800 hupcl:460800 hupcl::307200
307200:307200 hupcl:307200 hupcl::230400
230400:230400 hupcl:230400 hupcl::153600
153600:153600 hupcl:153600 hupcl::115200
115200:115200 hupcl:115200 hupcl::76800
..
..
文件的每一行都由分隔的五个部分组成,各部分含义如下:
1:2:3:4:5
1标号.通常是波特率
2初始设置.此部分应为命令stty能接受的格式.
3最终设置.此部分应为命令stty能接受的格式.
4自动探测波特率标志.如果为'A',则自动探测.
5下一个标号.
/usr/share/lib/terminfo
此目录是各种终端设备和打印机的描述数据库.在增加一个终端时,必须使用此目录下已有的一个文件的名字作为终端类型.
/usr/share/lib/terminfo下都是单个字符的子目录,每个子目录包含了以该子目录名为首字符的所有终端类型或打印机类型的描述文件
我的/usr/share/lib/terminfo/t
# ls /usr/share/lib/terminfo/t
总数 538
-rw-r--r-- 3 root bin 1173 2002 4月 7 t10
-rw-r--r-- 3 root bin 1173 2002 4月 7 t1061
-rw-r--r-- 1 root bin 1166 2002 4月 7 t1061f
-rw-r--r-- 2 root bin 1100 2002 4月 7 t16
-rw-r--r-- 2 root bin 988 2002 4月 7 t3700
-rw-r--r-- 1 root bin 1014 2002 4月 7 t3800
-rw-r--r-- 1 root bin 991 2002 4月 7 t500
-rw-r--r-- 1 root bin 1110 2002 4月 7 t88
-rw-r--r-- 1 root bin 1147 2002 4月 7 t88-nr
..
..
/etc/saf
此目录包含SAF(Service Access Facility)用于管理串口设备的一些配置和管理文件.
1:/etc/saf/_sysconfig,系统配置文件.
2:/etc/saf/_sactab.SAF命令sacadm使用的管理文件.
另外,/var/saf是SAF用于存放日志文件的目录
增加或修改一个字符终端
图形用admintool
字符服务访问工具SAF的结构
在SAF的分级结构中,最顶层的进程是服务访问控制器(sac,Service Access Controller),sac负责管理端口监控程序.具体结果描述如下:
1:init进程派生sac(SAF的主进程).
2:管理命令sac用于控制端口监控程序,例如增加或删除,启动或停止,重新启动等等.
3:端口监控程序用于监控串口设备或网络端口.使用端口监控管理命令可在适当的时候增加或删除,启动或停止服务.
SAF初始化过程如下:
1:系统启动进入第二级运行时启动SAF的主进程sac.
2:sac读入SAF的系统配置文件/etc/saf/_sysconfig,初始化环境.
3:sac读入管理文件/etc/saf/_sactab,启动其中指定的端口监控程序.sac为_sactab中指定的每个端口监控创建一个子进程.
4:每个端口监控程序读入其管理文件/etc/saf/pmtag/_pmtab,启动各端口上的服务.
端口监控类型
SAF支持两种端口监控类型
1:ttymon
ttymon是基于STREAMS的tty端口监控类型,用于监控端口,设置终端方式的波特率,引发登陆进程或其它服务.
在sac下运行的一个ttymon实例可以监控多个端口.ttymon的实例.用命令sacadm进行配置.ttymon实例被创建后,可用命令pmadm和ttyadm增加所需的ttymon信息.
2:listen
listen端口监控类型用于网络端口的监控.
listen的实例用命令sacadm配置,用命令pmadm加入所需信息
字符终端管理中使用ttymon端口监控类型
终端的初始化过程
ttymon的实例被创建时按下列过程监控端口:
1:首先初始化没有端口的速度和终端设置,初始化所用的参数为/etc/ttydefs文件中的适当值,/etc/ttydefs文件的内容时终端设置参数表.
2:在终端显示提示符并等待用户输入.如果用户按Break键提示波特率不合适,ttymon监控程序尝试下一个波特率重写提示符.
3:接收到有效输入后,ttymon监控程序就引发端口所需的服务.
4:服务终止后回到初始状态.
增加一个字符终端需要下面两步
1:用命令sacadm创建一个端口监控实例以监控串口A和B
.ttymon端口监控类型
端口监控标签(port monitor tag),如zsmon
ttymon版本号(用ttyadm得到)
2:用命令pmadm为ttymon端口监控实例提供登陆服务.
sacadm创建的端口监控标签zsmon
服务标签(service tag)
用于识别服务标识和是否要创建/var/abm/utmp记录的选项
嵌入命令ttyadm用于包含ttymon的具体信息(终端类型,波特率,设备和服务)
sacadm ------>zsmon port monitor
pmadm ------>ttya(service tag) tty(service tag)
ttyadm ------>/dev/term/a (terminal) /dev/term/b (modem)