百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 博客教程 > 正文

一文让你详细了解虚拟终端和控制台的区别

connygpt 2024-10-10 05:18 8 浏览

本篇主要介绍终端和控制台的区别,其次列出几种不同的终端类型(ttyXXX)

要明白这两者关系,还得从很久很久以前的计算机使用开始说起。

历史:

首先说一下终端(terminal):

最早的计算机价格很高,因此为了充分利用计算机资源,一般都是支持多用户同时登陆使用的。这样的话,一台电脑就需要连接很多键盘和显示器来提供给每个人使用。在以前专门有这种能直接连接到计算机上的设备(键盘和显示器),使用简单的通信电路进行连接(通常是串口),这个电路只是用来提供数据的传输和显示,没有处理数据的能力,只负责连接到计算机上登录。既然可以允许多个键盘和显示器同时连接到计算机上,所以当时的操作系统就已经是多用户多任务的了(为了充分利用价格昂贵的计算机资源)。这样的每一套连接的键盘和显示器能够通过串口连接到计算机的设备就叫做终端。

终端设备两个(右),计算机和控制台(左)

控制台(console)又是什么呢?

在各个领域都有控制台的存在比如:

调音台 飞机控制台

控制台从字面意思来看,就是一个直接用于控制设备的台面,台面上有很多按钮显示屏等。

在计算机领域也同样存在,把那套直接与计算机组装在一起的键盘和显示器就称作控制台。

请注意:它和终端的区别,终端是通过串口线(额外的物理连线)连接到计算机上的,而

控制台是计算机本身就有的设备,一个计算机只有一个控制台。在计算机启动的时候,所有的启动信息都会打印到控制台上,而不会显示到终端上。也就是说,控制台是计算机的基本组成设备。而终端是为了充分利用计算机多出来的附加设备。

在计算机操作系统中什么信息会打印到控制台而不在终端上呢?比如内核启动信息和运行日志,都是显示到控制台上,但不会显示到终端上。这是区分控制台和终端的重要依据。

现在:

随着计算机越来越便宜,目前都是个人笔记本(单独用户的),不再链接上真正意义上的硬件终端设备了。终端和控制台由很久以前的硬件概念,演化成了软件概念。

现在说的linux终端都是使用软件虚拟出来的终端(虚拟终端)。他用软件的方式模拟出硬件通信方式。比如Ubuntu的 ctrl + alt + f2 ~ f6. 是6个虚拟终端,就好比以前6个人共用一台计算机所使用的套键盘和显示屏一样。只不过这里是用软件模拟出来的。这也是为什么叫做虚拟终端(VT, Virtual Terminal的缩写)的原因。

终端(terminal): 在Ubuntu中按下 ctrl + alt + f2 ~ f6.

控制台(console): 在 Ubuntu中按下 ctrl + alt + f1 .

(ctrl + alt + f1): tty1 console (ctrl + alt + f2): tty2 terminal

做实验说明:

1、ctrl + alt + f1 ~ f6.

可以发现只有 f1 显示有系统启动时的打印信息,也就表明tty1 是控制台。

2、echo "hello world" > /dev/console

在linux中一切设备皆文件,包括控制台设备,它对应得文件是 /dev/console , 如上命令就是往控制台上打印 hello world。但是在Ubuntu中无论在tty1~6 中的那个终端执行都会显示到当前虚拟终端上。也就是说,此时linux把当前的终端当做控制台来看待了。这样看来,linux已经淡化了控制台和终端的区别。但是在其他类UNIX系统上,控制台和终端就会有很明显的区别,比如freeBSD系统。

(ctrl + alt + f1): tty0 console (ctrl + alt + f1): tty2 terminal如下图:

还有另外一些信息也会在控制台上显示,比如那个终端登录,系统启动日志等,全都显示

在这个真正的控制台上。在这里就明显的区分出了控制台和终端了,只不过他们都是现在用

软件模拟出来的,跟以前的硬件实现是一个意思。

好了明白了终端和控制台区别之后。

最后总结一下:很久以前需要共享计算机时,控制台和终端都是物理硬件加上他们的驱动和软件。现在不需要多人共享,但是仍然保留着用用软件模拟的控制台和终端设备文件现在的linux也在把控制台和终端的概念慢慢的淡化。对于普通用户,可以理解控制台和终端就是:可以用于输入命令并显示程序运行结果的窗口。不用严格区分。

终端设备类型(tty):Teletypes的缩写

tty也是一个UNIX命令,用来指出当前终端设备的名称。

终端是一种字符型设备,它有多种类型,通常用tty来简称各种类型的终端设备

1、串行端口终端(Serial Port Terminal) : /dev/ttySn

2、伪终端(Pseudo Terminal):/dev/pty/

3、控制终端: /dev/tty

4、控制台: /dev/ttyn, /dev/console

终端相关的一些Linux命令:

who/w :显示有哪些终端登录

who am i : 显示当前终端是哪一个

tty : 显示当前终端的设备文件

chvt : 切换虚拟终端 chvt 2 等同于快捷键 (ctrl + alt + f2) ,注意:在图形界面不行

last : 显示每个终端的登录时间和持续时间等信息

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

无偿分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!某鱼上买估计至少要好几十。

扫码进群领资料

相关推荐

3分钟让你的项目支持AI问答模块,完全开源!

hello,大家好,我是徐小夕。之前和大家分享了很多可视化,零代码和前端工程化的最佳实践,今天继续分享一下最近开源的Next-Admin的最新更新。最近对这个项目做了一些优化,并集成了大家比较关注...

干货|程序员的副业挂,12个平台分享

1、D2adminD2Admin是一个完全开源免费的企业中后台产品前端集成方案,使用最新的前端技术栈,小于60kb的本地首屏js加载,已经做好大部分项目前期准备工作,并且带有大量示例代码,助...

Github标星超200K,这10个可视化面板你知道几个

在Github上有很多开源免费的后台控制面板可以选择,但是哪些才是最好、最受欢迎的可视化控制面板呢?今天就和大家推荐Github上10个好看又流行的可视化面板:1.AdminLTEAdminLTE是...

开箱即用的炫酷中后台前端开源框架第二篇

#头条创作挑战赛#1、SoybeanAdmin(1)介绍:SoybeanAdmin是一个基于Vue3、Vite3、TypeScript、NaiveUI、Pinia和UnoCSS的清新优...

搭建React+AntDeign的开发环境和框架

搭建React+AntDeign的开发环境和框架随着前端技术的不断发展,React和AntDesign已经成为越来越多Web应用程序的首选开发框架。React是一个用于构建用户界面的JavaScrip...

基于.NET 5实现的开源通用权限管理平台

??大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!??今天小编推荐一款基于.NE...

StreamPark - 大数据流计算引擎

使用Docker完成StreamPark的部署??1.基于h2和docker-compose进行StreamPark部署wgethttps://raw.githubusercontent.com/a...

教你使用UmiJS框架开发React

1、什么是Umi.js?umi,中文可发音为乌米,是一个可插拔的企业级react应用框架。你可以将它简单地理解为一个专注性能的类next.js前端框架,并通过约定、自动生成和解析代码等方式来辅助...

简单在线流程图工具在用例设计中的运用

敏捷模式下,测试团队的用例逐渐简化以适应快速的发版节奏,大家很早就开始运用思维导图工具比如xmind来编写测试方法、测试点。如今不少已经不少利用开源的思维导图组件(如百度脑图...)来构建测试测试...

【开源分享】神奇的大数据实时平台框架,让Flink&Spark开发更简单

这是一个神奇的框架,让Flink|Spark开发更简单,一站式大数据实时平台!他就是StreamX!什么是StreamX大数据技术如今发展的如火如荼,已经呈现百花齐放欣欣向荣的景象,实时处理流域...

聊聊规则引擎的调研及实现全过程

摘要本期主要以规则引擎业务实现为例,陈述在陌生业务前如何进行业务深入、调研、技术选型、设计及实现全过程分析,如果你对规则引擎不感冒、也可以从中了解一些抽象实现过程。诉求从硬件采集到的数据提供的形式多种...

【开源推荐】Diboot 2.0.5 发布,自动化开发助理

一、前言Diboot2.0.5版本已于近日发布,在此次发布中,我们新增了file-starter组件,完善了iam-starter组件,对core核心进行了相关优化,让devtools也支持对IAM...

微软推出Copilot Actions,使用人工智能自动执行重复性任务

IT之家11月19日消息,微软在今天举办的Ignite大会上宣布了一系列新功能,旨在进一步提升Microsoft365Copilot的智能化水平。其中最引人注目的是Copilot...

Electron 使用Selenium和WebDriver

本节我们来学习如何在Electron下使用Selenium和WebDriver。SeleniumSelenium是ThoughtWorks提供的一个强大的基于浏览器的开源自动化测试工具...

Quick 'n Easy Web Builder 11.1.0设计和构建功能齐全的网页的工具

一个实用而有效的应用程序,能够让您轻松构建、创建和设计个人的HTML网站。Quick'nEasyWebBuilder是一款全面且轻巧的软件,为用户提供了一种简单的方式来创建、编辑...