Pinderkent

Pain and glory from the trenches of the IT world.

Using low-cost/low-power hardware is a fight against low-quality software.

Posted on Monday, September 07, 2009 at 2:56 PM.

James Hamilton recently wrote about the use of low-cost and low-power servers, with a focus on ARM-based systems running Linux. He points out that the linux-arm.org site itself is running on such a setup. Looking at the specs of their systems reminds me of the servers we used in the mid-to-late 1990s, and even into the 2000s. Having been involved with software development for many years now, with much of my work revolving around networked business applications and server applications, I find this to be an interesting topic.

Clearly, a huge part of the problem today is the software we'd be running on such hardware. With the rise of Java, and especially frameworks like Ruby on Rails, far less of our hardware resources are used for actually performing the work of our software applications, and instead go towards powering the numerous frameworks, virtual machines, and platforms typically underlying our applications. Indeed, it has gotten so bad that some people are surprised when their Ruby on Rails-based Web application can handle "multiple requests per second", on modern hardware, without exhibiting performance problems.

Most recently, I wrote about Stack Overflow's outrageous hardware usage. Give the generally simplistic nature of that site, and the huge amount of processing power offered by today's low-end hardware, it's almost absurd to see how much they're apparently using.

When discussing lightweight servers, we shouldn't forget to consider the use of NetBSD instead of Linux. Aside from it already offering several ports to various ARM-based platforms, NetBSD is among the highest-quality open source software out there. I know of one person who used NetBSD on old PCs to serve images. I've also advocated it as an alternative to lightweight Ubuntu Linux distributions, as well as for use on low-power systems like Intel's classmate PC.

People today seem to forget just how powerful a typical server is today. Even the ARM-based servers that James mentions, or those powering the linux-arm.org Website, sound much more powerful than what we used a decade ago. That's not unexpected, of course. The cost of hardware rapidly drops, while its capabilities rapidly increase. Unfortunately, our software systems seem to eat up those gains rather quickly.

The main barrier to the widespread use of low-power and low-cost servers will likely be our existing software, frameworks, and platforms that use hardware resources very inefficiently. Instead of trying to salvage those, many of which are already a lost cause, perhaps we should be more willing to start from scratch, strip out all of the unnecessary layers of software that have accumulated, and make better use of functional programming languages like Erlang and Haskell. So not only would we get the benefits of using more efficient hardware, but we'd also get a much simpler and efficient software platform upon which to build our applications.

Permalink: http://pinderkent.phumblog.com/post/2009/09/using_lowcostlowpower_hardware_is_a_fight_against_lowquality_software
Share:

NetBSD is a perfect example of bloat-free software.

Posted on Saturday, September 08, 2007 at 7:48 AM.

There was some discussion at Slashdot recently about bloat-free software. Many people were giving examples such as Firefox, Opera, and GIMP. But when it comes to truly bloat-free software, I think NetBSD is a perfect example.

Necessity is part of the reason why NetBSD is bloat-free. A bloated operating system just cannot run on the wide array of vintage hardware that NetBSD supports. So bloat-avoidance is an integral part of their development philosophy.

Furthermore, the NetBSD developers tend to be quite talented. They're able to write efficient and effective software that does what it needs to with the minimal amount of code. Using C no doubt brings smaller executables and little runtime overhead. Not having the overhead of the C++ runtime, or worse yet a VM in the case of Java, or an interpreter as with Python or Perl, surely helps reduce bloat.

It's doubtful that a software product will remain relatively bloat-free unless the avoidance of bloat is as critical a factor as it is with NetBSD. The fact that they've been able to put together a modern UNIX OS that runs well on systems that are decades old is truly a testament to their developers' skills and talents.

Permalink: http://pinderkent.phumblog.com/post/2007/09/netbsd_is_a_perfect_example_of_bloatfree_software
Share:

NetBSD and Lighttpd help put three 200 MHz PCs put to good use!

Posted on Saturday, September 01, 2007 at 8:27 AM.

I'm a staunch supporter of putting old, but working, computers to good use again. Personally, I have repurposed numerous systems back into production after they were deemed to be too old, and replaced with newer hardware. One of my favorite tools for enabling this is NetBSD. As described on the NetBSD Web site, "NetBSD is a free, secure, and highly portable Unix-like Open Source operating system available for many platforms, from large-scale server systems to powerful desktop systems to handheld and embedded devices."

At the pub last night, a friend of mine who also does some IT work was telling me of how he rescued three old 200 MHz PCs with the help of NetBSD. He works for a Web site operator, and part of their operations involve serving copious amounts of images. So he installed NetBSD on those systems, and ran some stress tests over night. The next morning he set up Lighttpd, and within a couple of hours they'd been integrated into the network and were serving images.

He was sort of surprised that they were able to handle the load so well. But it's really not all that surprising. A typical PC with a 200 MHz x86 CPU is actually quite powerful. And for a task like serving images, it is more than suitable. Using efficient and effective software like NetBSD and Lighttpd makes it ever more useful.

Permalink: http://pinderkent.phumblog.com/post/2007/09/netbsd_and_lighttpd_help_put_three_200_mhz_pcs_put_to_good_use
Share:

The homogenization of the UNIX world.

Posted on Sunday, August 12, 2007 at 8:55 AM.

Those of us who are serious users of UNIX or UNIX-like systems have no doubt looked at ��ric L��v��nez's excellent UNIX Timeline at some point. If you haven't, I suggest that you do! The amount of information it offers is truly spectacular. But looking at it today, I came to a somewhat sad realization: the UNIX world has become quite homogenized.

This history of UNIX starts out in September of 1969. From then until after the release of UNIX TSS Fourth Edition in November of 1973, we see no forking or derivation. Between Fourth Edition and Fifth Edition, we see some forking starting to take place, in the form of PWB/UNIX and MERT. We witness more and more branching, up until 1981.

It is around that point that I think UNIX really starts to enter a 20-year period of significant growth and "individuality". Between 1980 and 1984, we see some pretty significant divergence. First, many of the major UNIX variants begin their lives. XENIX starts on August 25, 1980, while 4.0BSD is released in October of 1980. UNIX System III comes out in November of 1981. QUNIX (the precursor to QNX) hails from 1981, as well. HP-UX starts its life in 1982. Two of the most important UNIX variants begin at this time, too: SunOS 1.0 is released in February of 1982, followed by UNIX System V in January of 1983.

The period between 1984 and 1989 is truly a glorious time in the history of UNIX. SunOS blossomed during this period, with SunOS 2.0, 3.0 and 4.0 being released. We have the major 4.2BSD and 4.3BSD releases. Mach arises in 1985. The roots of AIX go back to 1986, which is also when IRIX began. With an impact still felt by Mac OS X users today, we have the release of NeXTSTEP 0.8 on October 12, 1988, and the release of NeXTSTEP 1.0 on September 18, 1989. Although not derived from UNIX itself, the development of Minix started during this time period (and we all know the impact it would later have on Linus and Linux).

Mind you, those are just the variants that ended up having the most significant impact on the UNIX computing world. As is clearly visible on the timeline, there were numerous other variants, with many focusing on a specific platform or domain. Regardless, what we notice is that this was an era of growth and innovation. There was a lot of diversity.

This trend continues into the 1990s. We have major events like the beginning of Linux in 1991, and the release of Solaris 2.0 in July of 1992. UnixWare came out in November of 1992. NeXTSTEP continued to evolve. On the BSD front, we see NetBSD, BSD/OS and FreeBSD arise. But now notice the trend on the timeline; we see far less sharing of code and ideas between the variants. This is especially evident between 1998 and 2001.

At this point, most of the activity is between Darwin, Mac OS X and Mac OS X server. We see some transfers of code and concept, such as XFS from IRIX to Linux. But otherwise, there's little interaction between the different variants.

Things are really starting to look bland between 2004 and today. In terms of actively-developed UNIX or UNIX-like operating systems, we're down to only a handful. The BSD world is perhaps the most diverse, where we have NetBSD, PC-BSD, DragonFly BSD, OpenBSD and FreeBSD. Other than that, the most active variants are Mac OS X, Linux, Solaris, HP-UX, Minix and AIX. IRIX has become mostly irrelevant, as have Tru64 UNIX, OpenServer and UnixWare.

We will have to wait and see what the future will bring. But it looks like it will likely be pretty isolated to only a few major UNIX or UNIX-like systems: FreeBSD, Mac OS X, Solaris, and Linux. Although activity will continue on HP-UX and AIX, no doubt, their influence may very well be minimal.

I have mixed feelings over how things have evolved. On one hand, we do have more powerful features concentrated in a smaller number of systems. And these systems are fairly prevalent, and well-constructed. But the diversity of the 1980s and early 1990s brought upon change and innovation at an exciting pace. A balance between the two extremes would likely be best, although it is suspect whether we will ever get there.

Permalink: http://pinderkent.phumblog.com/post/2007/08/the_homogenization_of_the_unix_world
Share:

Shuttleworth's proposed laptop useful for more than just Ubuntu.

Posted on Saturday, July 14, 2007 at 4:43 PM.

I'm sure that most people who follow developments within the open source community have read about Mark Shuttleworth's high-end, free-software-only laptop idea. While his focus appears to be more ideologically-driven, I think such a laptop would be useful for those of us with more pragmatic concerns.

Understandably, his writing about this topic focuses mainly on the use of Ubuntu-derived distributions on such a laptop. But I think it would also be very valuable for users of systems like FreeBSD, NetBSD, OpenBSD, Solaris and even Haiku.

The obvious benefit would be the ability for drivers to be written that have excellent support for the hardware being used. This has been one of the main benefits of buying a system from Apple, where you know the software you're getting has full support for the hardware it is bundled with.

The benefit may not be as great for Solaris. After all, we have been able to buy Sun workstations for decades now, and of course Solaris integrates very well with the hardware being used. While there are UltraSPARC-based notebooks running Solaris available, Shuttleworth's proposed laptop could bring Solaris to a wider audience.

FreeBSD, NetBSD and OpenBSD may have the most to gain from such a system. FreeBSD and NetBSD would both provide very usable, general-purpose environments. OpenBSD may even be ideal for such a laptop, where its high degree of security would prove useful when connecting wirelessly to questionable networks at universities, airports, malls, and other public areas. Not having to worry about hardware incompatibilities would likewise make such systems available to a far wider audience.

The realization of Shuttleworth's proposal for a high-end, free-software-only laptop would be excellent for the open source community. It would allow operating systems like FreeBSD and NetBSD to become a far more viable alternative to Windows, and even to Linux to some extent. This is the sort of initiative that we all should support.

Permalink: http://pinderkent.phumblog.com/post/2007/07/shuttleworths_proposed_laptop_useful_for_more_than_just_ubuntu
Share:
Feeds
  • RSS 2.0 Feed
  • Atom 2.0 Feed
Tags
Archives