March 3, 2011

New developments

I know what it looks like: Punix is dead. I swear it's not! In fact I have just released the first Punix beta! You can download that at SourceForge

Recently I started work on a floating-point unit (FPU) emulator to add support for floating-point instructions, such as fadd, fneg, fsqrt, and more. So far instruction decoding (to get the destination, the source, and the operation) works for the most part, most number format conversions work (but only converting to extended-precision floating point and not the other way around) and a small handful of simple instructions work completely.

Another recent change is in userspace. For more than a year the system dropped first to a series of tests, one of them being a simple shell. Now the init process attempts to vfork() in order to spawn additional processes (normally it would run getty for each console), but since vfork() doesn't work yet, it drops straight to the shell. The shell is still very simple, but it can now run about a dozen different commands as built-in applets. Among these applets are the *nix utilities "top", "cat", "true", "false", "clear", "uname", and "date"; however, most of these are severely simplified as this is just demo code. Most of the tests that were run in the previous versions are still available by running "tests" from the shell.

Have fun playing with Punix! If you find any bugs or have any suggestions for improvements, please let me know.

No comments: