十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
startx 命令
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站建设、成都做网站、泽库网络推广、小程序开发、泽库网络营销、泽库企业策划、泽库品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供泽库建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
用途:初始化一个 X 会话。
语法
startx [ -d Display:0 ] [ -t | -w ] [ -x Startup | [ -r Resources ] [ -m Window_Manager ] ] [ -wait ]
描述
startx 命令简化了启动 X 会话的过程。
该命令执行下列操作:
设置用户的 DISPLAY 环境变量以标识 X 服务器到 X 客户机
当从工作站运行时,启动 X 服务器
启动 X 客户机。
startx 命令将 X 服务器和 X 客户机的错误消息重定向至用户的 XERRORS 环境变量指定的文件。该处理对调试很有用,并且使 X 服务器在工作站上有一个清洁的启动和关机外观。
如果 startup 脚本文件名没有用 -x 选项在命令行中给出,那么 startx 命令就会搜索一个由用户的 XINITRC 环境变量指定的文件。如果未设置 XINITRC 环境变量,startx 命令就会在用户的主目录中分别搜索名为 .Xinit、.xinit、 .Xinitrc、.xinitrc 或 .xsession 的文件来开始 X 客户机程序。
如果未找到启动文件,startx 命令运行在命令行上由 -m 选项指定的窗口管理器,或在找到相关的配置文件(.mwmrc、.twmrc、.awmrc 或 .uwmrc, 分别地)之后,调用窗口管理器 mwm、twm、awm 或 uwm。如果没有在用户主目录中找到窗口管理器配置文件,startx 将启动 Xterm 客户机和 mwm 窗口管理器。
当启动文件找不到时,startx 命令也将在命令行上使用 -r 选项指示装入资源文件,或分别装入用户主目录中的名为 .Xdefaults、.xdefaults、.Xresources 或 .xresources 的文件。如果未找到 X 资源文件,将不个性化 X 会话。
如果工作站中存在一个启动文件并且用户未装入任何资源,则 startx 命令中的 xinit 命令将尝试装入 .Xdefaults 文件。
当 X 会话从 /dev/lft* 启动时,就假定使用工作站。如果不是这种情况,就必须使用 -t 或 -w 选项。
标志
-d Display :0 指定在启动过程中传递给 X 客户机的 X 服务器的显示名称。
-m Window_Manager 当未找到 startup 脚本时,启动窗口管理器。
-r Resources 当未找到 startup 脚本时,装入资源文件。
-t 为一个 X 终端启动 X 客户机。
-w 为工作站上的 X 窗口会话启动 X 服务器和 X 客户机。
-wait 当 xdm 命令调用 startx 时,防止重新启动 X 会话。
-x Startup 使用 startup 脚本启动 X 窗口会话。
注:您可以单独或同时使用 -m 和 -r 选项, 或者使用 -x 选项,但是您不能在使用 -x 选项的同时使用 -m 和 -r 选项。在启动脚本中,启动窗口管理器会话、装入 X 资源以及产生 X 客户机是用户的责任。
示例
要在工作站上或 X 终端上启动 X 会话,请输入:
startx
要在工作站上强制启动 X 会话,请输入:
startx -w
要为 X 终端启动 X 会话,并注销用户的 Telnet 会话,请输入:
startx; kill -9 $$
要使用 .xinitrc 脚本启动 X 会话,请输入:
startx -x .xinitrc
要使用 mwm 窗口管理器启动 X 会话,请输入:
startx -m mwm
但是,如果找到启动脚本文件,则忽略 -w 选项。
在启动脚本中,启动窗口管理器、装入 X 资源以及产生 X 客户机是用户的责任。以下是 .xsession 脚本的一个示例。
#!/bin/csh
(mwm )
xrdb -load .Xdefaults
(xclock -g 75x75+0+0 )
(xbiff -g 75x75+101-0 )
if ("/dev/lft*" == "`tty`") then
aixterm -g 80x24+0+0 +ut -C -T `hostname`
else
aixterm -g 80x24+0+0 +ut -T `hostname`
endif
对于工作站,startup 脚本中的最后一行应该是前台 aixterm 命令,该命令带有 -C 选项表示控制台信息。
对于 X 终端,startup 脚本中的最后一行应该是不带有 -C 选项的前台 aixterm 命令。另外,由于某些 X 终端在关闭时不终止 telnet 会话,所以用户必须在使用热键切换至 X 会话前退出当前的 telnet 会话。
/usr/lib/X11/xdm/Xsession 文件中的 xdm 命令也可以使用 startx 命令。这为 xdm 命令提供了 startx 命令的功能。
文件
以下是启动 X 会话一贯使用的文件名。
$HOME/.xerrors 其中,startx 用来重定向错误消息。在缺省情况下,startx 将错误重定向至用户主目录中的 .xerrors 文件中。
$HOME/.Xinit,
$HOME/.xinit,
$HOME/.Xinitrc,
$HOME/.xinitrc,
$HOME/.xsession 作为包含 shell 命令的“启动文件”来启动窗口管理器、装入 X 资源并产生 X 客户机。
$HOME/.Xdefaults,
$HOME/.xresources 作为装入的 X 资源文件来设置 X 客户机的用户首选项。
$HOME/.mwmrc mwm 配置文件。
$HOME/.twmrc twm 配置文件。
$HOME/.awmrc awm 配置文件。
$HOME/.uwmrc uwm 配置文件。
/dev/lft* 终端或 tty、工作站初始 login shell 的界面。
分类: 电脑/网络 互联网
问题描述:
谁能帮我建一个UT的服务器,或者谁有服务器,允许我进去建个频道啊
解析:
UT2003服务器架设指南
做服务器前先到:
unrealtournament2003/...atedserver.php
下载服务器版UT2003,(v2107, Windows: 265MB | Linux: 249MB)安装需要780M硬盘空间。
ut2003master.epicgames/ut...rver/cdkey.php
申请服务器专用CD-KEY
下载服务器安装文件后:
linux用户:新建一个用户帐号专门用来运行服务器,用这个用户登录,运行ut2003lnxded.sh.bin文件。跟具屏幕提示继续。
windows用户:把zip文件解压缩到硬盘中,没有安装程序,解开来就行了。
在配置服务器前先下载最新升级补丁,给服务器程序升级。
再下载evolutionpack2,它能帮你解决许多用web页面管理上面的问题,和修正了一些bug。
unreal.cpgl/UT2003/patch/evolutionpack2.zip 20KB
安装服务器:
在你下载完并解压缩所有需要的文件后:
A 如果你已经在机器上装了零售版UT2003,那么跳到第M条
B 如果你下载了免费的服务器专用程序,且不需要再申请服务器专用cdkey,那么跳到第D条
C 如果你是使用零售版UT2003来运行服务器的话,那先安装游戏,游戏会自动添加注册表中必要的信息。跳到第M条。
D 打开 ut2003master.epicgames/ut...rver/cdkey.php ,输入一些需要的信息后,服务器专用CDkey会通过email发给你。linux用户需要把收到的cdkey文件复制到你的系统文件夹中
E 如果你已经知道怎么在注册表里添加CDKEY就跳过这一步到J。
F 点击开始---运行。在窗口中输入 regedit ,回车。
G 在注册表管理器中,双击"HKEY_LOCALMACHINE"展开它,双击"sofare"展开它,在它下面找到"Unreal Technology"文件夹.如果这个文件夹已经存在,跳到J。
H 添加一个新的键值。单击"sofare"文件夹,然后点编辑---新建---主键。一个新的文件夹就出现了,有一个高亮的区域让你给它命名,输入Unreal Technology 回车。
I 单击刚才新建的文件夹,点编辑---新建---主键。一个新的文件夹出现啦,又有一个高亮的区域让你命名,输入 Install Apps 回车,跳到K。
J 在Unreal Technology Installed apps文件夹下找到"UT2003"文件夹,如果它存在,跳到L
K 单击"Installed Apps"文件夹,点编辑---新建---主键。一个崭新的文件夹诞生啦,有一个高亮的区域让我们命名,输入UT2003 回车。
L 单击"UT2003"文件夹,点编辑---新建---建值。一个新的文件夹又出现啦,又有一个高亮的区域可以让我们起名字啦。输入 "CDKEY",回车。双击新建立的键值,你就可以编辑它的值。在里面输入你的cdkey序列号。点OK。关掉注册表编辑器。
M 如果你知道怎么用命令行命令进入你的虚幻安装文件夹里的system文件夹,跳到步骤O
N 用命令行建立服务器。我把我的文件安装在UT2003server,我用这个举例子,输入cd ut2003server\system
O 输入ucc server DM-Antalus.ut2
如果一切顺利,一个专用服务器就架设好了,游戏中的地图是DM-Antalus。
默认下面,专用服务器的配置是给inter游戏配置的。这意味着它他尝试和国外的主服务器联系把它加入到主服务器的数据库里,这样你的服务器就可以出现在别人的服务器搜索列表里。目前有两个不同的主服务器在运行,Epic的和Gamespy的。
如果你在机器上已经安装了零售版的UT2003,那就不必运行Epic mail给你的.reg文件了,否则你注册表里的CDKEY会被改成服务器专用的,这样你自己就不能用这台机器玩了。
如果你是在居域网里建立服务器,并且想禁止UT2003和主服务器联系那就编辑UT2003.ini里修改下面的句子(如果找不到这部分,就在最后加后这几行):
[IpDrv.MasterServerUplink]
DoUplink=False
UplinkToGamespy=False
配置服务器
现在你应该知道最基本的架设服务器的方法了,你需要把它配置成你需要的。下面的每个部分都有详细的常见问题解答
System 文件夹里有最重要的三个文件:user.ini runserver.bat和ut2003.ini 。 user.ini保存了地图循环列表。ut2003.ini保存了许多其他设置。runserver.bat 保存了启动服务器的设置。Linux用户没有runserver.bat文件,你要把每次都输入一长串命令启动服务器,或者你必须用一个外壳脚本启动服务器。(linux上用脚本启动UT2003服务器的例子参见ina- munity/forums/showthread.php?s=threadid=231043)
如果你架设多个服务器,通常你会使用一个共同的ut2003.ini文件,然后用不同的runserver.bat或者外壳脚本启动不同的服务器,下面是一个runserver.bat的例子:
ucc.exe server DM-Antalus?game=XGame.XDeathmatch?maxplayers=16?minplayers=4?timelimit=20?fraglimit=25
ucc.exe 是服务器的执行文件,"server"告诉uccc下面要架设一个专用服务器。后面的东西是一些参数,设置服务器的游戏规则。第一条是服务器初始游戏的地图名字,这个例子中是DM-Antalus。跟着是游戏类型,例子中是死亡模式。不同的参数用问号分隔。不管你输入多少参数,整个命令都必须在一行中,如果分开来就不管用了。
下面列出ucc后面可以使用的所有参数列表。注意下面有一些参数在运行服务器是是感觉不出有什么变化的,列出它们只是为了列表了完整性:
AccessControl 用来打开高级管理员系统。和UT2003.ini中[Engine.GameInfo]部分里的AccessConrolClass一行的参数相同。
AdminName=xxxx 网页管理和控制台管理员的名字--参看下面的高级网页管理员部分。
adminpassword=xx 管理员密码。至少5位,否则无效。
bAutoNumBots=true/false 设置成true在人数小于地图默认设定的最小数时,会自动加入电脑bot补足。设置成false则不会。
autoadjust=true/false 设置成true,电脑bot会跟具玩家水平自动调整自己的等级。false则不会。
bPlayerMustBeReady=true/false 设置成true打开比赛模式,每局开时前所有玩家要按下鼠标确认后游戏才开始。false则不需要。
Balanceteams=true/false 自动分配玩家平衡队伍。
BlueTeam= 设置蓝队的名字。但是,不要以为你可以改变队伍的名字。However, don't get clever and decide you'll name the blue team Purple or something like that. Many classes in the game refer to this variable to perform team info logic这句话不太好翻自己看吧。总之最好不要加这个参数,加上它会有不良后果。
BlueTeamAI= 特别的参数用来控制蓝队电脑AI。给MOD制作者用来配置自己写的AI给新的游戏模式用的。别碰它。
BlueTeamSymbol= 设置蓝队的队标。最好别设它。
Character=X 玩家用的人物,架服务器时无效。
Class 如果在架服务器的时候使用,在服务器玩的玩家只能用默认的人物皮肤。通常玩家都会用自己喜欢的人物皮肤。所以这个命令毫无用处。
difficulty=x 设置电脑登记,从1到7分别是novice到godlike。
FF=x 友队伤害的百分比。0是关闭,1是100% 所以.25就是25%友队伤害。
fraglimit=x 死亡模式最多杀人数。
game= 游戏类型,可以用:xDeathmatch, xCTFgame,xBombingRun,或者xDoubleDom
gamepassword= 做为客户端加入游戏时需要的密码。
GameRules 设置特别的GameRules类,GameRules是mutator在UT2003中增加的新类型。通常你不需要用它。几乎所有的mod都会自己动配置它们自己的GameRules。
Gamespeed=x 设置游戏速度,默认是1。最大2
Gamestats=true/false 设置成true会打开统计功能(玩家的游戏资料,如命中率等会上传到主服务器资料库进行统计并参加全世界排名),电脑数量必须设为0才能生效。
goalscore=x CTF,DOM和BR模式里的队伍分数上限。
maxlivers=x last man standing模式,死x后玩家就出局,直到只剩最后一人游戏结束。
maxplayers=x 最大同时游戏人数。
maxspectators=x 最大同时观战者人数。
minplayers=x 最小游戏人数,小于此数用电脑bot补足。
mutator= 在游戏中添加mutator(具体看下面)
numbots=x 设置电脑bot数量。注意打死bot,游戏统计功能就无效了。
Password=xxxx 别的游戏者端加入游戏时需要的密码。
PlayerMustbeready=true/false 在每局开始前等待其他的玩家。
QuickStart 允许游戏在没有人的时候照常进行,当然有电脑bot在玩的时候有效。
RedTeam 参看BlueTeam
RedTeamAI 参看BlueTeamAI
RedTeamSymbol 参看BlueTeamSymbol
SaveGame 继续一个保存过的单人游戏。架服务器时没用。
SpectatorOnly=True/False 客户端选项,允许客户端用命令行指定观察者模式,架服务器时没用。
Team 客户端选项,允许客户端用命令行指定希望加入的队伍。同样架服务器时没用。
translocator=true/false 设置为true允许使用移位器,false相反。
timelimit=x 每局时间限制。
Tournament=true/false 设置成竞技场模式
weaponstay=true/false 武器保留。
几个例子:
ucc server DM-Antalus?game=XGame.XDeathmatch?minplayers=4 架设死亡模式服务器,初始地图DM-Antalus,最少4人,不足4人用电脑补足。
ucc server CTF-Citadel?game=XGame.xCTFGame?FF=0 架设夺旗模式服务器,初始地图CTF-Citadel,无友队伤害。
ucc server DOM-SunTemple?game=xGame.xDoubleDom?mutator=UnrealGame.MutLowGrav 双重据点模式服务器,初始地图DOM-SunTemple,低重力模式开启。
ucc server BR-Anubis?game=XGame.xBombingRun?weaponstay=true 架设BR模式服务器,初始地图BR-Anubis,武器保留开启。
ucc server DM-Curse3?game=XGame.xTeamGame?fraglimit=100 团队死亡模式,初始地图DM-Curse3,杀人数上限100.
关于和主服务器的联系
如果你不想你的服务器显示在游戏的服务器搜索列表里,或者你只是在居域网里的服务器,你可以在UT2003.ini里把下面这些关掉
[IpDrv.MasterserverUplink]
DoUplink=true|false 控制你的服务器是否与inter上的主服务器联系。
UplinkToGamespy=true|false 和DoUplink相似,是决定是否和gamespy服务器建立联系。
SendStats=true|false 是否发送统计信息到主服务器
ServerBehindNAT=true|false 服务器是否在网关后面。
DoLANBroadcast=true|false 设置服务器是否可以在居域网中查找到。一般设true
地图循环和个性化地图列表
默认下游戏会地图会循环出现。 循环顺序在user.ini文件里面控制。 每个游戏类型都有一个部分列出循环的地图。你可以编辑它,去掉你不喜欢的,加上你喜欢的地图。如
[XInterface.MapListDeathMatch]
MapNum=0
Maps=DM-Morbias-2k3
Maps=DM-Spacepir8
Maps=DM-KillingField
Maps=DM-Deck16]i[-BETA
Maps=DM-MoonTemple
Maps=DM-Reigncaster
Maps=DM-Golgatha
Maps=DM-Tooth-N-Claw
Maps=DM-Stage1
Maps=DM-Liandri2003_BETA2
如果你想玩更多的地图,就去网上下载吧。把他们解压缩后把ut2文件放到map文件夹里,utx放到texture文件夹里,以及其他相应文件都放到相应目录里,你就能使用新地图了。
在一个游戏服务器上运行多个游戏类型
你可能会想在一个游戏服务器上运行多个游戏类型,比如 CTF,DOM,BR。可以用以下方法切换地图,举例如下:
比如 我们先开始一个死亡模式游戏在DM-A *** estos地图上。因为现在是死亡模式,游戏结束后UT会检查user.ini中[XInterface.MapListDeathMatch]部分索取下一张地图的名字。它找到了BR-Anubis地图名字,然后就切换到BR模式读取BR-Anubis地图。一但BR-Anubis的游戏结束后,UT会检查 [XInterface.MapListBombingRun]部分,因为已经是BR模式了。它又找到CTF-Citadel地图,然后就换成CTF模式,继续....
[XInterface.MapListCaptureTheFlag]
MapNum=0
Maps=DM-A *** estos?game=XGame.xDeathMatch
[XInterface.MapListDeathMatch]
MapNum=0
Maps=BR-Anubis?game=XGame.xBombingRun
[XInterface.MapListBombingRun]
MapNum=0
Maps=CTF-Citadel?game=XGame.xCTFGame
第三方地图和重定向
如果你使用了不是游戏自带的第三方地图,别人连上服务器就可能花很长时间下载地图同时占用别的游戏者的带宽使游戏不流畅,解决方法可以是把地图文件放到另一个网页服务器上然后告诉客户端自动从那里下载
用 UT2003press(可以在drunksnipers下载)...?的ut2003.ini 下面的部分重定向下载服务器:
IpDrv.HTTPDownload]
HTTPServer=server.domain.name/myUTmaps/
Proxyserver=
Proxyport=
UseCompression=True
记住erver=后面的地址最后一定要加上个"/" ,否则它不会工作。如果碰到问题的话,把域名改成网页服务器的IP地图试试看(比如192.168.1.10)
Mutators
Mutators要和启动命令加在同一行里。下面的例子是架设一个死亡模式的服务器地图是DM-A *** estor带大头的mutator和Instagib的mutator:
ucc.exe DM-A *** estos?Game=XGame.xDeathmatch?Mutator=UnrealGame.MutBigHead,XGame.MutInstaGib
默认mutator参数列表:
Arena - XWeapons.MutArena
Big Head - UnrealGame.MutBigHead
Float-Away Corpses - XGame.MutHeliumCorpses
InstaGib - XGame.MutInstaGib
Zoom InstaGib - XGame.ZoomInstaGib
LowGrav - UnrealGame.MutLowGrav
No Adrenaline - XGame.MutNoAdrenaline
No Super Weapons - XWeapons.MutNoSuperWeapon
Quad Jump - XGame.MutQuadJump
AutoHealing - XGame.MutRegen
Slow Motion Deaths - XGame.MutSlomoDeath
Species Specific Stats - XGame.MutSpeciesStats
Vampire - XGame.MutVampire
注意部分mutator参数的前缀的不同:XWeapons , UnrealGame 等。
给每张地图不同的Mutator
你可以通过修改user.ini为每张地图设置不同的mutator 。除非你换掉它们,这些mutator会在所有地图中生效。你可以用"mutator="后面什么也不要加来在下一张地图中去掉mutator。下面的例子是在DM-Antalus地图上的游戏带有Slow-mo death和low-grav两个mutator,然后在下一张DM-Golgotha时去掉它们。
Maps=DM-Reigncaster
Maps=DM-Antalus?game=XGame.xDeathMatch?mutator=XGame.MutSlomoDeath,unrealGame.MutLowGrav
Maps=DM-Golgatha?mutator=
Maps=DM-A *** estos
同样的方法可以加载其他的命令在后面,比如你可能想在某一张地图上有队友伤害,然后在下一张地图中去掉它:
Maps=CTF-Chrome?FF=0.75
Maps=CTF-Citadel?FF=0
页面管理员和高级页面管理
基本的页面管理员通过在runserver.bat里指定管理员名字和密码,并编辑ut2003.ini中[UWeb.WebServer]部分启用。这将允许你通过web页面完全控制服务器,只需要一个管理员帐号。注意,这些都不需要通过IIS或者Apache就可以完成。UT服务器提供了自己的web页面服务器。如果你的服务器上运行了IIS或者Apache,你要把它们的监听端口口改成80以外的。
[UWeb.WebServer]
bEnabled=True
Listenport=xxxx
高级网页管理员允许多个不同控制权限的管理员帐号。注意,那个evolutionpack目前发现在使用高级管理员下有潜在的严重安全漏洞。我强烈建议在互联网远程控制系统中不要使用它。
具体的高级管理员指南参见unrealadmin/modules.p...rticleartid=7
你应该在你的runserver.bat里加上管理员名字和密码参数,除非你不想使用高级网页管理工具。
一台机器上架设多个服务器
你可以有两种方法在一台机器上架设多个服务器:给每个服务器不同的端口号,或者分配不同的IP地址给你的每个UT服务器,
如果你用不同的端口号架设服务器,你可能碰到他们在游戏的服务器搜索列表里显示不出来的问题。
如果你有多个IP你可以用-multihome 参数在runserver.bat里给每个服务器绑定不同IP。例如下面把IP地址192.168.0.1绑到服务器上
ucc server DM-Antalus?game=XGame.xDeathMatch -multihome 192.168.0.1
在linux下面,你需要恋情multihome=ip的参数:
ucc server DM-Antalus?game=XGame.xDeathMatch -multihome=192.168.0.1
服务器在网关,防火墙,路由器后面
如果你的服务器在网关,防火墙,路由器后面你需要打开一些端口让外面的客户端连进来。默认的端口有7777,7778,7787,7788,28900,28902。我现在还不确定他们是TCP,UDP或者两者都是。
你还要在UT2003.ini中找到[IpDrv.MasterServerUplink]部分,把ServerBehindNat设为true。
除非你改变了端口(如上面说的一台机器运行多个服务器)那么凡是你用到的端口都要打开。
硬件要求
Epic建议,两个32人的专用服务器在一台服务器主机上需要一台1.7G的CPU。你至少需要128M内寸(最小级限了)。
最近改一些客户端的项目,测试的时候需要使用windows,因为是windows的客户软件,所以不得不使用windows, 原来总是在我的debian上安装vmware, 自从升级内核到2.6.17后,发现怎么安装vmware都有问题, 就比较烦,原来看到过华华说过qemu,0.8.1的时候安装过一次,感觉不是太理想,尤其是sdl的屏幕造成鼠标拖动很慢, 去主战的forum里看了看,发现这个已经被patch掉了。
而且kqemu又到了pre9了。正好试一下。
说一下目的:
安装qemu和kqemu, 配好网络。实现virtual machine 和 host 能够互通,也就是不是使用默认的user模式。 而改使用tun/tap的模式。
这里有两个要求:
第一:内核要支持neork filter. 尤其要用到的是nat.
第二:内核要支持tun/tap模块。
我的是debian,自己编译的内核,所以在编译的时候就已经弄好了,由于我从来不用官方的内核,所以我就不知道debian的管方内核是不是已经有了。
不过可以自己看一下。
iptables的支持是不用问的,一般都是内置的。
就是tun/tap设备的支持。 这一点,可以这样看一下:
modprobe tun, l *** od 看一下有没有tun 如果成功,就是支持的, 而且是被编译成了模块,如果没有,可以看一下:/dev,看看是不是存在tun这样一个文件,如果存在就是内核内置的,没有编译成模块,另外, 如果编译成了模块,也要注意是否有这个文件存在。不在的话,得自己建了。
mknode /devtun, 一般现在的发行版都会在你modprobe tun时自动帮你弄好,所以不用担心这个。
好了。我们开工了。
从主站上下载回来qemu的源码:
tar zxvf qemu-0.8.2.tar.gz
cd qemu-0.8.2
gcc -v
这里看一下gcc的版本。
qemu目前只能用gcc3来编译。如果你的是gcc4,
就su - 一下,到root, 然后到/usr/bin/
看一下有没有gcc3
有的话,看看原来的gcc是链接还是一个文件。如果是一个文件,就备份一下,呆会恢复。 如果是链接就不用管它了。看它指向哪一个gcc, 记得呆会儿要恢复过来的。 链接的做法简单了: ln -s gcc-3.3 gcc
就这样的。 备份就更简单了。mv gcc gcc.bak
回到我们刚才的目录里。
运行:
./configure
make
make install
这样就装好了qmeu,
现在我们需要使用kqemu模块来加速了。
下载回来kqemu-1.3.0pre9.tar.gz.
解开后。
tar zxvf kqemu-1.3.0pre9.tar.gz
然后进入到目录里。这个时候有两件事要注意:
1. 需要有你现在所用的内核的内核头文件。
2. gcc的版本要和你的内核编译的gcc版本一致。一搬来说就是你刚才改过的哪个了。恢复回来就好了。
好了。
./configure make make install
就好了。
我们已经就装好了所有的软件。
但是有时候我们需要一些设置才能工作。
1. modprobe kqemu
2. 看看/dev/kqemu 字符文件是否存在。
3. /dev/kqemu 文件的权限要是0666的。
做好这些后就可以开始安装你的虚拟机了,
安装好,我们再设置你的网络
退出你的root, 然后
cd ~ 进入你的home directory
mkdir qemu
cd qemu
qemu-img create win2k.img 2G
建立一个硬盘文件。然后我们就可以在这个上面安装win2000了。
可以使用iso文件, 也可以使用光盘。
我们这里使用光盘来安装。
qemu -hda win2k.img -cdrom /dev/cdrom -boot d -localtime -m 256 -win2k-hack
这样就可以开始安装2000了。解释一下这里的选项:
-hda 指定第一个硬盘。
-cdrom 指定你的cdrom 后面的文件可以是一个iso文件
-boot d 从光盘启动,如果从你的硬盘启动,就-boot c, -localtime使用本机的时间。 -m 就是设定内存的大小。默认是128, 注意可以设得大一点的内存,但是需要你的/dev/shm足够大。
-win2k-hack, 在安装2000的时候会有一个问题,它会提示你磁盘空间不够,加上这个参数就可以了。
好了。
安装完成了之后,就可以启动来看一把了。
启动如下:
qemu -hda win2k.img -boot c -localtime -m 256. 这样就默认使用了kqemu
现在应该也可以上网了,但是注意虚拟机使用的是dhcp的方式来上网的。
而且不能ping通你的本机,我想这个可能是大多数人不想要的,所以下面我们来配置网络。 通过tun/tap, 有点象vmware里的host-only
要配置host-only(tun/tap)这样的网络,我们上面已经讲过了两个要求,现在我们来做更多的事:
1、 建立一个文件 /etc/qemu-ifup
内容很简单:
#!/bin/sh
sudo / *** in/ifconfig $1 192.168.0.1 mask 255.255.255.0
然后chmod a+x /etc/qemu-ifup
注意这里的192.168.0.1是你的tun/tap网卡的地址,一定要注意:不能和你的实际的网卡在同一个网段。 也就是如果tun/tap是192.168.2.0.0/24, 那么你的时间网卡就不能在这个网段。
然后写一个小的脚本:
userinit 这个是文件名:
文件内容如下:
#!/bin/bash
case "$1" in
start)
[ ! -e /dev/kqemu ] mknod -m 666 /dev/kqemu c 250 0
echo 1024 /proc/sys/dev/rtc/max-user-freq
echo 1 /proc/sysipv4/ip_forward
/ *** in/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
;;
stop)
;;
esac
然后:chmod a+x userinit
再:mv userinit /etc/init.d/
再: update-rc.d userinit start 25 2 3 .
要注意的是这个操作是在debian 下面的做法。
如果是在其他发行版:比如Fedora, 你可以直接写这样的script在你的/etc/rc.local文件里
[ ! -e /dev/kqemu ] mknod -m 666 /dev/kqemu c 250 0
echo 1024 /proc/sys/dev/rtc/max-user-freq
echo 1 /proc/sysipv4/ip_forward
/ *** in/iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
编辑你的/etc/modules. 加上: kqemu (如果你的tun被编译成了模块,也加上tun)
最后还有一点。大家一定注意到了一个问题: 就是qemu-ifup脚本哩使用了sodu, 所以如果想普通用户能用,那么就配一下sudoer.
这个好配极了。 编辑:/etc/sudoers
你的用户名 ALL=(ALL):ALL NOPASSWD:ALL
这样就可以不用输入密码了。
现在我们可以开始启动你的虚拟机了。
要象这样启动:
qemu -hda win2k.img -boot c -localtime -m 256 - nic,vlan=0 - tap,vlan=0
如果嫌麻烦,
就干脆写一个一句话的脚本:
#!/bin/bash
qemu -hda win2k.img -boot c -localtime -m 256 - nic,vlan=0 - tap,vlan=0
存储为win2k, 加上x的权限,然后放置到/usr/bin, 或者是/usr/local/bin下
以后直接运行win2k, 就可以启动2000了。
同理也可以安装多个系统,写多个脚本启动。
这样比较的酷
. 前言
如果你想修改Linux系统里的时间,本文合适你。Linux上有多种修改时间的命令工具,本文介绍最常用、最通用的方法。

linux修改时间
先来了解世界时间的标准,包括GMT、UTC、CST、DST、以及操作系统同步时间的方式
1.1 UTC
整个地球分为二十四时区,每个时区都有自己的本地时间。在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC, Universal Time Coordinated)。
1.2 GMT
格林威治标准时间 (Greenwich Mean Time)指位于英国伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。
UT(世界时)和GMT(格林威治标准时)是相同的时间标准,都是基于天体观察的。
UT 是相同标准的“科学”名称。GMT:格林威治时间,是标准的“民间”名称。
因此,格林威治标准时(GMT)和世界时 (UT) 是相等的。
UTC是我们现在用的时间标准,GMT是老的时间计量标准。UTC是根据原子钟来计算时间,而GMT是根据地球的自转和公转来计算时间,也就是太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间就是中午12点。由于现在世界上最精确的原子钟50亿年才会误差1秒,可以说非常精确。而GMT因为是根据地球的转动来计算时间的,而地球的自转正在缓速变慢,所以使用GMT的话,会不太精准,一般情况那感觉不到差异,但是UTC更加科学和精确。
1.3 CST
中国标准时间 (China Standard Time)
1.4 DST
夏令时(Daylight Saving Time) 指在夏天太阳升起的比较早时,将时钟拨快一小时,以提早日光的使用。(中国不使用)
我们需要知道的是:
GMT + 8 = UTC + 8 = CST
1.5 操作系统时间
以Linux为例,其实Windows或者其他操作系统也是类似的。
Linux时间有两个时间:
Wall Time:系统时间,该时间由系统维护,可以是临时,也可以是网络上同步回来的,也可以是从硬件读取出来的,前提条件是系统服务正常运行,如果系统关机了,那就不存在Wall Time
RTC Time:RTC(Real-Time Clock)或CMOS时间,即硬件时间,你可以理解为主板BIOS在一声声哀嚎声中,数学老师带着一摞试卷走了进来。
好像是因为冬天天冷,体育老师冻感冒了。
所以变成了两节数学课,顺便考个试。
数学老师名叫欧岛,一个很富有数学气息的名字,常年带着一个黑框眼睛。
卷子陆续分发。
作为一个学渣,苏牧无奈的拿出了数学参考资料,想碰碰运气看能不能找到原题。
“叮!查看了数学题目,数学积分+1,当前积分1/100,等级:一级”
突然,从脑海中冒出来的声音,将他吓了一大跳,差点没从凳子上滑落下来。
一旁的同桌颜小珂忍住没有笑场。
欧岛则是狠狠的瞪了苏牧一眼。
“???…”
苏牧瞪大了眼睛,有些不可置信。
“这是什么鬼东西?这是系统??居然真的有系统这种东西?”
苏牧继续翻动,又出现了同样的声响。
“叮!您查看了数学题目,数学积分+1,当前积分2/100,等级:一级”
他只是瞟了一眼,居然就增加了积分?
苏牧觉得自己的脑子清明了些。
这些陌生的数学题目,似乎看起来也熟悉了几分。
他越发的激动起来。
这些都是真正出现在他眼前的变化!
苏牧翻书的动作越来越快,积分也越来越多,直到欧岛走过来站到了他的面前,才反应过来迅速收了回去。
这个时候,他的积分已经达到了81/100。
他并没有慌张,而是继续将试卷上的题目查看了一遍。
终于,系统迎来了新的提示音。
“叮,您的数学积分已经足够,等级:二级,当前积分0/1000!”
这一瞬间,苏牧仿佛像醍醐灌顶一般,曾经那些陌生的数学题,仿佛变成了多年的好友!
他居然!
看懂了!
看懂了!!
居然看懂了!!
苏牧的内心顿时内流满面,颇有苦尽甘来的感觉。
仿佛是要检验自己的成果,苏牧的心思完全沉寂在了试卷之中,这是一个学渣对于知识的渴望。
时间一点一滴的过去,就连苏牧自己都没有发现。
可惜的是,虽然他的数学已经达到了二级,但还是有些题目没办法运算出来。
“叮…..”
这一次不是系统的提示音,而是下课的铃声。
苏牧真的是头一次感受到了时间过的如此之快。
曾经漫长的两个小时,现在居然还让他有些意犹未尽。
这就是学霸的感觉吗?他默默的想到。
这张试卷,苏牧觉得自己应该是103分。
因为不会的题目他都空着。
而那些简单一点的题目,苏牧有一种迷之自信。
他得出的答案,一定是正确答案!
……
“我要好好学习了。”
强忍住内心的激动,苏牧摆正了