[关闭]
@1405010312 2016-08-31T07:25:41.000000Z 字数 1625 阅读 547

                 Linux 系统分析实验报告

    实验一 安装Linux Mint系统并编辑编译运行程序

报告提交日期:2016.3.6                                       报告提交截止日期:2016.3.7
姓名:肖罗罗                 学号:1405010312                 班级:计算机三班


一.实验题目

安装LinuxMint系统,并在该系统中编辑、编译及调试一下程序:

  1. #include <stdio.h>
  2. #include <unistd.h>
  3. int main(int argc,char * argv[])
  4. {
  5. char *str[]={"ls",NULL};
  6. int number=1405010312;
  7. char *class="计算机3班",*name="肖罗罗";
  8. printf("我的姓名是:%s\n",name);
  9. printf("我的学号是:%d\n",number);
  10. printf("我的班级是:%s\n",class);
  11. printf("正在运行进程的进程编号为:%d\n",getpid());
  12. if(execve("/bin/ls",str,NULL)<0)
  13. printf("执行execve error!\n");
  14. return 0;
  15. }

二.实验目的

  • 学会使用virtualbox等软件
  • 学会安装系统,并注意一些细节
  • 学会在linux环境下编程,学会一些基本的linux命令操作符

三.实验平台

一台装有linux系统的计算机

四.实验要求

在linux下,用c语言自己编写一个程序,并运行该程序

五.实验流程

1)下载virtualbox软件和相应的iso镜像文件
2)新建一个虚拟计算机,进入linux mint系统
3)新建一个文档,命名为test.c
4)编辑代码
5)打开终端命令行,输入gcc -o test test.c
6)再输入./test
 

六.实验体会

七.程序清单

  1. #include <stdio.h>
  2. #include <unistd.h>
  3. int main(int argc,char * argv[])
  4. {
  5. char *str[]={"ls",NULL};
  6. int number=1405010312;
  7. char *class="计算机3班",*name="肖罗罗";
  8. printf("我的姓名是:%s\n",name);
  9. printf("我的学号是:%d\n",number);
  10. printf("我的班级是:%s\n",class);
  11. printf("正在运行进程的进程编号为:%d\n",getpid());
  12. if(execve("/bin/ls",str,NULL)<0)
  13. printf("执行execve error!\n");
  14. return 0;
  15. }

老师布置的思考问题:

操作系统启动过程
1)从开机加电到main函数之前的过程
从开机到main函数的执行分三步完成,其目的是实现从启动盘加载操作系统程序,完成执行main函数所需要的准备工作。第一步,启动BIOS,准备实模式下的中断向量表和中断服务程序;第二步,从启动盘加载操作系统程序到内存,加载操作系统程序的工作就是利用第一步中准备的中断服务程序实现的;第三步,为执行32位的main函数做过渡工作。
2)从main到怠速
过程分为三个阶段:第一阶段,创建进程0,并让进程0具备在32位保护模式下在主机中运算的能力;第二阶段,以进程0为母本创建进程1,使进程1不仅仅具备进程0所拥有的能力,而且还能以文件的形式与外设进行数据交换;第三阶段,以进程1为母本创建进程2,使进程2在全面具备进程1所拥有的能力和环境的基础上,进一步具备支持“人机交互”的能力,最终实现怠速。怠速的意思是操作系统已经完成了所有的准备工作,随时可以相应用户的激励。
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注