什么是 Linux
什么是Linux
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
但是,事实上Linux只是GNU/Linux的内核部分,不过由于GNU的内核(详细可以参见GNU Hurd)迟迟无法推出,并且人们已经习惯将GNU/Linux简称为Linux。
Linux怎么来的
一个名叫Linus Torvalds的芬兰大学生想在他的Intel 80386上使用类似Unix的系统,最开始他使用了Minx这个类Unix的变种(因为Minix是微内核,而Unix当时主要为宏内核)。但是Minx当时对于80386 的支持是非常脆弱的,因此他决定要开发出一个全功能的、支持POSIX标准的、类Unix的操作系统内核,该系统吸收了BSD和System V的优点,同时摒弃了它们的缺点。
什么是Unix
UNIX也是一个操作系统,该操作系统是美国贝尔实验室的Ken.Thompson和Dennis Ritchie 于1969 年夏在DEC PDP-7 小型计算机上开发的一个分时操作系统。Ken Thompson 为了能在闲置不用的PDP-7 计算机上运行他非常喜欢的星际旅行(Space travel)游戏,于是在1969 年夏天乘他夫人回家乡加利福尼亚渡假期间,在一个月内开发出了UNIX 操作系统的原型。当时使用的是BCPL语言(基本组合编程语言),后经Dennis Ritchie 于1972 年用移植性很强的C语言进行了改写,使得UNIX 系统在大专院校得到了推广。现在所说的Unix一般指代的是Unix商标和符合该规范并得到授权的系统,现在还可以称为的Unix系统的有,IBM的AIX,Orcale的Solaris和Apple的MacOS X。
什么是GNU
GNU代表GNU not Unix
,GNU是自由软件之父Richard Stallman在1984年组织开发的一个完全基于自由软件的软件体系,与此相应的有一分通用公共许可证(General Public License,简称GPL)。Linux以及与他有关的大量软件是在GPL的推动下开发和发布的。该组织为GNU/Linux外围软件做出了巨大的贡献,例如说编译器GCC,常用的Bash等。
什么是POSIX标准
这个概念非常重要。POSIX(Portable Operating System Interface for Computing System)是由IEEE 和ISO/IEC 开发的一簇标准。 该标准是基于现有的UNIX实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。
为什么Linux得到了发展
在当时有Unix了和很多Unix的变种,为什么发展到今天,只有Linux得到了更广泛的发展呢?
版权之争的Unix
当时Unix的两个主流版本是AT&T的System V和加州伯克利分校开发的BSD。
和AT&T的System V分支不同,BSD由大学发布,主要是用于学术研究,希望可以开源和免费软件的形式发布。但是,4.3版本以及之前的BSD中都包括了AT&T的源代码,毫无疑问,这些源代码应该服从AT&T的License。因此Unix版权的拥有者和相关公司,为了这些代码和版权问题,打的不可开交,这大大的影响了Unix的两个发行版的开发和发展。
过于学术的Minx
MINIX 系统是由Andrew S. Tanenbaum(AST)开发的。因为AT&T的政策改变,在Version 7 Unix推出之后,发布新的使用许可协议,将UNIX源代码私有化,在大学中不再能使用UNIX源代码Andrew S. Tanenbaum为了能在课堂上教授学生操作系统运作的实务细节,决定在不使用任何AT&T的源代码前提下,自行开发与UNIX兼容的操作系统,以避免版权上的争议。他以小型UNIX(mini-UNIX)之意,将它称为MINIX。到1991 年时版本是1.5,到2017年Minx的版本是3.0。Minix在核心设计上采用微核心,即将操作系统分成微核心和其上的提供文件系统、存储器管理、驱动程序等服务的服务程序,但是正如人们后来所知的微内核过于复杂以及效率问题,在开发和实用上困难很多。
Linus的推广
Linus在互联网和GNU发展的初期,就很有远见的看到了互联网会推动软件的发展。充分的善用了人和(在comp.os.minix推广Linux,以及和Andrew的对喷,可见英文写作和嘴炮能力多重要),天时(Unix的版权之争,让BSD足足晚了好多年才被人们认知)和地利(GNU/Hurd难产,Linux又使用GPL,Linux和GNU一拍即合)。抓住了互联网和免费的的大潮。
什么是 Linux的更多相关文章
- Linux 驱动开发
linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...
- Linux 内核概述 - Linux Kernel
Linux 内核学习笔记整理. Unix unix 已有40历史,但计算机科学家仍认为其是现存操作系统中最大和最优秀的系统,它已成为一种传奇的存在,历经时间的考验却依然声名不坠. 1973 年,在用 ...
- 死磕内存篇 --- JAVA进程和linux内存间的大小关系
运行个JAVA 用sleep去hold住 package org.hjb.test; public class TestOnly { public static void main(String[] ...
- NodeJs在Linux下使用的各种问题
环境:ubuntu16.04 ubuntu中安装NodeJs 通过apt-get命令安装后发现只能使用nodejs,而没有node命令 如果想避免这种情况请看下面连接的这种安装方式: 拓展见:Linu ...
- [linux]阿里云主机的免登陆安全SSH配置与思考
公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- SQL Server on Linux 理由浅析
SQL Server on Linux 理由浅析 今天的爆炸性新闻<SQL Server on Linux>基本上在各大科技媒体上刷屏了 大家看到这个新闻都觉得非常震精,而美股,今天微软开 ...
- Microsoft Loves Linux
微软新任CEO纳德拉提出的“Microsoft Loves Linux”,并且微软宣布.NET框架的开源,近期Microsoft不但宣布了Linux平台的SQL Server,还宣布了Microsof ...
- Linux 江湖系列阶段性总结
引言 我使用 Linux 已经有很多年了,最开始接触 Linux 的时候是从 RedHat 9(没有 Enterprise),中途换过 N 个不同的发行版.多年前,我在 BlogJava 上面分享 J ...
随机推荐
- PJSIP-iOS源码编译
官方文档https://trac.pjsip.org/repos/wiki/Getting-Started/iPhone 功能 在iPhone上可以实现的功能: 包含基于CoreAudio的音频设备, ...
- go get 升级所有
go get -u all go get -u go mod update go get -u full_package_name go get -u github.com/... // ('. ...
- NLP.TM | GloVe模型及其Python实现
在进行自然语言处理中,需要对文章的中的语义进行分析,于是迫切需要一些模型去描述词汇的含义,很多人可能都知道word2vector算法,诚然,word2vector是一个非常优秀的算法,并且被广泛运用, ...
- jdk concurrent 中 AbstractQueuedSynchronizer uml 图.
要理解 ReentrantLock 先理解AbstractQueuedSynchronizer 依赖关系. 2
- ios之UISearchBar
当你在seachBar中输入字母之前的时候,只是用鼠标选中searchBar的时候,如图 终端输出截图如下:(这个时候调用先shouldBeginEditing,之后调用didBeginEditing ...
- 长链剖分优化dp三例题
首先,重链剖分我们有所认识,在dsu on tree和数据结构维护链时我们都用过他的性质. 在这里,我们要介绍一种新的剖分方式,我们求出这个点到子树中的最长链长,这个链长最终从哪个儿子更新而来,那个儿 ...
- jQuery实现Ajax
jQuery.ajax([settings]) type:类型,“POST”或“GET”,默认为GET url:发送地址 data:连同请求发送到服务器的数据 dataType:预期服务器返回的数据类 ...
- 条款37:绝不重新定义继承而来的缺省参数值(Never redefine a function's inherited default parameter value)
NOTE: 1.绝不重新定义一个继承而来的缺省参数值,因为缺省参数值都是静态绑定的,而virtual 函数-----你唯一应该覆盖的东西----却是动态绑定的.
- C#上位机开发(二)—— Hello,World
上一篇大致了解了一下单片机实际项目开发中上位机开发部分的内容以及VS下载与安装,按照编程惯例,接下来就是“Hello,World!” 1.新建C#项目工程 首先选择新建Windows窗体应用(.NET ...
- document文档碎片
var arrText = ["1","2","3","4","5","6",& ...