281 lines
9.9 KiB
HTML
281 lines
9.9 KiB
HTML
|
|
<HTML>
|
|
<HEAD>
|
|
<META http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<TITLE>Write Your Own Operating System</TITLE>
|
|
|
|
</HEAD>
|
|
|
|
<BODY>
|
|
<hr color="#0000FF" noshade>
|
|
|
|
<p>
|
|
|
|
<div align="center">
|
|
<h1>Write Your Own Operating System [FAQ]</h1>
|
|
<h5>by <A href="mailto:dfiber@mega-tokyo.com?subject=OS-FAQ">Stuart 'Dark Fiber' George</A> <dfiber@mega-tokyo.com></h3>
|
|
<h5>Last Updated : Tuesday 23rd October 2000</h3>
|
|
</div>
|
|
</P>
|
|
|
|
|
|
<P title="" align="CENTER">Download a .zip'ed version of the os-faq <A href="ftp://ftp.mega-tokyo.com/pub/operating-systems/os-faq.zip">here</A></P>
|
|
|
|
<hr color="#0000FF" noshade>
|
|
|
|
<p>
|
|
<UL>
|
|
<LI>Introductions, Overview
|
|
<UL>
|
|
<LI><A href="os-faq-intro.html#introduction">Introduction</a>
|
|
<LI><A href="os-faq-intro.html#getting_started">Getting Started</a>
|
|
<LI><A href="os-faq-intro.html#what_bits_cant_i_make_in_c">What bits can't I make in C</a>
|
|
<LI><A href="os-faq-intro.html#what_order_should_i_make_things_in">What order should I make things in</a>
|
|
</UL>
|
|
|
|
<LI>Kernel Questions
|
|
<UL>
|
|
<LI><A href="os-faq-kernel.html#load_kernel">How do I make a kernel file I can load</a>
|
|
<LI><A href="os-faq-kernel.html#32bit_files">Help! When I load my kernel my machine resets</a>
|
|
<LI><A href="os-faq-boot.html#easier_load">Is there an easier way to boot my kernel</a>
|
|
</UL>
|
|
|
|
<LI>Boot Loader and Boot Menu's
|
|
<UL>
|
|
<LI><A href="os-faq-boot.html#boot_loadmenu">Tell me about bootloaders and bootmenus</a>
|
|
<li><a href="os-faq-bsmbr.html#boot_sector">Boot Sectors</a>
|
|
<li><a href="os-faq-bsmbr.html#mbr">Master Boot Record</a>
|
|
<LI>GRUB
|
|
<UL>
|
|
<LI><A href="os-faq-grub.html#whats_grub">What is GRUB</a>
|
|
<LI><A href="os-faq-grub.html#get_grub">Where can I get GRUB</a>
|
|
<LI><A href="os-faq-grub.html#grub_aout">GRUB and DJGPP A.OUT</a>
|
|
<LI><A href="os-faq-grub.html#grub_nasm">GRUB and NASM ELF files</a>
|
|
<LI><A href="os-faq-grub.html#grub_watcom">GRUB and Watcom ELF files</a>
|
|
</UL>
|
|
|
|
<LI>LILO
|
|
<UL>
|
|
<LI><A href="os-faq-lilo.html#lilo">What is LILO</a>
|
|
<LI>Where can I get LILO
|
|
</UL>
|
|
|
|
<li>XOSL
|
|
<li>System Commander
|
|
<li>Boot Magic
|
|
</UL>
|
|
|
|
<LI>COMPILERS
|
|
<Ul>
|
|
<LI>DJGPP
|
|
<UL>
|
|
<LI><A href="os-faq-elf.html#elf_files">Can DJGPP output ELF files</a>
|
|
</UL>
|
|
<! TODO >
|
|
<LI>Watcom C/C++
|
|
<LI>Visual C/C++
|
|
</UL>
|
|
|
|
<LI>Hardware
|
|
<UL>
|
|
<LI>CPU
|
|
<UL>
|
|
<LI><A href="os-faq-v86.html#whats_v8086">What is v8086 mode?</a>
|
|
<LI><A href="os-faq-v86.html#detect_v86">How do I detect v8086 mode?</a>
|
|
<li>AMD K6
|
|
<ul>
|
|
<LI><A href="os-faq-cpu-amdk6.html#k6_writeback">AMD K6 WriteBack Optimisations</a>
|
|
</ul>
|
|
|
|
</UL>
|
|
|
|
<LI>Memory
|
|
<UL>
|
|
<LI>The A20
|
|
<UL>
|
|
<LI><A href="os-faq-memory.html#what_is_a20">What is the A20 line?</a>
|
|
<LI><A href="os-faq-memory.html#access_my_memory">Why cant I access all my memory?</a>
|
|
<LI><A href="os-faq-memory.html#enable_a20">How do I enable the A20 line?</a>
|
|
</UL>
|
|
|
|
<LI>Memory Sizing
|
|
<UL>
|
|
<LI><A href="os-faq-memory.html#determine_memory">How do I determine the amount of RAM?</a>
|
|
<LI><A href="os-faq-memory.html#determine_memory_bios">How do I determine the amount of RAM with the BIOS?</a>
|
|
<LI><A href="os-faq-memory.html#determine_memory_probe">How do I determine the amount of RAM with direct probing?</a>
|
|
</UL>
|
|
</UL>
|
|
|
|
<LI>IRQ's and Exceptions, PIC, NMI, APIC, OPIC
|
|
<UL>
|
|
<LI><A href="os-faq-pics.html#irq_exception">How do I know if an IRQ or exception is firing?</a>
|
|
<LI><A href="os-faq-pics.html#what_pic">What is the PIC?</a>
|
|
<LI><A href="os-faq-pics.html#remap_pic">Can I remap the PIC?</a>
|
|
<LI><A href="os-faq-pics.html#nmi">So whats the NMI then?</a>
|
|
<LI><A href="os-faq-pics.html#apic">Tell me about APIC</a>
|
|
<LI><A href="os-faq-pics.html#opic">Tell me about OPIC</a>
|
|
</UL>
|
|
|
|
<LI>Interrupt Service Routines (ISR's)
|
|
<UL>
|
|
<LI><A href="os-faq-isr.html#isr">Whats an ISR?</a>
|
|
<LI><A href="os-faq-isr.html#normal_v_isr">Whats the difference between an ISR and a normal routine?</a>
|
|
<LI><A href="os-faq-isr.html#gcc_isr">So how do I do an ISR with GCC?</a>
|
|
</UL>
|
|
|
|
<LI>Video
|
|
<UL>
|
|
<LI><A href="os-faq-console.html#text_mode">How do I output text to the screen in protected mode?</a>
|
|
<LI><A href="os-faq-console.html#detect_text_screen">How do I detect if I have a colour or monochrome monitor?</a>
|
|
<LI><A href="os-faq-console.html#moving_cursor">How do I move the cursor when I print?</a>
|
|
</UL>
|
|
|
|
<LI>Plug and Play
|
|
<UL>
|
|
<LI><A href="os-faq-pnp.html#prog_pnp">Where can I find programming info on PNP?</a>
|
|
<LI><A href="os-faq-pnp.html#pnp_pmode">I heard you can do PNP calls with the BIOS in Protected Mode?</a>
|
|
</UL>
|
|
|
|
<LI>PCI
|
|
<UL>
|
|
<LI><A href="os-faq-pci.html#prog_pci">Where can I find programming info on PCI?</a>
|
|
<LI><A href="os-faq-pci.html#pci_pmode">I heard you can do PCI calls with the BIOS in Protected Mode?</a>
|
|
</UL>
|
|
</UL>
|
|
|
|
<LI>C Programming
|
|
<UL>
|
|
<LI><A href="os-faq-libc.html#no_printf">Where did my printf go?</a>
|
|
<LI><A href="os-faq-libc.html#libc">Whats this LIBC thing?</a>
|
|
<LI><A href="os-faq-libc.html#existing_libc">What C libraries exist for me to use?</a>
|
|
</UL>
|
|
|
|
<LI>C++ Programming
|
|
<UL>
|
|
<LI><A href="os-faq-cpp.html#start">Doing a kernel in C++</a>
|
|
<LI><A href="os-faq-cpp.html#rtti">Aiyah! Whats RTTI? (Run Time Type Info)</a>
|
|
<LI><A href="os-faq-cpp.html#disable_rtti">How do I disable RTTI in GCC?</a>
|
|
<LI><A href="os-faq-cpp.html#new_delete">Can I use NEW and DELETE in my kernel?</a>
|
|
</UL>
|
|
|
|
<LI>Linkers
|
|
<UL>
|
|
<LI><a href="os-faq-linker.html#linkers">Linker Info!</a>
|
|
<LI><a href="os-faq-linker.html#linkers_jloc">JLoc</a>
|
|
<LI><a href="os-faq-linker.html#linkers_alink">ALink</a>
|
|
<LI><a href="os-faq-linker.html#linkers_ld">LD (GNU)</a>
|
|
<LI><a href="os-faq-linker.html#linkers_tlink">TLink / TLink32 (Borland)</a>
|
|
<LI><a href="os-faq-linker.html#linkers_link">Link / NLink (Microsoft)</a>
|
|
<LI><a href="os-faq-linker.html#linkers_val">VAL</a>
|
|
<LI><a href="os-faq-linker.html#linkers_wlink">WLink (Watcom)</a>
|
|
<LI><a href="os-faq-linker.html#linkers_comp">A Comparison</a>
|
|
</UL>
|
|
|
|
<LI>Executable File Types
|
|
<UL>
|
|
<LI><A href="os-faq-exec.html#exec_files">Executable Files</a>
|
|
<LI><A href="os-faq-exec.html#exec_exe">EXE (dos "MZ")</a>
|
|
<LI><A href="os-faq-exec.html#exec_ne">EXE (win16 "NE")</a>
|
|
<LI><A href="os-faq-exec.html#exec_le">EXE (OS/2 "LE/LX")</a>
|
|
<LI><A href="os-faq-exec.html#exec_pe">EXE (Win32 "PE")</a>
|
|
<LI><A href="os-faq-exec.html#exec_elf">ELF</a>
|
|
<LI><A href="os-faq-exec.html#exec_coff">COFF</a>
|
|
<LI><A href="os-faq-exec.html#exec_aout">A.OUT</a>
|
|
</UL>
|
|
|
|
<LI>Filesystems
|
|
<UL>
|
|
<LI><A href="os-faq-fs.html#file_systems">Tell me about filesystems</a>
|
|
<LI><A href="os-faq-fs.html#fs_fat">FAT</a>
|
|
<LI><A href="os-faq-fs.html#fs_vfat">VFAT</a>
|
|
<LI><A href="os-faq-fs.html#fs_fat32">FAT32</a>
|
|
<LI><A href="os-faq-fs.html#fs_hpfs">HPFS (High Performance File System)</a>
|
|
<LI><A href="os-faq-fs.html#fs_ntfs">NTFS (New Technology File System)</a>
|
|
<LI><A href="os-faq-fs.html#fs_ext2fs">ext2fs (2nd extended file system)</a>
|
|
<LI><A href="os-faq-fs.html#fs_befs">BeFS</a>
|
|
<LI><A href="os-faq-fs.html#fs_ffs_amiga">FFS (Amiga)</a>
|
|
<LI><A href="os-faq-fs.html#fs_ffs_bsd">FFS (BSD)</a>
|
|
<LI><A href="os-faq-fs.html#fs_nfs">NFS</a>
|
|
<LI><A href="os-faq-fs.html#fs_afs">AFS</a>
|
|
<LI><a href="os-faq-fs.html#fs_rfs">RFS</a>
|
|
<LI><A href="os-faq-fs.html#fs_xfs">XFS</a>
|
|
</UL>
|
|
|
|
<LI>Resources
|
|
<UL>
|
|
<LI>Books
|
|
<ul>
|
|
<LI><A href="os-faq-books.html#books">Reference Books</a>
|
|
<LI><A href="os-faq-books.html#book_0">The Indispensable PC Hardware Book</A>
|
|
<LI><A href="os-faq-books.html#book_1">Operating System Concepts</A>
|
|
<LI><A href="os-faq-books.html#book_2">Operating Systems : Design and Implementation</A>
|
|
<LI><A href="os-faq-books.html#book_3">Operating Systems : Internals and Design Principals</A>
|
|
<LI><a href="os-faq-books.html#book_4">Distributed Operating Systems</a></td>
|
|
<LI><a href="os-faq-books.html#book_5">Inside Windows NT, Second Edition</a></td>
|
|
<LI><a href="os-faq-books.html#book_6">Lion's Commentary on UNIX sixth edition, with source code</a></td>
|
|
<LI><a href="os-faq-books.html#book_7">UNIX Internals: The New Frontiers</a></td>
|
|
</ul>
|
|
<LI><A href="os-faq-links.html#small_free_kernels">Some small kernels with source</a>
|
|
<LI><A href="os-faq-acronyms.html#acronyms">Chip Numbers, Acronyms and Things</A>
|
|
</UL>
|
|
|
|
|
|
<LI>Third Party Tools
|
|
<UL>
|
|
<LI><a href="os-faq-3rd.html#vmware">VMWare PC Emulator</a>
|
|
<LI><a href="os-faq-3rd.html#bochs">Bochs (i386) PC emulator</a>
|
|
<LI><a href="os-faq-3rd.html#mtools">MTools (DOS disk image tools)</a>
|
|
<LI><a href="os-faq-3rd.html#simics">SimICS (SunSparc Simulator)</a>
|
|
</UL>
|
|
|
|
<LI>Contributors
|
|
<UL>
|
|
<LI><A href="os-faq-contributors.html#contributors">Who helped with the FAQ</a>
|
|
</UL>
|
|
|
|
<LI>Todo
|
|
<UL>
|
|
<LI><A href="os-faq-todo.html#todo">The TODO list</a>
|
|
</UL>
|
|
|
|
</UL>
|
|
|
|
|
|
<!-- *************** DHTML Outline (end) ***************** -->
|
|
|
|
<hr color="#0000FF" noshade>
|
|
|
|
<p>
|
|
Whats New!
|
|
<ul>
|
|
<li>trying to add more material on various C/C++ compilers
|
|
<li>Added VMWare to the tools list
|
|
<li>Removed the link to the free Intel Developer CD's (offer is no longer valid)
|
|
<li>More info on some boot mangaers (xoxsl, system commander, boot magic, etc)
|
|
<li>Fixed those nasty link colours
|
|
</ul>
|
|
|
|
<p>
|
|
|
|
<hr color="#0000FF" noshade>
|
|
|
|
<P>
|
|
<TABLE border="0" cellspacing="1" cellpadding="10" align="CENTER">
|
|
<CAPTION>The OS-FAQ is a member of the OS Web Ring
|
|
</CAPTION>
|
|
<TR>
|
|
<TD><A href="http://www.webring.org/cgi-bin/webring?ring=os&id=31&next" target="_top">Next</A>
|
|
</TD>
|
|
<TD><A href="http://www.webring.org/cgi-bin/webring?ring=os&id=31&skip" target="_top">Skip Next</A>
|
|
</TD>
|
|
<TD><A href="http://www.webring.org/cgi-bin/webring?ring=os&id=31&next5" target="_top">Next 5</A><BR>
|
|
</TD>
|
|
<TD><A href="http://www.webring.org/cgi-bin/webring?ring=os&id=31&list" target="_top">List Sites</A>
|
|
</TD>
|
|
</TR>
|
|
</TABLE></P>
|
|
|
|
|
|
</BODY>
|
|
</HTML>
|