漫谈UNIX、Linux、UNIX-Like

漫谈UNIX、Linux、UNIX-Like

使用了这么多年Redhat、Ubuntu等Linux、Windows、Solaris操作系统,你是否对UNIX、Unix-Like(类UNIX)还是不太清楚?我以前一直认为Unix-Like就等于Linux。其实,由UNIX派生出来而没有取得UNIX许可的操作系统都是Unix-Like。是的,UNIX必须要取得许可才能被冠以商标。

所以呢?几乎所有的开源操作系统都是类Unix,因为取得UNIX商标或者说获得UNIX许可是需要支付费用的。因为 UNIX 商标的使用权是受到商业授权的。UNIX 商标是由 The Open Group 组织掌管的,而 The Open Group 对于商标的使用往往会涉及商业授权费用。

这里提一个问题:FreeBSD是UNIX还是Linux?答案:都不是,它是类UNIX。当然广义上我们可以把它当UNIX看待。

当然,操作系统根据其设计目标、用途和特性进行不同的分类。最常见的分类方式:单用户操作系统(Single User)、多用户操作系统(Multi-User)、单任务操作系统(Single Tasking)、多任务操作系统(Multi-Tasking)、实时操作系统(Real-Time)、嵌入式操作系统(Embedded)、网络操作系统(Network OS)、分布式操作系统(Distributed OS)。也可以说是按照上面的维度进行划分;但是,这些分类方式并不是互斥的,一个操作系统可以同时属于多个分类。例如,一个多用户多任务操作系统可以同时具有分布式系统的特性。

我们常见的操作系统基本都属于多用户多任务操作系统,例如:

  1. UNIX 和 UNIX-like 操作系统:

    • UNIX 操作系统最早是为多用户多任务设计的,后来的 UNIX-like 系统(例如 Linux 和各种 BSD 变种)也继承了这一特性。它们支持多个用户同时登录,并能够同时运行多个任务和进程。
  2. Windows Server 系列:

    • Windows Server 是 Microsoft 公司推出的面向服务器环境的操作系统系列。它支持多用户多任务,可以在服务器环境中同时处理多个用户的请求和任务。
  3. macOS(基于 UNIX 的):

    • macOS 是 Apple 公司的操作系统,基于 UNIX。类似于 UNIX 系统,macOS 也支持多用户多任务,允许多个用户同时使用一台计算机。
  4. Linux 发行版:

    • Linux 是一个开源的 UNIX-like 操作系统内核,众多的 Linux 发行版(如 Ubuntu、Fedora、Debian 等)都继承了 UNIX 的多用户多任务特性。它们广泛用于服务器和个人计算机。

聊到这里貌似有点跑题,让我们回到UNIX、类UNIX这个话题。通过前面的讲述,其实我们已经有了一个模糊而不太准确的认识。请看下面一段讲述:

UNIX(由 AT&T Bell 实验室的 Ken Thompson、Dennis Ritchie 等人开发)是最早的类 Unix 操作系统,而后出现了许多 UNIX 标准的变种和衍生版本。

按我们的理解:先有UNIX,随着时间的推移,一些机构和个人开始开发基于 UNIX 思想的类似系统,这些系统通常被称为类 Unix 操作系统或 UNIX-like 操作系统。这些系统在设计上模仿了 UNIX,并且很多时候兼容 UNIX 标准。最终,许多类 Unix 操作系统开源,例如 Linux 和各种 BSD 变种,它们在设计上受到 UNIX 的启发。

为什么说 UNIX 是最早的类 Unix 操作系统?那是因为那时候的UNIX操作系统并没有形成标准(The Open Group 制定的 UNIX 标准),只是UNIX思想下的早期产物,和后来的系统在设计上模仿或受到 UNIX 影响的系统(后期类UNIX)一样,他们都不符合UNIX标准。

所以UNIX严格意义上不是操作系统,而是操作系统标准或商标。

UNIX商标和UNIX-like操作系统

  1. UNIX 商标:

    • "UNIX" 是最初由 AT&T Bell 实验室(现在是 Open Group 的一部分)开发的操作系统的商标。只有符合 Open Group 制定的一系列规范和标准的系统才能称为 "UNIX"。例如,AIX 和 HP-UX 符合这些标准,因此可以被称为 "UNIX"。
  2. UNIX-like 操作系统:

    • 由于 UNIX 系统的成功,其他开发者和组织开始设计和实现与 UNIX 相似的操作系统,以模仿 UNIX 的设计和接口。这些系统被称为 "UNIX-like" 或 "类 Unix",因为它们模仿了 UNIX 的外观和感觉,但并未正式获得 "UNIX" 商标。
  3. 历史发展:

    • 在 UNIX 的发展初期,各个大学和机构都基于 UNIX 源代码进行了修改和扩展,形成了不同的变种。这些变种在满足 UNIX 标准的同时也引入了自己的特性。例如,BSD(Berkeley Software Distribution)是一个最早的 UNIX 变种,而 AIX、HP-UX 和 Solaris 是 UNIX 原始版本的派生。
  4. 商业实现和 UNIX 许可:

    • AIX、HP-UX 和 Solaris 是商业实现的 UNIX,它们通过获得 UNIX 许可证,确保了与 UNIX 标准的兼容性。这使得它们可以被称为 "UNIX"。其他 UNIX-like 操作系统(如 Linux 和 BSD 变种)没有正式获得 UNIX 许可,因此通常被称为 "UNIX-like"。

UNIX 系统的主要版本和变种

  1. AT&T UNIX:

    • 原始的 UNIX 版本,由 AT&T Bell 实验室的 Ken Thompson 和 Dennis Ritchie 等人开发。它为后来的 UNIX 系统奠定了基础。
  2. BSD UNIX(Berkeley Software Distribution UNIX):

    • 由加州大学伯克利分校开发,引入了许多对 UNIX 进行了扩展和改进的特性。BSD 系统的一些版本包括 FreeBSD、OpenBSD、NetBSD 等。
  3. System V UNIX:

    • 由 AT&T 和 Sun Microsystems 开发,引入了一些新的特性和标准。System V 的一些版本包括 HP-UX(Hewlett Packard UniX)和 AIX(IBM Advanced Interactive eXecutive)等。
  4. Solaris:

    • 由 Sun Microsystems 开发的 UNIX 操作系统。Solaris 是 System V UNIX 的一个变种,后来被 Oracle 公司收购。
  5. AIX(Advanced Interactive eXecutive):

    • 由 IBM 开发,用于 IBM Power 系列服务器。AIX 是一种符合 UNIX 标准的操作系统。
  6. HP-UX(Hewlett Packard UniX):

    • 由惠普(现为惠普企业)开发,用于惠普的服务器和工作站。HP-UX 是 System V UNIX 的一个变种。
  7. IRIX:

    • 由 SGI(Silicon Graphics)开发,用于 SGI 的图形工作站和服务器。IRIX 为了支持图形和多媒体应用引入了许多特殊的功能。
  8. UnixWare:

    • 由 Novell 开发的 UNIX 操作系统。

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

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

相关文章

java实现回文数算法

判断一个数是否为回文数可以使用以下算法: 将数字转化为字符串;初始化左右两个指针,分别指向字符串的首尾;循环比较左右指针指向的字符,如果相等则继续比较,直到左右指针相遇或者发现不相等的字符为止&…

ES集群G1回收器,堆空间无法被回收问题

ES堆空间不足的问题,困扰了我有两年的时间。dump堆去分析,也未能分析出来,堆到底是被什么占用了。 我把堆空间给了31.9G,这是指针压缩生效的临界值,如果再大就指针压缩失效了。 痛苦的是,随着时间的增长。堆…

mysql复习笔记05(小滴课堂)

mysql的慢查询日志开启与问题定位 一张数据库数据很大的表。 查询一条数据,很快就查询出来了。 根据不同的条件,查到的数据相同,但是查询所花费的时间却是不同的。 使用命令查询慢查询日志是否开启,目前它是关闭着的。 开启日志。…

利用prometheus+grafana进行Linux主机监控

文章目录 一.架构说明与资源准备二.部署prometheus1.上传软件包2.解压软件包并移动到指定位置3.修改配置文件4.编写启动脚本5.启动prometheus服务 三.部署node-exporter1.上传和解压软件包2.设置systemctl启动3.启动服务 四.部署grafana1.安装和启动grafana2.设置prometheus数据…

Java研学-HTTP 协议

一 概述 1 概念和作用 概念:HTTP 是 HyperText Transfer Protocol (超文本传输协议)的简写,它是 TCP/IP 协议之上的一个应用层协议。简单理解就是 HTTP 协议底层是对 TCP/IP 协议的封装。   作用:用于规定浏览器和服务器之间数据传输的格式…

【源码解析】聊聊ReentrantReadWriteLock是如何实现的读写锁

为什么需要读写锁 在并发编程领域,有多线程进行提升整体性能,但是却引入了共享数据安全性问题。基本就是无锁编程下的单线程操作,有互斥同步锁操作,但是性能不高,并且同一时刻只有一个线程可以操作资源类。但是对于大…

[SWPUCTF 2021 新生赛]gift_F12

打开环境 题目有提示(F12),那就查看一下源代码 直接滑到最后 看提示猜测,flag就在源代码里了 ctrlf查找flag 最后得到flag,改一下形式就可以了

ORACLE总结

例1: 现在有 医嘱主表ORDER_MAIN(ID,ORDER_ID,ORDER_NAME) A表 和医嘱执行表ORDER_EXEC(ID,ORDER_ID,PLAN_TIME) B表 两个表是用ORDER_ID关联起来的,A表一个ORDER_ID对应一条数据,B表一个ORDER_ID对应多个字段,要求根据ORDER_…

网络技术基础与计算思维实验教程_2.4_跨交换机VLAN配置实验

实验内容 实验目的 实验原理 实验步骤 构建 在工作区放置交换机然后单击 选择config , 把交换机的默认名改为switch1 再放置两个交换机 再放置终端 放置三台与交换机1相连的终端 再放置三台与交换机3相连的终端 再放置两台与交换机2相连的终端 用直通线连接 然后用交叉线互联交…

java8流库之Stream.iterate

简介 java.util.stream.Stream 下共有两个 iterate iterate(T seed, final UnaryOperator<T> f)iterate(T seed, Predicate<? super T> hasNext, UnaryOperator<T> f) 该方法产生一个无限流&#xff0c;它的元素包含seed&#xff0c;在seed上调用f产生的…

Matlab论文插图绘制模板第131期—函数等高线图

在之前的文章中&#xff0c;分享了Matlab函数折线图的绘制模板&#xff1a; 函数三维折线图&#xff1a; 函数网格曲面图&#xff1a; 函数曲面图&#xff1a; 进一步&#xff0c;再来分享一下函数等高线图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数…

【Week-P2】CNN彩色图片分类-CIFAR10数据集

文章目录 一、环境配置二、准备数据三、搭建网络结构四、开始训练五、查看训练结果六、总结3.1 ⭐ torch.nn.Conv2d()详解3.2 ⭐ torch.nn.Linear()详解3.3 ⭐torch.nn.MaxPool2d()详解3.4 ⭐ 关于卷积层、池化层的计算4.2.1 optimizer.zero_grad()说明4.2.2 loss.backward()说…

MyBatis Plus使用遇到的问题

如果想使用Mapper的xxxById()方法&#xff0c;实体类的主键上面必须加上TableId注解&#xff0c;如果不加&#xff0c;会报错 2023-12-21 22:48:33.526 WARN 11212 --- [ main] c.b.m.core.injector.DefaultSqlInjector : class com.example.mybatisplusdemo.dom…

ubuntu18.04 64 位安装笔记——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

进入VirtuakBox官网&#xff0c;网址链接&#xff1a;Oracle VM VirtualBoxhttps://www.virtualbox.org/ 网页连接&#xff1a;Ubuntu Virtual Machine Images for VirtualBox and VMwarehttps://www.osboxes.org/ubuntu/ 将下发的ds_db01.sql数据库文件放置mysql中 12、编写S…

无约束优化问题求解笔记(2):最速下降法

目录 3. 最速下降法3.1 最速下降法的基本思想3.2 基于精确搜索的最速下降法3.3 基于精确搜索的最速下降法的程序实现3.4 基于精确搜索的最速下降法的缺点 Reference 3. 最速下降法 3.1 最速下降法的基本思想 最速下降法是典型的线搜索方法. 设 f f f 是 R n \mathbb{R}^n R…

vue2与vue3的区别

首先了解什么是vue3 Vue.js 3.0&#xff08;简称Vue 3&#xff09;是一个流行的JavaScript框架Vue.js的最新版本。Vue 3于2020年9月正式发布&#xff0c;带来了许多令人兴奋的新特性和改进。下面是Vue 3的一些主要特点&#xff1a; 更快的性能&#xff1a;Vue 3通过全新的响应…

【redis】redis系统实现发布订阅的标准模板

目录 简介参数配置代码模板 简介 Redis发布订阅功能是Redis的一种消息传递模式&#xff0c;允许多个客户端之间通过消息通道进行实时的消息传递。在发布订阅模式下&#xff0c;消息的发送者被称为发布者&#xff08;publisher&#xff09;&#xff0c;而接收消息的客户端被称为…

Easyexcel读取单/多sheet页

Easyexcel读取单/多sheet页 此文档会说明单个和多个的sheet页的读取方法&#xff0c;包括本人在使用过程中的踩坑点。 依赖不会的自行百度导入&#xff0c;话不多说&#xff0c;直接上干货。以下示例基于2.x&#xff0c;新版本基本类似 1、创建实体 实体是用来接收对应列的数据…

【QT】QGraphicsView和QGraphicsItem坐标转换

坐标转换 QGraphicsItem和QGraphicsView之间的坐标转换需要通过QGraphicsScene进行转换 QGraphicsView::mapToScene() - 视图 -> 场景QGraphicsView::mapFromScene() - 场景 -> 视图QGraphicsItem::mapToScene() - 图元 -> 场景QGraphicsItem::mapFromScene() - 场景 …

java连接oracle出现ORA-12505错误

问题 sqlplus可以连接;但java连接报错:ORA-12505 ORA-12505, TNS:listener does not currently know of SID given in connect descr 解析 原因: 数据库中实际使用的实例名并非与集群对外使用的相同&#xff0c;使用第三方构件或程序进行连接的时候&#xff0c;所给数据库运…