|
兄弟我现在正在做VxWorks下面的一些小玩意的开发,虽然以前一直在这个系统下做开发,但那时都是做一些上层应用,由于公司平台封装完了操作系统的接口,并不关心底层如何实现.所以也没有顾及这些东西,现在要自己做平台,才发现自己什么都不懂.
对于TTY这个东西,现在我理解来就是一个输入输出之间的对数据的一个管理,根据不同的终端属性对输入数据进行格式化,转化为其它功能模块能够认识并解析的模块.在一般的交换机或者路由器系统中,通过串行线路终端,或者控制终端进行命令行输入输出均是如此.并且在这样的系统中,LOG/DEBUG等信息的输出,输入命令的回显以及历史查询等功能的实现.就通过TTY模块对数据的管理实现.
对于Linux来说(我看了相关文档,以及内核代码,但还是不太懂).对地串行线路终端,在串口初始化的时候,对TTY的读/写/open等操作就注册到Serial模块,就待数据传输的时候,调用了.而于Telnet也是如此,一旦该Telnet的TCP/IP链接建立成功,则由服务器上的守护进程创建TTY,也是注册了一系列的操作函数.不知道我这样理解是否是正确,但有一点我不太清楚,对于Telnet或者Sereal是什么时候通过什么调用打开一个TTY,在什么时候再向TTY模块的read_q写数据的呢,兄弟不才,一直没有弄清楚,还望各位大哥指教.
还有对于Telnet/Serial,他们是如何知道对方是一个什么样标准的终端设备,就是知道了以后,再设置TTY模块的终端属性吗?再个Telnet对通过该TTY的数据是不是直接透传给TTY模块,让TTY模块通过行线路规则进行处理呢?因为Telnet本身就可以做一些对输入原始数据的操作,比如说回车转换成换行,或者换行成回车还有擦除等等.
说了这么多,没有理解,全是自己的疑惑呢,还请各位大哥多多指教. |
|