# xv6
## Install
- [Lab: Xv6 and Unix utilities](https://pdos.csail.mit.edu/6.828/2021/labs/util.html)
- [Tools Used in 6.S081](https://pdos.csail.mit.edu/6.828/2021/tools.html)
- [6.828 lab tools guide](https://pdos.csail.mit.edu/6.828/2017/labguide.html)
## Architecture

- kernel: Most of the files in the folder are C source code (*.c), C header files (*.h), and assembly language files (*.h). The programs inside will be executed in kernel mode (under supervisor mode).
- user: Most of the folders are programs executed in user space (user mode). Such as ls, cat, etc., which are common in UNIX, and the combination language program for initializing the process.
- Makefile: It is used to build the entire project. When we started xv6, the entire project was automatically constructed by reading the Makefile through the make tool program.
## Execute C file
- [Xv6 Operating System -add a user program](https://www.geeksforgeeks.org/xv6-operating-system-add-a-user-program/)
- [How to add a user program to xv6](https://viduniwickramarachchi.medium.com/how-to-add-a-user-program-to-xv6-1209069feee4)
- [6.S081-Lab 1: Xv6 and Unix utilities](https://blog.csdn.net/MINGgoS/article/details/123554809)
ref:
- [與作業系統的第一類接觸:探索 xv6](https://ithelp.ithome.com.tw/users/20138181/ironman/5395?page=1
)