Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Tree [884d37] master /
History



File Date Author Commit
include 2013-05-31 Omar Jarjur Omar Jarjur [884d37] Changed from using bitwise boolean operators to...
port 2013-05-28 Omar Jarjur Omar Jarjur [f940fe] Switched to use pointers instead of array indices
samples 2013-01-06 Omar Jarjur Omar Jarjur [06210f] Switched from the old svn-style directory layou...
src 2013-05-28 Omar Jarjur Omar Jarjur [f940fe] Switched to use pointers instead of array indices
tests 2013-05-24 Omar Jarjur Omar Jarjur [8366c4] Merged the symbol table pass into the compiler ...
www 2013-01-06 Omar Jarjur Omar Jarjur [06210f] Switched from the old svn-style directory layou...
.gitignore 2013-01-23 Omar Jarjur Omar Jarjur [681207] Expanded the .gitignore file
Makefile 2013-05-27 Omar Jarjur Omar Jarjur [a4acd8] Updated the Makefile to account for the lower n...
bootstrap.sh 2013-05-25 Omar Jarjur Omar Jarjur [608d56] Fixed bug where the multitasking pass was not i...
compile.sh 2013-05-24 Omar Jarjur Omar Jarjur [8366c4] Merged the symbol table pass into the compiler ...
install.sh 2013-01-14 Omar Jarjur Omar Jarjur [e3ab98] Moved the installation logic into its own scrip...
license.txt 2013-01-06 Omar Jarjur Omar Jarjur [06210f] Switched from the old svn-style directory layou...
lsk-mode.el 2013-01-06 Omar Jarjur Omar Jarjur [06210f] Switched from the old svn-style directory layou...
readme.txt 2013-01-06 Omar Jarjur Omar Jarjur [8195ad] Updated the readme file

Read Me

Project Overview:
    This project is an operating system kernel implemented as the compiler for
a custom dialect of Lisp.

Directory Contents:
    .................
    . Documentation .
    .................
    www/Language.txt: Specifies the programming language used
    license.txt: GPL
    readme.txt: This file
    lsk-mode.el: Emaacs Lisp script defining a mode for Losak files

    ..................
    . Losak Compiler .
    ..................
    src/compile.sh: The lisp to C compiler
    src/codegen.lsk: The final pass of the compiler, which generates the C code
    src/cps-transform.lsk: Compiler pass that implements a CPS transformation
    src/desugar.lsk: The first pass of the compiler, which removes syntactic sugar
    src/lambda-lift.lsk: Compiler pass that performs lambda lifting
    src/multitask.lsk: Compiler pass that implements multitasking
    src/symbol-table.lsk: Compiler pass that adds run time symbol support
    src/standard-library.lsk: Compiler pass that adds standard library support

    ......................
    . Sample source code .
    ......................
    samples/* : Sample Losak programs
    samples/kernel.lsk: Simple OS written in Losak

    .........................
    . Bootstrapping support .
    .........................
    port/*: Generated C output of compiling the lisp compiler.
    bootstrap.sh: Script that bootstraps the compiler. This requires
                  having GCC installed

    .........................
    . Assorted source files .
    .........................
    Makefile: Specifies the build process
    include/boot.S: Assembly language code to boot the OS
    include/console.*: Provides console I/O
    include/io.*: General purpose I/O
    include/mem.*: Memory management
    include/multiboot.h: Access to multiboot data

Building the OS:
    To build the executable:
        make

    To clean build files:
        make clean

    The generated binary for the OS is written to the file bin/kImage.
    This is a multiboot compatible binary, and can be loaded on via the
    grub bootloader, or can be run inside of qemu using the command:
        make bin/kImage
        qemu -k bin/kImage