用户模式Linux之初次体验
用户模式Linux (User Mode Linux), 缩写为UML。顾名思义,UML就是在一个可以在用户空间运行的linux内核。
UML能够为kernel虚拟一些实际的物理设备,启动UML只需要要指定一个root文件系统的image文件。UML实际上也是一种虚拟化技术。
UML的好处
第一,做一个虚拟服务器,UML可以以安全的方式运行在用户空间,它可以确保服务器不会对本机的内容进行破坏
第二,便于kernel开发和调试。kernel中一些与平台无关的模块,如文件系统,内存管理等,使用UML调试更加方便。
运行UML
1. 准备好一个rootfs的img文件
UML需要指定一个包含完整根文件系统的img文件。首先创建一个大小为2G的img文件,然后将其格式化为ext3文件系统。
# cd ~/uml
# dd if=/dev/zero of=rootfs.img bs=1M count=2048
# mkfs.ext3 rootfs.img
rootfs.img实际上是一个ext3文件系统的存储设备,但是还没有什么内容。所以现在要做的是,将一个已有的根文件系统拷贝到rootfs.img中(假设这个根文件已经打包为your-rootfs.tar.gz):
# mkdir uml-rootfs
# sudo mount -o loop rootfs.img uml-rootfs
# cd uml-rootfs
# tar xf your-rootfs.tar.gz
# cd ..
# umount uml-rootfs
还有一种办法制作一个root文件系统的img文件,假设你自己的linux发行版(Fedora, Ubuntu,etc)是按照在/dev/sda5设备上,你可以将整个/dev/sda5拷贝到一个单独的img文件:
dd if=/dev/sda5 of=rootfs.img bs=1M count=2048
注意上面的count只有2G,如果安装在/dev/sda5的根文件系统大于2G,需要增大count值
2. 以UM模式编译linux内核
从kernel.org上下载一个稳定的kernel版本,然后以um模式重新编译:
# cd kernel-2.32.26.y
# make mrproper ARCH=um
# make defconfig ARCH=um
# make ARCH=um
成功编译后,在kernel-2.32.26.y中会出现一个名为linux的可执行文件,它就是UML!
3. 运行UML
# ./linux mem=512M ubda=~/uml/rootfs.img
一个用户空间的linux就运行了....开源力量很好很强大!
更多UML的信息请参考:
UML项目首页:http://user-mode-linux.sourceforge.net/
下一步将试验如何在UML中调试kernel模块。
2010-2-2
相关文档:
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
1、下载phpMyAdmin至web服务器目录并重命名为:phpmyadmin。假设服务器目录为www,则存放位置为www/phpmyadmin,访问路径为http://localhost/phpmyadmin
2、复制"/phpmyadmin/libraries/"目录下的"config.default.php"文件至"/phpmyadmin/"目录下,并重命名为"config.inc.php"
3 ......
在我们在写程序的过程中,有些时候需要知道一些电脑的硬件信息,比如我们写一些需要注册的程序的时候,就需要得到某个电脑特定的信息,一般来说,网卡的物理地址是不会重复的,我们正好可以用它来做为我们识别一台电脑的标志.那如何得到网卡的物理地址呢?我们可以借助于ProcessBuilder这个类,这个类是JDK1.5新加的,以前也可以用Ru ......
1. 前言
以太头中除了6字节目的MAC地址、6字节源MAC地址外,还有两字节的以太帧类型值,如IPv4为0x0800,ARP为0x0806等,网卡驱动收到以太帧后通过接口函数netif_receive_skb()(netif_rx实际最后也是调用netif_receive_skb)交到上层,而这个接口函数就完成对以太帧类型的区分,交到不同的协议处理程序。如果想自己编写某一 ......
原文地址:http://www.wangzhongyuan.com/archives/487.html
以下是一个Linux/Unix下显示某一目录下文件列表的C程序,相当于最基本的ls命令的功能,显示的内容报告该目录下的子目录以及文件名:
#include <sys/types.h>
#include <dirent.h>
#include <stdio.h>
#include <errno.h>
int m ......