Linux基础
1、OS
多任务:multi tasks
Bell、MIT、GE组成开发一个Multics 多任务系统,由于系统开发时间太长,投入多最终这个项目被停止了。
在这个Multics开发组内有一个开发人员Ken Thompson(肯 汤普森),当时正在开发一款游戏叫Space Travel(太空旅行),停止了这个项目,他就不能再使用Multics的资源了。为了继续开发这个项目ken跟组织提出要申请硬件资源完成项目。最终没有被批准。就在这时他发现了一台放在角落没人使用的PDP-7的老古董电脑,但是总比没有好,于是ken就在这台老古董上通过汇编语言开始编写他自己的系统,最后编写出来的系统居然能正常的把他的游戏太空旅行跑起来。这个系统最初是被称为unics为了被改成Unix
Unix第一版是用汇编语言写的,汇编语言是机器语言,所以在某一个硬件上写出的系统如果需要移植到其他硬件上使用,必须重新编译,重写编写。所以1974年,ken和Dennis通过C语言对Unix重新编写。
C语言是高级语言,可以在任何硬件上运行
1978年 SCO公司 第一次包装发现商业版 Unix
Berkeley:ken到Berkeley支教,当时有一个研究生 Bill Joy对Unix研究的非常深,当时成立了一个叫BSRG的组织,在1977年发行了一个BSD(Berkeley System Distribution)伯克利系统发行版
1980年 美国国防部 DARPA 发出需要研究一个TCP/IP协议,当时就把这个项目给BSRG组织研究。因此TCP/IP是基于UNIX研究出来的
1981年:Microsoft
SCP一个程序员开发了一个叫:QDOS(Quick and Dirty Operating System),当时Bill Gates发现这个事情后,花了几万美元的费用把系统从这个公司买断版权。随后Gates到IBM公司去游说合作的事情(当时IBM公司准备开始发售个人PC机),合作方式是IBM公司买出一台个人PC机,同时搭售Microsoft的QDOS系统(搭售在IBM个人PC上的QDOS系统是对原本的QDOS系统做过一些改动的)
DOS 2.0
Windows
Windows NT (new technology)
同期SUN公司成立,由Bill Joy等三人成立的
Apple公司
XEROX:PARK实验室,开发出(star图形界面系统)同时APP的工作站也做出来了
在这10年期间,unix一直和BSD打官司,错过了最佳的发展时间。
1985年UNIX开始收费,每份copy要4万多美元,当时很多大学都是用Unix来教学的。当时有一个教授Richard Stallman认为UNIX是由很多程序员一步步完善的,不能用于商业收费,应该要免费使用。于是发起了了GUN组织,GUN:GUN is not Unix (自由软件组织,但是这些软件都是基于Unix运行的)
GPL:General Public License
FSF:Free Software Foundation
X-windows加入GPL
gcc:gnu c complier
vi:visual interface
。。。。。
free:freedom
Unix分支:
SUN:Solaris
IBM:AIX
HP:HP-UX
由于Unix开始收费,当时很多基于unix学习的人都面临没有操作系统可用了。当时有一个大学教授,Andrew为了继续自己的教学工作,写了一个系统叫Minux,这个系统非常的小,据说只有4000+行代码,但是麻雀虽小五脏俱全,当时很多工程师很窃喜,要一起帮教授把这套系统写的更好,但是这个教授非常的怪,不允许任何人改动他的代码。于是这个系统慢慢的也就沉默了。
1990年 有一个工程师,Jolitz 准备把BSD移植到X86平台下,但是后面由于一些原因,这个工程师把这个代码全部删除
1991年 8月,当时芬兰大学一个大学生 Linus Torvalds在BBS上发出消息自己完成了Linux
Linux遵循GPL
Larry Wall 研发出patch工具,Linux基于Patch实现了大家共同开发,所以Linux更新的非常的快
Linux是kernel(内核)
OS的接口
os接口有两大类:
GUI:Graphic User Interface
GNome: c语言开发,开发环境是gtk
KDE:C++语言开发的,开发环境是qt
CLI:Command Line Interface
bash
zsh
sh
csh
tcsh
ksh
操作系统的功能(kernel):
内存管理
进程管理
驱动硬件
文件系统
Linux 发行版有数百种之多,但是以其中三个版本最为有名
1、Debian
ubuntu
mint
knopix
2、Slackware
S.u.S.E
SLES
OpenSUSE
3、RedHat
Redhat 9.0
RedHat Enterprise Linux:RHEL
Centos:Community ENTerprise OS
Fedora Core
Gentoo
ArchLinux
Linux版本号:
major.minor.release
Linux kernel 0.99、2.2、2.3、2.4、2.6、3.0、4.0(到此版本后,更新kernel后不
需要重启)官方网站:www.kernel.org
GPL:GNU General Public License,GUN通用公共许可协议,是广泛使用的免费软件许可,可以保证终端用户自由运行、学习、共享和修改软件。许可最初是由FSF(自由软件基金会)的理查德·斯托曼撰写。
GPL授予程序接受人以下权利,或称“自由”,或称“copyleft”:
基于任何目的,按你的意愿运行软件的自由(自由之零)。
学习软件如何工作的自由,按你的意愿修改软件以匹配你的计算的自由(自由之一)。可访问源代码是此项自由的先决条件。
分发软件副本的自由,因此你可以帮助你的邻居(自由之二)。
将你修改过的软件版本再分发给其他人的自由(自由之三)。这样可以让整个社区有机会共享你对软件的改动。可访问源代码是此项自由的先决条件。
FSF:Free soft Foundation
BSD:是Berkeley Software Distribution license,是自由软件中使用比较广泛的许可协议之一。
BSD和GPL的区别:GPL强迫后续版本必须一样是自由软件,BSD的后续版本可以选择要继续是BSD或其他自 由软件条款或封闭软件
Apache许可证:是宽容的,因为它不会强制派生和修改产物使用相同的许可证进行发布 (与一些版权许可证不同,参见比较)。但它仍然要求对所有未修改的部分应用相同的可证,并且在每个许可文件中,必须保留再分发代码中的任何原始版权,专利,商标和归属通知(不需要包括任何部分的派生作品);并且在每个更改的许可文件中,都必须添加一条通知,说明对该文件进行了更改。
ASF:Apache soft Foundation
Android是基于Linux内核的开放源代码的操作系统,被Google收购后,被以Apache许可方式许可
POSIX
POSIX是Portable Operating System Interface 可移植操作系统接口,是IEEE为要在各种
UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称。
程序管理
程序组成部分:
二进制程序
配置文件
库文件
帮助文件
程序包管理器:
程序的组成文件打包成一个或几个文件
安装
卸载
查询
常用Linux发行版程序包管理程序:
Debian:dpkg,apt-get
RedHat:rpm、yum、dnf
S.u.S.E:rpm,zypper
ArchLinux:port
Gentoo:
LFS:Linux from Scratch