martinspedro / SO-notes

A collection of (not so) short notes for the Operative System course, lectured at Aveiro University
https://martinspedro.github.io/SO-notes/
MIT License
7 stars 0 forks source link
concurrent-programming filesystem interprocess-communication markdown memory-management notes notes-tool operating-system-details operating-system-learning pandoc process-management semaphores shell-scripting sofs17

SO-notes

A collection of useful notes and pdfs for the Operative Systems course, at Aveiro University.

A website is also available here.

Published Notes

Note taking process

  1. Notes are taken using pandoc markdown extended syntax
    • Check Adam cheatsheet or Wikipedia for more information and useful tips
      1. Using pandoc, the notes are converted into a eye-candy pdf, using tex as an intermediary file type
    • The latex compiler used is xelatex
    • The Eisvogel template is used with small modifications
      1. Using an yaml header, some metadata and rendering options are provided
      2. Some of the used diagrams are generated using either dot or timing-tikz. The remaining were copied from the course slides.

DOT & Grphviz

The dot graph description language is a graphic description language, enable the fast creation of reasonably neat diagrams

For interpreting the dot code, graphviz as used.

For more information on dot and graphviz, check out this amazing guide

Timing-Tikz

A subset of the Latex vector graphic language, Tikz, that uses geometric/algebric description to create beatiful diagrams

Timing-tikz is a package specific for the generation of timing diagrams, such as digital signals.

For more information, check out this amazing guide

From markdown to pdf

To provide a rapid view of the output pdf, two bash script are available in the scripts folder

# Generates a pdf file from a markdown file and saves it in pdf folder
./md2pdf <notes.md>

# Optionally the pdf name can be given
./md2pdf <notes.md> <pdf name>

# Generates and preview the new pdf file obtained from the markdown
./md2preview <notes.md>

Publishing

To ease the publish of an eye-candy pdf:

 # Assuming that exists a metadata file named notes.yaml in the metadata folder
./renderpdf <notes.md>

# Assuming a metadata file is going to be provided
./renderpdf <notes.md> <metadata_file.yaml>

Disclaimer

Currently this work is highly experimental and not yet scientific reviewed. Do not trust this notes by themselves. They are meant to complete other materials, not replace them.

Acknowledgement

This work is a direct product of the lectures notes toked during Operative Systems classes in the academic year of 2017/18, lectured by Prof. Artur Pereira.

This raw notes were later improved and filtered using as scientific reference the lecture slides from Prof. Artur Pereira and the book Modern Operating Systems by Andrew Tanenbaum & Herbert Bos

Roadmap

License

T he content of this project itself is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license and the underlying source code is under the MIT license.