Resources: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
m (Unlink Category:Kernels_With_Source)
 
(26 intermediate revisions by 9 users not shown)
Line 1: Line 1:
This page maintains a list of resources related to operating system development.
This page maintains a list of resources related to operating system development. Often, links become outdated or sites go down. If a link does not work, try to see if it was backed up on archive.org.


== Operating System Development ==
== Operating System Development ==
'''Warning''': External tutorials tend to be old, have bugs, don't follow current community recommendations, and often aren't community edited.
* [http://www.osdever.net/ Bonafide OS Development]
* [http://www.osdever.net/ Bonafide OS Development]
* [http://www.nondot.org/sabre/os/articles The Operating System Resource Center]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles The Operating System Resource Center]
* [http://www.acm.uiuc.edu/sigops/roll_your_own/ How to Write an Operating System]
* [http://www.acm.uiuc.edu/sigops/roll_your_own/ How to Write an Operating System]
* [https://www.devimperium.com/tutorials/start_your_small_operating_system_in_assembly Start your small Operating System in Assembly]
* [http://neuraldk.org/writing.php?FilterCat=Os+Development&FilterDev=All NeuralDK OSDev Tuts]
* [http://neuraldk.org/writing.php?FilterCat=Os+Development&FilterDev=All NeuralDK OSDev Tuts]
* [http://www.brokenthorn.com/Resources/OSDevIndex.html BrokenThorn OS Development Tutorials]
* [http://www.brokenthorn.com/Resources/OSDevIndex.html BrokenThorn OS Development Tutorials]
* [http://www.nondot.org/sabre/os/articles/MiscellaneousSoftware/ OS FAQ, overall design, VM design, threads..]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/MiscellaneousSoftware/ OS FAQ, overall design, VM design, threads..]
* [http://www.nondot.org/sabre/os/articles/MemoryManagement/ Memory Management]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/MemoryManagement/ Memory Management]
* [http://www.nondot.org/sabre/os/articles/ProtectedMode/ Protected Mode]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/ProtectedMode/ Protected Mode]
* [http://www.dtweed.com/circuitcellar/ Circuit Cellar Ink, an embedded systems development magazine]
* [http://createyourownos.blogspot.com/ Create Your Own OS (by Pritam Zope)]
* [https://github.com/dreamos82/Osdev-Notes Osdev Notes - A set of notes on how to write an operating system]


== Hardware Specifications ==
== Hardware Specifications ==
* [http://perso.wanadoo.fr/pierrelib/index.html Pierre's Library]
* [http://perso.wanadoo.fr/pierrelib/index.html Pierre's Library]
* [http://aceos.netfirms.com/Specifications.html Ace OS 'specifications' page]
* [http://vgr.tc3net.com/soundblaster/ stockpile of hard-to-find datasheets] (broken) [http://web.archive.org/web/*/http://vgr.tc3net.com/soundblaster/ archive.org version]
* [http://www.mcamafia.de/pdf/pdfref.htm List of PS/2 documents]
* [http://www.mcamafia.de/pdf/pdfref.htm List of PS/2 documents]
* [http://datasheets.chipdb.org/ ChipDB datasheet archive]
* [http://datasheets.chipdb.org/ ChipDB datasheet archive]
* [https://web.archive.org/web/20160313204854/https://freemicronix.org/docs/ FreeMicroNix Documentation Collection]


=== Processors ===
=== Processors ===
* [http://developer.intel.com/products/processor/manuals/index.htm Intel Manuals]
* [https://software.intel.com/en-us/articles/intel-sdm/ Intel Manuals]
* [http://www.nondot.org/sabre/os/articles/ProcessorArchitecture/ Processor Architecture]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/ProcessorArchitecture/ Processor Architecture]
* [http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252_875_7044,00.html?the_id=13 x86-64(AMD64)]
* [http://developer.amd.com/resources/developer-guides-manuals/ x86-64(AMD64)]


=== BIOS ===
=== BIOS ===
* [http://www.phoenix.com/NR/rdonlyres/56E38DE2-3E6F-4743-835F-B4A53726ABED/0/specsbbs101.pdf BIOS Boot Specification]
* [https://web.archive.org/web/20100102024125/http://phoenix.com/NR/rdonlyres/56E38DE2-3E6F-4743-835F-B4A53726ABED/0/specsbbs101.pdf BIOS Boot Specification]
* [http://download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf Plug and Play BIOS Specification]
* [https://web.archive.org/web/20180202045759/http://download.intel.com/support/motherboards/desktop/sb/pnpbiosspecificationv10a.pdf Plug and Play BIOS Specification]


=== Motherboard Devices ===
=== Motherboard Devices ===
* [http://www.nondot.org/sabre/os/articles/MiscellaneousDevices/ PIC, PIT, DMA, RTC, ..]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/MiscellaneousDevices/ PIC, PIT, DMA, RTC, ..]


=== Human Input Devices ===
=== Human Input Devices ===
* [http://www.national.com/pf/PC/PC16550D.html Serial Mouse]
* [http://www.ti.com/lit/ds/symlink/pc16550d.pdf Serial Mouse]
* [http://www.nondot.org/sabre/os/articles/HumanInterfaceDevices/ Human Interface Devices]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/HumanInterfaceDevices/ Human Interface Devices]
* [[Topic:8323|PS/2 mice]]
* [[Topic:8323|PS/2 mice]]
* [[Topic:10247|PS2 mouse driver]]
* [[Topic:10247|PS2 mouse driver]]
Line 43: Line 45:
* [http://www.t13.org official ATA working group]
* [http://www.t13.org official ATA working group]
* [http://www.ata-atapi.com/ another ATA/ATAPI website, includes reference driver]
* [http://www.ata-atapi.com/ another ATA/ATAPI website, includes reference driver]
* [http://www.geocities.com/SiliconValley/2072/atapi.htm an introduction to ATA/ATAPI commands]. It contains a couple of ASM examples to read sectors and identify drives.
* [https://web.archive.org/web/20091027131605/http://geocities.com/SiliconValley/2072/atapi.htm an introduction to ATA/ATAPI commands]. It contains a couple of ASM examples to read sectors and identify drives.
* [http://www.nondot.org/sabre/os/articles/DiskandDiscDrives/ Disk and Disc Drives]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/DiskandDiscDrives/ Disk and Disc Drives]
* [[Topic:8339|collected links about Ultra DMA, on ATA drives and how PCI configuration comes.]]
* [[Topic:8339|collected links about Ultra DMA, on ATA drives and how PCI configuration comes.]]


=== Audio ===
=== Audio ===
* [http://www.nondot.org/sabre/os/articles/SoundDevices/ Sound Devices]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/SoundDevices/ Sound Devices]


=== Network and Communication ports ===
=== Network and Communication ports ===
* [http://www.nondot.org/sabre/os/articles/CommunicationDevices/ Serial and Parallel port, SPP, EPP, ECP]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/CommunicationDevices/ Serial and Parallel port, SPP, EPP, ECP]
* [http://www.nondot.org/sabre/os/articles/NetworkingDevices/ Networking Devices]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/NetworkingDevices/ Networking Devices]
* [http://www.datasheetarchive.com/pdf/rtl8139-datasheet/rtl8139-datasheet.html RTL8139 family datasheets]
* [http://pdf1.alldatasheet.com/datasheet-pdf/view/84677/ETC/RTL8139/+5_5J8UCRC/1SuMCAY.+/datasheet.pdf RTL8139 family datasheet]


=== Buses ===
=== Buses ===
* [http://www.nondot.org/sabre/os/articles/InterconnectBuses/ Interconnect Buses]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/InterconnectBuses/ Interconnect Buses]
* [http://www.usb.org/developers/docs official USB developers docs]
* [http://www.usb.org/developers/docs official USB developers docs]z
* [http://www.beyondlogic.org/usb/usbdevdrvs.htm more USB info]
* [https://retired.beyondlogic.org/usb/usbdevdrvs.htm more USB info]
* [http://h18000.www1.hp.com/productinfo/development/openhci.html USB OHCI]
* [http://www.o3one.org/hwdocs/usb/hcir1_0a.pdf USB OHCI]
* [http://www.intel.com/technology/usb/download/ehci-r10.pdf USB EHCI]
* [https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/ehci-specification-for-usb.pdf USB EHCI]
* [http://www.intel.com/technology/1394/download/ohci_11.pdf OHCI for FireWire]
* [http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/ohci_11.pdf OHCI for FireWire]
* [http://www.o3one.org/hwdocs/usb/hcir1_0a.pdf OHCI mirror]
* [http://www.o3one.org/hwdocs/usb/hcir1_0a.pdf OHCI mirror]


== Software Specifications ==
== Software Specifications ==
* [http://www.delorie.com/djgpp/doc/rbinter/ix/ Ralf Brown's Interrupt List]
* [http://markhobley.yi.org/banana/index.html Banana] - Use these if you want
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/TheBootProcess/ The Boot Process]
* [http://www.ctyme.com/rbrown.htm Ralf Brown's Interrupt List]
* [http://www.nondot.org/sabre/os/articles/TheBootProcess/ The Boot Process]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/Partitions/ Partitions]
* [http://www.nondot.org/sabre/os/articles/Partitions/ Partitions]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/FileSystems/ File Systems]
* [http://www.nondot.org/sabre/os/articles/FileSystems/ File Systems]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/ Executable File Formats]
* [http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/ Executable File Formats]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/PlugandPlaySpecs/ Plug'n'Play Specs]
* [http://www.nondot.org/sabre/os/articles/PlugandPlaySpecs/ Plug'n'Play Specs]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/DeviceDriverInterfaces/ Device Driver Interfaces]
* [http://www.nondot.org/sabre/os/articles/DeviceDriverInterfaces/ Device Driver Interfaces]
* [http://home.teleport.com/~brainy/fatgen102.pdf FAT12-32]
* [http://home.teleport.com/~brainy/fatgen102.pdf FAT12-32]
* [http://www.amazon.com/Art-Software-Security-Assessment-Vulnerabilities/dp/0321444426 The Art of Software Security Assessment]
* [http://www.amazon.com/Art-Software-Security-Assessment-Vulnerabilities/dp/0321444426 The Art of Software Security Assessment]
Line 81: Line 82:
== Other Specifications ==
== Other Specifications ==
* [http://alexfru.narod.ru/emiscdocs.html stockpile of technical documents (partly in Russian)]
* [http://alexfru.narod.ru/emiscdocs.html stockpile of technical documents (partly in Russian)]
* [http://www.nondot.org/sabre/os/articles/OtherHardware/ Legos, ATX, NetPC's..]
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/OtherHardware/ Legos, ATX, NetPC's..]


== Source Code ==
== Source Code ==
* [[Miscellaneous Code]]
* [http://files.osdev.org/mirrors/geezer/osd/snippets.htm OSD Code Snippet Index]
* [http://files.osdev.org/mirrors/geezer/osd/snippets.htm OSD Code Snippet Index]
* [http://www.singlix.org/trdos/specs.html stockpile of documents at singlix.org]
* [http://www.singlix.org/trdos/specs.html stockpile of documents at singlix.org]
* [http://gee.cs.oswego.edu/pub/misc/malloc.c a reference implementation for malloc()]
* [http://gee.cs.oswego.edu/pub/misc/malloc.c a reference implementation for malloc()]

== Sample Kernels ==
=== Small Kernels ===
* [http://files.osdev.org/mirrors/geezer/osd/code/ OSD Kernels ]
* broken: [http://files.osdev.org/mirrors/geezer/osd/pm PM Kernels]
* [http://www.osdever.net/downloads.php#kernels Selection from Bonafide]
* [http://bos.asmhackers.net BOS]
* [http://libosdk.berlios.de LibOSDK]

=== Larger Kernels ===
* [http://bcos.hopto.org/ BCOS]
* [http://www.tabos.org Tabos]
* [http://mobius.sourceforge.net Mobius]
* [http://files.osdev.org/mirrors/geezer/os/borealis.zip Cosmos/Borealis]
* [http://clicker.sourceforge.net/ Clicker]
* [http://www.menuetos.org/ MenuetOS]
* [http://daidalos.us/x86/ Daidalos]
* [http://www.distantvoices.org/html/os.html BlueIllusionOS]
* [http://agnix.sourceforge.net Agnix Kernel]
* [http://www.oby.ro/os/index.html SolOS]
* [http://www.minix3.org/ Minix 3]
* [http://amos.harmonysecurity.com/ AMOS]
* [[OSKit|OSKit]]

=== Non-hobby Kernels ===
* [http://plan9.bell-labs.com/plan9/ Plan 9 from Bell Labs]
* [http://www.kernel.org Linux] (See also [[Linux Kernel Primer]])
* [http://www.openbsd.org/cgi-bin/cvsweb/ OpenBSD]
* [http://www.l4hq.org/projects/kernel/ L4]
* [http://markhobley.yi.org/k486/ K486]


== University Courses ==
== University Courses ==
* [http://www.scs.cs.nyu.edu/aos/ Advanced Operating Systems (NYU)]
* [https://web.archive.org/web/20090507122053/http://www.scs.cs.nyu.edu/aos/ Advanced Operating Systems (NYU)]
* Operating System Engineering (MIT) [http://pdos.csail.mit.edu/6.828/2004/ (2004)] [http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-828Fall-2006/CourseHome/index.htm (2006)]
* Operating System Engineering (MIT) [http://pdos.csail.mit.edu/6.828/2004/ (2004)] [http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/6-828Fall-2006/CourseHome/index.htm (2006)]
* [http://pages.cs.wisc.edu/~solomon/cs537.html Introduction to Operating Systems (WISC)]
* [http://pages.cs.wisc.edu/~solomon/cs537.html Introduction to Operating Systems (WISC)]

Latest revision as of 09:46, 20 August 2023

This page maintains a list of resources related to operating system development. Often, links become outdated or sites go down. If a link does not work, try to see if it was backed up on archive.org.

Operating System Development

Hardware Specifications

Processors

BIOS

Motherboard Devices

Human Input Devices

Video

Storage

Audio

Network and Communication ports

Buses

Software Specifications

Other Specifications

Source Code

University Courses