第一讲 linux简介

  1. 云栖社区>
  2. 博客>
  3. 正文

第一讲 linux简介

技术小美 2017-11-17 15:32:00 浏览800
展开阅读全文

一、什么是LinuxLinux的发展史

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版)》

 

 

1GNU&GPL

 GPLGeneral public License)软件

通用公共许可软件。此类软件的开发不是为了经济目的,而是不断开发幵传播新的软件,并让每个人都能获得、拥有。CopyLeft

该类软件遵循一定的规则:

1. 传播者不能限制购买软件的用户自由权。即如果用户买了一套GPL软件,就可以免费复制和传播或自己出售。

2. 传播者必须清楚告诉用户该软件属于GPL软件。

3. 传播者必须免费提供软件的完整源代码。

4. 允许个人组织为盈利而传播,获得利润。

GNU– Gnu’s Not Unix

§是自由软件基金会FSFFree Software Foundation)中头一个名为GNU的团体,目前近400人。它的目标是创建一套完全自由的操作系统。

§ GPL –GNU通用公共许可证软件的源程序可以自由流通,软件公司不应该把源程序拒为己有,或借发行编译过的软件赢利,软件公司要赚取的应该是系统集成和服务的费用,所有的程序员可以交换心得,保证软件质量。

 

2GNUlinux

§ Linus本人认为:“使Linux成为GPL的一员是我一生中所作过的最漂亮的一件事”。

§ GNU的开发过程:

先开发gcc等强大工具,最后再开发GNU Kernel ( Hurd ) 最优秀的操作系统Gnus Not Unix

§ Linux的出现 Linux Kernel + GNU Software Debian/Linux 填补Hurd出现前的真空状态

 

3POSIX简介

 POSIX标准

UNIX发展过程中,出现了许多变种(BSD,System V 等)。为统一标准,出现了POSIX系列标准,它定义了一套标准的操作系统接口和工具。从理论上说,POSIX标准代码很容易移植到仸何遵守POSIX的操作系统中。今天,几乎所有的正式操作系统都以支持POSIX标准为目标。

§ POSIX – Portable Operating System Interface

§ 各家厂商发展自己的Unix -> Unix系统不兼容!

§ 1988年,NTST/CSL的组织召开各Unix厂商,组织和用户共同制定了POSIX,可移植操作系统标准界面(IEEE 1003.1

§ 结果:只要遵循POSIX,某一个Unix环境下的软件,只需做少许的修改,就能在其他的Unix环境下编译成功。

 

4、开放源代码(Open Source

§ 宗旨

允许任何人自由传播复制及修改软件的程序代码,而不在于不收费

§ 起源

1983.9Richard M. Stallman (RMS) 理查德·马修·斯托曼,FSFFree Software Foundation)的创始人,目前为GNU Project的项目主持人

产品种类

- Kernel

- Editor

- Shell

- C compiler,linker,assembler

 

5UNIX特性

1UNIX系统是一个多用户,多任务的分时操作系统。

2UNIX的系统结构可分为两部分:操作系统内核(由文件子系统和进程控制子系统构成,最贴近硬件),系统的外壳(贴近用户)。外壳由Shell解释程序,支持程序设计的各种语言,编译程序和解释程序,实用程序和系统调用接口等组成

3UNIX系统大部分是由C语言编写的,这使得系统易读,易修改,易移植。

4UNIX提供了丰富的,精心挑选的系统调用,整个系统的实现十分紧凑,简洁。

5UNIX提供了功能强大的可编程的Shell语言(外壳语言)作为用户界面具有简洁,高效的特点。

6UNIX系统采用树状目录结构,具有良好的安全性,保密性和可维护性。

7UNIX系统采用进程对换(Swapping)的内存管理机制和请求调页的存储方式,实现了虚拟内存管理,大大提高了内存的使用效率。

8UNIX系统提供多种通信机制,如:管道通信,软中断通信,消息通信,共享存储器通信,信号灯通信。












本文转自dllglvzhenfeng51CTO博客,原文链接:http://blog.51cto.com/1443208/1552516,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小美
+ 关注