Resources: Difference between revisions
Jump to navigation
Jump to search
[unchecked revision] | [unchecked revision] |
Content deleted Content added
(57 intermediate revisions by 25 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 == |
||
* [http://osdever.net/bkerndev/Docs/title.htm Bran's Kernel Development tutorial] |
|||
* [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] |
||
* Christopher Giese's website |
|||
** broken: [http://my.execpc.com/~geezer/johnfine/ John Fine's Home Page] |
|||
** broken: [http://my.execpc.com/~geezer/osd/index.htm Write Your Own Operating System] |
|||
** mirror: (includes a .zip copy of the site) [http://redir.no-ip.org/mirrors/ redir.no-ip.org] |
|||
** .bz2: [http://dev.ifeelrandom.com/~geezer/~geezer.tar.bz2 dev.ifeelrandom.com ] |
|||
** mirror: [http://geezer.osdevbrasil.net osdevbrasil.net] |
|||
** mirror: [http://dev.ifeelrandom.com/~geezer/ dev.ifeelrandom.com] |
|||
⚫ | |||
** web.archive.com: [http://web.archive.org/web/*/http://my.execpc.com/~geezer/index.htm web.archive.org] |
|||
* [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.viralpatel.net/taj/home.php/ TAJ OS Development] |
|||
* [http://www.brokenthorn.com/Resources/OSDevIndex.html BrokenThorn OS Development Tutorials] |
* [http://www.brokenthorn.com/Resources/OSDevIndex.html BrokenThorn OS Development Tutorials] |
||
⚫ | |||
* [http://www.osdcom.info/ OSDCOM] |
|||
⚫ | |||
* [http://k101.f2g.net/ Kernel 101] |
|||
⚫ | |||
* [http://devnulled.ath.cx/~oslib The OsLib] |
|||
* [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] |
|||
⚫ | |||
* [http://www.jamesmolloy.co.uk/ Roll your own UNIX-clone OS] |
|||
* [http://www.int6.org int6.org - OS Development Resources Collection] |
|||
== 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:// |
* [http://www.mcamafia.de/pdf/pdfref.htm List of PS/2 documents] |
||
* [http://datasheets.chipdb.org/ ChipDB datasheet archive] |
|||
* [http://vgr.tc3net.com/soundblaster/ stockpile of hard-to-find datasheets] |
|||
* [https://web.archive.org/web/20160313204854/https://freemicronix.org/docs/ FreeMicroNix Documentation Collection] |
|||
=== Processors === |
=== Processors === |
||
* [ |
* [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:// |
* [http://developer.amd.com/resources/developer-guides-manuals/ x86-64(AMD64)] |
||
=== BIOS === |
|||
* [https://web.archive.org/web/20100102024125/http://phoenix.com/NR/rdonlyres/56E38DE2-3E6F-4743-835F-B4A53726ABED/0/specsbbs101.pdf BIOS Boot 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. |
* [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]] |
||
=== Video === |
=== Video === |
||
* [http://www.vesa.org official VESA & VBE website] |
* [http://www.vesa.org official VESA & VBE website] |
||
=== Storage === |
=== Storage === |
||
* [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] |
||
* [ |
* [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:// |
* [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 |
||
* [ |
* [https://retired.beyondlogic.org/usb/usbdevdrvs.htm more USB info] |
||
* [http:// |
* [http://www.o3one.org/hwdocs/usb/hcir1_0a.pdf USB OHCI] |
||
* [ |
* [https://www.intel.com/content/dam/www/public/us/en/documents/technical-specifications/ehci-specification-for-usb.pdf USB EHCI] |
||
* [http:// |
* [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. |
* [http://www.delorie.com/djgpp/doc/rbinter/ix/ 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/TheBootProcess/ The Boot Process] |
||
* [http://www.nondot.org/sabre/os/articles/Partitions/ Partitions] |
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/Partitions/ Partitions] |
||
* [http://www.nondot.org/sabre/os/articles/FileSystems/ File Systems] |
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/FileSystems/ File Systems] |
||
* [http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/ Executable File Formats] |
* [https://web.archive.org/web/20130119090155/http://www.nondot.org/sabre/os/articles/ExecutableFileFormats/ Executable File Formats] |
||
* [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/PlugandPlaySpecs/ Plug'n'Play Specs] |
||
* [http://www.nondot.org/sabre/os/articles/DeviceDriverInterfaces/ Device Driver Interfaces] |
* [https://web.archive.org/web/20130119090155/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/Hacking-Art-Exploitation-Jon-Erickson/dp/1593271441/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1210492590&sr=1-1 Art of Exploitation] |
|||
* [http://www.amazon.com/Reversing-Secrets-Engineering-Eldad-Eilam/dp/0764574817/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1210492638&sr=1-1 Secrets of Reverse Engineering] |
|||
* [http://www.amazon.com/Rootkits-Subverting-Addison-Wesley-Software-Security/dp/0321294319/ref=pd_bbs_3?ie=UTF8&s=books&qid=1210492638&sr=1-3 Subverting the Windows Kernel] |
|||
== 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://my.execpc.com/~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 == |
|||
* [[:Category:Kernels_With_Source|Kernels documented in the wiki]] |
|||
=== Small Kernels === |
|||
* [http://my.execpc.com/~geezer/osd/code/ OSD Kernels ] |
|||
* [http://my.execpc.com/~geezer/os/#pm PM Kernels] |
|||
* [http://www.osdever.net/downloads.php#kernels Selection from Bonafide] |
|||
* [http://www.denniscgc.nl/DennisOS/index.php DennisOS] |
|||
* [http://bos.asmhackers.net BOS] |
|||
* [http://libosdk.berlios.de LibOSDK] |
|||
* [http://www.x86os.org LSE/OS] |
|||
* [[DegenerateOS]] |
|||
=== Larger Kernels === |
|||
* [http://bcos.hopto.org/ BCOS] |
|||
* [http://www.tabos.org Tabos] |
|||
* [http://mobius.sourceforge.net Mobius] |
|||
* [http://my.execpc.com/~geezer/os/#cosmos Cosmos] |
|||
* [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://www.kernel.org Linux] |
|||
* [http://www.openbsd.org/cgi-bin/cvsweb/ OpenBSD] |
|||
* [http://www.l4hq.org/projects/kernel/ L4] |
|||
== 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)] |
|||
[[Category:Resources]] |
[[Category:Resources]] |
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
- Bonafide OS Development
- The Operating System Resource Center
- How to Write an Operating System
- Start your small Operating System in Assembly
- NeuralDK OSDev Tuts
- BrokenThorn OS Development Tutorials
- OS FAQ, overall design, VM design, threads..
- Memory Management
- Protected Mode
- Circuit Cellar Ink, an embedded systems development magazine
- Create Your Own OS (by Pritam Zope)
- Osdev Notes - A set of notes on how to write an operating system
Hardware Specifications
- Pierre's Library
- List of PS/2 documents
- ChipDB datasheet archive
- FreeMicroNix Documentation Collection
Processors
BIOS
Motherboard Devices
Human Input Devices
Video
Storage
- official ATA working group
- another ATA/ATAPI website, includes reference driver
- an introduction to ATA/ATAPI commands. It contains a couple of ASM examples to read sectors and identify drives.
- Disk and Disc Drives
- collected links about Ultra DMA, on ATA drives and how PCI configuration comes.
Audio
Network and Communication ports
Buses
- Interconnect Buses
- official USB developers docsz
- more USB info
- USB OHCI
- USB EHCI
- OHCI for FireWire
- OHCI mirror
Software Specifications
- Ralf Brown's Interrupt List
- The Boot Process
- Partitions
- File Systems
- Executable File Formats
- Plug'n'Play Specs
- Device Driver Interfaces
- FAT12-32
- The Art of Software Security Assessment
- Art of Exploitation
- Secrets of Reverse Engineering
- Subverting the Windows Kernel
Other Specifications
Source Code
- OSD Code Snippet Index
- stockpile of documents at singlix.org
- a reference implementation for malloc()
University Courses
- Advanced Operating Systems (NYU)
- Operating System Engineering (MIT) (2004) (2006)
- Introduction to Operating Systems (WISC)