Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/melvinmo/os_course_archive
The repository contains the codes and related files of two final projects for my undergrad operating system course.
https://github.com/melvinmo/os_course_archive
bash-script linux-kernel lkm operating-system xv6
Last synced: 4 days ago
JSON representation
The repository contains the codes and related files of two final projects for my undergrad operating system course.
- Host: GitHub
- URL: https://github.com/melvinmo/os_course_archive
- Owner: MelvinMo
- Created: 2023-09-02T10:31:25.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-09-02T10:45:59.000Z (about 1 year ago)
- Last Synced: 2024-01-26T08:45:38.384Z (10 months ago)
- Topics: bash-script, linux-kernel, lkm, operating-system, xv6
- Language: C
- Homepage:
- Size: 148 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# OS-Archive
The repository contains the codes and related files of two final projects for my undergrad operating system course.
## Project 1I studied and analyzed the implementation of system calls in the xv6 operating system code. I added a new pssyscall() system call to xv6 to allow retrieving process information. I also modified the ps command in xv6 to use the new pssyscall() to display process status information. To test my new system call and command, I utilized the xv6 environment with QEMU virtualization. My test results demonstrated that pssyscall() successfully returned process data to the ps command for display.
## Project 2
I developed a loadable kernel module (LKM) in C that implements a banking application. The LKM allows opening customer accounts, checking balances, transferring funds between accounts, and closing accounts. To enable these financial transactions, the LKM implements core file operations like open, read, write, and close. I created device nodes using mknod to associate the LKM with account file descriptors. I wrote test applications in C and Python that perform banking tasks by exercising the LKM API. By loading and unloading the module, I verified that my banking LKM integrated correctly with the Linux kernel.