当前位置: 首页 > news >正文

UNIX 系统概要

  • 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。

在这里插入图片描述

在这里插入图片描述

相关文章:

UNIX 系统概要

UNIX 家族UNIX 家谱家族后起之秀 LinuxUNIX vs LinuxUNIX/Linux 应用领域 UNIX 操作系统诞生与发展UNIX 操作系统概要内核常驻模块shell虚拟计算机特性 其他操作系统 LinuxRichard StallmanGNU 项目FSF 组织GPL 协议Linus Torvalds UNIX 家族 有人说,这个世界上只有…...

Unity 基础函数

Mathf: //1.π-PI print(Mathf.PI); //2.取绝对值-Abs print(Mathf.Abs(-10)); print(Mathf.Abs(-20)); print(Mathf.Abs(1)); //3.向上取整-Ce il To In t float f 1.3f; int i (int)f; …...

【学习】若依源码(前后端分离版)之 “ 上传图片功能实现”

大型纪录片:学习若依源码(前后端分离版)之 “ 上传图片功能实现” 前言前端部分后端部分结语 前言 图片上传也基本是一个项目的必备功能了,所以今天和大家分享一下我最近在使用若依前后端分离版本时,如何实现图片上传…...

vue3 excel 导出功能

1.安装 xlsx 库 npm install xlsx2.创建导出函数 src/utils/excelUtils.js import * as XLSX from xlsx;const exportToExcel (fileName, datas, sheetNames) > {// 创建工作簿const wb XLSX.utils.book_new()for (let i 0; i < datas.length; i) {let data datas…...

python 相关框架事务开启方式

前言 对于框架而言&#xff0c;各式API接口少不了伴随着事务的场景&#xff0c;下面就列举常用框架的事务开启方法 一、Django import traceback from django.db import transaction from django.contrib.auth.models import User try:with transaction.atomic(): # 在with…...

vue使用ElementUI

1.安装 npm i element-ui -S 2.引入 2.1完整引入 import Vue from vue; import ElementUI from element-ui; import element-ui/lib/theme-chalk/index.css; import App from ./App.vue;Vue.use(ElementUI); 2.2按需引入 说明&#xff1a;为了输入时候有提示&#xff0c;建…...

Python做一个绘图系统3:从文本文件导入数据并绘图

文章目录 导入数据文件对话框修改绘图逻辑源代码 Python绘图系统系列&#xff1a;将matplotlib嵌入到tkinter 简单的绘图系统 导入数据 单纯从作图的角度来说&#xff0c;更多情况是已经有了一组数据&#xff0c;然后需要将其绘制。这组数据可能是txt格式的&#xff0c;也可能…...

flutter开发实战-获取Widget的大小及位置

flutter开发实战-获取Widget的大小及位置 最近开发过程中需要获取Widget的大小及位置&#xff0c;这时候就需要使用到了GlobalKey了和WidgetsBinding.instance.addPostFrameCallback了 一、addPostFrameCallback 该函数的作用&#xff1a; flutter中的界面组件Widget每一帧…...

软件测试工程师面试如何描述自动化测试是怎么实现的?

软件测试工程师面试的时候&#xff0c;但凡简历中有透露一点点自己会自动化测试的技能点的描述&#xff0c;都会被面试官问&#xff0c;那你结合你的测试项目说说自动化测试是怎么实现的&#xff1f;一到这里&#xff0c;很多网友&#xff0c;包括我的学生&#xff0c;也都一脸…...

Qt5兼容使用之前Qt4接口 intersect接口

1. 问题 项目卡中遇到编译报错&#xff0c; 错误 C2039 “intersect”: 不是“QRect”的成员 。 2. 排查过程 排查到依赖的第三方代码&#xff0c;使用 intersect 接口&#xff0c; 跟踪排查到头文件中使用了***#if QT_DEPRECATED_SINCE(5, 0)*** #if QT_DEPRECATED_SINCE…...

【云原生】Kubernetes节点亲和性分配 Pod

目录 1 给节点添加标签 2 根据选择节点标签指派 pod 到指定节点[nodeSelector] 3 根据节点名称指派 pod 到指定节点[nodeName] 4 根据 亲和性和反亲和性 指派 pod 到指定节点 5 节点亲和性权重 6 pod 间亲和性和反亲和性及权重 7 污点和容忍度 8 Pod 拓扑分布约束 官方…...

【Essential C++课后练习】纯代码(更新中)

文章目录 第一章 C编程基础1.41.51.61.71.8 第二章 面向过程的编程风格2.12.22.32.42.52.6 第一章 C编程基础 1.4 /*********************************************************************说明:试着扩充这个程序的内容&#xff1a;&#xff08;1&#xff09;要求用户同时输…...

C#仿热血江湖GClass

目录 1 C#仿热血江湖GClass 1.1 GClass32 1.2 method_4 1.3 smethod_0 C#仿热血江湖GClass public class GClass32 { private byte[] byte_0;...

[SQL智慧航行者] - 用户购买商品推荐

话不多说, 先看数据表信息. 数据表信息: employee 表, 包含所有员工信息, 每个员工有其对应的 id, salary 和 departmentid. --------------------------------- | id | name | salary | departmentid | --------------------------------- | 1 | Joe | 70000 | 1 …...

Idea配置Scala开发环境

1.首先安装scala插件&#xff1a; File--->Setting---->plugins,在输入框中输入scala&#xff0c;然后点击“Install”即可安装scala&#xff0c;需要稍微等待几分钟。 2 创建项目&#xff1a; File ---->new---->project-----Maven--->Next----输入名称(test…...

LT8711UXD 是一款高性能双通道 Type-C/DP1.4 至 HDMI2.0 转换器

LT8711UXD 1.描述 LT8711UXD是一款高性能的双车道TypeC/DP1.4到HDMI2.0转换器&#xff0c;设计用于将USB Type-C源或DP1.4源连接到HDMI2.0接收器。LT8711UXD集成了一个DP1.4兼容的接收机&#xff0c;和一个HDMI2.0兼容的发射机。此外&#xff0c;还包括两个CC控制器&#xff0…...

Android APK体积优化(瘦身)

1、基础知识&#xff1a; 1.1 apk结构 lib &#xff1a;存放so文件&#xff0c;对应不同的cpu架构 res &#xff1a;资源文件&#xff0c;layout、drawable等&#xff0c;经过aapt编译 assets &#xff1a;资源文件&#xff0c;不经过aapt编译 classes.dex &#xff1a;dx编译…...

python技术栈 之 单元测试中mock的使用

一、什么是mock&#xff1f; mock测试就是在测试过程中&#xff0c;对于某些不容易构造或者不容易获取的对象&#xff0c;用一个虚拟的对象来创建以便测试的测试方法。 二、mock的作用 特别是开发过程中上下游未完成的工序导致当前无法测试&#xff0c;需要虚拟某些特定对象…...

python 提取冒号和逗号内的字符串

如果你想要从字符串中提取冒号和逗号之间的内容&#xff0c;你可以使用正则表达式来完成。以下是使用 Python 的re模块进行提取的示例&#xff1a; import retext 这是一个包含:冒号,逗号:的字符串# 使用正则表达式匹配冒号和逗号之间的内容 pattern r[:](.*?)[,] matches …...

CentOS安装Postgresql

PG基本安装步骤 安装postgresql&#xff1a; sudo yum install postgresql-server初始化数据库&#xff1a;安装完毕后&#xff0c;需要初始化数据库并创建初始用户&#xff1a; sudo postgresql-setup initdb启动和停止服务&#xff1a; sudo systemctl start postgresql sudo…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见&#xff0c;必须要保持数据不可变&#xff0c;管理员都无法修改和留痕的要求。比如医疗的电子病历中&#xff0c;影像检查检验结果不可篡改行的&#xff0c;药品追溯过程中数据只可插入无法删除的特性需求&#xff1b;登录日志、修改日志…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

HBuilderX安装(uni-app和小程序开发)

下载HBuilderX 访问官方网站&#xff1a;https://www.dcloud.io/hbuilderx.html 根据您的操作系统选择合适版本&#xff1a; Windows版&#xff08;推荐下载标准版&#xff09; Windows系统安装步骤 运行安装程序&#xff1a; 双击下载的.exe安装文件 如果出现安全提示&…...

【git】把本地更改提交远程新分支feature_g

创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用&#xff0c;而无需手动一个个创建和运行容器。 Compose文件是一个文本文件&#xff0c;通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

初学 pytest 记录

安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机&#xff0c;因为在使用过程中发现 Airsim 对外部监控相机的描述模糊&#xff0c;而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置&#xff0c;最后在源码示例中找到了&#xff0c;所以感…...