This repo contains solutions for assignments of the Opearating Systems Laboratory course at National Technical University of Athens (NTUA).
This exercise contained a number of system challenges that we had to solve using different operating system concepts. Concepts we utilized to "solve" the challenges include:
- signals
- linking
- I/O streams
- user permissions
- enviroment variables
- pipes
- sparse files
- processes
- memory mapping (mmap)
- dynamic libraries
This exercise involved developing a character device driver. Parts of the driver code (TTY layer) were given to us and we had to develop the rest of the driver.
This exercise required us to implement an encrypred chat between a QEMU virtual machine and its respective host machine. For the guest-host communication, VirtIO was used. For the message exchange we made use of sockets.