任红伟12120xx4_高级操作系统课程总结

时间:2024.4.13

高级操作系统课程总结

(北京交通大学计算机与信息技术学院 任红伟 12120444)

第一章 课程知识总结

1.1 概述

操作系统掌控计算机的运行,是一个有生命、会呼吸的实体。操作系统为计算机带来了生命,赋予了计算机以人格特征,是计算机系统的灵魂。操作系统是人类工程的产物,是计算机系统中最基础、最核心、最复杂的软件。本科阶段简单学习了操作系统的相关概念以及CPU调度策略,文件管理等知识,为了进一步学习Linux操作系统,我选择了高级操作系统,并相信,在这个课上能学到一些知识。

高级操作系统这门课以课堂上老师讲解为主,课下实验为辅,对Linux操作系统的内核结构进行层层解析。实验从安装Linux操作系统,使用Linux的命令,到对Linux进程机制的研究,再到能够克隆系统内部的EXT2文件系统,逐渐向Linux内核部分深入。使我对Linux操作系统有了较为宏观的认识。

操作系统就是一个虚拟机,它建立在计算机硬件平台上,屏蔽了硬件平台的差异,统一了硬件平台的特征,增强了硬件平台的功能。

广义上说,操作系统包括内核和运行在内核之上的所有工具软件,如浏览器、资源管理器、编辑器等。狭义上说,操作系统就是内核,其余软件都是应用程序。对操作系统内核来说,应用程序是它的用户,内核支持应用程序的运行。一个操作系统可以拥有许许多多的应用程序,但却只有一个内核。操作系统的核心管理工作是在内核中实现的,核心服务也是由内核提供的,内核是操作系统的灵魂。 为了管理资源、提供服务,在内核中需要实现许多程序,如各种中断的处理

1

程序、各种服务请求的处理程序、各种资源的管理程序、各种设备的驱动程序等。为了实现这些程序,在内核中还需要定义多种数据结构,如段描述符表、页目录、页表、中断管理结构、进程控制块、内存管理结构、文件管理结构、设备管理结构、网络协议等。人们通常按功能将操作系统内核分解成进程管理、内存管理、文件系统、设备管理、网络协议以及系统安全几个子系统1。本课程的结构也是按照这几个子系统逐一讲解。

1.2 Linux系统的使用

1.2.1 安装Linux操作系统

我们的实验平台为Fedora16,使用的是硬盘安装。Fedora镜像文件要存放在大小为5G的文件类型为FAT32的分区内,安装时需要联网进行一些软件的更新。手动分区时,一般swap分区为内存的2倍,必须有挂载点“/”。按照安装提示一步一步进行,一个多小时后,Fedora系统就安装成功了。

启动安装好的Fedora,会发现Linux的启动界面与windows有明显的差别,它会在启动界面上滚动显示一些信息,这些信息是Linux在开机时启动的文件信息。为了探其原因,对Linux系统开机启动过程进行了分析。执行过程如图1-1所示:

任红伟12120xx4高级操作系统课程总结

图1-1

当计算机打开电源时,首先加载BIOS信息,BIOS信息是如此重要以至于计算机必须在最开始就找到它。因为BIOSBIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算

2

机心里就有谱了,知道应该去读取哪个硬件设备了。在BIOS将系统的控制权交给硬盘第一个扇区之后,就开始由Linux来控制系统了。

系统找到BIOS所指定的硬盘的MBR后,就会将其复制到0×7c00地址所在的物理内存中。其实被复制到物理内存的内容就是Boot Loader,而具体到电脑就是lilo或者grub了。

根据grub设定的内核映像所在路径,系统读取内存映像,并进行解压缩操作。此时,屏幕一般会输出“Uncompressing Linux”的提示。当解压缩内核完成后,屏幕输出“OK, booting the kernel”。

系统将解压后的内核放置在内存之中,并调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

内核被加载后,第一个运行的程序便是/sbin/init,该文件会读取/etc/inittab文件,并依据此文件来进行初始化工作。在设定了运行等级后,Linux系统执行的第一个用户层文件就是/etc/rc.d/rc.sysinit脚本程序,它做的工作非常多,包括设定PATH、设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。启动内核模块具体是依据/etc/modules.conf文件或/etc/modules.d目录下的文件来装载内核模块。根据运行级别的不同,系统会运行rc0.d到rc6.d中的相应的脚本程序,来完成相应的初始化工作和启动相应的服务。最后系统就到了等待用户输入username和password的时候了2。

1.2.2 屏幕编辑程序vi

Vi是Linux中最常用的文本编辑器,使用效率较高,非常适合程序员编程使用。Vi编辑器可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制,以更少的按键方式实现相同的目标,这是其他编辑程序所没有的。

Vi没有菜单,只有命令,且命令繁多。只要在命令行上键入vi就可以进入vi的编辑环境。Vim编辑器分为3种模式,分别是命令模式、插入模式和底行模

3

式,各种模式的转换图如图1-2所示:

图1-2 1.2.3 Shell脚本编程

Shell是Linux环境下的命令解释器,具有协调各命令和实现机器与用户打交道的功能,解释由用户输入的命令并且把它们送到内核。不仅如此,shell有自己的编程语言用于对命令的编辑,允许用户编写由Shell命令组成的程序。

编译好Shell脚本后,可采用下面两种方式执行该脚本。

1. 在当前Shell环境运行

在当前Shell环境运行,继承并影响当前环境。有以下两种命令可以使用。 #.filename.sh

#source filename.sh

此时,Shell程序会影响、改变当前Shell的环境。

2. 启动新的Shell执行

启动新的Shell执行,只继承export输入的变量,并不影响父进程的环境。有三种方式实现。

方法一:执行“#bash filename.sh”命令,这实际上是调用一个新的bash命令解释程序,而把Shell程序文件名作为参数传递给它。新启动的Shell将去读指定的文件,执行文件中列出的命令,当所有的命令都执行完后结束。该方法的优点是可以利用Shell调试功能。

方法二:执行“#bah < filename.sh”命令,这种方法是利用输入重定向,使

任红伟12120xx4高级操作系统课程总结

4

用Shell命令解释,程序的输入取自指定的程序文件。

方法三:执行“#chmod +x filename.sh #./filename.sh”命令。

Shell程序必须以“#!/bin/sh”开始。符号“#!”告诉系统它后面的参数是用来执行该文件的程序。Shell脚本中以“#”开头的句子表示注释,直到该行的结束3。

实验二中进行了简单的Shell编程,赋值和使用一起写会报错,如$var=data。此外,Shell编程要特别注意,+、-等运算符两侧必须加空格,while后的[]也两端也要加空格,赋值=不加空格。实验表明,Shell编程中,缺少空格或多写了一个空格都会影响整个程序。

1.2.4 编译器gcc

Gcc是GNU退出的功能强大、性能优越的多平台编译器,是GNU的代表作品之一。Gcc编译器能将C、C++语言源程序和目标程序编译、链接成可执行文件。

在Linux系统中,可执行文件没有统一的后缀,系统根据文件属性来区分可执行文件和不可执行文件,gcc则通过后缀来区分输入文件的类别。

Gcc与g++的区别为:从源文件上看,对于文件后缀为.c的test.c文件,gcc会把它看成是c程序,而g++则会把它看成是C++程序;而对于文件后缀为.cpp的test.cpp文件,gcc和g++都会把它看成是C++程序;

从编译器角度看,在编译阶段,g++会自动调用gcc,对于编译C++代码,两者是等价的,但是由于gcc不会自动调用C++程序所使用的库进行链接,所以需要使用g++来编译或者是在gcc的命令行加上对C++库的链接-lstdc++。

1.3 进程调度与管理

在操作系统所营造的虚拟时空中,活动的主角是进程。进程是执行中的计算机程序、是用户在操作系统中的代理、是操作系统中一切活动的发起者、是内核的主要服务对象。

5

通过实验二,对进程的调度与管理有了较为深刻的认识。几个小实验让我了解了系统调用的机制,并能自己在Linux系统上添加系统调用,此外也对进程间的通信机制有了较为深刻的理解。

1.3.1 系统调用

出于安全与可靠方面的考虑,操作系统内核通常会限制应用程序的能力,如禁止它直接操作外部设备等。当需要完成被限制的工作时,应用程序只能请求内核帮助,常用的方法是系统调用。用户进程通过系统调用进入内核。

系统调用是内核空间与用户空间之间的一道门户,通过这道门户用户进程可有限度地进出内核空间。系统调用过程如图1-3所示:

任红伟12120xx4高级操作系统课程总结

图1-3

IDT表是中断处理的入口,不管是异常、外部中断还是系统调用,当中断发生时,处理器会自动切换堆栈、保存现场,而后通过IDT表中的门进入处理程序,完成预定的处理。IDT表在系统初始化时设置完毕。

Linux内的系统调用表是预先定义好的,每一个系统调用都有一个编号,在内核中有一个对应的服务函数。在Linux的发展过程中,它提供的系统调用也在不断变化。从Linux1.0的137个系统调用发展到Linux3.6的347个系统调用。

每个系统调用都有自己的系统调用号,系统调用对应的中断向量号是$0x80。所以,系统调用的处理过程就是int $0x80的处理过程。

所以若要在Linux操作系统内添加自己的系统调用mysyscall,需要的步骤是:

1) 在标准C库中定义_syscall0宏

2) 添加系统调用号,系统调用号命名规则为_NR_mysyscall

3) 在系统调用表中添加相应的表项

6

4) 在内核中实现添加的系统调用

5) 重新编译内核

Linux操作系统为用户提供了很多的系统调用,如本次实验常用到的fork,execve,exit,getpid,wait,signal,kill等。系统启动后有一0号进程,用户通过调用fork创建子进程,子进程完全复制父进程。Fork函数创建进程的返回值如果大于0,则表示返回的是父进程,此时的返回值为创建子进程的进程号;如果等于0,则表示返回的是子进程。Exit()和wait()实现了父进程等子进程终止的同步,然而为实现子进程对父进程的等待,使用软中断通信。对于需要使用的软中断信号,进程在接收之前必须先使用signal()系统调用函数进行预置。预置的目的是将某个软中断信号与某个可执行的处理函数进行关联,当信号发出被指定的进程接收后,系统就中断接收该软中断信号进程的执行,转而执行与信号相关联的函数,该函数执行完毕后再返回被中断的进程继续执行。

实验时,捕捉Ctrl+C中断信号总是出问题,Ctrl+C中断信号是中断正在执行的进程,系统并没有把它当成是普通的中断信号。为了解决这个问题,需要给每个子进程加锁。

1.3.2 进程间通信

进程和线程的管理是现代操作系统的主要功能,进程的互斥、同步、通信和死锁是进程管理所要解决的首要问题,框架如图1-4所示:

7

图1-4

计算机系统中的资源是有限的,为了提高系统资源的利用率,同时满足多个并发进程运行的要求,操作系统中引入了资源共享机制,允许多个进程同时访问系统中的共享资源。各并发进程享有平等、独立地竞争和使用临界资源的权利,但要保证某一时刻只能有一个进程处于临界区内,即这些并发进程应该互斥的执行。实现进程互斥的方法有:加锁实现,信号量和P、V原语。其中加锁实现的方法为:当某个进程进入临界区后,它将锁上临界区,直到它退出临界区时为止,此时其他进程是不能进入临界区的。当某个并发进程想要进入临界区时,首先测试该临界区是否上锁,若临界区已被锁住,则该进程反复测试直到该临界区开锁后才可进入。进程的同步也可用信号量以P、V原语实现。

进程通信的方式有三种:共享存储器、消息传递系统和管道通信。实验重点研究了管道通信方式。

任红伟12120xx4高级操作系统课程总结

8

所谓管道是指用于连接一个读进程和一个写进程以实现它们之间通信功能的一个共享文件,又称为Pipe文件。它是UNIX系统首先提出的一种进程通信方式。向管道提供输入的发送进程以字符流形式将大量数据写入管道,而接受进程则接收管道输出的数据。由于发送进程和接收进程是利用管道进行通信的,故称为管道通信。管道通信机制必须提供互斥、同步,确认对方是否存在的机制。

1.4 文件系统

文件系统是操作系统的重要组成部分,它主要对以文件形式存放在外部存储器上的信息进行管理,主要包括如何以文件的形式组织信息,如何通过文件名对存储在存储介质上的文件进行操作,如何实现文件的共享、保护和保密等。

EXT2文件系统可能是Linux使用最广泛的文件系统。它支持UNIX文件的语义及一些高级特。EXT2分区的第一个磁盘块用于引导,其余部分被分成组,所有组大小相同并且顺序存放,所以由组的序号可以确定组在磁盘上的位置。每个组有:文件系统的超级块;所有组的描述符;块的位图;inode位图;inode表;数据块。

在ext2文件系统中目录是包含文件存取路径的特殊文件。目录内保存着其他文件或目录的名称和索引节点号。当建立一个目录时,系统会分配一个索引节点与至少一个数据块给该目录。那么用户在打开/root/file.c文件时,操作系统内部究竟进行哪些操作?

a) 系统从根目录信息可以得到/root目录的索引节点号,并且读取索引节点号的内容,得到/root目录的属性和数据块中的具体位置。

b) 读取/root目录数据块内容,得到file.c文件的索引节点号。

c) 读取file.c文件的索引节点号,得到file.c文件的属性和数据块具体位置。 d) 读取file.c文件的内容。

EXT2文件系统是标准的Linux文件系统,具有如下特点:(1)物理地址使用了l5个数据块指针,采用综合索引方式,最大可支持4GB的文件;(2)使用变长的目录项,既不浪费磁盘空间,又能支持最长达255个字符的文件名;(3)使用位

9

图来管理空闲数据块和索引节点,解决了采用链表来管理未分配数据块和节点带来的一系列问题:(4)使用了块组的概念,使数据的渎写更快、更有效,系统也变得安全可靠;(5)性能高且易于扩展。

1.5 设备管理

操作系统的设备管理,又称为输入/输出管理,它负责管理设备和控制I/O传输操作。设备是计算机系统中除CPU、主存储器之外的所有其他的设备。

1.5.1 特别文件

用户是通过文件系统与设备接口的,所有设备都作为特别文件,从而在管理上就具有一些共性。

(1)每个设备都对应文件系统中的一个索引节点,都有一个文件名。设备的文件名一般由两部分构成,第一部分是主设备号,第二部分是次设备号。

主设备号代表设备的类型,可以唯一的确定设备的驱动程序和界面,如hd表示IDE硬盘,sd表示SCSI硬盘,tty表示终端设备等;次设备号代表同类设备中的序号,如hda表示IDE主硬盘,hdb表示IDE从硬盘等。

(2)应用程序通常可以通过系统调用open( )打开设备文件,建立起与目标设备的连接。

(3)对设备的使用类似于对文件的存取。打开设备文件以后,就可以通过read( )、write( )、ioctl( )等文件操作对目标设备进行操作。

(4)设备驱动程序都是系统内核的一部分,它们必须为系统内核或它们的子系统提供一个标准的接口。例如,一个终端驱动程序必须为Linux内核提供一个文件I/O接口;一个SCSI设备驱动程序应该为SCSI子系统提供一个SCSI设备接口,同时SCSI子系统也应为内核提供文件I/O和缓冲区。

(5)设备驱动程序利用一些标准的内核服务,如内存分配等。另外,大多数Linux设备驱动程序都可以在需要时装入内核,不需要时可以卸载下来。

10

处于应用层的进程通过文件描述字fd与已打开文件的file结构相联系。在文件系统层,按照文件系统的操作规则对该文件进行相应处理。

对于一般文件(即磁盘文件),要进行空间的映射——从普通文件的逻辑空间映射到设备的逻辑空间,然后在设备驱动层做进一步映射——从设备的逻辑空间映射到物理空间(即设备的物理地址空间),进而驱动底层物理设备工作。

对于设备文件,则文件的逻辑空间通常就等价于设备的逻辑空间,然后从设备的逻辑空间映射到设备的物理空间,再驱动底层的物理设备工作。

1.5.2 设备分配技术

操作系统的设备管理的功能之一是为用户程序、活动的进程分配它们所需要的外部设备。在多用户多进程系统中,由于用户和进程的数量多于设备数,因而必然会引起对设备资源的争夺,设备管理应确定适合设备特性、且满足用户需要的设备分配方式和设备分配策略。根据设备特性的不同,设备分配有静态分配和动态分配两种方式。设备分配常用的分配策略有先请求先服务和优先分配策略。

1. 设备分配方式和设备分配策略

(1)静态分配和动态分配

设备分配时应考虑设备的属性,有的设备仅适于作业独占,有的设备可方便地为多进程所共享。对独占设备一般采用静态分配,一旦分配给作业或进程,由它们独占使用;而共享设备则采用动态分配,并在进程一级实施。进程在运行过程中,需要使用某台设备进行I/O传输时向系统提出要求,系统根据设备情况和分配策略实施分配。一旦I/O传输完成,就释放该设备,这样可使一台设备可以为多个进程服务,从而提高设备的利用率。

(2)设备分配策略

1)先请求先服务。采用先请求先服务策略的分配算法中,设备请求队列按进程发出此I/O请求的先后次序排序,在该设备的设备控制块中有一个设备请求队列指针,指向该队列的第一个设备请求快。该算法循环查询设备请求队列,当设备空闲时处理该队列中的第一个iorb;当设备请求队列为空时,该算法睡眠,

11

等待新的I/O请求的到来。

2)优先级最高者优先。采用优先分配策略的算法中,设备请求队列按进程发出此I/O请求的优先级高低排序。对于优先级相同的I/O请求,则按先请求先分配原则排队。

2. 独享分配

独占分配是让一个作业在整个运行期间独占使用的设备。独占设备采用独享分配方式,即在一个作业执行前,分配它所要使用的这类设备;当作业结束撤离时,收回分配给它的这类设备。独享分配方式实现简单,且不会发生死锁,但采用这种分配方式时外部设备利用率不高。

3. 共享分配

对共享设备采用共享分配方式,即进行动态分配,当进程提出资源申请时,由设备管理模块进行分配,进程使用完毕后,立即归还。

1.6 内核编译

Linux作为一个自由软件,在广大爱好者的支持下,内核版本不断更新。新的内核修订了旧内核的bug,并增加了许多新的特性。如果用户想要使用这些新特性,或想根据自己的系统度身定制一个更高效,更稳定的内核,就需要重新编译内核。

要增加对某部分功能的支持。比如网络之类,可以把相应部分编译到内核中(build—in)。也可以把该部分编译成模块(module),动态调用。如果编译到内核中,在内核启动时就可以自动支持相应部分的功能。优点是方便、速度快,缺点是会使内核变得庞大起来。如果编译成模块,就会生成对应的.O文件,在使用的时候可以动态加载。优点是不会使内核过分庞大,缺点是你得自己来调用这些模块。

编译内核前需要安装gcc,要收集自身计算机上硬件的信息,如CPU、内存等设备生产型号和相应参数。

编译内核需要root权限,内核编译的步骤为:

1) 下载相应版本的内核源码

12

2) 解压缩源文件到/usr/src下,命令如“#tar –jxvf linux-3.6.4.tar.bz2”

3) #make mrproper清除目录下所有配置文件和先前产生的中间文件。

4) #make menuconfig配置内核

5) #make dep 对内核源代码文件的依赖性和完整性进行检查,确保关键文件来自正确的位置

6) #make clean清除目标文件,确保所有有关文件都处于最新版本状态。

7) 开始进入编译状态。#make bzImage用于系统硬件资源比较大的时候,可以加快编译速度。根据机器配置的不同,编译所需的时间各有长短,通常需要十多分钟甚至更长。完成后产生的内核文件路径为/usr/src/linux/arch/i386/boot。

8) 为了在启动时能够选择新版本的内核,还需要对Linux启动文件进行修改。

9) 修改启动文件,修改grub.conf。

经过这些步骤后,重启计算机,新内核就会发挥作用了。

编译内核的步骤是这样,但是实际上,进行每一步操作时都有可能发生各种各样的错误,如找不到某个头文件、函数头部没有声明等等。这就需要我们手动的找到缺失的头文件,针对不同的错误有不同的解决办法。在编译内核时会出现很多不可预期的错误,同样的方法在不同的主机上执行会有不同的结果,也许这就是Linux操作系统的奇妙之处。

1.7 实验中的收获

实验一主要完成了Fedora的安装,感受了在虚拟机上安装与在win7上硬盘安装Fedora两种方法的不同,进行了手动分区,也学会了如何修复系统。此外还用yum快速安装了一些软件,相对于编译安装软件来说,yum方法还是很不错的。为了获取更快的下载速度和等多的源,也可以配置yum的下载地址。还对Linux系统的启动和退出进行了研究。

实验二主要对进程进行的操作。学会了用fork(),signal(),kill(),exit(),wait()系统

13

调用实现进程间软中断通信,Pipe()实现进程的管道通信,了解了管道通信机制,能加载简单的Helloworld模块,还能在系统中添加自己的系统调用。

通过实验三,学会了如何克隆类EXT2文件系统,对系统内的EXT2文件系统结构有了较为深刻的认识。

第二章 对OS的认识

第一次真正接触Linux操作系统,通过这一学期的理论学习与实验,不断地查阅资料来解答遇到的问题,关于Linux操作系统有了初步的认识。

首先从用户使用情况来看,主要从安装Linux,安装应用软件到卸载软件等方面讲解。我用两种方法感受了Linux的安装过程,分别为在windows 7操作系统上用硬盘安装Fedora16,在VM上光盘引导安装Fedora16。Fedora的安装较为复杂,时间也比较长。Linux操作系统的神奇之处在于它会根据物理机的配置选择适合的Linux内核版本及桌面环境。因为我发现同一张Fedora的光盘镜像文件在内存为4G的物理机上直接安装和在分配1G的虚拟机上安装成的操作系统内核版本不一样。Fedora安装成功后,需要安装必要的应用软件。Rpm软件包繁琐的依赖关系,以及复杂的安装、卸载命令让初学者望而却步、叫苦不迭,好在出现了YUM这个强大的在线软件管理工具,可以自动解决RPM软件包之间的依赖关系,让软件的安装和卸载变得轻松简单。后来发现YUM也有自己的图形界面,这就使在Linux上安装软件变得更加容易。

用户感受到的是操作系统最终呈现出来的在视觉、使用上的效果。那么,同样是操作系统,Linux与windows究竟在哪些方面不一样?相比于windows来说,Linux又有什么优势?众所周知,Linux的操作比较复杂,windows的比较简单。Linux的速度比较快,安全性比windows好。但是有很多软件只能在windows里运行,与Linux兼容的软件正在开发中,Linux使用在网络方面,因为它底层的安全机制要远远高于windows。Linux不适用文件扩展来识别文件的类型。相反,Linux根据文件的头内容来识别其类型。Linux统一管理系统内的分区,整个分区是一棵树,根节点为“/”。

14

从内部对Linux操作系统有了这些认识之后,就不得不提起Linux操作系统的发展趋势。Linux是由Unix发展而来的,目前的市场占有率正逐步扩大。Linux的发型版本众多,如Fedora,Redhat,Ubuntu,Debian等等,我们小组主要通过Fedora操作系统来认识并学习Linux的精髓。

之前提到的Linux操作系统优点必将给其带来光明的前途。但是,有一点不得不承认,Linux在国内的应用及自由软件服务还几乎为零,这为Linux开拓中国市场带来了困难。我们都知道,windows在全球已经得到普及性的使用,个人用的PC机以及教学用机几乎全是windows操作系统,所以最大的受益者是微软。大量使用微软的操作系统可能带来的安全性也是毋庸置疑的。反黑客攻击技术、防火墙、智能网、数据加密技术、备份技术、防网络病毒措施等等,这些只是信息安全的外围技术。而信息安全的基础底层软件特别是操作系统。因为操作系统是最基本的软件,是其他软件赖以运行的基础平台。如果操作系统本身不安全,那么建立在这种系统上的防火墙、防毒加密等措施又有多大作用呢?所以操作系统本身的安全性,是一切信息系统安全的基础。如果计算机在操作系统级依赖于别国的技术,那么就有可能在政治上,甚至在军事上受制于他国;更为严重的是,已经有人利用计算机信息安全在政治和军事上威胁和制约对方,计算机操作系统的安全问题已经威胁到了国防安全,要真正保障网络和信息的安全,发展自主的操作系统是当务之急。

在中国,发展Linux更是必须要走的一条路。中国要构建自己的计算机系统,就必须有自己的操作系统。发展Linux是我国发展整个高科技体系的要求。有关资料表明,从中国的PC机市场发展趋势来看,中国今后每年仅为Windows操作系统支付的版权费用就有几百个亿。如果听任外国的操作系统垄断中国的市场,那么在经济上的损失必将是巨大的。开源软件不仅能大幅提升软件产业技术,打破已有的垄断和技术壁垒,而且还可以以较低的成本取得相同的产品和服务,这对于国家来说,具有重大的意义4。

那么,怎么改变Linux在中国市场的现状呢?俗话说:“高等学校是新技术、新事物最好的试验田”。为什么微软不追究各学校使用盗版软件的原因就在于此,

15

因为学校在免费为微软公司做宣传。尽管Linux的普及活动势在必行,但是也有人会怀疑它的可行性。首先,它将要涉及的不仅仅是教育界,而且是全国范围内的各个行业。其次,人们对Linux操作系统接受的能力增强,接受的速度增大。不过,归根结底,就是一个问题,那就是Linux是否容易学习。作为国产操作系统,红旗Linux正是考虑到这样的问题,把图形界面制作的与Windows极为相似。金山WPS也已经准备好了运行在Linux上的办公软件。对于Microsoft office的用户来说,使用国产WPS易如反掌。

总之,通过这次对Linux操作系统的学习,我真的学习到了不少知识,从以前的对Linux系统一无所知到现在深刻的认识到了Linux系统的好处,而且还可以在Linux系统中做一些基本的操作。

第三章 拓展知识学习

Linux在安全方面做得非常出色,但是它是如何做到的。针对研究的Fedora发行版进行了简单的学习,框图3-1如下:

16

图3-1

随着Internet的不断壮大,安全对几乎所有的计算机用户来说都称为一个关键问题。正确使用密码、安全配置网络服务以及监控日志文件是保证计算机安全的重要手段。使用加密密钥可以使用户验证那些和用户通信人物的真实性,也可以使用户传输的数据更加安全5。

参考文献

任红伟12120xx4高级操作系统课程总结

17

1 郭玉东,尹青,董卫宇.Linux原理与结构[M].西安:西安电子科技大学出版社,2012.

2

3

4

5 /os/325/12254325.shtml 庞丽萍,郑然.操作系统原理与Linux系统实验[M].北京:机械工业出版社,2011. /p-212984373.html 韩东儒,侯晓敏.Fedora 6和Red Hat Enterprise Linux宝典[M].北京:人民邮电出版社,2008.

18

更多相关推荐:
操作系统课程设计个人心得

课程设计心得体会

操作系统课程学习心得

操作系统课程学习心得1操作系统的功能:操作系统通常有这几方面功能:任务管理、进程管理、作业管理、设备管理等等。2操作系统的应用:操作系统是控制和管理计算机系统内各种硬件和软件资源、合理有效地组织计算机系统的工作…

计算机操作系统课程培训学习体会及总结

广西南宁培训点20xx年x月20-22日,我们有幸参加了教育部全国高校教师操作系统培训中心对国家精品课程《计算机操作系统课程》的课程培训,聆听了刘乃琦、浦晓蓉两位教授的讲座,颇受启发,收获很多。回顾三天来的学…

操作系统课程设计总结报告(白雪娇20xx3823)

操作系统课程设计总结报告学期20##-20##学年第二学期学院软件学院学号姓名20##年7月1日

黑龙江大学“操作系统课程设计”总结报告

操作系统课程设计总结报告学期20xx20xx学年第2学期学院软件学院学号姓名20xx年7月3日本学期开设了操作系统课程主要学习了计算机操作系统方面的知识进程控制进程调度请求分页存储管理设备管理文件管理了解了操作...

操作系统课程设计总结文档

操作系统总结报告学期20##-20##学年第一学期学院计算机科学技术学院学号姓名20##年12月28日

操作系统课程设计报告

上海电力学院计算机操作系统原理课程设计报告题目名称编写程序模拟虚拟存储器管理姓名杜志豪学号20xx1798班级20xx053班同组姓名孙嘉轶课程设计时间20xx63020xx74评语成绩目录一设计内容及要求41...

系统管理与维护课程总结报告

20xx20xx学年第1学期课程设计个人总结报告课程系统管理与维护班级计算机102学号姓名报告成绩课程成绩课程设计任务书一课程设计目的意义在两周的教学实践中分别对网络部分和linux操作系统有基本的了解和操作第...

系统管理与维护课程总结报告

20xx20xx学年第1学期课程设计个人总结报告课程系统管理与维护班级计122学号15姓名杨前报告成绩课程成绩课程设计任务书12课程设计指导书3一课程设计目的意义通过本次教学实践活动使我们对网络基本知识Linu...

《网络操作系统》实训总结

网络操作系统实训总结实训项目网络操作系统时间20xx年7月4日至7月8日以下部分是我做实验室时所截的图安装选择开始管理工具服务器管理器选项然后选择添加角色在服务器角色中选择AD域服务安装成功在机子上设置IP等建...

计算机操作系统课程设计报告

《操作系统原理》实验报告院(部):管理工程学院专业:信息管理与信息系统实验项目:实验一二三五班级:信管102姓名:学号:目录引言.........................................…

20xx年操作系统课程设计题目与要求

操作系统课程设计题目与要求课程设计要求1可以依据教材中的算法自行选题也可以从下面给出的题目中选题要求每两名同学之间课程设计内容应该不同如果有选择相同题目的小组则设计方案不同否则视为抄袭可以两人一组也可以一人一题...

操作系统课程总结(19篇)