LinuxLinux内核与程序设计内核与程序设计授课教师:张鸿授课教师:张鸿计算机学院计算机学院zhanghong79@wust.edu.cnzhanghong79@wust.edu.cn自我介绍求学经历教学经历2004-2007:浙江大学计算机专业博士;2001-2004:武汉理工大学计算机专业硕士;1997-2001:武汉理工大学计算机专业本科;2007年9月至今:武汉科技大学计算机学院;2007-2008-1学期:《计算机网络》04级5-8班学习方式和教材:课堂讲解(36学时)+上机实验(10学时)主教材:《Linux教程(第2版)》孟庆昌普通高等教育“十一五”国家级规划教材电子工业出版社前导课程:操作系统、C语言、计算机系统原理10个学时的实验安排3、linux环境编程2、Shell编程1、Linux常用命令及VI编辑器的使用实验指导:参见相关章节,及课本P310页的实验大纲实验要求:签到、写实验报告考核方式平时成绩(占总成绩30%)考试(占总成绩70%)考勤、实验、课堂提问闭卷第1章Linux系统概述主要内容回顾与操作系统有关的计算机术语了解操作系统的基本功能了解Linux操作系统的历史、现状及特点了解Linux操作系统的安装过程了解Linux系统图形界面的一般知识1.1计算机基础知识一个完整的计算机系统是由硬件和软件两大部分组成的硬件是指计算机物理装置本身,它是计算机系统的物质基础软件是相对硬件而言的,是计算机程序以及相关数据等的总称。▲程序是计算机完成一项任务的指令的集合。▲数据是由程序使用或生成的不同类型的信息。硬件是软件建立与活动的基础,软件是对硬件功能的扩充。软件通常可分为三大类,即系统软件、应用软件和支撑软件系统软件包括:1.操作系统是用户与计算机硬件之间的界面,它是控制和管理计算机系统内各种硬件和软件资源、有效地组织多道程序运行的程序集合。2.数据库管理系统3.网络系统4.编译程序、数据库等支撑软件辅助软件技术人员,进行开发项目管理的软件,如:各种编辑程序、开发工具、测试工具、查错程序、项目管理程序等,所以又称为工具软件。应用软件为解决某一类应用需要或某个特定问题而设计的程序,如图像软件、财务软件等等。这是范围很广的一类软件。1.2操作系统的功能操作系统是硬件之上的第一层系统软件基本职能是:·控制硬件·管理资源·提供用户接口·处理输入输出·监控系统·通信Linux操作系统提供4种用户接口1、命令行接口命令解释程序是支持命令行的系统程序,用于接收用户输入的命令,并解释执行。使用方便的命令行是linux系统的一个显著特征。说明:1.在Linux/UNIX系统中,通常将命令解释程序称为shell2.各种Linux环境下,安装了很多shell,这是由历史原因造成的,这些shell由不同的人编写,并得到一部分用户青睐,各有优势,3.红旗版本Linux系统的默认shell是bash;4.使用shell时,是在一个包含环境变量的运行环境中,如:提示符。2、菜单红旗Linux系统提供字符环境中文界面,如下图:3、图形用户接口4、程序接口(也称为系统调用接口)用户在自己的C程序中使用系统调用,从而获得系统更基层的服务;在UNIX/Linux系统中,系统调用以C函数的形式出现。例如:fd=open(file1.c,2);1.其中,open是系统调用,它根据模式值“2”(允许读和写),打开文件file1.c;2.所有内核之外的程序都必须经由系统调用,才能获得操作系统的服务。系统调用只能在C程序中使用,不能作为命令在终端上执行。系统调用是操作系统内核与用户程序、应用程序之间的接口1.3Linux系统的历史、现状和特点在电影《泰坦尼克号》的制作中,据说共动用了160台alpha图形工作站,其中有105台运行的是Linux操作系统;然而,Linux还是一种很年轻的操作系统,从1991年诞生至今,刚满17年;它的发展却异常迅速,成为操作系统领域中一支重要的生力军。1984年,哈佛大学的RichardStallman组织开发了一个完全基于自由软件的软件体系计划GNU(GNU是GNUisNotUNIX的递归缩写)并拟定了通用公共许可证GPL(GeneralPublicLicense简称),保证任何人都有权共享、修改和发布自由软件的源代码;20世纪80年代,AndrewS.Tanenbaum教授自行设计了一个微型UNIX操作系统—MINIX在此基础上,1991年,芬兰赫尔辛基大学的学生LinusTorvalds在Intel386个人计算机上,开发了Linux核心,并利用Internet发布源码,从而创建了Linux操作系统1.3.1Linux的历史1.3.2Linux的现状根据软件是否以营利为目的,可分为三种模式,即:商业软件(Commercialsoftware)开发者出售副本,提供技术服务,用户只有使用权共享软件(Shareware)开发者提供试用程序,授权复制,但试用期满后需交纳费用自由软件(Freeware或Freesoftware)开发者提供全部源代码,任何用户有权使用、复制、扩撒和修改软件,同时有义务将修改后的版本公开Linux是自由软件的杰出代表,目前Linux的用户分为个人用户、专业用户和商业用户1.3.3Linux的特点与UNIX兼容自由软件,源码公开性能高,安全性强便于定制和再开发互操作性高全面的多任务和真正的32位操作系统1.3.4Linux的版本Linux有两种版本,一个是核心(Kernel)版本,另一个是发行(Distribution)版本。1.核心版本:主要是Linux的内核,官方版本由Linus本人维护序号由三部分数字构成,其形式为:major.minor.patchlevel例如:2.2.11表示对核心2.2版本的第11次修订。约定:minor为奇数时,表示该版本加入新内容,但不一定很稳定,相当于测试版;minor为偶数时,表示这是一个可以使用的稳定版本。2.发行版本即各个公司推出的版本,与核心版本独立发展,是基于Linux核心的软件包,常见的有8种:RedHat://://红旗Linux——由中科红旗软件技术有限公司开发研制——由中软网络技术股份有限公司开发的发展优势与存在的问题Linux具有以下发展优势:开放源码系统受到各国政府的大力支持得到全球各大软、硬件公司的支持:IBM,SUN,HP价格优势和安全性不利因素:不熟悉、应用软件少、使用不方便和功能不完备1.4Linux系统安装本节以红旗Linux桌面版4.1(RedFlagLinuxDesktop4.1plus)为例,介绍基本硬件需求、安装准备、多操作系统共存时,磁盘分区划分、系统安装,以及软件工具安装过程。Linux系统安装方式分为:图形安装和文本安装两种,其中图形方式较为简单和方便。红旗Linux桌面版4.1(RedFlagLinuxDesktop4.1Plus)对系统的需求是:Intel486、Pentium、PentiumⅡ、PentiumⅢ及以上处理器,以及AMD、Cryix等x86兼容处理器的个人计算机。最小内存为16MB,推荐使用32MB以上。至少有500MB硬盘空间以及200MB以上的自由空间。配置CD-ROM驱动器,最好是可以直接引导系统。装有VGA或更高分辨率的显示卡。1.4.1基本硬件需求安装系统的一般步骤:总体可分为三个阶段:1.安装前的准备2.安装开始的参数配置3.执行安装1.4.2安装前的准备Linux可以单独占用整个硬盘,也可以与Windows等操作系统公用一块硬盘;如果机器中有多个操作系统共存,则分两种情况:1、若硬盘中还没有安装任何操作系统,则建议首先为各个操作系统分配适当的分区,然后安装Windows,再安装Linux;2、若机器中已经装了Windows等操作系统,而没有为Linux预留单独的分区,建议严格按照下列步骤1-5进行准备安装前的五个准备步骤:1.备份数据2.收集硬件信息3.准备DOS启动盘4.制作安装引导盘5.准备Linux分区1.备份数据在安装红旗Linux之前,应将硬盘中的重要数据备份到软盘、光盘或磁带上,从而避免在安装过程中发生意外时造成损失。3.准备DOS启动盘为了在出现严重错误时能够恢复硬盘,建议制作一张DOS或Windows启动盘,其中包括fdisk或其他分区工具。2.收集硬件信息4.制作安装引导盘为了启动计算机,引导安装过程,在安装Linux之前,一般要制作一张安装引导软盘可以直接利用红旗Linux光盘上的MS-DOS程序/dosutils/rawrite.exe,将光盘\images目录下的映象文件(*.img)拷贝到3.5软盘上即可5.准备Linux分区¾如果只有一个硬盘,那么这个硬盘上肯定有一个主分区。¾DOS必须在主分区上,才能启动;¾建立主分区的主要用途是安装操作系统;¾如果有多个主分区,那么只有一个可以设置为活动分区,操作系统就是从这个分区启动的磁盘分区有三种类型:主分区、扩展分区、逻辑分区1、主分区(primarypartition):一个硬盘最多只能有四个主分区2、扩展分区(extendedpartition):不能直接用来保存数据,主要功能是在其中建立若干逻辑分区3、逻辑分区(logicalpartition):是扩展分区中的二级分区,如平时说的D盘,E盘红旗Linux既可以安装在主分区上,也可以安装在逻辑分区上1.4.3利用PQMagic8.0工具划分分区使用分区魔术师PowerQuestPartitionMagic(简称PQMagic)、FIPS(FirstInteractivePartitionSplitter)等分区工具,可以在保留数据的同时,安全地改变分区的大小,可以将一个DOS/Windows分区分成两个部分:一部分是DOS/Windows文件系统分区,另一部分是空闲分区,它可以用于安装新操作系统的分区。如果在硬盘上已经给Linux预留了空闲分区,就可以跳过这一步;如果已经把整个硬盘空间都分给了Windows2000、WindowsXP,那么,就必须重新划分硬盘空间,为Linux创建分区。LinuxNativeLinuxswapWindows2000WindowsXP1.PQMagic8.0窗口分区信息框2.压缩已有分区如果末尾分区已经使用,但空闲容量还很大,那么就压缩它,空出大于安装Linux所需的磁盘空间;一般来说,手工完成一个任务有三个步骤:选择一个硬盘或分区;选择一个操作;最后将该修改应用到系统。压缩已有分区,为Linux分配空间的过程实例:a、选中分区;b、在“分区操作”中选择“调整容量/移动分区””c、在PQMagic主窗口中,单击“应用”按钮3.分区划分结果1.4.4安装过程安装时应首先设置当前计算机的BIOS启动顺序,把CDROM作为第一个启动搜索选项,即:保证引导搜索顺序为“光盘引导优先”。将Linux系统安装盘放入光驱中,然后重新启动系统。系统正确引导以后,将出现提示信息和boot提示符。按下Enter键,则继续引导安装。在默认情况下,红旗Linux将进入图形化安装界面。1.许可协议2.设置分区一般情况下,红旗Linux需要两个必备的分区:根文件系统分区(类型为ext3,3xt2或reiserfs)、交换分区(类型为swap)Linux通