Modules/EHCI - Tweaking, needs a rewrite I think
[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   Filesystem/
33     - Default filesystem contents (config files)
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   libacess-native.so_src/
45     - Library version of the above (for nativly compiled Acess programs)
46
47 --- BuildConf ---
48 Build configuration settings (compiler options, module selection)
49
50 --- Externals ---
51 External programs (e.g. ACPICA, SDL), packaged as makefiles and patches (source archives must
52 be downloaded by the user)
53
54 === Building ===
55 Required Tools: GNU cross toolchain (GCC,Gas,binutils), NASM, mtools, PHP
56 Targets used:
57  > x86 uses i586-elf
58  > x86_64 uses x86_64-none-elf
59  > armv7 uses arm-eabi
60
61 1. Edit Makefile.user.cfg and set options (a few are listed below, see Makefile.cfg for the rest)
62  > DISTROOT : Location to install to (by default this is an existing FAT Floppy image)
63  > xCP/xMKDIR : Commands to call when installing
64   # There is a script in Tools/BootFloppy to create an empty disk image
65 2. Either download a copy of ACPICA to Externals/ACPICA or set 'USE_ACPICA=0' before running make
66 3. Run `make all install` (default architecture is x86)
67
68 Other make invocations
69 `make`
70 - Build and install the kernel (x86)
71 `PLATFORM=smp make`
72 - Build and install the x86:smp kernel
73 `ARCH=x86_64 make all`
74 - Build (but don't install) the entire x86_64 kernel and userland
75 `ARCH=armv7 PLATFORM=tegra2 make all install`
76 - Build and install the entire armv7 kernel and userland (with the kernel targeting a Tegra2)
77
78

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