summaryrefslogtreecommitdiff
path: root/doc/LINKS.TODO
blob: c7e0c4d674ccfe0ef21c7a16500f2e66af914843 (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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
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

https://visopsys.org/osdev/
sortix, soso, managarm (mlibc)
https://bitbucket.org/adamholisky/versionone 
https://collapseos.org/
https://github.com/mikaku/Fiwix

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/
http://www.brokenthorn.com/Resources/

In C#:
https://github.com/FlingOS/FlingOS

In Rust:
http://os.phil-opp.com/

OS with striclty types language:
http://web.yl.is.s.u-tokyo.ac.jp/~tosh/talk/

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
https://github.com/civboot/civboot

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/
abaos: daveho https://int10h.org/oldschool-pc-fonts/fontlist/
https://os.phil-opp.com/vga-text-mode/

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

intro in gas and nasm
https://developer.ibm.com/articles/l-gas-nasm/

https://github.com/wbenny/ia32-doc

https://www.jwz.org/doc/worse-is-better.html

http://www.independent-software.com/operating-system-development-jumping-to-protected-mode.html

https://wiki.osdev.org/Bare_Bones
https://wiki.osdev.org/OS_Specific_Toolchain
https://wiki.osdev.org/GCC_Cross-Compiler
BOOTBOOT
https://forum.osdev.org/viewtopic.php?f=2&t=33362

https://github.com/jtsiomb/pcboot/
minimal 32-bit protected mode booting kernel

https://github.com/Supercip971/WingOS

boot loader
https://github.com/limine-bootloader/limine
q-word OS:
https://github.com/qword-os/echfs
https://github.com/qword-os/lvlibc
https://github.com/Supercip971/WingOS_x64.git

echfs, simple filesystem
https://github.com/echfs/echfs, 32-bit port needed

prex real time embedded os:
https://github.com/AndrewD/prex

https://github.com/spacerace/romfont

etherboot, gPXE, iPXE, HTTP boot:
https://sites.google.com/site/richardgroux/infrastructure-1/Network/pxe-boot/what-is-gpxe-1
linux floppy code has been removed in 2003, had a 1MB limit issue anyway