欢迎来到易发表网,发表咨询:400-808-1701 订阅咨询:400-808-1721

关于我们 期刊咨询 科普杂志

操作系统论文优选九篇

时间:2022-07-11 04:42:49

操作系统论文

操作系统论文第1篇

就象UNIX,Linux支持的网卡主要是以太网卡。如3COM、ACCTON、AT&T、IBM、CRYSTAL、D-LINK等众多品牌的以太网卡只要安装配置正确,都可以得到你所期望的效果。

一、Linux中网卡的工作原理

为了将这个问题说明的更清楚一些,不妨先简要地剖析一下Linux是如何让网卡工作的。一般来说,Linux核心已经实现了OSI参考模型的网络层及更上层部分。网络层的实现依赖于数据链路层的有效工作。网卡的驱动程序就是数据链路层与物理层的接口。通过调用驱动程序的发送例程向物理端口发送数据,调用驱动程序的接收例程从物理端口接收数据。

1.网卡驱动程序

简单地说,要将你手中的网卡利用起来,你唯一要做的是得到这块网卡的驱动程序。驱动程序提供了面向操作系统核心的接口和面向物理层的接口。

驱动程序的操作系统接口是一些用于发现网卡、检测网卡参数以及发送接收数据的例程。当驱动程序开始运作时,操作系统首先调用检测例程以发现系统中安装的网卡。如果该网卡支持即插即用,那么检测例程应该可以自动发现网卡的各种参数;否则你就要在驱动程序运作前,设置好网卡的参数供驱动程序使用。当核心要发送数据时,它调用驱动程序的发送例程。发送例程将数据写入正确的空间,然后激活物理发送过程。

驱动程序面向物理层的接口是中断处理例程。当网卡接收到数据、发送过程结束,或者发现错误时,网卡产生一个中断,然后核心调用该中断的处理例程。中断处理例程判断中断发生的原因,并进行响应的处理。比如当网卡接收到数据而发生中断时,中断处理例程调用接收例程进行接收。

2.驱动程序工作参数

驱动程序的工作参数因网卡性质的不同而不同,大致包括I/O端口号、中断号、DMA通道、共享存储区等。输入输出端口号又被称为输入输出基地址,当网卡工作于端口输入输出模式时被使用。端口输入输出模式需要CPU的全程干预,但所需硬件及存储空间要求较低。CPU通过端口号指定的空间与网卡交换数据。中断号是网卡的中断序号,只要不与其它设备冲突即可。当网卡使用DMA方式时,它要使用DMA通道批量传输数据而不需要CPU的干预。

对于一块具体的网卡,如果网卡支持完全自动检测,那么一个参数也不用指定,驱动程序的检测例程会自动设定所需参数。一般情况,你需要人工设定这些参数的一部分。如果你的网卡使用端口输入输出模式,你要设定端口号和中断号。如果你的网卡使用DMA模式,你要设定DMA通道和中断号。如果你的网卡使用共享存储区的模式,那你就得设定共享存储区的地址范围。

3.驱动程序的使用方式

有了网卡的驱动程序后,你可以选择是把驱动程序加入到Linux核心之中还是把驱动程序加工成独立模块。Linux系统一个引人入胜的长处就是可以定制系统的核心。把需要频繁调用的功能加入系统核心,可以大大提高系统的效率。在这种情况下系统启动时,系统核心自动加载网卡的驱动程序。驱动程序的参数可以通过LILO命令参数加以指

定。系统启动后驱动程序永久驻留核心,不能用常规的方法将其卸载。至于定制的系统核心,是通过重新编译得到的;如何编译核心将在后文叙及。

如果把驱动程序编译成可装载模块,就可以用系统提供的命令在系统启动后随时加载。随时加载的好处是减少内存开销,易于管理,但同时也牺牲了一点网络传输的效率。驱动程序的参数是在命令行中直接输入或通过配置文件指定。二、网卡安装前的准备在安装网卡前,务必检查是否具备下列条件:

1.硬件方面

以太网卡

网络连接线及连接头,如10base-T一般为8芯双绞线配RJ-45接口

2.软件方面

Linux操作系统

网卡驱动程序(目标码或源代码)

*网卡配置程序

*软件开发工具,如GNU工具包(包括编译器gcc、make等)

3.系统配置信息

可用的端口地址

可用的中断号

以上不带星号标记的是必要条件,带星号的是视情况不同而要求的条件。具体情况在下面进一步说明。

三、网卡的安装及配置

第一步:配置以太网卡的工作参数

配置网卡就是配置网卡的工作参数,如端口地址、中断号等。网卡的缺省参数一般存储于网卡内部的EEPROM,这是网卡出厂前设置好的。缺省参数在大多数情况下是可行的,但如果这些参数与你的系统有冲突并且网卡又不支持软件动态设置,那么你就要使用网卡的设置程序。并不是所有的网卡都要经过这一步,因为有些网卡支持通过驱动软件及其输入参数来确定网卡的工作参数。可以通过查阅网卡使用说明书来确定这一点。

网卡的设置程序与驱动程序不同,设置程序仅仅用来对网卡EEPROM中的设置进行修改。网卡程序本身可能运行在其它操作系统下,如WINDOWS95/98、OS/2、DOS等。如果是非Linux平台,那你就先在适合设置程序运行的系统中安装网卡,按设置程序说明设置网卡参数。然后再在Linux系统下安装该网卡。

第二步:安装Linux系统

假如你将要安装以太网卡的Linux系统本身还未安装,那么可以先试着在安装Linux的同时安装网卡。这一步成功的前提是你的Linux发行版本包含将要安装的网卡的驱动程序。

运行Linux的安装程序,按提示进行操作,别忘了安装核心的网络部分。当进行到LAN配置时,安装程序会列出它支持的所有网卡的类型。看看你的网卡是否榜上有名。随着Linux发行版本的不断升级,目前RedHat6.0已经覆盖了常用的网卡类型。如果很幸运地你的网卡恰好在其中,那么下文讨论的很多步骤都可以不必考虑了,安装程序会自动完成网卡的安装与驱动。但如果没找到适用于你的网卡类型,也不必担心,继续下一步。

第三步:手工安装网卡

安装网卡也就是安装网卡的驱动程序。网卡要工作必须要有驱动程序,并且驱动程序越成熟越好。驱动程序一般由网卡的生产或供应商提供。由于Linux是一个起步不久的新兴操作系统,网卡的生产商并不一定提供Linux环境下的驱动程序。这时候你就得从其它途径想办法了,比如到INTERNET上专门提供硬件驱动程序的网站查找一下,也可以在新闻组上贴个求助信息。总之,只有得到网卡的驱动程序后,方可进行下一步。

网卡的驱动程序有两种类型。一是可直接使用的二进制代码;另一种是驱动程序的源代码。二进制代码一般是预先编译好的可装载模块。源代码可以编译成可装载模块,也可以编译成系统核心的一部分。如何把源代码编译成可装载模块不在本文讨论之列,具体可以查阅驱动程序的说明书。

1.可装载模块的使用

系统提供了一组命令用于将驱动程序模块载入内存执行。这些命令包括modprobe、insmod、Ismod、rmmod。modprobe与insmod命令功能相似,但是方式各异。

modprobe命令使用配置文

件/erc/config.modules来加载可执行模块。要用modprobe命令加载以太网卡的驱动程序,可以在config.modules文件中加入:

aliaseth0drivermodule(drivermodule是驱动程序模块的名称)

这行配置信息把以太网卡的设备名与驱动程序模块联系起来。modprobe命令依据这条信息,自动加载存放于/lib/library/xxxx/net目录下名为drivermodule.o的模块。因此要使modprobe命令找到驱动程序模块,必须将该模块放在/lib/library/xxxx/net目录下。

那么驱动程序的参数如何指定呢?还是使用conf.modules文件。方法是在接着上述配置信息的后面加入下行信息:

optionsdrivermoduleparml=valuel,parm2=value2,……

这里parm1是驱动程序可以接受的参数名,valuel是该参数值;依次类推。

比如optionscs89x0io=0x200irq=0xAmedia=aui

insmod命令直接通过命令行参数将驱动程序模块载入内存,并可以在命令中指定驱动程序参数。例如:

insmoddrivermodule.oparml=valuel,parm2=value2,……

以上两个命令中可以使用驱动程序参数要依据具体的网卡及其驱动程序而定,要仔细阅读网卡及驱动程序的说明书。有的网卡驱动程序可以用这些参数覆盖网卡本身EEPROM中存储的参数。有的则必须使用EEPROM中的参数。有的因为驱动程序不自动检测网卡使用的参数,所以还得把网卡使用的EEPROM中的参数传给驱动程序。

卸载驱动程序模块使用rmmod命令:

rmmoddrivermodule.o

2.把驱动程序编译入系统核心

除了以可装载模块的形式使用驱动程序,还可以把驱动程序编译进Linux核心,以获取更高的效率。这种方式需要驱动程序的源代码、Linux核心源代码及其编译工具。Linux核心的编译过程包括配置核心、重建依赖关系、生成核心代码等步骤。配置核心的过程是用系统提供的配置工具(makeconfig或makemenuconfig)重新生成用来编译核心的众多make文件的过程。为了让核心的配置工具了解你的网卡驱动程序,你需要修改一些核心的配置文件。

(1)修改配置文件:主要修改核心源代码目录下的四个文件,即drivers/net/CONFIG文件、drivers/net/Config.in文件、drivers/net/Makefile文件和drivers/net/Space.c文件。CONFIG和Config.in文件用于控制核心配置工具(makeconfig或makemenuconfig)的运行,主要是加入关于是否包括该网卡的支持提示。Makefile和Space.c文件用于编译核心代码并说明面向核心的接口。详细语句参见下面例子。

(2)运行核心配置工具:在核心源代码目录下执行makeconfig或makemenuconfig命令。makeconfig是面向命令行的,通过逐句回答提问来配置核心。由于其在配置过程中不可改变或撤消以前的回答,故多有不便。makemenuconfig则是通过窗口菜单方式,使用起来很方便。就本文而言,你只要在上一步中正确修改了配置文件,那么在config中会出现是否需要该网卡支持的提问,你选择‘y’。或者在menuconfig中的network菜单中出现表示该网卡的菜单项,把它选上即可。

(3)重建依赖关系:很简单,执行makedep和makeclean命令。

(4)生成核心代码:执行makezImage命令。这个命令开始真正编译核心代码,并把核心代码存放为arch/i386/boot目录下的zImage。

(5)为了使用新的核心代码,你需要用新的核心代码替换原有的。原有的核心代码一般存放在/boot目录下,文件名称类似于vmlinuz-v.s.r-m(v.s.r-m)表示核心的版本号)。如vmlinuz-2.0.34-1。执行下列命令:

cparch/i386/boot/zImage/boot/vmlinuz-v.s.r-m

为了安全起见,可以先把原有的核心代码做个备份,以便发生错

误时恢复。

至此,你可以重新引导系统以使用新的带有正确网卡驱动支持的Linux核心。唯一剩下未解决的是驱动程序的参数问题。有些网卡驱动程序如果不输入参数,那它工作就会不正常,甚至根本不工作。由于现在网卡的驱动程序是系统启动时由核心载入运行的,系统启动之后用户就很难改变这些参数了,所以你必须在系统启动时告诉Linux核心网卡驱动程序使用的参数。具体方法有两种:

(1)在系统引导程序LILO中输入。

在LILO开始引导系统时,用ether子命令设定以太网卡驱动程序的参数。ether命令的使用方式为:

LILO:linuxether=IRO.BASE_ADDR,NAME

这里带下划线的是要输入的部分,IRQ表示中断号,BASE_ADDR表示端口号,NAME表示网卡的设备名。例如:linuxether=15,0x320,eth0

(2)在LILO配置文件中设定。

每次在系统启动时再输入驱动程序参数似乎有点过于麻烦。幸好系统提供了LILO的配置文件可以用来永久性的设置Linux系统启动时的子命令。方法是在/etc/lilo.conf文件中的适当位置加入以下一行:

append=“ether=IRQ,BASE_ADDR,NAME”

这里带下划线部分的意义同上。加入这一行后,还需要用/sbin/lilo命令把这个配置写入引导程序。

第四步:网络配置及测试

安装完网卡就可以配置网络通信了。配置网络简单地就是使用ifconfig命令,

例如:

ifconfigeth01.2.3.4netmask255.0.0.0up

最后ping一下网上其它机器的ip地址,检查网络是否连通。

五、一个以太网卡安装实例

下面以Cirrus公司生产的CrystalCS8920以太网卡为例,详细说明上述安装配置过程。本例中,有些命令参数,如核心源代码目录等,是以我使用的系统环境为出发点。具体应用中还要加以本地化。为了更接近实际,例子中也包括了对安装中碰到的问题的描述。

1.此网卡是IBMPC机的内置式网卡,机器只提供了Windows95/98环境下的驱动程序。由于RedHat5.0发行版本尚未提供对此网卡的直接支持,所以从Cirrus的站点上找到并下载了该网卡驱动程序的Linux版本,是一个名为Linux102_tar.gz的压缩文件。

2.文件Linux102_tar.gz解压后包括五个文件。包括源代码,仅适用于Linux2.0版本的目标模块以及readme文件。

3.查阅readme文件后,了解到这个驱动程序只能使用网卡EEPROM中设定的端口号(I/O基地址)、中断号。为了知道网卡EEPROM的设置,又从Cirrus站点下载了该网卡DOS版本的设置程序setup.exe

4.在DOS中运行setup.exe,发现网卡的起始端口号为0x360,中断号为10,与别的设备有冲突。选择setup.exe程序的相应菜单,把中断号改成5。另外,此驱动程序不支持plugandPlay,故也在setup.exe中将网卡的PnP功能屏蔽掉。

5.我所使用的RedHat5.0的Linux核心版本为2.0.34,所以不能用现成的驱动程序目标模块,需要自己动手编译。如上文所述,有两种方式使用此驱动程序。

6.如果要编译成独立模块,执行下列命令:

gcc-D_KERNEL_-I/usr/src/linux/include-I/usr/src/linux/net/inet-Wall-Wstrictprototypes-02-fomit-frame-pointer-DMODULE-DCONFIG_MODVERSIONS-ccs89x0.c

编译结果是名为cs89x0.o的驱动程序目标模块。要装载此驱动程序,输入下列命令:insmodcs89x0.oio=0x360irq=10

要卸载此驱动程序,用rmmod命令:

rmmodcs89x0.o

7.如果要将驱动程序编进系统核心,

修改/usr/src/linux/drivers/net/CONFIG,加入:

CS89x0_OPTS=

修改/usr/src/linux/drivers/net/Config.in,加入:

tristate‘CS8920Support’CONFIG_CS8920

以上两行是为了让makeconfig在配置过程中询问是否增加CS8920网卡的支持。修改/usr/src/linux/drivers/net/Makefile加入:

ifeq((CONFIG_CS8920),y)

L_OBJS+=cs89x0.o

endif

修改/usr/src/linux/drivers/net/Space.c,加入:

externintcs89x0_probe(structdevice*dev);

……

#ifdefCONFIG_CS8920

&&cs89x0_probe(dev);

#endif

以上两段是为了编译并输出网卡驱动程序及其例程。

把驱动程序源代码拷到/usr/src/linux/drivers/net目录下。

在/usr/src/linux目录下执行makeconfig或makemenuconfig,选择核心CS8920网卡支持。

执行makedep、makeclean命令。最后用makezImage编译Linux核心。

如何设置核心驱动程序参数,上节已有说明,不再赘述。

操作系统论文第2篇

计算机操作系统是计算机硬件和各软件间的接口,为计算机硬件的细节进行屏蔽,为各种应用软件提供接口和服务。该课程的教学目的是为让学生熟悉计算机操作系统的基本知识和方法,为将来走向相关岗位服务。该学科是具有较高工程性的计算机专业基础课程《,计算机操作系统》教学任务既要加强学生的计算机操作系统理论高度,同时要重视实践操作。在实践课程中,学生不断探索和提高,培养学生对计算机操作系统的热情和好奇,帮助学生独立学习和思考,鼓励学生合作探究和质疑,在实践过程中增强对知识的体验和追寻正确解决问题的方法《。计算机操作系统》实践教学质量的高低,会影响将来学生在工作岗位中的综合素质与工程实践能力。

2《计算机操作系统》实践教学改革措施

2.1化难为易,从主观和客观两方面改进

2.1.1增强学生的主动性

首先,注重学科总动员。在实践课刚开始时,教师要通过实例为学生讲解计算机操作系统实践学习的重要性,让学生明确实践教学对本课程的理论学习和将来就业后的实际应用,都产生重大的影响作用。学生从新课伊始,就树立了正确的目标和学习的方向,有利于将来学习中有针对性的加强编程和动手能力。其次,教师要结合自身经验,列举以前学生的学习案例,将操作系统实践学习的特点以及重难点告诉学生,同时要进行学习方法的传授,让学生能根据自己的学习基础和能力,有计划的进行课前预习和资料的准备,为将来课堂效果的提升奠定良好基础。再次,在实践课堂上,教师要避免反复强调教学内容的重要,应该在安排作业的时候,有目的的对学生进行启发式教学,例如从应用或工程实践的角度,运用案例的形式对课堂所讲的实践教学内容进行多层次、全方位描述,挑战学生的思维,增加竞争意识和学习主动性。

2.1.2在客观上,化难为易

教师在实践教学中,要充分发挥主导者和点拨者的重要作用,能针对学生的学习难点和典型问题进行讲解,在合理设问和启发中,调动学生的学习自觉性,开发学生的思维能力。首先,分层次设计实验把学习者划分为:终端用户、程序员和系统设计者。五类实验:基础性实验、应用性实验、综合性实验、设计性实验和创新性实验。基础性实验是最简单的实验,目的是使学生熟悉某种操作系统的使用与配置。允许学生选择自已感兴趣的操作系统,为便于后续实验的开展建议选择Linux操作系统;应用性实验的难度略高于基础型实验,要求学生模拟实现一些经典的操作系统算法;便于学生理解操作系统原理和经典算法;综合性实验要求学生研究学习现代主流操作系统。其次,帮助学生快速入门以实验“模拟设计页面调度”为例:模拟设计页面调度实验目的,加深对虚拟存储管理算法的理解。实验内容:(a)模拟页式虚拟存储管理中的硬件地址转换和缺页中断;(b)用C语言设计一个算法,模拟页面调度,采用FIFO算法实现缺页中断;(c)程序应能显示或打印物理地址及是否缺页,并计算出缺页中断率,分别采用FIFO算法和LRU算法进行比较,观察并分析结果。再次,保护学生学习热情教师要保护学生的学习积极性,学生遇到疑难问题或者不能独立解决的疑惑,教师应对给予知识上的补充和学法上的指点。教师可以鼓励学生科学运用网络资源,自行到网络上进行知识更新和充实,搜索知识、观点、技术等,参加网上论坛或者班级学习群讨论留言。

2.2由浅入深,多角度多层次学习掌握Linux系统

教学时可以选择Linux作为实验操作系统,因为许多学生对它都很陌生,做实验时必须遵循认知规律,要由浅入深、循序渐进的操作。首先,了解Linux系统的基本操作流程,对操作员接口和程序员接口有所掌握。学生在这一环节中,可以比照早已熟练的Windows操作系统的一系列功能,自行领悟Linux操作系统。其次,了解操作系统的基本步骤和条件后,步入应用性实验环节,进行编程模拟,学会操作系统的部分功能。当学生学习兴趣提高,有了一定基础后,可以逐渐增加实验内容的难度,让学生实现操作系统功能的阶梯式进步,最后达到熟练掌握和应用,体验获得知识和能力的成就感。学生在这个过程中,增强了团队精神,锻炼了领导力和服从力,为将来走向工作岗位提升了综合素质。

2.3优化考核方式,加强实践教学质量的监控

要提高《计算机操作系统》实践教学效果,必须避免传统只重视书面成绩的考核方式弊端,应该增强对实践教学质量的全面监控,提高操作系统课程的实效性。具体说来,可以从两方面进行改进:首先,加大实验成绩的比重《。计算机操作系统》要看综合分数,提高实验成绩的分数能引起学生对实验教学的直接重视。其中基础性和应用性的实验,学生必须撰写实验包括,写出算法和数据结构;对综合性、设计性、创新性的实验,学生应该用论文的形式上交。这样的考察方式可以让学生将理论和实践更好的结合,同时根据上交作业层次给予不同的权值,能增强学生的团队协作能力,增强学生在实验中的体验,提升理论素养和高度。其次,加大开放性评定的比重。对设计性和创新性实验进行考核时,要在对报告进行考核的基础上,综合各种形式进行合理量化。团队形式的实验,要求各小组组长提交任务分配和执行情况分析报告,将每个人的合作能力、资料搜集与分析能力的等列入评定体系。

操作系统论文第3篇

关键词CSP;MS-CAPI;数字证书;ActiveX控件;COM组件;NTLM;域控制器

1引言

在安全方面,微软开发并免费提供一套密码接口API(MS-CAPI),使用这套API能够解决Windows操作系统中的密码安全问题。

像JAVA中的JCA/JCE一样,MS-CAPI隐藏了密码算法本身的一些繁琐内容,而仅体现出功能上的要求。MS-CAPI同样使用了引擎和类的方式,但它有自己的术语描述方法。在MS-CAPI中,提供者类等同于我们常说的CSP(CryptographicServiceProviders)。不同的厂家提供的CSP在内部实现代码上可能不尽相同,但是在对外接口上按照微软的定义都是完全一样的。MS-CAPI提供一套通用的但需要CSP支持的外包接口,应用程序开发者通过使用这套接口来实现密码安全功能。CSP的内部内容对于应用程序的开发者来说是透明的。MS-CAPI自带默认的微软CSP,这个CSP也可被其它第三方的CSP所替代。

图1MS-CAPI与CSP的关系

图2MS-CAPI方法与CSP

CSP实际上就是一个DLL文件,这个文件必须经过微软的签名才能保证它在Windows操作系统中的可用性,目前,微软免费对第三方的CSP进行签名。在应用过程中,Windows操作系统首先要验证签名合法性后才能正常使用。

2MS-CAPI

我们来看一段用VB写的小程序,这是运用MS-CAPI来生成数字签名的例子。例子本身很简单,但笔者还是给出了一定的注解,便于阅读。

//给需要签名的明文分配一个变量strPlainText

strPlainText=”明文数据”

//通过CAPICOM数字签名类创建一个对象,给对象命名oDigSig

setoDigSig=CreateObject(“CAPICOM.SignedData”)

//在数字签名对象和明文建立关联

oDigSig.Content=strPlainText

//设置输出数据仅为签名结果而不包含明文

fDetached=TRUE

//生成明文。通过调用数字签名对象的Sign方法,同时传递相应参数到方法中,变量signature包含签名结果

signature=oDigSig.Sign(Nothing,fDetached)

和JCA/JCE类似,MS-CAPI的最大优点就在于它是完全公开的,用户可以自由的使用。而且,它已经成为了IE和Windows2000以上操作系统的一部分。在未来的日子里,依靠微软的品牌效应再加上Windows操作系统庞大的用户群,很可能使得MS-CAPI成为相当流行的密码安全类软件。MS-CAPI另一大优点在于CAPICOM。CAPICOM是一个COM客户端,可以通过ActiveX控件或COM组件的形式进行密码函数的自动调用,CAPICOM用于处理基本的密码操作,如签名验证,数字信封,解密数字信封,加解密数据,检查数字证书的有效性等。CAPICOM可以用VB或VC进行调用。

3安全与Windows操作系统

3.1安全特征

(1)安全登录与反欺骗措施:安全登录要求管理员为所有用户设置一个口令用于登录。黑客会开发一个能够给用户显示登录界面的程序,然后通过某种方式在用户终端上运行,而不加怀疑的用户往往会认为这个登录界面就是系统的登录界面,并在其中输入自己的用户ID和口令,攻击者以此方式轻易地就能够截获用户ID和密码,并显示一个登录失败的错误信息给用户。Windows2000以上操作系统通过要求用户使用CTRL-ALT-DEL结合的方式进行登录来防止上述攻击。键盘驱动程序在捕捉到CTRL-ALT-DEL的序列以后,会通知系统调用正确的登录显示界面。在Windows中,是没有办法屏蔽CTRL-ALT-DEL三键组合消息的,因此,使得黑客欺骗变得无机可乘。

(2)任意访问控制:这种机制允许资源如文件的拥有者能够决定谁并且能够以哪种方式来访问资源。

(3)权限访问控制:这种机制允许系统管理员在出现问题的情况下,超越任意访问控制的范围。

(4)地址空间保护:Windows2000以上操作系统给每个进程提供独立的受保护的虚拟地址空间,这样就有效地防止了恶意的进程攻击。

(5)新页归零:这种机制保证了任何新页都是从内存地址二进制0开始的,这样一来,一个进程就无法知道它前面的那个进程到底做了些什么。

(6)安全审计:利用这个机制,系统管理员能够通过查询系统产生的日志了解系统的相关安全事件。

每个Windows2000的用户和用户组会被分配一个惟一的SID,这个SID由一个随机数和一个短的二进制的头标志组成。每个SID在全世界惟一。进程和线程只有在用户的SID下才能运行。每个进程在Windows2000下都有一个包含SID和其它信息的可访问令牌。系统中的每个资源(如文件)又都有一个对应的安全描述符,该描述符描述了哪个SID允许做哪些操作。

3.2用户认证

Windows2000使用Kerberos协议来完成用户身份认证。同时系统也支持WindowsNT的挑战/响应机制,这种机制又被称之为NTLM。NTLM以挑战/响应机制为基础,同时避免明文口令的简单传递。NTLM的工作原理如下:

(1)用户在登录界面上输入用户ID和口令。用户的计算机计算出口令的摘要值,同时在内存中销毁用户输入的口令。

(2)客户端将用户ID的明文传递到服务端。

(3)服务器传送16字节的随机数到客户端。

(4)客户端用口令计算出的摘要加密随机数,客户端将加密结果(客户端响应值)传送到服务器端。

(5)服务器将用户ID、传给客户端的随机数、客户端响应值(即客户端加密结果)传递给一台特殊的机器,我们称之为域控制器。在域控制器上保留着所有的用户ID和口令的消息摘要值。

(6)域控制器接收到从服务器端传来的上述数据以后,从数据库(SAM)中可以得到当前用户对应的口令消息摘要值,并且用它来加密从服务器端传来的随机数。

(7)域控制器通过比较从服务器端传来随机数加密结果(第5步)和自身计算得到的结果(第6步)的一致性,来判断用户的身份是否合法。

图3WindowsNTLM的认证过程

4结论

从安全性的角度来说,Windows系统本身还有诸多方面值得我们进行深入的研究,因为Windows系统的安全性被集成到了操作系统的方方面面,大多数安全决策被本地的安全颁发策略所控制,本文的侧重点仅在于关于密码安全基础的概念方面,力图使读者对于系统的安全特性有所了解,以便日后再进行深入研究。

参考文献

[1]SteveBurnett&StephenPaine著,冯登国,周永彬,张振峰,李德全等译.《密码工程实践指南》.清华大学出版社,2001.10

[2]BruceSchneier著,吴世忠等译.应用密码学——协议、算法与C源程序.机械工业出版社,2000

操作系统论文第4篇

关键词:RTOS嵌入式系统嵌入式应用嵌入式开发工具

随着互联网应用的迅速发展,嵌入式微处理器的应用日益广泛,无处不在,从波音飞机到移动电话,都有嵌入式微处理器的存在。在嵌入式微处理器的应用开发中,嵌入式实时操作系统(简称RTOS)是核心软件,就像我们日常所用计算机的桌面系统中,微软公司的Windows98一样重要。RTOS已经在全球形成了1个产业,据美国EMF(电子市场分析)报告,1999年全球RTOS市场产值达3.6亿美圆,而相关的整个嵌入式开发工具(包括仿真器、逻辑分析仪、软件编译器和调试器)则高达9亿美圆。

一、RTOS发展历史

从1981年ReadySystem发展了世界上第1个商业嵌入式实时内核(VRTX32),到今天已经有近20年的历史。20世纪80年代的产品还只支持一些16位的微处理器,如68k,8086等。这时候的RTOS还只有内核,以销售二进制代码为主。当时的产品除VRTX外,还有IPI公司的MTOS和80年代末ISI公司的PSOS。产品主要用于军事和电信设备。进入20世纪90年代,现代操作系统的设计思想,如微内核设计技术和模块化设计思想,开始渗入RTOS领域。老牌的RTOS厂家如ReadySystem(在1995年与MicrotecResearch合并),也推出新一代的VRTXsa实时内核,新一代的RTOS厂家Windriver推出了Vxwork。另外在这个时期,各家公司都有力求摆脱完全依赖第三方工具的制约,而通过自己收购、授权或使用免费工具链的方式,组成1套完整的开发环境。例如,ISI公司的Prismt、著名的Tornado(Windriver)和老牌的Spectra(VRTX开发系统)等。

进入20世纪90年代中期,互联网之风在北美日渐风行。网络设备制造商、终端产品制造商都要求RTOS有网络和图形界面的功能。为了方便使用大量现存的软件代码,他们希望RTOS厂家都支持标准的API,如POSIX,Win32等,并希望RTOS的开发环境与他们已经熟悉的UNIX,Windows一致。这个时期代表性的产品有Vxwork,QNX,Lynx和WinCE等。

二、RTOS市场和技术发展的变化

可以看出,进入20世纪90年代后,RTOS在嵌入式系统设计中的主导地位已经确定,越来越多的工程师使用RTOS,更多的新用户愿意选择购买而不是自己开发。我们注意到,RTOS的技术发展有以下一些变化:

1.因为新的处理器越来越多,RTOS自身结构的设计更易于移植,以便在短时间内支持更多种微处理器。

2.开放源码之风已波及RTOS厂家。数量相当多的RTOS厂家出售RTOS时,就附加了源程序代码并含生产版税。

3.后PC时代更多的产品使用RTOS,它们对实时性要求并不高,如手持设备等。微软公司的WinCE,PlamOS,JavaOS等RTOS产品就是顺应这些应用而开发出来的。

4.电信设备、控制系统要求的高可靠性,对RTOS提出了新的要求。瑞典Enea公司的OSE和WindRiver新推出的VxworkAE对支持HA(高可用性)和热切换等特点都下了一番功夫。

5.Windriver收购了ISI,在RTOS市场形成了相当程度的垄断,但是由于Windriver决定放弃PSOS,转为开发Vxwork与PSOS合二为一版本,这便使得PSOS用户再一次走到重新选择RTOS的路口,给了其他RTOS厂家1次机会。

6.嵌入式Linux已经在消费电子设备中得到应用。韩国和日本的一些企业都推出了基于嵌入式Linux的手持设备。嵌入式Linux得到了相当广泛的半导体厂商的支持和投资,如Intel和Motorola。

三、RTOS的未来

未来RTOS的应用可能划分为3个不同的领域:

1.系统级:指RTOS运行在1个小型的计算机系统中完成实时的控制作用。这个领域将主要是微软与Sun竞争之地,传统上Unix在这里占有绝对优势。Sun通过收购,让他的Solaris与Chrousos(原欧洲的1种RTOS)结合,微软力推NT的嵌入式版本“EmbeddedNT”。此外,嵌入式Linux将依托源程序码开放和软件资源丰富的优势,进入系统级RTOS的市场。

2.板级:传统的RTOS的主要市场。如Vxwork,PSOS,QNX,Lynx和VRTX的应用将主要集中在航空航天、电话电讯等设备上。

3.SOC级(即片上系统):新一代RTOS的领域:主要应用在消费电子、互联网络和手持设备等产品上。代表的产品有Symbian的Epoc、ATI的Nucleus,Expresslogic的Threadx。老牌的RTOS厂家的产品VRTX和Vxwork也很注意这个市场。

从某种程度讲,不会出现1个标准的RTOS(像微软的Windows在桌面系统中的地位一样),因为嵌入式应用本身就极具多样性。在某个时间段以及某种行业,会出现1种绝对领导地位的RTOS,比如今天在宽带的数据通信设备中的Vxwork和在亚洲手持设备市场上的WinCE就是一例子。但是,这种垄断地位也并不是牢不可破的,因为在某种程度上用户和合作伙伴更愿意去培养1个新的竞争对手。比如,Intel投资的Montivista和Motorola投资的Lineo,这两家嵌入式Linux系统,就是说明半导体厂商更愿意看到1个经济适用的、开放的RTOS环境。

四、RTOS在中国

中国将是世界上最大的RTOS市场之一。因为中国有着世界上最大的电信市场。据信息产业部预计,在未来2~3年内,中国将是世界上最大的手机市场(每1部手机都在运行1个RTOS)。这样庞大的电信市场就会孕育着大量的电信设备制造商,这就造就了大量的RTOS和开发工具市场机会。目前,中国的绝大多数设备制造商在采用RTOS时,首先考虑的还是国外产品。目前,在中国市场上流行的RTOS主要有Vxwork,PSOS,VRTX,Nucleus,QNX和WinCE等。由于多数RTOS是嵌入在设备的控制器上,所以多数用户并不愿意冒风险尝试1种新的RTOS。

但是我们同时也注意到,目前RTOS在中国市场的销售额还很小,这主要是2个原因:

1.中国设备制造商的规模普遍还无法与国外公司相比,开发和人员费用相对还较高,所以RTOS对于中国用户来讲是比较贵的。

2.多数国内用户还没有开始购买RTOS的版税,其主要原因有:产品未能按计划批量生产,没有交版税的意识。应该注意,大多数二进制的RTOS必须在产品量产时交版税,或者按数量买或者与厂家讨论一次性买断,而由厂家直接发给你授权协议书。据国外某家RTOS厂家称,他们年收入的30%来自版税。

操作系统论文第5篇

(1)增强安全Linux系统SELinuxAndroid系统权限主要由应用层权限和Linux内核的文件系统权限组成,APP应用通过在AndroidManifest.xml文件中声明申请应用层权限,Linux文件权限则明确了系统内每个文件的读、写、执行、拥有者和分组的权限。Android系统宽松的开放性为其带来高速的发展,但同时也暴露出各种安全问题,从Android4.3版本开始,在内核集成了SELinux,增强操作系统的安全性。SELinux提供了一种灵活的强制访问控制(MAC)系统,且内嵌于LinuxKernel中。SELinux定义了系统中每个用户、进程、应用和文件的访问和转变的权限,然后它使用一个安全策略来控制这些实体(用户、进程、应用和文件)之间的交互,安全策略指定如何严格或宽松地进行检查。只有同时满足了“标准Linux访问控制”和“SELinux访问控制”时,主体才能访问客体。在SELinux中,通过事先定义每个进程的允许操作,来禁止其进行越轨的操作。集成了SELinux的Android系统沿袭了这一机制,通过限制各进程的操作权限,可以防止恶意软件篡改系统。一般来说,攻击漏洞的恶意软件为了长久利用篡夺到的Root权限(系统超级权限),会在Android的系统区中埋设特点命令(如su切换用户命令),而在SELinux中,通过事先设定不允许以Root权限执行的各种进程改写系统区和重复挂载,就可以有效回避此类攻击。Android5.0之前的SELinux默认设置为Permissive模式,即对违规行为只作日志记录,供事后审计,而5.0版本则默认设置为Enforcing模式,真正启用SELinux,对违规行为进行拒绝并日志记录。由于Android系统的开源特性,开发者可对操作系统的内核源码进行修改,放宽SELinux策略检查,向没有锁定Bootloader的终端设备刷入定制的内核,以获得不受限制的Root权限。(2)用户参与的权限管理针对一些敏感的权限,iOS都会弹窗请求用户的许可,如开启GPS定位、网络连接、拨打电话等,而对一些涉及隐私的权限,则不对第三方APP开放,如收发短信、联系人管理等。由于iOS的封闭性对于权限管理机制有一定程度的保护,而且随着iOS系统的不断改进,越狱困难越来越大。

2安全域隔离

(1)TEE隔离iOS在推出TOUCHID功能的同时也推出了SecureEnclave安全域,SecureEnclave是苹果A7及以上主处理器的协处理器,其自身具有微操作系统,与主处理器共享加密RAM,通过中断与主处理器通信,操作系统借助它实现指纹特征数据、UID和GID密钥等需高安全级别关键数据的存储,其在架构上与TEE相似。TEE系统架构标准由智能卡及终端安全的标准组织GlobalPlatform,它提出了在原有硬件和软件的基础上,隔离出可信执行环境TEE(TrustedExecutionEnvironment)和富执行环境REE(RichExecutionEnvironment),其中TEE用于安装、存储和保护可信应用(TA),而REE用于安装、存储其它的应用。TEE具有自身的操作系统,与REE环境中的操作系统(如iOS、Android)相隔离。REE中的授权应用,通过驱动程序才能与TEE中的驱动程序通信,不可直接访问TEE的资源。TEE还可具备可信用户界面(TUI),为一些关键的屏幕显示和交互提供了安全保障。图3为TEE系统架构示意图。TEE在实际应用中也存在一些问题与缺点:TEE的硬件隔离主要体现在对CPU资源的分时或分核隔离、RAM资源和存储资源的寻址隔离等,物理器件上仍然与REE环境共享,实质上只是芯片内的软件调度隔离,因此不具备较高的防篡改能力。同时,TEE仍存在认证的问题,CC(信息技术安全评价通用准则)组织的EAL(评估保证级别)等级认证仍在进行中。针对TEE架构的移动平台攻击包括:1)芯片攻击利用JTAG调试接口对MMU(内存管理单元)处理器单元重新编程,修改RAM及存储的寻址范围,以获得相应数据的访问权限。利用物理探针在SoC芯片的数据总线上进行信号窃听。2)共享资源攻击如果REE环境中的非法代码能共享访问与TEE相同的CPU或RAM资源,那么TEE就存在受到共享资源攻击的风险。3)系统漏洞攻击在智能手机设备上发现了TEE内存访问控制的漏洞。Bootloader存在设计漏洞,可用于系统非法提权。整数溢出会给TEE的运行带来风险。在安全启动代码中存在证书处理或签名有效期的漏洞,允许黑客插入恶意代码。4)入侵式攻击篡改代码签名机制可允许黑客插入恶意代码。(2)SE隔离SIMallicance组织提出了基于Java语言的OpenMobileAPI机卡通信接口,使得运行于智能手机操作系统上的应用可通过操作系统提供OpenMobileAPI接口,使用ISO7816协议与SE安全单元中的Applet应用通信,现主要应用于Android系统。SE是具有防物理攻击的高安全性的芯片,内含独立的CPU、RAM、FLASH和操作系统,SE可存储密钥等关键数据信息,SE中的Applet应用可进行各种加解密算法的运算。主流SE芯片厂家通过了CC组织的EAL5+安全认证,这是目前较为安全的系统隔离方案。由于SE自身不具备UI界面,需借助上层操作系统(即REE),用户输入的PIN码等仍有被截获的风险。由于Android系统的开源特性,黑客可对操作系统中安全规则检查模块代码进行修改、编译并向终端重新刷入更改的模块,使得非授权应用可直接与SE中的Applet通信,为终端安全带来极大的风险。

3安全解决方案建议

REE+TEE方案或REE+SE方案在一定程度上提升了终端系统的安全性,但仍然存在一定的缺陷,难以抵挡高级别的攻击。以下针对运营商的具体情况给出一些建议:(1)架构方面:建议SE不直接与REE对接,而是与TEE的TrustedKernal对接,REE对SE的访问,可通过TEE进行,即REE+TEE+SE方案。(2)关键信息存储方面:原存储于TEE中的密钥、密码等关键信息,可转移放至SE中,借助SE的抗攻击能力,对关键信息实施保护。(3)关键运算载体:大数据量的加解密预算,如对称加解密运算等,建议由TEE中TA应用负责,借助TEE丰富的运算和内存资源保障响应性能;小数据量的加解密运算,如数字签名等,建议由SE中的Applet应用负责。(4)实施建议:电信运营商的SIM卡是现成的SE资源,且具有成熟的TSM后台对其管理,终端TEE可通过ISO7816接口与SIM卡SE进行对接,把SIM卡SE作为可信设备,从而构建出软件+硬件的整套安全解决方案。

4结束语

操作系统论文第6篇

关键词:操作系统;课堂教学;教学实施

中图分类号:G642 文献标识码:B

1引言

操作系统是计算机系统的核心和灵魂,是最为基础的软件系统,构造极为复杂。“操作系统”课程是计算机相关专业的专业核心课程,通过该课程的学习不但要求学生掌握操作系统的基本理论和知识,具有剖析、设计和实现操作系统的基本能力,而且应该培养学生的软件开发能力、技术创新能力、科学作风与综合素质等。因此,计算机科学与技术专业的学生必须要学好这门专业课程。

由于操作系统理论性与实践性结合紧密,涉及学科抽象、理论、设计3个形态,与理论模型、算法设计、软件系统、工程实现、程序设计、领域应用等密切相关,具有理论性强、概念抽象、难以理解掌握,设计技巧高、实现机制精妙、代码量庞大,技术发展迅速、知识更新快、内容广泛且与多个方向交叉等特征,因此“操作系统”教学有相当难度。

多年来,我们积极开展“操作系统”课程建设,跟踪计算机科学与技术的新趋势、新技术、新方法,不断更新教学大纲、理论教材、实验教材、电子教案、教学方法、实验环节,革新课堂教学和实验教学的内容和手段,改进考核评分办法、探索加强能力培养的途径,组建和培养教学师资梯队,开发数字化网络支撑平台,多方位、立体化推进“操作系统”课程教学质量的提高。

教材建设是课程建设和人才培养的核心,本文以作者编著出版的理论课教材《操作系统教程》(第4版)为背景,结合教材的总体规划与建设,围绕“操作系统”讲什么?怎么讲?介绍多年来在“操作系统”课堂教学上的心得体会,以期抛砖引玉。

2操作系统理论教材的规划与建设

2.1教材建设历史

南京大学是国内最先开展操作系统研究与教学的单位之一,我校自1973年为计算机专业本课生开设“操作系统”课程开始,到2009年为止,30多年间,共出版操作系统教材7本。1980年出版《操作系统原理》(人民邮电出版社),1987年出版《分布式操作系统》(国防工业出版社),1989年出版《操作系统教程》(高教出版社)获1992年部级优秀教材奖,1995年出版《操作系统教程(第2版)》获1997年江苏省二类优秀课程奖,2003年出版《操作系统教程(第3版)》获2004年江苏省优秀课程群奖,2008年出版《操作系统教程(第4版)》被评为2008年教育部精品教材。

2.2 《操作系统教程(第4版)》教材建设思路

操作系统是计算机领域最活跃的分支之一,尽管其基础理论与技术已基本成熟,进入二十世纪九十年代后,随着计算机技术突飞猛进,操作系统新概念、新技术、新方法层出不穷。“操作系统”课程一方面要适应这种发展的趋势,即时更新教学内容;另一方面,也必须抓住操作系统最基本的原理和技术,注重基础理论知识教学。

《操作系统教程(第4版)》(以下简称“第4版”)以“科学性、系统性、先进性、实用性”为教材编著指导思想,从理论、抽象、设计3个形态的高度来组织教学内容,将整个教材划分成十个知识单元:(1)概念与原理;(2)进程和线程;(3)同步、通信和死锁;(4)处理器管理和调度;(5)存储管理与虚拟存储器;(6)设备管理;(7)文件管理与虚拟文件系统;(8)安全与保护;(9)结构与设计、典型操作系统实例;(10)网络与分布式操作系统。教材安排布局和内容组织紧密围绕十个知识单元,有系统、有层次、有广度、有深度地展开全书内容。

第4版教材总体规划与建设过程中,着重考虑了以下几点:

(1) 既要涵盖传统操作系统的基本概念、技术和方法,又要融合现代操作系统的最新技术发展和应用。

(2) 注意理论联系实际,相关概念或原理内容,精选现代操作系统实例作剖析与对比,有益于学生深入理解基本概念和原理,牢固掌握设计与实现的技术和方法。

(3) 强调四讲:讲概念、讲原理,讲方法、讲编程。

以并发进程知识点为例,表1为进程通信知识点及层次安排,给出了自底向上构筑操作系统中“并发问题”解决方案的知识框架。从程序并发执行出现的与时间有关的错误问题出发,逐层深入、逐步展开与阐述,讲解并发程序设计从低级通信原语到高级通信原语,从面向指令的低级程序设计到面向语言的高级程序设计转化的过程,体现了操作系统并发性解决方案自底向上的构筑过程和不同层次。在每个层次上,不但讲概念和原理,也讲具体方法和用来求解经典同步问题的编程(伪代码)例子,使学生容易掌握这些重点与难点,既有利于学生正确理解概念和原理,又能培养学生的动手实践能力和分析解决问题的能力。

(4) 归纳综合、总结提高,从对概念和技术的散碎的感性认识,上升到系统的、理论的高度。资源管理是操作系统最重要的功能之一,目前所见国内外教科书都会讨论这些内容,但鲜有系统地论述的。第4版教材作了尝试与探索,归纳综合资源管理有关知识点,进行系统深化和总结提高。首先,给出资源管理的三种技术:复用技术、虚化技术和抽象技术,阐述每种技术的定义、用途和用法。其次,讨论操作系统中三种最基础抽象:进程抽象、虚存抽象和文件抽象,于是可面向进程而不是处理器、面向虚存而不是实存、面向文件而不是磁盘,也就是不直接面向硬部件进行处理,这样一来操作系统资源管理工作就会变得简单与有效。至此,就能从理论高度掌握资源管理技术,为教好学好操作系统打下良好基础。

(5) 注重基础知识,加强技能训练。确保基础理论和知识在课程中的地位,只有掌握理论和知识,才能为创新能力培养打好基础,这一点在第4版教材编写中予以关注。全书编写200多道应用题,作为实践和技能训练的内容之一。通过让学生多做各种类型应用题达到强化技能训练的目的,也是加强能力培养的一个重要方面。

(6) 注意与实验课教材的衔接。充分体现操作系统理工紧密结合,理论与实践紧密结合的特点。课堂教学以传授理论和知识为主,实验教学以操作和实验为主,理论可在实验中得到检验并指导实践,实验有利于对理论的理解并促进理论的发展。另外编写配套实验教材《Linux操作系统实验教程》,两本教材相辅相成完成“操作系统”教学任务。

3 “操作系统”课堂教学实施中的有关问题

操作系统论文第7篇

关键词:操作系统;Linux

中图分类号:TP316-4 文献标识码:A文章编号:1007-9599(2012)04-0000-02

众所周知,操作系统在计算机专业课程中的重要地位,在计算机软硬件课程的设置上,它起着承上启下的作用。但是,在电子信息类专业的课程设置上,《操作系统》这门课的课时设置以及教学内容的安排与计算机专业的设置有较大的区别。比如课时设置,计算机专业大多都分配了48理论学时+16实践学时,而电子信息类专业的设置大多是36理论学时+12实践学时。如何在较少的授课课时中,让学生能理解操作系统的基本概念和主要功能,掌握常用操作系统(如Linux)的使用和一般管理方法,了解它与硬件和其它系统软件的关系,了解它是如何组织和运作的,能使用和分析常见的操作系统,从而为学生以后的学习和工作打下基础?

现在很多学校的计算机专业和电子信息类专业都开设了基于Linux的《嵌入式系统》课程,但在课程安排上有较大的区别。在计算机专业的课程安排中,他们开设《嵌入式系统》课程之前,会先安排一门相对以理论为主的《操作系统》课程,然后再开设一门类似《Linux程序设计》之类的以实践为主的课程,经过两门课的学习后,学生既掌握了Linux操作系统的使用,也理解了现在操作系统的主要功能及基本原理,为后续的《嵌入式系统》打下了很好的基础。但是,很多电子信息类专业的课程安排中,他们在开设《嵌入式系统》的课程之前往往只开始一门《操作系统》的课程而已。那么,电子信息类的《操作系统》这门课中如何更好地把Linux的使用方法以及现在操作系统的相关原理结合起来,让学生既掌握了Linux使用及C的开发又理解Linux操作系统的基本原理?本文想通过分析常用的《操作系统》的教材[1-9],结合电子信息类专业的教学目标,探索一条解决该类专业《操作系统》课程课时少,内容多这一矛盾的途径。

一、理论内容安排

大多《操作系统》教材的内容都是集中介绍操作系统中的四大资源的管理:内存分配、回收、页面的替换以及段页式的存储管理;进程的控制、调度、通信;中断处理及设备管理和文件系统结构。而且都以原理介绍为主,较少结合某个具体的操作系统(如Linux)的实现方法。在授课过程中,纯粹的原理接收容易使学生感到内容晦涩难懂,而且感觉枯燥,达不到感官认知。因此本文在《操作系统》的理论授课内容安排上,试探性地把合Linux操作系统与操作系统中的基本原理相结,将一些经典的资源管理算法与Linux的内核源码相结合,让学生既能理解相关的原理,又能掌握如何从基本的编程上去实现相应的功能。具体的内容安排如图1所示。整个理论内容分成3大块:基础篇、原理篇和应用篇。

在开始操作系统的原理介绍之前,安排了Linux的命令操作以及编程基础,为后续的原理学习与Linux的内核的结合提供一定的基础铺垫。根据36学时的理论课时,基本安排如下。基础篇的内容、课时安排为:“概述”2课时,介绍操作系统的基本概念及功能,操作系统的发展,最后简要概述Linux操作系统的相关情况;“Linux操作基础”4课时,Linux系统的图形界面已比较友好,因此这部分的授课内容主要是让学生掌握常用的操作命令,以及输入/输出重定向的概念;“软件开发工具”4课时,主要讲授C编译的基本过程、Make工具的应用以及程序调试方法。

在原理篇中,主要是要让学生理解和掌握操作系统的四大资源管理的基本原理以及Linux内核中的相关实现方法,使学生在学习原理的同时能更清楚的了解在具体的操作系统内核中是如何实现的。原理篇的内容、课时安排为:“进程管理”8课时,主要教授进程控制块的作用、进程的调度(结合Linux系统的进程调度算法)、进程同步与互斥(结合Linux的进程间通信);“存储管理”6课时,结合Linux的存储管理机制让学生掌握虚拟地址与物理地址的转换、内存的分配/回收,以及内存的扩充技术;“设备管理”安排4课时,结合Linux设备管理介绍I/O控制方式、设备分配策略等;“文件管理”安排4课时,结合Linux文件系统的结构以及特点,介绍VFS的主要作用。最后在应用篇中,利用较少的4课时分别介绍Shell程序设计以及内核的升级/裁剪、文件系统的构造等。通过这样的理论讲授之后,希望让学生既能掌握Linux操作系统的应用,也能理论并掌握操作系统的主要作用及工作原理。

二、实践内容安排

因为课内安排的实践课时相对偏少,如何让学生有足够的实践机会呢?在讲授某个操作系统的基本原理后,在课堂上可以先结合Linux内核中的具体实现代码,让学生先理解并掌握其中的关键算法,然后要求学生利用课外时间去另行设计某个相对简单的算法,以达到真正理解并掌握的程度。图2列出了课内、课外的实践内容安排。

三、小结

我们从电子信息类专业对《操作系统》课程的教学要求出发,结合目前常用的一些《操作系统》教材,对该课程的体系构建、以及理论和实验教学的设置提出一些建议和意见。《操作系统》课程教学还有其他许多值得深入探讨和研究的内容,本文的建议仅是一家之言,希望对同行能有一定的参考价值,也欢迎同行批评指正。

参考文献:

[1](荷)ANDREW S.TANENBAUM.现代操作系统[M].陈向群,马洪兵,译.北京:机械工业出版社,2009

[2]肖竞华,陈建勋.计算机操作系统原理-LINUX实例分析[M].西安:西安电子科技大学出版社,2008

[3]汤小丹,梁红兵,哲凤屏,汤子瀛.计算机操作系统[M].西安电子科技大学出版社,2011

[4]Pabitra Pal Choudhury.操作系统:原理与设计.北京:清华大学出版社,2012

[5]Abraham Silberschatz,Peter B Galvin,Greg Gagne.操作系统概念(英文影印版).北京:清华大学出版社,2010

[6]张玲编著.Linux操作系统原理与应用.西安:西安电子科技大学出版社,2009

[7]邱铁,于玉龙,徐子川编著.Linux应用与开发典型实例精讲.北京:清华大学出版,2010

[8]陈莉君,康华编著.Linux操作系统原理与应用.北京:清华大学出版,2011

[9]庞丽华,郑然编著.操作系统原理与Linux系统实验.北京:机械工业出版社,2011

操作系统论文第8篇

关键词:操作系统;教学方法;打比方;讨论式;案例式

引言

操作系统是计算机必不可少的系统软件,《操作系统》课程是计算机专业的核心课程之一。它涉及计算机硬件、软件设计、程序设计语言、数据结构和计算方法等领域。具有涉及面广、概念抽象、理论性和实践性强等特点。对提高学生的思维能力、动手能力、创新能力和培养开发型人才具有十分重要的意义。正是由于这些特点,学生在学习过程中往往感到不易理解,难于掌握,和其他的应用软件如excel等相比学习起来更抽象、枯燥。所以,如何讲授《操作系统》才能激发学生的兴趣和创造力值得探讨。下面从几个方面来进行分析。

一、上好第一堂课

就像一部好戏,开头唱好才会有观众。一门课想要激发学生的兴趣,引起学生共鸣,如何上好第一堂课尤为重要。按照教材的组织,作为第一章的绪言将介绍“操作系统”的概念。所以第一堂课不要急于介绍操作系统的内核是如何实现的,而要从不同的方面给学生讲解操作系统的含义。让学生从不同的角度去认识操作系统。

二、选择适合的教学方法

(一)学科式教学

操作系统课程融合了多门计算机科学与技术专业的相关课程,在课程讲授上需要结合相关的课程知识进行扩展,体现学科式教学的特点。

例如,在学习存储管理功能中的页面置换算法时,除了演示算法的基本思想外,结合数据结构和程序设计相关知识,从算法设计角度讲解应选择何种数据结构来实现相关算法,这点非常重要。因为大多数学生对学习过的数据结构的用途还没有真正理解掌握,对于已经掌握的学生来说,可以进一步巩固。

(二)打比方

操作系统原理性强,且比较抽象,不易理解,此时可采用打比方的方法,将问题讲得深入浅出,清晰直观的比方帮助学生理解。

例如,在讲到互斥信号量mutex的作用时,可以用火车上公共厕所门锁来比方讲解。初始时,锁上显示“无人”,可看作mutex的值为1,表示厕所可用,乘客可以申请使用。当乘客进入厕所时,把门锁上取得互斥访问权,此时厕所显示“有人”,可看作对mutex的值进行减1操作,此时mutex的值为0,表示其他乘客则不能再使用厕所,只能等待。当乘客使用完毕,出来时,打开门锁,释放互斥访问权,厕所显示为“无人”,此时相当于对mutex进行加1操作,这时其他乘客可以申请使用。

在讲解程序与进程的区别时,以火车与列车进行比方,火车相当于程序,列车相当于进程。火车由多节列车组成。

(三)案例式

传统的操作系统课程教学的理论性较强、内容抽象。学生在实际使用计算机时,也很难找到这些抽象理论在实际操作系统中的应用。这使得学生对操作系统理论难以理解和掌握。而对于操作系统课来说,如果学生找不到具体的直观感受,对理论的理解和接纳就都成问题。因此教师在讲授时要注重理论与实践系统相结合,注重引导学生去发现问题、解决问题。尤其是一些常见的问题,往往体现着很多操作系统所涉及的基础知识。结合着这些实例问题进行基础内容教学可以收到事半功倍的效果。

比如文件管理,一个文件存储介质,格式化后就分成许多大小相等的单位--存储块(物理盘块)。并给每个存储块有个编号,称为物理块号。文件的存储以块为单位进行。“块”是内存和外存之间进行信息传输的基本物理单位。那么在实际的操作系统中如何来查看文件的存储块大小就可以作为一个案例引起大家的思考,并通过实际操作给出答案。这样即可帮助学生理解文件存储原理了。

(四)讨论式

操作系统课程讲授的操作系统设计的基本原理,也就是说可以从软件项目开发的角度,结合软件工程的思想来讲授,这样在讲授某些原理时,就将其看作是一个小的项目,然后采用讨论式教学模式,以“讨论式”教学为突破口,对更新教学内容、优化教学手段、加强素质教育、培养创新人才具有意义。教师要扮演“项目经理”的角色,根据学生不同的基础做一定的引导,可设置一些问题,帮助提高讨论的质量,同时作为一种促进的手段要求提交个人学习总结和学习小组的讨论记录,保证讨论的效果。小组学习讨论必须有充足的论题可以展开,以避免形式主义。作业与实验的量及其难度应适度,过多过难的作业对大多数学生的学习是不合适的,不利于学生学习自信心的加强。

比如在学习作业调度算法时,可先提出作业的特点,然后让学生分组讨论,应怎样设计算法来满足相应的要求。

“讨论式”教学以培养学生自主学习能力为宗旨,以实现课程教学目标为目的,通过开展课堂讨论、网上讨论、小组讨论等教学活动,使学生对专题问题有进一步的理解。“讨论式”教学能引发学生对不同角度与方法的探讨,增强学生的主体意识,增进学生的协作意识,培养学生的创新意识[1]。

(五)程序设计

操作系统原理课程的实践性环节按深度可以分为五个层次:使用级、观察级、习题管理级、源代码阅读级和实现级。而大多数本科院校都只达到了习题管理级,只有少数院校达到了源代码阅读级和实现级。这也说明要达到源代码阅读级和实现级是非常困难的。对于大多数院校来说可以采用模拟实现的方式来进行实践。

比如在进行进程同步教学时,可以利用某种高级语言对抽象模型“生产者与消费者关系”写出进程同步的代码,并上机实践,使学生把进程同步的抽象知识变为具体可理解的知识。

以java语言为例。对于进程同步问题,java语言提供了线程,即轻型进程,它为同步线程提供了两个方法:object类的wait()方法和notify()方法。当某线程通过管程请求资源而未能满足时,管程调用wait()方法使线程等待,并将它排在等待队列上。当一个线程对资源访问完后,通过notify()方法唤醒等待队列上的线程,需要同步执行的代码要用关键字synchronized修饰。

三、科学的组织教学内容

在内容组织上,无需按照教材编写的顺序进行开展。通过对操作系统原理进行分析,明确“计算机操作系统是方便用户,管理和控制计算机系统软硬件资源的程序的集合[2]”、计算机操作系统是计算机技术和管理技术的结合,以及“操作系统有五大类型和五大功能”的基础上,针对五大功能展开知识结构教学,首先对软件资源管理为主的作业管理,包括任务管理、人机交互界面管理等进行详细讲解,然后进行文件管理、涉及硬件资源管理的存储管理、输入输出设备管理等内容的讲解,最后深入到进程及处理机管理的讲解。

这样组织,可使得每一个新的内容是基于一些问题而引入,带着问题进行讲解,可引起学生的思考,进一步理解了问题的由来和解决问题的方法。

结束语

操作系统是现代计算机的必备系统软件,其应用范围之广,决定了操作系统课程学习的重要性,同时也对操作系统的教法提出了更高的要求。我们需要从实际出发,针对目前操作系统课程存在的问题,对教学活动的各个环节不断进行改进,以达到共同的目标,那就是努力提高教学质量,培养更多学生具备设计、构造和开发系统软件的综合能力。而这需要依赖于教、学双方的不懈努力和教学方法的不断创新。

参考文献

操作系统论文第9篇

关键词:农业信息;计算机;原理课程;教学方法

中图分类号:G642.4 文献标志码:A 文章编号:1674-9324(2015)01-0236-02

农业信息化是当代农业现代化的标志,它主导一个时期农业发展的方向,为实现农业高速、健康、可持续发展提供强大的推动力。信息科学和农业科学不断渗透、交融,产生了农业信息科学技术。这门学科与农业信息化的大业能否实现息息相关。20世纪90年代诞生了Internet,计算机发展进入以网络、信息为特征的数字化时代,农业信息技术得到了加速发展。操作系统原理课程作为农业信息专业的基础课程,在农业信息技术专业人才培养中有着举足轻重的作用。

在计算机系统中,操作系统全面管理计算机系统资源,地位重要。计算机操作系统是配置在计算机硬件上的第一层软件,是向服务客户的一个窗口。计算机上运行的所有程序,包括汇报语言、编译软件以及大量的应用软件诸如常用的办公Office软件等,都依赖于操作系统支持,都要得到操作系统提供的服务。操作系统原理课程与诸多领域密切相关,如程序设计,数据结构,计算机硬件、软件设计,程序设计语言,等等,具有涵盖领域广、相关概念较为抽象、实践性和操作性强的特征。这些对提高学生的思维创新能力,培养学生的动手实践能力有很大帮助。然而,也正是由于这些特点,使学生经常感到学习难度偏大,不易掌握。所以,我们应该完善目前的教学模式,来促进学生对于操作系统原理的消化和吸收。限于农业专业方向在计算机方面的师资、生源、硬件条件等的具体情况,在教学过程中,没有把操作系统原理的教学提高到培养复合型应用人才的高度,对教学内容、课程设置与教学方法研究较少。教学内容陈旧落后且重复严重,课程结构不合理。

以下三点是笔者在教学实践中发现的计算机操作系统课程教学存在的不足之处:

1.在传统的计算机操作系统课程教学中,课堂灌输是主要形式,仅辅以少量实践操作,导致课程理论性较强、内容抽象。对学生而言,学习过程中难度较大,知识点多且庞杂,而操作系统原理教学中以理论讲解为主,很难达到理想的教学效果,学生难以对操作系统课程有全面系统的认识,在计算机操作系统的实际应用中也很难结合这些抽象理论,对这门课程的学习具有畏难情绪。

2.课堂教学手段较为单一、枯燥。现在的计算机高校教材中,内容多数由操作系统的基本原理等五部分组成(操作系统概述、进程管理、存储管理、外部设备管理和文件管理)。课程讲授主要偏向理论知识的灌输,教学内容与实际使用的Windows和Linux等操作系统脱节,存在一定距离,学生对该课程失去兴趣,学与用之间缺乏联系。计算机操作系统的原理性和抽象性强、系统性较差、更新速度快。在传统教学中,老师多要求学生掌握教材的内容,教学以教材为中心。部分老师仍然采用板书为主的填鸭式教学方法,讲授枯燥的理论知识;或者利用电子教案单纯播放理论知识课件,课题枯燥。

3.教学内容理论性较强,实践性环节薄弱。操作系统课程实践受到学时限制,实验内容单纯,形式呆板,并且与理论学习脱轨,主要以验证、仿真为主,学生的兴趣很难得到激发,不能充分锻炼他们的操作能力。还有,学生缺乏自己动手设计或者分析具体操作系统案例的体验过程。课程设计环节的遗漏,使学生能够参与研究性学习的机会更少,这样对学生创造力的培养会带来不利影响。

针对以上计算机操作系统原理课程的教学特点, 为了促进学生对于操作系统的原理、方法的理解和掌握,提高他们开发系统软件和应用软件的能力和认识,我们提出了以学生为主体的自主学习模式,提倡引导学生理论联系实际、激发学习兴趣,组织学生进行开放式自主学习和专题讨论,以及加强实践等方面的改进措施。

一、运用比喻教学法,激发学习兴趣

在讲解理论、讲授知识点时,教师要注意理论结合实践,引导学生积极发现问题,努力解决问题。但是由于计算机操作系统课程内容抽象、晦涩,如果教师在讲解的时候采用比喻教学法,将空洞的内容结合实例,可以将内容讲得生动、浅显易懂,往往能够收到事半功倍的效果。比喻教学就是运用生动、形象的例子打比方,用贴近实际、贴近生活的案例进行类比,这样才能深入浅出,有助于学生对抽象概念的理解。比如,在讲解分时系统与实时系统定义和区别后,引导学生举出生活中类似的例子,学生提出了例子:铁路和航空网络售票系统,对任务的响应时间有严格要求,属于实时系统。对于并发和并行的区别,学生也举出例子:不同的学生去上同一门课,学生之间是并行的,而学生同一学期中的不同课程学习之间的学习是并发的。把日常生活中经常见到的现象引入教学中做类比分析,可以加深学生的理解。

二、开放式自主学习,开展专题讨论

在计算机操作系统的课堂教学中,要以教材为基础,引导学生充分利用现代化电子资源,如Internet、网络公开课,及时了解、跟踪操作系统发展的国际新动态和一些热点、前沿问题。教师可根据教学进度和学生情况指定可选的专题分类,例如Android手机操作系统、苹果IOS操作系统和日常办公的微软windows 8操作系统等等。充分尊重学生的兴趣,让他们在给定范围内自主选题或自由拟题,组成相应的学习小组(3~5人为一组),通过小组讨论,分配任务,充分利用身边的学习资源,如网络、图书馆的文献资料、书籍报刊等,确定专题后进行自主学习,并总结成研究性报告。再通过PPT(幻灯片,可以包括图片、文字、视频、音频等)与其他同学相互讨论、交流,中间穿插教师点评、学生提问等环节。对表现好的小组进行奖励,从而提高学生之间的合作能力,形成团队意识,同时培养学生自主学习的积极性。优秀的学生报告也可以放在课程的网站中,供学生学习观摩,并可以成为教案素材。

同时,利用数据库、校园网等电子技术,创建基于Web的测试平台及习题库。这种开放式测试平台可以使学生进行自我评估,弥补空缺的知识点。我们专业每年开展网站设计与软件设计大赛活动,这有利于学生对数据库、VB语言设计、操作系统原理课程等知识的融会贯通,激励学生的学习兴趣与动力。

三、加强实践环节

操作系统原理课程以原理、概念及算法等基础知识为主,必须设置与之配套的实验课。操作系统课程设计的教学实践,可以加深学生对于操作系统功能的了解与熟悉程度,加深对相关算法、数据结构、基本概念的理解。同时学生可以切身感受到抽象思维的具体实践,提高学生进行系统程序设计的能力,培养学生系统操作方面的创造力。国内操作系统原理课程实践教学的现状大致包括如下三种类型:设计操作系统,模拟实现操作系统,使用操作系统。按照实验的难度又分为:①基础型实验。基础型实验是为了加深学生对操作系统使用、配置等方面的了解,相应地分为存储管理、设备管理、文件管理、网络功能及操作系统的综合运用。老师可以根据教学内容提供一些可选择的部分,学生根据自己掌握的情况和兴趣爱好选择内容。建议选择开源操作系统,如面向个人计算机的LINUX操作系统等。②应用型实验。相对于基础型实验,应用型实验对学生提出了较高的要求,要求学生能够自己动手操作模拟一些常见的、经典的操作系统算法,如存储空间的分配与回收,设备分配,进程间通信,多进程并发与调度等。学生自己操作模拟练习可以加深对于操作系统算法的理解。③综合型实验。综合型实验对学生提出了更高的要求,要求学生能够独立掌握现代主流操作系统,比如面向手机的ANDROID操作系统、面向个人计算机的LINUX操作系统等。学生要努力理解操作系统内核,尽力分析操作系统中的源代码和数据结构,并进行程序设计。此阶段实践环节难度较大,仅对学有余力的同学提出要求,要求学生掌握操作系统的实现技术和模块设计方法与技巧。

考核方式灵活多变。计算机操作系统原理课程应用性、操作性很强,单理解理论部分是不合适的。考核实验应用部分不可或缺,老师可以根据课程进度、学生掌握程度等进行考核,如让学生提交实验报告、程序代码,并进行演示;编写一些程序代码,根据要求写出算法等。学生也可以撰写研究报告,或者科研小论文。鼓励能力强的学生自己组建团队,培养学生的团队协作能力,同时有利于提高学生的文献综述能力,研读能力,科技文献查阅能力,理解问题、解决问题的能力,团队合作能力。对于这样的小组,在考核时应该适当地增加鼓励分。

四、结语

随着计算机应用向纵深方向进一步拓展,尤其在农业领域的应用,农学方向的计算机基础课程的重要性日益凸显,但是计算机教育在农业人才培养中一向比较薄弱,如何摆脱传统的教学方法中只强调老师的“教”,而忽视学生的“学”,教学内容内容抽象、晦涩的问题,如何在农业信息人才的培养中加强操作系统课程的教学改革工作,是一项长期复杂的系统工程,需要不断探索。

参考文献: