Linux(二)—— Unix&Linux 的基本概念

计算机 = 主机(host)+ 终端(terminal)

主机 = 内核 + 实用工具

  • 内核(kernel)

    • 当计算机启动时,计算机要经历一系列动作,这些动作构成了引导过程。引导过程的最后一个动作是启动一个非常复杂的程序,该程序就被称为内核(Kernel)
    • 内核的作用是控制计算机,提供基础服务,是操作系统的核心,主要分为单内核和微内核两种
      • 单内核(monolithic kernel):自身可以完成所有事情,大多数早期 Unix 使用单内核设计,现在流行的单内核为 Linux kernel
      • 微内核(micro kernel):只能完成最基本的任务,例如 Minix、macOS
  • 实用工具
    • 编辑器、编译器等等等
    • Shell:命令行解释器,包括了用来组合命令的流程控制结构。除了在交互式提示符下输入命令外,用户还可以编写脚本。大多数shell都有一套共同的语法(基于Bourne shell)。

终端 = 输入设备 + 输出设备

最初,终端(terminal)和控制台(Console)都不是个人电脑的概念,而是多人共用的小型、中型、大型计算机上的概念。在计算机早期时代,个人无法承担高昂的费用,多个人通过终端同时使用一台主机,而控制台是管理员管理系统时使用的机柜,一般会直接附着在主机旁边。

字符终端

字符终端 (Character Terminal) 也叫文本终端 (Text Terminal),是只能接收和显示文本信息的终端。

早期人们使用价格低廉的电传打字机(Teletypewriter,tty)作为字符终端,所有输入结果都在纸带上打孔,最早型号为 Teletype ASR33(Automatic Send-Receive),后来由于电传打字机的使用过于普遍,以至于 tty 和终端成为同义词,终端(terminal) = tty = 命令的输入输出环境

字符终端也分为 哑终端 (Dumb Terminal) 和所谓的 智能终端 (Intelligent Terminal),因为后者可以理解转义序列、定位光标和显示位置,比较聪明,而哑终端不行。

DEC 公司在 1978 年制造的VT100 终端,VT100 不仅是史上最流行的字符终端,更是成为了字符终端事实上的标准。

终端仿真器(Terminal Emulator)

模拟:Simulate,按照实现来实现,原理相同,行为相同
仿真:Emulate,保持外部行为,但内部原理已经改变

如今的终端,指的是使用软件都是对终端设备进行仿真,与主机进行交互的终端仿真器,在面对命令行 (CLI) 程序时,终端仿真器会「假装」成一个传统终端设备;而对于现代的图形接口,终端仿真器会「假装」成一个 GUI 程序。

一个终端模拟器的标准工作流程是这样的:

  • 捕获你的键盘输入;
  • 将输入发送给命令行程序(程序会认为这是从一个真正的终端设备输入的);
  • 拿到命令行程序的输出结果(STDOUT 以及 STDERR);
  • 调用图形接口(比如 X11),将输出结果渲染至显示器。

现代系统中, Linux 默认提供了 6 个虚拟控制台(virtual consoles)和一个图形界面来让用户登录,Unix 则提供了 8 个,它们是由操作系统内核直接提供的,而那些那些运行在图形界面上的终端模拟器则被叫做终端窗口 (Terminal Window)。

无论是字符终端还是图形终端的仿真,都对应着 Linux 上的 /dev/tty 设备,Unix&Linux 的多用户登陆就是通过不同的 /dev/tty 设备完成的,而设备的属性等信息都保存在其中。

CLI(Command Line Interface)类仿真设备有 VT100、VT220、Xterm等,使用infocmp | less 可以看到自己当前所仿真的终端设备型号。

而 infocmp 命令显示内容则基于 ncurses (free version of curses),存储着不同型号设备的配置信息,用于命令的执行

命令行界面 (CLI)、终端 (Terminal)、Shell、TTY,傻傻分不清楚?

Linux

The name “Linux” refers to any Unix system that uses the Linux kernel。

GNU/Linux 下的图形用户界面 GNOME 和 KDE,有时也被叫做「虚拟 shell」或「图形 shell」。

Linux 学习路径

暂缺

Linux 目录结构

FHS(英文:Filesystem Hierarchy Standard 中文:文件系统层次结构标准),多数 Linux 版本采用这种文件组织形式,FHS 定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。

Linux 目录结构
暂缺

Linux 目录类型
暂缺

Linux(二)—— Unix&Linux 的基本概念的更多相关文章

  1. Linux(二) - Unix&Linux 基本概念

    主机 = 内核 + 实用工具 内核(kernel) 当计算机启动时,计算机要经历一系列动作,这些动作构成了引导过程.引导过程的最后一个动作是启动一个非常复杂的程序,该程序就被称为内核(Kernel) ...

  2. Linux(一) - Unix&Linux 历史

    Unix Unix 的诞生 Unix的历史可以追溯到20世纪60年代中期,当时麻省理工学院,AT&T,贝尔实验室和通用电气公司联合开发了一种名为Multics的操作系统,Multics 中存在 ...

  3. Linux vs Unix - Linux与Unix到底有什么不同?

    来自:Linux迷链接:https://www.linuxmi.com/linux-vs-unix.html Linux和Unix这两个术语可以互换地用来指同一操作系统.这在很大程度上是由于他们惊人的 ...

  4. 【Linux】unix/Linux常用命令英文全称

    英文全称解释更容易理解 知其然,更要知其所以然 man: Manual 意思是手册,可以用这个命令查询其他命令的用法. pwd:Print working directory 显示当前工作路径. su ...

  5. linux入门--Linux和UNIX的关系及区别

    UNIX 与 Linux 之间的关系是一个很有意思的话题.在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞 ...

  6. 1.3 Linux和UNIX的关系及区别(详解版)

    UNIX 与 Linux 之间的关系是一个很有意思的话题.在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞 ...

  7. 故事 --- Linux和UNIX之间的那些爱恨与情仇

    Linux和UNIX具体有哪些关系及区别? UNIX 与 Linux 之间的关系是一个很有意思的话题.在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 ...

  8. 【Linux】 Linux编程规范&Linux 编程环境搭建

    一.通过Samba映射网络驱动器 菜单栏-计算机-映射网络驱动器 English 菜单栏-Home -Easy access-Map as drive 编辑代码使用 Windows 编译 运行程序在 ...

  9. 《Unix/Linux日志分析与流量监控》书稿完成

    <Unix/Linux日志分析与流量监控>书稿完成 近日,历时3年创作的75万字书稿已完成,本书紧紧围绕网络安全的主题,对各种Unix/Linux系统及网络服务日志进行了全面系统的讲解,从 ...

随机推荐

  1. 关于静态注册BroadcastReceiver接收不到广播的问题

    1.背景&解决方法 最近碰到一个需求,app监听特定的广播,接收到广播后启动自己再进行处理.需求很简单,静态注册就好,不过,在自测的时候遇到一个问题,app安装后没启动过的状态下,什么广播都收 ...

  2. SQL Server关于predicate、density、selectivity、cardinality名词浅析

      在SQL Server中,我们要看懂执行计划和统计信息,我们可能需要深刻理解一些关键词,例如密度(Density).选择性(Selectivity).谓词(predicate).基数(Cardin ...

  3. Shell中map的使用

    Shell中的map与array有很多的相似之处,array操作:https://www.cnblogs.com/qq931399960/p/10786111.html 一.在使用map时,需要先声明 ...

  4. hadoop 笔记(hive)

    //**********************************//安装配置1. 修改配置文件 1.1 在conf文件夹下 touch hive-site.xml <configurat ...

  5. Kafka 消费者相关配置

    消费者相关配置类为  org.apache.kafka.clients.consumer.ConsumerConfig 具有以下配置参数 1. GROUP_ID_CONFIG = "grou ...

  6. RocketMQ4.4.0新特性分享

    rocketmq1.架构 MQ历史 由数据结构队列发展而来 MQ使用场景 异步处理 解耦 削峰填谷 数据同步2.队列3.使用 生产 同步(sync) 默认重试2次总共3次 默认等待超时时间为3s 异步 ...

  7. 难以理解的AQS(上)

    在一篇博客中,我们看了下CopyOnWriteArrayList的源码,不是很难,里面用到了一个可重入的排他锁: ReentrantLock,这东西看上去和Synchronized差不多,但是和Syn ...

  8. 解决关于:Oracle数据库 插入数据中文乱码 显示问号???

    问题: oracle数据库,通过接口插入的中文数据乱码,中文变成了问号??? 解决方案: 计算机=>属性=>高级系统设置=>环境变量=>新建 变量名:NLS_LANG 值:SI ...

  9. Hadoop伪分布式集群搭建

    声明:作者原创,转载注明出处. 作者:帅气陈吃苹果 1.下载Hadoop压缩包 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop- ...

  10. Mac下安装多版本python

    1.安装Homebrew 将命令行复制至终端,进行安装. /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/H ...