OS: Switch to C++

So yeah, it has been a while since the last update. I don't feel like writing a lengthy post like last time, so I'm just going to list the progress since the last post (on January 27th!). I switched from C to C++. While writing my device driver code I…

A tale about storage devices & terminals

A lot has happened to ttOS since my last blogpost. If my memory serves me right, my previous blogpost contains information about programming the PIT. I will focus on a few key subsystems which have been worked on. Physical memory managementI have written a botched implementation of a physical memory…

Update on O/S development

Finally, a new blogpost about the original purpose of this blog; operating system development. I came across a project I started in 2010, called ttOS. It was in a very bad shape and it was obvious that I didn't really know what I was doing back then. Nonetheless, I scrolled…

.NET Collections & deferred execution with IQueryable

One of the advantages of modern programming languages and frameworks is that they provide a lot of functionality to "make it easier" for developers to build their software. However, in most cases it is still very important to know what happens under the hood. For example, it will be easier…

Relocation part II & general improvements

I have split the code and data memory areas now. The relocation table has allowed me to do this without any real problems. It's nice! I also implemented some general improvements. I added an x86 disassembler to debug the compiled code on run-time. The library I used is diStorm. This…

Relocation part I

Progress has been going slow lately. I'm a little preoccupied with other things. However, I have been working on pjitgen (that's the library name btw). So... I was going through the branching/control flow opcodes, which I already expected to be difficult to implement. The problem is, the assembler will…

The multi-dimensional translation table

One of the biggest hurdles in this project has been the mechanics of translating Pessego-bytecode to x86 machine code (of course, it's a JIT!). I took 3 different approaches; A completely control-flow based approach, checking the Pessego RM bytes bit-by-bit to construct an x86 instructionAn experiment with a multi-dimensional "translation…

My JIT compiler

Been a long time since the last update. I also suspended development of my operating system and moved on to enhancing my virtual machine project called "Pessego". I wrote the software back in 2008 or something and was a glorified bytecode interpreter with crappy assembler. The new version has a…