操作系统实验报告

如下为本人这学期操作系统的实验报告,欢迎前来借鉴。

 

实验分项1

1.Linux 常用命令的使用(操作系统使用级)

Linux 系统基本操作(启动与退出、文件和目录操作、文档备份与压缩、联机帮助等)(login, logout, exit, halt, shutdown, pwd, cd, mkdir, rmdir, cat, cp, mv, rm, ls, chmod, find, grep, more, sort, gzip, unzip, tar, rpm, man, info, --help )

熟练掌握Linux常用命令的使用

掌握Linux 系统基本操作(启动与退出、文件和目录操作、文档备份与压缩、联机帮助等)

系统平台:linux系统

  1. login和logout用于登入和登出系统
  2. 通过linux终端输入pwd可查看当前路径、ls可查看当前目录下的文件、clear可实现清屏
  3. 通过cd可实现进入不同的目录
  4. mkdir、rmdir可实现创建以及删除文件夹,touch可创建文件
  5. cat用于打开文件
  6. cp用来将一个或多个源文件或者目录复制到指定的目的文件或目录。它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下、mv移动和重命名文件、rm可实现删除文件和文件夹的命令 是删除文件和文件夹的命令,一旦删除,将无法恢复。
  7. chmod可实现改变文件权限、find可实现查找文件位置、grep可用于搜索文件中的内容、sort可实现按照一定规律查找文件中内容
  8. gzip、unzip和tar用于文件压缩和解压
  9. rpm用于管理软件
  10. man、info和--help用于查找对应的命令解释
  11. exit、halt和shutdown都是用于退出系统

能熟练运用Linux系统基础操作,对Linux系统操作方法有一定认知。

实验分项2

Vi / Emacs等编辑软件的使用(操作系统使用级)

熟练掌握Emacs编辑软件的快捷键使用等

掌握Emacs等编辑软件的使用

系统平台:Linux系统

对Emacs所有的操作都是通过调用命令实现的。对于一些常用的命令,会定义快捷键以便快速使用。

不管是否有快捷键,都可以通过M-x command 的方式执行命令。(M-x即Alt+x,是一种快捷键,后面会有介绍)比如输入回车,相当于:M-x newline

通过M-x执行命令时,可以使用 TAB 补全,使用 M-p 上翻, M-n 下翻。

Emacs中的取消通常是连按三下ESC:

ESC ESC ESC (M-x keyboard-escape-quit)

但是在命令执行过程中,有可能该命令无法使用(比如有些命令是交互式的,需要输入一些参数),所以中止一条命令的执行最好使用C-g (M-x keyboard-quit)。

本质上,快捷键只是一种发送命令的方法!

Emacs的快捷键通常以组合键的方式定义。如M-x 表示Alt+x。前面的字母M代表修饰符,Emacs定义的修饰符如下:

 C-:Control

 M-: Alt(应该是Meta,在 PC 上,Meta键 通常对应 Alt 键)

 C-M-: 同时按住 Ctrl 和 Alt

 S-:Shift

 RET:Return

 TAB:Tab

 ESC:Esc,等价于M-。比如,C-M-r ,等价于ESC C-r

打开控制台,输入emacs即可打开Eamcs,使用快捷键C-x+C-f打开或创建文件,即可输入内容。

Emacs运行c运行文件步骤

1.启动Emacs,在终端输入“emacs”命令。

2.进入Emacs界面后,键“C-x  C-f”以打开/创建一个新的文件,建议以C/C++语言里所规定的扩展名来指定创建的文件的扩展名。

3.编辑文件,键“C-x C-s”存盘。

4.键入“M-x”,输入“eshell”或“shell”命令,进入“eshell”或“shell”缓冲区,然后同样的键入“g++  文件名.cpp –o test”命令以编译源文件,

5.运行编译后的可执行文件,同样的按照第4步中的打开eshell缓冲区,输入相关命令即可执行编译后文件,这里应该输入“./a.out”命令。

打开emacs

新建文件并写入一个C语言文件

运行C语言文件

使用M-x指令调出控制台,输入eshell,进入shell模式

输入gcc test.c命令编译C语言文件,无误后输入./a.out命令输出结果

能熟练运用大部分Emacs的快捷键,对编辑软件的用法有大概的了解,并且可以使用emacs运行C语言文件。

实验分项3

cc 、gcc 、g++、 gdb 命令的使用(开发调试环境)(操作系统使用级)

掌握Linux下的一些常用编辑指令

熟悉在Linux系统的cc 、gcc 、g++、 gdb 命令的使用

我事先创建好了一个test.c的文件。首先用cc test,c用来将test.c编译出来.然后用/a.out表示当前目录下的./a.out文件,我们选择好当前文件后使用指令gcc –o hello test.c,将test.c编译并连接成可执行的二进制文件hello。然后用./hello选择当前新建的hello文件,用g++指令,g++ -o test test.c将hello.c编译并连接成可执行的二进制文件test。然后继续选择刚才创建的hello文件或者test文件,将test.编译并连接成可执行可调试的二进制文件myp。

接着使用gdb myp用来调试myp。列出源代码list,在提示符下打入list,会出现一部分源代码,接着按回车会重复上一次命令。在某行设置断点 break 2,运行程序run等等最后用(gdb)quit退出

实验结果也是通过gcc,cc,g++成功编译出了3个不同名字的文件。之后用gdb命令对其进行测试。

要学会自己去查找资料,掌握熟悉各种指令,并且在出现bug时候学会自己观察解决,如是否是gcc -o 中间忘记加空格等,与团队的小伙伴交流。尝试自己可以不用鼠标来操作Linux。

实验分项4

Visual C++ 、C++ Builder 等windows 平台下IDE中API的使用(操作系统使用级) 

掌握windows平台下IDE中API的使用

具体题目:Visual C++ 、C++ Builder 等windows 平台下IDE中API的使用(操作系统使用级)

系统平台:windows系统

#include<windows.h>

#pragma comment(lib,"user32.lib")

int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)

{

    MessageBox(

        NULL,

        "Hello,lingqiankun",

        "Greetings",

        MB_OK

    );

    return 0;

}

   上述实验流程先使用头文件<windows.h>,再从这个头文件中调MessageBox这个API函数。

#include <windows.h>

#include <stdio.h>

int main()

{

    BOOL bResult;

    TCHAR szSystemDir[MAX_PATH];

    GetSystemDirectory(szSystemDir, MAX_PATH);

    printf("%s\n", szSystemDir);

    DWORD dwTotalClusters;

    DWORD dwFreeClusters; // 簇

    DWORD dwSectPerClust;

    DWORD dwBytesPerSect; // 扇区

    bResult = GetDiskFreeSpace(TEXT("C:"), &dwSectPerClust, &dwBytesPerSect, &dwFreeClusters, &dwTotalClusters);

    if (bResult)

    {

        printf("place is:\n");

        printf("the number of cu: %d\n", dwTotalClusters);

        printf("the num of freecu: %d\n", dwFreeClusters);

        printf("the num of shanqu every cu: %d\n", dwSectPerClust);

        printf("the num of byte every shan: %d\n", dwBytesPerSect);

    }

    return 0;

}

先设一个BOOL类型的变量bResult与存放文件地址的数组szSystemDir,调用GetSystemDirection函数来获取系统的地址,用双字DWORD设立四个变量,调用GetDiskFreeSpace函数来获取簇与扇区的相关信息,后来用printf函数输出相关的信息。

如图所示,调用MessageBox函数后结果,给予了控制Windows外观的windows函数,该程序调用这个API函数后会退出。

调用GetSystemDirection函数与GetDiskFreeSpace函数配合printf函数会显示出系统存放的具体位置与簇、扇区的相关信息。

Windows API可以控制Windows各组件的外观以及行为逻辑的Windows函数,以上为调用相关函数的使用结果。

API是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。在本次实验当中,我对Windows API的调用有了更深刻的理解,了解了Windows操作系统的相关机制。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

change legendary

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值