<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Vmware on TurboVision</title>
    <link>https://turbovision.in6-addr.net/tags/vmware/</link>
    <description>Recent content in Vmware on TurboVision</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Tue, 21 Apr 2026 14:06:12 +0000</lastBuildDate>
    <atom:link href="https://turbovision.in6-addr.net/tags/vmware/index.xml" rel="self" type="application/rss&#43;xml" />
    
    
    
    <item>
      <title>Early VMware Betas on a Pentium II: When Windows NT Ran Inside SuSE</title>
      <link>https://turbovision.in6-addr.net/linux/early-vmware-betas-on-a-pentium-ii-when-windows-nt-ran-inside-suse/</link>
      <pubDate>Fri, 03 Apr 2009 00:00:00 +0000</pubDate>
      <lastBuildDate>Fri, 03 Apr 2009 00:00:00 +0000</lastBuildDate>
      <guid>https://turbovision.in6-addr.net/linux/early-vmware-betas-on-a-pentium-ii-when-windows-nt-ran-inside-suse/</guid>
      <description>&lt;p&gt;Some technical memories do not fade because they were elegant. They stay because they felt impossible at the time.&lt;/p&gt;
&lt;p&gt;For me, one of those moments happened on a trusty Intel Pentium II at 350 MHz: early VMware beta builds on SuSE Linux, with Windows NT running inside a window. Today this sounds normal enough that younger admins shrug. Back then it felt like seeing tomorrow leak through a crack in the wall.&lt;/p&gt;
&lt;p&gt;This is not a benchmark article. This is a field note from the era when virtualization moved from &amp;ldquo;weird demo trick&amp;rdquo; to &amp;ldquo;serious operational tool,&amp;rdquo; one late-night experiment at a time.&lt;/p&gt;
&lt;h2 id=&#34;before-virtualization-felt-practical&#34;&gt;Before virtualization felt practical&lt;/h2&gt;
&lt;p&gt;In the 90s and very early 2000s, common service strategy for small teams was straightforward:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;one service, one box, if possible&lt;/li&gt;
&lt;li&gt;maybe two services per box if you trusted your luck&lt;/li&gt;
&lt;li&gt;&amp;ldquo;testing&amp;rdquo; often meant touching production carefully and hoping rollback was simple&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Hardware was expensive relative to team budgets, and machine diversity created endless compatibility work. If you needed a Windows-specific utility and your core ops stack was Linux, you either kept a separate Windows machine around or you dual-booted and lost rhythm every time.&lt;/p&gt;
&lt;p&gt;Dual-boot is not just inconvenience. It is context-switch tax on engineering.&lt;/p&gt;
&lt;h2 id=&#34;the-first-time-nt-booted-inside-linux&#34;&gt;The first time NT booted inside Linux&lt;/h2&gt;
&lt;p&gt;The first successful NT boot inside that SuSE host is still vivid:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU fan louder than it should be&lt;/li&gt;
&lt;li&gt;CRT humming&lt;/li&gt;
&lt;li&gt;disk LED flickering in hard, irregular bursts&lt;/li&gt;
&lt;li&gt;my own disbelief sitting somewhere between curiosity and panic&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I remember thinking, &amp;ldquo;This should not work this smoothly on this hardware.&amp;rdquo;&lt;/p&gt;
&lt;p&gt;Was it fast? Not by modern standards. Was it usable? Surprisingly yes for admin tasks, compatibility checks, and software validation that previously required physical machine juggling.&lt;/p&gt;
&lt;p&gt;The emotional impact mattered. You could feel a new operations model arriving:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;isolate legacy dependencies&lt;/li&gt;
&lt;li&gt;test risky changes safely&lt;/li&gt;
&lt;li&gt;snapshot-like rollback mindset&lt;/li&gt;
&lt;li&gt;consolidate lightly loaded services&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A new infrastructure model suddenly had a shape.&lt;/p&gt;
&lt;h2 id=&#34;why-this-mattered-to-linux-first-geeks&#34;&gt;Why this mattered to Linux-first geeks&lt;/h2&gt;
&lt;p&gt;For Linux operators in that 1995-2010 transition, virtualization solved very specific pain:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;keep Linux as host control plane&lt;/li&gt;
&lt;li&gt;run Windows-only dependencies without dedicating separate hardware&lt;/li&gt;
&lt;li&gt;reduce &amp;ldquo;special snowflake server&amp;rdquo; count&lt;/li&gt;
&lt;li&gt;rehearse migrations without touching production first&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was not ideology. It was practical engineering under budget pressure.&lt;/p&gt;
&lt;h2 id=&#34;the-machine-constraints-made-us-better-operators&#34;&gt;The machine constraints made us better operators&lt;/h2&gt;
&lt;p&gt;Running early virtualization on a Pentium II/350 forced discipline:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;memory was finite enough to hurt&lt;/li&gt;
&lt;li&gt;disk throughput was visibly limited&lt;/li&gt;
&lt;li&gt;poor guest tuning punished host responsiveness immediately&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You learned resource budgeting viscerally:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;host must remain healthy first&lt;/li&gt;
&lt;li&gt;guest allocation must reflect actual workload&lt;/li&gt;
&lt;li&gt;disk layout and swap behavior decide stability&lt;/li&gt;
&lt;li&gt;&amp;ldquo;just add RAM&amp;rdquo; is not always available&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These constraints built habits that still pay off on modern hosts.&lt;/p&gt;
&lt;h2 id=&#34;early-host-setup-principles-that-worked&#34;&gt;Early host setup principles that worked&lt;/h2&gt;
&lt;p&gt;On these older Linux hosts, stability came from a few rules:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;keep host services minimal&lt;/li&gt;
&lt;li&gt;reserve memory for host operations explicitly&lt;/li&gt;
&lt;li&gt;use predictable storage paths for VM images&lt;/li&gt;
&lt;li&gt;separate experimental guests from critical data volumes&lt;/li&gt;
&lt;li&gt;monitor load and I/O wait, not just CPU percentage&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;A conceptual host prep checklist looked like:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ ] host kernel and modules known-stable for your VMware beta build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ ] enough free RAM after host baseline services start
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ ] dedicated VM image directory with free-space headroom
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ ] swap configured, but not treated as performance strategy
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[ ] console access path tested before heavy experimentation&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;None of this is glamorous. All of it prevents lockups and bad nights.&lt;/p&gt;
&lt;h2 id=&#34;the-nt-guest-use-cases-that-justified-the-effort&#34;&gt;The NT guest use cases that justified the effort&lt;/h2&gt;
&lt;p&gt;In our environment, Windows NT guests were not vanity installs. They handled concrete compatibility needs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;testing line-of-business tools that had no Linux equivalent&lt;/li&gt;
&lt;li&gt;validating file/print behavior before mixed-network cutovers&lt;/li&gt;
&lt;li&gt;running legacy admin utilities during migration projects&lt;/li&gt;
&lt;li&gt;reproducing customer-side issues in a controlled sandbox&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This meant less dependence on rare physical machines and fewer risky &amp;ldquo;test in production&amp;rdquo; moments.&lt;/p&gt;
&lt;h2 id=&#34;performance-truth-no-miracles-but-enough-value&#34;&gt;Performance truth: no miracles, but enough value&lt;/h2&gt;
&lt;p&gt;Let us be honest about the period hardware:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;boot times were not instant&lt;/li&gt;
&lt;li&gt;disk-heavy operations could stall&lt;/li&gt;
&lt;li&gt;GUI smoothness depended on careful expectation management&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yet the value proposition still won because the alternative was worse:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;more hardware to maintain&lt;/li&gt;
&lt;li&gt;slower testing loops&lt;/li&gt;
&lt;li&gt;higher migration risk&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In operations, &amp;ldquo;fast enough with isolation&amp;rdquo; often beats &amp;ldquo;native speed with fragile process.&amp;rdquo;&lt;/p&gt;
&lt;h2 id=&#34;snapshot-mindset-before-snapshots-were-routine&#34;&gt;Snapshot mindset before snapshots were routine&lt;/h2&gt;
&lt;p&gt;Even with primitive feature sets, virtualization changes how we think about change risk:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;make copy/backup before risky config change&lt;/li&gt;
&lt;li&gt;test patch path in guest clone first when feasible&lt;/li&gt;
&lt;li&gt;treat guest image as recoverable artifact, not sacred snowflake&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This was the beginning of infrastructure reproducibility culture for many small teams.&lt;/p&gt;
&lt;p&gt;You can draw a straight line from these habits to modern immutable infrastructure ideas.&lt;/p&gt;
&lt;h2 id=&#34;incident-story-the-host-freeze-that-taught-priority-order&#34;&gt;Incident story: the host freeze that taught priority order&lt;/h2&gt;
&lt;p&gt;One weekend we overcommitted memory to a guest while also running heavy host-side file operations. Result:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;host responsiveness collapsed&lt;/li&gt;
&lt;li&gt;guest became unusable&lt;/li&gt;
&lt;li&gt;remote admin path lagged dangerously&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We recovered without data loss, but it changed policy immediately:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;host reserve memory threshold documented and enforced&lt;/li&gt;
&lt;li&gt;guest profile templates by workload class&lt;/li&gt;
&lt;li&gt;heavy guest jobs scheduled off peak&lt;/li&gt;
&lt;li&gt;emergency console procedure printed and tested&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Virtualization did not remove operations discipline. It demanded better discipline.&lt;/p&gt;
&lt;h2 id=&#34;why-early-vmware-felt-like-cool-as-hell&#34;&gt;Why early VMware felt like &amp;ldquo;cool as hell&amp;rdquo;&lt;/h2&gt;
&lt;p&gt;The phrase is accurate. Seeing NT inside SuSE on that Pentium II was cool as hell.&lt;/p&gt;
&lt;p&gt;But the deeper excitement was not novelty. It was leverage:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;one host, multiple controlled contexts&lt;/li&gt;
&lt;li&gt;faster validation cycles&lt;/li&gt;
&lt;li&gt;safer migration experiments&lt;/li&gt;
&lt;li&gt;better utilization of constrained hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It felt like getting extra machines without buying extra machines.&lt;/p&gt;
&lt;p&gt;For small teams, that is strategic.&lt;/p&gt;
&lt;h2 id=&#34;from-experiment-to-policy&#34;&gt;From experiment to policy&lt;/h2&gt;
&lt;p&gt;By the late 2000s, what began as experimentation became policy in many shops:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;new service proposals evaluated for virtual deployment first&lt;/li&gt;
&lt;li&gt;legacy service retention handled via contained guest strategy&lt;/li&gt;
&lt;li&gt;test/staging environments built as guest clones where possible&lt;/li&gt;
&lt;li&gt;consolidation planned with explicit failure-domain limits&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The &amp;ldquo;limit&amp;rdquo; part matters. Over-consolidation creates giant blast radii. We learned to balance efficiency and fault isolation deliberately.&lt;/p&gt;
&lt;h2 id=&#34;linux-host-craftsmanship-still-mattered&#34;&gt;Linux host craftsmanship still mattered&lt;/h2&gt;
&lt;p&gt;Virtualization did not excuse sloppy host administration. It amplified host importance.&lt;/p&gt;
&lt;p&gt;Host failures now impacted multiple services, so we tightened:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;patch discipline with maintenance windows&lt;/li&gt;
&lt;li&gt;storage reliability checks and backups&lt;/li&gt;
&lt;li&gt;monitoring for host + guest layers&lt;/li&gt;
&lt;li&gt;documented restart ordering&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A clean host made virtualization feel magical.
A messy host made virtualization feel cursed.&lt;/p&gt;
&lt;h2 id=&#34;the-migration-connection&#34;&gt;The migration connection&lt;/h2&gt;
&lt;p&gt;Virtualization became a bridge tool in service migrations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;run legacy app in guest while rewriting surrounding systems&lt;/li&gt;
&lt;li&gt;test domain/auth changes against realistic guest snapshots&lt;/li&gt;
&lt;li&gt;stage cutovers with rollback confidence&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This reduced pressure for immediate rewrites and gave teams time to modernize interfaces safely.&lt;/p&gt;
&lt;p&gt;In that sense, virtualization and migration strategy are the same conversation.&lt;/p&gt;
&lt;h2 id=&#34;economic-impact-for-small-teams&#34;&gt;Economic impact for small teams&lt;/h2&gt;
&lt;p&gt;In budget-constrained environments, early virtualization offered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;hardware consolidation&lt;/li&gt;
&lt;li&gt;lower power/space overhead&lt;/li&gt;
&lt;li&gt;faster provisioning for test scenarios&lt;/li&gt;
&lt;li&gt;reduced dependency on old physical hardware&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It was not &amp;ldquo;free.&amp;rdquo; It was cheaper than the alternative while improving flexibility.&lt;/p&gt;
&lt;p&gt;That is a rare combination.&lt;/p&gt;
&lt;h2 id=&#34;lessons-that-remain-true-in-2009&#34;&gt;Lessons that remain true in 2009&lt;/h2&gt;
&lt;p&gt;Writing this in 2009, with virtualization now far less exotic, the lessons from that Pentium II era remain useful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;constrain resource overcommit with explicit policy&lt;/li&gt;
&lt;li&gt;protect host health before guest convenience&lt;/li&gt;
&lt;li&gt;treat VM images as operational artifacts&lt;/li&gt;
&lt;li&gt;document recovery paths for host and guests&lt;/li&gt;
&lt;li&gt;use virtualization to reduce migration risk, not to hide poor architecture&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The tools got better. The principles did not change.&lt;/p&gt;
&lt;h2 id=&#34;a-practical-starter-checklist&#34;&gt;A practical starter checklist&lt;/h2&gt;
&lt;p&gt;If you are adopting virtualization in a small Linux shop now:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;define host resource reserve policy&lt;/li&gt;
&lt;li&gt;classify guest workloads by criticality&lt;/li&gt;
&lt;li&gt;put VM storage on monitored, backed-up volumes&lt;/li&gt;
&lt;li&gt;script basic guest lifecycle tasks&lt;/li&gt;
&lt;li&gt;test host failure and guest recovery path quarterly&lt;/li&gt;
&lt;li&gt;keep one plain-text architecture map updated&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Do this and virtualization becomes boringly useful, which is exactly what operations should aim for.&lt;/p&gt;
&lt;h2 id=&#34;a-note-on-nostalgia-versus-engineering-value&#34;&gt;A note on nostalgia versus engineering value&lt;/h2&gt;
&lt;p&gt;It is easy to romanticize that era, but the useful takeaway is not nostalgia. The useful takeaway is method: use constraints to sharpen design, use isolation to reduce risk, and use repeatable host hygiene to make experimental technology production-safe.&lt;/p&gt;
&lt;p&gt;If virtualization teaches nothing else, it teaches this: clever demos are optional, operational clarity is mandatory.&lt;/p&gt;
&lt;h2 id=&#34;closing-memory&#34;&gt;Closing memory&lt;/h2&gt;
&lt;p&gt;I still remember that Pentium II tower: beige case, 350 MHz label, fan noise, and the first moment NT desktop appeared inside a Linux window.&lt;/p&gt;
&lt;p&gt;It looked like a trick.&lt;br&gt;
It became a method.&lt;/p&gt;
&lt;p&gt;And for many of us who lived through the 90s-to-internet transition, that method made the next decade possible.&lt;/p&gt;
&lt;p&gt;Related reading:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://turbovision.in6-addr.net/retro/linux/storage-reliability-on-budget-linux-boxes/&#34;&gt;Storage Reliability on Budget Linux Boxes: Lessons from 2000s Operations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://turbovision.in6-addr.net/retro/linux/migrations/from-mailboxes-to-everything-internet-part-3-identity-file-services-and-mixed-networks/&#34;&gt;From Mailboxes to Everything Internet, Part 3: Identity, File Services, and Mixed Networks&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://turbovision.in6-addr.net/retro/linux/migrations/from-mailboxes-to-everything-internet-part-4-perimeter-proxies-and-the-operations-upgrade/&#34;&gt;From Mailboxes to Everything Internet, Part 4: Perimeter, Proxies, and the Operations Upgrade&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
  </channel>
</rss>
