项目简介
本项目为jyy老师2024操作系统课程代码,包含围绕操作系统虚拟化、多线程、动态链接库、系统调用、符号解析等主题的源代码文件。主要用于教学,展示操作系统和程序设计的基本概念与技术,适合学习操作系统原理、进程间通信、多线程编程等概念的学生或开发者参考。
项目的主要特性和功能
- 进程管理:
fork-demo
展示fork()
系统调用创建新进程,exit-demo
演示不同程序退出方式,syscall
演示系统调用使用。 - 内存管理:
mmap
展示使用mmap()
函数在内存中分配和访问内存区域。 - 时间计算:
vdso
用于获取和计算程序执行时间。 - 文件操作:
filedesc
演示打开文件并处理错误情况。 - 进程间通信:
pipe
展示使用管道和命名管道进行进程间通信。 - Shell 程序:
sh
是简单 shell 程序,可接收和执行用户命令。 - 动态链接库:
so-test
展示加载和执行自定义格式的动态链接库,dsym
展示解析和显示动态链接库的符号信息。 - 多线程:
thread-os
展示多线程操作系统内核的简化版本,包括线程创建、上下文设置、调度等。 - 其他示例:
musl-demos
包含printf
函数使用、环境变量遍历、文件描述符信息等多个演示和示例。
安装使用步骤
假设用户已经下载了本项目的源码文件。
配置环境变量
对于 concurrency
目录下的 Makefile
文件,需要将 TLIB_PATH
环境变量放置在你的 shell 配置文件中,它的值是 thread-lib
文件夹的目录。以 zsh
为例:
shell
export TLIB_PATH="pwd"
配置完成后,就可以根据需要编译和运行各个代码文件。例如,使用 gcc
编译 fork-demo
文件:
shell
gcc fork-demo.c -o fork-demo
./fork-demo
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】