Skip to content
Snippets Groups Projects
README 2.63 KiB
Newer Older
John Hodge's avatar
John Hodge committed
========
 Acess2
========

Acess2 is [TPG]'s hobby operating system.

John Hodge's avatar
John Hodge committed
It's mostly a learning experiment, but I've tried to keep the source simple
and have a _nearly_ POSIX compliant userland.
John Hodge's avatar
John Hodge committed

=== Source Tree ===
John Hodge's avatar
John Hodge committed
--- /KernelLand ---
The /KernelLand folder contains the kernel code
  Kernel/
    - Core kernel
    arch/<archname>/
      - Architecture dependent code (memory management and process switching)
    bin/
      - Binary file loaders
    vfs/
      - Virtual Filesystem layer
    drv/
      - Core system drivers (PCI, VTerm, FIFO)
  Modules/
    - All manner of drivers and helper code, capable of being build-time and runtime linked
John Hodge's avatar
John Hodge committed

--- Usermode ---
John Hodge's avatar
John Hodge committed
The Usermode folder contains the user-land portion of the Acess OS
  Applications/
    - Usermode applications (Shell, IRC Client, GUI, ...)
  Libraries/
    - Dynamic linker, and nearly all shared libraries used
  Filesystem/
    - Default filesystem contents (config files)
John Hodge's avatar
John Hodge committed

--- AcessNative ---
This folder contains a rather hacky emulation framework for the Acess Userland
(and to an extent, the kernel). It combines parts of the kernel code, IPC and
thread emulation to allow Acess applications to be run on Linux/Windows without
recompilation.
  acesskernel_src/
    - The kernel emulation framework
  ld-acess_src/
    - Replacement ld-acess.so to load programs and translate syscalls into IPC
  libacess-native.so_src/
    - Library version of the above (for nativly compiled Acess programs)
John Hodge's avatar
John Hodge committed

--- BuildConf ---
Build configuration settings (compiler options, module selection)
John Hodge's avatar
John Hodge committed

--- Externals ---
External programs (e.g. ACPICA, SDL), packaged as makefiles and patches (source archives must
be downloaded by the user)

John Hodge's avatar
John Hodge committed
=== Building ===
Required Tools: GNU cross toolchain (GCC,Gas,binutils), NASM, mtools, PHP
Targets used:
 > x86 uses i586-elf
 > x86_64 uses x86_64-none-elf
 > armv7 uses arm-eabi
1. Edit Makefile.user.cfg and set options (a few are listed below, see Makefile.cfg for the rest)
 > DISTROOT : Location to install to (by default this is an existing FAT Floppy image)
 > xCP/xMKDIR : Commands to call when installing
  # There is a script in Tools/BootFloppy to create an empty disk image
2. Either download a copy of ACPICA to Externals/ACPICA or set 'USE_ACPICA=0' before running make
3. Run `make all install` (default architecture is x86)
John Hodge's avatar
John Hodge committed

Other make invocations
John Hodge's avatar
John Hodge committed
`make`
- Build and install the kernel (x86)
`PLATFORM=smp make`
- Build and install the x86:smp kernel
`ARCH=x86_64 make all`
- Build (but don't install) the entire x86_64 kernel and userland
`ARCH=armv7 PLATFORM=tegra2 make all install`
- Build and install the entire armv7 kernel and userland (with the kernel targeting a Tegra2)

John Hodge's avatar
John Hodge committed