admin 管理员组文章数量: 887032
2023年12月17日发(作者:好慕课免费课程)
实 验 报 告
姓 名
课程名称
成 绩
实验名称
学 号
操作系统实验
指导教师
专业班级
实验日期
批改日期
实验一 VMware虚拟机与linux操作系统的安装和使用
一、实验目的:
1、了解主流虚拟机软件的功能和特点
2、熟练掌握VMware Workstation 虚拟机软件的使用过程
3、了解linux操作系统的各种发行版本
4、掌握Red Hat Enterprise Linux 5 的安装方法
5、安装 linux的其他版本
6、初步学习在linux下进行C语言程序编程与调试
二、实验要求:
1、 三种虚拟机软件各自的功能特点:
项目
所属
VPC
微软公司
VMW
VMware公司
VBX
innotek公司
默认在原窗口,在上面增加标签,像个单窗另开窗口,比较直观,界面口多页面浏览器,未启动时显示的是对应系统启动 简洁,不能更改大小(最大
虚拟主机的硬件基本配置情况,可以任意化,还原按钮无效)
改变窗口大小
几乎所有的常见操作系统,比如MS 如Windows,Linux,DOS,OS/2
主要有Windows,其他操Windows,Linux,Novell NetWare,Sun Warp,OpenBSD,FreeBSD,支持系统 作系统的都笼统地归为Solaris,FreeBSD,MS-DOS等(没有看到NetBSD,NetWare,Solaris,L4“其他”
苹果机Mac) 等
还原功能
还原磁盘功能不错,差分快照,多个快照文件比较大,另克隆功能也
磁盘很有用 是很实用
目前支持4个网卡
VMW6目前支持最大8G内存,2个CPU,支持4个网卡,带了远程桌面
10个网卡,带了远程连接
网络
与主机共享文件要用到命令行:在虚拟机的资源管理器中虚拟机的网上邻居的网络功能里实现的,文件共享 net use x: vboxsvrsharename,操作的 有些复杂
是通过网络实现的
支持接口 不支持USB 支持目前常见的所有接口 各种设备基本都支持
1
安装完虚拟机的操作系统后,都有附加的不能实现(拖拽可以创建虚拟机附件增强功能;安装附加工具后,快速交换
快捷方式,不可用) VMW能通过复制粘贴或拖拽直接与物理主机的桌面交换文件
虚拟磁盘可以设为固定大小,也虚拟硬盘不能改变大小,虚拟磁盘可以随便更改大小,也可以通过可以动态调整,还可以挂接其他磁盘管理 可以通过增加其他虚拟磁映射挂接其他磁盘;在设置里VMW有整两个硬盘,虚拟存储管理器,管盘来挂接 理磁盘碎片功能 理虚拟磁盘、虚拟光盘、虚拟软盘
2、Linux的分区过程:
Linux系统分区
挂载点
/
/boot
/home
/tmp
/usr
/root
主要功能
安装Linux的最基本的挂载点,是必须的。
记录系统启动的信息,在这个目录下存放的都是系统启动时要用到的程序。
类似于Windows的‘我的文档’文件夹,保存个人设置的内容,例如有一个用户名是123的用户,那么就会有/home/123的文件夹,里面会有桌面,文档等。
用来存放不同程序执行时产生的临时文件。
储存所安装的程序和系统的配置等文件,不同的发行版里具体内容可能也有些不同。同时这也是Linux系统中占用硬盘空间最大的目录,用户的很多应用程序和文件都存放在这个目录下。
如果以超级用户的身份登录的,这个就是超级用户的主目录。
bin是二进制binary英文缩写。在一般系统中,你都可以在这个目录下找到Linux常用的命令。在有的版本中还可以找到一些和根目录下相同的目录。是存放标准系统实用程序的。
这个目录是Linux系统中最重要的目录之一,在这个目录下存放了系统管理时要用到的各个配置文件和子目录。我们要用到的网络配置文件,文件系统,X系统配置文件,设备设置信息,设置用户信息等都在这个目录下。
dev是设备Device英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放外部设备的驱动程序。这一点和我们常用的Windows、DOS操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备和访问一个文件、一个目录没有任何区别。
lib是库Library英文缩写,这个目录是用来存放系统动态连接共享库的,几乎所有的应用程序都会用到这个目录下的共享库。因此,不要轻易对这个目录进行什么操作,一旦发生问题,系统就不能工作了。
是给主机额外安装软件所摆放的目录。
用来存放系统中经常变化大小的日期文件。系统的所有日志文件、PID文件、RPM数据文件等。这些大小经常发生变化的文件都放在这个目录下。所以这个目录是最容易产生碎片的。如果不能单独制定一个分区而和 / 混在一起的话,很容易弄乱 / 文件系统,使系统性能下降。
是LINUX暂时存储数据的交换分区,它主要是把主内存上暂时不用得数据存起来,在需要的时候再调进内存内,且作为SWAP使用的分区不用指定载入点/,既然它作为交换分区,我们理所当然应给它指定大小,它至少要等于系统上实际内存的量,一般来说它的大小是内存的两倍。
2
/bin
/etc
/dev
/lib
/opt
/var
SWAP分区
三、实验内容与步骤:
1、使用VMware workstation 7.0创建一个虚拟机
2、在虚拟机上安装linux操作系统Red Hat Enterprise Linux 5
3、在RHEL5上安装VMware Tools for linux,增强GuestOS 的现实、鼠标功能,包括方便在真实机和虚拟机之间copy文件之类的操作
4、linux下的C语言编程与调试:
1)用编辑器创建一个greeting.c文件,起初我发现会出现以下错误:
3
我查阅资料后得知上图程序中出现“程序中有游离的***”的原因:
1.程序中输入的字符: , ; " ' / 等符号,有可能是使用的中文输入法输入的
2.程序中有使用全角拼音的现象
改正后得到如下代码:
#include
#include
#include
main ()
{
void my_print (char *string);
void my_print2 (char *string);
char my_string[] = "hello there";
my_print (my_string);
my_print2 (my_string);
}
void my_print (char *string)
{
printf ("The string is %s ", string);
}
void my_print2 (char *string)
4
{
char *string2;
int size, i;
size = strlen (string);
string2 = (char *) malloc (size + 1);
for (i = 0; i < size; i++)
string2[size - i] = string[i];
string2[size+1] = ’0’;
printf ("The string printed backward is %s n", string2);
}
1)gcc命令编译程序gcc -o greeting -g greeting.c执行后显示结果如下:
The string is hello there
The string printed backward is
输出第一行是正确的,但第二行是不正确的,所设想的输出应该是:
The string printed backward is ereht olleh
2)进入调试器,输入gdb ./greeting
如果在输入命令时忘记吧要调试的程序作为参数传递给gdb。可以再gdb提示符下用file命令来载入它:
(gdb)file greeting
(gdb) run
3)为了找见症结所在,可以在my_print2函数的for语句后设置一个断点,具体做法是在gdb
提示符下键入list命令三次,列出源代码,查看行号。
(gdb)list
(gdb)list
(gdb)list
假设断点的地方是在第24行,
(gdb)break 24
4)再次输入run命令,程序挂起在设置断点的位置。
5)设置一个观察string2[size-i]变量值的观察点来看出错误是怎么样产生的,输入命令(gdb)watch
string2[size-i]
6)用next命令来一步步的执行for循环
(gdb)next
记录每次循环后string2[size-i]的值是多少,是否和期望值相同。确定程序出错的位置,并分析其原因。
7)找出问题出在哪里后,退出gdb,然后修正程序并重新编译。
#include
#include
#include
main ()
{
void my_print (char *string);
void my_print2 (char *string);
char my_string[] = "hello there";
my_print (my_string);
my_print2 (my_string);
5
}
void my_print (char *string)
{
printf ("The string is %s ", string);
}
void my_print2 (char *string)
{
char *string2;
int size,i;
size = strlen (string);
string2 = (char *) malloc (size + 1);
for (i = 0; i < size; i++)
string2[size - i-1] = string[i];
string2[size] =‘0’;
printf ("The string printed backward is %s n", string2);
}
四、实验总结与心得:
在linux系统下的C语言编程和调试技术与windows系统下类似。同样地,在编写源代码时,要注意写全必要的头文件(比如本实验中的malloc.h);在引用函数时,要注意先声明;在对字符串进行操作时要注意对应元素次序与标号的关系;调试程序时,要选择适当的位置设立断点,分析变量值,从而达到纠错的目的。
此次试验中,由于第一次接触linux系统,对于习惯了windows图形化界面的我们来说,确实有些不适应。但是,linux中,仅凭终端里的简单代码就能实现各种功能,确实让我们体会到了该系统的强大。
6
版权声明:本文标题:实验一 VMware虚拟机与linux操作系统的安装和使用 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702754383h429474.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论