Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
GitHub is where the world builds software
Millions of developers and companies build, ship, and maintain their software on GitHub — the largest and most advanced development platform in the world.
======== Acess2 ======== Acess2 is [TPG]'s hobby operating system. It's mostly a learning experiment, but I've tried to keep the source simple and have a _nearly_ POSIX compliant userland. === Source Tree === --- /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 --- 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 Filesystem/ - Default filesystem contents (config files) --- 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 libacess-native.so_src/ - Library version of the above (for nativly compiled Acess programs) --- BuildConf --- Build configuration settings (compiler options, module selection) --- Externals --- External programs (e.g. ACPICA, SDL), packaged as makefiles and patches (source archives must be downloaded by the user) === Building === Required Tools: GNU cross toolchain (GCC,Gas,binutils), NASM, mtools, PHP Targets used: > x86 uses i586-elf > x86_64 uses x86_64-none-elf > armv7 uses arm-eabi 1. Edit Makefile.user.cfg and set options (a few are listed below, see Makefile.cfg for the rest) > DISTROOT : Location to install to (by default this is an existing FAT Floppy image) > xCP/xMKDIR : Commands to call when installing # There is a script in Tools/BootFloppy to create an empty disk image 2. Either download a copy of ACPICA to Externals/ACPICA or set 'USE_ACPICA=0' before running make 3. Run `make all install` (default architecture is x86) Other make invocations `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)