User Mode Linux HOWTO
User Mode Linux Core Team
Mon Nov 18 14:16:16 EST 2002
This document describes the use and abuse of Jeff Dike's User Mode
Linux: a port of the Linux kernel as a normal Intel Linux process.
______________________________________________________________________
Table of Contents
1. Introduction
1.1 How is User Mode Linux Different?
1.2 Why Would I Want User Mode Linux?
2. Compiling the kernel and modules
2.1 Compiling the kernel
2.2 Compiling and installing kernel modules
2.3 Compiling and installing uml_utilities
3. Running UML and logging in
3.1 Running UML
3.2 Logging in
3.3 Examples
4. UML on 2G/2G hosts
4.1 Introduction
4.2 The problem
4.3 The solution
5. Setting up serial lines and consoles
5.1 Specifying the device
5.2 Specifying the channel
5.3 Examples
6. Setting up the network
6.1 General setup
6.2 Userspace daemons
6.3 Specifying ethernet addresses
6.4 UML interface setup
6.5 Multicast
6.6 TUN/TAP with the uml_net helper
6.7 TUN/TAP with a preconfigured tap device
6.8 Ethertap
6.9 The switch daemon
6.10 Slip
6.11 Slirp
6.12 pcap
6.13 Setting up the host yourself
7. Sharing Filesystems between Virtual Machines
7.1 A warning
7.2 Using layered block devices
7.3 Note!
7.4 Another warning
7.5 uml_moo : Merging a COW file with its backing file
8. Creating filesystems
8.1 Create the filesystem file
8.2 Assign the file to a UML device
8.3 Creating and mounting the filesystem
9. Host file access
9.1 Using hostfs
9.2 hostfs as the root filesystem
9.3 Building hostfs
10. The Management Console
10.1 version
10.2 halt and reboot
10.3 config
10.4 remove
10.5 sysrq
10.6 help
10.7 cad
10.8 stop
10.9 go
11. Kernel debugging
11.1 Starting the kernel under gdb
11.2 Examining sleeping processes
11.3 Running ddd on UML
11.4 Debugging modules
11.5 Attaching gdb to the kernel
11.6 Using alternate debuggers
12. Kernel debugging examples
12.1 The case of the hung fsck
12.2 Episode 2: The case of the hung fsck
13. What to do when UML doesn't work
13.1 Strange compilation errors when you build from source
13.2 (obsolete)
13.3 A variety of panics and hangs with /tmp on a reiserfs filesystem
13.4 The compile fails with errors about conflicting types for 'open', 'dup', and 'waitpid'
13.5 UML doesn't work when /tmp is an NFS filesystem
13.6 UML hangs on boot when compiled with gprof support
13.7 syslogd dies with a SIGTERM on startup
13.8 TUN/TAP networking doesn't work on a 2.4 host
13.9 You can network to the host but not to other machines on the net
13.10 I have no root and I want to scream
13.11 UML build conflict between ptrace.h and ucontext.h
13.12 The UML BogoMips is exactly half the host's BogoMips
13.13 When you run UML, it immediately segfaults
13.14 xterms appear, then immediately disappear
13.15 Any other panic, hang, or strange behavior
14. Diagnosing Problems
14.1 Case 1 : Normal kernel panics
14.2 Case 2 : Tracing thread panics
14.3 Case 3 : Tracing thread panics caused by other threads
14.4 Case 4 : Hangs
15. Thanks
15.1 Code and Documentation
15.2 Flushing out bugs
15.3 Buglets and clean-ups
15.4 Case Studies
15.5 Other contributions
______________________________________________________________________
11.. IInnttrroodduuccttiioonn
Welcome to User Mode Linux. It's going to be fun.
11..11.. HHooww iiss UUsseerr MMooddee LLiinnuuxx DDiiffffeerreenntt??
Normally, the Linux Kernel talks straight to your hardware (video
card, keyboard, hard drives, etc), and any programs which run ask the
kernel to operate the hardware, like so:
+-----------+-----------+----+
| Process 1 | Process 2 | ...|
+-----------+-----------+----+
| Linux Kernel |
+----------------------------+
| Hardware |
+----------------------------+
The User Mode Linux Kernel is different; instead of talking to the
hardware, it talks to a `real' Linux kernel (called the `host kernel'
from now on), like any other program. Programs can then run inside
User-Mode Linux as if they were running under a normal kernel, like
so:
+----------------+
| Process 2 | ...|
+-----------+----------------+
| Process 1 | User-Mode Linux|
+----------------------------+
| Linux Kernel |
+----------------------------+
| Hardware |
+----------------------------+
11..22.. WWhhyy WWoouulldd II WWaanntt UUsseerr MMooddee LLiinnuuxx??
1. If User Mode Linux crashes, your host kernel is still fine.
2. You can run a usermode kernel as a non-root user.
3. You can debug the User Mode Linux like any normal process.
4. You can run gprof (profiling) and gcov (coverage testing).
5. You can play with your kernel without breaking things.
6. You can use it as a sandbox for testing new apps.
7. You can try new development kernels safely.
8. You can run different distributions simultaneously.
9. It's extremely fun.
22.. CCoommppiilliinngg tthhee kkeerrnneell aanndd mmoodduulleess
22..11.. CCoommppiilliinngg tthhee kkeerrnneell
Compiling the user mode kernel is just like compiling any other
kernel. Let's go through the steps, using 2.4.0-prerelease (current
as of this writing) as an example:
1. Download the latest UML patch from
the download page <http://user-mode-linux.sourceforge.net/dl-
sf.html>
In this example, the file is uml-patch-2.4.0-prerelease.bz2.
2. Download the matching kernel from your favourite kernel mirror,
such as:
ftp://ftp.ca.kernel.org/pub/kernel/v2.4/linux-2.4.0-prerelease.tar.bz2
<ftp://ftp.ca.kernel.org/pub/kernel/v2.4/linux-2.4.0-prerelease.tar.bz2>
.
3. Make a directory and unpack the kernel into it.
host%
mkdir ~/uml
host%
cd ~/uml
host%
tar -xzvf linux-2.4.0-prerelease.tar.bz2
4. Apply the patch using
host%
cd ~/uml/linux
host%
bzcat uml-patch-2.4.0-prerelease.bz2 | patch -p1
5. Run your favorite config; `make xconfig ARCH=um' is the most
convenient. `make config ARCH=um' and 'make menuconfig ARCH=um'
will work as well. The defaults will give you a useful kernel. If
you want to change something, go ahead, it probably won't hurt
anything.
Note: If the host is configured with a 2G/2G address space split
rather than the usual 3G/1G split, then the packaged UML binaries
will not run. They will immediately segfault. See ``UML on 2G/2G
hosts'' for the scoop on running UML on your system.
6. Finish with `make linux ARCH=um': the result is a file called
`linux' in the top directory of your source tree.
Make sure that you don't build this kernel in /usr/src/linux. On some
distributions, /usr/include/asm is a link into this pool. The user-
mode build changes the other end of that link, and things that include
<asm/anything.h> stop compiling.
The sources are also available from cvs at the project's cvs page,
which has directions on getting the sources. You can also browse the
CVS pool from there.
If you get the CVS sources, you will have to check them out into an
empty directory. You will th
没有合适的资源?快使用搜索试试~ 我知道了~
android 2.1 kernel.rar
共7783个文件
h:3193个
c:2824个
txt:644个
5星 · 超过95%的资源 需积分: 3 38 下载量 153 浏览量
2010-10-12
12:13:16
上传
评论
收藏 25.89MB RAR 举报
温馨提示
android 2.1 kernel.rar 再下载另一个资源,里面的drivers文件夹,由于kernel太大,drivers文件夹单独上传了
资源推荐
资源详情
资源评论
收起资源包目录
android 2.1 kernel.rar (7783个子文件)
00-INDEX 14KB
00-INDEX 4KB
00-INDEX 4KB
00-INDEX 3KB
00-INDEX 2KB
00-INDEX 1KB
00-INDEX 1KB
00-INDEX 1KB
00-INDEX 830B
00-INDEX 788B
00-INDEX 649B
00-INDEX 633B
00-INDEX 555B
00-INDEX 543B
00-INDEX 511B
00-INDEX 409B
00-INDEX 370B
00-INDEX 333B
00-INDEX 321B
00-INDEX 320B
00-INDEX 298B
00-INDEX 270B
00-INDEX 211B
00-INDEX 187B
00-INDEX 177B
00-INDEX 124B
00-INDEX 81B
00-INDEX 79B
00-INDEX 76B
ChangeLog.1992-1997 59KB
ChangeLog.ide-cd.1994-2004 15KB
ChangeLog.ide-tape.1995-2002 16KB
ChangeLog.ide-floppy.1996-2002 4KB
vmlinux-2.6.25 2.08MB
zImage-2.6.25 767KB
System.map-2.6.25 355KB
README-2.5 2KB
abituguru 4KB
abituguru-datasheet 12KB
abituguru3 2KB
README.act2000 3KB
ADC-LH7-Touchscreen 2KB
adm1021 4KB
adm1025 2KB
adm1026 4KB
adm1031 1KB
adm9240 7KB
ads7828 1KB
ADSBitsy 1KB
adt7473 3KB
modules.alias 45B
ALS 4KB
ChangeLog.arcmsr 7KB
asb100 2KB
Kbuild.asm 751B
cwcdma.asp 4KB
Assabet 9KB
README.audio 6KB
AudioExcelDSP16 4KB
AUTHORS 2KB
README.avmb1 6KB
calibrate.c.bak 6KB
balance 5KB
Kconfig.binfmt 5KB
bloat-o-meter 2KB
Makefile.boot 85B
Makefile.boot 85B
Booting 5KB
Brutus 2KB
btaudio 3KB
CARDLIST.bttv 8KB
README.buddha 8KB
BUG-HUNTING 8KB
bugs 331B
Makefile.build 11KB
builddeb 3KB
buildtar 2KB
butterfly 3KB
nls_cp949.c 855KB
nls_cp936.c 682KB
nls_cp950.c 580KB
nls_cp932.c 480KB
patch_realtek.c 454KB
nm256_coef.c 301KB
sched.c 196KB
xfs_bmap.c 196KB
yaffs_guts.c 187KB
sm_statefuns.c 186KB
socket.c 184KB
cifssmb.c 167KB
alloc.c 159KB
tcp_input.c 154KB
llc_c_st.c 150KB
hdsp.c 146KB
hooks.c 136KB
xfs_inode.c 136KB
mballoc.c 125KB
journal.c 124KB
page_alloc.c 124KB
hdspm.c 123KB
共 7783 条
- 1
- 2
- 3
- 4
- 5
- 6
- 78
资源评论
- zhaoshuzhaoshu2011-11-28此资源找了好长时间,终于在这里找到了,先用一下,还可以,就是没有驱动那一部分,要是楼主能够把两个部分结合在一起那就更好了。谢谢。
- renxiaoyou19132012-09-12找了很久,终于找到了,在TQ2440上移植成功,谢谢了
- mahuiyin1262012-11-25kernel里少了drivers这个文件夹里的代码,其他的都很好。非常感谢
- lushaolei2015-11-26想学一直没学会,后来也就没时间学了
- 小白是小菜2012-10-28资源不错,就是还没有移植成功
jliuyuetian
- 粉丝: 2
- 资源: 52
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功