项目简介
本项目是基于C语言和Linux内核的自定义系统调用集合,对Linux内核的标准系统调用进行扩展,实现了如execve2、getdents、getcwd、sleep等功能,提供更灵活强大的系统调用能力。
项目的主要特性和功能
- 扩展系统调用:- execve2:返回后不再发生页故障。
- getdents:遍历目录项并写入- linux_dirent结构体指针。
- getcwd:获取当前工作路径。
- sleep:使当前进程按秒睡眠。
 
- 内存管理:支持获取空闲页面、释放页面、复制页面表等操作,用于进程创建及内存相关操作。
- 文件系统操作:可进行读取目录条目、执行新程序、获取当前工作目录等文件系统相关操作。
- 系统调用实现:在my_sys_call目录下实现了sys_getcwd、sys_sleep等多个系统调用的底层处理。
- 构建工具:可将启动扇区、设置文件、系统文件等合并成可启动的Linux内核镜像文件。
安装使用步骤
- 准备环境:确保已安装C编译器和Linux内核开发环境。
- 获取源代码:用户已下载本项目的源码文件。
- 编译:使用以下命令编译项目:
    bash tar -xzvf os-lab1-syscall.tar.gz 或者直接解压.zip文件 cd os-lab1-syscall make
- 测试:在Linux系统下测试编译生成的可执行文件或加载内核模块。
- 使用系统调用:在应用程序中调用execve2、getdents、getcwd、sleep等自定义系统调用进行功能验证。
注意:此项目仅为示例,可能需要根据实际环境进行适当修改和适配。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】