Updated readme
authorJohn Hodge <[email protected]>
Sun, 19 Feb 2012 08:30:43 +0000 (16:30 +0800)
committerJohn Hodge <[email protected]>
Sun, 19 Feb 2012 08:30:43 +0000 (16:30 +0800)
README

diff --git a/README b/README
index 5680779..e0eeb52 100644 (file)
--- a/README
+++ b/README
@@ -4,51 +4,70 @@
 
 Acess2 is [TPG]'s hobby operating system.
 
-The Acess kernel is SEMI-posix compilant, but there will be a comatability
-library that emulates the different functions.
+It's mostly a learning experiment, but I've tried to keep the source simple
+and have a _nearly_ POSIX compliant userland.
 
 === Source Tree ===
---- /Kernel ---
-The /Kernel tree contains the kernel sources.
- Within the root of the tree is the miscelanious architecture agnostic
-   code for managing threads, loading modules and other things.
- /Kernel/arch/<archname> - Architecture dependent code
- /Kernel/bin - Binary file format parsers. Takes a binary file and
-   convertes it into a binary object that the loader can then load into memory.
- /Kernel/vfs - The Virtual Filesystem
- /Kernel/vfs/fs - The various filesystem drivers for the VFS.
- /Kernel/drv - Drivers
+--- /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
 
 --- Usermode ---
-/Usermode contains the base acess system
- /Usermode/Applications - Usermode applications such as the default
-   command shell and the login shell.
- /Usermode/Libraries - Usermode shared libraries and crt0.o, currently
-   implemented are libacess (kernel interface), a basic libc and ld-acess
-   (dynamic linker).
- /Usermode/include - Required include files for the shared libraries.
+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
+ include/
+   - Header files for libraries and the C standard
+
+--- 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
+
+--- BuildConf ---
+Build configuration settings (compiler options, module selection)
 
 === Building ===
-Required Tools: GNU Toolchain (GCC,Gas,binutils), NASM, mtools, GNU calc
+Required Tools: GNU Toolchain (GCC,Gas,binutils), NASM, mtools, PHP
 Compiling Acess is relatively simple (at the moment)
 First edit /Makefile.cfg and set the build programs (making sure they match
   the architecture you are building for).
-Then select the architecture to build (At the moment only x86:i386 works).
 Edit the FILESYSTEMS variable to alter what filesystems are comipled in 
   (see /Kernel/vfs/fs for what filesystems are included).
-DRIVERS defines what device drivers are to be included from the Kernel
-  tree (see /Kernel/drv for a list).
 MODULES defines what modules should be statically linked with the kernel
   (see /Modules for a list)
 
-Set the source root directory (ACESSDIR) and the destination  directory
- (DISTROOT).
-To be able to build usermode programs, Usermode/Libraries/acess.ld needs
- to be edited to change the SEARCH_DIR directive to the correct path.
-You may also want to edit Usermode/Filesystem/Conf/BootConf.cfg before
- installing.
+Set the destination install directory (DISTROOT).
 
 Now you can compile the kernel and usermode applications by calling make
  in the source root.
 
+e.g.
+`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)
+
 

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