当前位置:文档之家› Linux操作系统安装与调试(实验课作业)

Linux操作系统安装与调试(实验课作业)

实验报告
课题: Linux操作系统安装与调试
姓名: XXX
学号: 06174040xx
专业:计算机科学与技术
指导老师:
日期: 2009年12月
苏州大学文正学院
2009年12月
1
2
实验一 安装Red Hat Linux (ubuntu ) 一、 实验目的
● 安装 Linux

初步学会使用Linux
二、实验内容
安装Red Hat Linux 。

(ubuntu 9.4)
三、实验环境
● 硬件环境:
● Cpu: intel P7350 2.13GHz ● 内存:2G
● 显卡:GeForce NT 130M ● 编译环境: ● 默认的gcc 环境 ● 工作源码环境 ●
2.6.31最新版本
四、实验步骤
1、安装
VMware workstation 6.5 2、安装 Ubuntu 9.5
1 新建虚拟机
3
2、用户的定义设置
3、选择虚拟机的版本
4
4、选择安装源
5、给虚拟机命名
5
6、配置内存
7、网络配置
8、配置虚拟硬盘容量
6
9、文件存放位置
10、信息总览
11启动虚拟机
12、选择安装的语言
7
13、开始安装
14、安装中
五、实验结果与分析
安装结束后一定要安装虚拟器的工具,可以很好的模拟硬件让虚拟系统运行的更流畅
安装完成后安装虚拟器工具 1
安装完成后安装虚拟器工具 2
8
9
实验二 编译Linux 内核
一、 实验目的
了解内核的基本知识,能够编译安装内核,并启动配置
二、实验内容
● 下载源码 ● 编译安装内核 ●
启动配置
三、实验步骤
1. /pub/linux/kernel
上找到内核代码,并下载。

现在最新的稳定版本是2.6.32.2
2.1下载源码
2. 编译和安装内核
● 解压下载的内核

打开命令行终端 用”cd ”命令进入解压后的文件路径 ●
执行 make xconfig 命令执行配置
2.2 1内核配置选项
很多都是默认选择好的,没有特殊要求只要保存退出就好了。

编译内核
用root用户在shell中输入make-kpkg make-kpkg –initrd
–append-to-version=baiwang kernel_image
10
2.2 2编译中
编译过程很长,一定要内心等待
●安装内核
等待一段时间的编译完成后,在文件夹里就会生成一个安装文件,双击安装,就可以完成内核的安装。

成功后,关机选项里就会有启用新内核的选项。

四、实验结果与分析
●编译过程会失败,一定要有耐心重新编译。

●编译前要安装必须的软件
安装必要的软件:build-essential kernel-package libncurses5-dev fakeroot libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt
这些软件我没有用 apt-get命令来获取,我是用ubuntu的一个软
件源的同步工具获得。

11
编译命令的解释
make-kpkg 生成安装包
make-kpkg –initrd –append-to-version=baiwang 生成安装
版本号
12
实验三观察Linux行为
一、实验目的
学习Linux内核、进程、存储和其他资源的一些重要特征。

编写一个程序使用/proc机制检查反映机器平均负载、进程资源利用等方面的各种内核值。

在得到内核状态之后,将所观察到的行为在屏幕上输出。

二、实验内容
A) 编写一个程序,通过检查内核状态报告Linux内核行为。

程序在stdout上打印以下
信息:
·CPU类型和型号。

·内核版本
·从系统最后一次启动以来的时间,形式为dd:hh:mm:ss(例如,3天13小时46分32秒应该写出03:13:46:32)。

B) 改写A部分程序,加入命令行参数,在stdout上再打印以下信息:
·CPU花费在用户态、系统态和空闲态的时间。

·系统接收到的磁盘请求。

·内核执行的上下文转换的次数。

·系统最后启动的时间。

·从系统启动开始创建的进程数。

C) 改写B部分程序,根据不同的命令行参数,在stdout上再打印以下信息:
·计算机配置的内存数量。

·当前可用的内存数量。

·平均负载列表(至上一分钟的平均数)。

三、实验步骤
A要求实验步骤
在shell中输入cat /proc/version
13
14
Cat /proc/cpuinfo 显示cpu 信息
Cat /proc/uptime 显示系统启动的时间
date -d "$(awk -F. '{print $1}' /proc/uptime) second ago %d %H:%M:%S" (后来修改的 没有注意题目要求显示的格式)
B 要求实验步骤
Cat /proc/stat CPU
花费在用户态、系统态和空闲态的时间 系统接收到的磁盘请求。

内核执行的上下文转换的次数 系统的进程数
15
cat /proc/uptime| awk -F. '{run_days=$1 / 86400;run_hour=($1 % 86400)/3600;run_minute=($1 % 3600)/60;run_second=$1 % 60;printf("系统已运行:%d 天%d 时%d 分%d 秒",run_days,run_hour,run_minute,run_second)}' 显示系统启动的时间
C 要求的步骤
四、实验结果与分析
本实验中,学会了查看内核的信息和系统的相关运行情况。

实验四系统调用
一、实验目的
学习如何产生一个系统调用以及怎样通过内核往内核中增加一个新函数从而在内核空间中实现对用户空间的读/写。

二、实验内容
●设计并实现一个新的内核函数pedagogictime(),该函数通过使用一个引用参数的调
用返回当前的系统时间。

如果flag参数是TRUE,那么内核函数就把当前的系统时
间打印在stdout上。

函数具有如下原型:
int pedagogictime( int flag, struct timeval *current_time );
新函数基本上和gettimeofday()类似,当然忽略时区参数,并有一个标志来控制把
信息打印到控制台。

该函数如果执行成功,就返回TRUE;否则就返回FLASE。

●编写一个用户空间程序来测试pedagogictime()。

三、实验步骤
#include <sys/time.h>
#include <linux/kernel.h>
#include <linux/mm.h>
asmlinkage int sys_pedagogictime( int flag, struct timeval *thetime )
{
int write_ok;
/* 从内核变量xtime中获得系统时间。

读取xtime可能不会引起同内核其他部分的竞争状态,但是你应该谨慎并且在读取共享变量时阻塞中断。

*/
cli(); /* 禁止中断*/

sti(); /* 允许中断*/
16
/* 加载编码时间*/
write_ok = verify_area( VERIFY_WRITE, … );
if ( write_ok ) {
printk( “skelcall: Cannot write into user space\n.” );
return;
}

/* 如果标记为TRUE,输出时间*/
printk( … );
return 0;
}
四、实验结果与分析
本实验中,学会了如何产生一个系统调用以及怎样通过内核往内核中增加一个新函数从而在内核空间中实现对用户空间的读/写
17。

相关主题