Usermode/ld-acess - PYT Mode flags
[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 Toolchain (GCC,Gas,binutils), NASM, mtools, PHP
50 Compiling Acess is relatively simple (at the moment)
51 First edit /Makefile.cfg and set the build programs (making sure they match
52   the architecture you are building for).
53 Edit the FILESYSTEMS variable to alter what filesystems are comipled in 
54   (see /Kernel/vfs/fs for what filesystems are included).
55 MODULES defines what modules should be statically linked with the kernel
56   (see /Modules for a list)
57
58 Set the destination install directory (DISTROOT).
59
60 Now you can compile the kernel and usermode applications by calling make
61  in the source root.
62
63 e.g.
64 `make`
65 - Build and install the kernel (x86)
66 `PLATFORM=smp make`
67 - Build and install the x86:smp kernel
68 `ARCH=x86_64 make all`
69 - Build (but don't install) the entire x86_64 kernel and userland
70 `ARCH=armv7 PLATFORM=tegra2 make all install`
71 - Build and install the entire armv7 kernel and userland (with the kernel targeting a Tegra2)
72
73

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