昨天看文章时发现自己对 linux 操作系统不够了解,还记得 17 年时听过老师的一些课,对 linux 的历史有一点了解,不过当时并没有记录笔记,现在已经忘的差不多了。

这次从网上找资料,又重新看了一遍,同时做了一些笔记。

这次看的是鸟哥的文章,他把 unix linux 的起源历史讲的相当细致,读起来非常有意思,而且本来他们的历史也是一个非常复杂曲折的过程,认真读一读也是收货颇多。

Unix 算是操作系统的鼻祖,尽管现在移动平台中的 Android、iOS 操作系统,电脑中的 MAC OS 以及 windows 操作系统都很流行,但是他们其实都是后来才出现的,况且苹果的 mac os 实际也是 Unix 的一个分支而来。

## Unix 起源

Unix 诞生在上世纪 60 年代,但它的诞生并不是有意为之,而是从贝尔实验室、麻省理工学院、通用电器合作的一个失败的项目(Multics)演变而来。当时他们做的项目由于资金问题以及延期等原因失败了,后来项目中的另一个人在做自己的个人项目时,想到了之前的旧项目,觉得可以拿过来改一改,有可用的地方,所以自己大幅度更改了旧项目,让其简化,并起名 Unics ,不过一开始他用的是汇编语言,所以它的可移植性并不好。

后来实验室的同事发现这个东西太好用了,但是移植性差,后来便把它用更高级的 C 语言重写了一遍,同时把名字改为 Unix,这才是 Unix 的开始,这一年是 1973 年。

这时 Unix 正式登上历史舞台,不过当时版权、软件许可证等等条件都不完善,Unix 在变得流行的同时,也出现了很多问题,Unix 一开始比较 open,源代码大家可以相对轻松的看到,后来贝尔实验室的母公司 AT&T 发布了一条禁令,禁止大学用 Unix 源码进行教学。这条禁令让一个大学教授 Tanenbaum 很费神,因为他的工作就是教学生 Unix。

但是方法总比问题多,他自己曲线救国,想到了自己造一个类似 Unix 的操作系统,毕竟他对 Unix 已经十分熟悉,为了防止版权问题,他在写操作系统时完全不看 Unix 源码,后来自己耗时两年,在 1984 年开始写,到 1986 年写完了这个类 Unix 的操作系统,并起名 Minix,意思就是迷你 Unix 系统。另外这个系统完全兼容 Unix,也就是说在 Unix 上运行的软件,也可以在 Minix 上运行。

不过 Tanenbaum 开发 Minix 初衷是为了方便自己教学,所以完成 Minix 后,他并不去推广,而且它并不免费,你想看必须通过购买光磁带才行,不过当时很便宜,与此同时磁带中还附带了源码,非常良心啊,但是这样传播还是很慢,这是 1986 年。

慢慢的大家发现这个 Minix 也很好用啊,有很多人在论坛里给 Tanenbaum 提建议,觉得 Minix 还可以变得更好,但是教授太忙,自己也无心去继续完善。

终于历史即将迎来转机...

不得不提的自由软件

Richard Stallman 是一个自由软件的追求者,同时是一个即刻,他信仰自由软件,相比商业软件,自由软件可以更加快速的传播,可以团结更多优秀工程师的力量,但是 Unix 在是一个商业软件,所以他希望创建一个真真自由而开放源代码的专有 Unix 系统替代品。但是创建一个操作系统谈何容易,他开始以 GUN 的名义开发 Unix 平台上的工具程序和软件,Unix 源码不开源,但是我开发的这些软件套件开源。当时也有一个内核项目在进行,但却是是一件很难的是。没有内核,

自由软件和开源就很难进行,但是他的工作还是非常有意义的,他开发了 GUN 套件以及一些 Unix 平台上的编译程序,主要有:

  • Emacs
  • GNU C (GCC)
  • GNU C Library (glibc)
  • Bash shell

后来很多软件开发者都在这些基础上用这些工具进行程序开发,进一步壮大自由软件团体,不过相比最初的构想,建立一个自由的 Unix 操作系统,这些还远远不够,因为没有内核,所以那些软件依旧只能运行在有专利的 Unix 平台上,一直到 Linux 的出现...

Linux 要来了

1988 年 芬兰人 Linus Torvalds 进入了自己外祖父的大学-赫尔辛基大学,就读计算机科学,因为专业关系,他在大学时接触到了 Unix,但是当时机器资源紧张,学校的机器不够他玩,他就像自己搞一个 Unix,但是这东西那是那么容易就搞,一个操作系统相当的复杂。

不过很快,他就知道了 Minix 的消息,所以他跟很多人一样也购买了 Minix 磁带,然后把 Minix 安装在了自己贷款购买的 Intel 386 电脑上,终于可以愉快的玩耍了,而且磁带中是有源码的,所以他就可以更改优化它,毕竟是大牛,很快他就让 Minix 支持了多任务。

后来他在 BBS 上也留言,说 Minix 可以变得更好更强大,但是 Tanenbaum 依旧不愿意去做这件事,后来 Linus Torvalds 就想,何不自己搞一个内核玩,而且现在还有 Minix 可借鉴,站在巨人的肩膀上,一切做起来就简单多了,所以他就开始了核心程序的开发。

好在那时的很多软件条件都已经具备,很重要的就是GNU 的自由软件, 他用GNU 的自由软件(上一节提到的)将核心程序代码与386紧紧的结合在一起,最终写出他所需要的核心程序。然后发布在了校内 BBS 上。

同时提供了下载,有趣的是由于 FTP 上下载目录的名称为: Linux,所以大家都开始叫它 Linux。

后来为了兼容 Unix,Linus Torvalds 决定修改 Linux,以便让所有 Unix 上能运行的软件都可以在 Linux 上运行,而且那时已经有成熟的 POSIX 规范,所以他按照这个规范,实现了这个规范,慢慢的 Linux 变得越来越好,越来越好...

要点

  • 通过 C 语言重构 Unix、Unix 具有了很好的可移植性,让其可以移植到许多硬件体系结构中。
  • Ken Thompson 的 Unix 哲学 成为模块化软件设计和计算的强大模型。Unix 哲学推荐使用小型的、专用的程序组合起来完成复杂的整体任务。
  • Linux 的很大吸引力在于操作系统在许多硬件体系结构(包括现代 PC)上的可用性以及类似使用 Unix 系统管理员和用户熟悉的工具的能力
  • 在 Unix 发行版中缺少一个影响软件和硬件供应商的通用内核。
  • 对于 Linux,供应商可以为特定的硬件设备创建设备驱动程序,并期望在合理的范围内它可以在大多数发行版上运行。
  • Linux 已经显示出其超越 Unix 的显著优势在于其在大量硬件平台和设备上的可用性。

链接

关于作者

咕咚,Android 工程师,个人博客 gudong.name,公众号:咕喱咕咚

本篇文章由一文多发平台ArtiPub自动发布

Unix/Linux 从哪儿来?那些改变世界的人们...的更多相关文章

  1. Unix&Linux技术文章目录(2015-12-22更新)

    Unix & Linux 方面的博客整理.归纳分类,要坚持不懈的学习Unix &Linux,加油!技术需要累积和沉淀.更需要锲而不舍的精神.持之以恒的毅力!借此下面名句勉励自己! 书上 ...

  2. 28个Unix/Linux的命令行神器_转

    28个Unix/Linux的命令行神器 下面是Kristóf Kovács收集的28个Unix/Linux下的28个命令行下的工具,有一些是大家熟悉的,有一些是非常有用的,有一些是不为人知的.这些工具 ...

  3. 《UNIX/Linux网络日志分析与流量监控》新书发布

    本书从UNIX/Linux系统的原始日志(Raw Log)采集与分析讲起,逐步深入到日志审计与计算机取证环节.书中提供了多个案例,每个案例都以一种生动的记事手法讲述了网络遭到入侵之后,管理人员开展系统 ...

  4. 《Unix/Linux网络日志分析与流量监控》获2015年度最受读者喜爱的IT图书奖

    <Unix/Linux网络日志分析与流量监控>获2015年度最受读者喜爱的IT图书奖.刊登在<中华读书报>( 2015年01月28日 19 版) 我的2015年新作刊登在< ...

  5. 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作

    作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的. 今天我们就介绍一些在linux上的文件系 ...

  6. How to locate a path? - Unix & Linux Stack Exchange

    How to locate a path? - Unix & Linux Stack Exchange http://unix.stackexchange.com/questions/2955 ...

  7. linux运维的认知及RHEL7 Unix/Linux 系统 介绍和安装

    如何成为一个优秀的linux运维人员?      如果你有机会和条件:环境能够磨练一个人的能力和意志.      大胆的做你从未做过的项目,每一个项目都是对自身的极大提升.      有好的环境资源不 ...

  8. unix/linux中图形界面那些事

    我们知道unix/linux刚开始的时候是没有图形界面的,随着时代的发展,排版.制图.多媒体应用越来越普遍了,这些需求都需要用到图形界面(Graphical User Interface).为此,MI ...

  9. 如何使用Unix/Linux grep命令——磨刀不误砍柴工系列

     http://man.linuxde.net/grep ---------------------------------------------------- 如何使用Unix/Linux gre ...

随机推荐

  1. IoC 之加载 Bean:总结

    上文中我们将bean已经加载到了IOC容器中,接下来我们将把IOC加载Bean出来进行代码解析 备注:(有些解释是参考别个博客的相关解释 )一起探讨请加我QQ:1051980588 bean 的初始化 ...

  2. Spring Boot 2.x 基础案例:整合Dubbo 2.7.3+Nacos1.1.3(配置中心)

    本文原创首发于公众号:Java技术干货 1.概述 本文将Nacos作为配置中心,实现配置外部化,动态更新.这样做的优点:不需要重启应用,便可以动态更新应用里的配置信息.在如今流行的微服务应用下,将应用 ...

  3. oracle表空间不足:ORA-01653: unable to extend table

    问题背景: oracle表空间不足报错是比较常见的故障,尤其是没有对剩余表空间做定期巡检的系统: 报错代码如下: oracle表空间不足错误代码:ORA-01653: unable to extend ...

  4. C#基于Quartz.NET实现任务调度并部署Windows服务

    一.Quartz.NET介绍 Quartz.NET是一个强大.开源.轻量的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,用C#改写,可用于winform和asp ...

  5. 关于人工智能和python

    人工智能的话题在近几年可谓是相当火热,前几天看快本时其中有一个环节就是关于人工智能的,智能家电.智能机器人.智能工具等等,在我的印象里,提到人工智能就会出现 Python,然后我便在网上查找了相关信息 ...

  6. 无人机基于Matlab/Simulink的模型开发(连载一)

    "一切可以被控制的对象,都需要被数学量化" 这是笔者从事多年研发工作得出的道理,无论是车辆控制,机器人控制,飞机控制,还是无人机控制,所有和机械运动相关的控制,如果不能被很好的数学 ...

  7. .NET Core 3.0 ,WTM 2.3.9发布

    .Net Core 3.0已经来了,WTM怎么可以落后呢.最新发布的WTM2.3.9版本已经支持.Net Core 3.0啦,现在在线生成项目的时候可以选择2.2和3.0两个版本.小伙伴们快来体验吧. ...

  8. 那些你不知道的HTML知识,快来学习一下吧

    前言 HTML作为前端三大基础知识点之一,是每一个前端开发人员都要掌握的部分.今天这篇文章我们来看看一些平时不太会注意,却在面试时可能会问到的题目,来看看你都会吗? 如何使用div模拟实现textar ...

  9. 渗透-简单制作过waf的中国菜刀

    0x01 简单分析 web渗透中很常见的情况,用菜刀连接免杀的一句话木马连不上,有waf 除了变形一句话木马为免杀一句话,我们还需要来制作过waf的菜刀进行连接. 这里用的一句话为 来看看菜刀连接一句 ...

  10. robotframework+ride+python3环境搭建

    一.windows下安装python3.6 1.官网下载安装包https://www.python.org/downloads/windows/ 2.进行安装,接下来步骤一直next即可 二.cmd下 ...