linux历史背景

● 自由、开放的代码(自由不是免费)
● 类UNIX (Linux是山寨UNIX)

UNIX的概述

AT&T公司(美国,类似中国电信、中国联通的地位,电信网络的龙头)的贝尔实验室在70年代开发了Unix操作系统,它由Ken Thompson、Dennis Ritchie(c语言也是由前两位创造的)和Douglas McIlroy等人开发(在开发Unix系统(B语言编写)的过程当中,为增加Unix系统的可移植性,Ken Thompson和Dennis Ritchie使用C语言重写了Unix)。

UNIX操作系统

在这里插入图片描述
Unix的体系结构分为3层,从内到外依次是:内核–系统调用–应用层

kernel 内核 作用
● 管理硬件资源
○ 分配CPU
○ 管理内存以及IO
● 为其他程序运行提供环境

system calls 系统调用
形式上就是一系列c语言函数
● 间接使用内核提供的功能操作硬件资源–系统调用
● 所以,系统调用是内核的接口,,应用程序可以通过系统调用来使用内核提供的功能(嵌入式)

shell 命令行
● Unix操作系统提供了shell来实现和用户之间的,shell是一个命令行解释器,它读取用户输入,然后执行命令。shell拥有很多版本,我们将介绍bash(Bourne-again shell),它位于/bin/bash,Linux和MacOS都可以使用bash。

library routines 系统库
● 因为系统调用往往设计得比较繁琐复杂(参数多),通常的Linux发行版中还对系统调用进行了一次封装,称为系统库
● 如printf()就是系统库的一部分 applications 应用程序
● 可以直接使用系统调用
● 可以通过shell访问系统调用
● 也可以通过library routines访问系统调用

Linux历史

在这里插入图片描述
在这里插入图片描述

由于反垄断AT&T公司开始开源节流对UNIX系统收费,UNIX被分为AT&T System V (第五个版本开始收费)(目前依然存活的基本上只有Sun公司的Solaris系列)和 Berkeley BSD(开放源代码)两个大系列。当今的各种操作系统大多继承自Unix,Unix的历史基本上就是商业计算机的历史。

POSIX标准和其他标准

在早期,各个发行厂商拿到Unix的内核授权以后(内核相同),会根据本身硬件和客户需求来设计各自的系统调用和公用函数库,这样就导致了在各个发行版本上开发的程序不能跨越发行版本使用,并且产生大量的重复开发成本。为了减少这种开发成本,提升代码的可移植性,POSIX标准便应运而生。POSIX为各个系统调用和系统库的接口提供规范(IEEE 1003.1),只需要进行少量甚至无需修改,遵守POSIX标准的代码就可以在不同的Unix发行版本的机器上使用。

之前我们在Windows的visual studio上所书写的C语言代码是具有良好的可移植性的,因为之前的所有代码都遵循ISO C标准(c语言的library routines的标准)。符合ISO C标准的C语言代码,可以在各个支持的平台上(包括且不限于Windows、Linux等)运行

开源运动的兴起–GUN计划

Richard Stallman创立GNU计划,GNU的全名是Gnu’s Not Unix,它的目标就是开发出一个遵循GPL(即遵循GNU开源规范,满足这个规范的产品中,只要使用到GPL开源的代码,就必须将整个产品开源)的类Unix操作系统。在90年代初期,遵循GPL的库函数、编译器、调试工具和文本编辑器都已经开发完成但是依然没有一个内核开发完成。当时,微内核构造的GNU Hurd正在开发中,但是进度极其缓慢(微内核写起来容易微内核能实现按需加载,但是debug难调因为不是全部加载的)。

Linux的诞生

由于Unix操作系统的各种优秀特性,它在市场上占据了庞大的份额。但是Unix操作系统是商业软件,使用它需要交纳昂贵的授权费用,这对个人用户以及科研院校十分不友好。一些类Unix系统,比如Minix,不支持任何类型的非学术领域使用,极大地限制了Unix系统的使用范围
1990年,19岁大学生的Linus Torvalds开始在Minix上面学习操作系统相关课程。在1991年他在社区上提出要写出一个全新的开源的内核。1993年,宏内核构造的Linux内核面世,并且Linux内核的源代码遵循GNU的GPL。从此以后,广大的社区开发者便为新生的Linux内核积极贡献自己的力量。

Linux成功的原因

开源是Linux成功的核心原因。在Linus刚刚推出Linux内核的时候,它实际上只有不到1万行代码,实现了一个简单的内核。但是在开源社区(GNU)的推动之下,Linux开始迅速地发展起来,越来越多程序员开始为Linux系统贡献自己的力量
另一方面,Linux系统也拥有良好的兼容性Linux内核兼容POSIX标准(UNIX的和Linux的系统调用相同),所以之前为其他Unix系统编写的旧程序可以无痛苦地转移到Linux操作系统上。除此以外,Linux操作系统也同时兼容System V和Berkeley BSD两大系列。

Linux发行版本

由于刚开始的Linux只有一个内核,用户很难进行使用甚至连调试工具都没有,所以把Linux的一些内核和常用的软件打包在一起,称为Linux发行版,,一些流行的主流Linux发布版,包括Debian(美国,收费,开源但是有bug可以有售后)(及其派生版本Ubuntu(免费,开源但是有bug只能去社区)、Linux Mint)、Fedora(美国,收费)(及其相关版本Red Hat Enterprise Linux、CentOS(免费))和openSUSE(德国欧洲的,华为在用)等

Linux发行版包含Linux内核和支撑内核的实用程序和系统库,通常还带有大量可以满足各类需求的应用程序。本课程中使用最多的是bash shell、GCC编译器、Vim文本编辑器和GDB程序调试器等等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值