blob: 9659164fc52381bbd601b3fbae2aba99e81671e2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
other projects
https://github.com/cs107e/cs107e.github.io
http://wiki.osdev.org/Calling_Conventions
http://wiki.osdev.org/Linker_Scripts
http://wiki.osdev.org/Printing_To_Screen
http://wiki.osdev.org/Exceptions#General_Protection_Fault
https://en.wikipedia.org/wiki/X86_calling_conventions
http://repo.or.cz/w/lightOS.git
https://littleosbook.github.io/
http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
http://x86.renejeschke.de/html/file_module_x86_id_139.html
http://retired.beyondlogic.org/serial/serial1.htm
https://pdos.csail.mit.edu/6.828/2014/reference.html
other projects
https://bitbucket.org/adamholisky/versionone
tutorials:
https://littleosbook.github.io
http://www.henkessoft.de/OS_Dev/OS_Dev1.htm
http://www.brokenthorn.com/Resources/OSDevIndex.html
- fitting code following the brokenthorm tutorial:
https://github.com/tuhdo/os-study
http://www.fysnet.net/
In C#:
https://github.com/FlingOS/FlingOS
In Rust:
http://os.phil-opp.com/
Interrupts:
http://wiki.osdev.org/Exceptions
http://wiki.osdev.org/Interrupt_Descriptor_Table
http://beefchunk.com/documentation/hardware/microprocessors/intel/i80386/Chap9.html
http://www.cs.cmu.edu/~ralf/files.html
https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/
A20:
http://wiki.osdev.org/A20_Line#Recommended_Method
http://aodfaq.wikidot.com/mc-a20-controls
http://www.independent-software.com/writing-your-own-toy-operating-system-enabling-the-a20-line/
https://www.win.tue.nl/~aeb/linux/kbd/A20.html
longjmp:
http://blog.reverberate.org/2013/05/deep-wizardry-stack-unwinding.html
http://prettyos.de
PIC:
http://www.brokenthorn.com/Resources/OSDevPic.html
http://wiki.osdev.org/8259_PIC
keyboard:
http://wiki.osdev.org/"8042"_PS/2_Controller
https://www.lowlevel.eu/wiki/Keyboard_Controller
PIT:
http://wiki.osdev.org/Programmable_Interval_Timer
PCI:
http://wiki.osdev.org/PCI
https://www.lowlevel.eu/wiki/Peripheral_Component_Interconnect
http://www.ics.uci.edu/~harris/ics216/pci/PCI_22.pdf
/usr/share/hwdata/pci.ids
assembly:
NASM
FASM
serial:
http://wiki.osdev.org/Serial_Ports
http://www.sci.muni.cz/docs/pc/serport.txt
Boot:
https://www.cs.cmu.edu/~410-s07/p4/p4-boot.pdf
http://www.osdever.net/tutorials/view/loading-sectors
http://www.osdever.net/tutorials/view/lba-to-chs
LILO boot loader
http://www.uruk.org/orig-grub/PC_partitioning.txt
http://wiki.osdev.org/ATA_in_x86_RealMode_%28BIOS%29
other Boot (not used, but nice other projects):
https://github.com/vladimirfedorov/bootsector.git: stage1 with FAT, using FASM
C:
http://www.drdobbs.com/extending-c-for-object-oriented-programm/184402731
https://www.state-machine.com/doc/AN_OOP_in_C.pdf
https://www.cs.rit.edu/~ats/books/ooc.pdf
https://lwn.net/Articles/444910/
https://dmitryfrank.com/articles/oop_in_c
VGA:
http://www.inp.nsk.su./~bolkhov/files/fonts/univga/
https://sourceforge.net/projects/bdf2c/
http://files.osdev.org/mirrors/geezer/osd/graphics/modes.c
http://www.osdever.net/FreeVGA/home.htm
http://wiki.osdev.org/VGA_Fonts
http://bos.asmhackers.net/docs/vga_without_bios/
GUI:
https://github.com/vurtun/nuklear
http://webserver2.tecgraf.puc-rio.br/iup/
linker:
https://stackoverflow.com/questions/26143123/how-do-i-ensure-the-entry-function-at-a-fixed-address-of-bare-metal-arm
Linux:
https://blog.packagecloud.io/eng/2016/04/05/the-definitive-guide-to-linux-system-calls/
Security:
http://wiki.osdev.org/Stack_Smashing_Protector
Memory management:
http://www.codinglabs.net/tutorial_memory_pool.aspx
http://wiki.osdev.org/Detecting_Memory_(x86)
Networking:
http://wiki.osdev.org/RTL8139
http://lowlevel.eu/wiki/RTL8139
https://gist.github.com/pdumais/f5a2aff025fc7a3fe6bc
http://linuxgazette.net/156/jangir.html
http://blog.elastocloud.org/2015/07/qemukvm-bridged-network-with-tap.html
Ethernet:
https://en.wikipedia.org/wiki/Ethernet_frame
https://en.wikipedia.org/wiki/EtherType
http://www.hackersdelight.org/hdcodetxt/crc.c.txt
ARP:
https://tools.ietf.org/html/rfc826
http://wiki.osdev.org/Address_Resolution_Protocol
Syscalls:
AX, BX software interrupt 0x80, classic Linux/DOS/Windows syscalls
UTP/Netconsole:
https://www.cyberciti.biz/tips/linux-netconsole-log-management-tutorial.html
|