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