1、关于console与tty的区别
console是控制台,只有一个,tty为终端,可以有好多个,其中系统会指定一个tty作为控制台,控制台可以显示所有系统打印的信息。一般我们调试过程中使用的就是串口作为控制台。这些是在我们在使用的层面进行分析的。
在驱动框架层面分析,console和tty具有明显的不同,console和tty是两种框架设计。这中设计主要考虑的是内核空间的代码不应该直接利用用户空间接口访问某些资源。tty的接口是供用户空间使用的,而printk是内核空间的调用,所以不可以直接使用tty接口来进行访问tty设备,所以内核中单独拉出了一套接口,就是console框架。
console框架建立于tty框架之上,大部分实现与tty框架复用,console相当于为tty增加了一层包装,让tty的功能更强大。
研究完console的框架设计思路之后,再看console是如何实现这些功能的。应用程序打开console会打开console对应的tty设备,也就是说console就是tty只不过console还可以比tty多实现内核的printk。
2、tty到底是什么?
上图表示了早期的终