Menu

Tree [b3fed2] master /
 History

HTTPS access


File Date Author Commit
 docs 2020-07-13 Omar Jarjur Omar Jarjur [b3fed2] Inline the screenshots in the Overview doc
 include 2020-07-12 Omar Jarjur Omar Jarjur [52f6f3] Removed "inline" modifiers that prevented compi...
 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 ...
 .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...
 README.md 2020-07-13 Omar Jarjur Omar Jarjur [6d2648] Fix the doc references in the README
 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...

Read Me

LOSAK: Lisp Operating System, Abstraction Kernel

Overview:

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

Building the included, sample 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-system-i386 -m size=10 -kernel bin/kImage

Directory Contents:

Documentation

  • README.md: This file
  • license.txt: GPL
  • lsk-mode.el: Emaacs Lisp script defining a mode for Losak files
  • docs/Language.md: Specifies the programming language used
  • docs/Overview.md: Provides more background on the project
  • docs/Operating System as a Compiler.md: Original concept behind the project

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
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.