Modified process switching logic and added an ext2-like file system for Unix V6 system.
- In project 1, modified Unix v6 operating system and the process of virtual and real address mapping page, and speeded up the process switching by saving the page table of multiple processes
- In project 2, Modified Unix disk format to support variable length file names according to the Linux ext2 disk format, achieving the compatibility of the original disk format
- For more information, refer to Project1 report and Project2 report.
- Installment-free versions of dependencies are available in the project.
- Bochs-2.6: An open source emulator for X86 hardware. It emulates x86 hardware on any platform where bochs is compiled and run, including I/O devices, memory, and BIOS. The installation-free version is provided in the tool package here.
- MinGW: Minimalist GNU on Windows. MinGW is a set of file and port libraries that allow console-mode programs to use Microsoft's standard C runtime library (MSVCRT.DLL). The installation free version is provided here.
- NASM: nasm: An 80x86 assembler designed for portability and modularity. It supports a wide range of object file formats. The installation free version is provided here.
- Configuration of the environment
- In order to run UNIX V6, you need to set some environment variables. To start running,
locate the
\oos\tools\oosvars_mingw.bat
file corresponding to your running project. Modify the Settings of the files bochs, MinGW, NSAM to change to the correct path on your computer.
@set oos_path=C:\unix v6++\oos # You need to modify
@set mingw_path=C:\unix v6++\MinGW\bin # You need to modify
@set nasm_path=C:\unix v6++\NASM # You need to modify
@set bochs_path=C:\unix v6++\Bochs-2.6 # You need to modify
@set BXSHARE=%bochs_path%
@set partcopy_path=%oos_path%\tools\partcopy
@set path=%partcopy_path%;%bochs_path%;%nasm_path%;%mingw_path%;%oos_path%;%path%
@cls
@echo Setting develop and build environment for UnixV6++.
- Run unix as a sub operate system
- The basic CMake command is supported, and you can run
clean
to clear the compilation cache, runall
to recompile, and runrun
to start running Unix system.
- Initializes successfully
- Run
stack
command
- Add folders with long names
- Add files with long names
- Adding Files with Short Names (folders)
- Go to a folder with a long name and add subfiles
- Recursively delete folders with long names
- Delete files with long names
- In the folder with the short name (fill the folder with the original long name)
- As can be seen from ls, the file name directory entry of the new short name is filled in the place of the original directory entry (4*32 in total, 3*32 is used).
- After re-entry, save the disk
[1] Tian Yu. Design and implementation of a 64-bit operating system. Beijing: Posts and Telecommunications Press, 2018.05.
[2] Wang Honghui. Embedded system Linux kernel development practical guide ARM platform. Beijing: Publishing House of Electronics Industry, 2009.03.
[3] Harver M. Deitel, Paul J. Deitel, David R. Choffnes. Operating system version 3. Beijing: Tsinghua University Press, 2007.08.