X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=README;h=e0eeb52b17621536d8536e548e66a8757462837d;hb=46a6a41eab683a599a9f86901be19589e94569bc;hp=66d70f1b84a78204133b06d51a41241560062e4c;hpb=9d3800f60f2212432e550a4e003ae65b498a4d36;p=tpg%2Facess2.git diff --git a/README b/README index 66d70f1b..e0eeb52b 100644 --- a/README +++ b/README @@ -4,28 +4,70 @@ Acess2 is [TPG]'s hobby operating system. -The Acess kernel is SEMI-posix compilant, but 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/ - 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// + - 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, 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). +Edit the FILESYSTEMS variable to alter what filesystems are comipled in + (see /Kernel/vfs/fs for what filesystems are included). +MODULES defines what modules should be statically linked with the kernel + (see /Modules for a list) + +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) + +