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 相关框架事务开启方式
前言 对于框架而言,各式API接口少不了伴随着事务的场景,下面就列举常用框架的事务开启方法 一、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按需引入 说明:为了输入时候有提示,建…...

Python做一个绘图系统3:从文本文件导入数据并绘图
文章目录 导入数据文件对话框修改绘图逻辑源代码 Python绘图系统系列:将matplotlib嵌入到tkinter 简单的绘图系统 导入数据 单纯从作图的角度来说,更多情况是已经有了一组数据,然后需要将其绘制。这组数据可能是txt格式的,也可能…...
flutter开发实战-获取Widget的大小及位置
flutter开发实战-获取Widget的大小及位置 最近开发过程中需要获取Widget的大小及位置,这时候就需要使用到了GlobalKey了和WidgetsBinding.instance.addPostFrameCallback了 一、addPostFrameCallback 该函数的作用: flutter中的界面组件Widget每一帧…...

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

Qt5兼容使用之前Qt4接口 intersect接口
1. 问题 项目卡中遇到编译报错, 错误 C2039 “intersect”: 不是“QRect”的成员 。 2. 排查过程 排查到依赖的第三方代码,使用 intersect 接口, 跟踪排查到头文件中使用了***#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 /*********************************************************************说明:试着扩充这个程序的内容:(1)要求用户同时输…...
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插件: File--->Setting---->plugins,在输入框中输入scala,然后点击“Install”即可安装scala,需要稍微等待几分钟。 2 创建项目: File ---->new---->project-----Maven--->Next----输入名称(test…...

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

Android APK体积优化(瘦身)
1、基础知识: 1.1 apk结构 lib :存放so文件,对应不同的cpu架构 res :资源文件,layout、drawable等,经过aapt编译 assets :资源文件,不经过aapt编译 classes.dex :dx编译…...

python技术栈 之 单元测试中mock的使用
一、什么是mock? mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。 二、mock的作用 特别是开发过程中上下游未完成的工序导致当前无法测试,需要虚拟某些特定对象…...
python 提取冒号和逗号内的字符串
如果你想要从字符串中提取冒号和逗号之间的内容,你可以使用正则表达式来完成。以下是使用 Python 的re模块进行提取的示例: import retext 这是一个包含:冒号,逗号:的字符串# 使用正则表达式匹配冒号和逗号之间的内容 pattern r[:](.*?)[,] matches …...

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

使用VSCode开发Django指南
使用VSCode开发Django指南 一、概述 Django 是一个高级 Python 框架,专为快速、安全和可扩展的 Web 开发而设计。Django 包含对 URL 路由、页面模板和数据处理的丰富支持。 本文将创建一个简单的 Django 应用,其中包含三个使用通用基本模板的页面。在此…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

【分享】推荐一些办公小工具
1、PDF 在线转换 https://smallpdf.com/cn/pdf-tools 推荐理由:大部分的转换软件需要收费,要么功能不齐全,而开会员又用不了几次浪费钱,借用别人的又不安全。 这个网站它不需要登录或下载安装。而且提供的免费功能就能满足日常…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...