【mfc 必学的源码】【abpvnext源码解析视频】【源码官方授权平台】sdl init 源码

时间:2024-12-22 19:01:58 分类:android 名片扫描 源码 来源:psa源码

1.电脑sdl文件sdl文件双击打不开
2.如何Python写一个安卓APP
3.SDL开发笔记(一):SDL介绍、编译使用以及工程模板
4.2.0版UT怎么看IP地址

sdl init 源码

电脑sdl文件sdl文件双击打不开

       ① sdl.dll_附文件使用方法图解

       无图,这种文字就能说明白

       详细安装方法/xiakeweb2/item/e8debac3ea

       附下载地址

       sdl.dll免费高速下载_DLL文件下载,DLL文件丢失,系统文件下载

       /dll/file/?.htm

       ② SDL格式是视频文件吗

       ·SDL是什么?

       SDL(Simple DirectMedia Layer)是一个自由的跨平台的多媒体开发包,适用于 游戏、mfc 必学的源码游戏SDK、演示软件、模拟器、MPEG播放器和其他应用软件。

       它被广泛的用于许多着名的游戏。最着名的游戏是赢得LIUNX组游戏开发大奖的 文明:权利的召唤(Civilization: Call To Power)。

       SDL的作者是Sam Lantinga, Loki Entertainment Software的主力程序员(Lead Programmer)。 [编辑本段]功能介绍 ·SDL有哪些功能?

       ·视频

       设置8bpp或更高的任意色彩深度的视频模式。如果某个模式硬件不支持,可以选择转化为另一模式。

       直接写入线性的图像帧缓冲(framebuffer)。

       ③ sdl是什么是什么

       SDL是一个多义词,所指的意思分别是:

       1、SDL指的是SDL游戏库:

       SDL是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台的应用软件。

       2、SDL指的是软件安全开发周期:

       SDL即Security Development Lifecycle,是微软提出的从安全角度指导软件开发过程的管理模式。SDL不是一个空想的理论模型。

       3、SDL指的是规格描述语言:

       SDL语言是规格与描述语言。它以一种框图和流程图的形式,描述了用户要求、交换机性能指标和设计结果。适用于系统设计和程序设计初期,概括说明整个系统的功能要求和技术规范。

(3)电脑sdl文件:

       一个SDL系统就是用SDL规格所描述的一个具体物理存在,也就是目前从SDL语言的角度所关注的一切,对于目前不用SDL语言描述的,都作为SDL的环境看待。

       也就是说,一个具体的物理系统如果只用SDL描述了其中的一部分,那么这部分就是一个SDL系统,而该物理系统的其他部分对该SDL系统来讲,就都是它的环境。

       SDL系统通过信道与环境连接。从理论上讲,abpvnext源码解析视频SDL系统只需要一条双向信道与环境连接,但实际上,为了描述方便,经常为环境的每个逻辑接口提供一条信道。

       ④ 如何在code::blocks配置sdl

       ①找到codeblocks安装目录下的MinGW文件夹(我的是这样子的:“E:\program

       files\CodeBlocks\MinGW”)

       这个目录下有include文件夹,打开它。在sdl包里面有一个include\SDL文件夹,把这个文件夹拖到你的电脑里面的include文件夹里。

       ②找到codeblocks安装目录下的MinGW文件夹(我的是这样子的:“E:\program

       files\CodeBlocks\MinGW”)

       这个目录下有lib文件夹,打开它。在sdl包里面有一个lib文件夹,把这个里面的三个文件“libSDL.dll.a,

       libSDL.la和libSDLmain.a”拖到你电脑里的lib文件夹里面。

       ③把sdl包里面bin文件夹里面的SDL.dll文件拖到“C:\WINDOWS\system”(我用的是XP系统)。当然,另外一个选择是将SDL.dll随时绑定到使用了SDL库编译的*.exe文件所在的文件夹中。这通常在发布你的程序的时候使用。

       这样的话,基本的SDL就算是配置好了,可以用来写程序咯~!

       用codeblocks新建一个空项目,在这个项目里面新建一个c++(我目前学的就是C++,java、C#什么的不感兴趣)文件。敲入下面的代码:

       #include

       #include

       SDL.h>

       int

       main(int

       argc,

       char

*

       argv[])

       {

       try

       {

       if(SDL_Init(SDL_INIT_EVERYTHING

       ==

       -1))

       throw"Could

       not

       initialize

       SDL!";

       }

       catch(const

       char

*

       s)

       {

       std::cerr<<s<<std::endl;

       return

       -1;

       }

       std::cout<<"SDL

       initialized.\n";

       SDL_Quit();

       return

       0;

       }

       在左侧的Management窗口中,在项目上右击鼠标,选择构建选项,在横向目录里面选择“连接器设置”,添加“mingw;SDLmain;SDL”(直接把双引号里面的内容复制进去就好),点击确定。发现添加了三行的连接库(这就对了),然后再此点击确定。

       最后编译,运行。无误可以构建成功,虽然没有任何窗口生成,但是说明SDL配置和代码是没有问题的~!

       在生成的debug文件夹下,生成了一个stdcout的txt文档。这个文档里面记录了程序的运行结果。

       ⑤ SDL选定文件翻译出现转换翻译格式怎么办

这种状况可能是因为内存卡出现坏快,内存刻录出现问题。

       文件名变成乱码显示大小很大有几G的,几百兆的都有,甚至显示的一个文件大小超过棒子容量,用u盘检测软件会发现很多坏块。有部分可以修复,部分不能修复的只能更换内存卡。

       ⑥ sdl是源码官方授权平台干什么的 能不能删

       SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库,使用C语言写成。SDL提供了数种控制图像、声音、输出入的函数,让开发者只要用相同或是相似的代码就可以开发出跨多个平台(Linux、Windows、Mac OS X等)的应用软件。目前SDL多用于开发游戏、模拟器、媒体播放器等多媒体应用领域。如果你没有用, 可以删除。

       ⑦ sdl文件下载

       puter or a virtual machine

       Java

       Python     2.7 (not 2.6.)

       Jinja2     (python module)

       Apache     ant

       Android     SDK

       è™½ç„¶å®˜æ–¹æä¾›äº†ä¸€ä¸ªä¼¼ä¹Žè¿˜ä¸é”™çš„虚拟机镜像,但是还是有很多内容需要翻出去,所以笔者在

       å½“然你也可以下载官方镜像,因为第一次编译需要去国外下一大堆东西,所以请自备梯子。

       Virtual Machine 

       A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation: 

       Kivy Buildozer VM 

       Or select the Torrent

       åœ¨ç¬”者提供的镜像里,桌面上有一个dev_and,只要将上面写的代码,放入这个文件夹即可(当然也可以在其他目录,后面会讲到)。

       cd Desktop/dev_and/

       åˆå§‹åŒ–会在当前目录生成一个buildozer.spec文件 用于配置生成的apk相关信息

       buildozer init

       ä¿®æ”¹buildozer.spec文件

       vi buildozer.spec

       è‡³å°‘修改下面三项

       # (str) Title of your application

       title = helloworld

       # (str) Package name

       package.name = helloapp

       # (str) Package domain (needed for android/ios packaging)

       package.domain = youer.com

       ç„¶åŽæ³¨é‡Š

       # (str) Application versioning (method 1)

       #version.regex = __version__ = ['"](.*)['"]

       #version.filename = %(source.dir)s/main.py

       ä¸‹é¢è¿™è¡Œæ”¹ä¸ºéžæ³¨é‡Š

       version = 1.2.

       æœ€åŽæˆ‘们生成我们需要的apk文件

       buildozer -v android debug

       buildozer命令会在当前文件夹创建一个bin,该文件夹里面有我们想要的apk文件

       helloapp-1.2.0-debug.apk

       å®‰è£…以后应该是这样

       è¯è¯´åœ¨ç¼–译的时候可能出现空间不足的情况,根据虚拟机的不同(vmware或virtualbox)自行扩容吧。

       æœ€åŽæˆ‘们来瞧瞧简易版Python开发的这个游戏的源代码。 

       å…ˆçœ‹æ•ˆæžœå›¾

       è¯•çŽ©äº†ä¸€ä¸‹ï¼Œè¿˜æ˜¯è›®æµç•…的,有兴趣的可以下载玩一下 

       è¿™ä¸ªæ¸¸æˆä»£ç è™½ç„¶ä¸é•¿ï¼Œä½†æ˜¯è¿˜æ˜¯è›®å ç¯‡å¹…的,所以简要的说明一下流程:

       ä¸»è¦ç”±ä¸‰éƒ¨åˆ†ç»„成,一是素材,图片音频之类的文件,二是Python代码,三是kv文件,这个kv文件有点像html中的css。 

       Python代码的文件名一般命名为main.py 

       ç„¶åŽä¸€å®šæœ‰ä¸€ä¸ªå«åšXXXApp的类,并继承App。 

       æ¯”如该类叫做GameApp,那么该目录下的kv文件则必须为Game,如上图所示,如果不是,那么kv文件中的一些设定就不会生效。 

       æ¯”如设定一个标签

       Label:

       id: time

       text: 'xxxx'

       font_size:

       id为time,text文本内容为’xxxx’,然后字体为 

       å¥½å§ï¼Œç‚¹åˆ°ä¸ºæ­¢å§ï¼Œä¸è¿‡ä¼¼ä¹Žä»€ä¹ˆéƒ½æ²¡ç‚¹åˆ°~~~

       ä»Žæ— åˆ°æœ‰åšä¸€ä¸ªApp,我想我会另起一篇文章吧。

SDL开发笔记(一):SDL介绍、编译使用以及工程模板

       若该文为原创文章,未经允许不得转载 原博主博客地址: blog.csdn.net/qq...

       Qt开发专栏:三方库开发技术(点击传送门)

       无 下一篇:持续补充中…

       前言

       开发过程中,需要操作一些硬件,如播放音频、播放视频,SDL作为通用的C库,可以实现同一套代码操作设备。

       SDL简介

       Simple DirectMedia Layer是一个跨平台的开发库,旨在通过OpenGL和Direct3D提供对音频、键盘、鼠标、操纵杆和图形硬件的低级访问。它用于视频播放软件、模拟器和流行游戏,包括Valve获奖目录和许多不起眼的捆绑游戏。 SDL正式支持Windows、macosx、Linux、iOS和Android。源代码中可以找到对其他平台的支持。 SDL是用C++编写的,用C++来工作,并且还有其他几种语言的绑定,包括C语言和Python。 sdl2.0是在zlib许可下发布的。此许可证允许您在任何软件中自由使用SDL。

       SDL下载

       当前最新的版本2.0.,官方地址: /...atedserver.php

       下载服务器版UT,(v, Windows: MB | Linux: MB)安装需要M硬盘空间。

       /ut...rver/cdkey.php

       申请服务器专用CD-KEY

       下载服务器安装文件后:

       linux用户:新建一个用户帐号专门用来运行服务器,用这个用户登录,运行utlnxded.sh.bin文件。跟具屏幕提示继续。pdf编辑网站源码

       windows用户:把zip文件解压缩到硬盘中,没有安装程序,解开来就行了。

       在配置服务器前先下载最新升级补丁,给服务器程序升级。

       再下载evolutionpack2,它能帮你解决许多用web页面管理上面的问题,和修正了一些bug。

       /ut...rver/cdkey.php ,输入一些需要的信息后,服务器专用CDkey会通过email发给你。linux用户需要把收到的cdkey文件复制到你的系统文件夹中

       E 如果你已经知道怎么在注册表里添加CDKEY就跳过这一步到J。

       F 点击开始--->运行。在窗口中输入 regedit ,回车。

       G 在注册表管理器中,双击"HKEY_LOCALMACHINE"展开它,双击"software"展开它,在它下面找到"Unreal Technology"文件夹.如果这个文件夹已经存在,跳到J。

       H 添加一个新的键值。单击"software"文件夹,然后点编辑--->新建--->主键。一个新的文件夹就出现了,有一个高亮的区域让你给它命名,输入Unreal Technology 回车。

       I 单击刚才新建的文件夹,点编辑--->新建--->主键。一个新的文件夹出现啦,又有一个高亮的区域让你命名,输入 Install Apps 回车,跳到K。

       J 在Unreal Technology Installed apps文件夹下找到"UT"文件夹,如果它存在,跳到L

       K 单击"Installed Apps"文件夹,点编辑--->新建--->主键。一个崭新的文件夹诞生啦,有一个高亮的区域让我们命名,输入UT 回车。

       L 单击"UT"文件夹,点编辑--->新建--->建值。一个新的文件夹又出现啦,又有一个高亮的区域可以让我们起名字啦。输入 "CDKEY",回车。双击新建立的键值,你就可以编辑它的值。在里面输入你的上移指标源码cdkey序列号。点OK。关掉注册表编辑器。

       M 如果你知道怎么用命令行命令进入你的虚幻安装文件夹里的system文件夹,跳到步骤O

       N 用命令行建立服务器。我把我的文件安装在UTserver,我用这个举例子,输入cd utserver\system

       O 输入ucc server DM-Antalus.ut2

       如果一切顺利,一个专用服务器就架设好了,游戏中的地图是DM-Antalus。

       默认下面,专用服务器的配置是给internet游戏配置的。这意味着它他尝试和国外的主服务器联系把它加入到主服务器的数据库里,这样你的服务器就可以出现在别人的服务器搜索列表里。目前有两个不同的主服务器在运行,Epic的和Gamespy的。

       如果你在机器上已经安装了零售版的UT,那就不必运行Epic mail给你的.reg文件了,否则你注册表里的CDKEY会被改成服务器专用的,这样你自己就不能用这台机器玩了。

       如果你是在居域网里建立服务器,并且想禁止UT和主服务器联系那就编辑UT.ini里修改下面的句子(如果找不到这部分,就在最后加后这几行):

       [IpDrv.MasterServerUplink]

       DoUplink=False

       UplinkToGamespy=False

       配置服务器

       现在你应该知道最基本的架设服务器的方法了,你需要把它配置成你需要的。下面的每个部分都有详细的常见问题解答

       System 文件夹里有最重要的三个文件:user.ini runserver.bat和ut.ini 。 user.ini保存了地图循环列表。ut.ini保存了许多其他设置。runserver.bat 保存了启动服务器的设置。Linux用户没有runserver.bat文件,你要把每次都输入一长串命令启动服务器,或者你必须用一个外壳脚本启动服务器。(linux上用脚本启动UT服务器的例子参见munity.com/forums/showthread.php?s=&threadid=)

       如果你架设多个服务器,通常你会使用一个共同的ut.ini文件,然后用不同的runserver.bat或者外壳脚本启动不同的服务器,下面是一个runserver.bat的例子:

       ucc.exe server DM-Antalus?game=XGame.XDeathmatch?maxplayers=?minplayers=4?timelimit=?fraglimit=

       ucc.exe 是服务器的执行文件,"server"告诉uccc下面要架设一个专用服务器。后面的东西是一些参数,设置服务器的游戏规则。第一条是服务器初始游戏的地图名字,这个例子中是DM-Antalus。跟着是游戏类型,例子中是死亡模式。不同的参数用问号分隔。不管你输入多少参数,整个命令都必须在一行中,如果分开来就不管用了。

       下面列出ucc后面可以使用的所有参数列表。注意下面有一些参数在运行服务器是是感觉不出有什么变化的,列出它们只是为了列表了完整性:

       AccessControl 用来打开高级管理员系统。和UT.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是% 所以.就是%友队伤害。

       fraglimit=x 死亡模式最多杀人数。

       game= 游戏类型,可以用:xDeathmatch, xCTFgame,xBombingRun,或者xDoubleDom

       gamepassword= 做为客户端加入游戏时需要的密码。

       GameRules 设置特别的GameRules类,GameRules是mutator在UT中增加的新类型。通常你不需要用它。几乎所有的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= 团队死亡模式,初始地图DM-Curse3,杀人数上限.

       关于和主服务器的联系

       如果你不想你的服务器显示在游戏的服务器搜索列表里,或者你只是在居域网里的服务器,你可以在UT.ini里把下面这些关掉

       [IpDrv.MasterserverUplink]

       DoUplink=true|false 控制你的服务器是否与internet上的主服务器联系。

       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-Deck]i[-BETA

       Maps=DM-MoonTemple

       Maps=DM-Reigncaster

       Maps=DM-Golgatha

       Maps=DM-Tooth-N-Claw

       Maps=DM-Stage1

       Maps=DM-Liandri_BETA2

       如果你想玩更多的地图,就去网上下载吧。把他们解压缩后把ut2文件放到map文件夹里,utx放到texture文件夹里,以及其他相应文件都放到相应目录里,你就能使用新地图了。

       在一个游戏服务器上运行多个游戏类型

       你可能会想在一个游戏服务器上运行多个游戏类型,比如 CTF,DOM,BR。可以用以下方法切换地图,举例如下:

       比如 我们先开始一个死亡模式游戏在DM-Asbestos地图上。因为现在是死亡模式,游戏结束后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-Asbestos?game=XGame.xDeathMatch

       [XInterface.MapListDeathMatch]

       MapNum=0

       Maps=BR-Anubis?game=XGame.xBombingRun

       [XInterface.MapListBombingRun]

       MapNum=0

       Maps=CTF-Citadel?game=XGame.xCTFGame

       第三方地图和重定向

       如果你使用了不是游戏自带的第三方地图,别人连上服务器就可能花很长时间下载地图同时占用别的游戏者的带宽使游戏不流畅,解决方法可以是把地图文件放到另一个网页服务器上然后告诉客户端自动从那里下载

       用 UTcompress(可以在下载)...?的ut.ini 下面的部分重定向下载服务器:

       IpDrv.HTTPDownload]

       HTTPServer=work filter. 尤其要用到的是nat.

       第二:内核要支持tun/tap模块。

       我的是debian,自己编译的内核,所以在编译的时候就已经弄好了,由于我从来不用官方的内核,所以我就不知道debian的管方内核是不是已经有了。

       不过可以自己看一下。

       iptables的支持是不用问的,一般都是内置的。

       就是tun/tap设备的支持。 这一点,可以这样看一下:

       modprobe tun, lsmod 看一下有没有tun 如果成功,就是支持的, 而且是被编译成了模块,如果没有,可以看一下:/dev/net/,看看是不是存在tun这样一个文件,如果存在就是内核内置的,没有编译成模块,另外, 如果编译成了模块,也要注意是否有这个文件存在。不在的话,得自己建了。

       mknode /dev/net/tun, 一般现在的发行版都会在你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 文件的权限要是的。

       做好这些后就可以开始安装你的虚拟机了,

       安装好,我们再设置你的网络

       退出你的root, 然后

       cd ~ 进入你的home directory

       mkdir qemu

       cd qemu

       qemu-img create win2k.img 2G

       建立一个硬盘文件。然后我们就可以在这个上面安装win了。

       可以使用iso文件, 也可以使用光盘。

       我们这里使用光盘来安装。

       qemu -hda win2k.img -cdrom /dev/cdrom -boot d -localtime -m -win2k-hack

       这样就可以开始安装了。解释一下这里的选项:

       -hda 指定第一个硬盘。

       -cdrom 指定你的cdrom 后面的文件可以是一个iso文件

       -boot d 从光盘启动,如果从你的硬盘启动,就-boot c, -localtime使用本机的时间。 -m 就是设定内存的大小。默认是, 注意可以设得大一点的内存,但是需要你的/dev/shm足够大。

       -win2k-hack, 在安装的时候会有一个问题,它会提示你磁盘空间不够,加上这个参数就可以了。

       好了。

       安装完成了之后,就可以启动来看一把了。

       启动如下:

       qemu -hda win2k.img -boot c -localtime -m . 这样就默认使用了kqemu

       现在应该也可以上网了,但是注意虚拟机使用的是dhcp的方式来上网的。

       而且不能ping通你的本机,我想这个可能是大多数人不想要的,所以下面我们来配置网络。 通过tun/tap, 有点象vmware里的host-only

       要配置host-only(tun/tap)这样的网络,我们上面已经讲过了两个要求,现在我们来做更多的事:

       1、 建立一个文件 /etc/qemu-ifup

       内容很简单:

       #!/bin/sh

       sudo /sbin/ifconfig $1 ..0.1 netmask ...0

       然后chmod a+x /etc/qemu-ifup

       注意这里的..0.1是你的tun/tap网卡的地址,一定要注意:不能和你的实际的网卡在同一个网段。 也就是如果tun/tap是..2.0.0/, 那么你的时间网卡就不能在这个网段。

       然后写一个小的脚本:

       userinit 这个是文件名:

       文件内容如下:

       #!/bin/bash

       case "$1" in

       start)

       [ ! -e /dev/kqemu ] && mknod -m /dev/kqemu c 0

       echo > /proc/sys/dev/rtc/max-user-freq

       echo 1 > /proc/sys/net/ipv4/ip_forward

       /sbin/iptables -t nat -A POSTROUTING -o eth0 -s ..0.0/ -j MASQUERADE

       ;;

       stop)

       ;;

       esac

       然后:chmod a+x userinit

       再:mv userinit /etc/init.d/

       再: update-rc.d userinit start 2 3 .

       要注意的是这个操作是在debian 下面的做法。

       如果是在其他发行版:比如Fedora, 你可以直接写这样的script在你的/etc/rc.local文件里

       [ ! -e /dev/kqemu ] && mknod -m /dev/kqemu c 0

       echo > /proc/sys/dev/rtc/max-user-freq

       echo 1 > /proc/sys/net/ipv4/ip_forward

       /sbin/iptables -t nat -A POSTROUTING -o eth0 -s ..0.0/ -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 -net nic,vlan=0 -net tap,vlan=0

       如果嫌麻烦,

       就干脆写一个一句话的脚本:

       #!/bin/bash

       qemu -hda win2k.img -boot c -localtime -m -net nic,vlan=0 -net tap,vlan=0

       存储为win2k, 加上x的权限,然后放置到/usr/bin, 或者是/usr/local/bin下

       以后直接运行win2k, 就可以启动了。

       同理也可以安装多个系统,写多个脚本启动。

       这样比较的酷