About xv6-picoc

The current widely used production level system software utilities such as GNU compiler, linker, interpreter and C library have been in active development for almost last 3 decades. But with the rise of Linux Kernel and GNU toolchain based operating systems in mid 1990s, these two softwares got evolved with strong mutual cohesion. System softwares such as GCC, ld and Linux kernel are heavily dependant on each other such that Linux kernel can only be compiled using GCC bundle where GCC runs on standard libc and only GNU linkage editor can link the programs generated by GCC. All of these tools carry out critical functionalities of operating system such as memory management, file system, resource management, access control and synchronization etc. So inherent required code for this functionality is highly optimised and written by leveraging several rare language features which makes these softwares very much complex. As a result it is always challenging job for educators to design a semester long, fundamental course of operating system covering theoretical and practical aspects of above mentioned tools. This project is aimed at delineating a framework for development of fresh operating system whose essential component should include platform specific C library, linkage editor and interpreter.

As a part of this project we demonstrated working of our proposed framework by porting an interpreter named PicoC, C library named dietlibc and small in house linkage editor to Xv6 operating system. This project will elaborate on strategies to be used while porting system softwares to new kernel as well as on comprehensive measures that can be used in undergraduate as well as graduate courses of operating systems and system programming for better understanding of their basic functionality in pedagogy purposes. Hello From Web Development Workshop