====== MINIX 3 Developers Guide Table of Contents ====== The Developers Guide provides information on how to hack on MINIX 3. If you're new to MINIX 3 development, you should start here. ===== Newcomers/beginners ===== - ** Introduction ** - [[.:crosscompiling|Cross-compiling MINIX 3]] - [[.:rebuildingsystem|Compiling MINIX 3]] - ** Developing MINIX 3 ** - [[.:overviewofminixarchitecture|Overview of MINIX 3 architecture]] - [[.:programmingminix|Programming in MINIX 3]] - [[.:trackingcurrent|Tracking Current]] - [[.:testsuite|Test Suite]] - ** Contributing ** - [[.:usinggit|Using Git]] - [[.:codingstyle|Coding Style]] - [[.:commitmessages|Commit Message Format]] - [[:wishlist:|Ideas for volunteers to work on]] ===== Tutorials ===== - [[.:liveupdate|Live update and rerandomization]] - [[.:driverprogramming|Device Driver Programming in MINIX 3]] - [[.:debugging|Debugging tips - Serial out, GDB]] - [[.:newkernelcall|Adding a new Kernel Call]] - [[.:performancemeasurement|Performance measurement]] - [[.:eclipsetutorial|Using Eclipse in MINIX 3 with Remote Explorer]] - [[.:gcov|Using GCOV to gather service code coverage info]] ===== Reference documentation ===== - ** Micro-kernel ** - [[.:overviewofminixkernel|Overview of MINIX 3 micro-kernel]] - [[.:kernelapi|Kernel system calls API]] - [[.:memorygrants|Memory grants]] - [[.:messagepassing|Message passing]] - ** Drivers ** - [[.:overviewofminixdrivers|Overview of MINIX 3 drivers]] - [[.:blockprotocol|The Block Device protocol]] - [[.:datalinkprotocol|The Data Link (inet-ethernet) protocol]] - [[.:i2cprotocol|The I2C Device Protocol]] - [[.:rtcprotocol|The RTC Protocol]] - ** Servers ** - [[.:overviewofminixservers|Overview of MINIX 3 servers]] - [[.:vminternals|VM Internals]] - [[.:vfsinternals|VFS Internals]] - ** Userland ** - [[.:overviewofminixuserland|Overview of Minix userland]] - [[.:portingguide|Guide to Porting Software]] - ** Minix-specific ** - [[.:usefultools|Useful tools specific to MINIX 3]] - ** NetBSD ** - [[.:portingnetbsduserland|Porting NetBSD Userland]] - [[.:portingnetbsdstepbystep|Step by Step porting Guide for NetBSD userland]] - ** pkgsrc** - [[.:pkgsrcguide|Pkgsrc Guide]] - [[.:bulkpkgsrc|Bootstrapping and bulk-building with Pkgsrc]] - [[.:syncpkgsrc|Syncing the MINIX 3 pkgsrc Repository with Upstream]] - [[.:pkgsrcupstreaming|Pkgsrc Upstreaming]] - [[.:pkgsrconarm|Pkgsrc on ARM (not yet working)]] - ** Machine-dependent ** - ** i386 ** - [[.:cpureferencemanuals|X86 CPU Reference Manuals]] - ** ARM ** - [[.:minixonarm|Building MINIX 3 for ARM]] - [[.:testsuite|Test Suite]] - [[.:testingminixarm|Testing Minix/arm]] - ** Miscellaneous ** - [[.:earlyboot|Early Boot]] - technical details of kernel getting loaded and its memory layout - [[.:frompowerontologinprompt|From power-on to the login prompt...]] - [[.:magicdebugkeys|Magic debugging keys]] ====== MINIX 3 Old Developers Guide Table of Contents ====== As discussed on [[https://groups.google.com/forum/#!topic/minix3/3Pe2KYxfqHE|minix3]], here is the old developers guide table of contents: - **Programming** - [[.:usefultools|Useful tools specific to MINIX 3]] - [[.:driverprogramming|Device Driver Programming in MINIX 3]] - [[.:i2cdriverprogramming|I2C Device Driver Programming in MINIX 3]] - [[.:i2cdevinterface|I2C /dev Interface]] - [[.:bbcapes|Adding support for new BeagleBone Capes]] - [[.:eclipsetutorial|Using Eclipse in MINIX3 with Remote Explorer]] - [[.:posixandminix|POSIX and MINIX 3]] - [[.:programmingminix|Programming in MINIX 3]] - [[.:cpureferencemanuals|X86 CPU Reference Manuals]] - [[.:performancemeasurement|Performance measurement]] - [[.:newkernelcall|Adding a new Kernel Call]] - [[.:debugging|Debugging tips - Serial out, GDB]] - [[.:gcov|Using GCOV to gather servers code coverage info]] - **Rebuilding the System** - [[.:trackingcurrent|Tracking Current]] - [[.:rebuildingsystem|Rebuilding the System]] - [[.:crosscompiling|Crosscompile MINIX]] - [[.:minixonarm|Building MINIX for ARM]] - [[.:testsuite|Test Suite]] - [[.:testingminixarm|Testing Minix/arm]] - **API Documentation** - [[.:minixapi|The MINIX 3 API]] - [[.:kernelapi|The Kernel API]] - [[.:vfsfsprotocol|The VFS-FS protocol]] - [[.:datalinkprotocol|The Data Link (inet-ethernet) protocol]] - [[.:blockprotocol|The Block Device protocol]] - [[.:i2cprotocol|The I2C Device Protocol]] - [[.:rtcprotocol|The RTC Protocol]] - [[.:datastore|The DataStore API]] - [[.:sef|The System Event Framework (SEF)]] - [[.:vtreefs|The VTreeFS library]] - [[.:vmcalls|VM calls]] - **Internals** - [[.:frompowerontologinprompt|From power-on to the login prompt...]] - [[.:earlyboot|Early Boot]] - technical details of kernel getting loaded and its memory layout - [[.:vminternals|VM Internals]] - [[.:vfsinternals|VFS Internals]] - [[.:i2cinternals|I2C Internals]] - [[.:edidreading|EDID Reading]] - [[.:userspacescheduling|Userspace scheduling]] - **Writing or Porting Software** - [[.:portingguide|Guide to Porting Software]] - [[.:portingnetbsduserland|Porting NetBSD Userland]] - [[.:pkgsrcguide|Pkgsrc Guide]] - [[.:bulkpkgsrc|Bootstrapping and bulk-building with Pkgsrc]] - [[.:syncpkgsrc|Syncing the Minix pkgsrc Repository with Upstream]] - [[.:pkgsrcupstreaming|Pkgsrc Upstreaming]] - **Source Code** - [[.:usinggit|Using Git]] - [[.:codingstyle|Coding Style]] - [[.:commitmessages|Commit Message Format]] - **TODO** - [[:wishlist:|Ideas for volunteers to work on]]