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