漫谈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)。也可以说是按照上面的维度进行划分;但是,这些分类方式并不是互斥的,一个操作系统可以同时属于多个分类。例如,一个多用户多任务操作系统可以同时具有分布式系统的特性。
我们常见的操作系统基本都属于多用户多任务操作系统,例如:
-
UNIX 和 UNIX-like 操作系统:
- UNIX 操作系统最早是为多用户多任务设计的,后来的 UNIX-like 系统(例如 Linux 和各种 BSD 变种)也继承了这一特性。它们支持多个用户同时登录,并能够同时运行多个任务和进程。
-
Windows Server 系列:
- Windows Server 是 Microsoft 公司推出的面向服务器环境的操作系统系列。它支持多用户多任务,可以在服务器环境中同时处理多个用户的请求和任务。
-
macOS(基于 UNIX 的):
- macOS 是 Apple 公司的操作系统,基于 UNIX。类似于 UNIX 系统,macOS 也支持多用户多任务,允许多个用户同时使用一台计算机。
-
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操作系统
-
UNIX 商标:
- "UNIX" 是最初由 AT&T Bell 实验室(现在是 Open Group 的一部分)开发的操作系统的商标。只有符合 Open Group 制定的一系列规范和标准的系统才能称为 "UNIX"。例如,AIX 和 HP-UX 符合这些标准,因此可以被称为 "UNIX"。
-
UNIX-like 操作系统:
- 由于 UNIX 系统的成功,其他开发者和组织开始设计和实现与 UNIX 相似的操作系统,以模仿 UNIX 的设计和接口。这些系统被称为 "UNIX-like" 或 "类 Unix",因为它们模仿了 UNIX 的外观和感觉,但并未正式获得 "UNIX" 商标。
-
历史发展:
- 在 UNIX 的发展初期,各个大学和机构都基于 UNIX 源代码进行了修改和扩展,形成了不同的变种。这些变种在满足 UNIX 标准的同时也引入了自己的特性。例如,BSD(Berkeley Software Distribution)是一个最早的 UNIX 变种,而 AIX、HP-UX 和 Solaris 是 UNIX 原始版本的派生。
-
商业实现和 UNIX 许可:
- AIX、HP-UX 和 Solaris 是商业实现的 UNIX,它们通过获得 UNIX 许可证,确保了与 UNIX 标准的兼容性。这使得它们可以被称为 "UNIX"。其他 UNIX-like 操作系统(如 Linux 和 BSD 变种)没有正式获得 UNIX 许可,因此通常被称为 "UNIX-like"。
UNIX 系统的主要版本和变种
-
AT&T UNIX:
- 原始的 UNIX 版本,由 AT&T Bell 实验室的 Ken Thompson 和 Dennis Ritchie 等人开发。它为后来的 UNIX 系统奠定了基础。
-
BSD UNIX(Berkeley Software Distribution UNIX):
- 由加州大学伯克利分校开发,引入了许多对 UNIX 进行了扩展和改进的特性。BSD 系统的一些版本包括 FreeBSD、OpenBSD、NetBSD 等。
-
System V UNIX:
- 由 AT&T 和 Sun Microsystems 开发,引入了一些新的特性和标准。System V 的一些版本包括 HP-UX(Hewlett Packard UniX)和 AIX(IBM Advanced Interactive eXecutive)等。
-
Solaris:
- 由 Sun Microsystems 开发的 UNIX 操作系统。Solaris 是 System V UNIX 的一个变种,后来被 Oracle 公司收购。
-
AIX(Advanced Interactive eXecutive):
- 由 IBM 开发,用于 IBM Power 系列服务器。AIX 是一种符合 UNIX 标准的操作系统。
-
HP-UX(Hewlett Packard UniX):
- 由惠普(现为惠普企业)开发,用于惠普的服务器和工作站。HP-UX 是 System V UNIX 的一个变种。
-
IRIX:
- 由 SGI(Silicon Graphics)开发,用于 SGI 的图形工作站和服务器。IRIX 为了支持图形和多媒体应用引入了许多特殊的功能。
-
UnixWare:
- 由 Novell 开发的 UNIX 操作系统。
相关文章:
漫谈UNIX、Linux、UNIX-Like
漫谈UNIX、Linux、UNIX-Like 使用了这么多年Redhat、Ubuntu等Linux、Windows、Solaris操作系统,你是否对UNIX、Unix-Like(类UNIX)还是不太清楚?我以前一直认为Unix-Like就等于Linux。其实,由UNIX派生出来而没有取得UN…...

Netty Review - Netty与Protostuff:打造高效的网络通信
文章目录 概念PrePomServer & ClientProtostuffUtil 解读测试小结 概念 Pre 每日一博 - Protobuf vs. Protostuff:性能、易用性和适用场景分析 Pom <dependency><groupId>com.dyuproject.protostuff</groupId><artifactId>protostuff-…...

在ClickHouse数据库中启用预测功能
在这篇博文中,我们将介绍如何将机器学习支持的预测功能与 ClickHouse 数据库集成。ClickHouse 是一个快速、开源、面向列的 SQL 数据库,对于数据分析和实时分析非常有用。该项目由 ClickHouse, Inc. 维护和支持。我们将探索它在需要数据准备以…...
目标检测YOLO实战应用案例100讲-树上果实识别与跟踪计数(续)
目录 3.2 损失函数优化 3.3 实验过程 3.3.1 果实图像采集 3.3.2 数据扩增...

Docker 文件和卷 权限拒绝
一 创作背景 再复制Docker影像文件或访问Docker容器内已安装卷上的文件时我们常常会遇到:“权限被拒绝”的错误,在此,您将了解到为什么会出现“权限被拒绝”的错误以及如何解决这个问题。 二 目的 在深入探讨 Docker 容器中的 Permission De…...

Appium Server 启动失败常见原因及解决办法
Error: listen EADDRINUSE: address already in use 0.0.0.0:4723 如下图: 错误原因:Appium 默认的4723端口被占用 解决办法: 出现该提示,有可能是 Appium Server 已启动,关闭已经启动的 Appium Server 即可。472…...

将Abp默认事件总线改造为分布式事件总线
文章目录 原理创建分布式事件总线实现自动订阅和事件转发 使用启动Redis服务配置传递Abp默认事件传递自定义事件 项目地址 原理 本地事件总线是通过Ioc容器来实现的。 IEventBus接口定义了事件总线的基本功能,如注册事件、取消注册事件、触发事件等。 Abp.Events…...

Jupyter Notebook修改默认工作目录
1、参考修改Jupyter Notebook的默认工作目录_jupyter文件路径-CSDN博客修改配置文件 2.在上述博客内容的基础上,这里不是删除【%USERPROFILE%】而是把这个地方替换为所要设置的工作目录路径, 3.【起始位置】也可以更改为所要设置的工作目录路径&#x…...

高校/企业如何去做数据挖掘呢?
随着近年来人工智能及大数据、云计算进入爆发时期,依托三者进行的数据分析、数据挖掘服务已逐渐成为各行业进行产业升级的载体,缓慢渗透进我们的工作和生活,成为新时代升级版的智能“大案牍术”。 那么对于多数企业来说,如何做数据…...

数据仓库-数据治理小厂实践
一、简介 数据治理贯穿数仓中数据的整个生命周期,从数据的产生、加载、清洗、计算,再到数据展示、应用,每个阶段都需要对数据进行治理,像有些比较大的企业都是有自己的数据治理平台或者会开发一些便捷的平台,对于没有平…...
【C++多线程编程】(五)之 线程生命周期管理join() 与 detach()
在C中,std::thread 类用于创建和管理线程。std::thread 提供了两种主要的方法来控制线程的生命周期:join 和 detach。 detach方式,启动的线程自主在后台运行,当前的代码继续往下执行,不等待新线程结束。join方式&…...
金融信贷场景的风险“要素”与主要“风险点”
目录 要素一:贷款对象 风险点1:为不具备主体资格或主体资格有瑕疵的借款人发放贷款 风险表现: 防控措施: 风险点2:向国家限控行业发放贷款 风险表现: 防控措施: 风险点3:受理不符合准入条件的客户申请 风险表现: 防控措施: 要素二:金额 风险点4:过渡授…...

ubuntu下docker安装,配置python运行环境
参考自: 1.最详细ubuntu安装docker教程 2.使用docker搭建python环境 首先假设已经安装了docker,卸载原来的docker 在命令行中运行: sudo apt-get updatesudo apt-get remove docker docker-engine docker.io containerd runc 安装docker依赖 apt-get…...
在Docker中安装kafka遇到问题记录
命令含义解答: 在docker安装kafka的时候,启动kafka的时候会执行下面语句: docker run -d --log-driver json-file --log-opt max-size100m --log-opt max-file2 --name kafka -p 9092:9092 -e KAFKA_BROKER_ID0 -e KAFKA_ZOOKEEPER_CONNEC…...

aws-waf-cdn 基于规则组的永黑解决方案
1. 新建waf 规则组 2. 为规则组添加规则 根据需求创建不同的规则 3. waf中附加规则组 (此时规则组所有规则都会附加到waf中,但是不会永黑) 此刻,可以选择测试下规则是否生效,测试前确认保护资源绑定无误 4. 创建堆…...

如何实现免费无限流量云同步笔记软件Obsidian?
目录 前言 如何实现免费无限流量云同步笔记软件Obsidian? 一、简介 软件特色演示: 二、使用免费群晖虚拟机搭建群晖Synology Drive服务,实现局域网同步 1 安装并设置Synology Drive套件 2 局域网内同步文件测试 三、内网穿透群晖Synol…...

GPTs | Actions应用案例
上篇文章说道,如何使用创建的GPTs通过API接口去获取外部的一些信息,然后把获取的外部信息返回给ChatGPT让它加工出来,回答你的问题,今天我们就来做一个通俗易懂的小案例,让大家来初步了解一下它的使用法! …...

Python Opencv实践 - 手势音量控制
本文基于前面的手部跟踪功能做一个手势音量控制功能,代码用到了前面手部跟踪封装的HandDetector.这篇文章在这里: Python Opencv实践 - 手部跟踪-CSDN博客文章浏览阅读626次,点赞11次,收藏7次。使用mediapipe库做手部的实时跟踪&…...
关于Selenium的网页对象单元测试的设计模式
写在前面:经过了实践总结一下经验,心得进行一个分享。 首先driver是可以单独抽出来的,变成一个driver函数放在driver.py。 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver…...

基于多反应堆的高并发服务器【C/C++/Reactor】(上)
(一)初始化服务器端用于监听的套接字 Server.h #pragma once // 初始化监听的套接字 int initListenFd(unsigned short port); Server.c int initListenFd(unsigned short port) {// 1.创建监听的fdint lfd socket(AF_INET, SOCK_STREAM, 0);if(lf…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

CentOS下的分布式内存计算Spark环境部署
一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架,相比 MapReduce 具有以下核心优势: 内存计算:数据可常驻内存,迭代计算性能提升 10-100 倍(文档段落:3-79…...
oracle与MySQL数据库之间数据同步的技术要点
Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异ÿ…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...
Android第十三次面试总结(四大 组件基础)
Activity生命周期和四大启动模式详解 一、Activity 生命周期 Activity 的生命周期由一系列回调方法组成,用于管理其创建、可见性、焦点和销毁过程。以下是核心方法及其调用时机: onCreate() 调用时机:Activity 首次创建时调用。…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版
7种色调职场工作汇报PPT,橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版:职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...

JVM虚拟机:内存结构、垃圾回收、性能优化
1、JVM虚拟机的简介 Java 虚拟机(Java Virtual Machine 简称:JVM)是运行所有 Java 程序的抽象计算机,是 Java 语言的运行环境,实现了 Java 程序的跨平台特性。JVM 屏蔽了与具体操作系统平台相关的信息,使得 Java 程序只需生成在 JVM 上运行的目标代码(字节码),就可以…...

七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...