Skip to content

Xinu's Directory Structure

rememberthe8bit edited this page Mar 2, 2013 · 2 revisions

Getting familiar with a new codebase can be troublesome. To ease this, here is a list of the general purposes of some of the more relevant directories in the Xinu source code:

  • apps/ - programs that can be run with the shell?
  • boot/ - contains files that are necessary for booting various platforms
  • boot/raspberry-pi - contains Raspberry Pi GPU firmware
  • compile/ - the directory that we build from by issuing a make command
  • compile/platforms/* - hold configuration information about how to build for various platforms (memory maps, compiler flags, what devices are present and their locations, etc)
  • device/ - device drivers, each device gets a unique directory
  • include/ - headers, mostly for user programs
  • lib/ - not sure
  • lib/libxc - Xinu's standard C library (atoi(), printf(), etc)
  • loader/ - bare-metal code that is the first to run, usually written in assembler
  • mailbox/ - inter-process communication code?
  • mem/ - code that deals with memory (malloc(), free(), etc)
  • network/ - code that deals with newtorking
  • shell/ - xsh, the Xinu shell
  • system/ - system routines for things like initialization, timer events, process scheduling, system calls, etc
  • system/platforms/* - hardware platform-specific system routines like timer initializaiton, context switching, the Vectored Interrupt Controller emulator on the Pi, etc
  • test/ - routines to test things
Clone this wiki locally