Skip to content

One of my earliest projects: a toy lisp interpreter that runs on bare hardware

License

Notifications You must be signed in to change notification settings

Sodel-the-Vociferous/baremetal-lisp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

My "Bare-Metal" Lisp Interpreter

DISCLAIMER: This was one of my earliest projects. The code is a tangly mess, and it's only purpose is as a historical curiosity.

While I was working on it, I generously called this project a Lisp operating system. The goal was to make it semi-usable, but other concerns stole my attention away. As it is, it's a very incomplete and deeply flawed toy lisp interpreter that runs on bare hardware. While programming the interpreter, I worked off of the Common Lisp hyper-spec. (That's right: I was gunning for a fully ANSI-compliant Common Lisp interpreter.)

Compared to the other stuff I've been digging up lately, this is a comparatively recent project. I stopped working on it after January of 2010 (though, 2010 still feels ancient to me.) I've come a long way since then, but this program fills me with mellow nostalgia.

Building and Running It

If you just want to play around with it, you can boot the premade floppy disk image in qemu with the following command:

$ qemu-system-i386 -fda src/basic-grub-floppy.img -boot order=a

If you like, you can also write the disk image onto a floppy disk, and run the "OS" on real hardware:

$ sudo dd if=src/basic-grub-floppy.img of=/dev/fd0

If you want to use the easy way to build a disk image from the latest source code, you'll need to have root access via sudo. That way took the least amount of effort for me to set up.

$ cd src
$ make lispos-floppy.img

Then, you can either run qemu manually:

$ qemu-system-i386 -fda src/lispos-floppy.img -boot order=a

or use the handy shortcut I added to the makefile:

$ make qemu

About

One of my earliest projects: a toy lisp interpreter that runs on bare hardware

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published