File: uses.html

package info (click to toggle)
user-mode-linux-doc 20020320-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 1,580 kB
  • ctags: 300
  • sloc: makefile: 32
file content (415 lines) | stat: -rw-r--r-- 18,382 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
    "http://www.w3.org/TR/REC-html40/loose.dtd">
<html>
<head>
   <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
<title>What it's good for</title>
</head>
<body alink="#FF0000" vlink="#55188A" link="#0000EF" bgcolor="#FFFFFF" text="#000099">
<table border="0">
<tr align="left">
<td valign="top">
<table border="0">

<tr align="left"><td valign="top" >
<img width="120" height="171" src="/uml-small.png">
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/index.html">Site Home Page</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/uses.html">What it's good for</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/case-studies.html">Case Studies</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/kernel.html">Kernel Capabilities</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/dl-sf.html">Downloading it</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/run.html">Running it</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/compile.html">Compiling</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/install.html">Installation</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/fs_making.html">Building filesystems</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/faq.html">Troubles</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/contrib.html">User Contributions</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/links.html">Related Links</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/todo.html">The ToDo list</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/projects.html">Projects</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/diary.html">Diary</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/thanks.html">Thanks</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/contacts.html">Contacts</a></font>
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">Tutorials<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO.html">The HOWTO (html)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/UserModeLinux-HOWTO.txt">The HOWTO (text)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/hostfs.html">Host file access</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/input.html">Device inputs</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/shared_fs.html">Sharing filesystems</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/fs.html">Creating filesystems</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/networking.html">Virtual Networking</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/mconsole.html">Management Console</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/debugging.html">Kernel Debugging</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/gprof.html">gprof and gcov</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/xtut.html">Running X</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/trouble.html">Diagnosing problems</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/config.html">Configuration</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slack_readme.html">Installing Slackware</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/arch-port.html">Porting UML</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/iomem.html">IO memory emulation</a></font>
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">How you can help<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-gen.html">Overview</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-doc.html">Documentation</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-userspace.html">Utilities</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/help-kernel-v1.html">Kernel bugs</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/projects.html">Kernel projects</a></font>
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">Screenshots<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/net.html">A virtual network</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/x.html">An X session</a></font>
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">Transcripts<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/login.html">A login session</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/debug-session.html">A debugging session</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slackinst.html">Slackware installation</a></font>
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">Reference<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/switches.html">Kernel switches</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slack_readme.html">Slackware README</a></font>
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">Papers<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2000/index.html">ALS 2000 paper (html)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2000.tex">ALS 2000 paper (TeX)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/als2000/slides.html">ALS 2000 slides</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/lca2001/lca.html">LCA 2001 slides</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/ols2001/index.html">OLS 2001 paper (html)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/ols2001.tex">OLS 2001 paper (TeX)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2001/index.html">ALS 2001 paper (html)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/als2001.tex">ALS 2001 paper (TeX)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/ists2002/umlsec.htm">UML security (html)</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/slides/lca2002/lca2002.htm">LCA 2002 (html)</a></font>
</td></tr>

<tr align="left"><td valign="top" bgcolor="#e0e0e0">Fun and Games<br>
<font size="-1"><a href="http://user-mode-linux.sourceforge.net/http://user-mode-linux.sourceforge.net/cgi-bin/hangman">Kernel Hangman</a></font>
<br>
              <font size="-1"><a href="http://user-mode-linux.sourceforge.net/sdotm.html">Disaster of the Month</a></font>
</td></tr>

</table>
</td>
<td valign="top" align="left">

<center>
            <h3>What are people using it for?</h3>
          </center>

<a name="Kernel development and debugging"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Kernel development and debugging</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Kernel development and debugging">
This kernel allows developers to write and debug
code using the normal process-level tools, like gdb, gprof, and gcov.
Also, developers who are away from their normal environment can carry
on development, using a UML virtual machine as their kernel testing box.
There is more information here on <a href="compile.html">building</a>
this kernel from source and <a href="debugging.html">debugging</a> it,
plus a <a href="debug-session.html">debugging</a> session transcript.
</blockquote>

<a name="Process debugging"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Process debugging</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Process debugging">
Perhaps surprisingly, UML is also occasionally useful for debugging
user-level processes.  Ever get a odd error from a system call and
have no idea why it's happening, either because there are a dozen
reasons that errno could be returned and the documentation doesn't
list the one you're hitting or, according to the documentation, the
errno is completely inexplicable?  Well, fire up UML, set a breakpoint
on the system call in question, run your program, and you'll see very
quickly why it's failing.
</blockquote>

<a name="Safely playing with the latest kernels"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Safely playing with the latest kernels</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Safely playing with the latest kernels">
Since the user-mode kernel is not running directly
on the hardware, it has no access to it unless you provide it.  So,
if the kernel contains any nasty bugs, like file corruption bugs, it can't hurt
any data that you care about.
</blockquote>

<a name="Trying out new distributions"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Trying out new distributions</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Trying out new distributions">
Its filesystems are contained in files in the underlying
filesystem, so any time you want to boot a new distribution, you only need
to dedicate a file to it, not an entire disk partition.  The 
 <a href="http://sourceforge.net/project/showfiles.php?group_id=429 ">project download page</a>  has a number of ready-to-go 
root filesystems loaded with
various distributions, including SuSE, Slackware, Debian, and Red Hat.
</blockquote>

<a name="Education"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Education</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Education">
UML is a great teaching tool, especially in courses where students
need a dedicated machine in order to get the most out of it.  I know
that UML is being used to teach OS development, network
administration, and more general system administration.  These are all
cases where having a virtual machine to practice on is far more
convenient for everyone than using physical boxes.
</blockquote>

<a name="Experimental development"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Experimental development</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Experimental development">
The kernel runs in a virtual machine that can be
configured in ways that your physical machine can't. It can have
more memory, more devices, and, soon, more processors. So you can
do development and testing of hardware capabilities even when you don't
have the relevant hardware.
</blockquote>

<a name="Poking around inside a running system"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Poking around inside a running system</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Poking around inside a running system">
Since you have a full OS running outside the user-mode
kernel, it's pretty easy for the terminally curious to find ways of looking
inside this kernel that are impossible for a native kernel.
</blockquote>

<a name="As a secure sandbox or jail"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">As a secure sandbox or jail</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="As a secure sandbox or jail">
Processes inside the user-mode kernel have no access to the hosting machine
or to the outside world that's not explicitly provided.  So, a malicious 
application running inside it can do no harm to anything that matters.  
Should viruses like those now plaguing 
<a href="http://www.microsoft.com">
other, inferior operating systems</a> ever start appearing on
Linux, the environment provided by this kernel can provide pretty
solid protection against them. 
</blockquote>

<a name="Virtual networking"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Virtual networking</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Virtual networking">
UML virtual machines are networkable, to each other, to the host, and
to other physical machines.  So, UML can be used to set up a virtual
network that allows setting up and testing of experimental services.
See the <a href="networking.html">networking</a> 
tutorial and <a href="net.html">virtual network 
screenshot</a> for more information. 
</blockquote>

<a name="As a test environment"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">As a test environment</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="As a test environment">
Testing of some types of software requires booting up a machine.  With
UML, this can be very easily automated.  There is a small test harness
 <a href="http://sourceforge.net/project/showfiles.php?group_id=429 ">available</a> , consisting of a small perl module 
implementing a UML object which provides methods to boot a virtual
machine, log in to it, run commands, and shut it down.
</blockquote>

<a name="Disaster recovery practice"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Disaster recovery practice</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Disaster recovery practice">
Do you know what you would do if your machine suddenly didn't boot one
day?  With UML, you can set up virtual disasters and practice
recovering from them.  This doesn't have to be serious business - it
can also be fun.  Ever wonder what happens when you run 
<blockquote>
              <tt>
                <font color="#000000">rm -rf /</font>
              </tt>
            </blockquote> 
but been afraid to try it?  Now you can with impunity.
</blockquote>

<a name="A Linux environment for other operating systems"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">A Linux environment for other operating systems</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="A Linux environment for other operating systems">
This is more a potential use, since UML only runs on Linux right now.
But once it's ported to another OS, it is a completely authentic Linux
environment - it will run any Linux executable.  This would be an
interesting shortcut for an OS vendor looking for Linux binary compatibility.
<br>
See the <a href="projects.html">projects</a> page for more information on
porting UML to other operating systems.
</blockquote>

<a name="Virtual hosting"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">Virtual hosting</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="Virtual hosting">
Another potential use - I don't know of anyone who's doing this.  UML
provides a fine environment for virtual hosting.  Just give each user
a virtual machine and the root password, and they can do whatever they
want inside it without bothering anyone else.
</blockquote>

<a name="It doesn't need to be good for anything.  It's fun!"/><table width="100%" bgcolor="#e0e0e0">
            <tr>
              <td>
                <b>
                  <font color="black">It doesn't need to be good for anything.  It's fun!</font>
                </b>
              </td>
            </tr>
          </table>
          <blockquote head="It doesn't need to be good for anything.  It's fun!"></blockquote>


</td>
</tr>
</table>

<center>
<font size="-1">
Hosted at </font>
<a href="http://sourceforge.net">
<IMG alt="SourceForge Logo" border="0" height="31" width="88" src="http://sourceforge.net/sflogo.php?group_id=429">
</a>
</center>
</body>
</html>