2007-03-18

Compaq Presario 2100US & Ubuntu Linux

The Radeon Mobility graphics chipset in Compaq Presario 2100US notebooks seems to have some major quirks with the "ati" X video driver. I've finally managed to find a configuration that works perfectly and enables 3D graphics support. The configuration also works with the Beryl compositor. This is tested with Ubuntu Linux 7.04.

Here is the xorg.conf configuration file I am using.

Labels: , , , , , ,

2006-05-16

Sun + Ubuntu = Aha!

About 6 months ago I commented in OpenSolaris + Ubuntu = Nexenta:
I think that Sun should take a long hard look at what Nexenta is doing and strongly consider pursuing a similar course [with Solaris]. Debian truly is the way forward. Debian provides a rock upon which all other operating systems can be built.
Perhaps that was a moment of prescience on my part. Or maybe I'm overly optimistic right now... But today Sun seems very friendly with Mark Shuttleworth, the founder of Ubuntu. Sun CEO Jonathan Schwartz and Mark Shuttleworth were on stage together at JavaONE and announced a number of important things. ZDNet reported this comment by Jonathan Schwartz,
The odds are quite good that we will be aggressively supporting the work that Ubuntu is doing...In the hardware we ship, I don't want to be Solaris only, because then I will just define my market to be smaller than the opportunity. I think you should expect to see more of the relationship, and stay tuned.
A curious project titled Nexenta was created in Canonical's Launchpad by Mark Shuttleworth a while back... Maybe it's nothing... Maybe it's something...

It's been my impression for quite a while that the Ubuntu June 2006 LTS (aka Dapper Drake) release would support the Sun Niagara hardware platform. There are mentions here or there from people working on it. Launchpad shows that SPARC support is implemented in some fashion in Ubuntu. I don't think the intention would be hum-drum SPARC support. Enthusiasm for Linux on Sun SPARC seems to have been pretty dead for the last 3-4 years. Not that it wouldn't be welcomed by many SPARC computer owners. In the past, Intel and AMD have been so much cheaper and better supported by Linux. Installing Linux on SPARC is about as painful as installing Solaris on Intel. The hardware driver support is abysmal in either case. Niagara is a different beast, though. Especially if Sun intends to help promote Ubuntu on Niagara. Niagara and Ubuntu could become a very compelling combination indeed.

But, wait, I said Linux tends to have lousy support for Sun SPARC hardware. But Nexenta is Ubuntu with a Solaris kernel... Hey, what if...Ubuntu could use the Solaris kernel and hardware drivers on SPARC (and thus Niagara). Oooh, now there's a mind bender. Keep your eyes peeled for that one... If my radar is truly working then that's exactly the sort of thing I'd expect to see. Maybe not for another release or two but certainly well before the next Ubuntu LTS (long term support) cycle begins.

Labels: , ,

2006-05-12

Special Characters on Linux and UNIX Systems: The Compose Key

Have you ever wanted to spell jalapeño correctly but don't know how? Maybe you'd like to spell dæmon a little differently? What you want is the Compose Key!

The right hand meta key is often set as the Compose key. The meta keys often have a "Windows" logo on PC keyboards. UNIX system keyboards (e.g. Fujitsu Happy Hacking Keyboard) have a diamond symbol on the meta keys. Sun Type 5 keyboards also have a separate Compose key to the right of the right meta key. Compose works with all X11 applications.

MacOS X uses the right Alt/Option key as its Compose key for X11 applications. Non-X11 applications use dead key combinations unique to MacOS X and its predecessor NeXT. (See: Apple Technical Note 2056)

Output Keys
Description



# ++ number sign



[ (( left bracket



] )) right bracket


} )- left brace



{ -( right brace



« << left guillemot


» >> right guillemot


| vl vertical line "bar"

¸ ,, cedilla



¨ "" diaeresis



¡ !! inverted exclamation point
¿ ?? inverted question mark

¢ c/ US cents



£ l- UK pounds sterling


¥ y= Japanese Yen



¤ xo currency



§ s! section



p! paragraph



© CO copyright



® RO registered trademark



non-breaking space (space space)
· .^ middle dot, centered period
± +- plus-minus



¬ -, not sign



­
-- minus/hyphen



÷ -: division



× xx multiplication


¹ ^1 1 superior



² ^2 2 superior



³ ^3 3 superior



° 0^ degrees



µ /u mu (Greek letter, Micro, 10^-6)
¯ -^ macron




ª a_ feminine ordinal


º o_ masculine ordinal


ç c, c cedilla



Ç C, C cedilla



đ d- lower case eth


Đ D- upper case eth


ß ss sharp s



þ th lower case thorn


Þ TH upper case thorn


œ oe oe




Œ OE OE




æ ae ae




Æ AE AE




ø o/ o oblique



Ø O/ O oblique



à a` a grave



À A` A grave



ò o` o grave



Ò O` O grave



è e` e grave



È E` E grave



ù u` u grave



Ù U` U grave



ì i` i grave



Ì I` I grave



á a' a acute



Á A' A acute



ó o' o acute



Ó O' O acute



é e' e acute



É E' E acute



ú u' u acute



Ú U' U acute



í i' i acute



Í I' I acute



ý y' y acute



Ý Y' Y acute



â a^ a circumflex



 A^ A circumflex



ô o^ o circumflex



Ô O^ O circumflex



ê e^ e circumflex



Ê E^ E circumflex



û u^ u circumflex



Û U^ U circumflex



î i^ i circumflex



Î I^ I circumflex



ã a~ a tilde



à A~ A tilde



õ o~ o tilde



Õ O~ O tilde



ũ u~ u tilde



Ũ U~ U tilde



ñ n~ n tilde



Ñ N~ N tilde



ä a" a diaeresis



Ä A" A diaeresis



ö o" o diaeresis



Ö O" O diaeresis



ë e" e diaeresis



Ë E" E diaeresis



ü u" u diaeresis



Ü U" U diaeresis



ï i" i diaeresis



Ï I" I diaeresis



ÿ y" y diaeresis



Ÿ Y" Y diaeresis



å a* a ring



Å A* A ring



ů u* u ring



Ů U* U ring



Labels: , , ,

2006-05-03

Why is Windows Buggy?

Have you ever wondered why there are so many security bugs and viruses on Windows? Let me posit for a moment that it's because people who write software for Windows are swimming in a sea of incomprehensibility. Microsoft often apologizes with "Windows is more flexible than UNIX" when they compare the two. Right, it's more flexible. Of course it is. If by some chance you can actually understand how any of it works.

Wait, what is UNIX?

To be clear, UNIX was originally an operating system developed by AT&T primarily in the 1960s-1970s. Today UNIX is a blueprint for how to create an operating system. There are many operating systems based on the UNIX System in wide spread use. UNIX Systems run a majority of the Internet, for example. The most popular systems are Linux, Apple Mac, and Sun Solaris. These systems are all very similar to each other. You can take a program written for one of them and use it on the others typically without any modifications.

There are generally two ways to do everything in the modern programming world: Microsoft's Way or Everyone Else's Way. Everyone Else generally falls under the umbrella of UNIX. Back in the 1980s Microsoft abandoned UNIX and decided that they would create their own beautiful yet incomprehensible way of doing everything. Everyone else stuck with the UNIX way of doing things. Why? UNIX systems represent everything in a relatively simple and well understood manner which hasn't changed much since hippies roamed the Earth.

Creating a Pipe

Let's take the example of a simple pipe. For the non-programmers out there a pipe is exactly what it sounds like: it's a pipe. To simplify, if you shove the text "Hello over there!" in one end of the pipe it comes out the other end. A pipe enables two separate computer programs to talk to each other.

I think even the non-programmers will see what I mean when I say that UNIX is easier to understand. Here are two examples of the same functionality from Microsoft's UNIX Application Migration Guide

UNIX Pipe

int main()
{
int res = mkfifo("/tmp/my_fifo", 0777);

if (res == 0)
printf("FIFO created\n");
exit(EXIT_SUCCESS);
}

Windows Pipe


int main()
{
BOOL fConnected;
DWORD dwThreadId;
HANDLE hPipe, hThread;
LPTSTR lpszPipename = "\\\\.\\pipe\\mynamedpipe";

// The following is an approximation of the mode bits used
// in the UNIX example. Will suffice until verified. 0777
hPipe = CreateNamedPipe(
lpszPipename, // pipe name
PIPE_ACCESS_DUPLEX, // read/write access
PIPE_TYPE_MESSAGE | // message type pipe
PIPE_READMODE_MESSAGE | // message-read mode
PIPE_WAIT, // blocking mode
PIPE_UNLIMITED_INSTANCES, // max. instances
BUFSIZE, // output buffer size
BUFSIZE, // input buffer size
PIPE_TIMEOUT, // client time-out
NULL); // no security attribute

if (hPipe != INVALID_HANDLE_VALUE)
printf("FIFO created\n");
exit(EXIT_SUCCESS);
}


Notice how the Windows code needed a million comments to explain what in the world all that nonsense jargon was doing? (Comments are everything after a // in the above code.) The UNIX code was simply "mkfifo", a filename and some easily learnable security bits (0777). Simple enough that it needs no explanation.

Also telling is that Microsoft's UNIX example used 0777. 0777 disables all security allowing anything to access the fifo. This is just stupid. However it is understandable for a Windows programmer to do this out of habit. Windows programming interfaces don't have standardized security methods. Nearly every function has its own unique way of dealing with security. So you can't easily remember how security works in any given situation. So it's just easier to disable security and hope everything works out.

UNIX is a trademark of The Open Group. Linux is a trademark of Linus Torvalds. Mac is a trademark of Apple. Somehow, Windows is a trademark of Microsoft. Trademark is a trademark of trademark. And so on.

Labels: ,

2005-11-06

OpenSolaris + Ubuntu = Nexenta

For years I've always bought the latest Sun Solaris operating system release hoping it would be better than the last. It doesn't even seem to gradually get better. It seems like every improvement they make is offset by some other part which has become worse.

So, they finally decided to infuse some new blood into the system by releasing most of the system, as OpenSolaris, under their CDDL open source license. CDDL is not exactly a very good open source license, mind you. But does qualify as open source nonetheless. I can assure you that I won't be abandoning my Linux systems for OpenSolaris. But I am very glad to see Solaris finally being improved in a way that makes sense.

Aside from the OpenSolaris project itself there is a recent spin-off called Nexenta. Nexenta seems to me to be the perfect solution to the problems with Solaris. Nexenta is based on Ubuntu Linux but they have replaced the Linux kernel with the OpenSolaris kernel. Ubuntu Linux is derived from the Debian Universal Operating System. Debian is based on the GNU system. Debian doesn't mandate any specific kernel or applications although it currently favors Linux. Instead Debian is built around the idea of alternatives. You can swap out components to fit your business or personal needs around this basic GNU system. As such, Debian currently provides Linux, FreeBSD, NetBSD, and GNU Hurd kernels and roughly 18,000 applications to run on them. If Nexenta succeeds then Debian would provide a fully functional OpenSolaris kernel in a future release. Nexenta has simply built packages for the OpenSolaris kernel and system utilities which integrate into the Debian OS.

I think that Sun should take a long hard look at what Nexenta is doing and strongly consider pursuing a similar course. Debian truly is the way forward. Debian provides a rock upon which all other operating systems can be built.

This is idea of building a GNU system on top of Solaris is nothing new, really. Indeed, before Linux, much of GNU itself was built on SunOS and Solaris. But now the whole process can be legal and formalized into outside projects. Since the late 1980s nearly everyone who purchased a Sun system would go through a several day long ritual of augmenting/replacing the Sun software with GNU software. To the extent that Sun eventually started including much of GNU on companion CDs. Many of the GNU utilities are superior to Sun's own software. Sun has areas where they excel. However, they are but a few people in a vast sea of developers working on this sort of software. Most of the Solaris applications have become outdated as they focused on niche areas. Meanwhile, the rest of the world has continued developing, refining and often replacing those applications with better versions.

Sun has promised great things by moving their desktop away from CDE (Common Desktop Environment) on to the newer GNOME. Solaris 10 included GNOME as its default work environment. Or, at least enough of GNOME to make you scream, "What were they thinking when they did this!" Sun neglected to port many important features from CDE to GNOME. Worse, GNOME on Solaris 10 had nearly all of the good GNOME software replaced with lousy Sun Java software that barely even functioned at all. You might wait several minutes for a simple note pad or calculator to load as all of the Java infrastructure bootstrapped itself behind the scenes. The reason they did this, I've heard them claim, is to delay porting those programs to Solaris and/or their SPARC CPU. They wanted to get the infrastructure correct before they attempted to port the applications.

But I think that misses the point. They shouldn't have to port thousands of applications to Solaris. Nearly all of these applications are written according to POSIX, Single UNIX Specification, and Linux Standard Base. These are ISO standards, like it or not. Solaris should be changed to support those standards and then all of the applications will work mostly unmodified. You might need little tweaks here or there. And if those are common tweaks across many applications then a library can be built to abstract the differences.

And this is exactly the sort of environment Debian provides. The net result is that, with few exceptions, you can run the same program from the same Debian package on any system regardless of which kernel is in use. There is no porting required at all because all of the various kernels have binary-compatible programming interfaces. In effect one program runs everywhere.

I do wish Sun could find some way to release Solaris under the GPL license but perhaps that will come with time. It's not as simple as one might think to release something under GPL. They probably don't even have sufficient legal rights to the code to make that leap. However, perhaps with time, problematic code can be replaced. Maybe it never will. Getting the ideas behind the code out into the public mind is a great start.

Labels: ,

2005-01-26

Son of Slowaris

So Sun claims they will be releasing (portions of) Solaris under an Open Source license. Good for them. However, I predict that they will be unable to release enough of the code under an Open Source license to provide a usable system in the near term. In a few years they might be able to build up a usable system.

What I'm saying is that whatever eventually comes out of OpenSolaris isn't going to be Solaris. And that isn't a bad thing. Although I believe that those developer hours are wasted when they could be spent improving Linux. Linux has vast industry support and is missing a very small number of features found in Solaris. Holding on to their lofty dreams of domination will push them into obsolescence along with Solaris itself.

Linux and GNU are about freedom of choice, vendor independence, and creating the universal operating system. I hope people don't confuse those points with publishing source code and providing unique tools to make developer and administrator lives easier. Open access to source code is vitally important but not if it means you are forever trapped in one vendor's environment.

Labels: ,