操作系统实验1
操作系统安全实验1实验报告

操作系统安全实验1实验报告一、实验目的本次操作系统安全实验的主要目的是让我们深入了解操作系统的安全机制,通过实际操作和观察,掌握一些常见的操作系统安全配置和防护方法,提高对操作系统安全的认识和应对能力。
二、实验环境本次实验使用的操作系统为Windows 10 和Linux(Ubuntu 2004),实验设备为个人计算机。
三、实验内容与步骤(一)Windows 10 操作系统安全配置1、账户管理创建新用户账户,并设置不同的权限级别,如管理员、标准用户等。
更改账户密码策略,包括密码长度、复杂性要求、密码有效期等。
启用账户锁定策略,设置锁定阈值和锁定时间,以防止暴力破解密码。
2、防火墙配置打开 Windows 防火墙,并设置入站和出站规则。
允许或阻止特定的应用程序通过防火墙进行网络通信。
3、系统更新与补丁管理检查系统更新,安装最新的 Windows 安全补丁和功能更新。
配置自动更新选项,确保系统能够及时获取并安装更新。
4、恶意软件防护安装并启用 Windows Defender 防病毒软件。
进行全盘扫描,检测和清除可能存在的恶意软件。
(二)Linux(Ubuntu 2004)操作系统安全配置1、用户和组管理创建新用户和组,并设置相应的权限和归属。
修改用户密码策略,如密码强度要求等。
2、文件系统权限管理了解文件和目录的权限设置,如读、写、执行权限。
设置特定文件和目录的权限,限制普通用户的访问。
3、 SSH 服务安全配置安装和配置 SSH 服务。
更改 SSH 服务的默认端口号,增强安全性。
禁止 root 用户通过 SSH 登录。
4、防火墙配置(UFW)启用 UFW 防火墙。
添加允许或拒绝的规则,控制网络访问。
四、实验结果与分析(一)Windows 10 操作系统1、账户管理成功创建了具有不同权限的用户账户,并能够根据需求灵活调整权限设置。
严格的密码策略有效地增加了密码的安全性,减少了被破解的风险。
账户锁定策略在一定程度上能够阻止暴力破解攻击。
实验一windows安全配置实验

实验一: windows安全配置实验【实验目的】掌握windows的安全设置,加固操作系统安全【实验内容】1、账户与密码的安全设置2、关闭远程注册表服务3、设置登录系统时不显示上次登录的用户名4、设置注册表防止系统隐私信息被泄露5、审核与日志查看6、了解任务管理器【实验环境】1、硬件PC机一台。
2、系统配置:操作系统windows XP专业版。
【实验步骤】任务一、账户和密码的安全设置1、删除不再使用的账户,禁用 guest 账户⑴ 检查和删除不必要的账户右键单击“开始”按钮,打开“资源管理器”,选择“控制面板”中的“用户和密码”项;在弹出的对话框中中列出了系统的所有账户。
确认各账户是否仍在使用,删除其中不用的账户。
⑵ 禁用 guest 账户打开“控制面板”中的“管理工具”,选中“计算机管理”中“本地用户和组”,打开“用户”,右键单击 guest 账户,在弹出的对话框中选择“属性”,在弹出的对话框中“帐户已停用”一栏前打勾。
确定后,观察 guest 前的图标变化,并再次试用 guest 用户登陆,记录显示的信息。
2、启用账户策略⑴ 设置密码策略打开“控制面板”中的“管理工具”,在“本地安全策略”中选择“账户策略”;双击“密码策略”,在右窗口中,双击其中每一项,可按照需要改变密码特性的设置。
根据选择的安全策略,尝试对用户的密码进行修改以验证策略是否设置成功,记录下密码策略和观察到的实验结果。
⑵ 设置账户锁定策略打开“控制面板”中的“管理工具”,在“本地安全策略”中选择“账户策略”。
双击“帐户锁定策略”。
在右窗口中双击“账户锁定阀值”,在弹出的对话框中设置账户被锁定之前经过的无效登陆次数(如 3 次),以便防范攻击者利用管理员身份登陆后无限次的猜测账户的密码。
在右窗口中双击“账户锁定时间”,在弹出的对话框中设置账户被锁定的时间(如 20 min )。
重启计算机,进行无效的登陆(如密码错误),当次数超过 3 次时,记录系统锁定该账户的时间,并与先前对“账户锁定时间”项的设置进行对比。
实验01 Windows的基本操作

姓名:XXX班级:0000000学号:00 成绩:课程名称:计算机应用基础指导教师胡浩民实验日期:2014-09-18实验名称01:Windows的基本操作一、实验目的:1. 掌握桌面主题的设置、快捷方式的创建、开始菜单的组织。
2. 掌握任务栏的使用和设置、任务切换方法。
3. 掌握文件夹和文件的创建、属性查看和设置。
4. 掌握文件夹和文件的复制、移动和删除与恢复,文件和文件夹的搜索。
5. 掌握多任务间的数据传递——剪贴板的使用。
二、实验环境:中文Windows 7操作系统。
三、实验内容:1.按以下要求,进行桌面个性化设置(1)选用“人物”主题中的全部图片,设置以10秒间隔更换图片,并以“卡通人物”主题名保存在我的主题中。
(2)除“回收站”外,再显示“计算机”、“用户的文件”和“网络”三个桌面图标;(3)在桌面上创建系统应用程序“mspaint.exe”的桌面快捷方式,并将其改名为“画笔”;(4)在桌面快捷菜单中,分别设置桌面图标用大、中、小图标显示,观察其效果;(5)设置屏幕保护程序为华文楷书、中号、紫红色、中速滚动的三维文字“今天我做对了什么事?”,设置屏幕保护等待时间为10分钟;(6)设置屏幕分辨率为1024×768;在桌面的右上角添加日历和时钟小工具,并按日历在上、时钟在下稍加重叠安放;2.按下列要求练习对“开始”菜单的操作(1)用Word分别打开配套光盘“实验素材\实验4”中test1.docx\test2.docx、test3.docx 三个文档后立即关闭,显示Word的跳转列表,然后将文档test1列表项锁定,最后将test1列表项解除锁定;(2)将“桌面小工具库”添加到“开始”菜单的程序列表中,然后将“桌面小工具库”锁定在程序列表上方,最后将其解除锁定;(3)利用搜索框,分别查找包含有汉字“计算机的”和“mspaint.exe”文本,观察其结果;3.按以下要求,进行任务栏设置和操作,体验任务栏的功能(1)分别打开两个文件夹、三个Word文档、一个Excel文档和一个画图文件,观察任务栏按钮区任务按钮的形态,并观察窗口的预览效果;(2)维持上述多文档打开状态下,分别设置任务栏“始终合并、隐藏标签”、“当前任务栏被占满时合并”和“从不合并”显示方式;观察任务栏按钮区任务按钮的显示变化;(3)显示Word任务按钮的跳转列表,并将Word程序项锁定在任务栏;4.创建文件夹和文件在C:\下创建如右图所示的文件夹结构:5.设置文件夹的查看形式、排序方式和预览窗格(1)先后选用不同的查看方式显示“实验素材\实验5”文件夹的内容,观察查看方式的差别;(2)选择文件夹“实验素材\实验5”,通过设置显示或不显示隐藏的文件和文件夹,比较两者不同的显示效果;(3)任选文件夹,分别选用“名称”、“修改日期”、“类型”、“大小”排序方式显示文件和文件夹,了解不同的排序效果;(4)启用文件预览窗格,任意选择文件夹或文件对象,观测预览窗格的预览效果;6.文件和文件夹的复制、移动和更名(1)利用菜单操作,将文件C:\aa1\test.txt 复制到C:\aa1\bb1中;(2)利用鼠标操作,将文件C:\aa1\test.txt 复制到C:\aa2\bb2中;(3)利用剪贴板操作,将文件C:\aa1\test.txt 复制到C:\aa2中;姓名:XXX 班级:0000000 学号:00 成绩:课程名称:计算机应用基础 指导教师 胡浩民 实验日期:2014-09-18(4)将文件C :\aa2的子文件夹bb2移动到C :\aa1\bb1中;(5)将C :\aa2文件夹复制到C :\aa1文件夹中;(6)将C :\aa2文件夹更名为abc ,将C :\aa1\bb1文件夹下的test.txt 文本文件名改为sch001.ini ;7. 文件和文件夹的删除与恢复;(1)删除文件C :\aa2\test.txt 到“回收站”; 删除文件C :\aa2文件夹;(2)从“回收站”恢复C :\aa2文件夹; 永久性删除文件C :\aa1\bb1\bb2文件夹;8. 查看和设置文件和文件夹的属性(1)查看C :\Windows 包含的文件和文件夹数量;(2)将C 盘下的abc 文件夹的属性设置为只读和隐藏;9. 文件和文件夹的搜索,设置磁盘卷标(1)搜索C 盘下的文件名以“会议”开始的所有Word 文件(扩展名为doc);在“图片库”搜索所有bmp 格式的图片文件;(2)将C 盘的卷标设置为“主磁盘”;10. 通过剪贴板,完成下列任务(1)将当前整个屏幕画面保存到U 盘,存为JPEG 格式图像文件“屏幕.jpg ”;(2)将Windows 7的“帮助和支持”主窗口图像复制到新Word 文档中;11. 将C :\aa1、abc 文件夹复制到D 盘中自己的文件夹(即学号姓名命名的文件夹),将此文件夹压缩为“学号姓名.rar ”文件,存放在D 盘下,然后把压缩文件上传(作业递交)。
操作系统实验--处理机调度算法实现

当程序启动时,用户可以选择不同的调度算法。然后用户从控制台输入各个进程的信息,这些信息保存到进程容器中。进程信息输入完毕后,就开始了进程调度,每调度一次判断就绪队列是否为空,若为空则系统时间加一个时间片。判断进程容器中是否有新的进程可以加入就绪队列。
struct proc //定义进程结构体
{
char name[5];
int num;
int pri;
};
void main()//主函数
{ char ch;
struct proc pr[n];//声明结构体数组
int i,k,j;
int count=n;
for(i=0;i<n;i++)//输入5个进程
函数描述:
struct proc/*定义结构体内部包含进程的信息*/
{
char name[5]; /*定义进程名*/
int num; /*定义运行时间*/
int pri; /*定义优先权*/
};
Void main()/*主函数:掌控整个程序的运行过程,是程序的主体部分*/
struct proc pr[n];/*声明结构体数组*/
4.处理机调度总是选队首进程运行。采用动态优先数算法,进程每运行一次优先数就减“1”,同时将运行时间减“1”。
5.若要求运行时间为零,则将其状态置为“结束”,且退出队列。
6.运行所设计程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程
实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)
for(k=1;k<n;k++)
操作系统实验一(杨婷婷)

实验一熟悉Windows2000/XP中的进程和线程一、实验目的1、熟悉Windows2000/XP中任务管理器的使用。
2、通过任务管理器识别操作系统中的进程和线程的相关信息。
3、掌握利用spy++.exe来察看Windows中各个任务的更详细信息。
二、实验理论基础及教材对应关系1、实验理论基础:(1)操作系统中的进程和线程的概念;(2)进程PCB的各项指标含意;2、本实验内容主要对应于教材第2章。
三、实验内容与步骤1、启动操作系统自带的任务管理器:方法:直接按组合键Ctrl+Alt+Del,或者是在点击任务条上的“开始”“运行”,并输入“taskmgr.exe”。
如下图所示:2、调整任务管理器的“查看”中的相关设置,显示关于进程的以下各项信息,并完成下表(填满即可):表一:统计进程的各项主要信息3、从桌面启动办公软件“Word”,在任务管理器中找到该软件的登记,并将其结束掉。
再从任务管理器中分别找到下列程序:winlogon.exe、lsass.exe、csrss.exe、smss.exe,试着结束它们,观察到的反应是,原因是。
4、在任务管理器中找到进程“explorer.exe”,将之结束掉,并将桌面上你打开的所有窗口最小化,看看你的计算机系统起来什么样的变化、得到的结论是(说出explorer.exe进程的作用)。
5、运行“spy++.exe”应用软件,点击按钮“”,切换到进程显示栏上,查看进程“explorer.exe”的各项信息,并填写下表:表二:统计线程的各项信息进程:explorer.exe 中的各个线程6、注意某些线程前有“+”,如图所示:,说明二者之间的差异是。
四、实验材料的提交与成绩评定lsass.exe 系统进程,用于微软Windows系统的安全机制。
services.exe 微软Windows操作系统的一部分。
用于管理启动和停止服务。
winlogon.exe Windows 用户登陆程序,管理用户登录和退出。
《操作系统》课程实验内容和实验要求

实验内容和实验要求实验1:安装Linux系统(4学时)目的:1.学会在操作系统安装之前,根据硬件配置情况,制订安装计划。
2.学会在安装多操作系统前,利用硬盘分区工具(如PQMagic)为Linux准备分区。
3.学会Linux操作系统的安装步骤和简单配置方法。
4.学会Linux系统的启动、关闭步骤,初步熟悉Linux系统的用户界面。
内容:1.安装并使用硬盘分区工具(如PQMagic),为Linux准备好分区。
2.安装Linux系统(如红旗Linux桌面版)。
3.配置Linux系统运行环境。
4.正确地启动、关闭系统。
5.对图形界面进行一般操作。
要求:1.制订安装计划。
2.如果在机器上已安装了Windows系统,而且没有给Linux预备硬盘分区,则安装硬盘分区工具(如PQMagic),运行它,为Linux划分出一块“未分配”分区。
3.在光驱中放入Linux系统安装盘,启动系统。
按照屏幕提示,选择/输入相关参数,启动安装过程。
4.安装成功后,退出系统,取出安装盘。
重新开机,登录Linux系统。
5.对Linux系统进行配置,如显示设备、打印机等。
6.利用鼠标对图形界面进行操作。
说明:1.本实验应在教师的授权和指导下进行,不可擅自操作,否则可能造成原有系统被破坏。
2.如条件不允许每个学生亲自安装,可采用分组进行安装或课堂演示安装的方式。
实验2:Linux 应用及shell编程(4学时)目的:1.掌握Linux一般命令格式和常用命令。
2.学会使用vi编辑器建立、编辑文本文件。
3.了解shell的作用和主要分类。
4.学会bash脚本的建立和执行方式。
5.理解bash的基本语法。
6.学会编写简单的shell脚本。
内容:1.正确地登录和退出系统。
2.熟悉使用date,cal等常用命令。
3.进入和退出vi。
利用文本插入方式建立一个文件。
4.学会用gcc编译器编译C程序。
5.建立shell脚本并执行它。
6.学会使用shell变量和位置参数、环境变量。
操作系统实验_实验1课案

广州大学学生实验报告开课学院及实验室:计算机科学与工程实验室 2015年11月11日实验课操作系统成绩程名称实验项进程管理与进程通信指导老师陈康民目名称(***报告只能为文字和图片,老师评语将添加到此处,学生请勿作答***)进程管理(一)进程的创建实验一、实验目的1、掌握进程的概念,明确进程的含义2、认识并了解并发执行的实质二、实验内容1、编写一段程序,使用系统调用fork( )创建两个子进程。
当此程序运行时,在系统中有一个父进程和两个子进程活动。
让每一个进程在屏幕上显示一个字符:父进程显示'a',子进程分别显示字符'b'和字符'c'。
试观察记录屏幕上的显示结果,并分析原因。
2、修改上述程序,每一个进程循环显示一句话。
子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。
三、实验步骤1、编写一段程序,使用系统调用fork( )创建两个子进程。
代码:#include <stdio.h>main( ){int p1,p2;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0) putchar('b');else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0) putchar('c');else putchar('a');}}运行结果:bca,bac, abc ,……都有可能。
2、修改上述程序,每一个进程循环显示一句话。
子进程显示'daughter …'及'son ……',父进程显示'parent ……',观察结果,分析原因。
代码:#include <stdio.h>main( ){int p1,p2,i;while((p1=fork( ))= = -1); /*创建子进程p1*/if (p1= =0)for(i=0;i<10;i++)printf("daughter %d\n",i);else{while((p2=fork( ))= = -1); /*创建子进程p2*/if(p2= =0)for(i=0;i<10;i++)printf("son %d\n",i);elsefor(i=0;i<10;i++)printf("parent %d\n",i);}}结果:parent…son…daughter..daughter..或parent…son…parent…daughter…等四、分析原因除strace 外,也可用ltrace -f -i -S ./executable-file-name查看以上程序执行过程。
操作系统实验-ucore-lab1

一、通make生成执行文件的过程a)操作系统镜像文件ucore.img是如何一步一步生成的在编译时使用make V=,相当于设置一个标记,使得把make编译执行的过程全部展示出来。
首先,调用了GCC,把一些C的源代码编译成.O的目标文件。
然后,调用了ld,把这些目标文件准换成一个可执行程序,比如下面示例,转换成为了bootloader的一个执行程序bootblock.out。
最后,调用了dd,把bootloader、bootblock和kernel放到虚拟的硬盘uCore.img 里面。
b)硬盘的主引导扇区的特征是什么在sign.c中,先申请了一个512字节的空间buf,然后将buf初始化为全0,再将主引导程序写入这个空间,最后,在buf的最后两个字节写入55AA。
所以硬盘的主引导扇区的特征是主引导扇区的512个字节的最后两个字节是55AA。
二、使用qemu执行并调试lab1中的软件a)从启动开始,单步跟踪BIOS的执行实验远程调用的方法,启动qemu,并让它进入-S状态。
开启另外一个终端,执行gdb命令,绑定端口1234。
在QEMU窗口中使用x/10i $pc 查看最近10条指令的反汇编内容。
在gdb 中使用si命令执行单步,显示位置。
可以看到一启动,就处于0xfffffff0的位置,第一条指令是个长跳转指令。
b)在初始化位置0x7c00设置实地址断点,测试断点正常输入b *0x7c00设置断点,输入c 执行到断点。
输入x/10i $pc 查看最近10条指令的反汇编内容,可以看到qemu执行到断点0x7c00。
断点工作正常。
再次输入c执行,qemu继续工作。
得到结论,断点工作正常。
c)从0x7c00开始跟踪代码运行,将单步跟踪反汇编得到的代码与bootasm.S和bootblock.asm进行比较经过比较发现:gdb得到的反汇编代码与bootasm.S和bootblock.asm中的代码基本相一致。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.进程的创建
执行后出现acb和abc两种不同情况
2.进程的控制
(1)加锁情况:
( 2 )没有加锁的情况
3.进程的软中断通信
4.进程的管道通信
六、实验结果与分析
1.进程的创建:
实验一为进程创建,由以上截图可以看到产生了不同的结果,即acb和abc。最初只有acb一种情况,反复执行之后,会出现abc。原因很简单,就是因为进程的特性:并发性。进程之间是并发执行的,并发只说一段时间内同时进行。第一个输出一定是a,因为a在bc之外优先执行,而在执行bc的时候,2者会随机出现,多数情况会是acb,若想更快的见到abc,可以讲c语句变长,如改为this is c child.这样进程需要的时间就稍长,后一个会先出现了。但宏观来看,还是并行的。
Child 1 is sending a message!
Child 2 is sending a message!
而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。要求父进程先接收P1
来的消息,然后再接收P2发来的消息
四、关键数据结构与函数的说明
1.fork()函数
Fork函数用于创建一个新进程(子进程),返回整数。
三、实验内容
1.进程的创建
编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。
2.进程的控制
修改已有程序,将每个进程输出一个字符改为每个进程输出几行字符,再观察程序执行时屏幕上的现象,并分析原因。如果在程序中使用系统调用lockf()来给每一个进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。
Child process 2 is killed by parent!
父进程等待两个子进程终止后,输出如下的信息后终止:
Parent process is killed!
4. 进程的管道通信
编制一段程序,实现进程的管道通信。使用系统调用pipe()建立一条管道线;两个子进程P1和P2分别向管道各写一句话:
3.exit()函数
exit()函数是进程结束最常调用的函数。在正常终止时,exit()函数返回进程结束状态。
4.kill()函数
kill()函数用于结束执行中的程序或者任务。
5.signal()
signal()函数是允许调用进程控制软中断信号的处理。
6.pipe()函数
pipe函数用于创建一个管道
但是,当我们对进程加锁后,就表明只能由该程序占用处理机,必须这些完这段程序才能执行下一段,因为不会出现交叉的情况,这个就是锁的作用。
3. 进程的软中断通信
进程的软中断控制,使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按Del键);当捕捉到中断信号后,父进程用系统调用kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
正确返回:等于0,创建子进程;大于0,从父进程返回的子进程的ID值。
错误返回:等于-1,即进程创建失败。
2. wait()函数
wait()函数常用来控制父进程与子进程的同步。在父进程中调用wait(),则父进程被阻塞,进入等待队列,等待子进程结束。当子进程结束时,会产生一个终止状态字,系统会向父进程发出SIGCHLD信号。当接到信号后,父进程提取子进程的终止状态字,从wait()函数返回继续执行原程序。
总之,程序在处理机上执行时的活动称为进程。具有并发性,动态性,独立性,异步性。
2.进程控制
进程有三个状态。就绪态,阻塞态,运行态。系统通过使用一些具有特定功能的程序段来创建、撤销进程以及完成进程各状态间的转换,从而达到多进程高效率并发执行和协调、实现资源共享的目的。期中,运行态可以转换到阻塞,就绪。阻塞可以转换到就绪,就绪可以到运行。
实验报告书
学 生 姓 名高 雪
学 号
班 级计10A-2
2011— 2012学年第一学期
《计算机操作系统》实验报告
实验名称
进程管理实验
实验序号
一
实验日期
2012/12/16
实验人
高雪
一、实验目的和要求
1.加深对进程概念的理解,明确进程和程序的区别
2.进一步认识并发执行的实质
3.分析进程争用资源的现象,学习解决进程互斥的方法
Child process 1 is killed by parent!
4.了解Linux系统中进程通信的基本原理
二、相关背景知识
1.进程的定义
进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。进程是一个独立的可以调度的活动,是一个抽象实体,当它执行某个任务时,将要分配和释放各种资源。
2. 进程的控制
实验二为进程控制,分为不加锁和加锁的情况,产生的结果不同,在不加锁的情况下,还有由于进程的执行具有并发性这个特征,因此会,还没有完成,但也必须由下一个进程接管处理机,因为它就进入了阻塞的状态。多个进程反复出现,所以就出现了输出的字符交叉的情况。
3.软中断
软中断是对硬中断的一种模拟,发送软中断就是向接受进程的proc结构中的相应项发送一个特定意义的信号。软中断必须等到接收进程执行时才能生效。
4.管道
在Linux中,管道是一种使用非常频繁的通信机制。是一个先进先出,大小固定的缓冲区,用于两个进程之间的单向数据传递。当管道有空间时,写进程把数据送入管道,否则将被阻塞;如果管道中没有数据或者读进程需要的数据多于其中的数据,读进程被阻塞,否则执行读进程的请求。
3.进程的软中断通信
使用系统调用fork()创建两个子进程,再用系统调用signal()让父进程捕捉键盘上来的中断信号(即按Del键);当捕捉到中断信号后,父进程用系统调用kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止:
Child process 1 is killed by parent!