Home

About


News

Screenshots

Download


Developers

OS Development

Search

 


OS DEVELOPMENT

This little page is the beginning of a collection of source code, information, and links related to general Operating Systems' Development on the Web.

Source code
Links

SOURCE CODE

Here is some source code, written by Andy McLaughlin, which might be useful to programmers who are developing OS- like products on the x86 platform.   All code ending with an ".s" extension is NASM- compatible Assembler code.  All ".c" code is tested for gcc-2.95 (or compatible) C compilers.

enableA20.s This is a fairly versatile snippet of code for enabling the x86's A20 address line.   It's a little bit lengthy, but it seems to work more reliably than other examples I've tried.  Cut and paste it into one of your existing source files.
vesaModes.s This piece of 16-bit code will query the VESA BIOS for a supported graphics mode number based on the desired parameters of resolution and colour depth.  Cut and paste it into one of your existing source files.

 

LINKS

Here are some selected links to sites useful to OS developers (much of this is specific to PC- style hardware architectures).  Please email me about any broken links or erroneous descriptions.  Thanks.


General
 

Questions For an OS Designer So, why are you doing this anyway?  This should be required reading for anyone contemplating starting an OS project
The OS Ring Good collection of links to general things
Creating your own Operating System Dark Fiber's FAQ about OS development
The Operating Systems Resource Center Great collection of technical information and tutorials
SigOps: Create Your Own Operating System This is a broadly focused site about OS theory
Protected mode and operating systems x86-specific site for protected mode operating systems
Ralf Brown's Interrupt List (also try this HTML Version) Don't start any OS project on an x86 machine without getting this first.
HelpPC WWW conversion (or download the actual HelpPC application) Likewise.
The PC Game Programmer's Encyclopedia More useful x86 programming information.
sandpile.org -- 80x86 index Lots of good information about x86 processors.
NASM - The Netwide Assembler Project - FREE 80x86 assembler A GREAT little open- source assembler for x86 machines.


Filesystems
 

Programming Long File Names FAT Long filename information
Design and Implementation of the Second Extended File System The original EXT2 white paper
The Second Extended File System Another EXT2 doc from a Linux site
The Filesystems HOWTO Info about lots of different filesystems
File System Info HPFS, FAT, NTFS info
The Second Extended (EXT2) File System An EXT2 "book" by Dave Poirier.  Very good.
The Extended-2 (EXT2) Filesystem Overview A white paper by Gadi Oxman.  A bit dated, but good as an alternative source of EXT2 information.
CD formats
ISO 9660 File Systems
CD-ROM filesystem format information
Joliet Specification Bootable CD-ROM specification
UDF (DVD) filesystem DVD-ROM filesystem format information


File Formats
 

Wotsit's Format: The programmer's file formats and data formats resource. This site is a godsend.  Information on file formats of almost any kind.   Look here before you go anywhere else.
Standard Disk Format (Maverick) All about the format of the x86 Master Boot Sector
All About GIF89a Info about the GIF file format
DJGPP COFF Spec About the COFF object file format
The Graphics File Format Page Info about lots of graphic file formats


PC Hardware References
 

Pentium(r)Processor - Manuals You need this if you're going to do any coding in x86 Assembly language
x86 Assembly Language FAQ Ray Moon's FAQ for comp.lang.asm.x86
IBM Floppy disk specification
82078 64 Pin CHMOS Single-Chip Floppy Disk Controller
Programming the NEC µPD765 and Intel 82072/7 Floppy Disk Controller
Programming the PC's floppy disk controller
ATA-ATAPI.COM -- ATA ATAPI IDE EIDE
Fil's FAQ-Link-In Corner: IDE Ref.
Phoenix Technologies Ltd. - Products and Solutions
ATA/ATAPI Errata
Programming the PC's hard disk controller
ATA Packet Interface For CD-ROMs Programming the PC's CD-ROM via the ATAPI (ATA/IDE) packet interface
VGA graphics Programming
VGA Programming model
High-res high-speed VESA tutorial
Game Programming and graphics programming
256-Color VGA Programming in C - Home
Graphics and sound - The Hornet Archive
Programming the PC's video hardware
The PS/2 Mouse Interface Programming the PC mouse
Interfacing The Serial / RS-232 Port
Serial Links using RS-232 and RS-485
Serial port programming information
Interfacing The PIC : Using Interrupts Programming the PC's Programmable Interrupt Controller
PCI Vendor & Device IDs PCI bus information
/pub/usenet/news.answers/pc-hardware-faq PC hardware Usenet FAQ


Networking
 

The IP Protocol The IP networking protocol (you need to implement this before TCP, UDP, etc.)
Choosing an Ethernet NIC Some Linux-related general info about network cards


Miscellaneous
 

RFC 1321 - The MD5 Message-Digest Algorithm The MD5 hashing algorithm (for passwords, etc.)
EFI: 64-bit System Design Documents and links describing EFI firmware, GPT partition tables, etc. from Microsoft

 

 

Home   About   News   Screenshots   Download   Developers   OS Development   Search
This site is copyright © 1999-2007, J. Andrew (Andy) McLaughlin
Visopsys and Visopsys.org are trademarks of J. Andrew McLaughlin
Last updated on January 06, 2007