一、什么是Linux,Linux的发展史
1、什么是Linux?
Linux是一种自由和开放源码的类Unix操作系统,是一个功能强大的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。
编制它的目的:是建立不受任何商品化软件权制约的、全世界都能自由使用的Unix兼容产品。
Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。§
linux与Windows是当前应用最广泛的两种操作系统。
UNIX 简介
§ UNIX操作系统(UNIX),是一个强大的多用户、多任务网络操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的贝尔实验室开发。
§ 目前分为AT&T System V和Berkley BSD两个系列
§ 目前常见的UNIX版本有:
Sun Solaris
HP-OS
AIX(IBM开发)
§ 注:Linux同时兼容System V和BSD两种Unix系统
Linux是运行于多种平台(PC、工作站、服务器等)之上、源代码公开、免费、遵循 GPL精神、遵守POSIX标准、与UNIX兼容的操作系统。
Linux是微机版的UNIX。
常见到处理器平台:x86(Intel、AMD)、ARM、MIPS、Power、C6000
2、Linux发展史
§ 芬兰赫尔辛基大学研究生Linus Torvalds(林纳斯・托瓦兹)在从1990年底到1991年的几个月中,利用Minix操作系统作为开发平台,为他自己的操作系统课程和后来的上网用途而陆续编写了若干程序。
(1)、1991.10.5 在Internet的comp.os.minix讨论区发表了一篇文章,表明他正在研制一个要超越Minix的操作系统,从而宣告了Linux的诞生。
(2)、1993年,大约有100余名程序员参与了Linux内核代码编写/修改工作,其中核心组由5人组成,此时Linux 0.99的代码有大约有十万行,用户大约有10万左右。(由全球黑客合作完成)
(3)、1994年3月,Linux1.0发布,代码量17万行,当时是按照完全自由免费的协议发布,随后正式采用GPL协议。至此, Linux的代码开发进入良性循环。
(4)、1996年6月,Linux 2.0内核发布,此内核有大约40万行代码,并可以支持多个处理器。此时的Linux 已经进入了实用阶段,全球大约有350万人使用。
(5)、1997年夏,大片《泰坦尼克号》在制作特效中使用的160台Alpha图形工作站中,有105台采用了Linux操作系统。
(6)、1998年是Linux迅猛发展的一年。
①、1月,小红帽(RedHat)高级研发实验室成立,
②、4月Mozilla 代码发布,成为linux图形界面上的王牌浏览器。
③、王牌搜索引擎"Google"现身,采用的也是Linux服务器。
④、Oracle 和Informix 两家数据库厂商明确表示不支持Linux,这个决定给予了Mysql数据库充分的发展机会。
LAMP:linux+apache+MySql+PHP
⑤、微软在法国发布了反Linux公开信,这表明微软公司开始将Linux视作了一个对手来对待。
(7)、2001年1月,Linux 2.4发布。
(8)、2003年12月,Linux 2.6版内核发布,相对于2.4版内核2.6在对系统的支持都有很大的变化。
Linux内核
https://www.kernel.org/
二、 linux的特点
1、Linux的基本思想有两点:
第一,一切都是文件;
包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。
第二,每个软件都有确定的用途。
2、完全免费
Linux是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了Linux的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让Linux吸收了无数程序员的精华,不断壮大。
3、完全兼容POSIX 1.0标准
这使得可以在Linux下通过相应的模拟器运行常见的DOS、Windows的程序。这为用户从Windows转到Linux奠定了基础。许多用户在考虑使用Linux时,就想到以前在Windows下常见的程序是否能正常运行,这一点就消除了他们的疑虑。
4、多用户、多任务
Linux支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。
多任务则是现在电脑最主要的一个特点,Linux可以使多个程序同时并独立地运行。
5、良好的界面
字符界面:Novell Netware、UNIX、DOS等
图形:Windows、苹果操作系统(Mac OS X)等
Linux同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。
Linux操作系统软件包不仅包括完整的Linux操作系统,它同时也提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标对其进行操作。在X-Window环境中就和在Windows中相似,可以说是一个Linux版的Windows。例如:Ubuntu的界面。
Linux操作系统软件包还包括了文本编辑器(例如:VI)、高级语言编译器(例如:GCC)等应用软件。
6、支持多种平台
Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。
此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。
2001年1月份发布的Linux 2.4版内核已经能够完全支持Intel 64位芯片架构。
同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
7、Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Web服务器,FreeBSD
8、Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。
9、Linux能与现有存在的操作系统共存,例如Ubuntu可以安装在Windows下,做为Windows的一个软件使用。
三、Linux系统的组成
内核、shell和文件系统一起形成了基本的操作系统结构
1、Linux内核
https://www.kernel.org/
Kernel实现操作系统的基本功能
硬件方面:控制硬件设备,内存管理,硬件接口,基本I/O
软件方面:管理文件系统,为程序分配内存和CPU时间等
版本号有三个数字组成:r.x.y
r:目前发布的Kernel主版本
x:偶数:稳定版本,奇数:开发中版本
y:错误修补的次数
例1: 2.6.18
2:主版本号
6:次版本号,表示稳定版本(因为有偶数)
18:修订版本号,表示修改的次数
2、Linux Shell
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器)它接收用户输入的命令并把它送入内核去执行。
§ 目前主要有下列版本的Shell有:
Bourne Shell:是贝尔实验室开发的。
BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell。
Korn Shell:是对Bourne Shell的发展,在大部分内容上与Bourne Shell兼容。
C Shell:是SUN公司Shell的BSD版本,常用于嵌入式。
3、Linux 文件系统
§ 文件系统是文件存放在磁盘等存储设备上的组织方法。
§ 主要体现在对文件和目录的组织上。
§ Linux采用统一的树型结构的文件系统
§ 在Linux文件系统下可以:
切换目录、访问文件
设置目录和文件的权限
设置文件的共享
§ Linux支持多种类型的文件系统
四、Linux的应用
1、Linux服务器 (中低端的应用服务器)
(1)、LAMP:Linux+Apache+Mysql+Perl/PHP/Python
一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。从网站的流量上来说,70%以上的访问流量是LAMP来提供的,LAMP是最强大的网站解决方案.
(2)、Linux下java web服务器搭建Linux+JDK1.6+MySQL5.1+Apache2.2+Tomcat6+svn1.6
2、嵌入式Linux系统 :ARM+Linux
嵌入式软件开发是linux应用最广的领域
3、桌面(办公软件、电子政务)
例:Titanic的特效 -> 350台SGI及160台DEC Alpha工作站,运行Red Hat 4.1
五、linux发行版的选择
Linux 发行套件(Distribution) :以Linux Kernel为核心,搭配各种应用程序和工具。
1、Red Hat Enterprise Linux(RHEL)、CentOS(CentOS-5.5、CentOS-6.3)、Fedora
2、Ubuntu(Ubuntu9.10)
3、Debian
4、FreeBSD: 最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。
5、红旗Linux:桌面版和服务器版
附:个人用过的版本
Red Hat Linux9,Fedora、RHEL5.1-Server、CentOS-5.5、Ubuntu9.10、Magic Linux、红旗Linux等
六、如何学好Linux(兴趣是最好的老师)
1、学Linux需要什么基础?
(1)、多动手:熟能生巧
(2)、C语言(尤其是嵌入式Linux)
(3)、英语:英文版
2、程咬金的三板斧
(1)、linux安装
(2)、Linux文本编辑器(vi、vim)
(3)、shell脚本
七、linux学习书籍推荐
1、《Linux/Unix设计思想》
2、《RHCSA/RHCE Red Hat Linux认证学习指南(第6版)》
附1、GNU&GPL
& GPL(General public License)软件
通用公共许可软件。此类软件的开发不是为了经济目的,而是不断开发�源�播新的软件,并让每个人都能获得、拥有。CopyLeft。
该类软件遵循一定的规则:
1. 传播者不能限制购买软件的用户自由权。即如果用户买了一套GPL软件,就可以免费复制和传播或自己出售。
2. 传播者必须清楚告诉用户该软件属于GPL软件。
3. 传播者必须免费提供软件的完整源代码。
4. 允许个人组织为盈利而传播,获得利润。
& GNU�C Gnu’s Not Unix
§是自由软件基金会FSF(Free Software Foundation)中头一个名为GNU的团体,目前近400人。它的目标是创建一套完全自由的操作系统。
§ GPL �CGNU通用公共许可证软件的源程序可以自由流通,软件公司不应该把源程序拒为己有,或借发行编译过的软件赢利,软件公司要赚取的应该是系统集成和服务的费用,所有的程序员可以交换心得,保证软件质量。
附2、GNU和linux
§ Linus本人认为:“使Linux成为GPL的一员是我一生中所作过的最漂亮的一件事”。
§ GNU的开发过程:
先开发gcc等强大工具,最后再开发GNU Kernel ( Hurd ) 最优秀的操作系统Gnu’s Not Unix
§ Linux的出现 Linux Kernel + GNU Software Debian/Linux 填补Hurd出现前的真空状态
附3、POSIX简介
POSIX标准
UNIX发展过程中,出现了许多变种(BSD,System V 等)。为统一标准,出现了POSIX系列标准,它定义了一套标准的操作系统接口和工具。从理论上说,POSIX标准代码很容易移植到��何遵守POSIX的操作系统中。今天,几乎所有的正式操作系统都以支持POSIX标准为目标。
§ POSIX �C Portable Operating System Interface
§ 各家厂商发展自己的Unix -> 各Unix系统不兼容!
§ 1988年,NTST/CSL的组织召开各Unix厂商,组织和用户共同制定了POSIX,可移植操作系统标准界面(IEEE 1003.1)
§ 结果:只要遵循POSIX,某一个Unix环境下的软件,只需做少许的修改,就能在其他的Unix环境下编译成功。
附4、开放源代码(Open Source)
§ 宗旨
允许任何人自由传播复制及修改软件的程序代码,而不在于不收费
§ 起源
1983.9,Richard M. Stallman (RMS) 理查德・马修・斯托曼,FSF(Free Software Foundation)的创始人,目前为GNU Project的项目主持人
产品种类
- Kernel
- Editor
- Shell
- C compiler,linker,assembler
附5、UNIX特性
1、UNIX系统是一个多用户,多任务的分时操作系统。
2、UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),系统的外壳(贴近用户)。外壳由Shell解释程序,支持程序设计的各种语言,编译程序和解释程序,实用程序和系统调用接口等组成
3、UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。
4、UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。
5、UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。
6、UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。
7、UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。
8、UNIX系统提供多种通信机制,如:管道通信,软中断通信,消息通信,共享存储器通信,信号灯通信。