-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Welcome to the fs-os wiki!
The main purpose of this wiki is to document how the kernel and OS works, hopefully removing some comments from the code. Everything in the wiki is going to be based on my knowledge and my (little) experience, so expect some wrong or incomplete explanations. The goal is to have an accurate wiki that helps understand how everything works, so feel free to create an issue if you want to suggest a change to this wiki.
You can clone the wiki with:
git clone https://github.com/fs-os/fs-os.wiki.git fs-os-wiki
Throughout this wiki, there are a lot of references to the Intel Software Developer Manual and some to the AMD64 Architecture Programmer's Manual. The manuals on the official website are regularly updated, so you can read and download the specific version of the volumes I used for the references from the following links (See also, Intel download page):
- Intel SDM, Volume 1: 253665-sdm-vol-1.pdf
- Intel SDM, Volume 2: 325383-sdm-vol-2abcd.pdf
- Intel SDM, Volume 3: 325384-sdm-vol-3abcd.pdf
- Intel SDM, Volume 4: 335592-sdm-vol-4.pdf
- AMD Manual: 24593.pdf
References to the manuals look something like:
See Vol. 1, Chapter 1.2.3, Vol. 3, Figure 4-5 and AMD Manual, Figure 6-7.
Most of the hyperlinks to the code are permanent links, meaning that the URL will link to any line of any file, even if the file is later moved in the repo, or the file is changed (Because the link indicates the commit when writing). This is necessary so each link remains the same over time, but means that the linked version might not be the latest or most updated. Make sure you check the final code from the main branch.
Here is a list of some acronyms used throughout this wiki:
Acronym | Meaning |
---|---|
GDT | Global Descriptor Table |
LDT | Local Descriptor Table (unused) |
IDT | Interrupt Descriptor Table |
TSS | Task State Segment |
FPU | Floating-Point Unit |
SSE | Streaming SIMD Extensions |
SIMD | Single-Instruction Multiple-Data |
MSR | Model-Specific Register |
TSC | Time-Stamp Counter |
ISR | Interrupt Service Routine (also referred to as "handlers") |
IRQ | Interrupt Request (i.e. hardware interrupt) |
PIC | Programmable Interrupt Controller |
IO | Input/Output |
MMU | Memory Management Unit |
TLB | Translation Lookaside Buffer |
PD | Page Directory (Contains Page Tables) |
PT | Page Table |
VGA | Video Graphics Array |
RTC | Real time Clock |
More wiki/code specific ones:
Acronym | Meaning |
---|---|
FB | FrameBuffer |
FBC | FrameBuffer Console |
KB | Keyboard |
EOL | End Of Line |
EOF | End Of File |
MT | MultiTasking |