====== HaP Day – My First Operating System (2018-07-16) ====== Have you ever wondered how operating systems are made? Are you disappointed by the fact that college doesn't teach you how to build one from scratch? In this HaP Day on **16 July 2018**, we explored how to build an OS from bootloader to shell! {{:hap:days:buildos:banner.png?direct&600|Event banner}} ===== Requirements ===== To participate, attendees needed: * A **GNU/Linux laptop** with `qemu` (emulator), `nasm` (assembler), and `gef` (debugger) installed * Willingness to learn! * Recommended background: * [[https://www.cs.princeton.edu/courses/archive/spr08/cos217/reading/ProgrammingGroundUp-1-0-lettersize.pdf|Assembly Intel]] * [[https://randu.org/tutorials/c/|Advanced C]] ===== Schedule & Venue ===== Started at **09:42** in: * Laboratory 0.08 (ground floor), [[https://www.google.com/maps/place/Departamento+de+Ciencia+de+Computadores/@41.1524758,-8.6405242,18.25z/| Department of Computer Science — Faculty of Sciences — University of Porto Rua do Campo Alegre 1021, Porto (4169-007)]] ===== Resources Used ===== * [[https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf|Writing a Simple Operating System — from Scratch (Nick Blundell)]] * [[http://pages.cs.wisc.edu/~remzi/OSTEP/#book-chapters|Operating Systems: Three Easy Pieces (Arpaci-Dusseau & Arpaci-Dusseau)]] * [[https://wiki.osdev.org/|OSDev Wiki]] Produced source code is licensed under **GPLv3**: [[https://hackersatporto.com/License.html|View license]] ===== Photo Gallery ===== {{:hap:days:buildos:1.jpg?direct&400|Photo 1}} {{:hap:days:buildos:2.jpg?direct&400|Photo 2}} {{:hap:days:buildos:3.jpg?direct&400|Photo 3}} {{:hap:days:buildos:4.jpg?direct&400|Photo 4}} {{:hap:days:buildos:5.jpg?direct&400|Photo 5}} {{:hap:days:buildos:6.jpg?direct&400|Photo 6}} {{:hap:days:buildos:7.jpg?direct&400|Photo 7}} {{:hap:days:buildos:8.jpg?direct&400|Photo 8}} {{:hap:days:buildos:9.jpg?direct&400|Photo 9}} {{:hap:days:buildos:10.jpg?direct&400|Photo 10}} {{:hap:days:buildos:11.jpg?direct&400|Photo 11}} {{:hap:days:buildos:12.jpg?direct&400|Photo 12}} {{:hap:days:buildos:13.jpg?direct&400|Photo 13}} {{:hap:days:buildos:14.jpg?direct&400|Photo 14}} {{:hap:days:buildos:15.jpg?direct&400|Photo 15}}