Jul 01 2008

Virtualizing OS/2 Warp

Published by Jonathan Wise under Articles

Just for kicks, I dusted off the old OS/2 Warp discs…

OS/2 was supposed to be the next DOS, developed in co-operation between Microsoft and IBM. Microsoft dropped their end of the deal when Windows 3.0 gained popularity. For awhile, and because they’d shared APIs, IBM was able to run Windows apps within OS/2 Warp, but the compatibility plan wasn’t really in their best interests.
IBM did go on to continue to improve on OS/2 with Warp coming out in 1994 — before Windows 95 was out, adding pre-emptive multi-tasking, improved memory management, and a solid networking stack. But by then Microsoft’s FUD was in effect, and most consumers waited for the next version of Windows.
OS/2 did hold a fair bit of ground in banking and in embedded systems (like ATMs) and although its no longer supported by IBM, a product called eCommstation continues its development and technologies.

Alas, it does not work in VMWare, as they long ago decided support wasn’t worth it. Works fine in VirtualPC, however. This guy has some tips, and you can copy the floppy images right off the CD and use them (without conversion) in VirtualPC.
Once I gave up on VMWare (won’t boot past the second floppy, no matter how I configured the VM) this was one of the easier virtual machines I’ve built. Video was decent at SVGA, sound worked pretty well (the installer likes making funky noises.) Still messing with networking.

Hit the jump for some screen shots…

Continue Reading »

No responses yet

Jun 26 2008

Installing NextStep 3.3 on VMWare 6

Published by Jonathan Wise under Articles, Hacks

I’ve been hankering to learn more about the origins of OS X, so I figured the best place to start would be the OS at its core — NextStep (later named OpenStep.)

When Steve Jobs was ousted from Apple, he set out to create a new company that would deliver elite hardware, and a revolutionary operating system. NeXT was started to build powerful hardware and software that would leapfrog the Mac (and everyone else on the market.) They eventually had to kill off the hardware line (after making some very nice, uber-high-end machines) but the software they made changed the industry. It was on a NextStation computer, using the NextStep OS that Tim Berners Lee would invent the World Wide Web, and its the true Object Oriented approach of the OS that many companies have imitated or borrowed.

By the mid-90s Apple was in truly rough shape. Their archaic OS, once the greatest thing on the market, was showing its age, and Apple had tried, and failed (mostly due to mismanagement) to replace it. It was determined that they should buy an existing next-gen OS, and re-build on top of it. After flirting with IBM and BeOS, they settled on a deal with NeXT. A deal that grew until Apple acquired the company, re-acquiring Steve Jobs in the process. He became the iCEO (interim CEO) and the de-facto leader of the company. Existing ideas were rapidly brought over from the Mac onto NextStep/OpenStep, layered on top of its rock-solid BSD Mach microkernel, Object Oriented underpinnings, and a re-vamped version of its graphics layer, was a new Interface, and a Classic emulator to allow old Mac apps to run.

The end product, after many variations, pre-releases, betas, and one or two fairly ugly general releases, was what we know today as Mac OS X. Much of NextStep is still intact, including low-level OS APIs, visual and development concepts, and culture.

If you’re interested in getting NextStep up and running in VMWare (I’m using a Windows Vista 64-Bit Host OS, but these steps should work with most versions of VMWare — including Fusion) you’ll need to find an ISO of the NextStep OS somewhere, and maybe these steps will help you…

Continue Reading »

One response so far

May 07 2008

Controlling a Hyper-V Server with a Remote Client

Published by Jonathan Wise under Hacks

In our organization, we’re prototyping rolling out a number of Hyper-V servers, possibly even moving to headless development servers. Microsoft does provide a client that allows you to manage them remotely, but its in a very pre-release state right now. It only works with Vista. Here’s some tips and a best practice or two we’ve settled on for getting started. These links all come from the same guy who seems to know what he’s talking about:

The Client requires that the workstation have a user configured with identical credentials to a corresponding server user. Since our plan involves different developers connecting to different servers, we needed to standardize:

  • Each server has an account called “hypervadmin”
  • Each client has an account called “hypervadmin”
  • Their password’s are the same

Unfortunately, at least in this version, the accounts must be administrators on both the client and server boxes.

The problem then becomes what user to work under on the workstation. Each developer needs to be logged into their domain account, and its not acceptable for them to have to log out and re-log in as “hypervadmin” every time they want to tweak something on a server. And of course Vista has removed the “Run As…” context menu item from Windows Explorer, replacing it with the not-nearly-as-useful “Run As Administrator” menu item.

So, here’s the silver bullet:
runas /env /user:hypervadmin "mmc \"%ProgramFiles%\Hyper-V\virtmgmt.msc\""

This little command, run at the command line, from the “Run…” dialog, or via a Shortcut (where you can customize the appearance of the command window) will allow you to “Run As…” a specific MMC snap-in as an arbitrary user in Windows Vista.

I pulled it together in a batch file that made it look a little prettier, put it in a nice Shortcut and dropped it in my Start Menu. Now I can connect to any of our Hyper-V servers without having to switch user’s on my Vista box.

No responses yet

Nov 05 2007

Experiments in Virtualization

Published by Jonathan Wise under Articles

Virtualization is so hot right now… (although it can’t be that hot, because my spell-checker doesn’t even recognize it as a word.)

The concept is that as hardware gets faster and faster, we’ve actually reached the point of diminishing returns on all but the most grueling of tasks (HD Video rendering is the only other thing I’ve seen that really taxes a modern PC.) Now we’ve got hardware that can support not just one environment without breaking a sweat, but 2 or 3.

At work we have a server running VMWare’s ESX Server that’s currently running 16 “virtual” computers at once. None of this is that new — what is new is the way processors are being built with this kind of thing in mind. Intel’s Core2Duo is made for virtualization, and nothing proved this to me faster than Parallels Workstation.

I have a fairly recent Dell Laptop, based on a the Centrino chipset — essentially a P4, at 1.3GHz with 2GB of RAM. It runs Windows and VisualStudio adequately. For awhile, I was given the use of a MacBook Pro, running a CoreDuo. The thing screamed running its native OS — OS X 10.4, but when I booted up Windows XP inside a Parallels virtual machine, I was astonished to find that Windows actually ran faster virtualized on my MacBook then it did on my Dell. I used it for my day-to-day development, rendering video in one machine, while compiling code in another. And I was sold.

A colleague of mine has taken this concept to its logical extreme, and I won’t pretend to have his knowledge on the subject. Rather, if you’re interested, you should read his posts.

  • Build Machine Virtualization discusses how he eliminated the need for frequent hardware replacement and streamlined our company’s build process using VMWare.
  • Development Machine Virtualization discusses how he’s created specific environments for different development tasks, while still adhering to our I.T. departments onerous rules.

The latter article is the one I’d like to build on with my own thoughts here. My set-up, briefly…

I’m using a desktop computer — not a laptop, as my afore-mentioned Dell left a bad taste in my mouth. The desktop is a Dell as well, since I.T. gives us no other choices, but despite being as ugly as sin cosmetically, its a very nice machine:

Processor: Intel Core2Duo @ 2.4Ghz with a 1Ghz FSB
RAM: 4GB @ 800Mhz (although Windows XP only recognizes 3GB)
Hard Drive: 250GB SATA II 7200RPM
Operating System: Windows XP SP2 - I.T. Core Load

The real beauty of this set-up is that the OS referred to above, which I consider to be less than satisfactory (at the least, they should have used Windows XP 64-Bit), really doesn’t matter — it could even be Ubuntu. Its only the host OS. As Shawn recommends, I’m running a very light-weight collection of apps, that I’m happy to let I.T. manage for me. I’ve got Windows and Office, plus a messaging client and FireFox, and various Remote Desktop/VNC clients. That’s it. Add VMWare, and from here, I can have the world…

Currently I’m running two “virtual” computers running Windows XP, one running Windows Server 2003, and one running Mac OS X…

My Development VM gets 1GB of RAM, and has a 50GB pre-allocated virtual hard drive. I took a snap-shot when I started, but I realised later I could have achieved the same thing, just by copying the VM directory off to an external archive hard drive. Either way, if anything gets messed up in Windows (which, lets admit, happens fairly frequently) I can just revert the whole system to a working state with a couple mouse clicks.

My Test VM gets 512MB of RAM, more if it needs it, and a 15GB growable hard drive. This is a “clean” install of Windows XP, updated with nothing installed on it. I run the latest version of the software I’m developing on this.
Whenever I want to test how a specific build of my software behaves when installed on a customer’s computer, I can snapshot back to its “clean” state, and run the Setup program.

My Server VM is a machine I took from our Green Bay office while there. They had a virtual server configured with a replica of a customer’s configuration, and all I had to do was copy it to a portable hard drive and carry it with me. It has a pre-allocated hard drive, and gets 512MB of RAM — more if needed.

My OS X VM lets me run Mail.app (my preferred mail client), PhotoShop and other nice programs that only Mac has to offer. It should be noted that performance on this machine is not stellar — but that’s only due to a lack of driver support, since Virtualizing Mac OS X is not supported.

The coolest of these virtual machines is the Development VM — it was made from an actual physical computer. A little app called VMWare Converter can run on a machine, and create a VM out of it. So doing, I was able to switch from my old computer to my new one in a matter of hours, instead of the day or two it normally takes to get Windows, VisualStudio + Orcas, SQL Client Tools, .NET 1.0-3.0, and TortoiseSVN up and running on a fresh box.

The performance on any 3 of these machines running at the same time is equal-to, or better-than a physical computer only a year or two old. With two monitors, and an RDP connection to another headless server I have running behind me, I can juggle 5 computers at once, (6 if you count the host) with more than adequate performance.

I’ll point you again to Shawn’s articles if the benefits of this set-up aren’t self-evident. I was initially a little unsure that the VMs would be responsive enough for my daily use, but VMWare and the Core2Duo have proven to be a stellar team…

6 responses so far