Angelogeb / AOSV

Lecture notes for Advanced Operating Systems and Virtualization course at Sapienza University of Rome

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AOSV

⚠️ This repository is (sadly) not active anymore.

Feel free to fork and extend it.

A useful resource (a bit outdated) over concepts in the linux kernel can be found in A Heavily-Commented Linux Kernel Source Code

The project developed for the course can be found here. It covers some nice topics about kernel programming and it is relatively succint in its implementation.


The repository holds the lecture notes of Spring 2018 of the Advanced Operating Systems and Virtualization course held by Alessandro Pellegrini. There are two branches, namely online and master. In the former there are the notes as taken in class while the latter are the notes rewritten with the support of integrating material, classmates and professor.

The repo is a bit dirty in its current state and the online version of lectures <= 5 does not really exist.

Some lectures have in the reference part stuff that is unrelated to the lecture just because new folders are created by copying and pasting older ones.

Browsing the Linux Kernel

Tagged Content

  • Lec1: course information, boot sequence introduction, master boot record BIOS
  • Lec2: A20 line, protected mode, LDT, GDT, protection, IDT, privilege level switch, Task State Segment (TSS)
  • Lec3: protected mode paging, i386 paging, PDE/PTE fields, PAE, addressing in long mode, Translation Lookaside Buffer (TLB), longmode enable, Linux Boot i386 (< v.2.6), UEFI, GUID Partitioning Scheme, Secure Boot, Bootkits, Platform Key (PK), Key Exchange Key (KEK), Signature Database, Multicore Booting (SMP), APIC, INIT-SIPI
  • Lec4: Linux Boot Protocol, Kernel Initialization, header.S, main, go_to_protected_mode, GDT/IDT dummy setup, protected_mode_jump, head_{32,64}.S, startup_{32,64}, start_kernel, Inline Assembly, volatile, asmlinkage, regparm, __visible, __init
  • Lec5: Early paging setup 32bit, bootmem allocator, paging in linux, kernel page table initialization, TLB APIs, NUMA
  • Lec6: Memory Management, Zones, mem_map, Buddy System, Buddy Allocation/Deallocation APIs, High Memory (HIGHMEM), vmap, kmap, kmap_atomic, NUMA Allocation Policies

About

Lecture notes for Advanced Operating Systems and Virtualization course at Sapienza University of Rome


Languages

Language:TeX 100.0%