Recent Changes - Search:

Home Pages Pidgin   Azarennya (S|N) Mac Thesaurus Reference ToDo Colino Food Local

Blogs: BadIdea Rachel RIAA Cult: Clambake Infidels Fi: Arda StarTrek Trek/Wars Film: IMDB D Harry Jabootu Kyle Fun: Agony ICanHas? ObSkills Snopes Lang: ZBB Vreleksá AwkWords Omniglot Scriptorium More... Local: Maps Map MyWeb Metro (map) FC Weather GoWhere? GGWash DC Arlington Reston Beyond Bacon Pix: Deviant Places Renderosity Blender Artists Pol: Anchoress Lizards Lucianne Strata WAwakes Sci: SmallThings Darwin AntiEvo Skeptics EvC BAUT Physics /.Sci Junk Panda Pharyngula Mags AmSci NatG Space X86: OSX86 ArsTech OSNews TUAW Dev PowWeb PHP Webmaster Coding Walkers Prog: PHP JS Toolbox Unobt Compress RegExp (test) Lint SQL Cocoa Builder Dev Apple BBS Userland Faqin

Science/Tech: Engadget Thunderbolts Icecap Centauri NewSci Gizmodo co2sci ClimateDebate SciDaily Nrich NatGeog Math CreatClaims GoodBadMath

CurrentEvents: OrigSig Flamingo FlopAces ImmigProf ~J~ MyVRWC NewsGroper Pal2Pal Sanity Simon TCS Toldjah Blogs...

Tools: Calculator AsciiArt XMLVal

FunStuff: Pictures: Photobucket (eg Dubai) Videos: YouTube Subtitler

InterestingThings: LibraryThing FlashCards GoogleDocs Wowio Bubbl.us Colemak Audible PodioBooks WonderfulInfo BooksOnline AboutUs.org

Karig

A few years ago, I was interested in building my own little toy operating system — something that a PC could boot up into when you turned it on. I may one day return to a variation on this project — a programming environment that runs in Windows.

Karig 2007???

If I rekindle my interest in Karig, I will rewrite it as a Windows program. This will relieve me of the need either to reboot my computer or to have a second computer on which to run the system.

I will write the system in assembly language, probably using FASM (Fast Assembler).

Partition

Karig will have its own "partition" — a special file that Karig automatically opens when it runs. Portions of this file are read into memory, changed in memory, and written back to disk.

Objects

The partition gathers data into "objects" (probably just arrays or linked lists). The user can use commands to create, edit, and delete objects in memory (which is saved to the partition automatically).

One of the first bits of data in the partition is an offset from the start of the partition to the start of a directory of all objects. For each object, the directory contains the offset from the start of the partition to the start of the object. Each object begins with a header that indicates the type of data in the object, including whether the object is a simple array or a node attached to a collection of other objects.

An object is referenced by ID. Karig has to look the ID up in a table to get the object's memory address. Karig can move the object to another memory address and update the address in the table, in order to clear out the "holes" left by deleted objects.

Garbage collection

An object that is not referenced by another object (such as the master directory) can be "collected" so that its space can be reused.

Dictionary and stack

Karig will still be like ColorForth, in that it will be organized around a data stack and a dictionary of user-defined commands. The system will define primitive commands that the user can use to build other commands; these commands will be saved into the partition automatically.

Edit - History - Print - Recent Changes - Search
Page last modified on December 03, 2006, at 03:20 PM