summaryrefslogtreecommitdiff
path: root/doc/LINKS.TODO
blob: 4824e48722af4cf243e42bd2d90be2f26a20dac0 (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
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

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

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/EtherType

ARP:
https://tools.ietf.org/html/rfc826