{ |one, step, back| } http://onestepback.org/index.cgi Jim Weirich's Blog en-us { |one, step, back| } http://onestepback.org http://onestepback.org/images/jwface.gif UML Roundtable at CLUG http://onestepback.org/index.cgi/UmlCoop/UmlCoopRoundTable.rdoc User Mode Linux was the topic of this month&#8217;s Cincinnati Linux Users Group (<a href="http://clug.org">CLUG</a>). Since this blog is running on a UML host, I thought I would talk about that for a bit. <table> <tr><td valign="top"><b>NOTE:</b> :</td><td>Most people (myself included) tend to think of the <a href="http://www.rational.com/uml/index.jsp?SMSESSION=NO">Unified Modeling Language</a> (a graphical notation for expressing Object Oriented designs and models) when they hear &quot;UML&quot;. However, for the rest of this article, UML will be used to mean User-Mode Linux. </td></tr> </table> <h2>What Is UML?</h2> <p> User Mode Linux is a version of Linux that sits on top of a running linux system and runs entirely in the users unprotected process space. At first glance, this seems like a really useless idea. Why run a virtual Linux when you have a &quot;real&quot; version already running on your hardware. It turns out there are a number of useful things </p> <p> So why would you want to run a User Mode Linux? Here&#8217;s some ideas&#8230; </p> <ul> <li><b>Kernel Development</b>. Running your test kernels in user space makes it much easier to debug your kernels. And crashing a kernel just brings down your local copy, nothing else. </li> <li><b>Experimenting with New Kernels or Distributions</b>. Again, because the UML is isolated from the real system, you can try out new kernels or even whole distributions that you would not normally want to deal with. </li> <li><b>Secure Sandbox</b>. Since the UML has no access (not explicitly granted) to the host Linux system, a UML is a great place to run potentially malicious applications. </li> <li><b>Experimentation</b>. Ever wonder what would happen if you typed &quot;rm -f /&quot; as root. Do it in a UML without fear of breaking anything else. </li> <li><b>Networking</b>. UMLs each act as their own host, so you can setup a network of UMLs on a single box to experiment with networking solutions. </li> <li><b>UML Farm</b>. Put a bunch of UMLs on a single server and let individual users have an entire (virtual) linux system to themselves. We&#8217;ll come back to this idea in a moment. </li> </ul> <p> You get the idea. So why is this blog hosted on a UML? First, we need some history. </p> <h2>The UML Coop</h2> <p> Over the years, the local ISP that I use went from being a great ISP to being a very mediocre company. Changing hands several times, it was finally bought by <a href="http://www.nuvox.com/">Nuvox</a> who offered to &quot;upgrade&quot; our 100 Mbs of web storage to a generous 5 Mb. Several members of CLUG began looking for alternative web hosting solutions. </p> <p> In January of this year (2003), <a href="http://davidcoulson.net">David Coulson</a> from the Cleveland Linux User Group came to give a presentation on UML. David has done extensive work with UML and mentioned that he was interested in starting a COOP that would purchase a server on the internet. Each member of the COOP would get their own UML instance to do whatever they wanted. </p> <p> It took several months before the COOP came together, but by May we had purchased a server and hosted it at <a href="http://n2net.net">N2Net</a> in Cleveland. The system is currently supporting around 20 UML instances with little problem (except for the one day we got slashdotted). </p> <h2>Using UMLs</h2> <p> How CLUG members are using their UMLs? </p> <ul> <li>Kip <ul> <li>Web hosting for <a href="http://shafferhouse.org">shafferhouse.org</a>, a family picture galary. </li> <li>Web hosting for <a href="http://exams4pilots.org">exams4pilots.org</a>, a practice exam site for pilots. </li> <li><a href="http://tmda.net/">TMDA</a> Mail Filtering (TMDA is worth a posting in its own right). </li> </ul> </li> <li>Jim <ul> <li>Web hosting for <a href="http://onestepback.org">onestepback.org</a>, this blog site. </li> <li>Mail filtering (someday) </li> </ul> </li> <li>Jeff <ul> <li>Jeff has applied to join the UML COOP, but hasn&#8217;t got his UML instance setup yet. </li> </ul> </li> <li>Monty <ul> <li>Shell access from an internet host </li> </ul> </li> <li>Ryan <ul> <li>Mirroring for picture galleries. Ryan hosts a web site on his home system, <a href="http://dlugosz.net">dlugosz.net</a>. To avoid high bandwidth on his home box, he redirects graphic requests to his UML box. </li> </ul> </li> </ul> <h2>Some UML Links</h2> <ul> <li><a href="http://user-mode-linux.sourceforge.net/">user-mode-linux.sourceforge.net/</a> </li> <li><a href="http://usermodelinux.org/">usermodelinux.org/</a> </li> </ul> UML Coop WIKI is Now Available http://onestepback.org/index.cgi/UmlCoop/UmlCoopWiki.rdoc A Wiki devoted to UML Coop questions and answers is availbe at <a href="http://jimweirich.umlcoop.net/cgi-bin/umlwiki.pl">jimweirich.umlcoop.net/cgi-bin/umlwiki.pl</a>. UML Coop members are invited to use it. What Do You Need? http://onestepback.org/index.cgi/UmlCoop/FirstDownloads.rdoc So, you are facing a freshly installed copy of Linux. It has the basics, but nothing else. What do you install first? <p> I can answer that question because I just did it for the UML system you see here. </p> <p> Here&#8217;s what I loaded &#8230; </p> <ul> <li>I have download most of my brain into Emacs macros, so working without emacs for any length of time is not acceptable. Fortunately, a quick &#8216;apt-get install emacs21&#8217; and a working emacs system becomes available. </li> <li>After loading emacs, I grabbed the .emacs file (and all of its supporting libraries) from my desktop system. </li> <li>My overall plan for this UML system is to use it as my web host. That means that apache is required. Grabbing apache with apt-get was simple. </li> <li>I plan to base my web site around a Ruby based blogging package called Rublog. That means Ruby will be needed. Since I tend to track the latest version of Ruby a little more closely than Debian does, I normally install Ruby by hand from source. Fortunately, installing Ruby is trivial. I just downloaded the source (from <a href="http://www.ruby-lang.org">www.ruby-lang.org</a>), and did the standard configure/make/make install commands. </li> <li>Next I needed the Rublog software. I had been playing with Rublog on my laptop, so I had the configuration pretty well decided by that point. I just copied the laptop setup to the UML system. </li> <li>Finally, Rublog needs RDoc to render any RDoc postings. A quick visit to the Ruby Application Archive to grab RDoc and I was good to go. </li> </ul> <p> And that completed my first phase of setups. I had to do a little reading on setting up iptables and a bit of configuration with apache. The result is what you see here. </p> <p> So, what packages do you need to work with. </p>