<?xml version="1.0" encoding="UTF-8"?>
<commits type="array">
  <commit>
    <parents type="array">
      <parent>
        <id>352009e27e761f9ba3881828ca4f519432fcd0f6</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/112c57e90a22698681eb1388cf993fa9f5cf76e9</url>
    <id>112c57e90a22698681eb1388cf993fa9f5cf76e9</id>
    <committed-date>2009-01-29T09:27:18-08:00</committed-date>
    <authored-date>2009-01-16T18:51:06-08:00</authored-date>
    <message>I DON'T KNOW!

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>7b72cd028075cd5564930a91d44a0a45a6f911ed</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>f9b17e6bc8e32a73043f07375f9348064979053d</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/352009e27e761f9ba3881828ca4f519432fcd0f6</url>
    <id>352009e27e761f9ba3881828ca4f519432fcd0f6</id>
    <committed-date>2009-01-29T09:26:02-08:00</committed-date>
    <authored-date>2009-01-09T13:36:57-08:00</authored-date>
    <message>Fixed embarrassing bug.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>5ebc374fac03a43a620db74bb9c3143433dc13b0</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>0a11fb38a739e169a5848510673debf004acc10a</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/f9b17e6bc8e32a73043f07375f9348064979053d</url>
    <id>f9b17e6bc8e32a73043f07375f9348064979053d</id>
    <committed-date>2009-01-29T09:26:01-08:00</committed-date>
    <authored-date>2009-01-09T00:24:39-08:00</authored-date>
    <message>Some more instructions allows further support within Xen.  It switches the video mode, but considering I don't have a console anymore, I can't tell why it fails!  I need to dump this BIOS somehow.  I need to see how it works.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>01204c9bd2d342f9d4ac8de1f2891c1868114dd8</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>4eb80a77e3adf533f508dc176e3921a89d2b90c5</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/0a11fb38a739e169a5848510673debf004acc10a</url>
    <id>0a11fb38a739e169a5848510673debf004acc10a</id>
    <committed-date>2009-01-29T09:25:32-08:00</committed-date>
    <authored-date>2009-01-08T17:13:16-08:00</authored-date>
    <message>Added VESA stuff.

VESA uses 16 bit real mode code, so x86 emulation of real mode was necessary. This is added as a package called XOmBemu.

The VESA driver (only working in Bochs) will execute this BIOS code in userland and run the necessary routines to poll the device and gather information about supported modes. It will then pick the 'best' mode and switch to it with the capability of a double buffer.

The driver then writes to the working buffer with simple blitting functions and then flips the buffer. I've added a couple of static arrays that store raw pixel data for our logo for fun.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>ee2c3ab0f6f7160485a2d9b6df8bbcadf6231803</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>1b33d4928e310cb256321030b1e93e7b59969012</id>
      </parent>
    </parents>
    <author>
      <name>Lindsey</name>
      <email>hazardous.narayan@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/4eb80a77e3adf533f508dc176e3921a89d2b90c5</url>
    <id>4eb80a77e3adf533f508dc176e3921a89d2b90c5</id>
    <committed-date>2009-01-29T09:24:51-08:00</committed-date>
    <authored-date>2009-01-16T22:23:42-08:00</authored-date>
    <message>up to date linked list malloc with printed debug statments all removed.
Adding and removing works kinda funny right now as one adds to the end of the list and the other to the beginning but that really doesn't matter. I figure this will all eventually be replaced with a more elegant implementation of malloc in the future.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>0eb77b3145d1b81c07893039e365c0816a93d262</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>17c4f05452163aaf533c3250c7e36916c427ca38</id>
      </parent>
    </parents>
    <author>
      <name>Lindsey</name>
      <email>hazardous.narayan@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/1b33d4928e310cb256321030b1e93e7b59969012</url>
    <id>1b33d4928e310cb256321030b1e93e7b59969012</id>
    <committed-date>2009-01-29T09:24:31-08:00</committed-date>
    <authored-date>2009-01-09T20:05:20-08:00</authored-date>
    <message>Updated malloc with debug statements in for testing.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>1662a3910e734984b5207acdd360d7870a5dd174</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e3b3589c0a4595258256c4ad8a0b003b0197bcf5</id>
      </parent>
    </parents>
    <author>
      <name>Lindsey</name>
      <email>hazardous.narayan@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/17c4f05452163aaf533c3250c7e36916c427ca38</url>
    <id>17c4f05452163aaf533c3250c7e36916c427ca38</id>
    <committed-date>2009-01-29T09:24:12-08:00</committed-date>
    <authored-date>2009-01-08T17:49:34-08:00</authored-date>
    <message>Malloc and free written.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>880691bc6d50780713f6981bc263edb5542b71d5</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>34ec4ddb8a9d12cea48ae3a2802e53678cfbf606</id>
      </parent>
    </parents>
    <author>
      <name>wolfwood</name>
      <email>transmethyl@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/e3b3589c0a4595258256c4ad8a0b003b0197bcf5</url>
    <id>e3b3589c0a4595258256c4ad8a0b003b0197bcf5</id>
    <committed-date>2009-01-29T09:23:08-08:00</committed-date>
    <authored-date>2009-01-12T19:28:33-08:00</authored-date>
    <message>use the x86_64-pc-xomb flavors of ld and gcc

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>7a23bc583146c49c0da2348ad5aa61eff1050e24</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>23feba7e015e58c3e8c17f03c268a7a7a1970a83</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/34ec4ddb8a9d12cea48ae3a2802e53678cfbf606</url>
    <id>34ec4ddb8a9d12cea48ae3a2802e53678cfbf606</id>
    <committed-date>2009-01-10T21:22:04-08:00</committed-date>
    <authored-date>2009-01-09T14:19:24-08:00</authored-date>
    <message>getting textile right

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>22e0d88b6d0e80c0c500c8cd853e4e2c07da5eaa</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a7eea801f8960da45cff8a441b532794dfd13b99</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/23feba7e015e58c3e8c17f03c268a7a7a1970a83</url>
    <id>23feba7e015e58c3e8c17f03c268a7a7a1970a83</id>
    <committed-date>2009-01-10T21:22:03-08:00</committed-date>
    <authored-date>2009-01-09T14:18:16-08:00</authored-date>
    <message>READMEs are actually in this time. I need to start reading before I commit.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>2f8ef66cd2ecbfdf8b1905ed4e4cef3a0fa48ef6</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>cdad3b6d9a34ad8c1ca1c67cba8aee5db72e3104</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/a7eea801f8960da45cff8a441b532794dfd13b99</url>
    <id>a7eea801f8960da45cff8a441b532794dfd13b99</id>
    <committed-date>2009-01-10T21:22:01-08:00</committed-date>
    <authored-date>2009-01-09T14:07:04-08:00</authored-date>
    <message>BSD License added. README added. Textile README added. Sweet.

Signed-off-by: xomboverlord &lt;overlord@xomb.org&gt;</message>
    <tree>fb910a1dd6a29ac27accce93a38750d153b739c4</tree>
    <committer>
      <name>xomboverlord</name>
      <email>overlord@xomb.org</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>5404084604655cea7e953ec5066a29cefd5ba777</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/cdad3b6d9a34ad8c1ca1c67cba8aee5db72e3104</url>
    <id>cdad3b6d9a34ad8c1ca1c67cba8aee5db72e3104</id>
    <committed-date>2008-12-30T06:12:03-08:00</committed-date>
    <authored-date>2008-12-30T06:12:03-08:00</authored-date>
    <message>lol. I always forget to add new files to git. Here's the second app.</message>
    <tree>07d3ad7a774a0b93f18db0906e148ea4f688c516</tree>
    <committer>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>30028c2a2d6dfb83c5eefa9abf2afc31adf3418d</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/5404084604655cea7e953ec5066a29cefd5ba777</url>
    <id>5404084604655cea7e953ec5066a29cefd5ba777</id>
    <committed-date>2008-12-29T20:47:56-08:00</committed-date>
    <authored-date>2008-12-29T20:47:56-08:00</authored-date>
    <message>New syscall: makeEnvironment(id). This creates a new environment from the grub module located at id, and adds it to the scheduler.</message>
    <tree>beec185ef28703bc46dab4f642769bd6aaf94ab4</tree>
    <committer>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>e253348e7cf005a8f7cd676be3c1ff49a48ab303</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/30028c2a2d6dfb83c5eefa9abf2afc31adf3418d</url>
    <id>30028c2a2d6dfb83c5eefa9abf2afc31adf3418d</id>
    <committed-date>2008-12-29T19:16:14-08:00</committed-date>
    <authored-date>2008-12-29T19:16:14-08:00</authored-date>
    <message>Some fun makefile changes. Also, inttochar is now itoa. That was fun to have, but not fun to type...</message>
    <tree>2be04ee411fce141491a85eb35752cc8253ba528</tree>
    <committer>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7ed605ba13eeec879b5189bb7b020dbdcf53eb25</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/e253348e7cf005a8f7cd676be3c1ff49a48ab303</url>
    <id>e253348e7cf005a8f7cd676be3c1ff49a48ab303</id>
    <committed-date>2008-12-29T18:59:24-08:00</committed-date>
    <authored-date>2008-12-29T18:59:24-08:00</authored-date>
    <message>Two big changes in this commit:
1) We now load up just xsh instead of all applications. This way, we can use grub modules for applications until we get a filesystem working properly.

2) GRUB was having problems when the .iso was bigger than 3MB. So `man mkisofs`...
-boot-load-size load_sectors
    Specifies the number of &quot;virtual&quot; (512-byte) sectors to load in no-emulation mode. The default is to load the entire boot file. Some BIOSes may have problems if this is not a multiple of 4.
Yeah. This is now 8 instead of 4. Voila.</message>
    <tree>bdd0ebd6cf98bc42a9ee6f2082078638e33af131</tree>
    <committer>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>53ab9423315579a1247c2605c7015eda97242f7b</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/7ed605ba13eeec879b5189bb7b020dbdcf53eb25</url>
    <id>7ed605ba13eeec879b5189bb7b020dbdcf53eb25</id>
    <committed-date>2008-12-27T01:38:27-08:00</committed-date>
    <authored-date>2008-12-27T01:38:27-08:00</authored-date>
    <message>I couldn't sleep, so I implemented a video driver that runs only in userland. This means no syscall is needed to print to the screen. This also means that the shell won't need to call ANY syscalls. I should get HPET working now, since the program will never voluntarily give up control.

So, now you have a userland Console library to link to. I have pointed Steve's print function to this Console and turned 'echo' (the previous syscall to write to the screen) into 'error', which will print out to the screen regardless of the environment that owns the console. Any kernel writes to the screen will happen in a random place independent of the environment. But, this is ok, a kernel panic would be the only reason for a real-world kernel write to the screen, or a call to 'error', which should only be used for debug and then removed.

It maps the video buffer directly to a read-write page for the environment. The environment handles its own positioning and color information.

This also shows how an environment can link to multiple device resources... the shell uses both this and the keyboard, which are separated.

It needs some locks.

I stepped on Steve's toes again. I rewrote much of your stuff. :/ Apologies. I D-ified your code a little, I suppose. Sorry! But, hey, I also fixed a buffer overflow bug!

I await the malloc and free code. :)

-- Wilks</message>
    <tree>8065b90ab2df16e53dc2edda5c44cd105a3d5999</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>96b93882cde2fac8de719c9bc0269c43fc4d4e3e</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/53ab9423315579a1247c2605c7015eda97242f7b</url>
    <id>53ab9423315579a1247c2605c7015eda97242f7b</id>
    <committed-date>2008-12-26T22:47:59-08:00</committed-date>
    <authored-date>2008-12-26T22:47:59-08:00</authored-date>
    <message>Alright. I added a few things to allow for device pages and buffers to be allocated by the kernel for the environment. The keyboard syscall initKeyboard is implemented. This syscall will allocate two pages to give the user program a keyboard buffer. The first page is the 'readable' page.  This page contains the buffer itself and the write-pointer for the circular buffer. The second is the 'writeable' page, which contains the read-pointer.  The Keyboard libOS, implemented in the libOS directory, implements the 'get' portion of the keyboard buffer and the code to do translations from keyboard scancodes to printable characters.  The grabch() syscall is now completely gone.

All character input from the keyboard is done completely in userland.

Some keyboard scancode sets are required by hardware. My laptop, for instance, defaults to the old set 1. I cannot get the keyboard controller to tell me what scancode set it is currently using. Nor can I use the controller to set the scancode set. (It hangs in VMWare, it would sometimes ignore it in RL anyway).  So, if it outputs random stuff instead of the keys you are pressing...that is currently an issue.  Should be fine in Xen, Bochs, and VMWare which default to the set I am using (set 2) which is the most common code set.

The code sets suggest how keys are mapped to values.
http://www.computer-engineering.org/ps2keyboard/</message>
    <tree>79e274089875f680b6baf36382f29b6a756f83e8</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>9e4abf179f23acd61c9ef7653b43a274387e338d</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/96b93882cde2fac8de719c9bc0269c43fc4d4e3e</url>
    <id>96b93882cde2fac8de719c9bc0269c43fc4d4e3e</id>
    <committed-date>2008-12-26T13:51:24-08:00</committed-date>
    <authored-date>2008-12-26T13:51:24-08:00</authored-date>
    <message>Bah, something weird with ACPI.  It hangs on my laptop.  I'll disable it until I figure out why it does this and fall back onto the MP tables.</message>
    <tree>8017838d07c949608769a7796e32a5ba964e2d63</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6b3553f7e8198c09f768ac78785b185b678cdb47</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/9e4abf179f23acd61c9ef7653b43a274387e338d</url>
    <id>9e4abf179f23acd61c9ef7653b43a274387e338d</id>
    <committed-date>2008-12-26T13:21:48-08:00</committed-date>
    <authored-date>2008-12-26T13:21:48-08:00</authored-date>
    <message>Fixed some kernel bugs.  The ACPI tables will not be parsed if they are an older specification. The keyboard now initializes properly. It should run on actual hardware. I'm going to test that.

I also added the stdarg.d from phobos to the std directory. Import std.stdarg. I have rewrote some of Steve's print function to use it. Hopefully he doesn't mind. Us the va_arg!() template to get at the parameters. I really hate the magic GCC does to implement this (including an empty module imports specific types??). I also hate just about all D runtimes. Bah!</message>
    <tree>fcd0d297d78ebcdc98d8e169644cba09a8b14da9</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>85aeb6f4b233718918e0c3baeeb38757aa3672d9</id>
      </parent>
      <parent>
        <id>373e0366f29e4e6e1b25718e833f51c1752cb156</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/6b3553f7e8198c09f768ac78785b185b678cdb47</url>
    <id>6b3553f7e8198c09f768ac78785b185b678cdb47</id>
    <committed-date>2008-12-22T16:25:04-08:00</committed-date>
    <authored-date>2008-12-22T16:25:04-08:00</authored-date>
    <message>Merge branch 'master' of git@github.com:untwisted/xomb</message>
    <tree>f3a84525b341d4a8b85703b219194a972f190afb</tree>
    <committer>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>74b99326e8e0fa7e6ac651e5fd6c8900b92b0c9b</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/85aeb6f4b233718918e0c3baeeb38757aa3672d9</url>
    <id>85aeb6f4b233718918e0c3baeeb38757aa3672d9</id>
    <committed-date>2008-12-22T16:22:41-08:00</committed-date>
    <authored-date>2008-12-22T16:22:41-08:00</authored-date>
    <message>Initial work on both malloc and a printf-style io function.</message>
    <tree>21bd622ebca87bdd329952403e81118d1f0d77b4</tree>
    <committer>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>74b99326e8e0fa7e6ac651e5fd6c8900b92b0c9b</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/373e0366f29e4e6e1b25718e833f51c1752cb156</url>
    <id>373e0366f29e4e6e1b25718e833f51c1752cb156</id>
    <committed-date>2008-12-20T20:24:42-08:00</committed-date>
    <authored-date>2008-12-20T20:24:42-08:00</authored-date>
    <message>Let's have that userspace heap allocator syscall working.  I think the free works?  I will test that.

allocPage() -- returns a pointer to an allocated page.  Sequential calls should have consecutive addresses.
freePage() -- frees the last page in the heap.

user/constants.d -- contains constants found at kernel/arch/x86_64/user.d, only one so far: PAGE_SIZE

so, you know how much you've allocated.

import user.constants;

...

void* startHeap = allocPage();
void* endHeap = startHeap + Kernel.PAGE_SIZE;

Hopefully that helps malloc creators!</message>
    <tree>33b925d2e45f14f4ebf58a6178eae54739730ce4</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>16aff416be346947d014b16a1e2d957390a041f5</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/74b99326e8e0fa7e6ac651e5fd6c8900b92b0c9b</url>
    <id>74b99326e8e0fa7e6ac651e5fd6c8900b92b0c9b</id>
    <committed-date>2008-12-20T14:19:19-08:00</committed-date>
    <authored-date>2008-12-20T14:19:19-08:00</authored-date>
    <message>I hope this works out.  GRUB, contrary to what I have read, does not initialize the static segments, so... I will.  The kernel still does not have them, but user applications loaded via GRUB modules will now have zeroed out .bss segments.  Have fun.  (I dislike ELF greatly)</message>
    <tree>a28a0a8cc1622d6825664ba46a3984b00f3a89e2</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b06b928912b38d1834faab0558d0811272d8db89</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/16aff416be346947d014b16a1e2d957390a041f5</url>
    <id>16aff416be346947d014b16a1e2d957390a041f5</id>
    <committed-date>2008-12-19T20:48:19-08:00</committed-date>
    <authored-date>2008-12-19T20:48:19-08:00</authored-date>
    <message>Cloned dstubs to libd.  We need to anti-stub this for userland.  We need a runtime implementation.  Anyone?</message>
    <tree>46351849969e159d434c9cb45b7abd547f92990e</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>7b25cd3b7c6c8ab9997f40540770ea568f542c99</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/b06b928912b38d1834faab0558d0811272d8db89</url>
    <id>b06b928912b38d1834faab0558d0811272d8db89</id>
    <committed-date>2008-12-16T18:39:09-08:00</committed-date>
    <authored-date>2008-12-16T18:39:09-08:00</authored-date>
    <message>Don't need any object files!</message>
    <tree>148308d6856dc86df1e21a15674c783fe671ba8e</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>b6f75265f534e89bf14fe399e2a6d13e47d8b02f</id>
      </parent>
      <parent>
        <id>d5bdeeffd0284870ffead59d998b7f3b13eae0d0</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/7b25cd3b7c6c8ab9997f40540770ea568f542c99</url>
    <id>7b25cd3b7c6c8ab9997f40540770ea568f542c99</id>
    <committed-date>2008-12-16T18:38:15-08:00</committed-date>
    <authored-date>2008-12-16T18:38:15-08:00</authored-date>
    <message>It was being a pain.

Merge branch 'master' of git@github.com:untwisted/xomb

Conflicts:

	src/Makefile
	src/application/xsh.d
	src/application/xsh.o
	src/kernel/core/syscall.d
	src/kernel/dev/keyboard.d
	src/kernel/environment/scheduler.d
	src/kernel/environment/table.d
	src/kernel/kmain.d
	src/menu.lst
	src/user/syscall.d</message>
    <tree>f879e1e9d02c2c7d93c41ca92901b0f236611573</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>75a3ff6760a494d66f38dcb80a18dd50d0afb784</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/b6f75265f534e89bf14fe399e2a6d13e47d8b02f</url>
    <id>b6f75265f534e89bf14fe399e2a6d13e47d8b02f</id>
    <committed-date>2008-12-16T18:35:21-08:00</committed-date>
    <authored-date>2008-12-16T18:35:21-08:00</authored-date>
    <message>It won't let me push.</message>
    <tree>cd6a6e0e7bf19ad07441d2e9be071421ab938470</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>6357e9d51f98d04a747b8e928da029f6d4142325</id>
      </parent>
    </parents>
    <author>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/75a3ff6760a494d66f38dcb80a18dd50d0afb784</url>
    <id>75a3ff6760a494d66f38dcb80a18dd50d0afb784</id>
    <committed-date>2008-12-16T18:12:25-08:00</committed-date>
    <authored-date>2008-12-16T18:12:25-08:00</authored-date>
    <message>Hello,

I have merged my changes, Brian's queue implementation, and Steve's shell.

Auxilary Processors tell the scheduler of their presence and they are marked in a table as a resource.  That is all they do, they are still never used.  We may use this to provide user apps with these processors and take the boot processor to either become another cpu resource, or make it an option to turn on a kernel-only core.  We want to provide both.  It will not be hard to do.

A new mapping is in place.  Four tiers: Kernel shared, CPU specific, Environment-kernel shared, Environment-kernel cpu specific, and then also the user space regions should use up the rest.  Devices and such are still in the same places, but stacks have moved around.

Interrupts should work in the kernel and in userspace.  Weird methods of doing it, but we use sysret when we can, unlike Linux to my knowledge which uses iretq always.  I've tested them pretty well.  We should be aware of the usage of the frame pointer, as any misuse or nonuse of it in the kernel code will break the interrupt mechanism and clobber the stack for the kernel code.

There may be an issue in the schedule() function not scheduling a new environment when only the yield function seems to do so.  The scheduling should be done by the schedule() function which should be called by the yield().  At least that is how I expect it to work.  Brian can update this when he reverts to a priority queue.

The shell polls for a keyboard press.  This can be updated to a keyboard libOS instead of storing the keyboard buffer in the kernel space.  That should limit the keyboard reads to take no context penalty.  Keyboards can be read without switching due to a syscall.  I hope to figure out how this simple kernel-known libOS interface will work soon and have it implemented.  But, um, it works as is for now.

I need to finish the cpu multi-core stuff... should be easy but it takes 25 minutes to boot the kernel via emulation...so yeah...

Should be enough to have concurrent work.

Yay us.</message>
    <tree>7c62cdb60b3d453b97ad9c5f76d707be61d7e056</tree>
    <committer>
      <name>wilkie</name>
      <email>wilkie05@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>a67ad43a5156782028116a6a1c305f2dce6d63c3</id>
      </parent>
    </parents>
    <author>
      <name>untwisted</name>
      <email>untwisted@gmail.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/d5bdeeffd0284870ffead59d998b7f3b13eae0d0</url>
    <id>d5bdeeffd0284870ffead59d998b7f3b13eae0d0</id>
    <committed-date>2008-12-12T12:04:56-08:00</committed-date>
    <authored-date>2008-12-12T12:04:56-08:00</authored-date>
    <message>Added a templated queue to the kernel for use in the scheduler or other places...

Scheduling is now done using a simple queue rather than the priority queue.</message>
    <tree>43ff03291a0c9f695ea8b03ff5b852d68cd0afa8</tree>
    <committer>
      <name>untwisted</name>
      <email>untwisted@gmail.com</email>
    </committer>
  </commit>
  <commit>
    <parents type="array">
      <parent>
        <id>3488fbf751b811f02ba70fd7d68e911cfcfc986b</id>
      </parent>
    </parents>
    <author>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </author>
    <url>http://github.com/xomboverlord/xomb/commit/a67ad43a5156782028116a6a1c305f2dce6d63c3</url>
    <id>a67ad43a5156782028116a6a1c305f2dce6d63c3</id>
    <committed-date>2008-12-07T00:25:40-08:00</committed-date>
    <authored-date>2008-12-07T00:25:40-08:00</authored-date>
    <message>...hey, adding the xsh file to the repo would be great</message>
    <tree>cf13aa60ed44329e0501cb8d9e9b84c21b2cb9f1</tree>
    <committer>
      <name>Steve Klabnik</name>
      <email>steve@steveklabnik.com</email>
    </committer>
  </commit>
</commits>
