漫谈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…...
腾讯云debian服务器的连接与初始化
目录 1. 远程连接2. 软件下载3. 设置开机自启动 1. 远程连接 腾讯云给的服务器在安装好系统之后,只需要在防火墙里面添加一个白名单(ip 或者域名)就能访问了。 浏览器打开https://www.ipip.net/,在左下角找到自己所用的WIFI的公…...
医保购药小程序:智能合约引领医疗数字革新
在医疗领域,医保购药小程序通过引入智能合约技术,为用户提供更为高效、安全的购药体验。本文将通过简单的智能合约代码示例,深入探讨医保购药小程序如何利用区块链技术中的智能合约,实现医保结算、购药监控等功能,为医…...
神经网络:深度学习优化方法
1.有哪些方法能提升CNN模型的泛化能力 采集更多数据:数据决定算法的上限。 优化数据分布:数据类别均衡。 选用合适的目标函数。 设计合适的网络结构。 数据增强。 权值正则化。 使用合适的优化器等。 2.BN层面试高频问题大汇总 BN层解决了什么问…...
Unity中Shader旋转矩阵(二维旋转矩阵)
文章目录 前言一、旋转矩阵的原理1、我们以原点为中心,旋转坐标轴θ度2、求 P~2x~:3、求P~2y~:4、最后得到 P~2~点 的点阵5、该点阵可以拆分为以下两个矩阵相乘的结果 二、在Shader中,使用该旋转矩阵实现围绕 z 轴旋转1、在属性面板定义 floa…...
前端面试题(计算机网络):options请求方法及使用场景
OPTIONS请求方法及使用场景 回答思路:什么是options请求-->options请求方法-->options使用场景什么是options请求?(浅入)扩展:常见的HTTP请求有什么?扩展:常见的HTTP请求的作用࿱…...
使用docker-compose管理docker服务
使用docker-compose管理docker服务 1,创建docker-compose.yml version: 3 services:javaapp:build: context: ./javaappdockerfile: Dockerfileports:- "9202:9202"- "19202:19202"goapp:build: context: ./goappdockerfile: Dockerfileports…...
Python_Tkinter和OpenCV模拟行星凌日传输光度测定
传输光度测定 在天文学中,当相对较小的天体直接经过较大天体的圆盘和观察者之间时,就会发生凌日。 当小物体移过较大物体的表面时,较大物体会稍微变暗。 最著名的凌日是水星和金星对太阳的凌日。 借助当今的技术,天文学家可以在…...
【安全】使用auparse解析auditd审计日志
使用auparse解析auditd审计日志 1 审计日志特点 查看auditd.log的日志,审计日志的格式如下: typeSYSCALL msgaudit(1703148319.954:11680975): archc000003e syscall2 successyes exit5 a01102430 a10 a21b6 a324 items1 ppid7752 pid7761 auid0 uid0…...
flink watermark 实例分析
WATERMARK 定义了表的事件时间属性,其形式为: WATERMARK FOR rowtime_column_name AS watermark_strategy_expression rowtime_column_name 把一个现有的列定义为一个为表标记事件时间的属性。该列的类型必须为 TIMESTAMP(3)/TIMESTAMP_LTZ(3),且是 sche…...
系列十二(面试)、Java中的GC回收类型有哪些?
一、Java中的GC回收类型 1.1、概述 Java中的GC回收类型主要包含以下几种,即:UseSerialGC、UseParallelGC、UseConcMarkSweepGC、UseParNewGC、UseParallelOldGC、UseG1GC。 1.2、源码...
网站模板后台怎么做/营销咨询服务
10.3去看了穗港澳动漫展,08年广州难得的一次动漫展......比较近距离地看了下川みくに,气氛很好。贴个相册地址,有兴趣的可以去看下哇。[url]http://photo.163.com/photos/squareram/160820460/[/url]转载于:https://blog.51cto.com/zeroyang/…...
建昌县城乡规划建设局网站/怎么弄自己的网站
使用XML在SQL Server上创建计算列 在SQL Server数据库中,当你想使用一个数据,而这个数据不保存在表中,计算列很有用。例如,你有一张表,它包括列dollar amounts, wholesale prices和retail prices。你肯定不想在每次查询…...
做网站郑州汉狮/上海城市分站seo
Python3中有六种基本数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Set(集合) Dict(字典) 他们之前有什么区别?联系?直接上图:按照图示的分类,开始学习吧。(python3) Number(数字类型) Python3 支持 int、float、bool、complex(复数)…...
WordPress.com 托管/百度优化seo
A:一般来说,电脑音响多是有源音箱,其内部一定会存在放大器,所以噪音不可避免,有源音箱的噪音按来源大致可分为电磁干扰、机械噪声和热噪声等。电磁干扰主要可以分为电源变压器干扰和杂散电磁波干扰。一般来说ÿ…...
wordpress禁止必应访问/企业网站建设推广
HashMap 是一个散列表,它存储的内容是键值对(key-value)映射。 HashMap 实现了 Map 接口,根据键的 HashCode 值存储数据,具有很快的访问速度,最多允许一条记录的键为 null,不支持线程同步。 HashMap 是无序的,即不会记录插入的顺序。 HashMap 继承于AbstractMap,实现…...
做pc端网站报价/如何在百度上发布广告
1.根据php版本下载对应的swoole扩展版本进行编译安装,步骤安装官方手册进行安装即可2.创建一个异步服务器程序Server,只能用于php-cli环境,以thinkphp5为例复制public目录下的入口文件index.php到cli目录cli.php里4.application目录下创建cli…...