Here you can take some possible solutions for the Operating Systems homeworks.
This repo is based on the course's stuff's one. For all the features, like a nice checker for both functionality and the coding style, first clone their GitHub repo, then copy the files from this repo over the ones in the same folder. Note: All the projects are made starting from the skeleton code, provided in their Git repo.
Here you can find the assignments texts, with all the specifics and the constraints. I'm attending a in Romanian curricula, hence, the assignment's text language. If otherwise specified in the homework's Readme file, the homework obedes all of the constraints imposed.
All of the assignments are developed on either:
- Ubuntu Linux 16.04
- kernel 4.4
- glibc 2.23
- gcc version 5.4 or
- Windows 7 Professional
- Visual C++ Express 2010
- cl.exe
These are 32 bit systems. In some cases, like the 1-multi
project, you can't run it on a 64 bit system. It needs it's dynamic libraries, compiled on 32 bits systems.
Depending on the system you are on, and if the project supports it, project can be either compiled with the
GNUmakefile
on Linux, or Makefile
on Windows. Just type make -f <Makefile_name>
in the console.
If otherwise specified in the project Readme file, the tests can be obtained from the stuff's GitHub page. Every project has it's own specific stress tests. Obviously, you can't test a projects with an other one's checker.
The checker for every project is a shell script.
The tests are located in the checker
folder of the project's name directory.
For example, the checker for the 1-multi
project is in the ~1-multi/checker/
folder.
To run the checker, copy the executable file in the checker
folder and type make -m Makefile.checker
. It will also ask you the path to the code files, for the coding style check.
Tests are made for every general functionality required. They include a coding style check and a running time check.
The checker uses the checkpatch
script from Linus Torvald's GitHub page. Make sure you have it in your PATH environment variable before running the rest.
The coding style standard I try to adhere to is the Linux Kernel one.
- SO Stuff - The skeleton
- Sandu Dorogan - Solutions
These projects are licensed under the Creative Commons Attribution-ShareAlike License.
- Thanks to the SO team for the experience provided and for your overall work.