Monday, December 25, 2006

Getting a DHCP Address in a Red Hat Linux 9.0 Virtual Machine--zt by welv

When a Red Hat Linux 9.0 guest operating system tries to get a DHCP address, the attempt might fail with an error message that states the link is down. On ESX Server, this happens only if you are using the vlance driver for your network connection.

To work around this problem, become root (su -) and use a text editor to edit the following files in the guest operating system. If only one of these files exists, make the change for that file only.

In both cases, is the number of the Ethernet adapter—for example, eth0.
Then run the command ifup eth[n] (where [n] is the number of the Ethernet adapter) or restart the guest operating system.

Monday, December 18, 2006

Voip/Sip开源项目的一些简单描述--zt by welv

Voip/Sip开源项目的一些简单描述
RESIPROCATE:
http://www.sipfoundry.org/reSIProcate/
reSIProcate is a high performance, object-oriented, C++ sip stack that is compliant with RFC 3261. It includes support for a wide variety of operating systems, including Windows and Linux. It has full support for UDP, TCP, and TLS transports on both IPv4 and IPv6. It also implements the full set of specifications for DNS usage in SIP, including NAPTR and SRV lookups (RFCs: 3263, 2915, 2782) using an asynchronous DNS library (ares).
The reSIProcate project consists of a stack and a small collection of applications. The reSIProcate stack is currently used in two commercial products and is quite stable. reSIProcate is ideally suited to individuals or companies that are implementing one of the following SIP applications:
- PHONES(EG,EMBEDDED);
- Softphones(any platform);
- Gateway;
- Proxies;
- B2buas,or;
- IM / Presence Servers or Clients.


JRTPLIB:
http://lumumba.luc.ac.be/jori/jrtplib/jrtplib.html
JRTPLIB is an object-oriented library written in C++ which offers support for the Real-time Transport Protocol (RTP), defined in RFC 1889. It makes it very easy to send and receive RTP packets and the RTCP (RTP Control Protocol) functions are handled entirely internally.

WinRTP:
http://www.vovida.org/applications/downloads/winRTP/
The WinRTP (WINRTP) was developed as part of the Cisco IP SoftPhone product. Cisco IP SoftPhone is a PC based telephone integrated with AVVID, and works with the Cisco Call Manager. The primary focus of the WINRTP is to ensure that it works well with other products in AVVID including desktop IP Phones, gateways, etc.It can also be used as an independent component. ; It is written in C++ ; It is a COM component. (Not an ActiveX control). This makes it easy to use using any programming language like C/C++/Java (using J/Direct) etc.

OSIP:
http://www.gnu.org/software/osip/osip.html
OSIP is an implementation of SIP. This library aims to provide multimedia and telecom software developers an easy and powerful interface to initiate and control SIP based sessions in their applications.

ExOsip:
http://savannah.nongnu.org/projects/exosip/
eXosip is a library that hides the complexity of using the SIP protocol for multimedia session establishment.

其他供利用参考的一些资源 :
www.pernau.at/kd/voip/bookmarks-sip-rtp-ua.html (非常详尽的sip/rtp/ua资源列表)
http://gphone.sourceforge.net/template.php3?page=librtp (Librtp,可借鉴数据传输部分)
http://www.vovida.org (知名通信开源组织; vocal是基于SIP协议的类OpenH322实现)
http://www.linphone.org/?lang=us ... c307759e92cc4b90bb5 (Linphone)
http://sourceforge.net/projects/srtp (Secure RTP)
http://www.voip-info.org/wiki-Codec+Software ( Codec Software)
http://www.iptel.org/info/produc ... tacks&siponly=1 (iptel提供有一些VOIP资源)
http://www.cs.columbia.edu/~hgs/rtp/ (RTP Official Site)
http://www.dataconnection.com/voip/default.htm (dataconnectiond的 VOIP资源)

文章1:在Vovida的基础上实现自己的SIP协议栈
http://www.ctiforum.com/technology/Voip/2003/08/voip0802.htm
文章2: Linux 的應用--VideoStreaming 探討
http://www.jollen.org/linux/video_streaming
文章3: Linux下的JRTPLIB应用
http://www-900.ibm.com/developerWorks/cn/linux/l-mdst/index.shtml

Sunday, December 17, 2006

Red Hat Package Manager--zt by welv

RPM 是 Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理;在Fedora 、Redhat、Mandriva、SuSE、YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用;

RPM包里面都包含什么?里面包含可执行的二进制程序,这个程序和Windows的软件包中的.exe文件类似是可执行的;RPM包中还包括程序运行时所需要的文件,这也和Windows的软件包类似,Windows的程序的运行,除了.exe文件以外,也有其它的文件;

一个RPM 包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定版本文件,这就是软件包的依赖关系;依赖关系并不是Linux特有的, Windows操作系统中也是同样存在的;比如我们在Windows系统中运行3D游戏,在安装的时候,他可能会提示,要安装Direct 9 ;Linux和Windows原理是差不多的;

本文使用范围:

1、本文是对RPM管理的软件的说明,对通过file.tar.gz 或file.tar.bz2源码包用 make ;make install 安装的软件无效;
2、安装软件时,最好用各自发行版所提供的系统软件包管理工具,对于Fedora/Redhat 您可以参考如下文章;

1)Fedora 系统管理软件包工具 system-config-packages,方便的添加和移除系统安装盘提供的软件包,详情请看 《Fedora 软件包管理器system-config-packages》

2)Redhat 系统管理软件包工具,新一点的系统应该是 redhat-config-packages ,用法和 《Fedora 软件包管理器system-config-packages》 一样;

3)apt + synaptic 软件包在线安装、移除、升级工具; 用法:《用apt+synaptic 在线安装或升级Fedora core 4.0 软件包》
4)yum 软件包在线安装、升级、移除工具;用法:《Fedora/Redhat 在线安装更新软件包,yum 篇》

5)所有的yum和apt 教程 《apt and yum》

目前 apt和yum 已经极为成熟了,建议我们安装软件时,采用 apt或者yum ;如果安装系统盘提供的软件包,可以用 system-config-packages 或redhat-config-packages ;


一、RPM包管理的用途;

1、可以安装、删除、升级和管理软件;当然也支持在线安装和升级软件;
2、通过RPM包管理能知道软件包包含哪些文件,也能知道系统中的某个文件属于哪个软件包;
3、可以在查询系统中的软件包是否安装以及其版本;
4、作为开发者可以把自己的程序打包为RPM 包发布;
5、软件包签名GPG和MD5的导入、验证和签名发布
6、依赖性的检查,查看是否有软件包由于不兼容而扰乱了系统;

二、RPM 的使用权限;

RPM软件的安装、删除、更新只有root权限才能使用;对于查询功能任何用户都可以操作;如果普通用户拥有安装目录的权限,也可以进行安装;

三、rpm 的一点简单用法;

我们除了软件包管理器以外,还能通过rpm 命令来安装;是不是所有的软件包都能通过rpm 命令来安装呢?不是的,文件以.rpm 后缀结尾的才行;有时我们在一些网站上找到file.rpm ,都要用 rpm 来安装;

一)初始化rpm 数据库;

通过rpm 命令查询一个rpm 包是否安装了,也是要通过rpm 数据库来完成的;所以我们要经常用下面的两个命令来初始化rpm 数据库;

[root@localhost beinan]# rpm --initdb
[root@localhost beinan]# rpm --rebuilddb 注:这个要花好长时间;

注:这两个参数是极为有用,有时rpm 系统出了问题,不能安装和查询,大多是这里出了问题;

二)RPM软件包管理的查询功能:

命令格式

rpm {-q|--query} [select-options] [query-options]

RPM的查询功能是极为强大,是极为重要的功能之一;举几个常用的例子,更为详细的具体的,请参考#man rpm

1、对系统中已安装软件的查询;

1)查询系统已安装的软件;

语法:rpm -q 软件名

举例:

[root@localhost beinan]# rpm -q gaim
gaim-1.3.0-1.fc4

-q就是 --query ,中文意思是“问”,此命令表示的是,是不是系统安装了gaim ;如果已安装会有信息输出;如果没有安装,会输出gaim 没有安装的信息;

查看系统中所有已经安装的包,要加 -a 参数 ;

[root@localhost RPMS]# rpm -qa

如果分页查看,再加一个管道 |和more命令;
[root@localhost RPMS]# rpm -qa |more

在所有已经安装的软件包中查找某个软件,比如说 gaim ;可以用 grep 抽取出来;

[root@localhost RPMS]# rpm -qa |grep gaim

上面这条的功能和 rpm -q gaim 输出的结果是一样的;

2)查询一个已经安装的文件属于哪个软件包;

语法 rpm -qf 文件名

注:文件名所在的绝对路径要指出

举例:

[root@localhost RPMS]# rpm -qf /usr/lib/libacl.la
libacl-devel-2.2.23-8

3)查询已安装软件包都安装到何处;

语法:rpm -ql 软件名 或 rpm rpmquery -ql 软件名

举例:

[root@localhost RPMS]# rpm -ql lynx
[root@localhost RPMS]# rpmquery -ql lynx

4)查询一个已安装软件包的信息

语法格式: rpm -qi 软件名

举例:

[root@localhost RPMS]# rpm -qi lynx

5)查看一下已安装软件的配置文件;

语法格式:rpm -qc 软件名

举例:

[root@localhost RPMS]# rpm -qc lynx

6)查看一个已经安装软件的文档安装位置:

语法格式: rpm -qd 软件名

举例:

[root@localhost RPMS]# rpm -qd lynx

7)查看一下已安装软件所依赖的软件包及文件;

语法格式: rpm -qR 软件名

举例:

[root@localhost beinan]# rpm -qR rpm-python

查询已安装软件的总结:对于一个软件包已经安装,我们可以把一系列的参数组合起来用;比如 rpm -qil ;比如:

[root@localhost RPMS]# rpm -qil lynx


2、对于未安装的软件包的查看:

查看的前提是您有一个.rpm 的文件,也就是说对既有软件file.rpm的查看等;

1)查看一个软件包的用途、版本等信息;

语法: rpm -qpi file.rpm

举例:

[root@localhost RPMS]# rpm -qpi lynx-2.8.5-23.i386.rpm

2)查看一件软件包所包含的文件;

语法: rpm -qpl file.rpm

举例:

[root@localhost RPMS]# rpm -qpl lynx-2.8.5-23.i386.rpm

3)查看软件包的文档所在的位置;

语法: rpm -qpd file.rpm

举例:

[root@localhost RPMS]# rpm -qpd lynx-2.8.5-23.i386.rpm

5)查看一个软件包的配置文件;

语法: rpm -qpc file.rpm

举例:

[root@localhost RPMS]# rpm -qpc lynx-2.8.5-23.i386.rpm

4)查看一个软件包的依赖关系

语法: rpm -qpR file.rpm

举例:

[root@localhost archives]# rpm -qpR yumex_0.42-3.0.fc4_noarch.rpm
/bin/bash
/usr/bin/python
config(yumex) = 0.42-3.0.fc4
pygtk2
pygtk2-libglade
rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 usermode yum >= 2.3.2


三)软件包的安装、升级、删除等;


1、安装和升级一个rpm 包;

[root@localhost beinan]#rpm -vih file.rpm 注:这个是用来安装一个新的rpm 包;
[root@localhost beinan]#rpm -Uvh file.rpm 注:这是用来升级一个rpm 包;

如果有依赖关系的,请解决依赖关系,其实软件包管理器能很好的解决依赖关系,请看前面的软件包管理器的介绍;如果您在软件包管理器中也找不到依赖关系的包;那只能通过编译他所依赖的包来解决依赖关系,或者强制安装;

语法结构:

[root@localhost beinan]# rpm -ivh file.rpm --nodeps --force
[root@localhost beinan]# rpm -Uvh file.rpm --nodeps --force

更多的参数,请查看 man rpm

举例应用:

[root@localhost RPMS]# rpm -ivh lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]
[root@localhost RPMS]# rpm -ivh --replacepkgs lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]

注: --replacepkgs 参数是以已安装的软件再安装一次;有时没有太大的必要;

测试安装参数 --test ,用来检查依赖关系;并不是真正的安装;

[root@localhost RPMS]# rpm -ivh --test gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]

由新版本降级为旧版本,要加 --oldpackage 参数;

[root@localhost RPMS]# rpm -qa gaim
gaim-1.5.0-1.fc4
[root@localhost RPMS]# rpm -Uvh --oldpackage gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# rpm -qa gaim
gaim-1.3.0-1.fc4

为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;

[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim

为软件包指定安装目录:要加 -relocate 参数;下面的举例是把lynx-2.8.5-23.i386.rpm 指定安装在 /opt/lynx 目录中;


[root@localhost RPMS]# rpm -ivh --relocate /=/opt/lynx --badreloc lynx-2.8.5-23.i386.rpm
Preparing... ########################################### [100%]
1:lynx ########################################### [100%]

我们安装在指定目录中的程序如何调用呢?一般执行程序,都放在安装目录的bin或者sbin目录中;看下面的例子;如果有错误输出,就做相应的链接,用 ln -s ;

[root@localhost RPMS]# /opt/lynx/usr/bin/lynx
Configuration file /etc/lynx.cfg is not available.
[root@localhost RPMS]# ln -s /opt/lynx/etc/lynx.cfg /etc/lynx.cfg
[root@localhost RPMS]# /opt/lynx/usr/bin/lynx www.linuxsir.org


2、删除一个rpm 包;

首先您要学会查询rpm 包 ;请看前面的说明;

[root@localhost beinan]#rpm -e 软件包名

举例:我想移除lynx 包,完整的操作应该是:

[root@localhost RPMS]# rpm -e lynx

如果有依赖关系,您也可以用--nodeps 忽略依赖的检查来删除。但尽可能不要这么做,最好用软件包管理器 systerm-config-packages 来删除或者添加软件;

[root@localhost beinan]# rpm -e lynx --nodeps


四、导入签名:

[root@localhost RPMS]# rpm --import 签名文件

举例:

[root@localhost fc40]# rpm --import RPM-GPG-KEY
[root@localhost fc40]# rpm --import RPM-GPG-KEY-fedora

关于RPM的签名功能,详情请参见 man rpm

五、RPM管理包管理器支持网络安装和查询;

比如我们想通过 Fedora Core 4.0 的一个镜像查询、安装软件包;

地址:
http://mirrors.kernel.org/fedora/core/4/i386/os/Fedora/RPMS/

举例:

命令格式:

rpm 参数 rpm包文件的http或者ftp的地址

# rpm -qpi http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm
# rpm -ivh http://mirrors.kernel.org/fedora/core/4/i386/os/ Fedora/RPMS/gaim-1.3.0-1.fc4.i386.rpm

举一反三吧;


六、对已安装软件包查询的一点补充;

[root@localhost RPMS]# updatedb
[root@localhost RPMS]# locate 软件名或文件名

通过updatedb,我们可以用 locate 来查询一些软件安装到哪里了;系统初次安装时要执行updatedb ,每隔一段时间也要执行一次;以保持已安装软件库最新;updatedb 是slocate软件包所有;如果您没有这个命令,就得安装slocate ;

举例:

[root@localhost RPMS]# locate gaim


七、从rpm软件包抽取文件;

命令格式: rpm2cpio file.rpm |cpio -div

举例:
[root@localhost RPMS]# rpm2cpio gaim-1.3.0-1.fc4.i386.rpm |cpio -div

抽取出来的文件就在当用操作目录中的 usr 和etc中;

其实这样抽到文件不如指定安装目录来安装软件来的方便;也一样可以抽出文件;

为软件包指定安装目录:要加 -relocate 参数;下面的举例是把gaim-1.3.0-1.fc4.i386.rpm指定安装在 /opt/gaim 目录中;

[root@localhost RPMS]# rpm -ivh --relocate /=/opt/gaim gaim-1.3.0-1.fc4.i386.rpm
Preparing... ########################################### [100%]
1:gaim ########################################### [100%]
[root@localhost RPMS]# ls /opt/
gaim

这样也能一目了然;gaim的所有文件都是安装在 /opt/gaim 中,我们只是把gaim 目录备份一下,然后卸掉gaim;这样其实也算提取文件的一点用法;

八、RPM的配置文件;

RPM包管理,的配置文件是 rpmrc ,我们可以在自己的系统中找到;比如Fedora Core 4.0中的rpmrc 文件位于;

[root@localhost RPMS]# locate rpmrc
/usr/lib/rpm/rpmrc
/usr/lib/rpm/redhat/rpmrc

我们可以通过 rpm --showrc 查看;具体的还得我们自己来学习。呵。。。不要问我,我也不懂;只要您看了这篇文章,认为对您有用,您的水平就和我差不多;咱们水平是一样的,所以我不能帮助您了;请理解;

九、src.rpm的用法:

《file.src.rpm 使用方法的简介》

后记:
Fedora/Redhat 入门教程中的软件包管理篇,我已经写了很多了;目前还缺少通过源码包安装软件我方法以及一篇总结性的文档;我想在最近两天补齐,这两篇我以前写过;重新整理一下贴出来就行了;

以我的水平来看,写Fedora 入门教程是极为费力气的,只能一点一点的完善和补充;我所写的教程是面对的是对Linux一无所知新手;教程中实例应用占大部份;我发现没有实例的情况下,新手不如看man ;能看man了,当然也不是什么新手;

经常在论坛上看一些弟兄的提问,虽然一问话解说过去也能应付;但想让大家更方便一点,不如写系统入门教程;虽然所花的时间要长一点

Monday, December 11, 2006

Linux下tftp-server的配置----Writen by welv

尽管很幼稚,但还是写一写,毕竟在这个问题上丢过人

1)首先要确认安装了软件包,其次要确认开启了此服务:
# rpm -q tftp-server
tftp-server-0.32-4
# chkconfig tftp on
# chkconfig --list | grep tftp
tftp: on

2)再编辑配置文件:
#vi /etc/xinetd.d/tftp

service tftp
{
disable = no
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/www/html
per_source = 11
cps = 100 2
flags = IPv4
}

好了,试试看吧,至少可以下载了!

多操作系统混装纪实(二)----Writen by welv

Windows的启动菜单既然恢复起来了,linux就简单了,重新用SUSE10的安装盘引导,修复Grub bootloader即可。

由于暂时还没完成虚拟机xen的研究,于是在SUSE10上运行Redhat AS3也就化作了泡影,只能铤而走险,再装一个系统了,如果失败,将意味着先前所安装的三个系统全部功亏一篑,只有哭的份了...

应该说,linux的双系统安装要比windows简单,可从来没试过,所以显得有点虚。

事先考虑了一下,觉得问题最大的地方是在分区的时候,要注意不能误删SUSE的,swap分区可以共用,不必额外划分,只利用一块未分区空间作为其根分区即可;其次就是bootloader了,由于想保留SUSE实用的引导菜单,决定不再安装AS3的bootloader而选择在安装后进入SUSE配置。

和预期结果吻合,AS3装完后没有任何影响到SUSE,可以说跟没装一样,于是工作重心转移到如何引导起AS3:

SUSE下有个GUI系统管理工具YaST2,相当好用:YaST2-->System-->bootloader
有这么个类似于windows里的那个bootpro一样的配置程序,很直观,你可以很清楚地指定你所要引导的OS,不管是windows还是linux,不过有些小小的bug,只许引导本分区的kernel,这可就为难我了——我的OS可是一个分区一个的,难不成要把AS3的拷到本分区的boot目录下?

只好尝试了一下再说了,于是先将安装了AS3的分区mount到SUSE下的/AS3目录下,紧接着copy它的vmlinuz和initrd到SUSE的boot目录下,执行bootloader配置程序,添加一启动项,kernel文件就用前两个,Root Device指向AS3的根分区(eg:/dev/sda6),之后保存重启,结果不成,报了个什么"无效分区格式"的错,SUSE默认的文件系统格式是reiserfs,而AS3默认的是ext3——一下子让我心凉了半截,这可怎么混?

还不死心,不能就这么完了呀,于是又翻出来那张SUSE安装盘(真是好东西啊),引导--〉修复,这里的菜单跟系统里的差不多,也不能自动找到AS3,但是有点区别是,它可以让我选择添加其他分区的,于是赶紧这样填上:/AS3/boot/vmlinuz-2.4.21-20EL,(/dev/sda6,root=/dev/sda6)

保存重启...进入启动菜单--〉选"Reahat AS3"...谢天谢地,成功了!

事后再察看SUSE里/boot/grub/menu.lst,发现是这个样子滴:

# Modified by YaST2. Last modification on Sun Dec 10 22:27:39 CST 2006

color white/blue black/light-gray
default 0
timeout 10
gfxmenu (hd0,2)/boot/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 10.0
root (hd0,2)
kernel /boot/vmlinuz root=/dev/sda3 vga=0x31a selinux=0 apm=off acpi=off mce=off barrier=off ide=nodma idewait=50 i8042.nomux psmouse.proto=bare irqpoll resume=/dev/sda2 splash=silent showopts
initrd /boot/initrd

###Don't change this comment - YaST2 identifier: Original name: windows###
title Windows
chainloader (hd0,0)+1

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.0
root (hd0,2)
kernel /boot/vmlinuz root=/dev/sda3 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3
initrd /boot/initrd


title Redhat AS3
root (hd0,5)
kernel /boot/vmlinuz-2.4.21-20.EL root=/dev/sda6 vga=0x31a
initrd /boot/initrd-2.4.21-20.EL.img

我的系统分布是这样的:
/dev/sda3 /(SUSE)
tmpfs /dev/shm
/dev/sda1 /windows/C
/dev/sda5 /windows/D
/dev/sda6 /AS3(Redhat)

多操作系统混装纪实(一)----Writen by welv

首先,裸机安装Windows Vista;

第二个,安装SUSE10,没问题,SUSE10自动会搜寻已有的操作系统,并自动在Grub里添加,特别针对windows系统,对用户简直是个福音;

第三个,安装Windows Server 2003,无法在现有的系统上运行安装引导,只有启动时光盘引导,此时注意不要触动其他已有系统的分区即可,尽量使用未分区空间;

安装完后问题来了,Grub菜单被覆盖,自然就进不了linux系统了,而对于windows,也只有Server 2003可供选择,Vista也不见了,于是习惯的想到修改boot.ini文件来建立启动选择菜单,结果白搭,Vista根本就不认,网上查了查才发现,人家微软不那么玩儿了,取而代之的是一个叫bcdedit.exe的冬冬,不过该程序是命令行操作的,而且代码写起来很复杂,需要查注册表entry的,跟boot.ini相比毫无理性可言,所以某些大牛们就做出了这样一个漂亮的GUI Tools----Vista BootPro,据说在XP/2003下也可以使用,知识系统中必须安装有微软的.net framework2.0,当时我没有想到这步,只是觉得这是Vista的操作,就应该在Vista系统下完成,于是就用Vista的安装盘修复了一下,姑且先进去再说...

修复很容易,新的引导纪录自然又会把Server 2003抹去,没关系,进入Vista以后,安装Vista BootPro 3.1,启动后选择"Backup/Restore Centre":
目的很简单,做个备份;

接着选择"Manage OS Entries":
然后选择"Add new operating system entry":"OS type"=windows legacy;

"OS Name"=xxx;
"Driver letter"=x:

程序会自动给你搜索出你硬盘里的windows系统分区,列在Driver letter里,非常方便你的添加(当然前提是一个分区里只有一个系统),然后apply,选择"View Setting":
你会看到详细的启动列表,可以根据特别需要作一些微调。

SUSE10里的好东西之Quagga----Writen by welv

Quagga is an advanced routing software package that provides a suite of TCP/IP based routing protocols. This is the Manual for Quagga 0.99.4. Quagga is a fork of GNU Zebra.


Quagga
is a routing software package that provides TCP/IP based routing services with routing protocols support such as RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP-4, and BGP-4+ (see section Supported RFCs). Quagga also supports special BGP Route Reflector and Route Server behavior. In addition to traditional IPv4 routing protocols, Quagga also supports IPv6 routing protocols. With SNMP daemon which supports SMUX protocol, Quagga provides routing protocol MIBs (see section SNMP Support).

Quagga uses an advanced software architecture to provide you with a high quality, multi server routing engine. Quagga has an interactive user interface for each routing protocol and supports common client commands. Due to this design, you can add new protocol daemons to Quagga easily. You can use Quagga library as your program's client user interface.

Quagga is distributed under the GNU General Public License.

-----http://www.quagga.net

也没太多时间仔细研究,知道怎么启动,怎么连接:

$/etc/init.d/zebra start

$ telnet 10.74.52.42 2601
Trying 10.74.52.42...
Connected to 10.74.52.42 (10.74.52.42).
Escape character is '^]'.

Hello, this is Quagga (version 0.98.4).
Copyright 1996-2005 Kunihiro Ishiguro, et al.


User Access Verification

Password:
quagga> en
Password:
quagga#
configure Configuration from vty interface
copy Copy configuration
debug Debugging functions (see also 'undebug')
disable Turn off privileged mode command
echo Echo a message back to the vty
end End current mode and change to enable mode.
exit Exit current mode and down to previous mode
help Description of the interactive help system
list Print command list
logmsg Send a message to enabled logging destinations
no Negate a command or set its defaults
quit Exit current mode and down to previous mode
show Show running system information
terminal Set terminal line parameters
who Display who is on vty
write Write running configuration to memory, network, or
terminal
quagga#

看到什么了?
就是个模拟的router的CLI:)
我猜这个软件的作用就是将pc变成router。。。。。。