• 综述
终端分为硬件和软件终端硬件终端早就不用了硬件终端分类为 VT100 xterm.都是硬件.软件终端是模拟的硬件终端,可以模拟  VT100 或者 xterm后来我们就把 VT100 xterm 叫做协议了.VT100 xterm  是用来 传输字符 的 较好的协议,相对于 传输 图形界面的  X ,都是翘楚早期的 控制台和终端很早期,一台主机只有一个控制台.可以有多个终端.开机关机的日志,会输出到控制台来,不会输出到终端.后来,控制台和终端这种硬件由于时代原因,退伍了,就再也没有硬件的控制台和终端.从此以后,控制台和终端就是软件的了.注意,显示器不是控制台,也不是终端.目前我们用的键盘也不是控制器,也不是终端.硬件终端和控制台是特指的.控制台和终端的关系可以这么说,控制台是一种特殊的终端控制台可以显示开关机消息,但是终端不会显示.
-----
下面都是软件终端tty7开机时打印的终端也是软件模拟出来的,是模拟终端,同时也是 控制台
tty1-tty6开机前半部分 是没有打印信息的,因为那时候他们就不存在,后来被生成了.开始记录开机日志
shell 我们常说的 bash zsh fish sh dash fish 都是shell的具体实现图形界面终端每种桌面基本上都会默认使用一种不同的 图形界面终端,这些图形界面终端基于 libX, 后来 fork 了 bash这样的软件有 gnome-terminal konsole xterm rxvt kvt nxterm eterm远程上的终端开关机不会显示信息,其他和控制台没有差异虚拟终端tty7 tty1-6 shell 图形界面终端 远程上的终端 都是虚拟终端目前的虚拟终端不包括键盘和显示器,虽然是打印到了显示器上,虽然用键盘控制.注意:不用显示器也能查看输出,不用键盘也能控制主机硬件终端也不包括我们现在常用的键盘和显示器,硬件终端是那个时代特有的东西
  • 历史回溯
很早以前, 只有一个主机,只有一个类似键盘的东西,一个类似显示器的东西,这个类似键盘的东西可以当做控制台,被系统管理员用,这套显示和输入设备被称为 控制台然后大家都想用(并不是做系统管理员),用 ASR33电传打字机 连接到主机, 这个 ASR33电传打字机 就是 我们所谓的  实体终端,目前可以操作但不可以做一些改变设置的事情.因为不是控制台而这些实体终端有分类 VT100 xterm 上面讲的终端是纯硬件的VT100 xterm  是硬件后来 我们 想用 电脑 A 连接到 那个 主机 上, 然后就在 电脑A 上 做了个 软件B ,可以通过软件B 实现 之前的 (在实体终端实现的事情)然后 这个软件就被称为虚拟终端虚拟终端是软件的,且模拟了实体终端, 如果我们想让他模拟 VT100, 我们就做出来 模拟VT100 的软件
后来,我们做出来了 既能模拟 VT100 和 xterm 的软件那现在我们有虚拟终端,我们要连上那个主机,所以我们要 选择 模拟哪一种 实体终端?这个取决于 那个主机当前设置   TERM目前我们的主机也是支持各种 实体终端的, 所以 到底 主机 当前支持哪种终端,取决于 环境变量 TERM控制台开机关机的日志和记录,重要应用程序的日志,都会输出到控制台来。没见过 重要应用程序的日志 的输出啊对于linux来说,tty7 像是控制台,因为信息一开始都输出到屏幕上.tty1-tty6 是虚拟终端tty1-tty6 一开始是没有的,再启动的过程中生成的,tty7是一开始就在的可能日志文件也是一种终端?不清楚.远程上的 终端  不像是  控制台终端, 因为不能捕捉开机关机的日志和记录,但是 重要应用程序的日志也不见有
  • 另外
1/
xterm 是 硬件终端的一种分类在 linux 发行版中,有一个应用程序 也叫做 xterm,但 它是 图形界面终端 的一种他们只是重名,但不是一个概念.不要搞混了2/
伪终端有人讲伪终端是虚拟终端的一种分类,并说伪终端 是 由 ssh服务器   虚拟出来的 终端
  • 进一步深入
从进程树入手(pstree -p)
软件终端到最后都是bash 或者 dash 这样的东西软件终端客户端 ----> 软件终端服务器所以 我们要 到 linux 上获取终端,可能 客户端和服务器都在linux上,也可能服务器在linux,客户端不在linux.虚拟终端从进程树的角度看来,分为4种1/从 lightdm 进程 继承过来的一支 (tty7下 的 图形界面中 打开的终端)2/从 sshd 进程 继承过来的一支 (远程开终端)3/从 login 进程 继承过来的一支 (从 tty1-6 login)这一支又分为两种1/login 的儿子进程 (login 后获得的 终端)2/login 后 startx 后 在图形界面下开的 终端4/vnc 分支启动vncserver ,然后用vncclient 连接,然后 vncclient 得到一个桌面,在这个桌面里面开启一个图形界面终端这时候会起一个进程,但是这个进程不以vncserver 为根,而是以 1 进程 为根.另外 除了 图形界面终端 的 其他图形界面进程都源自于 ~/.vnc/xstartup 还可能有更多的分支,例如telnet ,虽然现在telnet 都不用了其实不管是 lightdm 还是 sshd 还是 login ,这三个东西都不是内核的组成部分.但是 tty的概念 是内核中的东西. 好奇怪
  • tty
我们如果想知道某个终端 为什么 是 /dev/tty1 , 或者为什么是 /dev/pts/1 ,就看tty 命令就行了.因为 结果是tty打印出来的dpkg -L `dpkg -l |grep utils |awk '{print $2}'| head -10 | tail -5| head -1| xargs echo`  |grep tty -9靠这个定位 tty 是哪个包里面的,哈哈哈,发现 是 coreutils
sudo apt-get source coreutils编译之后,边运行tty命令边分析tty的代码:里面就一个 ttyname 函数值得一看,关键是 这个函数还不在 包里面
$ ldd src/tty linux-vdso.so.1 =>  (0x00007ffd92baf000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007feba3e43000)/lib64/ld-linux-x86-64.so.2 (0x000055944f887000)
$ nm src/tty |grep ttynameU ttyname@@GLIBC_2.2.5然后我要分析GLIBC吗?呵呵呵
果然我又分析了 glibc-2.2.5 ,里面的 ttyname 函数 返回值 是NULL,而且这个函数是什么鬼,怎么可以长成这样子
char *
ttyname (fd)                                                                     int fd;
{                                                                                   __set_errno (ENOSYS);                                                             return NULL;
}于是,我就想编译一下,./configure 的时候 出了问题
*** These critical programs are missing or too old:gcc make
*** Check the INSTALL file for required versions.
我不懂怎么换编译链,目前没有换编译链的需求,就此作罢.改天再提.
  • 参考资料

你真的知道什么是终端吗?

终端 控制台 TTY shell 虚拟终端 图形界面终端相关推荐

  1. linux系统包括虚拟终端图形界面终端有,Linux默认具有多个虚拟终端

    广告 Apple iPad,AirPods Pro,Bose耳机,机械键盘网络虚拟终端,健身环等着您 (2)虚拟终端: 除了物理终端,系统还将为我们提供6个虚拟终端. 这些虚拟终端连接到物理终端,并通 ...

  2. linux系统包括虚拟终端图形界面终端有,Linux终端类型

    终端(Terminal)也称终端设备,是计算机网络中处于网络最外围的设备,主要用于用户信息的输入以及处理结果的输出等.在早期计算机系统中,由于计算机主机昂贵,因此一个主机(IBM大型计算机)一般会配置 ...

  3. linux系统包括虚拟终端图形界面终端有,Linux的终端类型

    一.了解终端 在早期的年代,主机不是很多,都是一系列的大型主机,简单来说就是用户很多,但主机很少,不可能做到人手一台,但可以在主机上连接一个分屏器,在分屏器上可以连接鼠标键盘以及显示器,这些东西是没有 ...

  4. 图形界面终端下打印内核调试信息

    (备份) 很多比较新的Linux系统中(如Fedora 16),如果要在图形界面的终端下调试一个内核模块,printk()函数的输出信息是在终端下显示不出来的,需要查看/var/log/message ...

  5. 当我在linux图形界面终端输入startx,我在干什么

    看了下面三个帖子,不明觉厉,,, [登录异常解决]Ubuntu输入正确的密码后重新返回到登陆界面 Ubuntu忘记密码解决密码 命令行界面输入startx命令怎么不能进入图形界面 说说我干的蠢事, 进 ...

  6. 在本地windows终端打开远程服务器的图形界面程序

    问题描述 在终端通过ssh远程连接服务器后,我们希望直接打开远程服务器的图形界面程序 解决方案 修改远程服务器的/etc/ssh/sshd_config文件 X11Forwarding yes #X1 ...

  7. GCP(Google Cloud Platform) Console Shell创建图形界面系统(Ubuntu)

    进入google console shell 先切换到 root用户 通过docker创建 命令:sudo docker run -itd -p 6080:6080 -e PASSWORD=1234 ...

  8. Linux操作系统学习笔记3【图形界面与命令行】

    文章目录: 本章讨论: 1.Linux图形化管理系统组成部分 2.什么是X Window系统 3.X Window组成 4.什么是KDE桌面 5.什么是GNOME桌面 6. Red Hat Linux ...

  9. linux命令行使用ppt,linux图形界面与命令行.ppt

    <linux图形界面与命令行.ppt>由会员分享,可在线阅读,更多相关<linux图形界面与命令行.ppt(43页珍藏版)>请在人人文库网上搜索. 1.第3章 图形界面与命令行 ...

最新文章

  1. 使用卷积神经网络预防疲劳驾驶事故
  2. 注意!今日起 GitHub 新建存储库的默认分支就不叫“master”了!
  3. oracle := 和=,oracle a:=100 和 b=:c 区别
  4. 万师傅使用云产品,上手简单、开箱即用、省去运维烦恼
  5. linux c 获取 多个硬盘序列号_veket系统中使用GParted进行硬盘分区
  6. java对人脸打马赛克,如何给视频中的人脸进行马赛克 视频人脸打马赛克软件|人脸跟踪马赛克...
  7. 2018.8.2课堂笔记
  8. ARM-LINUX平台下的文本文件打印机打印
  9. IOS测试——keychain_dumper工具的使用
  10. 重温张欣穗购书衷心与申霞艳,张鸿等名师座谈《千万与春住》二零一九年六月二十四日
  11. WIN10 禁用 credentital guard Device Guard或Credential Guard与Workstation不兼容
  12. isolinux.cfg配置文件的写法
  13. R语言并行计算 deviation of null beta diversity(beta多样性零偏差)
  14. Unity 按钮点击缩放
  15. Linux 驱动开发 四十四:platform 设备驱动实验(二)
  16. luogu P1710 地铁涨价
  17. 电脑端如何访问手机SD卡中的文件
  18. 【企业】财务思维之如何通过财报分析企业
  19. 宇宙的最初三分种(转)
  20. ubuntu20.04超简单的安装海康相机与海康sdk调试问题

热门文章

  1. 成事的百条铁律(41-60)
  2. git, svn------那一年, 我与软件配置管理职位擦肩而过(现在想来, 也算幸事)
  3. Windows Server 2003 R2 With Sp2 序列号
  4. “迟来的正义不是正义”,但它终究会来!
  5. 黄聪mysql_黄聪:Mysql主从配置,实现读写分离
  6. Python数学小实验——自然对数e的理解
  7. 机会成本:要学会放弃、懂得舍得
  8. 外国人申请签证和居留许可须知
  9. React Native app闪退 显示 “很抱歉, ‘xxx’ 无法运行”的解决方法
  10. SAP 科目类型为“初级成本和收入”时,录入会计凭证时不输入成本中心