UNIX 系统概要

news2024/11/26 10:44:26

  • UNIX 家族
    • UNIX 家谱
    • 家族后起之秀 Linux
    • UNIX vs Linux
    • UNIX/Linux 应用领域
  • UNIX 操作系统
    • 诞生与发展
    • UNIX 操作系统概要
      • 内核
      • 常驻模块
      • shell
      • 虚拟计算机
      • 特性
  • 其他操作系统 Linux
    • Richard Stallman
    • GNU 项目
    • FSF 组织
    • GPL 协议
    • Linus Torvalds

UNIX 家族

有人说,这个世界上只有两种操作系统:

  • UNIX 和 类 UNIX 操作系统

  • 其他操作系统

因为 UNIX 是现代操作系统的开山鼻祖,是操作系统的发源地,windows 和 Linux 都参考了 UNIX。

UNIX 家谱

目前为止,UNIX 有两大流派:那就是 AT&T 发布的 UNIX 操作系统 System V 与美国加州大学伯克利分校发布的 UNIX 版 BSD(Berkeley Software Distribution)。

在这里插入图片描述

家族后起之秀 Linux

Linux 是最著名的 类 UNIX 系统,经历了时间的考验,风头正盛。

Linux 占据了原属于 UNIX 的市场份额,在操作系统发展历程中的地位不可否认。

下图是一些 Liunx 版本:

在这里插入图片描述

UNIX vs Linux

无论是要学 Linux 还是学 UNIX,二者都是 类 UNIX 系统,是同一家族。

【总结】

  • Linux 是 类 UNIX 系统,设计实现参考了 UNIX
  • Linux 和其他类 UNIX 系统一样,都 大体遵循 POSIX 等 UNIX 标准化规范
  • 类 UNIX 系统的 多数操作和命令都大同小异
  • 部分程序 甚至可以 不通过重新编译就可以在不同类 UNIX 系统上执行

UNIX/Linux 应用领域

  • Internet 服务器 OS 可以通过 Netcraft 网址,输入网址查看该服务器使用的 OS 类型。
  • 个人计算机 OS 如,Mac OS 是苹果公司为 Mac 系列 PC 开发的专属操作系统,基于 FreeBSD 系统(类 UNIX 系统)。此外,Red hat 桌面版,国内使用人数众多,学习资料丰富;ubuntu 界面友好,硬件支持全面,是最适合做桌面系统的 Linux。
  • 移动设备 OS 如 iOS,源自 Mac OS X,是类 UNIX 操作系统;android 使用了 Linux 内核,也是类 UNIX 操作系统。

UNIX 操作系统

诞生与发展

当时 AT&T 和 麻省理工学院 和 通用电信公司 合作了一个项目叫 Multics,但不幸的是失败了。

Thompson 为在小型机上玩游戏,找到 Ritchie 开发了一个操作系统 UNIX,借鉴了 Multics 的一些思想,如:

  • 分时设计思想 (把计算机的时间片分成若干小片,然后分给各个程序去运行,仿佛用户在独占计算机)。
  • 注重交互思想,认为用户的交互式需求和设备效率一样重要。

在这里插入图片描述

UNIX 的 设计理念KISS,即 Keep It Simple, Stupid ! 简单易用。

UNIX 最初使用 汇编语言 开发,后来 C 语言诞生,二人又使用 C 语言重写 UNIX 源代码,UNIX 和 C 完美地结合成为一个统一体。

1983年,二人获得图灵奖,十年磨一剑。

急功近利的大多数商业软件,都在没有充分完善前就匆匆推向市场。UNIX 很幸运,它发展得很慢,但每一步都很扎实。它的酝酿阶段从 1969 年到 1979 年持续了整整 10 年,UNIX 作为产品面对用户时,已被充分应用完善了。

贝尔实验室以较低价格向教育机构提供 UNIX,大学广泛开设 UNIX 课程,学生们将 UNIX 带入商业和工业领域,UNIX 以 源代码 形式发行,形成了 两个重要流派

  • UNIX SYSTEM V
  • Berkeley UNIX

20世纪80年代 UNIX 版本的剧增导致各版本之间差别的扩大,所以有必要对 UNIX 进行 标准化,即对每种实现必须定义的各种限制进行说明。

两个重要的 UNIX 标准 如下:

  • 系统 V 接口定义 SVID(AT&T)
  • 可移植操作系统接口 POSIX(IEEE,ISO)

UNIX 操作系统概要

在这里插入图片描述
UNIX 操作系统按 分层模型 实现。

内核

在这里插入图片描述

  • 内核是 上层应用 连接 底层硬件 的桥梁。
  • 可以把内核理解为基本操作系统,直接控制硬件,如访问文件(硬盘)。
  • 系统工具、UNIX 命令 不属于 内核

常驻模块

在这里插入图片描述

  • 常驻模块用来 执行用户的请求(接近底层)。
  • 应用程序 通过 系统调用 访问常驻模块,如 I/O 控制、进程创建/中止服务、文件访问。

shell

在这里插入图片描述

在这里插入图片描述

  • shell 是 命令解释程序,是工具层。
  • shell 是 UNIX 的 用户接口,是 UNIX 系统软件的组成部分,含命令、工具。
  • shell 向用户和应用程序提供各种服务(给用户的)。

虚拟计算机

在这里插入图片描述

  • 虚拟计算机 不属于 UNIX 的系统组件
  • UNIX 是多用户操作系统,是虚拟计算机的集合,这些虚拟计算机 共享 CPU 及其他硬件资源

特性

可移植性:

在这里插入图片描述

多任务性、分级文件系统:

在这里插入图片描述

与设备独立的输入输出操作:

在这里插入图片描述

用户界面 shell:

在这里插入图片描述

系统工具与系统服务:

在这里插入图片描述

其他操作系统 Linux

在这里插入图片描述

Richard Stallman

Richard Stallman 是 MIT 的 AI 实验室的一个研究员,他收到了一个 UNIX 的版本,但是随着时间的推移,UNIX 逐渐不是开源的发行了。

他收到的不开源的版本让他很不开心,他认为一个软件要获得使用软件和获得源代码的自由,所以他认为 UNIX 已经背离了它的初衷,所以他要 再开发一个开源的 UNIX

他启动了 GNU 项目,创建了 FSF 组织,提出了 Copyleft 理念,制定了 GPL 协议,发起了开源运动。

GNU 项目

在这里插入图片描述

GNU 的吉祥物是一只羊。

在这里插入图片描述

在这里插入图片描述

FSF 组织

在这里插入图片描述

GPL 协议

在这里插入图片描述

在这里插入图片描述

GNU 开发的工具都在 GPL 下发行

GPL 确保任何使用自由软件创建的新产品,必须在 GPL 协议下发行;以自由软件为基础,修改后重新发行,也必须公开源代码。

Linus Torvalds

Linus Torvalds 搞定了 kernel

他当年是赫尔辛基大学计算机二年级学生,他也希望开发一个自由(开放源代码)的 UNIX,他在 1991 年发布第一版内核,且在 GPL 协议下发布。由于参与开源运动,Linux 内核更新速度极快。

Linus 和 UNIX 的简写就是 Linux,Linux 就是这样来的。Linux 的吉祥物是一只企鹅 tux。

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/844702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

优维低代码实践:对接数据

优维低代码技术专栏,是一个全新的、技术为主的专栏,由优维技术委员会成员执笔,基于优维7年低代码技术研发及运维成果,主要介绍低代码相关的技术原理及架构逻辑,目的是给广大运维人提供一个技术交流与学习的平台。 优维…

CS 144 Lab Five -- the network interface

CS 144 Lab Five -- the network interface TCP报文的数据传输方式地址解析协议 ARPARP攻击科普 Network Interface 具体实现测试tcp_ip_ethernet.ccTCPOverIPv4OverEthernetAdapterTCPOverIPv4OverEthernetSpongeSocket通信过程 对应课程视频: 【计算机网络】 斯坦福大学CS144…

Gradle Run with --stacktrace option to get the stack trace

IDEA中使用Gradle的时候遇到以下异常: * Try:Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. 解决办法: IDEA中File-Settings-Build&#…

比特鹏哥2-数据类型和变量【自用笔记】

比特鹏哥2-数据类型和变量【自用笔记】 1.数据类型介绍字符,整型,浮点型,布尔类型 2.signed 和unsigned3.数据类型的取值范围sizeof 展示字节大小--- 计算机中单位:字节 4.变量 常量4.1 变量创建变量(数据类型 变量名&…

awk基础知识和案例

文章目录 awk1 awk用法入门1.1 BEGIN和END语句块1.2 awk语法1.2.1 常用命令选项1.2.2 awk变量内置变量自定义变量 1.3 printf命令1.3.1 格式1.3.2 演示 1.4 操作符 2 awk高阶用法2.1 awk控制语句(if-else判断)2.2 awk控制语句(while循环)2.3 awk控制语句(do-while循环)2.4 awk控…

PingCAP 入选 Gartner 《Hype Cycle for Data Management 2023》代表厂商

日前,全球科技咨询与研究机构 Gartner 发布了《Hype Cycle for Data Management 2023》(2023 年数据管理技术成熟度曲线报告),PingCAP 凭借技术积累和产品优势,入选报告“用于数据管理的生成式人工智能”(G…

Win10下webots2020b闪退

下载安装完之后打开软件就会停留在这个界面几秒钟,什么都点不了,然后就会闪退回桌面 原因: webots安装路径中有中文 解决方案: 安装路径下的中文改为英文

真的不想知道录音转文字怎么弄才简单吗

哇哦!听说你想知道如何将录音转成文字?这简直是一个超酷的技能,让我来为你揭开这个神奇的面纱吧!想象一下,当你有一堆录音文件需要处理时,你不再需要费尽心思地一遍遍倾听、抄写。现在,你只需要…

【Go 基础篇】开发环境搭建与开发工具选择

介绍 Go语言,也被称为Golang,是由Google开发的一门开源编程语言。它以其简洁高效、并发性能优异而备受开发者青睐。若想开始Go语言的学习和开发,首先需要搭建适合的开发环境,并选择合适的开发工具来提高效率。本篇博客将详细介绍…

迭代器模式(C++)

定义 提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露(稳定)该对象的内部表示。 应用场景 在软件构建过程中,集合对象内部结构常常变化各异。但对于这些集合对象,我们希望在不暴露其内部结构的同时,可以让外部客户代…

kafka:java client使用总结塈seek() VS commitSync()的区别(三)

最近一段日子接触了kafka这个消息系统,主要为了我的开源中间件项目simplemq增加kafka支持(基于kafka-client【java】),如今总算完成,本文是对这个过程中对kafka消息系统的使用总结 线程安全 关于线程安全&#xff0c…

04-2_Qt 5.9 C++开发指南_SpinBox使用

文章目录 1. SpinBox简介2. SpinBox使用2.1 可视化UI设计2.2 widget.h2.3 widget.cpp 1. SpinBox简介 QSpinBox 用于整数的显示和输入,一般显示十进制数,也可以显示二进制、十六进制的数,而且可以在显示框中增加前缀或后缀。 QDoubleSpinBox…

无人车沿着指定线路自动驾驶与远程控制的实践应用

有了前面颜色识别跟踪的基础之后,我们就可以设定颜色路径,让无人车沿着指定线路做自动驾驶了,视频:PID控制无人车自动驾驶 有了前几章的知识铺垫,就比较简单了,也是属于颜色识别的一种应用,主要…

Vue + Cesium快速搭建,全流程(最新总结)

方式一&#xff1a;直接引入&#xff08;最简单&#xff09; 1.安装Cesium&#xff08;Vue搭建可以看我上一期的文章&#xff09; npm i cesium -save2.将node_modules\cesium\Build\Cesium文件夹拷贝到项目的public文件中 3.在public\index.html引入Cesium <!DOCTYPE h…

1466. 重新规划路线

题目描述&#xff1a; 主要思路&#xff1a; 将所有有向边抽象为无向边&#xff0c;将原有的方向权重置为1&#xff0c;其余置为0。 从0开始遍历所有城市&#xff0c;ans权重和。 class Solution { public:vector<vector<int>> a,w;int ans0;bool book[500010];v…

Node.js |(一)Node.js简介及计算机基础 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;关于Node.js&#x1f407;为什么要学Node.js&#x1f407;Node.js是什么&#x1f407;Node.js的作用&#x1f407;Node.js下载安装&#x1f407;命令行工具&#x1…

【Linux】多路转接 -- poll函数

文章目录 1. poll函数原型2. poll服务器3. poll的优点和确定 1. poll函数原型 poll函数和与我上一篇文章介绍的select函数一样&#xff0c;都是系统提供的多路转接接口&#xff0c;允许进程或线程在同一时间监听多个文件描述符。 本篇文章的一部分内容与上一篇介绍select函数…

Report Sharp-Shooter Lite Edition Crack

Report Sharp-Shooter Lite Edition Crack 报告Sharp Shooter™ 是为.NET Framework设计的&#xff0c;使用C#编写&#xff0c;并且只包含100%的托管代码。Report Sharp Shooter能够从多个数据源生成任何复杂的报告&#xff0c;并将生成的报告导出为大多数格式&#xff0c;包括…

UNIX 入门

与 UNIX 建立连接启动会话登录命令提示符修改口令退出系统 简单的 UNIX 命令命令格式ls 命令who 命令虚拟终端 tty伪终端 ptywho am i 命令 cal 命令help 命令man 命令 shell 概述shell 命令更换 shell临时更改 shell永久更改 shell 登录过程 与 UNIX 建立连接 启动会话 要启…

Java Set集合:HashSet和TreeSet类

Set 集合类似于一个罐子&#xff0c;程序可以依次把多个对象“丢进”Set 集合&#xff0c;而 Set 集合通常不能记住元素的添加顺序。也就是说 Set 集合中的对象不按特定的方式排序&#xff0c;只是简单地把对象加入集合。Set 集合中不能包含重复的对象&#xff0c;并且最多只允…