Linux学习基础
1、什么是Linux?
准确的说,是指Linux的kernel(系统的核心程序),其内核版权属于Linus Torvalds,在GPL(GNU General Public License)版权协议下发行, 任何人都可以自由的复制(copy), 修改(change), 套装分发(distribute),销售,但是不可以在分发时加入任何限制, 而且所有原码必须是公开的,所以任何人都可以无偿取得所有执行文件和原代码。
对于Linux用户和系统管理员来说,Linux是指包含Linux kernel、utilities (系统工具程序)以及application (应用软件)的一个完整的操作系统。Linux的应用软件是由自由软件基金会(FSF)开发的,全世界许多热心的程序员为Linux开发或移植了很多应用程序,包括X-Windows、Emacs、TCP/IP网络(包括SLIP/PPP/ISDN)等等,现在Linux(包括内核和大量的应用程序)光是执行程序就已经达到200M,完全安装后的规模将更大(大约500M左右)。
从本质上讲,Linux是Unix的”克隆”或Unix风格的操作系统,在原代码级上兼容绝大部分的Unix标准(如IEEE POSIX,System V,BSD),它遵从 POSIX规范,例如对于System V来说,把其上程序源代码拿到 Linux下重新编译后就可以运行,而对于BSD Unix来说,它的可执行文件可以直接在Linux环境下运行。
Linux的标志是可爱的企鹅,至于为什么选用企鹅,Linus是这样说的:别的都被他人用了,企鹅,不是也非常可爱吗?!由Linux作者发布的仅仅是一个内核而己,有一些公司或组织把内核、原代码及相关的应用程序组织在一起发行, 于是就产生了不同的Linux发行(distributor)版本, 比较著名的发行版本有RedHat、SlackWare 、S.u.S.e、Debian 等。
2、Linux的发展历史?
Linux的历史可以追溯到1990年,Linus Torvalds还是芬兰赫尔辛基大学的一名学生,最初用汇编语言写了一个在80386保护模式下处理多任务切换的程序,后来从Minix(用于操作系统教学、很小的Unix)中得到灵感,发誓要写一个比Minix更好的Minix,于是开始写了一些硬件的设备驱动程序、一个小的文件系统......,这样0.0.1版本的Linux就出来了,但是它必须在有Minix的机器上编译以后才能玩,这时候的Linus已经完全“走火入魔”了,决定踢开Minix“闹革命”,于是在1991年10月5号发布了Linux 0.0.2版本,这个版本已经可以运行bash(一种用户与操作系统内核通讯的软件)和gcc(GNU C编译器)了。
Linus从一开始,就决定自由扩散Linux、包括源代码,他把源代码发布在网上,随即就引起爱好者的注意,他们通过互连网也加入了Linux的内核开发工作,一大批高水平程序员的加入,使得Linux达到迅猛发展,到1993年底,Linux 1.0终于诞生。Linux 1.0已经是一个功能完备的操作系统了,其内核写得紧凑高效,可以充分发挥硬件的性能,在4M内存的80386机器上也表现得非常好。
很多人对Linux的认识有个误区,即总把Linux与低档硬件平台联系到一起,其实从2.1.xx系列内核开始,Linux就开始走高端的路子了,大约在1.3版本之后,开始向其他硬件平台上移植,包括号称最快的CPU---Digital Alpha(目前主频是最高的),目前Linux能将硬件的性能充分发挥出来,可以囊括低端到高端的所有应用。
Linux加入GNU并遵循公共版权许可证(GPL),由于不排斥商家对自由软件进一步开发,不排斥在Linux上开发商业软件,故而使Linux又开始了一次飞跃,出现了很多的Linux发行版,如Slackware、Redhat、Suse、TurboLinux、OpenLinux等十多种,而且还在增加,还有一些公司在Linux上开发商业软件或把其他Unix平台的软件移植到Linux上来,如今很多IT界的大腕如IBM、Intel、Oracle、Infomix、Sysbase、Corel、Netscape、CA、Novell等都宣布支持Linux! 商家的加盟弥补了纯自由软件的不足和发展障碍,Linux得以迅速普及。
3、为什么要使用Linux?
使用Linux可让您在相对低价的Intel X86硬件平台上实现高档系统才具有的性能, 许多用户使用benchmarks在运行Linux的X86机器上测试,发现可以和Sun和Digital公司的中型工作站性能媲美。事实上不光是许多爱好者和程序员在使用Linux,很多商业用户比如Internet服务供应商(ISP)也使用Linux做为服务器来代替昂贵的工作站,这些服务器系统稳定性的最高记录是连续运行600天没有碰到过一次系统崩溃!
★ 如果您受不了Windows的经常崩溃、想换个系统平台,就选用Linux吧,您会惊奇地发现Linux相当稳定、性能也非常好。
★ 如果您想学习操作系统、比如Unix,可从Linux开始,因为狂热喜欢Linux的人在学习UNIX方面的进步是神速的,Linux是开放原代码的OS、遵循公共版权许可证(GPL),而且还很有前途,完全免费,不用您一次又一次地破费去买软件许可证了。
★ 如果您是IT企业,Linux这么热,潜在的商机不可估量,尽早研究它,以便为将来发展抢占制高点。
★ Linux非常适合开发Internet/Intranet,利用它的开放原代码,您可以开发WEB服务器、路由器、嵌入式系统、网络计算机、个人数字助理等,Oracle,Infomix,Sysbase,IBM都支持Linux了,用它来做数据库平台也挺不错,采用Linux可以极大地降低开发总成本。
★ 开放原代码的Linux可使您拥有对系统的完全控制权,原代码开放,可使您能按照自己的需要添加或删除某些功能,随意打造自己的操作系统,发展自主版权的操作系统,Linux是条路。
4、Linux能做什么?
Linux如今在很多方面都超过商业性的Unix系统,它支持多用户、多进程、多线程、实时性较好、功能强大而稳定,可以运行在Intel处理器、DEC的Alphas、Motorola的M68k处理器、Sun Sparc、PowerPC、MIPS等平台上,能运行的硬件平台目前是最多的。象现代Unix操作系统那样, 它也具有虚拟内存、共享库、命令装载、执行代码之间共享的拷贝-执行-写盘页操作、恰当的内存管理和TCP/IP网络等。
Linux的网络功能十分强大,比如你可以通过FTP、NFS等来安装Linux,用它来做WEB服务器、网关等等,随着Linux的发展,其衍生出来的应用恐怕连Linus本人也很难想到。Linux最大的单项应用是Internet和Intranet服务器,涵盖了从防火墙到Web服务器的具体应用。据分析家估计,Linux已成为网上的第二大通用操作系统。Linux的其它应用“从打印服务器,到FTP服务器、到数据收集等应有尽有”,目前在网上应用最多的Apache Web服务器也已成为各种标准Linux扩散版的一个部分。
即使作为一种台式机操作系统,与许多用户非常熟悉的Unix相比,它的性能也显得更为优秀。一台Linux服务器支持100到300个用户毫无问题,一台Linux打印服务器支持200到300台网络打印机更是易如反掌。而且它不大在意CPU的速度,它可以把每种处理器的性能发挥到极限,对于Linux来讲,影响系统性能提高的限制因素主要是其总线和磁盘I/O的性能。
另外Linux和一般软件有很大的不同,因为它属于自由软件,所以你可以和朋友分享LINUX,可以任意地复制、使用它。
5、什么是Linux发布?有哪些Linux发布?
象RedHat那些的销售商一般将Linux kernel和外围程序整合起来,然后发布自己的基于Linux内核的整套Linux系统:通常包括有一个C语言及C++编译器,Perl脚本解释程序,外壳Shell,图形用户界面X窗口系统,还有X Server以及众多的应用程序等,这种整套的Linux系统习惯叫做Linux发布(distribution)。
目前使用最广泛的Linux发布是RedHat公司的RedHat Linux,现在Netscape、Intel等一些大公司都支持它,前景看好,按照一般的看法Redhat也是最容易上手的Linux发布。以前使用广泛的Slackware,现在也还有许多人在用,SLackware和RedHat相比要稍微复杂些,这主要是指在软件安装方面:由于RedHat使用rpm打包系统,安装新软件简单到只要一行命令即可,而Slackware往往要从源代码重新编译,稍微费事一些。SuSE也用基于rpm打包系统,SuSE的特别之处在于它对X窗口系统的支持非常好,Debian完全是由志愿者开发的,基于自己的Deb格式打包系统,但是它也可以安装rpm软件包。
6、Linux的Kernel 版本与 Distribution 版本有何区别?
Linux版本是指其内核版本,Linus等人在不断推出新的kernel,使用比较广泛的有1.2.8、1.2.13、2.0、2.2.x等版本,相应的utilities和应用软件则多是GNU的或自由软件。
初学者常会把 Kernel 与 Distribution混为一谈。对Kernel版本来说,目前版本的序号大约是2.4.0.(以偶数为第二个序号表明这是个可以使用的稳定版本,如2.2.30,而奇数为第二个的,一般有一些新的东西加入,不一定很稳定如2.1.37);相对于 Kernel版本,Distribution的版本随种类不同而不同,其中Slackware Linux是从1.0.4一直到最近的4.0,RedHat最新版本是7.1,Debian是2.2.x。
Linux Kernel的发展与 Distribution 版本的发展是各自独立的,例如Slackware Linux 通常内附一个Kernel Source code,以及针对很多不同硬件设备的Kernel Image,一般用户最需要掌握的就是更新系统内核技术:也即首先取得最新版(同时必须确定是稳定版本)的Kernel Source,然后取代随Slackware Linux附带的旧版Source code,重新编译成Kernel Binary,进行新旧更新,这样就可以在不重新安装系统的前提下更新系统核心。
7、Intel平台上有哪些Linux发布(distribution)?
主要有Red Hat、Slackware、Debian、SuSE、OpenLinux、TurboLinux。
(1)Red Hat
以容易安装著称,初学者安装这个版本,遇到挫折的机会几乎是零,如果您对安装Win9x已驾轻就熟的话,Red Hat Linux的安装一定难不倒您。
Red Hat另一个优点是它的RPM(Red Hat Package Manager);以往在安装软件时,最让使用者伤脑筋的是:软件在解开压缩前先要新建一个目录,然后将软件搬进去解压,解压后,有些部份可能需要搬到另一个目录中去,当要搬移的项目多时,做这些工作就是件苦差事了。而RPM「包裹管理者」就针对这一点,能将所有要安装的路径全部安排好,当使用者解开有「.rpm」扩展名的文件时,会将当初打包该文件时设定好的路径档案先检查一次,然后依照档案里的设定,将各个文件解开,送到它们应该去的地方;不只如此,它还会制作安装记录,当使用者要移除其中任一个rpm文件时,系统会根据安装记录将该文件反安装,这种做法绝对准确,不会像Windows那样会移除不该拿掉的东西。
Red Hat Linux可以说是相当成功的一个产品,Red Hat公司有「官方版本」(official)供使用者购买,也提供了自由的FTP站供大众直接下载,官方版本与自由下载版本差异在于,官方版本多提供了一些商用软件和印刷精美的说明书。
(2)Slackware
这是个老字号的门派了,前几年玩Linux的人,几乎都用这套系统。它可完全「手工打造」个人需求的特性,让很多目前已是高手级的玩家仍念念不忘,Slackware在国内用得很多,也许用来做服务器,性能会好些。最新版本4.0,安装的过程已改善了不少,各位想要「完全掌控」情况的朋友可以一试。
(3)Debian
您通常会在Debian字眼后看见GNU Linux的字样,该派别目前是大家公认的结构最严谨、组织发展最整齐的,它也有一个包裹管理系统称之为「dpk」(Debian Package),所作的事情和Red Hat的「rpm」异曲同工,使整体文件的管理更加方便。Debian的原始程序代码都是遵循GNU的方式开放的,所以它完全符合开放原代码精神,不像其它的Linux都或多或少的保留了一部份程序代码不开放(Red Hat是直到6.0版才全部开放的)。目前版本2.1,并有一部份程序设计师,将Debian移植到其它平台上,所以也可以在其它平台上看见其踪影。
(4)SuSE
这是一套在欧洲相当受欢迎的版本,它和XFree86合作开发x86上 的X Server。SuSE安装时可以选择显示德文或英文,它还有自己的一套设定程序叫做「SaX」,可以让使用者较方便的设定,它的安装套件也采用RPM模式,所以要安装、升级与移除程序都非常方便,目前版本6.1。
(5)OpenLinux
这是由Caldera公司推出的版本,并不是很「Open」的一个版本,网上可以下载其Lite版本, 但正式版本是要money的,因为整个套件中有许多商用软件,所以并没有提供网络下载的服务。
(6)TurboLinux
由Pacific HiTech公司发展的套件,该套件在日本市场占有一席之地,从安装到使用接口都是日文的,在国内它与清华大学及研究机构合作研发了中文版本,在国内造成了一股Linux潮流,目前已推出3.0.2的简体版本,3.6的英文版本。
8、Mac平台上有哪些Linux发布(distribution)?
主要有MKLinux、Red Hat、LinuxPPC、Turbo Linux、Yellow Dog Linux等,除了MKLinux是苹果官方的版本外,其它都是「在野人士」;不过大家都不约而同的采用了RedHat公司发展的原始码包装方式,再加上自己的一些套件,然后推出自有的版本;这也就是说,大家的安装方式几乎都一样,对使用者来说,这倒是好事,可以省下很多摸索的时间了。
(1)Red Hat
参见前文介绍
(2)MKLinux
MKLinux是苹果计算机公司发展的版本,可以说是「老字号」了,目前版本是DR3版。
(3)LinuxPPC
目前的版本是5.0,采用Linux2.2版核心(kernel)以及glibc 2.1版;该版本支持USB及一些新设备,可以安装在新的Power Mac G3机型上,LinuxPPC的执行效率要比MKLinux好。与MKLinux相比,LinuxPPC只能使用在PCI接口的Power Mac上,而MKLinux可以用在所有机型上,这两个系统长得太像了,除了适用的机型不同和执行效率上的差异外,其它的部份几乎相同,所有可执行软件都一样。
(4)Turbo Linux
Turbo Linux在Mac上可看到的版本是2.1版,它在安装时会出现选取窗口,让使用者在安装时选取安装MKLinux或LinuxPPC,然后开始安装系统,所以该版本只是在安装过程上有些不同,其它的内容大同小异;Turbo Linux的Mac版本并没有中文化,并且开发的速度也比PC版本慢很多,估计Mac版本已经暂时被「搁」在一边了,Pacific HiTech公司在全力发展PC版本。
(5)Yellow Dog Linux
建议把它安装在Mac、iMac、蓝白G3的Power Mac系列机器上使用。它有两种版本,分别是称为「Champion」的服务器版本以及称为「Black Lab」的版本;「Champion」是一般使用者安装的版本,而「Black Lab」版本具有「并行处理」(Parallel Computing)能力:使用者可以在很多台Mac都装上该系统,然后让所有的Mac“一起处理”事情,这会使处理速度变得非常快。开发Yellow Dog Linux的公司专注在PowerPC Mac的平台上发展,目前还没有“Intel平台”的Yellow Dog Linux版本。
9、RedHat、Slackware及Debian,选谁家?
从互联网上能够取得的Linux版本非常多,CD-ROM 版本就更多了,RedHat Linux、Slackware Linux及Debian Linux是其中最著名的三个发布。
RedHat Linux 对Linux初学者来说,绝对是最好的选择,它完善的系统配置,预装了丰富的应用软件,功能强大的系统管理程序,可使用户花相当少的时间和精力获得一个完善的Linux环境,其独特的RPM包装程序,更让用户不需要重新安装Linux系统就可以对整个系统进行升级。但是它目录结构复杂,系统配置文件零乱,对高级用户来说,并不是一个好的选择,在这一点上Slackware就要略胜一筹。
Slackware与Debian相比,不推荐大家使用Debian,因为Debian与更新速度较快的Slackware比较,在软件版本上相差很大。
所以对于初学者建议选择RedHat Linux,而高级用户使用Slackware似乎更适合。
10、目前有哪些中文Linux发布(distribution)?
目前中文Linux发行版本主要有:腾图Linux风暴系列之一REDHAT Linux6.1、红旗Linux、蓝点Linux、TurboLinux Chinese Version (GB)、Xteam Linux (GB)
11、如何得到Linux?
Linux的源代码是公开的,各版本的Linux,包括从内核到众多应用程序的源代码、执行文件,都可以从互联网上免费下载。也可以通过购买发行光盘或D版光盘得到Linux系统,和一般软件不同的是,你可以和朋友合法地分享Linux光盘,很显然Linux光盘的价格不会很高。Linux有很多发行版和销售商。
12、Linux有那些著名的网站和新闻组?
著名的网站和Linux在线,上面有许多关于Linux的新闻、新软件、文档资料、链接等信息。
Comp.os.linux.announce是著名的Linux新闻组,其中可以发现许多关于Linux的问题和解答,在comp.os.linux.*中下列的新闻组也值得一看:
comp.os.linux.setup
comp.os.linux.hardware
comp.os.linux.networking
comp.os.linux.x
comp.os.linux.development.apps
comp.os.linux.development.system
comp.os.linux.advocacy
comp.os.linux.misc
如果您访问comp.os.linux.*速度慢,还可以访问当地的新闻组,例如中国comp.os.linux.*的新闻组是cn.comp.os.linux。
13、Linux服务器最多能担负多少用户同时访问?多少用户同时访问时等待时间能接受?
没有用户数目的限制。如果只是作文件服务器用,基本上没有等待时间。网络带宽是一个限制,如果用100base-Tx,感觉应该和你本地磁盘差不多。
14、什么样的PC能运行Linux?
Linux支持Intel的X86、PIII等CPU,还支持INTEL MP架构的多处理器系统(现在也可以在 Sparc、Alpha、PowerPC等CPU的机器上运行,甚至已经移植到娱乐业的游戏机任天堂64上,成为类似于WindowsCE那样的简易操作系统),至少需要4M内存、一个单软驱动器,该PC的总线:可以是传统ISA bus、EISA、VESA Local、MCA(IBM所有的总线)、或Intel PCI等,支持大多数的ESDI、IDE、ATA33/66/100硬盘。
Linux可以运行在DEC公司的Alpha机上,也可以运行在Sun公司的Sparc机器上,当然也可以运行在Intel公司的386以上的机器上,编写好的源代码可以不经修改的在各种不同的Linux平台上直接编译、安装运行。
Linux安装的最小配置是:
80386以上CPU
内存4M以上
硬盘80M以上
Linux不能在 80286 CPU的机器上运行,内存比4MB少的机器也不行,如果内存少于4MB,就不能安装,想运行X Window的话,8MB是最低要求。如果拿Linux作server的话,至少要有16MB的内存,运行Netscape这类软件则需要64M内存。至于硬盘,从零到几GB都行,最好有500MB以上空间。
15、Linux能支持的硬件?
Linux支持的硬件设备是UNIX系统中最多的,支持几乎所有类型的显示卡和显示器、各式各样的鼠标、几乎所有类型的SCSI设备,大部分的IDE接囗硬件,还支持所有的SCSI磁带机及QIC-02型磁带机、SCSI CDROM驱动器及部分EIDE(ATAPI)接囗CDROM、所有SCSI接囗的外接驱动器、并囗的ZIP驱动器等。
Linux支持的CPU有:Intel/AMD/Cyrix 出品的x86系列CPU
386SX/DX/SL/DXL/SLC,
486SX/DX/SL/SX2/DX2/DX4,
Pentium.
Pentium MMX
Pentium Pro
K6,M2,K7,Cyrix 6x86等
由于Linux Kernel支持模拟FPU,即使无FPU协处理器的CPU,Linux也支持,只是系统速度将会下降,尤其是在做编译和图形处理等方面工作时,但在Pentium系列CPU已成为主流的现在,这个问题已不复存在。
此外,Linux2.0以后的核心都支持多CPU(SMP),不管哪个发行版本,只要采用2.0以后的核心,都支持多CPU。
方法是:在编译核心前,把/usr/src/linux/Makefile开头的SMP=1 改成 SMP=n , n是你的CPU数,然后再make dep ; make clean ; make install ; make modules ;make modules_install 启动后,就成功了!
16、Linux上有哪些软件?在Linux下如何运行DOS和Windows程序?其上能运行office2000吗?
Linux 有C程序编译器GCC, 编辑软件Emacs, 图形化界面X-windows, 所有标准的UNIX系统工具(utilities), TCP/IP网络(包括SLIP/PPP)和数以百计的开发或移植的各种应用程序。
Linux中有一个称作dosemu的Dos模拟器,它可以模拟DOS,运行一些DOS应用程序。准确的说dosemu并不是Dos模拟器,它提供了一个虚拟x86机来运行dos,可以运行Dos6.22和纯Dos7。它也提供VCPI和DMPI的支持。在dosemu下可以运行标准模式和386增强模式的Win98,不过配置相当困难,表现的性能也不好,不够稳定。
Linux上也可以运行一些Windows程序,这种模拟器的研制工作已经有了进展,支持SVR4 ELF 和 SVR3.2 COFF二进位的iBCS2 (Intel 二进位兼容标准)模拟代码,可以作为编译项包含在Linux内核中,另外,有些公司提供了一些商业性软件(付费, 有版权),如Motif,Aplixware,WordPerfect等。
office2000没有for Linux版的,在Windows模拟器上也无法运行,在Linux上可以使用staroffice和applixware office之类的for Linux办公软件,不过它们都是商业软件。