【实验报告概述】 本次实验主要关注的是Linux操作系统中的文件基本操作,包括目录管理、路径理解、文件类型识别、文件属性查看、编辑器使用等。实验旨在加深学生对Linux操作系统的理解和掌握,提升其在终端中进行文件操作的能力。 【实验内容详解】 1. **目录结构创建**:学生需在自己的主目录下建立一个符合特定结构的目录树。这涉及到`mkdir`命令的使用,通过递归创建多个子目录。 2. **路径操作**:理解绝对路径和相对路径的概念,通过`pwd`命令获取当前工作目录的绝对路径,`cd`命令则用于切换目录。 3. **主目录、登录目录和工作目录**:了解主目录通常为`/home/用户名`,登录目录即首次登录时所在的目录,而工作目录则是当前所在的目录,可以通过`pwd`命令查看。 4. **文件类型和隐含文件**:文件类型包括普通文件、目录文件、链接文件等,通过`ls -l`可以查看。隐含文件(隐藏文件)是首字符为`.`的文件,如`.profile`。 5. **文件属性**:文件的权限、所有者、组信息等可通过`ls -l`查看。 6. **编辑器使用**:实验中涉及了`vi`和`emacs`两个文本编辑器的使用,包括文件的创建、编辑、保存和退出操作。 7. **Linux内核映像文件**:找到内核映像文件,通常位于`/boot`目录下,名为`vmlinuz`或`vmlinuz-版本号`,通过`file`命令查看文件类型。 8. **查找文件**:利用`find`命令查找`.profile`和`.login`文件,并查看其内容。 9. **显示隐含文件**:使用`ls -a`命令列出主目录下的所有文件,包括隐含文件。 10. **编写和运行bash脚本**:使用`vi`创建一个包含特定命令的bash脚本,如`echo $SHELL`和`chsh -l`,然后运行此脚本来查看当前shell及可用的shell列表。 11. **emacs编辑器操作**:使用emacs编辑器创建新文件,并输入指定文本,`-nw`选项表示在终端中运行而非图形界面。 12. **创建lab1文件**:在lab目录下创建lab1文件,内容为实验问题的文本。使用`cat`或`more`等命令查看文件内容和类型。 【实验要求】 学生需要在实验报告中详细记录每一步的操作过程,包括输入的命令和命令的输出结果,同时,对于涉及编辑器的部分,还需要展示编辑后的文件内容。通过这样的方式,不仅能够检验学生对Linux基本操作的掌握程度,也能培养他们解决问题和记录实验过程的能力。 【总结】 本实验是计算机操作系统教学的重要组成部分,通过实际操作,学生能更深入地理解Linux文件系统和命令行工具的使用,为后续的学习和工作中处理文件和系统管理打下坚实基础。
2025-06-17 12:40:32 685KB 文档资料
1
本文介绍了一项计算机操作系统实验,即解析 ELF 文件。实验的目的是熟悉可执行链接文件(ELF)的结构,了解 GeekOS 将 ELF 格式的可执行程序加载到内存,建立内核线程并运行的实现技术。实验要求修改 Project1 项目中的/GeekOS/elf c 文件,添加代码以分析 ELF 格式的可执行文件,获取可执行文件长度、代码段、数据段等信息,并打印输出。同时,需要填充 Exe_F。
2023-11-15 19:58:01 136KB 文档资料
1
西工大计算机学院计算机操作系统2022最新报告,给出了两次实验的完整的project, 可以直接copy到linux系统中使用bochs -f bochsrc运行,同时 word报告中详细介绍了编写代码的步骤和相关的代码和最后的实验的截图,供各位同学参考 实验内容: 掌握GeekOS系统的线程调度算法,实现线程调度的优化。 1. 按照实验讲义P146页中的设计要求,增加线程调度算法的选择策略,使系统可以在时间片轮转调度和四级反馈队列调度之间切换,并且实现四级反馈队列调度算法,给出关键函数的代码以及实验结果。 2.回答问题:在MLFQ算法中,如果为不同队列的线程设置不同的时间片,如何实现?代码要做哪些修改?第十章第1、2题. 掌握GeekOS系统的线程同步与互斥原理,实现线程的同步与互斥。 1. 在GeekOS中实现信号量,使用信号量保证用户程序运行时的线程同步,给出关键函数的代码以及实验结果。 2. 设计测试程序,验证线程同步和互斥的结果。 3. 回答课后思考题。第十一章第1题。 在项目2 的基础上,增加调度算法的选择策略,使系统可以在时间片轮转调度和四级反馈队列调度之间切换。实
1
西工大-计算机操作系统实验(三套)
2022-11-27 20:02:48 33.1MB 操作系统
1
2022瓜大计算机学院计算机操作系统实验报告一 ---- 创建GeekOS内核线程,实验报告包含完整的操作流程和相关代码,内容详尽 示例: 1.编写操作系统引导扇区代码,并在虚拟机中运行。 2.创建一个线程,实现从键盘接收一个按键,并在屏幕上显示。 3.创建两个线程,分别打印输出不同的字符串信息。观察并分析结果。 4.自行设计个性化的内核线程,给出运行结果。 设计两个线程,一个线程打印大的爱心,一个线程打印小的爱心。在屏幕上进行输出不断交替出现的现象,更进一步地感受GeekOS多任务调度。注意需要添加2个线程,每个线程的优先度是一致的,从而使得每种输出都是均衡的,这样就可以看到大小圆心交替出现的现象: 实验分析 1. 系统的第一个线程是什么?初始化它的时候为何不调用Setup_Kernel_Thread? 第一个线程是s_freelist中新创建的空闲页链表中的,初始化它的时候Setup_Kernel_Thread的目的是将线程的上下文压入栈中,因为第一个线程无下文,不需要调用,所以直接将线程压入栈中。 2. 内核线程结构体中定义了三组指针,它们的作用是什么? 第一组joinQue
2022-11-21 18:03:47 699KB 西工大 计算机操作系统实验 最新
1
西工大计算机学院计算机操作系统2022最新报告,报告中详细介绍了编写代码的步骤和相关的代码和最后的实验的截图, 供各位同学参考 下面给出部分的实验内容: 要实现系统用户态模式下加载运行可执行程序,需要在Project2的基础上,修改user.c、elf.c、userseg.c、kthread.c、sysall.c、main.c makefile的修改部分内容:删除-Werror,因为它会把所有的warning当作报错进行处理,然后需要添加-fno-stack-protector (1)修改“src/GeekOS/user.c”文件中的函数Spawn(),它的功能是生成一个新的用户级进程: (2)修改“src/GeekOS/user.c”文件中的函数Switch_To_User_Context(),调度程序在执行一个新的进程前调用该函数以切换用户地址空间 (3)修改“src/GeekOS/elf.c”文件中的函数Parse_ELF_Executable()该函数的实现要求和project1相同,所以可以将project1中的elf.c直接使用 (4)“src/GeekOS/use
1
西工大计算机操作系统实验-创建GeekOS内核线程.doc
2022-11-21 14:02:27 653KB 实验资源
1
实验1Linux基本环境 实验2进程管理 实验3进程通信(1) 实验4进程通信(2) 实验5进程调度 实验6银行家算法 实验7页面置换算法 实验8文件系统
2022-11-19 17:03:05 6.68MB 操作系统
1
电子科技大学计算机操作系统实验指导书以实现的代码和实验报告 所用语言C++ 该文档包含电子科技大学计算机学院操作系统课程的实验,分别为模拟资源管理和内存地址转化实验
2022-11-17 20:21:31 1.14MB 详细资料 参考资料
1
shu操作系统答案
2022-09-30 16:00:55 253KB SHU 操作系统
1