网站建设话术分析,网站开发趋势,阿里云域名注册备案,石柱县建设局网站在大部分讲解 Linux 编程书籍的时候会发现没有单独的串口编程章节#xff0c;实际上串口编程已经被概括在了“终端”或者“终端IO”章节里面。在上一篇博客中对经常出现的几个容易混淆的概念进行简单描述#xff1a;tty#xff0c;串口#xff0c;控制台与驱动程序。后面会…在大部分讲解 Linux 编程书籍的时候会发现没有单独的串口编程章节实际上串口编程已经被概括在了“终端”或者“终端IO”章节里面。在上一篇博客中对经常出现的几个容易混淆的概念进行简单描述tty串口控制台与驱动程序。后面会在实际使用过程中对几种设备的原理与使用进行详解。
在系统下面通过执行 ls /dev 或者 cat /proc/tty/drivers 可以看到经常碰到的一些术语以及分类如下所示 对开发者而言比较熟悉的有 console 控制台、tty 终端、ttyS serial串口设备、pty 伪终端等。由于 pty 成对使用所以又细分为了主从两类。这些设备类对应的系统设备文件名参见第二列可以输入 ls /dev 进行查看。
需要理清这些概念的关系就需要追溯早起计算机的使用历史最初计算机成本高昂通常需要连接多套键盘显示器供多人使用因此就出现了这样一种专门连接计算机的设备它只有显示器和键盘外加简单处理电路。用户可以通过这套设备连接到计算机上通常是通过串口连接然后登录系统并对计算机进行操作。这样一台只有输入、显示器件并能连接到计算机的设备就称为终端。tty 设备的名称是从过去的电传打字机Teletype缩写而来也是最早出现的一种终端设备因此现在在 Linux 系统中就用 tty 来表示 “终端”。而 console 控制台pty 伪终端等可以理解为虚拟 tty。总之在 Unix 系统中 tty 就可以理解为连接到系统的物理或者虚拟终端。
“console”控制台用于用户和系统进行交互的设备与终端作用类似。该虚拟 tty 与普通终端相比多了一些功能如显示系统内核消息后台服务日志等。从硬件上看控制台与终端等都是具备输入显示功能的设备没有区别。实际上他们表达的意思相同。控制台与终端的区别体现在软件上在启动 Linux 内核前传入的命令行参数 console... 就是用来指定具体的控制台。控制台在 tty 驱动初始化之前就可以使用了最开始被用来显示内核消息。我们在计算机或者嵌入式系统中经常会看到 console ttySAC0、console ttyS1 等语句实际就是选取某个虚拟或者物理终端作为控制台与用户交互。
当 tty 驱动初始化结束用户程序就可以通过 tty 驱动的接口来操作各类终端设备包括控制台。而后面要介绍的应用程序操作接口也由此而来。 关于 Linux 串口编程的其他文章可以移步至以下链接 《Linux 串口编程一 一些背景》《Linux 串口编程二 深入了解 termios》《Linux 串口编程三 使用termios与API 进行串口程序开发》《Linux 串口编程四 串口设备程序开发》 如果有想法或者疑问可以给我邮件或者评论觉得有用就点赞吧~:-D