crossroadsoftheelements.com

[[user:robert_murphey]]

Trace: » robert_murphey

You are here: top » user » robert_murphey

Login

You are currently not logged in!
Enter your authentication credentials below to log in.
You need to have cookies enabled to log in.

Login

Forgotten your password? Get a new one: Send new password

Robert "Exile In Paradise" Murphey

Robert Murphey

Words of Wisdom

The beginning of the universe
Is the mother of all things.
Knowing the mother, on also knows the sons.
Knowing the sons, yet remaining in touch with the mother,
Brings freedom from the fear of death.

Keep your mouth shut,
Guard the senses,
And life is ever full.
Open your mouth,
Always be busy,
And life is beyond hope.

Seeing the small is insight;
Yielding to force is strength.
Using the outer light, return to insight,
And in this way be saved from harm.
This is learning constancy.


Journal

Forward Into The Past

Over the last three months, I have built, installed, cajoled, and crowbarred a pile of junk hardware in my office into a PC capable of running Jnode, a 0.2.x revision all-Java operating system, as its native OS.

The time has come to put my new Jnode PC to work*.

* Work: (v.) Playing games in an emulator.

Getting From 0 to 1

After power-up, and the inescapable BIOS, our first stop is the GRand Unified Bootloader, known as GRUB1). GRUB's mission is to find out what operating system you want, and start it. GRUB comes with a nice, clean menu system, but I wanted more for my new Jnode PC. I wanted eye-candy. Why not show the GRUB logo? I contributed the story2) and steps to build that image, and the splash-enabled GRUB to show it, to the Jnode3) community site.

The first entry of my GRUB menu is simply the OS, version, and build time: Jnode 0.2.6.3821 compiled 2008/02/29. Drop one line and press enter to start Jnode with its full set of plugins.

GRUB with Splash Screen Ready To Boot Jnode Full
Click to enlarge

The Shell

The interesting thing about Jnode is this: Jnode is a 99.999+% pure Java operating system. GRUB loads the Jnode kernel which contains a tiny x86 “nano-kernel” (to connect Jnode to the bare metal) and Jnode's Java™ Virtual Machine. You read it correctly, from BIOS, to bootloader, to JVM, without an intervening general-purpose operating system. Once the Jnode VM starts, it begins loading Java versions of the kinds of software you expect your OS to provide, such as hardware drivers, filesystem modules, and networking stacks. With Jnode, all of those pieces are written in Java.

Here you can see the end of the boot process where Jnode has found my hard drive and CDROM, mounted the EXT2 filesystem on the drive, brought up the loopback interface for networking, and started some pseudo-filesystems in RAM. Total boot time from GRUB to ready-to-work is 34 seconds, for the full plugin set, on a Pentium III 550MHz (Katmai). The last line is the Jnode Shell prompt:

JNode /> _

Jnode is ready to work.

Booted Into The Jnode Shell
Click to enlarge

Where Did I Leave That Work?

For those old enough to remember 16-bit PC operating systems, Jnode's work environment feels a lot like that. You have a capable command-line interface to run more than 100 command line tools, all written in Java, which are loaded as plugins to the Shell and operating system. In Jnode, everything except the nano-kernel and the JVM itself comes as a plugin. Jnode's command line interface comes with a ton of features, including the ability to hit TAB at any point within a command line to see what the next argument should be. Jnode's shell takes you one step deeper than any other shell I have seen. Not sure what the fourth thing to type in the command was? Press a dash and hit the TAB key, and Jnode commands will tell you what they expect next. Jnode's shell includes path completion and history like any modern shell would.

I want to do something useful with my Jnode PC, so why not a game of Spacewar?4) The folks at OverSigma.com 5) provide complete Spacewar kit in the sources directory: PDP1 assembly source code, a PERL macro assembler and tape converter, a Java PDP1b emulator (which works standalone or as an applet, yeah!), and even the user docs to tell you how to play. Kudos! Yes, I think that I will start with that. It took some fiddling (convert text files to UNIX source, fix paths to perl interpreter in scripts) but I was able to build Spacewar from PDP1 source on my dev box. I saved the steps in a build.sh script, and you can see the full work directory in all of its command line glory.

Jnode Shell Lists My Spacewar Build Directory
Click to enlarge

Going Graphical

Even though it was written in 1961, Spacewar is a video game. In fact, its one of the earliest video games, ever, perhaps among the first three. This means our command line interface just cannot do this job. I need to step out of one-dimensional command line land, and into two-dimensional flatland. I need a desktop graphical interface, and Jnode has one. I have two choices, start a graphical program, which causes Jnode to launch the desktop first, or I can launch the desktop on its own, and go from there.

JNode /devices/hda0/Java/PDP1B-Spacewar> startawt

When I finally figured out how to boot Jnode on live hardware6), the first thing I tried was the graphical desktop. The default desktop image shows M.C. Escher's famous 1948 illustration Drawing Hands7). I liked that quite bit, until I ran across a cartoon of Duke8), the Java Mascot, that instantly made me think it should be my desktop background. With GIMP9), I eventually constructed10) my new desktop background. Once the desktop is up, Start → Tools → Console will get me a Jnode Shell within the desktop.

The Jnode Desktop
Click to enlarge

3-2-1 Launch

Once the console starts, I find I am still in the directory I started the Desktop from. I could build a menu item to launch Spacewar directly from the Start tool, but I tend not to use the Start tool in these graphical desktops. Jnode is an operating system built on a Java Virtual Machine. Naturally, Jnode lets you run Java class files as the native executable format. Jnode also includes an editor and the full suite of Java development tools, such as the compiler to turn your source into runnable class files. I like an operating system that comes with its source code, a programming language, and the tools you need to develop it. But first, how about a game of Spacewar?

JNode /devices/hda0/Java/PDP1B-SpaceWar> java pdp1b

Ready For Liftoff
Click to enlarge

Facing Off

Spacewar pits two players in torpedo-armed spaceships again each other, and the forces of nature, simultaneously. Rendered against a real star map (check the source for the real stellar names and positions) the central star's gravity relentless tries to haul you in while a friend tries to do you in. First orders to the loyal crew of the U.S.S.S. Phlogiston? Hard to starboard! Have to “turn and burn” to avoid a fall straight into that star! Then, we deal with a traitorous scum!

The Battle Begins Hard To Starboard!
Click to enlarge Click to enlarge

Closing Thoughts

Once you get your hands on the controls, it becomes clear why this classic endures, even after 47 years, while most modern games disappear in a year. For me, Spacewar now also holds the honor of the first game installed and running on my Jnode desktop PC. I do not know quite how to express the feeling of compiling and running an operating system from a current daily snapshot, to run an emulator, to play game more than a decade older than myself which I compiled from source as well.

About Me

Yes, this is the sort of thing I do for fun.

Robert, At The Altar Of Madness
Click to enlarge
2) GRUB Splash Image How-(Not)-To For My Jnode PC: http://www.jnode.org/node/2357
3) Java New Operating System Development Effort (Jnode): http://Jnode.org
6) Success! Jnode 0.2.5 Booting from Harddisk and EXT2: http://www.jnode.org/node/2350
7) M.C. Escher at Wikipedia: M._C._Escher
9) GNU Image Manipulation Program (GIMP): http://www.gimp.org/
10) New desktop background, “Time To Hack JNode”: http://www.jnode.org/node/2379
· 2008/03/01 23:31 · Robert Murphey · 1 Comment

Through His Eyes

I ran cross a pretty nifty-sounding contest[1] today, to create an image from Einstein's famous E=mc2 equation written on a chalkboard.

You can see the image here: http://www.photoshoptalent.com/images/contests/einstein%20equation/fullsize/sourceimagesmall.jpg

The contest sounded pretty great, and the source image immediately inspired me to create my own entry.

I wondered what Einstein himself might have seen when looking at that chalkboard. Why not galaxies?

So, I was off on a hunt for public domain Hubble images of galaxies and came across a pretty awe-inspiring image of the M47 spiral galaxy: http://hubblesite.org/newscenter/archive/releases/2007/41/image/a/warn/

Some pixel hammering, chiseling, sawing, and sanding later, I had something I felt worthy to enter:

Through His Eyes
Feb 2, 2008, Robert “Exile In Paradise” Murphey

However, I decided not to enter it into the contest, because it was created with “the GIMP”[2] on Linux, not with Photoshop.

[1] Einstein Equation Contest: http://www.photoshoptalent.com/photoshop-contest/1922/einstein-equation.html

[2] GNU Image Manipulation Program GIMP: http://gimp.org/

· 2008/02/02 15:52 · Robert Murphey · 1 Comment

Windows PowersHell

I got a good laugh from an article about Microsoft eating its own dog food by running their domain on their own server software. Good for them. Using their products might make them better. But, I doubt anything they can do, now or in the future, will shake my belief that their best product was Microsoft Basic ©1978.

A variant of MS Basic 1978 was my first “programming” language. I learned it from Radio Shack's “Getting Started With Color Basic” book for the TRS-80 Color Computer. To me, that book is still the epitome of computer instruction. It could teach pre-teen kids to program microcomputers in an era when there was no one else around to ask for help. I still have that book, and its sequel for Extended Color Basic.

In 1978, MS was writing BASIC roms for micros. These ROMS were, for all practical purposes, then entire OS for the machine (I know, I know, add a cartridge, get more OS.) That “OS” had a library of routines in ROM, a screen editor, a command language, and you were good to go. You powered on. BLINK. Instant OS in 1 second or less.

Next comes the IBM PC with BIOS and BASIC ROMs. MS and IBM throw a loadable, upgradeable DOS on top of that. Tools galore, and you can still program it! Then, the BASIC ROM becomes a casualty of the cheaper PC wars. For a while, it was still loadable in DOS as GWBASIC and its like. Finally, BASIC was laid to rest as its strange offspring QBasic began shipping in DOS.

Meanwhile, not to be outdone by Apple and Unix, Microsoft eventually decides a GUI would be a good idea, starting with their Interface Manager, er, Windows 1.x, then the almost stillborn Windows 2.x and by Windows 3.x they almost had one. See History of Microsoft Windows for those of you who thought Windows 3.1 was the first version released.

To me, this was the best of all worlds, in Microsoft's sphere... BIOS starts DOS which had tons of tools by this time from magazine programmers and such. Then DOS can start the GUI if you want to waste the resources or run a Windows-specific program. And, the GUI can still use all of the DOS tools out there. Interface extends OS, and still benefits from it. Coincidentally, this is exactly how Unix and Linux work: GUI-optional.

Then, it all goes wrong: Windows 95. Some well-meaning but dim bulb says “Let's put the cart in front of the workhorse and boot the GUI as the OS! Everyone loves the GUI, right?” The breakage begins. This perverse inversion of the natural order tries (and fails IMO) to say the Interface is the OS, but does NOT have the OS tools built into the Interface to back that statement up. Yet, the politics behind pushing the point removed the fallback tools too. Now we're stuck! Users were too busy with new buttons to notice the OS was killed and replaced by a crippled GUI.

By the way Microsoft, if you ever wondered why everyone began using Linux? Now you know. Windows released in 1995 and Linux begins to gain widespread following in 1995. See the connection?

MS pushes hard for all GUI (in fact, touting the death of DOS and even the keyboard via voice control “any day now”) by writing tons of a bad GUI-only tools for their 32-bit windows line. Hilariously enough, many of the tools were Visual Basic-based. For those who don't know, Microsoft BASIC 1978 begat BASIC-A begat GW-BASIC begat QBASIC begat Visual Basic begat VB.NET. Microsoft BASIC

Meanwhile, as DOS withers on the vine and sees the oncoming clueless newbie train, it wises up, and ESCapes to become a plethora of free and open DOS-like OSes and still under heavy development today.

So, today, while reading an article about the Windows 2008 server and how slow it is, I saw a comment that Windows 2008 comes with “PowerShell” which has scripting and over 130 tools blah blah market speak market speak snore snore.

Scripting and 130 tools, you say? I better switch now to get all that POWER!

But wait, before I do, how much POWER do I have in my SHELL now?

On my Fedora box, if I press a TAB key in the Z-shell, it will try to complete the command or filename for me. Just curious how many tools I had handy, I pressed 'a' and hit TAB.

Let's see... I have only 295 tools that start with 'a'.

Going further and listing the rest of the alphabet, in lower then upper case, would just sledgehammer the point home that Windows PowerShell is more than anemic, it's ridiculous. In fact, I am ridiculing it right now.

So, after more than a decade of working so hard at getting rid of DOS (with batch file scripting!), Microsoft realizes their mistake and begins rowing back downstream where the free DOSes, Unix, Linux have been all along (recently joined by MacOSX too!), steadily building tools of their own that work without a GUI, or with if if you want one.

PowerShell? Whoop-de-do.

If you want a “PowerShell”, I suggest avoiding Windows 2008 and looking elsewhere.

· 2008/01/11 09:15 · Robert Murphey · 0 Comments

Wiki Spammers

It seems my sites have (once again) been targeted again by some wiki spammers (people or bots, who cares).

Discouraging. I'd rather be writing, but maybe that's a pipe dream when attempted on the Internet.

These spammers seem to be link farmers, trying to spread links to their phish/malware sites by automatically loading them anyplace they can write to, and hoping that the search bots will harvest them up.

The sad part is, its not even worth chasing or reporting them, because its all automated from zombie bot-infected computers anyway.

Thanks to e-mail spammers, web banner advertisers, 419 scammers, wiki spammers, phishing sites, malware sites, bot herders, and an ever-growing population of idiots, the Internet seems like an unlivable toxic minefield rather than the greatest communication tool in history.

It says a lot about the future of the species when the most powerful distributed computing system on the planet isn't used to advance the sciences, but is used to pump billions of grammatically incorrect unreadable junk e-mails, instead.

Bravo, monkeys. Good job. Maybe the next inhabitants of the planet can learn from this and do a better job for themselves.

At least I can take comfort in the fact that the Internet will never become self-aware on its own and take over the management of humanity for its own ends.

It can't, and won't, as long as the when the sum intelligence of the constituent parts continues to decrease.

· 2007/10/16 22:27 · Robert Murphey · 0 Comments

Back To Writing

A couple of years ago, I tried an experiment: could I write a journal entry every day?

I managed to write on http://livejournal.com for two years solid.

It was great writing practice, but the experiment failed because I wrote on Livejournal for the wrong reasons. I wrote for my family and friends, hoping they would comment and write back. This could have let me keep in touch with far-flung friends and family, but ultimately ended up with just me writing, and no one writing back.

I have avoided the online journal for a while sense, but have found that the lack of writing encouraged me to fall out of the habit.

So, I am restarting my online journal writing, with an altered purpose.

I have many ideas for articles about a wide variety of topics, and the desire to put them online where others can read and comment if they choose.

This will be that place.

· 2007/10/10 11:35 · Robert Murphey · 0 Comments