首页 > 系统相关 >1.1.1、操作系统发展史、Linux 与 Unix

1.1.1、操作系统发展史、Linux 与 Unix

时间:2024-03-31 22:29:05浏览次数:28  
标签:操作系统 Unix 硬件 UNIX Linux 源代码 1.1

关注公众号 “融码一生”,领取全套 PDF / 电子书

  • Linux 是众多操作系统之一,常见操作系统:win 7、win 10、Mac、Android、IOS。
  • 计算机是一台按用户要求接收信息、存储与处理数据,再将处理结果输出(文字、图片、音频、视频等)的机器。计算机由硬件和软件组成:
    • 硬件是计算机赖以工作的实体,包括:显示器、键盘、鼠标、硬盘、CPU、主板等。
    • 软件会按照用户的要求协调整台计算机的工作,如:Windows、Linux、Mac OS、Android 等操作系统,Office、QQ、迅雷、微信等应用程序。
  • 操作系统(Operating System,OS)是软件的一部分,是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(接口、中间人)。
  • 操作系统会控制其它程序运行、管理系统资源(如:管理及配置内存、决定系统资源供需的优先次序等)、提供最基本的计算功能,同时还提供一些基本的服务程序,例如:
    • 文件系统:为操作系统提供了组织管理数据的方式
      • 提供计算机存储信息的结构;信息存储在文件中,文件主要存储在计算机的硬盘里,在目录的分层结构中组织文件。
    • 设备驱动程序
      • 提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。
    • 用户接口
      • 操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows 图形界面可以理解为一种用户与操作系统交互的方式;智能手机的 Android 或 iOS 系统也是一种操作系统的交互方式。
    • 系统服务程序
      • 当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。
  • 操作系统就好像是一个政府,其它软件都会被它管控;操作系统在给其他软件提供各种便利的同时,还会约束其他软件不能为所欲为。

  • 目前流行的服务器和 PC 端操作系统有 Linux、Windows、UNIX 等;手机操作系统有 Android、iOS、Windows Phone(简称 WP);嵌入式操作系统有 Windows CE、PalmOS、eCos、uClinux 等。

1、操作系统发展史

  • 1965 年之前,电脑并不像现在一样普遍(军事或学院的研究机构才具备),且大型主机至多能提供 30 台终端(30 个键盘、显示器),连接一台电脑。

  • 为了解决数量不够用的问题,1965 年前后由贝尔实验室、麻省理工学院以及通用电气共同发起了Multics 项目,想让大型主机支持 300 台终端。
  • 由于 Multics 工程计划所追求的目标太庞大复杂,以至于它的开发人员都不知道要做成什么样子,最终以失败收场。1969 年前后这个项目进度缓慢、资金短缺,贝尔实验室退出了研究。

(1)Unix

  • 1969 年从这个项目中退出的 Ken Thompson(肯 • 汤普森)在实验室无聊时,为了让一台空闲的电脑上能够运行“星际旅行”(Space Travel,该游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆),在 8 月份左右趁着其妻子探亲的时间,用了 1 个月的时间编写出了 Unix 操作系统的雏型(他先后在多个系统上试验,但运行效果不甚理想,于是自己开发操作系统,就这样 UNIX 诞生了)。
  • 结合英文中的前缀 Multi 和 Uni 就能明白 UNIX 的隐意:
    • Multi 是大的意思(大而且繁)
    • 而 Uni 是小的意思(小而轻巧),这是 UNIX 开发者的设计初衷,该理念一直影响至今
  • 1970 年,美国贝尔实验室的 Ken Thompson 以 BCPL 语言为基础,设计出很简单且很接近硬件的 B 语言(取 BCPL 的首字母),并用 B 语言写了第一个 UNIX 操作系统。
  • 因为 B 语言的跨平台性较差,为了在其他电脑上也能运行这个非常棒的 Unix 操作系统,Dennis Ritchie(丹尼斯·里奇,下图右)和 Ken Thompson(肯·汤普逊,下图左)准备从 B 语言的基础上研究一个更好的语言。

  • 1972 年,美国贝尔实验室的 Dennis Ritchie 在 B 语言的基础上最终设计出一种新的语言,他取了 BCPL 的第二个字母作为这种语言的名字,这就是 C 语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑:它宣告了在操作系统的开发中,汇编语言不再是主宰。
  • 1973 年初,C 语言的主体完成。UNIX 系统的绝大部分源代码都用 C 语言进行了重写,这为提高 UNIX 系统的可移植性打下基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与 C 语言是一对孪生兄弟,密不可分。
  • 20 世纪 70 年代初,计算机界还有一项伟大的发明:TCP/IP 协议,这是当年美国国防部接手 ARPAnet 后所开发的网络协议。美国国防部把 TCP/IP 协议与 UNIX 系统、C 语言捆绑在一起,由 AT&T 发行给美国各个大学非商业的许可证,这为 UNIX 系统、C 语言、TCP/IP 协议的发展拉开了序幕,它们分别在操作系统、编程语言、网络协议这三个领域影响至今。
  • 肯•汤普森和丹尼斯•里奇因在计算机领域做出的杰出贡献,于 1983 年获得计算机科学的最高奖:图灵奖。
  • 随后出现了各种版本的 UNIX 系统,常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。
  • Solaris 是 UNIX 系统的一个重要分支,可以运行在 SPARC CPU 平台和 x86 CPU 平台上。在服务器市场上,Sun 的硬件平台具有高可用性和高可靠性,是市场上处于支配地位的 UNIX 系统。对于难以接触到 Sun SPARC 架构计算机的用户来说,可以通过使用 Solaris x86 来体验世界知名大厂的商业 UNIX 风采。当然,Solaris x86 也可以用于实际生产应用的服务器,在遵守 Sun 的有关许可条款的情况下,Solaris x86 可以免费用于学习研究或商业应用。
  • FreeBSD 源于美国加利福尼亚大学伯克利分校开发的 UNIX 版本,它由来自世界各地的志愿者开发和维护,为不同架构的计算机系统提供了不同程度的支持。FreeBSD 在 BSD 许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行,并不限制将 FreeBSD 的代码在另一协议下发行,因此商业公司可以自由地将 FreeBSD 代码融入它们的产品中。苹果公司的 OS X 就是基于 FreeBSD 的操作系统。

  • FreeBSD 与 Linux 的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似。FreeBSD 的最大特点就是稳定和高效,是作为服务器操作系统的不错选择;但其对硬件的支持没有 Linux 完备,所以并不适合作为桌面系统。
  • 其他 UNIX 版本因应用范围相对有限,在此不做过多介绍。

(2)Minix

  • 因为 AT&T(通用电气)的政策改变,在 Version 7 Unix 推出之后,发布新的使用条款,将 UNIX 源代码私有化,在大学中不再能使用 UNIX 源代码。
  • Andrew S. Tanenbaum(塔能鲍姆)教授为了能在课堂上教授学生操作系统运作的实务细节,决定不使用任何 AT&T 的源代码,自行开发与 UNIX 兼容的操作系统,以避免版权上的争议。他以小型 UNIX(mini-UNIX)之意,将它称为 MINIX。

(3)Linux

  • 因为 Minix 只是教学使用,功能并不强,因此 Torvalds 利用 GNU 的 bash 当做开发环境,gcc当做编译工具,编写了 Linux 内核-v0.02,但一开始 Linux 并不能兼容 Unix,Unix 上跑的应用程序不能在 Linux 上跑(即应用程序与内核之间的接口不一致,因为 Unix 是遵循 POSIX 规范),因此Torvalds 修改 Linux,并遵循 POSIX(Portable Operating System Interface,他规范了应用程序与内核的接口); 一开始 Linux 只适用于 x86,后来经过全世界的网友的帮助,最终能够兼容多种硬件。
  • Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10000 行代码。

  • 李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开代码并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用。
  • 据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,他仍拥有 Linux 内核(操作系统的核心部分),并保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux 是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。
  • 李纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,他还搞出了全世界最大的程序员交友社区 GitHub(开源代码库及版本控制系统)。
  • 关于 Linux 的 Logo(一只企鹅)由来是一个很有意思的话题。为什么选择企鹅?
    • 有人说因为李纳斯•托瓦兹是芬兰人,所以选择企鹅。
    • 有人说因为其它动物图案都被用光了,李纳斯•托瓦兹只好选择企鹅。
    • 我更愿意相信第三种说法:企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家(国家都无权将南极洲纳入其版图)。Linux 选择企鹅图案作为 Logo 的含义是:开放源代码的 Linux 为全人类共同所有,公司无权将其私有。
  • Linux 在设计之初就是基于 Intel x86 系列 CPU 架构的,它是一个基于 POSIX 的多用户、多任务并支持多线程和多 CPU 的操作系统。Linux 由世界各地成千上万的程序员设计和开发实现,当初开发 Linux 系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类 Unix 操作系统兼容产品。

(4)图示:操作系统发展史

(a)Fedora

(b)Redhat

(c)Ubuntu

(5)Minix 没有火起来的原因

  • Minix 的创始人说,MINIX 3 没有统治世界是源于他在 1992 年犯下的一个错误:当时他认为 BSD 必然会一统天下,因为它是一个更稳定和更成熟的系统,其它操作系统难以与之竞争。因此他的 MINIX 的重心集中在教育上。四名 BSD 开发者已经成立了一家公司销售 BSD 系统,他们甚至还有一个有趣的电话号码 1-800-ITS-UNIX。然而他们正因为这个电话号码而惹火上身。美国电话电报公司因电话号码而提起诉讼。官司打了三年才解决;在此期间,BSD 陷于停滞,而 Linux 则借此一飞冲天。他的错误在于没有意识官司竟然持续了如此长的时间,以及 BSD 会因此受到削弱。如果美国电话电报公司没有起诉,Linux 永远不会流行起来,BSD 将统治世界。

2、UNIX 与 Linux 的亲密关系

  • UNIX 是 Linux 的父亲。其实 Linux 与 UNIX 有很多的共通之处,如果你已经熟练掌握 Linux,则再上手使用 UNIX 会非常容易。二者也有两个大的区别:
    • UNIX 系统大多与硬件配套:大多数 UNIX 系统(如 AIX、HP-UX 等)无法安装在 x86 服务器和个人计算机上,而 Linux 则可以运行在多种硬件平台上。
    • UNIX 是商业软件,而 Linux 是开源软件(免费、公开源代码)
  • Linux 受广大计算机爱好者的喜爱的主要原因有两个:
    • 它属于开源软件(开放源代码),用户可自由获取它的源代码,并可以根据自己的需要对它进行必要修改(开源是一种新的软件盈利模式;目前很多软件都是开源软件,对计算机行业与互联网影响深远)。
    • 它具有 UNIX 的全部功能,任何使用或想学习 UNIX 操作系统的人都可以从 Linux 中获益。
  • Linux 已经青出于蓝而胜于蓝,历史的车轮让 Linux 成为 UNIX 最优秀的传承者。正是由于 Linux 和 UNIX 有着千丝万缕的联系,所以人们把 Linux 叫做“类 UNIX 系统”。

关注公众号 “融码一生”,领取全套 PDF / 电子书

标签:操作系统,Unix,硬件,UNIX,Linux,源代码,1.1
From: https://blog.csdn.net/m0_66491750/article/details/137163145

相关文章

  • Linux应用开发笔记(一)交叉编译及执行
    Linux应用开发笔记(一)交叉编译及执行文章目录一、GCC编译器1.什么是GCC2.安装GCC3.交叉编译二、ssh的使用1.连入局域网2.连接SSH一、GCC编译器1.什么是GCCGCC(GNUCompilerCollection)是一个开源的编译器集合,包含C、C++、Objective-C、Fortran、Java、Ada和G......
  • linux常用内核优化
    linux内核常用调优参数点击关注......
  • Linux文件查找
    1.文件查找:which+空格文件名          locate+空格文件名(若创建新文件查找不到,需要用updateab加回车键)          find+空格路径+空格-iname(-name)+表达式(文件的大致名字,或者文件放的位置)注:若用-iname可以不分大小写    ......
  • linux内存管理2
    1.LVM:管理磁盘的一种方式,与基本磁盘无异。  特点:随意扩张大小2.PV:将物理磁盘转变为物理卷     pvcreate+空格文件磁盘名(创建物理卷)     pvs(查看物理卷)  VG:卷组,里面有多个物理卷组成     vgcreate+空格卷组名++空格+磁盘名 ......
  • linux命令--make -j和make all
    目录一 make-j和makeall区别二实例说明(一)make-j 的例子makeall 的例子结合使用三实例说明(二)**`make`****`makeall`**四makeall可以用make-j替换吗一 make-j和makeall区别make-j和makeall在Linux编译过程中各自扮演了不同的角色,具有不同的功能......
  • linux下设置环境变量导致原有环境变量失效
    搭建集群时,想新增一个环境变量,但设置错了导致原因都失效了vim/etc/profile.d/my_env.shexportPATH=/home/atguigu/bin大部分命令都使用不了了,只能使用halp下的命令[root@hadoop102module]#subash:su:未找到命令[root@hadoop102module]#lsbash:ls:未找到命令......
  • 【Linux】认识线程池 AND 手撕线程池(正常版)
    文章目录0.回顾进程池1.计算机层面的池化技术2.线程池预备知识2.1介绍线程池2.2设计线程池的意义是什么?2.3其他知识3.回顾C++类与对象3.1cpp什么情况下成员函数必须是静态的?3.1可变参数列表3.2格式化输出函数3.3预定义符号4.图解线程池运作原理4.0完整代码Makefilelog.......
  • Linux内核数据管理利器--红黑树
    目录写在前面1.红黑树的原理2.红黑树操作2.1红黑树的节点插入2.2红黑树的节点删除2.3红黑树的查询操作3.红黑树操作实验附录A:实验代码写在前面本文通过两个方面让读者可以深入理解Linux内核中红黑树RBTree的实现以及使用,读完此文章,你可以收获:红黑树的特性红黑树的......
  • 【Linux】权限理解
    权限理解1.shell命令以及运行原理2.Linux权限的概念3.Linux权限管理3.1文件访问者的分类(人)3.2文件类型和访问权限(事物属性)3.2.1文件类型3.2.2基本权限3.3文件权限值的表示方法3.4文件访问权限的相关设置方法3.4.1chmod3.4.2chown3.4.3chgrp3.4.4umask3.5......
  • 权限提升-Linux系统权限提升篇&Vulnhub&Capability能力&LD_Preload加载&数据库等
    知识点1、Web或用户到Linux-数据库类型2、Web或用户到Linux-Capability能力3、普通用户到Linux-LD_Preload加载so配合sudo章节点:1、Web权限提升及转移2、系统权限提升及转移3、宿主权限提升及转移4、域控权限提升及转移基础点0、为什么我们要学习权限提升转移技......