Linux和Unix的渊源

1 Multics

  • 1965年,由贝尔实验室、MIT(麻省理工)、通用电气公司联合发起的开发新的多用户分时操作系统 Multics 。能够同时给很多用户提供服务,需要做时间片的轮转,但是在当时的技术条件下,研发这样的通用操作系统存在了太多难以解决的技术难题。
  • 1969年,奋战了四年的MULTICS还是达不到计划中的性能,贝尔实验室退出了。先天不足的MULTICS还是被装在通用电气公司(General Electric)的GE645主机上供IT使用,而通用电气在一年之后就完全淡出大型机市场。MULTICS遭到彻底的失败。

2 Unix

  • 1969年,在贝尔实验室工作的 Ken Thompson 和 Dennis Ritchie 为了让自己编写的游戏能够运行起来,俩人在一台DEC小型计算机上编写了MULTICS的改编版。这样一个新的分时操作系统1970年就被叫做 Unix。
  • 一开始直接由汇编编写,但由于汇编非常底层,开发起来非常麻烦,不够高效。所以 Dennis Ritchie 主导创造出来了高级语言 — B语言,不是直接生成机器码,需要解释执行,没办法满足底层操作系统的要求。所以 B语言 失败了。
  • Dennis Ritchie 主导对B语言进行一系列的改进,增加了更丰富的数据类型,能让B语言能够直接编译成为机器码,然后为该语言起了一个非常响亮的名字 new B 。最终成功。
  • 使用 new B 语言对 Unix 整个系统做了一个重构。最后该语言被叫做 C语言。

3 Linux

  • 由于 Unix 买又买不起,源码看又看不到。为了方便教学和研究,荷兰教授《计算机网络》的作者 Andrew Tanenbaum 决定写一个不包含任何带 Unix 版权的操作系统(借鉴Unix)。并开放源代码。
  • 李纳斯·托瓦兹(Linus Torvalds)上大学期间对Unix产生了浓厚兴趣,但由于该操作系统源码并不开放所以看不到底层实现
  • 而基于 教授 Unix Andrew Tanenbaum 开发出来的 Minix 开源了。给李纳斯·托瓦兹(Linus Torvalds)打开了通往操作系统内核的大门。
  • 李纳斯·托瓦兹(Linus Torvalds)使用了 Minix 之后感觉有很多缺陷,不太好用,而且没有提供上网的实现。
  • 1991年初,李纳斯·托瓦兹(Linus Torvalds)开始基于Minix进行开发
  • 1991年6月,确定开发一个类 Unix 操作系统内核
  • 1991年9月,开发完成内核的 0.01版本,命名为 Linux

4 git

  • 由于 Linux 开源出来后相当于一个团队在开发维护,所以需要一个统一的代码管理工具。
  • 但是当时 SVN 是集中式的代码管理工具,有单点故障的问题。
  • Bitkeeper 免费为 Linux 提供支持,到 2005年,Bitkeeper不再免费为 Linux 提供服务。
  • 李纳斯·托瓦兹(Linus Torvalds)用了几个星期的时间,开发出来一个分布式代码管理工具——git

Linux和GNU

  • 1985年,Richard Stallman 发起了 GNU 宣言,目标为创建一套开源的、免费的、兼容 Unix 的系统。
  • 1989年,与律师团体起草 GNU通用公共协议证书(GPL)。遵循该协议,表示源码完全公开,且基于该源码进行开发也要开源。
  • 到1989年时,除了操作系统内核之外,其他软件已完善。
  • 1991年,Linux 加入到 GUN 计划。

Linux发行版本

Linux对比Windows

特点比较 Windows Linux
软件与支持 数量和质量都有优势,不过大部分为收费软件;由微软官方提供支持和服务 开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺由全球所有的Linux开发者和自由软件社区提供支持
安全性 三天两头打补丁安装系统更新,还是会中病毒木马 要说Linux没有安全问题,那当然是不可能的;相对来说,肯定比Window平台要更加安全
使用习惯 基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作;用户上手容易,入门简单 兼具图形界面操作和完全的命令行操作,可以只用键盘完成一切操作;新手入门较困难,需要一些学习和指导,一旦熟练之后效率极高
可定制性 封闭的,系统可定制性很差 开源,可定制性非常强
应用场景 个人电脑桌面操作系统主要是Windows 服务器操作系统主要是Linux;世界上大部分软件和服务都是运行在Linux之上的

【Linux】起源与介绍:基于Unix与C语言产生的背景,上世纪大神的基本操作,git的来源相关推荐

  1. linux(centos)基于docker搭建的oracle服务器,并上传到私有仓库

    安装docker 首先通过上面的步骤安装linux系统: 更新yum -y update : 安装yum install docker -y: 配置镜像加速器vi /etc/docker/daemon ...

  2. c语言http上传图片,基于RTOS的c语言实现http文件上传

    本实验为了减少代码量,使用了封装比较完善的http库,本文主要讲述http文件上传的主要要求. 一.分析http关键头部信息 为了分析http header,我们通过chrome得到上传文件时的htt ...

  3. unix、window、linux、mac介绍

    我们熟知的操作系统大概都是windows系列,近年来Apple的成功,让MacOS也逐渐走进普通用户.在服务器领域,恐怕Linux是无人不知无人不晓.他们都是操作系统,也在自己的领域里独领风骚.这都还 ...

  4. linux内核结构介绍

    参考:linux内核结构介绍.什么是shell 作者:丶PURSUING 发布时间: 2021-02-15 14:15:24 网址:https://blog.csdn.net/weixin_44742 ...

  5. linux主要系统服务介绍

    linux主要系统服务介绍 apmd--apmd用来监视系统用电状态,并将相关信息通过syslogd写入日志.也可以用来在电源不足时关机 arpwatch--用来维护以太网物理地址和ip地址的对应关系 ...

  6. linux文件系统的设计,基于Linux的文件系统设计.doc

    PAGE PAGE 33 无敌 操作系统课程设计 说 明 书 ? 学 院.系: 软件学院 专 业: 软件工程 学 生 姓 名: 学 号: 设 计 题 目: 基于Linux的模拟文件系统的设计与实现 起 ...

  7. unix与linux的区别_Linux与Unix:有什么区别?

    unix与linux的区别 如果您是20多岁或30多岁的软件开发人员,那么您已经在Linux主导的世界中长大了. 数十年来,它一直是数据中心的重要参与者,尽管很难找到确定的操作系统市场份额报告,但Li ...

  8. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

    Jenkins--Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包) 持续集成及Jenkins介绍 软件开发生命周期 什么是持续集成? 持续集 ...

  9. linux常见版本介绍

    linux常用版本介绍 linux发行版和内核的关系 linux主要发行版:Fedora Core.Debian.Mandrake.Ubuntu.Red Hat Linux.SuSE.Linux Mi ...

最新文章

  1. gradle第二天(Building a RESTful Web Service)
  2. Java 设计模式之抽象工厂模式
  3. Codeforces Round #395 (Div. 2) - A
  4. 手机电脑同屏_骚操作!手机秒变触摸电脑、扩展屏幕!
  5. k8s提交镜像到harbor仓库
  6. Linux C 时间函数
  7. OSPF外部路由汇总
  8. SSHnbsp;整合-nbsp;6nbsp;-nbsp;service_serviceImp…
  9. MATLAB中常见的取整函数
  10. 安装office2013报安装程序找不到OneNote.zh-cn、安装源不存在
  11. attactEvent与addEventListener
  12. [Bucket CTF 2023]
  13. 设置Android默认锁定屏幕旋转
  14. iOS—持久化的几种方案
  15. 第一次来学习开料软件的使用
  16. Cycript(二):使用手册
  17. 机器学习之常见学习工具介绍
  18. linux 常用命令 小白快速入门
  19. 在sql.yog中创建数据库并修改
  20. Excel-给文本框赋值/写入公式

热门文章

  1. C#数据转换(int转string,string转int,char转str等)
  2. 什么是网站流量?如何计算?
  3. ChatGPT研究(二)——ChatGPT助力跨模态AI生成应用
  4. Unity开发使用DOTween插件实现ui组件慢慢消失和慢慢出现
  5. 永硕心理服务云平台专题培训—12期落下帷幕
  6. iTextPdf最简单最彻底解决中文显示
  7. flash编程基础的一些讲解(概念与函数)
  8. 计算机网络实验五——应用层和传输层协议分析
  9. 加速数据要素价值释放,打造高性能时序数据库
  10. 一些常见的互联网名词