0902第二章 构建多元化Linux编程环境.docx
- 文档编号:24249199
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:48
- 大小:2.38MB
0902第二章 构建多元化Linux编程环境.docx
《0902第二章 构建多元化Linux编程环境.docx》由会员分享,可在线阅读,更多相关《0902第二章 构建多元化Linux编程环境.docx(48页珍藏版)》请在冰豆网上搜索。
0902第二章构建多元化Linux编程环境
第二章构建多元化Linux编程环境
2.1Linux编程环境概述1
2.1.1编程环境的风格1
2.1.2Linux下的编程环境与工具2
2.1.3Linux下的编程分类3
2.1.4linux帮助应用指南4
2.2基本名词与术语4
2.2.1系统操作术语4
2.2.2系统特性术语6
2.3系统硬件需求与安装准备8
2.4Linux系统的多元化安装过程8
2.4.1裸机上的安装与卸载过程图解8
2.4.2多系统共享安装过程26
2.4.3在Windows下vmware中的Linux的安装过程27
2.4.4用cygwin软件创建Linux仿真环境29
2.4.5制作无安装直接使用系统UbuntuLinux31
2.5Linux的启动过程34
2.5.1启动内核34
2.5.2执行init程序34
2.6Linux的系统服务命令列表36
2.7Linux下软件的安装与卸载39
2.7.1二进制分发软件包的安装与卸载39
2.7.2源代码分发软件包的安装与卸载40
2.8Xshell的安装与使用41
2.1Linux编程环境概述
2.1.1编程环境的风格
Windows环境下的程序员享受的是可视化编程的生活,而Linux世界却是另一个空间,好像一切都是那么的原始、古朴与原汁原味,对于我们六七十年代出生的程序员,甚至勾起了对DOS或更早世界的依恋,来自UNIX世界的程序员对此会感到无比的亲切。
在操作系统的大舞台上,最活跃的是Windows系列和UNIX系列。
Windows以优秀的图形界面完成人机交互,带着比尔盖茨“让电脑走进每个人的桌面”的愿望风靡全球,成为个人/桌面操作系统的首选。
而UNIX则历史非常悠久,以健壮、可靠以及高深的人机交互语言著称,现在仍然是服务器操作系统的首选力作。
Windows可视化编程的典雅与UNIX神鬼莫测的高深诡异造就了程序员行列的形形色色与多姿多彩。
Linux作为UNIX系列的一支特种部队,大有后来者居上的风范,在应用中以其自身的特点,在计算机世界的系统与服务器上占据了一定的份额。
Linux的编程环境基础在于linux的存在模式,是独立安装在pc机上,还是以虚拟机的模式作为windows的一个应用程序与windows共存?
一般而言,学习时我们建议采用vmware+linux的模式比较安全,在实战应用如配置服务器时,则需要独立真实存在的linux形式才能体现其功能的完整与强大性。
在仅仅作为编程练习或进行嵌入式系统设计与开发时,还是以虚拟机的模式存在比较快捷、方便、安全、可靠。
编程工具对于linux而言,通常是可选项,只要在安装linux时作出简单的选择即可,因此,编程环境多元化构建的主要任务是linux安装或模拟的多元化。
其大类划分为三种,一是直接安装linux系统并选择需要的编程工具,二是vmware+linux并选择合适的工具,三是安装模拟系统cygwin。
在后面的小节里将详细介绍这三种构建过程。
2.1.2Linux下的编程环境与工具
Linux程序设计有一些区别于windows的特性。
首先,Linux是多任务的系统。
它可以同时创建多个进程或线程,绝不能认为自己的程序是系统唯一的运行实例,同一个用户或不同用户可以运行该程序的其他实例,因此,在某些情况下必须小心对待同步问题。
其次,Linux是真正的多用户系统,这意味着存在某种安全机制,确保不同用户的文件是隔开的。
用户的程序不能像在其他操作系统中那样,可以修改或移动任何文件,除非其用户权限是root级别的。
第三,Linux是分时系统。
它允许多个用户同时登录或一个用户登录多次。
也就是说,用户可以用telnet或X技术远程登录系统。
因些必须认识到你的程序可以同时被多个用户使用的。
在Linux系统中,它提供了一些非常实用的编程工具,包括:
1.编辑工具:
在Linux下编程,你不再拥有集成化环境,你可以使用类似于EDIT的工具---经典的vi来编辑源程序。
当然,还有更高档一些的,如joe、emacs等。
总之,编辑程序与编译工作是分开的。
2.编译工具:
在Linux下支持大量的语言,有C、C++、Java、Pascal、Fortran、COBOL等等。
在本讲义中以C/C++语言为主。
在使用这些编译工具时,是使用命令行方式的,也就是说,你先用编辑工具输入源程序,然后再执行一长串的命令(参数比较复杂)进行编译。
例如:
gcc–ohellohello.c就是将hello.c编译为hello,然后你还需要为其赋予可执行的权限,这样你才完成了整个工作。
3.软件工具:
一个大型软件总是由多个源程序组成的,为了能够将大量的编译命令作一次完成,Linux中提供了make各autoconf工具,分别用于大型软件的编译,和编译前根据机器当前状态作相应配置。
4.开发工具包:
在Linux下提供了优秀的GNUC库函数、Motif函数库、GTK函数库、QT函数库等为你的编程提供大量的支持。
5.项目管理工具:
在Linux下还有CVS这样优秀的用于版本控制、管理的软件配置管理工具。
2.1.3Linux下的编程分类
1.Shell编程:
Shell是Linux操作系统的最外层,直接与用户交互,负责解释命令。
就像DOS中的COMMAND.COM程序。
Shell编程与编写.BAT文件类似。
但其提供了一整套机制,使其具有很强大的功能,所以不可小看,善于使用Shell编程可以更好地使用和管理Linux操作系统。
2.WEB编程:
在Linux系统下,拥有最好、最普及的WEB服务器Apache,还有优秀的PHP脚本语言,所以在Linux系统下的WEB编程也是很有“钱途”的技能呀。
其包括PHP、JSP、Perl的开发。
3.普通程序开发:
在Linux系统中,你可以使用C/C++语言开发出高效的、高可移植性的应用程序来。
需要如下软件和开发包:
终端terminal、编译器(gcc、cpp、libgcc、libc6库、标准库、数学函数(在libc.so.6目录下))、连接工具(binutils--/usr/bin/size、/usr/bin/ar、/usr/bin/objdump、/usr/bin/strings、/usr/bin/as、/usr/bin/ld)、本地支持(locals)、
c共享库头文件(libc6-dev)、文档glibc-doc、参考手册glibc-doc-reference、man函数用法manpages-dev、源代码维护make与make-doc、调试程序gdb、编辑器vim、格式化源代码indent
4.用户交互式程序
Linux系统中可用ncursor库实现字符界面下的用户交互式程序。
5.X-Win编程
在Linux系统下,有一个从UNIX系统过继来的图形界面系统X-Window。
关于图形系统开发,MOTIF函数库、QT函数库、KDE函数库可助一臂之力。
2.1.4linux帮助应用指南
Linux的帮助可以分为手册页和INFO页。
在INFO页里可以使用Xemacs浏览器查看。
在手册页Manpage里存放了参考信息,是信息参考与查阅的主要来源。
对于每一条Shell命令、系统调用、库函数、配置文件和系统的守护程序,都有相关的页对其进行说明。
手册页共分八个部分,可以使用man命令进行查找。
第1部分:
Shell命令和用户级程序;
第2部分:
系统调用相关文档;
第3部分:
C和C++库函数和宏调用相关文档;
第4部分:
在内核模块、/dev目录、/proc等目录中的特殊文件和设备的相关文档;
第5部分:
系统的不同文件格式;
第6部分:
因历史原因而包含的游戏相关文档;
第7部分:
有关语言或小语言的文档;
第8部分:
守护程序或者其他系统管理员命令的相关文档。
2.2基本名词与术语
2.2.1系统操作术语
当学习新操作系统时,就必须掌握最基本的新名词术语,这样才能正确地理解关于该系统的信息文档和掌握解决问题的方法。
关于Linux系统,我们将在所有的RedHatLinux文档中经常用到以下这些术语。
1.命令Command给计算机的指令,多数使用键盘或鼠标输入。
命令行Commandline是在shell提示中键入命令的地方。
3.图形化桌面GraphicalDesktop是GUI中的最可见部分。
桌面是用户的「主目录」和「从这里开始」启动器图标的位置。
用户可以给桌面配置特殊的背景、颜色和图片来为它添加个人色彩。
4.图形化用户界面GUI(GraphicalUserInterface)是窗口、图标、菜单、以及允许用户使用鼠标和键盘来引发启动程序和打开文件等行为的总称。
5.图标Icon是代表应用程序、文件夹、快捷方式或系统资源如软盘驱动器的小图像。
启动器Launcher图标通常指启动应用程序的快捷方式。
6.说明书页Manpage和信息页Infopage。
说明书(Man是manual的简写)页和信息页提供了关于命令或文件的详细信息(说明书页比信息页提供的解释要简略)。
若要阅读su命令的说明书页,在shell提示下键入mansu(或键入infosu阅读信息页)。
要关闭说明书页,按q退出。
7.面板Panel是桌面工具栏。
通常横贯桌面底部,如图2.1所示。
面板上包含「主菜单」按钮和启动常用程序的快捷方式图标。
用户可以定制面板来满足个人需要。
图2.1桌面面板
8.根Root是在安装中创建的管理用户账号,它对用户的系统有完全的访问权。
用户必须登录为根用户来完成某些系统管理任务,如改变管理口令和运行系统配置工具。
用户帐号的创建目的是使用户不必使用根帐号来完成普通的用户任务,从而减少永久性损坏用户的RedHatLinux安装或应用程序的机会。
图2.2shell提示界面
9.RPM代表RedHat软件包管理器(RedHatPackagemanager),它是RedHat建构和发行软件文件的方式。
RPM文件是用户可以在RedHatLinux计算机上安装的软件包文件。
10.Shell提示(Shellprompt)是用户和操作系统的命令行界面(图2-2)。
shell解释用户输入的命令,并把它们传递给操作系统。
11.su和su-命令。
su给用户到根账号或系统上其它账号的访问权。
当用户在用户账号的shell内键入su来切换到根账号时,用户就能够改变重要的系统文件。
使用su命令使用户成为使用根账号shell的根用户。
登录为根用户时请务必小心。
12.X或X窗口系统(XWindowSystem)代表图形化用户界面环境。
如果用户在X内或在运行X,意味着用户的工作环境是GUI而非控制台。
2.2.2系统特性术语
1.文件系统、分区和挂载
文件系统是指操作系统中与管理文件有关的软件和数据。
Linux文件系统和Windows中的文件系统有很大的区别,在Windows下,目录结构属于分区。
Linux下,分区属于目录结构。
在Linux中把分区和目录的对应以及后来对目录的操作就是对分区的操作,实现了硬件管理和软件目录管理的统一。
分区和目录的对应过程叫做挂载(mount),目录在文件树中的挂载位置称为挂载点。
2.主分区、扩展分区和逻辑分区
硬盘分区是针对硬盘进行的操作,可以分为主分区、扩展分区和逻辑分区。
主分区是包含操作系统启动时必需文件和数据的硬盘分区。
在硬盘上安装操作系统,则该硬盘必须要有一个主分区,且主分区的数量可以有1~3个扩展分区,也就是除主分区外的分区,但它不能直接使用,必须再划分为若干个逻辑分区才能使用,其数量可以有0或1个;而逻辑分区则在数量上没有什么限制。
如果用户先装了Windows,则Windows的C盘是装在主分区上,可以把Linux安装在另一个主分区或者扩展分区上。
为了安全起见,一般把Linux装在逻辑分区上。
3.交换分区SWAP
在硬件条件有限的情况下,为了运行大型程序,Linux在硬盘上划出一个区域来当作临时内存,在Windows操作系统里这个区域称为虚拟内存,Linux把它叫做交换分区swap。
在安装Linux建立交换分区时,一般将其设为内存大小的2倍或更大。
4.分区格式
微软公司的Windows选择了FAT32、NTFS两种格式,但Windows不支持Linux上常见的分区格式。
Linux是一个开放的操作系统,它最初使用EXT2格式,后来使用EXT3格式,但它同时支持非常多的分区格式,包括很多大型机上Linux使用的XFS格式,也包括微软公司的FAT及NTFS格式。
5.GRUB和LILO
GRUB是一种引导装入器,负责装入内核并引导Linux系统,位于硬盘的起始部分。
由于GRUB多方面的优越性,现代Linux一般都默认采用GRUB引导系统。
但事实上它也可以引导Windows等多种操作系统。
LILO(LinuxLoader)是Linux系统内核载入程序,同时具备管理开机的功能。
单独执行LILO指令,会读取/etc/目录下的LILO.conf配置文件,然后根据其内容安装LILO。
LILO作为Linux自带的优秀开机启动管理程序,可以开机启动Linux,PC/MS-DOS,OS/2,WindowsNT,386BSD,SCOLinux,Linuxware等多种操作系统。
根据安装程序的提示,可以选择自动或定制安装。
自动安装比较简单,按照提示一步一步去做即可,定制安装则比较复杂。
6.root用户和普通用户
Linux是一个多用户系统,不同用户和用户组会有不同的权限。
具有超级权限的用户称为root用户,其默认主目录在“/root”下,而其它普通用户的目录则在“/home”下。
7.磁盘分区
磁盘是一种标准的块设备,被分为4个区域。
其中引导块存放引导例程,然后是标识磁盘的超级块,定义了各磁盘区域的大小,并记录了空闲块。
第3个区域包含i列表,i-list上的每一项都是i节点,它是一个64字节长的文件定义,列出了与一个普通文件相关磁盘的块地址。
特殊文件描述的是物理设备,一个特殊文件的i-node保存了该设备的主设备号和次设备号。
i-node按顺序编号。
一个i-node在i-list中的偏移量是它的i-node号。
在i-list之后,余下的磁盘空间被分成大小为1KB字节的块,用来保存数据和目录。
一个已知的i-node指向根目录。
用户登录时,Linux读取根目录,找到属于用户的主目录,把此目录对应的i-node号记录在进程的系统数据区内。
当收到改变目录的命令时,Linux用新目录的i-node替换原先记录的i-node。
当程序打开一个普通文件时,Linux从当前工作目录的i-node开始搜寻所需要的文件。
目录中的每一项由文件名和一个i-node号组成。
一旦文件名被找到,就提取相关的i-node号,指向文件的i-node,此文件i-node保存了文件第一个块的地址,从它开始,有一条指针链,可以把文件的所有块链接起来。
8.Linux中的文件类型与文件属性
Linux中主要文件类型分为4种,即普通文件、目录文件、链接文件和设备文件。
对于Linux中的文件属性,其基本格式是:
-rwxrwxrwx。
Linux中文件的拥有者可以把文件的访问属性设为3种不同的访问权限:
可读(r)、可写(w)和可执行(x)。
文件有3种不同的用户级别:
文件拥有者(u)、所属的用户组(g)和系统里的其他用户(o)。
第一个字符显示文件的类型:
“-”表示普通文件。
“d”表示目录文件。
“l”表示链接文件。
“c”表示字符设备。
“b”表示块设备。
“p”表示命名管道比如FIFO文件。
“f”表示堆栈文件比如LILO文件。
第一个字符之后的3个三位字符组:
第一个三位字符组表示文件拥有者(u)对该文件的权限。
第二个三位字符组表示文件用户组(g)对该文件的权限。
第三个三位字符组表示系统其他用户(o)对该文件的权限。
若该用户组对此没有权限,一般显示“-”字符。
2.3系统硬件需求与安装准备
根据软件发布站点或有关站点的说明,了解Linux的相关版本对硬件的最低需求。
一般来说,也可以直接安装,有问题时再上网查询症结之所在。
安装Linux系统对硬件的要求很低,可以运行在386以上CPU,8M以上内存的PC机上。
但由于设备厂商的支持力度不够,Linux对很多新设备不能很好支持,新设备的驱动程序总是慢一拍,有时需要到网络上找寻。
不过请放心,目前大多数常用硬件都能很好兼容。
安装Linux系统需要做的准备工作:
1.收集系统资料。
记录内存大小、网卡型号、cdrom接口类型、scsi卡型号、鼠标类型、声卡与显卡芯片组、显存大小、显示器、时钟芯片等相关信息;也可以直接安装,在安装完成后发现问题时再逐个解决。
2.检查CMOS设置,关闭病毒发现,设置从光驱启动。
3.如果Linux安装盘无法自启动还要制作启动盘;如果用户选择主/从安装,还需要Vmware等虚拟软件。
4.多看安装Linux文档文章,基本熟悉安装过程;
5.为Linux系统的安装腾出硬盘空间,一般为5-8G以上;
6.遇到问题时,请上网查看图解教程,掌握Linux安装基础技术。
2.4Linux系统的多元化安装过程
2.4.1裸机上的安装与卸载过程图解
不同Linux发行版的安装方法有所不同,但一般都要谱写以下的六部曲:
第一曲:
进行基本设置,如安装语言和键盘。
第二曲:
进行硬盘分区与格式化。
发行版一般都提供了图形界面,只要根据图解提示就可以顺利完成。
第三曲:
选择要安装的软件包。
建议初级用户选择全部安装,以后熟悉了再重新定制,以免在学习过程中找不到要用的软件包。
第四曲:
设备配置。
如打印机、网卡、显卡等,可以根据实际情况选择。
第五曲:
安装LILO。
建议装在主引导扇区,使用LILO完成多系统引导。
第六曲:
为Linux的超级用户root设置密码。
下面以红帽RedHatLinux9光盘启动为例来说明安装过程图解。
1.准备工作
购买Redhat9的安装光盘(3张盘)或下载、拷贝镜像文件。
在硬盘中至少预留2个分区给安装系统用,挂载点所用分区推荐4G以上,交换分区250-500M比较合适,文件系统格式随便,因为安装过程中可以重新格式化。
记录电脑中的鼠标、键盘、显卡、网卡、显示器等的设备型号。
记录网络设置用到的IP地址、子网掩码、默认网关和DNS服务器地址等信息。
2.过程解析与图释
将光驱设为第一启动盘,放入第一张安装光盘,重启电脑。
如果光驱支持自启动,将会出现如图2.3的界面。
如果没有这个界面,则修改CMOS设置,直到能够出现这个界面才算成功。
图2.3安装启动界面
直接按回车键后将出现如下图2.4。
如果不作处理则30秒后会自动进入这个界面。
图2.4安装盘CD测试界面
在图中提示“是否在安装前测试CD媒介”,选“OK”开始测试CD;选“Skip”不测试CD直接开始安装,将出现图2.7。
如果是第一次安装建议测试安装CD,以免半途而废。
选“OK”后回车,出现图2.5。
图2.5安装盘检测与退盘界面
选“Test”测试安装光盘的文件,选“EjectCD”测试光盘以外的安装文件,这里选择“Test”后回车,出现图2.6的检测过程进度指示图。
图2.6CD检测过程进度指示
正在测试第一张安装CD,测试完后显示图2.7的CD检测结果报告。
图2.7CD检测结果报告
看到图2.7中的最后一行英文“ItisOKtoinstallfromthismedia”,说明这张安装CD是OK的,按“Enter”键回车后,显示图2.8的提示。
图2.8CD校验换盘或安装提示
选择“Continue”回车开始安装。
假如测试余下的2张安装CD,就放入下一张安装CD到光驱中,并选“Test”后回车即开始测试,完成后再次出现图2.7画面表示通过测试,再按回车键后又出现图2.8所示,重复以上步骤直到完成全部CD的测试。
全部CD测试完成后,用向右箭头键选择“Continue”并放入第一张安装CD到光驱后回车,安装程序开始检测计算机外围硬件设备,接着出现图2.9的图形安装欢迎界面。
图2.9RedHatLinux的图形安装欢迎界面
在图形界面里,出现了鼠标,还有帮助文本和介绍,按“HideHelp”可以关闭帮助文本,按“ReleaseNotes”显示发行注记,按“Next”进行下一步,出现图2.10的语言选择界面。
图2.10语言选择界面
这一步选择“安装向导所用的语言”,不是系统安装后的环境语言,选“Chinese(Simplified)(简体中文)”,点击“下一步”后将显示键盘配置界面。
选择键盘,一般都选择美式键盘“U.S.English”,选好后,点击“下一步”显示鼠标配置界面。
根据鼠标的实际类型进行选择,然后点击“下一步”,出现图2.11的安装类型选择界面。
图2.11安装类型选择界面
选择安装类型。
个人或家庭使用请选择“个人桌面”,其它类型可作相应的处理。
点击“下一步”出现图2.12的磁盘分区设置界面。
图2.12磁盘分区设置界面
磁盘分区设置很关键,选择错误会导致硬盘有用数据的丢失,要非常小心。
如果选“自动分区”后,点“下一步”会显示如图2.13的自动分区界面。
图2.13自动分区界面
自动分区有三个选项:
删除系统内所有的Linux分区、删除系统内的所有分区和保存所有分区使用现有的空闲空间。
这里是裸机安装,选择默认项,若是多系统安装,则点“上一步”回到图2.13画面后再重新选择“用DiskDruid手工分区”,点“下一步”显示图2.14的分区情况界面(不同硬盘,情况会有所不同,但不影响正确安装)。
图2.14硬盘分区情况界面
表中列出了硬盘的所有分区,这里准备用/dev/hda2作挂载点安装系统,用/dev/hda3做交换分区。
点击“/dev/hda2”将其选中(如图2.14中),然后点“编缉”按钮,弹出如下图2.15所示的编辑分区对话框。
图2.15编辑分区对话框
因/dev/hda3用作交换分区,挂载点栏不用选,只选“将分区格式化成swap”,点“确定”。
最后出现图2.14的磁盘分区情况图。
这时会提示格式化两个分区,点“格式化”按钮后,出现图2.16的引导装载程序配置界面。
图2.16引导装载程序配置界面
引导装载程序配置,默认将系统引导信息写到硬盘主引导扇区,可通过点击右上角的“改变引导装载程序”按钮进行设置。
上图中列出了启动菜单有两项:
DOS和RedHatLinux,可选中DOS后点“编辑”,将DOS改为WindowsXP。
选择开机默认启动的系统(在其前面的“□”内打勾),如上图中选RedHatLinux9为默认启动系统。
点“下一步”出现“网络配置”对话框。
如果用户不清楚网络如何配置,也可以在登录系统后再进行配置,点“下一步”出现“防火墙配置”对话框。
防火墙配置一般用户选“中级”,点“下一步”出现“其它语言支持对话框”。
选择系统默认语言一定要选中“Chinese(P.R.ofChina)”简体中文,否则进入系统后不能显示简体中文,还需要另外安装语言支持包。
在“选择用户想在该系统上安装的其它语言”框内最少要选一项Chinese(P.R.ofChina)简体中文,如果有必要可同时选择多种语言。
点击“下一步”出现如图2.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 0902第二章 构建多元化Linux编程环境 0902 第二 构建 多元化 Linux 编程 环境