DNS Projects HTTP Projects OSS Projects Testing DNS HTTP Servers Main Page





























Posted: Oct 20, 2008 by Datazygte, Inc - contribution by rscheckelhoff-at-fourcalorieservers-dot-com

I have written several http and dns servers that I use on a daily basis. I have also attempted to create a mail server to fill out the portfolio, since I have never been terribly impressed with what is available on the net today.


I created a windows based version of an email server, but eventually decided that it's code base had become too complicated and un-clean to trust, from a security perspective, and so I discarded the thing. More recently, I began a FreeBSD project to create a "better" mail server, and for various reasons discarded that one also.

What I needed was a little more stimulus to "get going" on a new mail project . Then I stumbled upon Haiku1, the new operating system that no one has heard of. I began to play around with the new operating system, and decided that to fully evaluate the system, I needed a project to act as a test weight.

I decided to use the Haiku1 OS (product of Haiku, Inc at Haiku-OS.org) as an excuse to combine the building of another email server with the simultaneous testing of the new operating system.




Working with It

What a pleasant surprise this new operating system is! You may download it from the developers at http://www.haiku-os-org

First, the good news: the operating system is much more stable than what you might believe after reading some of the reviews of the recent past. Much work has been done lately, and it is readily apparent. The sample file containing the email server that I used as a means by which to "check out" the operating system, has been compiled for your review (link below) and required about three days work. In that time, running the gnu c/c++ compilers, various editors, and the like, I did not experience a single crash or meltdown of the operating system!

Security issues may or may not exist in an unfinished email program running on an unfinished operating system ... therefore; the email server development might serve a future purpose ...


Can't wait for the official release!

Editor's update 11/20/2009: Haiku r1-alpha was released in late Sept 2009, CDs available - see note at bottom of page.



It's too early to talk about such an ensemble anyway, and nothing in my mind detracts from the progress the Haiku1 development team is making, since the operating system is not yet officially available to the general public, except through "developer images" and source code repositories. In other words, at this point in time it's the geeks and developers who are interested. In my opinion, that will be changing when the (surely fantastic) official OS CDs and DVDs are pressed.




For my own purposes, I originally downloaded a raw developer image (available from the haiku-os.org site.).

That first image was good enough to tell me to take a second look. For the "second look", I decided to build my own operating system image, due to the reasoning induced by several factors. Firstly, the images available for download are small (~300M or so). Secondly, it is easier to get the tool-chain working by building it with the supplied scripts. The setup of the source tree is well documented on their site, so I won't reiterate it here.


While working to set up the environment to build my own image, I did notice a few anomalies during the process. I used a Debian (Etch) system for the image build process.

The Haiku1 folks have created a build system based on what they call the "jam" script. In order to adjust the size of the final image to something reasonable for building things (within Haiku), you need to set variables in one of the jam configuration files at the top of the source tree. In the jam directory at the top of the tree, you will find the UserBuildConfig.sample file. This file contains the following lines (that are of immediate interest):

HAIKU_ADD_ALL_OPTIONAL_PACKAGES = 1 ;
HAIKU_IMAGE_HOST_NAME = myhostname ;
HAIKU_IMAGE_SIZE = 300 ;

Uncomment those lines, and fill them in as is appropriate. (Additionally, get rid of the "sample" extension on the configuration file). The optional packages include the complete tool chain, as well as the Firefox browser. I found that increasing the image size to around one gigabyte gave me some wiggle room.

The Haiku1 documentation suggest that the setup should begin with:

apt-get install subversion autoconf automake texinfo flex bison gawk build-essential.


I found that I needed to add "apt-get install gperf" to the mix on a stock Debian Etch operating system, after which the whole build process runs smoothly:

apt-get install gperf

(note: ~haiku populated by source procurement via svn checkout svn://svn... (see Haiku-OS.org for details)

cd ~haiku/buildtools/jam
make
jam0 install
cd ~/haiku/trunk


./configure --build-cross-tools ../buildtools/


The final step actually creates the image with the issue of the command:
jam haiku-image



Take your shiny new image and "dd copy" it with something on the order of:
dd if=./haiku.image of=/dev/ad1 (depending upon your disk drive setup, mileage may vary).



Test Drive Results

Email and Postgresql on Haiku
Addendum post: 01/22/2009



Here are a couple update notes relative to the Haiku OS test drive. First, the author has been using the email server (described above) every day for the past three months, averaging over 500 emails per day incoming, with zero crash related failures.

Note that, in spite of these results, we still have the official position that the server not be used on the public internet. The server, in our case, is coddled behind double "bug-in-bottle" firewalls, so as to not rely so much on the security (or lack of) of the mail server itself. Additionally, if we want to take our chances with our own under-development code, we are free to do so.


The Miniscule Email daemon on Haiku
Addendum post: 03/30/2009



In January, I used FreeBSD to recompile the fourcalorieservers/SMTP-1.0.9 code, and subsequently ran the server continuously until now as the main email server for this domain. Again, in terms of down-time, the server executed flawlessly and continually for those three months, never experiencing any down-time due to crashes and, as far as I know, never allowing a break-in and/or root-kit.


The code required no changes whatsoever to compile on FreeBSD, but the linker configuration required a tweak for the slightly different library scheme. This is indicative of a very close adherence to the Berkley sockets API in Haiku. I did find a minor issue with the network latency timeout, which I had hard coded (to apparently, too low a value). Note that the latency issue was my problem, and not Haiku's.

Editor's update 11/20/2009 -- The Haiku r1-alpha release has been issued as both "vm" and "raw" images, and as an ISO CD image that includes a workable installer. The author installed Haiku from a CD burned from the ISO image, and found that the installation procedure took less time than for any other recent operating system that he has tested. Additionally, boot time is awesome -- twelve seconds to a usable desktop on my 1.8Ghz machine!

Get the CD image: http://www.haiku-os.org/get-haiku


The included [firefox] 2.0.0.22 vintage browser (renamed to BeZilla) is just a little dated, but if I can click on that browser icon twelve seconds after I have booted, I'll use "Bezilla 2.0.0.22" and say it's just fine!

For hints about installation via a raw image within the VirtualBox environment, see : http://www.fourcalorieservers.com/notes/freebsd72.html

1 Note: this site has nothing to do (officially) with the Haiku-OS. For information directly from the source, go to http://www.haiku-OS.org .












Contact: Ron Scheckelhoff -- Email suggestions to: rscheckelhoff@.com ( )




Valid HTML 4.01 Transitional