Documentaion update (thanks klange)
[tpg/acess2.git] / README
1 ========
2  Acess2
3 ========
4
5 Acess2 is [TPG]'s hobby operating system.
6
7 It's mostly a learning experiment, but I've tried to keep the source simple
8 and have a _nearly_ POSIX compliant userland.
9
10 === Source Tree ===
11 --- /KernelLand ---
12 The /KernelLand folder contains the kernel code
13   Kernel/
14     - Core kernel
15     arch/<archname>/
16       - Architecture dependent code (memory management and process switching)
17     bin/
18       - Binary file loaders
19     vfs/
20       - Virtual Filesystem layer
21     drv/
22       - Core system drivers (PCI, VTerm, FIFO)
23   Modules/
24     - All manner of drivers and helper code, capable of being build-time and runtime linked
25
26 --- Usermode ---
27 The Usermode folder contains the user-land portion of the Acess OS
28   Applications/
29     - Usermode applications (Shell, IRC Client, GUI, ...)
30  Libraries/
31    - Dynamic linker, and nearly all shared libraries used
32  include/
33    - Header files for libraries and the C standard
34
35 --- AcessNative ---
36 This folder contains a rather hacky emulation framework for the Acess Userland
37 (and to an extent, the kernel). It combines parts of the kernel code, IPC and
38 thread emulation to allow Acess applications to be run on Linux/Windows without
39 recompilation.
40   acesskernel_src/
41     - The kernel emulation framework
42   ld-acess_src/
43     - Replacement ld-acess.so to load programs and translate syscalls into IPC
44
45 --- BuildConf ---
46 Build configuration settings (compiler options, module selection)
47
48 === Building ===
49 Required Tools: GNU cross Toolchain (GCC,Gas,binutils), NASM, mtools, PHP
50  > x86 uses i586-elf
51  > x86_64 uses x86_64-none-elf
52  > armv7 uses arm-eabi
53
54 1. Edit Makefile.user.cfg and set options (a few are listed below, see Makefile.cfg for the rest)
55  > DISTROOT : Location to install to (by default this is an existing FAT Floppy image)
56  > xCP/xMKDIR : Commands to call when installing
57 2. Either download a copy of ACPICA to Externals/ACPICA or set 'USE_ACPICA=0' before running make
58 3. Run `make all install` (default architecture is x86)
59
60 Other make invocations
61 `make`
62 - Build and install the kernel (x86)
63 `PLATFORM=smp make`
64 - Build and install the x86:smp kernel
65 `ARCH=x86_64 make all`
66 - Build (but don't install) the entire x86_64 kernel and userland
67 `ARCH=armv7 PLATFORM=tegra2 make all install`
68 - Build and install the entire armv7 kernel and userland (with the kernel targeting a Tegra2)
69
70

UCC git Repository :: git.ucc.asn.au