Page 1 of 2

Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 4:14 am
by xyzzy
Hey,

I've just released version 0.3.0 of Exclaim. I've fixed quite a few bugs that people reported to me in IRC and on the bugtracker since 0.3-rc1 - in particular a couple of very big memory leaks in my Ext2 driver that meant installation required at least 512MB of RAM! Installation should work with 32MB now.

New features (not a complete list)
  • AMD64 port
  • Dynamic linking
  • Signals
  • Block cache for block devices
  • Ext2 filesystem write support
  • ISO9660 + Joliet filesystem support
  • Symbolic link support in VFS
  • PCI driver
  • Improved ATA driver, uses the PCI driver for detection, supports ATAPI devices
  • New terminal driver, supports a lot more escape sequences, implements POSIX termios stuff
  • Simple kernel debugger
  • Hard disk installation support
  • Lots of bugs fixed
Software ports
  • Bash
  • GCC/Binutils/Make
  • Ncurses + Nano
  • Grep
  • Sed
  • BSD tar + libarchive
  • Ruby (currently has a bug that causes it to segfault occassionally - can be worked around by placing GC.disable at the start of the script)
  • Cairo graphics library (without font rendering support). There are test apps using it in the installation (cairotest-image, cairotest-video and pngdisplay) as well as their source code. These apps require 32-bit graphics modes - if using QEMU, run it with the '-std-vga' parameter (SVN versions of QEMU need '-vga std')
It's possible to compile Exclaim from inside itself - the source is included in the installation, just run 'make config' from /User/Source/exclaim, configure it for the architecture you're running, and run 'make all-kernel all-drivers' to compile the kernel/drivers.

Note that to get access to all the stuff included, installation to a hard disk is required. If you do not wish to install, it is still possible to use some things such as Bash and all the core utilities by just booting the installation CD.

For people testing in emulators, the download page has a preformatted hard disk image that can be installed to. I've mentioned in the release notes that the installation filesystem should be formatted without the ext_attr feature enabled - this is because the Ext2 driver doesn't handle this feature and I've seen it cause a few fsck errors (inode/block reference counts wrong) with the feature enabled.

Screenshots

Image
Image
Image
Image
Image

More can be found here

Links Hope you like it! Oh, and if anyone finds any bugs, I'd be grateful if they were reported to the bugtracker (see above). Thanks!
Alex

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 6:00 am
by Martijn
Congrats on your amazing achievements! I'll have a look into 0.3 sometime this week.

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 11:41 am
by Combuster
Looks good from here, CD boots perfectly.

Got some real hardware without OS that I wanted to install to, only to figure that there's no ext2fs formatter nor partitioning tool. (Make that a feature request :))

Now waiting for this 32-bit gentoo installcd to complete downloading so I can fix that :(...

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 12:35 pm
by xyzzy
Yeah, I would have liked to have ported at least e2fsprogs but it seems to be full of Linux-specific code. While testing on real hardware I've been using Parted Magic to format - I have it bootable via PXE which makes things a little bit easier. Make sure that you format without extended attributes as I mentioned - I'm not sure if its necessary, but when using the Ext2 driver on a filesystem that had been created with extended attributes and modified from Linux, I was getting fsck complaining about block reference counts (nothing serious, it won't destroy your filesystem - I hope :D). I'll take a look at it when I get a chance and post what I find here.

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 1:50 pm
by Stevo14
Tested on real hardware. The cd boots and runs as expected. I ran some programs and then went ahead and installed it to the disk (this is a spare computer btw.). I formatted the disk as the standard ext2 in gparted. Install worked although it was a little long. Rebooted, installed GRUB (as per the instructions at the end of the install), and booted back into exclaim from the hard disk! So, yes, it worked the first time.
Tested on:
  • Intel Pentium M 1.86 Ghz (32 bit)
  • 512Mb RAM
  • Intel ICH6 chipset
  • ATI Mobility Radeon x300 graphics card (external monitor attached. Old laptop doesn't have a screen...)
Things that didn't work:
  • Capslock/Numlock lights
  • Delete key
  • pngdisplay (everything seems to succeed but nothing is displayed, screen is not cleared, terminal remains responsive)
  • anything cairo-related does the same as above.
  • tar seems not to support creating archives.
Everything else that I tested (I didn't test everything) worked well. Current uptime is ~38 minutes. And most importantly, it did all this without a single crash or freeze. =D> Good work!

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 2:05 pm
by xyzzy
Stevo14 wrote:Things that didn't work:
  • Capslock/Numlock lights
  • Delete key
  • pngdisplay (everything seems to succeed but nothing is displayed, screen is not cleared, terminal remains responsive)
  • anything cairo-related does the same as above.
  • tar seems not to support creating archives.
Everything else that I tested (I didn't test everything) worked well. Current uptime is ~38 minutes. And most importantly, it did all this without a single crash or freeze. =D> Good work!
I should have mentioned that pngdisplay and the cairotest apps when given a background image do take a very long time due to the slow disk access. If it still just hangs like that if you use the cairotest apps without a background image, or pngdisplay with logo.png (which is very small, should take around a second to load), then you've found a bug! :)

Capslock/Numlock lights - yeah, I got lazy and forgot to implement turning the LEDs on and off. Delete key: does it put a ~ into the terminal? If so then I think it's bash doing something funny - the escape code that the terminal driver sends for Delete is exactly the same as what gnome-terminal on Linux is sending, and it works there, but not in Exclaim.

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 3:59 pm
by Stevo14
AlexExtreme wrote:
Stevo14 wrote:Things that didn't work:
  • Capslock/Numlock lights
  • Delete key
  • pngdisplay (everything seems to succeed but nothing is displayed, screen is not cleared, terminal remains responsive)
  • anything cairo-related does the same as above.
  • tar seems not to support creating archives.
Everything else that I tested (I didn't test everything) worked well. Current uptime is ~38 minutes. And most importantly, it did all this without a single crash or freeze. =D> Good work!
I should have mentioned that pngdisplay and the cairotest apps when given a background image do take a very long time due to the slow disk access. If it still just hangs like that if you use the cairotest apps without a background image, or pngdisplay with logo.png (which is very small, should take around a second to load), then you've found a bug! :)
Well, now I feel really ignorant. Apparently the video device is "/Devices/video/video0", not just "/Devices/video". :) Now both pngdisplay and cairo-related commands work (and look very nice btw).
AlexExtreme wrote: Delete key: does it put a ~ into the terminal? If so then I think it's bash doing something funny - the escape code that the terminal driver sends for Delete is exactly the same as what gnome-terminal on Linux is sending, and it works there, but not in Exclaim.
Yes, the delete key puts a ~ on the terminal. It's not a major issue though because the arrow keys work as expected still allowing me to edit the command line.

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 4:34 pm
by Combuster
Hmm, I booted off a gentoo livecd, partitioned the harddrive and created two ext2, a fat, and a swap partition on the 3G harddrive. (hadn't done things except testing OSes since it was wiped by its previous owner)

Rebooting into exclaim showed that it didn't detect the extended partitions (just 2G raw). I tried installing to a 512M ext2 primary partition, but the installer failed with an invalid argument when trying to mount the partitions.

I tried mounting stuff manually, but it gave invalid argument errors when I passed ext2 as the FS, and a device not found with e2fs as the filesystem. I didn't try mounting the CD yet.

Oh and, the arrow keys print numbers rather than editing/browsing commands. tab completion does work however.

Re: Exclaim 0.3.0 released

Posted: Sun Jan 11, 2009 5:29 pm
by VolTeK
it looks great, i like how it reads scripts like ruby, makes a big plus in creativity, can you make your gui with ruby? or does that just make the objects? i will look that up, im not big on ruby

Re: Exclaim 0.3.0 released

Posted: Mon Jan 12, 2009 1:37 am
by xyzzy
Combuster wrote:Rebooting into exclaim showed that it didn't detect the extended partitions (just 2G raw). I tried installing to a 512M ext2 primary partition, but the installer failed with an invalid argument when trying to mount the partitions.
The partmgr driver doesn't support extended partitions yet. Would you mind repartitioning without an extended partition on the drive and trying again? Somebody reported to me that when they had an extended partition, the LBA addresses of the primary partitions that were read from the partition table were out by 63 blocks.
Combuster wrote:Oh and, the arrow keys print numbers rather than editing/browsing commands. tab completion does work however.
Hmm, interesting. I'll see if I can reproduce that somewhere and I'll try to find out what's wrong.

Re: Exclaim 0.3.0 released

Posted: Mon Jan 12, 2009 4:30 am
by JamesM
Combuster wrote:Oh and, the arrow keys print numbers rather than editing/browsing commands. tab completion does work however.
Hmm, interesting. I'll see if I can reproduce that somewhere and I'll try to find out what's wrong.[/quote]


Could be the termcap file - make sure your terminal capabilities and command strings are actually defined rather than letting bash make up its own (learned from experience).

Re: Exclaim 0.3.0 released

Posted: Tue Jan 13, 2009 10:28 am
by eddyb
the kb is still funny, funky, tell it how do you want.
Problems with the kb:
1. in the scancode table the arrows, the special keys are the same with the numpad keys. so if you activate numlock, both of the arrow keys and the arrow keys on the numpad, and some other stuff transforms into numbers.
2. the keyboard layout is en-uk, so you have to choose it when on a emulator(-k en-gb in qemu)
3. the special keys(those with the escape codes), i mean their escape codes, are added all, but (i think the first char, which is the same for all, it think '[') the buffer is increased with -1 number(one char not counted). so if you press x special keys, you cannot delete x chars(x char remains after deleting all, but is threaten like nothing).

Re: Exclaim 0.3.0 released

Posted: Sun Jan 25, 2009 12:48 pm
by Craze Frog
Is this a monolithic kernel?

Re: Exclaim 0.3.0 released

Posted: Sun Jan 25, 2009 1:45 pm
by xyzzy
Craze Frog wrote:Is this a monolithic kernel?
Yes.

Re: Exclaim 0.3.0 released

Posted: Sun Jan 25, 2009 2:26 pm
by Craze Frog
So how do you achieve this design goal?
We will make the system highly modular - any part of the OS should be able to to be swapped out with a different implementation easily. Modules will be stable and, where possible, not bring down the whole system if one crashes.