当前位置:首页 » 编程软件 » 编译ffs

编译ffs

发布时间: 2022-06-19 00:41:39

① 计算机文件都有什么格式各有什么作用

A 对象代码库文件
AAM Authorware shocked文件
AAS Authorware shocked包
ABF Adobe二进制屏幕字体
ABK CorelDRAW自动备份文件
ABS 该类文件有时用于指示一个摘要(就像在一篇有关科学方面的文章的一个摘要或概要,取自abstract)
ACE Ace压缩档案格式
ACL CorelDRAW 6键盘快捷键文件
ACM Windows系统目录文件
ACP Microsoft office助手预览文件
ACR 美国放射医学大学文件格式
ACT Microsoft office助手文件
ACV OS/2的驱动程序,用于压缩或解压缩音频数据
AD After Dark屏幕保护程序
ADA Ada源文件(非-GNAT)
ADB Ada源文件主体(GNAT);HP100LX组织者的约定数据库
ADD OS/2用于引导过程的适配器驱动程序
ADF Amiga磁盘文件
ADI AutoCAD设备无关二进制绘图仪格式
ADM After Dark多模块屏幕保护;Windows NT策略模板
ADP FaxWork用于传真调制解调器的交互安装文件;Astound Dynamite文件
ADR After Dark随机屏幕保护;Smart Address的地址簿
ADS Ada源文件说明书(GNAT)
AFM Adobe的字体尺度
AF2,AF3 ABC的FlowChat文件
AI Adobe Illustrator格式图形
AIF,AIFF 音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式
AIFC 压缩AIF
AIM AOL即时信息传送
AIS ACDSee图形序列文件;Velvet Studio设备文件
AKW RoboHELP的帮助工程中所有A-关键词
ALAW 欧洲电话音频格式
ALB JASC Image Commander相册
ALL 艺术与书信库
AMS Velvet Studio音乐模块(MOD)文件;Extreme的Tracker模块文件
ANC Canon Computer的调色板文件,包含一系列可选的颜色板
ANI Windows系统中的动画光标
ANS ANSI文本文件
ANT SimAnt For Windows中保存的游戏文件
API Adobe Acrobat使用的应用程序设计接口文件
APR Lotus Approach 97文件
APS Microsoft Visual C++文件
ARC LH ARC的压缩档案文件
ARI Aristotle声音文件
ARJ Robert Jung ARJ压缩包文件
ART Xara Studio绘画文件;Canon Crayola美术文件;Clip Art文件格式;另一种光线跟踪格式;AOL使用的用Johnson—Grace压缩算法压缩的标记文件
ASA Microsoft Visual InterDev文件
ASC ASCⅡ文本文件;PGP算法加密文件
ASD Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming FORMat,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件
ASE Velvet Studio采样文件
ASF Microsoft高级流媒体格式文件
ASM 汇编语言源文件,Pro/E装配文件
ASO Astound Dynamite对象文件
ASP 动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件
AST Astound多媒体文件;ClarisWorks"助手”文件
ASV DataCAD自动保存文件
ASX Cheyenne备份脚本文件;Microsoft高级流媒体重定向器文件,视频文件
ATT AT< Group 4位图文件
ATW 来自个人软件的Any Time Deluxe For Windows个人信息管理员文件
AU Sun/NeXT/DEC/UNIX声音文件;音频U-Law(读作"mu-law”)文件格式
AVB Computer Associates Inoculan反病毒软件的病毒感染后文件
AVI Microsoft Audio Video Interleave电影格式
AVR Audio Visual Research文件格式
AVS 应用程序可视化格式
AWD FaxVien文档
AWR Telsis数字储存音频文件扩展名格式
Axx ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取01-99的数字)
A3L Authorware 3.x库文件
A4L Authorware 4.x库文件
A5L Authorware 5.x库文件
A3M,A4M Authorware Macintosh未打包文件
A4P Authorware无运行时间的打包文件
A3W,A4W,A5W 未打包的Authorware Windows文件

BAK 备份文件
BAS BASIC源文件
BAT 批处理文件
BDF West Point Bridger Designer文件
BFC Windows 95 Briefcase文档
BG Backgammon For Windows下的游戏文件
BGL Microsoft Flight Simulator(微软飞行模拟器)的视景文件
BI 二进制文件
BIF Group Wise的初始化文件
BIFF XLIFE 3D格式文件
BIN 二进制文件
BK,BK$ 有时用于代表备份版本
BKS IBM BookManager Read书架文件
BMK 书签文件
BMP Windows或OS/2位图文件
BMI Apogee BioMenace数据文件
BOOK Adobe FrameMaker Book文件
BOX Lotus Notes的邮箱文件
BPL Borlard Delph 4打包库
BQY BrioQuery文件
BRX 用于查看多媒体对象目录的文件
BSC MS Developer Studio浏览器信息文件
BSP Quake图形文件
BS1 Apogee Blake Stone数据文件
BS_ Microsoft Bookshelf Find菜单外壳扩展名
BTM Norton 应用程序使用的批处理文件
BUD Quicken的备份磁盘
BUN CakeWalk 声音捆绑文件(一种MIDI程序)
BW SGI黑白图像文件
BWV 商业波形文件
BYU BYU的电影文件格式
B4 Helix Nuts and Bolts文件

C C代码文件
C0l 台风波形文件
CAB Microsoft压缩档案文件
CAD Softdek的Drafix CAD文件
CAL CALS压缩位图;日历计划表数据
CAM Casio照相机格式
CAP 压缩音乐文件格式
CAS 逗号分开的ASCⅡ文件
CAT Quicken使用 的IntellCharge分类文件
CB Microsoft干净引导文件
CBI 二进制卷格式文件(用于IBM大型机系统)
CC Visual dBASE用户自定义类文件
CCA cc:邮件文件
CCB Visual Basic动态按钮配置文件
CCF 多媒体查看器配置文件,用于OS/2
CCH Corel图表文件
CCM Lotus cc:邮箱(例如"INBOX.CCM”)
CCO CyberChat数据文件
CCT Macromedia Director Shockwave投影
CDA CD音频轨道
CDF Microsoft频道定义格式文件
CDI Philip的高密盘交互格式
CDM Visual dBASE自定义数据模块文件
CDR CorelDRAW绘图文件;原始音频CD数据文件
CDT CorelDRAW模板
CDX CorelDRAW压缩绘图文件;Microsoft Visual FoxPro索引文件
CEL CIMFast事件语言文件
CER 证书文件(MIME x-x509-ca-cert)
CFB Compton的多媒文件
CFG 配置文件
CFM CotdFusion模板文件;Visual dBASE Windows用户定制表单
CGI 公共网关接口脚本文件
CGM 计算机图形元文件
CH OS/2配置文件
CHK 由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片
CHM 编译过的HTML文件
CHR 字符集(字体文件)
CHP Ventura Publisher章节文件
CHT ChartViem文件;Harvard Graphics矢量文件
CIF Adaptec CD 创建器 CD映像文件
CIL Clip Gallery下载包
CIM SimCity 2000文件
CIN OS/2改变控制文件用于跟踪INI文件中的变化
CK1 iD/Apogee Commander Keen 1数据文件
CK2 iD/Apogee Commander Keen 2数据文件
CK3 iD/Apogee Commander Keen 3数据文件
CK4 iD /Apogee Commander Keen 4数据文件
CK5 iD /Apogee Commander Keen 5数据文件
CK6 iD /Apogee Commander Keen 6数据文件
CLASS java类文件
CLL Crick Software Clicker文件
CLP Windows 剪贴板文件
CLS Visual Basic类文件
CMD Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
CMF Corel元文件
CMG Chessmaster保存的游戏文件
CMP JPEG位图文件;地址文档
CMV Corel Move动画文件
CMX Corel Presentation Exchange图像
CNF Telnet,Windows和其他其内格式会发生改变的应用程序使用的配置文件
CNM Windows应用程序菜单选项和安装文件
CNQ Compuworks Design Shop文件
CNT Windows(或其他)系统用于帮助索引或其他目的内容文件
COB TrueSpace 2对象文件
COD Microsoft C编译器产生的可显示机器码/汇编代码文件,其中附有源C代码作为注释
COM 命令文件(程序)
CPD Corel Print Office文件(图形)
CPD,CPE 传真覆盖文档
CPI Microsoft MS-DOS代码页信息文件
CPL 控制面板扩展名,Corel颜色板
CPO Corel打印存储文件
CPP C++代码文件
CPR Corel提供说明书文件
CPT Corel 照片-绘画图像
CPX Corel Presentation Exchange压缩图形文件
CRD Windows Cardfile文件
CRP Corel 提供的运行时介绍文件;Visual dBASE自定义报表文件
CRT 认证文件
CSC Corel脚本文件
CSP PC Emcee On_Screen图像
CSS 瀑布式表格文件
CST Macromedia Director Cast文件
CSV 逗号分隔的值文件
CT Scitex CT位图文件;Paint Shop Pro Grapic编辑器文件
CTL 通常用于表示一个包含控件信息的文件;FaxWork用它来保持有关每个传真收到或发出的信息
CUE Microsoft提示牌数据文件
CUR Windows光标文件
CUT Dr Halo位图文件
CV Corel版本的档案文件;Microsoft CodeView信息屏幕文件
CWK ClarisWorks数据文件.
CWS ClarisWorks模块
CXT Macromedia Director受保护的(不可编辑的)投影文件
CXX C++源代码文件

DAT 数据文件;WrodPerfect合并数据文件;用于一些MPEG格式的文件
DB Borland的Paradox 7表
DBC Microsoft Visual FoxPro数据库容器文件
DBF dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数
据库或与数据库有关产品识别;可用数据文件(能被Excel 97打开);Oracle 8.1.x表格空间文件
DBX DataBearn图像;Microsoft Visual FoxPro表格文件
DCM DCM模块格式文件
DCR 冲击波文件
DCS 桌面颜色分隔文件
DCT Microsoft Visual FoxPro数据库容器
DCU Delphi编译单元文件
DCX Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏
DC5 DataCAD绘图文件
DDF Btrieve或Xtrieve数据定义文件,它包含用于描述Btrieve或Xtrieve文件的元数据
DDIF Digital Equipment或 Compaq格式,用于保存他们图像与字处理文档
DEF SmartWareⅡ数据文件;C++模块定义文件
DEFI Oracle 7 卸载脚本文件
DEM 用于表示数字高度模型的USGS基准的文件
DER 认证文件
DEWF Macintosh Sound Cap/Sound Edit录音设备格式
DGN Macintosh 95 CAD绘图文件
DIB 设备无关位图
DIC 目录
DIF 可进行数据互换的电子表格
DIG DigiLink格式;Sound DesignerⅠ音频文件
DIR MacromediaDirector文件
DIZ 描述文件
DLG C++对话框脚本文件
DLL 动态链接库
DLS 可下载声音文件
DMD Visual dBASE数据模块文件
DMF X-Trakker音乐模块(MOD)文件
DOC FrameMaker或FrameBuilder文档;Word Star文档、Word Perfect文档、Microsoft Word文档;DisplayWrite文档
DOT Microsoft Word文档模板
DPL Borland Delph3压缩库
DPR Borland Delphi工程头文件
DRAW Acorn的基于对象的矢量图像文件
DRV 驱动程序
DRW Micrografx Designer/Draw;Pro/E绘画文件
DSF Micrografx Designer VFX文件
DSG DOOM保存的文件
DSM Dynamic Studio音乐模块(MOD)文件
DSP Microsoft Developer Studio工程文件
DSQ Corel QUERY(查询)文件
DST 刺绣机图形文件
DSW Microsoft Developer Studio工作区文件
DTA Word Bank(世界银行)的STARS数据文件
DTD SGML文档类型定义(DTD)文件
DTED 地面高度数字数据(图形的数据格式)文件
DTF Symantec Q&A相关的数据库数据文件
DTM DigiTrakker模块文件
DUN Microsoft拔号网络导出文件
DV 数字视频文件(MIME)
DWD DiamondWare数字化文件
DWG AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式
DXF 可进行互交换的绘图文件格式,二进制的DWG格式的文本表示;数据交换文件
DXR Macromedia Director受保护(不可编辑)电影文件
D64 Commodore的64位模拟磁盘图像文件

EDA Ensoniq ASR磁盘映像
EDD 元素定义文档(FrameMaker+SGML文档)
EDE Ensoniq EPS磁盘映像
EDK Ensoniq KT磁盘映像
EDQ Ensoniq SQ1/SQ2/Ks32磁盘映像
EDS Ensoniq SQ80磁盘映像
EDV Ensoniq VFX-SD磁盘映像
EFA Ensoniq ASR文件
EFE Ensoniq EPS文件
EFK Ensoniq KT文件
EFQ Ensoniq SQ1/SQ2/Ks32文件
EFS Ensoniq SQ80文件
EFV Ensoniq VFX-SD文件
EMD ABT扩展模块
EMF Windows增强元文件
EML Microsoft Outlook Express邮件消息(MIME RTC822)文件
ENC 重演文件
ENFF 中性文件格式扩展名
EPHTML Perl解释增强HTML文件
EPS 压缩的PostScript图像
EPSF 压缩的PostScript文件
ERI ERWin文件
ERR 当RobooHELP帮助编译器企图编译一个帮助系统源文件时用来存储错误消息的文件
EPX ERWin文件
ESPS ESPS音频文件
EUI Ensoniq ESP家族的压缩磁盘映像
EVY 特使文档
EWL Microsoft Encarta文档
EXC Microsoft Word禁止字字典
EXE 可执行文件(程序)
F FORTRAN文件
F2R Farandoyle线性模块格式
F3R Farandoyle分块线性模块格式
F77 FORTRAN文件
F90 FORTRAN文件
FAR Fradole Composer音乐模块(MOD)文件
FAV Microsoft Outlook导航条
FAX 传真类型图像
FBK Navison 金融备份
FCD 虚拟CD-ROM
FDB Navison 金融数据库
FDF Adobe Acrobat表单文档文件
FEM CADRE有限元素网络文件
FFA,FFL,FFO,FFK Microsoft快速查找文件
FFF GUS PnP银行文件格式
FFT 最终格式文本(IBM的DCA一部分)
FH3 Als Freehand 3绘图文件
FIF Fractal图像文件
FIG REND386/AVRIL使用的文件格式
FITS CCD照相机图像;灵活图像传输系统
FLA Macromedia Flash电影
FLC Autodesk FLIC动画文件
FLF Corel Paradox产生的格式:Navison Financials许可文件;OS/2驱动程序文件
PLI Autodesk FLIC动画
FLT StarTrekker音乐模块(MOD)文件;MultiGen Inc的Open Flight使用的文件格式;Corel过滤器文件
FM Adobe FrameMaker文档
FMB Oracle4.0版或以后版本表单的二进制源代码文件
FML 文件镜象列表(GetRight)
FMT Oracle 4.0版或以后版本表单的文本格式;Microsoft Schele+ 打印文件
FMX Oracle 4.0版或以后版本可执行表单
FND Microsoft Explorer保存的搜索文件(Find applet)
FNG 字体组文件(字体导航器,Font Navigator)
FNK Funk Tracker模块格式
FOG Fontographer模块字体
FON 系统字体
FOR FORTRAN文件
FOT 字体相关文件
FP FileMaker Pro文件
FP1 Flying Pigs for Windows数据文件
FP3 FileMaker Pro文件
FPT FileMaker Pro文件;Microsoft Fox Pro备注字体文件
FPX FlashPix位图
FRM 表单;Frame Maker或Frame Builder文档;Oracle可执行表(3.0版或早期版本);Visual Basic表单;WordPerfect Merge表单;DataCAD标志报表文件
FRT Microsoft FoxPro报表文件
FRX Visual Basic表单文本;Microsoft FoxPro报表文件
FSF fPrint Audit Tool文件格式
FSL Borland的Paradox 7表单;Corel Paradox保存的表单
FSM Parandoyle示例格式
FT Lotus Notes全文本索引
FTG 全文本搜索组文件,由Windows帮助系统查找时产生——可以删除,并在需要时重建起来
FTS 全文本搜索引文件,由Windows帮助系统查找时产生
FW2 Framework Ⅱ文件
FW3 Framework Ⅲ文件
FW4 Framework Ⅳ文件
FXP 经Microsoft FoxPro编译的源文件
FZB Casio FZ-1银行转储
FZF Casio FZ-1完全转储
FZV Casio FZ-1声音转储
INI 初始化文件;MWave DSP Synth的"nwsynth.ini” GMS安装;Cravis Ultrasound bank安装
INP Oracle 3.0版或早期版本的表单源代码
INRS INRS远程通信声频
INS InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备
INT 中间代码,当一个源程序经过语法检查后编译产生一个可执行代码
IOF Findit文档
IQY Microsoft Internet查询文件
ISO 根据ISD 9660有关CD-ROM文件系统标准列出CD-ROM上的文件
ISP X-Internet签字文件
IST 数字跟踪设备文件
ISU InstallShield卸装脚本
IT 脉冲跟踪系统音乐模块(MOD)文件
ITI 脉冲跟踪系统设备
ITS 脉冲跟踪系统抽样,Internet文档位置
IV Open Inventor中使用的文件格式
IVD 超过20/20微观数据维数或变量等级文件
IVP 超过20/20的用户子集配置文件
IVT 超过20/20表或集合数据文件
IVX 超过20/20微数据目录文件
IW Idlewild屏幕保护程序
IWC Install Watch文档

J62 Ricoh照相机格式
JAR Java档案文件(一种用于applet和相关文件的压缩文件)
JAVA Java源文件
JBF Paint Shop Pro图像浏览文件
JFF,JFIF,JIF JPEG文件
JMP SAS的JMPDiscovery表格统计文件
JN1 Epic MegaGames的Jill of the Jungle数据文件
JPE,JPEG,JPG JPEG图形文件
JS javascript源文件
JSP HTML网页,其中包含有对一个Java servlet的参考
JTF JPEG位图文件

K25 Kurzweil 2500抽样文件
KAR 卡拉OK MIDI文件(文本+MIDI)
KDC Kodak光增强器
KEY DataCAD图标工具条文件
KFX KoFak Group 4图像文件
KIZ Kodak数字明信片文件
KKW RoboHELP帮助工程索引设计器中与主题无关的K开头的所有关键字
KMP Korg Trinity KeyMap文件
KQP Konica照相机本地文件
KR1 Kurzweil 2000抽样(多软驱)文件
KRZ Kurzweil 2000抽样文件
KSF Korg Trinity抽样文件
KYE Kye游戏数据

LAB Visual dBASE标签文件
LBM Deluxe Paint位图文件
LBT,LBX Microsoft FoxPro标签文件
LDB Microsoft Access加锁文件
LDL Corel Paradox分发库
LEG Legacy文档
LES Logitech娱乐系统游戏配置文件(与REC文件一样)
LFT 3D Studio(DOS)放样文件
LGO Paintbrush(Microsoft画图应用程序)的徽标文件
LHA LZH更换文件后缀
LIB 库文件
LIN DataCAD线型文件
LIS 结构化查询报告(SQR)程序产生的输出文件
LLX Laplink交换代理
LNK Windows快捷方式文件
LOG 日志文件
LPD Helix Nut和Bolt文件
LRC Intel可视电话文件
LSL Corel Paradox保存的库文件
LSP AutoLISP、CommonLISP和其他LISP语言文件
LST 列表文件
LU ThoughtWing库单元文件
LVL Parallax Software的 Miner Descent/D2 Level扩展
LWLO Lightwave分层对象文件
LWOB Lightwave对象文件
LWP Lotus WordPro 96/97文件
LWSC Lightwave视景文件
LYR DataCAD层文件
LZH LH ARC压缩档案
LZS Skyroads数据文件

M1V MPEG相关文件(MIME"mpeg”类型)
M3D Corel Motion 3D动画文件
M3U MPEG URL(MIME声音文件)
MAC MacPaint图像文件
MAD Microsoft Access模块文件
MAF Microsoft Access表单文件
MAG 在一些日本文件中发现的图形文件格式
MAGIC 魔力邮件监视器配置文件
MAK Visual Basil或Microsoft Visual C++工程文件
MAM Microsoft Access宏
MAN UNIX手册页输出
MAP 映射文件;Duke Nukem 3D WAD游戏文件
MAQ Microsoft Access查询文件
MAR Microsoft Access报表文件
MAS Lotus Freelance Graphics Smart Master文件
MAT Microsoft Access表;3D Studio MAX材料库
MAUD MAUD抽样格式
MAX Kinetx的3DStudio MAX文件;该格式用于一个3D场景文件;Paperport文件;OrCAD设计文件

② 哪位大侠能教教刷机原理啊刷机包里面的各个文件(bin,ffs,rc1,rc2)都是什么啊,能不能自己修改呢

刷机教程,安趣上面好多,网络搜索一下安趣。
基本原理,就跟电脑装系统一样的,ROM包是可以修改的。
不过目前建议不要修改。因为新手的话很多东西还不明白,建议在安趣上面学习一段时间后再来修改刷机包。

刷机基本步骤,解锁,root,RECOVERY,替换ROM包。然后重启。就好了。
另外,ROM包的修改的话,需要反编译,修改部分文件,然后再打包,再签名,如果没修改好,可能刷机不成功导致手机变砖,所以还是先不要修改刷机包,先把刷机学会,推荐安趣。

③ 哪里有下载虚拟磁盘

FreeBSD下的内存文件系统

大多数操作系统,包括FreeBSD,通常使用磁盘来保存需要存储的数据。而操作系统采用文件的形式来保存数据,因此操作系统在磁盘上存储数据需要按照一定的格式进行,以便系统能够正确存储和访问文件,数据在磁盘上的组织格式被称为文件系统,不同的操作系统通常使用不同的数据组织格式,就是说使用不同的文件系统,例如FreeBSD使用UFS,而linux使用Ext2FS等等。UFS是最古老和标准的Unix文件系统,但FreeBSD下对其进行了改进,主要目的是改善性能,改进后的文件系统也被称为FFS。

由于文件系统已经成为了操作系统访问外部磁盘数据的标准形式,操作系统很少直接访问磁盘获取数据。由于数据存储在实际应用中的重要意义,文件系统已经成为操作系统最基本的元素之一。进一步,多个操作系统可以通过同样的文件系统访问外部磁盘,而同一个操作系统也可以通过不同的文件系统访问不同的外部磁盘设备。这样一来,文件系统就成为了界于操作系统和外部磁盘设备之间的一个独立层次。

正是由于文件系统已经成为了独立的一个抽象层,因此可以在这个层次进行更为复杂的处理,例如不让文件系统从磁盘设备设备上读取数据,而是从网络上读取数据,就形成了网络文件系统,从内存中读取数据就形成了内存文件系统,对读取的数据进行加解密处理,就形成了加密文件系统,等等。

虚拟磁盘和内存文件系统

虽然目前磁盘的容量、速度和可靠性基本上能满足绝大多数应用系统的要求,但是在某些情况下,使用磁盘存储数据仍然存在一些问题。一个例子是在嵌入式系统中,系统通常没有磁盘,数据通常存储在各种不可擦写或可擦写型半导体芯片中。另一个常遇到的例子是应用系统对于数据访问要求特别高的性能,由于磁盘是一种机械设备,读写的性能总是有限的,不能满足应用系统的需要。

在这些例子中,在面对需要解决的问题的时候,通常有一个隐含前提,就是不改动操作系统和应用程序本身。如果可以改动系统,那么,人们就可以针对具体的需要设计另外一套完整的系统,上述问题事实上也就并不存在了。但是这种做法并不现实,因为这将意味着将全部操作系统和应用系统都推倒重来。因此,为了解决这些极端的需求,最简单的方法是在内存中分配一个区域作为文件系统的数据存储区,而不是使用磁盘作为存储设备,这样既能够满足操作系统对文件系统的需求,也能够满足应用系统的特殊需要。

使用内存作为文件系统基本上有两种不同的选择方式,最简单的方式是将内存中的一个区域模拟一个磁盘分区,然后就可以在这个虚拟磁盘上按照现有的文件系统组织数据,因此就需要初始化文件系统、装载与卸载等标准文件系统操作。另一种方法为重新设计一套全新的文件系统,其中并不包含任何磁盘的概念,但在系统中表现为一个标准文件系统。明显的,重新设计一套文件系统需要更多的工作量,因此,绝大多数情况下,人们使用第一种虚拟磁盘的方法。但是,现有的文件系统,如UFS等,都是基于磁盘设备而设计的,因此很多概念,比如按磁盘块读取数据、缓冲、碎片等等,都是针对磁盘设备提出的,理论上基于内存的存储不需要这些概念,因而也不会出现这些概念需要解决的一些问题。

由于内存文件系统是使用内存来模拟磁盘操作,因此数据都是在内存之间传输,就可以得到比较高的读写性能。当然,使用内存文件系统,一旦系统重新启动,所有的内容也就不再存在了,因此只能用来保存临时性的数据。也是由于是使用内存来保存数据,缓冲实质上没有任何意义,传统文件系统中的异步”async”和同步”sync”这两种概念的意义也不大了。

虽然从本质上讲,内存文件系统根本不需要缓冲,直接访问就能达到最好的效率,但是很难做到这一点,尤其是由于目前都还是使用内存来模拟一个磁盘设备的情况,内存文件系统事实上还是经过了缓冲。从这个地方,也可以看出目前使用的内存文件系统的弊病,内存文件系统本身占据了一份内存,磁盘缓冲又会占据一份内存,这样就导致了内存的浪费。在系统有交换分区存在的条件下,一旦系统内存紧张,该文件系统中的有关数据也会被交换到具体的交换设备上,同样避免不了对磁盘的物理访问,达不到提高性能的目的。而且一旦包括交换空间在内的所有虚拟内存用光,系统就无法正常提供服务了,从而影响系统的稳定性。

试图使内存文件系统绕过磁盘缓冲其实并不容易,这是因为在目前的操作系统中,磁盘是非常重要的一部分。非常重要的虚拟内存概念就是使用磁盘设备作为交换设备模拟内存,而磁盘缓冲而是通过内存来缓冲磁盘数据,虚拟内存、磁盘缓冲就是操作系统内存管理中的最基本元素,如何处理这两个部分,也是影响系统性能的最重要的因素。文件系统实质上是建立在操作系统的内存管理部分之上的,因此绕过这一部分,需要更困难的内核工作。

因此,对于高负载的服务器,使用内存文件系统实际上得不偿失,在系统内存很快用光的情况下,操作系统将进行磁盘交换,导致系统性能严重下降,这比起直接使用磁盘文件系统更为糟糕。事实上,在高负载的服务器环境下,允许系统使用更多的内存来缓冲磁盘数据,更有效的发挥系统的磁盘缓冲能力,在实际使用中更为有效。

使用MFS

FreeBSD下最基本的内存文件系统为MFS(Memory File System)文件系统,它是直接从虚拟内存中为文件系统申请空间。虽然它命名为MFS,实质上它还是使用的标准UFS的数据组织格式,仍然有扇区、磁盘块等基本概念,但是为了使用方便,它没有创建可以被直接访问的虚拟磁盘设备。实际上MFS是一个不完整的虚拟磁盘系统,由于它没有虚拟磁盘设备,因此导致在一些情况下它不能很方便的应用。

使用MFS需要内核中的”options MFS”支持,这个选项实质上是一个标准选项,在缺省情况下的FreeBSD内核都支持,因此一般不需要重新定制内核。然后就可以使用mount_mfs来安装内存文件系统,或者在标准mount命令中指定mfs选项。

# mount_mfs -s 131072 /dev/da0s1b /tmp

执行这个命令之后,mount_mfs就从虚拟内存中申请131072个扇区大小的内存,用来作为MFS文件系统的存储区域,并将该文件系统安装到/tmp目录下。这里使用/dev/da0s1b作为设备文件参数,这个磁盘分区为一个交换分区,它并不是实际使用的磁盘设备或虚拟磁盘,它的基本目的是用来满足mount_mfs的参数需要。即使系统中有多个交换设备,这也并不意味着MFS就只会交换到这个指定设备上,虚拟内存按照自己的规则分配物理内存或交换空间。

当然,使用交换设备作为参数事实上也起到了一些额外的作用,因为对于标准文件系统来讲,必须通过初始化的过程确定文件系统的组织格式,而MFS不需要独立的初始化过程,在mount_mfs操作的时候就同时执行了初始化,因而mount_mfs可以从这个设备文件中读取一些初始化相关的参数信息,例如每个扇区大小等,来初始化MFS文件系统。通常扇区尺寸为512字节,因此该文件系统总大小为64M。

这里就可以看出,基本的MFS是不存在虚拟磁盘设备的,mount_mfs直接申请内存并用作文件系统,而在mount命令中使用的设备参数为交换设备而非虚拟磁盘设备。一些情况下希望操作虚拟磁盘设备,那么使用MFS就不方便了。

使用vn伪设备

MFS是通过一个独立的文件系统来达到内存文件系统的目的,伪设备VN就是通过另一种方式来达到这个目的,它直接模拟一个虚拟的磁盘设备,那么在这个虚拟磁盘设备中可以应用各种不同的文件系统来保存数据。VN设备需要内核支持"pseudo-device vn"配置和/dev目录下的设备文件vn0、vn0c等,这通常不是缺省配置,需要用户重新定制内核。

VN设备主要使用文件作为虚拟磁盘的存储空间,例如将光盘的镜像文件用作虚拟光盘设备,将软盘的镜像文件作为虚拟软盘设备等等。当然模拟是有一定限度的,主要用来模拟文件系统,例如虚拟光盘设备上就没有音轨数据,无法作为CD播放等等。

显然使用内存保存虚拟磁盘数据,与使用文件相比甚至更为简单。因此,VN设备也支持使用内存来模拟一个虚拟磁盘。VN设备需要使用vnconfig程序来控制虚拟磁盘设备,那么为指定虚拟磁盘磁盘申请内存,并配置该虚拟磁盘的操作为:

# vnconfig -s 131072 /dev/vn0c

这里使用-s参数指明申请内存空间的大小,而vn0c为空闲的虚拟磁盘设备。配置好了虚拟磁盘之后,就可以使用标准的磁盘操作命令对磁盘进行操作,包括文件系统的初始化。对于虚拟磁盘设备来讲,一般不需要分区操作,而是直接进行文件系统操作,事实上虚拟磁盘通常也没有分区的概念,fdisk命令也不识别虚拟磁盘,可以将虚拟磁盘设备当作一个完整的分区设备。这是因为在Unix下本来是没有磁盘分区的概念的,这个概念是DOS/PC概念,因此FreeBSD对磁盘分区的支持限于可能存在其他系统的物理磁盘,对于只用于Unix的虚拟磁盘,就不需要这个概念了。

# disklabel -r -w /dev/vn0c auto

# newfs /dev/vn0c

# mount /dev/vn0c /tmp

由于使用VN设备比起MFS来讲要多一个创建虚拟磁盘设备的过程,因此使用vnconfig就与使用mount_mfs不同,要略微麻烦一些,除了需要经历vnconfig配置虚拟磁盘之外,还需要初始化磁盘设备、创建文件系统等步骤。

显然,由于创建了虚拟磁盘设备,在这里就不再是裸的MFS系统,而是一个更为完善的虚拟磁盘系统。显然,这里就不需要MFS的帮助,而在newfs和mount时直接使用UFS文件系统。理论上可以使用各种不同的文件类型格式,并不限于是UFS。

内存磁盘设备md

使用MFS系统,就可以最方便快捷的建立内存文件系统,使用vn设备,就可以建立内存文件系统相关的虚拟磁盘设备,基本上,这两个内存文件系统将满足绝大多数应用系统的需要。然而,一个非常重要的问题仍然存在,就是这些内存文件系统都是在系统启动之后,通过相应的配置命令进行配置的,而在一些情况下,需要在系统启动或启动之前,就配置好内存文件系统。

这种在系统启动之前要求配置好内存文件系统的例子之一就是系统安装程序,因为安装系统通常都是使用光盘或软盘启动,光盘或软盘作为系统的根文件系统当然是可行的,但总存在种种限制,例如软盘的访问速度和可靠性限制,光盘的只读限制等等。因此,目前的FreeBSD的系统安装程序,是使用内存文件系统作为安装系统的根文件系统,而不是试图将软盘或光盘作为安装系统的根文件系统。在这种情况下,通常使用一个独立的系统镜像文件,在启动之前载入内存,作为内存文件系统的初始数据来配置内存文件系统。

为了达到这个目的,就需要使用系统中的伪设备md,这需要相应的内核支持"pseudo-device md",这个选项通常需要重新定制内核。此后,还需要在/dev目录下创建相应的设备文件md0和md0c。这样使用新内核重新启动之后,就可以用使用普通磁盘一样的方法来使用它了,而不需要任何配置过程。

# disklabel -r -w /dev/md0c auto

# newfs /dev/md0c

# mount /dev/md0c /tmp

这里不需要使用任何配置程序配置虚拟磁盘设备,因为在启动过程中它就被自动配置了,内核为设备自动申请必要的内存空间。需要注意的是,使用MD设备并没有指定磁盘的大小,因为预先保留的md磁盘的大小是在编译内核时就确定的,缺省大小为20000个扇区。如果要更改内核为MD设备分配的空间大小,就需要在定制内核时改变设置选项”MD_NSECT”的值,并重新编译内核。显然,这样做显然比较麻烦,也使得它的实际用处不大。

但当MD设备用在安装系统的时候,作为最初启动的虚拟磁盘需要载入一个预先配置好的磁盘镜像文件,这个时候虚拟磁盘的大小就是由这个磁盘镜像文件决定的,而不再是MD_NSECT设置的值。正是由于MD设备在启动过程中配置,因而灵活性不足,就使得MD设备主要用在安装系统中。

启动镜像设置

对于系统安装程序,或者一些嵌入式系统来讲,存储数据的物理设备无法很方便的作为文件系统存在,例如存储设备为不可擦写的ROM或者具备一定擦写寿命的Flash中,这些设备如果用作文件系统就有各种各样的限制,此时就需要使用内存文件系统作为辅助,例如使用内存文件系统作为根文件系统,或者作为临时文件系统等等。

但是由于内存文件系统是使用不可长期保存的RAM存储器保存数据,系统重新启动或断电后其中保存的数据就不再存在,因此每次启动之后虚拟磁盘中的数据都是随机的,需要重新进行初始化操作。也可以提供一种手段为最初的虚拟磁盘提供初始数据,通常这通过使用镜像文件的方法来完成。

使用伪设备MD,就可以将一个预先准备好的文件作为md设备的镜像数据,这样MD设备一旦创建就已经具备了必要的数据,而系统启动之后立即可以访问已经具备数据的虚拟磁盘了。通过这样的操作,就可以使用虚拟磁盘文件系统作为根文件系统,启动其中的系统安装程序。

因此,这个时候就需要为MD设备准备初始镜像文件,最直接的方法是首先用确定的大小创建MD设备,初始化文件系统,安装上文件系统并复制必要的数据,然后在卸载文件系统,使用dd命令直接操作虚拟磁盘设备,将数据复制到一个镜像文件中。但是由于MD设备的大小比较不容易改变,因此这种方法并不灵活。此外,由于MD设备被作为一个虚拟的物理磁盘被系统处理,系统对它的处理事实上是和真实物理磁盘设备的处理方法也是一样的,因此也可以使用物理磁盘,创建文件系统并复制其镜像的方法来获得镜像数据。

使用虚拟磁盘MD和物理磁盘都可以得到镜像文件,但是这两种方法都不是很灵活,最好的方法是可以直接修改镜像文件本身。事实上VN设备正是用作这个处理任务,它能使用镜像文件作为虚拟磁盘的存储区域,使用VN设备创建并修改镜像文件的数据是非常适合的。因此在大小一致的条件下,就可以直接将VN设备的镜像文件复制到MD设备上,然后将MD设备安装到系统中,就可以访问到具体数据。

因此,使用VN设备预先定制好MD设备使用的镜像文件是最常用、最方便的方法。系统载入镜像文件的过程应该在启动之前完成,以便系统在启动过程中能够配置好该MD设备。事实上,镜像文件是由Boot Loader载入的,作为MD设备的缺省数据。当然,另一种选择是直接将镜像文件写入内核文件中,使得镜像数据和内核一起载入。将镜像文件写入内核的方式需要改动内核,并且写入之后就不容易改变镜像文件中的数据,因此,目前这种方式很少被用到。

为了将镜像文件写入内核,需要设置内核选项MD_ROOT_SIZE,需要指定它的尺寸大于镜像文件的尺寸,以便系统在内核中保留出大于镜像文件的自由空间,以使得写入的数据不至于覆盖内核中有用的数据。这个参数和MD_NSECT是不同的,但它也为一个虚拟磁盘预保留了空间。如果是使用Boot Loader来载入镜像文件,就不能设置这个选项,因为这将导致系统在启动时初始化多个虚拟磁盘,而只有第一个虚拟磁盘md0才是可以启动的。

当然,一个能够将MD设备作为启动根文件系统的内核,除了标准的md和MFS选项之外,还需要"options MD_ROOT"的设置选项,以保证内核搜索MD设备的作为根文件系统。这个设置也可以写作"MFS_ROOT",以便和早期的FreeBSD系统兼容,早期的FreeBSD系统没有使用md伪设备,而是使用第二种直接写入内核的MFS文件系统作为根文件系统。

几种不同方式的比较

无论是MFS,还是VN设备和MD设备,它们对数据的处理方式其实是非常类似的,MFS就是直接在内存中开辟一个UFS格式的区域,用作文件系统,这个区域其实就是一个虚拟磁盘镜像。而VN设备和MD设备是先申请内存空间,然后采用标准的文件系统工具进行处理,因此更为灵活。

最为重要的一点区别实际上是它们获得自由内存空间的方式不同,MFS和VN实际上是使用动态的方式申请虚拟内存,而md设备实际上是在系统启动之前已经分配完毕,是一种静态的方式,其实是通过内核申请空间的方式MALLOC分配的。这样就导致MFS和VN设备申请的内存是按照虚拟内存的方式进行处理,就是说它们是基于交换空间的,在物理内存不够的情况下将被自然的交换到磁盘设备中。而MD设备使用的内存是内核申请的,因而位于内核空间中,主要占用物理内存。

这两种不同的使用内存的方式,造成了这几种不同的内存文件系统的不同用途和使用限制,MFS和VN可以使用更多的交换空间,因而容量更大,使用更灵活,但在高负载的情况下由于系统交换,仍然会造成磁盘访问。虽然对于md设备,这种现象理论上不会发生,但md设备的大小是受到物理内存的限制的,占用的是宝贵的内核空间,因此主要用来处理比如启动镜像这样的情况,而很少用来处理其他任务。

除了这些文件系统之外,FreeBSD上事实上还有其他的一些内存文件系统,例如V9FS,这种文件系统的特征是一个纯粹的文件系统,没有涉及磁盘的那些扇区、块等概念等等,这些文件系统目前还不是很完善,也不是标准系统的一部分。

对于内存文件来讲,一些特色其实是非常有意义的,例如文件系统的压缩技术,由于它能够减少内存空间的大小,因此对于内存文件系统是非常有意义的,可以用于嵌入式系统等领域。虽然有人在这个方面曾经做过努力,但目前这种特性在FreeBSD下还不能直接得到。

FreeBSD 5.0中内存文件系统

当对这几种不同的文件系统进行分析比较之后,可以发现它们存在很多种共性,例如MFS和vn设备对于内存的使用方式是相同的,而vn设备和md设备由于都是虚拟磁盘,因此其内容是相同的,这也导致了可以使用vn设备为md设备创建镜像文件。因此,完全可以将这三种不同的使用内存文件系统的方式合并起来,使设置和操作更为简单易用。

事实上,之所以存在这几种不同的内存文件系统,源于FreeBSD的历史开发过程。最早的内存文件系统显然是MFS,但由于不存在虚拟磁盘,存在种种不统一和协调的地方,因此后来就设计了MD设备。VN设备则与此无关,它最初就是为了文件作为存储设备而设计的,但使用内存作为存储显然也十分直接和简单。

因此,在最新的FreeBSD 5.0版本中,这些内存文件系统的设置都统一起来,特别是将vn设备和md设备的功能都统一到新版本的伪设备md中。并且在FreeBSD 5.0下,设备的创建和内存的分配更为方便,不象在4.x之前,系统中的配置选项只能指定一定数量的虚拟磁盘设备(缺省是一个设备)。而且,由于FreeBSD 5.0使用了DEVFS特色,设备文件的创建是自动进行的,不再需要手工使用MAKEDEV命令创建设备文件入口。

例如,需要从虚拟内存中申请内存创建内存文件系统的时候,就需要执行md设备的控制程序mdconfig:

# mdconfig -a -t swap -s 30M

这就会在虚拟内存中申请30M空间,并创建虚拟磁盘,使用的虚拟设备为第一个md设备md0,如果系统中的md0设备已经被占用,那么mdconfig就依序向后寻找下一个空余的md设备,并创建它。由于mdconfig能自动创建新的设备,这样就解决了在内核配置文件指定伪设备数量的问题。

也可以使用-u指定使用的md伪设备的序号,例如下列命令将创建md10,并使用它作为虚拟磁盘设备:

# mdconfig -a -t swap -s 30M -u 10

上面的命令都是使用虚拟内存空间作为数据存储空间,是由swap参数指定的。同样,使用mdconfig也能从内核空间中创建虚拟磁盘,此时-t指定的存储类型参数为malloc,这告诉内核使用内核的MALLOC方法申请内存。

# mdconfig -a -t malloc -s 30M

这种方法就相当于老的md设备的申请内存的方法,但显然更为灵活,因为可以在具体使用过程中申请内存和设备,这是因为FreeBSD 5.0的内核允许更灵活的使用MALLOC内存申请方式。当然,一般还是主要使用swap申请虚拟空间的内存。

由于mdconfig和伪设备md将完全代替vnconfig和伪设备vn,那么使用mdconfig也能创建使用文件作为虚拟磁盘的与vn兼容的方式,这需要指定存储类型参数为vnode,并使用 -f指定具体的存储数据的物理文件名字。

# mdconfig -a -t vnode -f imagefile -s 30M

在使用mdconfig配置好虚拟磁盘之后,就可以使用disklabel、newfs、mount等管理虚拟磁盘。而在不需要这些虚拟磁盘的时候,就可以卸载相应的文件系统,并使用mdconfig删除指定的磁盘等。

# mdconfig -l

使用参数”-l”,则mdconfig列出系统中所有的虚拟磁盘设备。

# mdconfig -d -u 0

为了删除指定了磁盘,需要使用”-d"参数,而使用"-u 0”则指定删除序号为0的虚拟磁盘,即md0。

④ UEFI常用术语缩写,求中文!!

UEFI Unified Extensible Firmware Interface 统一可扩展固件接口
EDK EFI DevKit 可扩展固件接口设备装备包
PCD Platform Configuration Database 平台配置数据库
DEC package DEClaration 打包申明
INF INFormation File 信息文件
DSC platform build DEScription 平台构建描述
FDF Flash Device File 闪存设备文件
MDE Mole Development Environment 模块开发环境
ECP Edk Compatiblity Pkg Edk兼容包
IPF Itanium Processor Family 安腾处理器系列
VFR Visual Forms Representation 可视化表格描述
GC Graphics console 图形控制台
EBC EFI Byte Compiler 可扩展固件接口字节编译器
IPF Itanium Processor Family 安腾处理器系列
FFS Firmware File System 固件文件系统
FV Firmware Volumn-->Volume 固件卷
EC Embedded Controller 嵌入式控制器
ASL ACPI Source Language 高级配置和电源管理接口源语言(Advanced Configuration and Power Management Interface)
ME Manageability Engine 驱动引擎
SCU System Control Unit 系统控制单元
SEC Security 安全
HOB Hand-Off Block 切换单元
PEI Pre-EFI Initialization 预置可扩展固件接口初始化
PPI PEIM to PEIM interface 预置可扩展固件接口模块间的接口
BFV Boot Firmware Volume 启动固件卷
DEPEX Dependency Expression 依赖性表达
IPL DXE Initial Program Load DXE初始程序装载
DXE Driver Execution Environment 驱动执行环境
CSM Compatibility Support Mole 兼容性支持模块

TPM Trusted Platform Mole 可信平台模块
TXT Trusted Execution Technology 可信执行技术
AMT Active Management Tech 活动管理技术
SMI System Management Interrupt 系统管理中断
TDP Thermal Design Power 热学设计电源
ULPI UMTI+ Low Pin Interface UMTI +少针脚接口
MIPI Mobile Instry Processor Interface 移动工业处理器接口

⑤ 在windows下的嵌入式开发环境

嵌入式开发是个很宽泛的概念,嵌入式开发一般分为软件和硬件两大块。
软件方面又可以分为linux方向和非linux方向,如果做linux方向的话一般host侧选择linux,不过也可以在windows上安装linux虚拟机实现;而非linux方向的话,一般操作系统提供商都会提供自己的开发环境,而这种开发环境一般都是基于windows上的,不过要付费,比如Vxworks的Tornado,再如WinCE下的eMbedded Visual C++ 和wince with platform bulid。
还有就是dsp芯片这块,blackfin用的Visual DSP,TI 系列DSP所用的CCS,这些都是Windows下的集成开发环境。

⑥ Microsoft VBScript 编译器错误 (0x800A0401)

改为:
conn.Execute "insert into love_yl(username,kind,title,content,addtime,flag,rmb,yl,tel,yla,data,yjfy,xffs,hddata)values('" & UserName & "','" & kind & "','" & Title & "','" & content & "','" & Now() & "','" & article_flaga & "','" & love_articlea & "','" & yl & "','" & tel & "','" & yla & "','" & data & "','" & yjfy & "','" & xffs & "','" & hddata & "')" '文章入库

即在&前后加上空格。&与变量连在一起,就不是字符串连接符了,而是长整型的类型定义符。
变量名后加类型定义符
%——整型(INTEGER)
&——长整型(LONG)
!——单精度实数(SINGLE)
#——双精度实数(DOUBLE)
$——字符串(STRING)

⑦ 有谁知道如何安装配置安全的freeBSD还有php.ini怎么配置

我的FreeBSD5.3配置笔记(相同于5.4\6.0)

接触FreeBSD时间不长,我发现配置FreeBSD对于象我这样的新手还是很有些困难,经过几天的研究取得了一点进展,现在我的配置方法写出来希望新手能少走一些弯路。
1.安装完成配置xorg,命令如下:
#Xorg -configure
这时,当前目录下就多了一个xorg.conf.new的文件,把它cp到/etc/X11/下:
#cp xorg.conf.new /etc/X11/xorg.conf
然后,编辑xorgcfg -textmode,修改一下屏幕的分辨率.

2.启动gnome
在用户主目录下创建.xinitrc文件,加入以下内容:
exec gnome-session
#startx 即进入gnome

3.启动KDE
方法1:
在用户主目录下创建.xinitrc文件,加入以下内容:
exec startkde

方法2:
修改一下/usr/X11R6/1ib/X11/xinit/xinitrc文件
拉到文件最后...看到..twm了吗...从这里起..后最后前面都加#吧..
然后加上一句:
startkde

方法3:
直接输入
# echo "/usr/local/bin/startkde" >> ~/.xinitrc 就行了

4.打开声音
修改/boot/defaults/loader.conf
将下面两项的NO改为YES
sound_load="NO"
snd_driver_load="NO"

5.汉化图形界面
1.安装kde-i18n-zh_CN:
#cd /usr/ports/chinese/kde3-i18n-zh_CN
#make install clean
2.安装字体
在/usr/X11R6/lib/X11/fonts/下建立TrueType目录
将windows下的SIMSUN.TTC复制到TrueType目录
双击SIMSUN.TTC,字体就安装好了
3.更改语言环境为中国,简体中文
4.在KDE的控制中心》外观和主题》字体 中修改字体为SIMSUN

6.安装fcitx输入法
1.通过ports安装fcitx
#cd /usr/ports/chinese/fcitx
#make install
2.修改~/.xinitrc,添加:
export LANG=zh_CN.eucCN
export LC_CTYPE=zh_CN.eucCN
export XMODIFIERS='@im=fcitx'
fcitx&
exec startkde
6.#qtconfig
然后选择-->Interface--->XIM Input Style 选Over the Spot(上面的复选框也选上)-->File--Save

7.挂载windows分区并支持中文文件名
1.建立挂载点,在/mnt/下建立文件夹C,D,E,F
2.修改/etc/fstab文件,加入windows分区,并把分区挂载到刚才建好的目录上,设置权限为读写,语言为中文并自动挂载
/dev/ad0s1 /mnt/C msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s5 /mnt/D msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s6 /mnt/E msdos rw,-L=zh_CN.eucCN,auto 0 0
/dev/ad0s7 /mnt/F msdos rw,-L=zh_CN.eucCN,auto 0 0

8.激活鼠标滚轮
修改/etc/xorg.conf
在"Mouse"中加入
Option "ZAxisMapping" "4 5"
保存推出,重启X。

9.调整屏幕偏移
开个终端窗口运行xvidtune,调整好之后现不要退出,点一下那个“Show”按钮,终端窗口中会显示几行类似于这样的信息:

hsync range 0: 31.50 - 48.50
vsync range 0: 40.00 - 70.00
"1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync

打开/etc/X11/XF86Config或者xorg.conf文件,找到Section "Monitor"段,在EndSection前面加入一行:
# 这里填入上面显示的第3行信息,前面加上ModeLine
ModeLine "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync

保存退出,重启X。

FreeBSD配置:

更新FreeBSD

完成了安装、配置,FreeBSD基本上就算装完了。不过,目前为止没有哪个通用操作系统能够保证“bug-free”,FreeBSD也一样。在重新启动之后,我们需要做一些调整;并且,通过重新配置内核,我们可以得到一个更小、更快的操作系统。

第一步要做的是同步源代码。FreeBSD是一套开放源代码的操作系统,它的全部源代码都可以通过cvsup与中央cvsup服务器,或它的某个镜像同步。

cvsup是一个可选的package,同样的,它也可以从ports里面安装(/usr/ports/devel/cvsup和 /usr/ports/devel/cvsup-nogui)。考虑到许多应用程序都依赖X的库文件,在前面安装的部分我安装了它,并且直接安装了 cvsup的package。不过,如果你有足够的耐心去一个一个地make需要的ports,那么先安装ports collection,然后make cvsup-nogui也是一个不错的主意,尽管这需要比较长的时间。

创建一个用于cvsup(1)的supfile,命名为stable-supfile:

(default host中选定的cvsup服务器——ftp.bjpu.e.cn对访问的IP进行了限制,笔者只在北京工业大学校内使用过,因此如果您无法连接这个服务器,请尝试www.cn.freebsd.org,或cvsup.freebsd.org)

*default host=ftp.bjpu.e.cn
*default base=/usr
*default prefix=/usr
*default release=cvs tag=RELENG_4
*default delete use-rel-suffix
src-all
ports-all tag=.

随后执行

cvsup -g -L 2 stable-supfile

这里需要稍微解释一下FreeBSD的几种版本。

FreeBSD包括3类分支:-RELEASE,-STABLE和-CURRENT。FreeBSD 3.x、4.x和5.0是目前受到维护的版本,如果你期待稳定运行,那么,可以选择的最新版本将是FreeBSD 4.6-STABLE(如果你是在4.6.2-RELEASE发行之后更新的,那么它实际上比4.6.2-RELEASE新,并且,它正式的CVS tag是RELENG_4,即FreeBSD 4-STABLE)。

那么,三类分支有什么区别呢?

FreeBSD的开发是非常活跃的。系统中可能会随时引入一些新的特性。最新的代码是在-CURRENT分支中引入的。-CURRENT的修改非常频繁,每天都可能有数百处修改。使用-CURRENT分支的FreeBSD需要耐心和勇气,因为你的系统随时可能崩溃(随着FreeBSD 5.0开发尾声的接近,这种现象已经越来越少),make world也可能空手而归(没有人保证-CURRENT分支能够正常编译),此外,这个分支的性能也不好(因为调试的原因,这个分支引入了大量的调试选项,这意味着运行速度不会太快)。当然,正像它的名字那样,-CURRENT分支的版本也是最新的5.0,而且,一切FreeBSD的错误和漏洞的修正都是首先在-CURRENT分支引入的。目前,-CURRENT分支硕果仅存的只有FreeBSD 5-CURRENT(指定cvs tag时写“.”),这个分支包括了FreeBSD 5.0开发的最新进展。

FreeBSD 5中将引入大量的新特性,包括核心级线程(目前FreeBSD中的线程支持仅限于用户级线程,这在多处理器的环境下性能不够好,当然,目前使用fork ()来支持的多进程线程模拟能够提供类似核心级线程的功能,但并不是所有的程序员都知道如何使用fork)、完整的Soft Updates(这一变化将提供更好的文件系统性能,同时提供更好的稳定性),等等。如果你有快速的Internet连接,一台或一些空余的机器(当然,不是生产用的服务器),并且希望为FreeBSD的开发作贡献,或者你关心操作系统的最新发展,那么,-CURRENT分支是最好的选择。此外,

由于-CURRENT分支性能不好、稳定性不够等这些缺点,对于生产的服务器来说,通常运行的应该是FreeBSD-STABLE。如同它的名字那样, FreeBSD-STABLE的目的是“稳定地运行”。-CURRENT分支中的代码,在经过一段时间(通常是7到90天,但安全更新属于特例,通常会在几个小时)的验证之后,符合版本条件(有些新特性只能用于FreeBSD 5.0)的代码会被FreeBSD-STABLE吸收,这个操作称作MFC(Merge From -CURRENT,不是Microsoft Foundation Classes:P)。

由于FreeBSD 5.0的第一个RELEASE至今仍然没有发布,因此,目前还没有5.0-STABLE。目前,FreeBSD-STABLE有两个版本,FreeBSD 3-STABLE和FreeBSD 4-STABLE,分别对应3.x和4.x的最新稳定版代码(对应的cvs tag分别是RELENG_3和RELENG_4)。由于版本的更新换代,其中3.x的-STABLE正在逐渐消亡。FreeBSD-STABLE每天平均会修改10个左右的文件。

每隔一段时间,FreeBSD的发行工程组(Release Engineering Team)会对FreeBSD-STABLE的源代码树进行锁定。这段时间(目前的规定是30天,之前还有30天准备)内,所有的MFC操作都需要发行工程组的批准,因此,FreeBSD-STABLE在这个阶段基本不会引入任何新的特性。经过这段时间之后,发行工程组会在最后锁定ports树,并 build一份所有的package,之后,这份锁定的-STABLE,可能经过若干RC(Release Candidate),被命名为RELEASE,并制作光盘发行。

顾名思义,-RELEASE的设计目标是“发行”。一个版本一旦RELEASE,那么他的功能就不会再增加了。此后的所有维护的目标都只有一个,那就是绝对稳定。如果你和-RELEASE分支同步,那么绝不会出现make无法通过的情况,而且,通常这也可以保证你的系统“绝对”稳定,因为它不会引入任何新功能(例如,4.6就是4.6,如果你想要4.6.2的功能,必须明确地指定4.6.2)。

目前,FreeBSD有很多RELEASE版本,它们的cvs tag如下。我个人建议使用最新的4.6.2-RELEASE。

对于多数人来说,-RELEASE是一个比较极端的选择。无论何时出现版本升级,如果你想跟进,那都必须修改supfile,如果你选择不跟进,那么就可能造成ports工作异常。如果经常更新,-RELEASE可以保证操作系统本身的安全性,但同其他分支一样,如果ports出了问题,那么也得一块 make,而既然这样,还不如使用-STABLE。

如果你符合下面的条件,那么RELEASE分支可能比-STABLE分支更适合你

* 你使用的软件对于操作系统的变化非常敏感,比如,它只能FreeBSD 4.5,而无法在4.6上运行;同时,你不打算采用它的更新版本,或者它的作者拒绝更新
* 操作系统的更新对于你来说没有任何意义,比如,你打算把FreeBSD当作一个相对固定的嵌入式操作系统来使用,例如,作为防火墙的一部分
* 更新会对你造成困扰,操作系统的绝大多数新特性对于你来说除了增加烦恼之外,不能带来任何其他东西。

-并且,符合以下的全部条件-

* 你每天察看FreeBSD,以及使用的全部软件的安全公告
* 你的Internet连接比较通畅

目前我本人维护的所有主机,除了作为防火墙的那台之外,使用的都是FreeBSD-STABLE。

一旦同步完源代码,就应该对整个系统进行更新。如果你没有每天察看安全公告的习惯,那就应该关心一下cvsup到底更新了哪些代码。nectar是目前 FreeBSD的Security Officer。如果你发现他一下子更新了许多代码,那么对你来说立即make world和kernel很可能是必需的。

为了更新整个系统,在/usr/src中执行

make world

以及

make kernel KERNCONF=内核配置文件名

当然,也可以连起来执行:

make world kernel KERNCONF=内核配置文件名

如果你的计算机运行速度较慢,那么,对于基本系统的更新(相当于不包括库的一次world),可以用

make most

替代make world,但make world是一个不错的主意,因为它能够保证对C运行环境的改变应用到所有的程序中,如果修正的不是动态连接的C函数库,那么make world可以保证代码的一致性。

make kernel是一个需要重新启动的操作。如果你的make world修改了系统的关键服务,那么最好也重新启动一下。我很少有耐心看完make world和kernel的执行,根据系统的运行速度不同,这需要一个小时到一天的时间,而且,不是所有的SSH客户端都能够长时间正确的执行,例如, SecureCRT的多个版本都有内存泄漏问题。

为了解决这个问题,我用下面的命令来完成更新:

make world kernel KERNCONF=内核配置文件名 clean > /var/log/world,out && reboot &

这个命令能够记录更新的全过程,如果在什么地方编译失败,你可以很快地找到原因。对于多数人来说,由于后面的&&,只需要察看uptime就能知道便以是否成功。

需要说明的是,FreeBSD的make world并不总能成功。有时需要修改一些环境变量才能成功完成make。为了保证make成功,在/usr/src中执行任何make操作之前,建议你看一眼UPDATING中是否有特殊的要求(这种要求并不是在FreeBSD Release的时候才会出现,很多时候他会在某个CURRENT中引入,然后随着MFC进入-STABLE分支),并且,在进行大的版本升级之前(跨 RELEASE,甚至主版本号),首先执行下面的命令

mergemaster -p

并在make world之后执行

mergemaster -i

运行mergemaster脚本需要一定的Unix配置知识,不过,由于配置文件中包含很多帮助信息,因此,只要master.passwd、group 这样的文件不出大问题(如果cvsup更新了master.passwd,那么就需要留神,因为master.passwd标准配置是root口令为空,这时需要用m来合并,而不是使用i安装),mergemaster并不会引入什么新的问题。

前一条命令是更新make的配置(/etc/defaults/make.conf和/etc/make.conf)。对于多数人来说,除非进行跨版本升级,否则一般情况下是不需要这样做的。后一条命令是同步全部配置,并安装以前不存在的配置文件,而不进行提示。

笔者曾经遇到过FreeBSD因为系统日期不正确而无法make的情况,因此,再次特别提醒大家,如果你的系统日期不正确,最好是用date命令修改一下,或者干脆用ntpdate或ntpd来同步时间。关于如何使用ntp,将在以后说明。

以后我们将讲解FreeBSD内核的配置,以及如何配置make.conf来优化FreeBSD的编译结果。

“简单的东西不容易出问题。”

至理名言!事实上,削减操作系统中那些对你没用的功能是一件非常重要的事情。这不仅仅意味着一个更小的操作系统,占用更少的磁盘空间(现在的硬盘少说也有几十GB,几兆的空间根本就是九牛一毛),而且意味着你被攻击的可能性也更低——简而言之,你不需要担心操作系统中没有安装的模块存在问题会对你造成影响。

这篇文章中,我们将一起对FreeBSD-i386的内核进行优化配置。这篇文章是针对FreeBSD4.7-STABLE写的,并且,FreeBSD 4.x的配置不会和这篇文章有太大出入。如果你要优化FreeBSD 5或FreeBSD 2/3的内核的话,则需要仔细参考它们的LINT文件了(后面将会提到)。

[注意:FreeBSD 5.0预定将于2002年11月20日发布。FreeBSD的开发组非常重视发行版本的质量,并认为这比发行版本的计划还重要,但由于同样的原因,我们往往会发现FreeBSD实际发行的版本比预定计划晚一些,通常在半个月之内。FreeBSD 5.0作为FreeBSD近期最为重要的发行版本,很可能也会延后发表,但笔者个人认为无论如何我们在今年年底之前肯定是可以看到最终的发行版本的。 FreeBSD 5.0对系统进行了大量的修改,这一系列的文章将在FreeBSD 5.0发布当天发表针对5.0的修订版本,而现有版本将保留,但进入维护阶段,不再引入新的内容。]

FreeBSD的源代码可以直接从中央cvsup服务器同步,也可以作为系统的一部分在安装的时候一兵装上。前面已经说过如何同步源代码,在此不再赘述。 FreeBSD的源代码(通常在/usr/src)包含建造基本系统的全部代码,而在/usr/src/sys中则有若干个目录,对应不同的计算机体系结构(4.x只支持i386和alpha)。i386是一个泛指的名字,包含了与Intel 80386兼容的所有机器,并不是特指80386。

简单介绍一下FreeBSD的内核文件。在4.x系统中,/kernel这个文件是默认的内核,通常正常启动使用的就是它。 /kernel.GENERIC这个文件是兼容性较强的内核,如果/kernel无法引导系统,就得靠这个文件来引导。/kernel.old是本次make kernel之前的内核,通常如果你的kernel坏掉,也可以考虑使用/kernel.old来引导系统。

/moles/是内核的模块,而/moles.old/是对应/kernel.old的模块。这些文件在每次替换kernel的时候都会同时替换。

在5.0中,内核以及内核的模块都被保存在/boot/kernel中。

在/usr/src/sys/i386/conf中有两个配置文件,GENERIC和LINT。其中GENERIC是make kernel的默认配置文件,直接make kernel生成的是GENERIC内核,但安装时命名为/kernel。系统在安装时会安装一个kernel.GENERIC,以后,这个文件不会跟随系统的make kernel更新,因此,如果你认为这个文件有必要更新的话,需要手工make kernel,并把/kernel改名为kernel.GENERIC。当然,通常并不需要这样做。

LINT是包括几乎所有内核编译配置详细信息的文件。这个配置并不是用来真正建立kernel的,他的主要用途是向用户展示可用的内核编译配置。在修改内核编译配置时,最好先参考这个文件。

为了配置自己的内核,应将GENERIC复制为一个另外的文件。习惯上这个文件和主机名相同。例如,我把自己的这台Web机器命名为apache.intranet.frontfree.net,就把配置文件命名为APACHE:

cd /usr/src/sys/i386/conf
cp GENERIC APACHE

随后,用ee APACHE编辑它。我们拿一个实际的GENERIC文件来说明。

为了节省篇幅,这个文件头上的注释被删掉了一部分。
machine i386 # 体系模型为i386
cpu I386_CPU # 支持80386
cpu I486_CPU # 支持80486
cpu I586_CPU # 支持Pentium
cpu I686_CPU # 支持Pentium Pro以及更高
ident GENERIC # 内核文件的名字
maxusers 0 # 自动检测同时允许的最大用户数

#makeoptions DEBUG=-g # 包含调试符号。通常只有current版本打开
options MATH_EMULATE #支持协处理器模拟
options INET #支持互联网
options INET6 #IPv6通讯协议
options FFS #伯克利快速文件系统
options FFS_ROOT #FFS作为根设备[必须保留]
options SOFTUPDATES #打开FFS soft updates支持
options UFS_DIRHASH #提高大型目录的支持
options MFS #内存文件系统
options MD_ROOT #MD作为根设备
options NFS #Network Filesystem
options NFS_ROOT #NFS作为根设备(需要NFS)
options MSDOSFS #MSDOS文件系统
options CD9660 #ISO 9660文件系统(光盘)
options CD9660_ROOT #CD-ROM作为根设备(需要CD9660)
options PROCFS #进程文件系统
options COMPAT_43 #兼容4.3BSD[必须保留]
options SCSI_DELAY=15000 #检测SCSI设备前的延时(ms)
options UCONSOLE #用户可以夺取控制台
options USERCONFIG #boot -c编辑器 editor
options VISUAL_USERCONFIG #菜单式boot -c编辑器
options KTRACE #ktrace(1)支持
options SYSVSHM #SYSV-风格的共享内存
options SYSVMSG #SYSV-风格的消息队列
options SYSVSEM #SYSV-风格的信号量(semaphores)
options P1003_1B #Posix P1003_1B实时扩展
options _KPOSIX_PRIORITY_SCHEDULING
options ICMP_BANDLIM #对恶意ICMP请求进行限制
options KBD_INSTALL_CDEV # 在/dev安装一个CDEV设备

# 下面两项在制作对称多处理器(SMP)内核时需要
#options SMP #对称多处理器内核
#options APIC_IO #对称(APIC) I/O

device isa
device eisa
device pci

# 软驱
device fdc0 at isa? port IO_FD1 irq 6 drq 2
device fd0 at fdc0 drive 0
device fd1 at fdc0 drive 1
#
# 如果使用东芝Libretto以及他的Y-E Y-E Data PCMCIA软驱
# 不要使用上面的fdc0,而应使用
#device fdc0

# ATA以及ATAPI设备
device ata0 at isa? port IO_WD1 irq 14
device ata1 at isa? port IO_WD2 irq 15
device ata
device atadisk # ATA 磁盘驱动器(IDE硬盘)
device atapicd # ATAPI 光驱
device atapifd # ATAPI 软驱
device atapist # ATAPI 磁带机
options ATA_STATIC_ID #静态设备编号

# SCSI控制器
device ahb # EISA AHA1742 family
device ahc # AHA2940 板载AIC7xxx设备
device amd # AMD 53C974 (Tekram DC-390(T))
device isp # Qlogic family
device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (较新的芯片组)
options SYM_SETUP_LP_PROBE_MAP=0x40
# 使用ncr可以在配置了sym和ncr的情况下挂接旧的NCR设备

device adv0 at isa?
device adw
device bt0 at isa?
device aha0 at isa?
device aic0 at isa?

device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50

# SCSI 外设
device scbus # SCSI 总线(如果使用SCSI设备,必须有)
device da # Direct Access (硬盘)
device sa # Sequential Access (磁带,等等)
device cd # CD
device pass # Passthrough device (直接 SCSI 访问)

# 通过SCSI子系统接口的RAID控制器
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device dpt # DPT Smartcache - See LINT for options!
device iir # Intel Integrated RAID
device mly # Mylex AcceleRAID/eXtremeRAID
device ciss # Compaq SmartRAID 5* series

# RAID控制器
device aac # Adaptec FSA RAID, Dell PERC2/PERC3
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device amr # AMI MegaRAID
device mlx # Mylex DAC960 family
device twe # 3ware Escalade

# atkbdc0 控制键盘和PS/2鼠标
device atkbdc0 at isa? port IO_KBD
device atkbd0 at atkbdc? irq 1 flags 0x1
device psm0 at atkbdc? irq 12

device vga0 at isa?

# 启动画面和屏幕保护程序
pseudo-device splash

# syscons 是默认的控制台驱动,类似SCO控制台
device sc0 at isa? flags 0x100

# 对于pcvt vt220控制台,启用这个和PCVT_FREEBSD
#device vt0 at isa?
#options XSERVER # 在vt控制台支持X服务器
#options FAT_CURSOR # 使用大光标
# 如果你是用ThinkPad,将下面的一行和其他PCVT相关设备的注释去掉
#options PCVT_SCANSET=2 # IBM使用非标准键盘

# 浮点运算支持 - 请勿禁用
device npx0 at nexus? port IO_NPX irq 13

# 电源管理支持
device apm0 at nexus? disable flags 0x20 # Advanced Power Management

# PCCARD (PCMCIA) 支持
device card
device pcic0 at isa? irq 0 port 0x3e0 iomem 0xd0000
device pcic1 at isa? irq 0 port 0x3e2 iomem 0xd4000 disable

# 串口(COM)
device sio0 at isa? port IO_COM1 flags 0x10 irq 4
device sio1 at isa? port IO_COM2 irq 3
device sio2 at isa? disable port IO_COM3 irq 5
device sio3 at isa? disable port IO_COM4 irq 9

# 并口
device ppc0 at isa? irq 7
device ppbus # 并口总线 (所有并口设备都需要)
device lpt # 打印机
device plip # 并口TCP/IP
device ppi # 并口接口设备
#device vpo # 需要scbus和da

# PCI 以太网适配器
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 adapter Gigabit Ethernet Card (``Wiseman'')
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')

# 使用公共的MII总线控制器代码的PCI以太网适配器
# 注意:一定要保留'device miibus'以确保可用
device miibus # MII总线支持
device dc # DEC/Intel 21143 and various workalikes
device fxp # Intel EtherExpress PRO/100B (82557, 82558)
device pcn # AMD Am79C97x PCI 10/100 NICs
device rl # RealTek 8129/8139
device sf # Adaptec AIC-6915 (``Starfire'')
device sis # Silicon Integrated Systems SiS 900/SiS 7016
device ste # Sundance ST201 (D-Link DFE-550TX)
device tl # Texas Instruments ThunderLAN
device tx # SMC EtherPower II (83c170 ``EPIC'')
device vr # VIA Rhine, Rhine II
device wb # Winbond W89C840F
device xl # 3Com 3c90x (``Boomerang'', ``Cyclone'')
device bge # Broadcom BCM570x (``Tigon III'')

# ISA以太网适配器
# 'device ed' 需要 'device miibus'
device ed0 at isa? port 0x280 irq 10 iomem 0xd8000
device ex
device ep
device fe0 at isa? port 0x300
# Xircom Ethernet
device xe
# PRISM I IEEE 802.11b wireless NIC.
device awi
# WaveLAN/IEEE 802.11 wireless NICs. Note: the WaveLAN/IEEE really
# exists only as a PCMCIA device, so there is no ISA attachment needed
# and resources will always be dynamically assigned by the pccard code.
device wi
# Aironet 4500/4800 802.11 wireless NICs. Note: the declaration below will
# work for PCMCIA and PCI cards, as well as ISA cards set to ISA PnP
# mode (the factory default). If you set the switches on your ISA
# card for a manually chosen I/O address and IRQ, you must specify
# those parameters here.
device an
# The probe order of these is presently determined by i386/isa/isa_compat.c.
device ie0 at isa? port 0x300 irq 10 iomem 0xd0000
#device le0 at isa? port 0x300 irq 5 iomem 0xd0000
device lnc0 at isa? port 0x280 irq 10 drq 0
device cs0 at isa? port 0x300
device sn0 at isa? port 0x300 irq 10

# 伪设备 - 数字表示分配多少个
pseudo-device loop # 环回网络
pseudo-de

⑧ e5鸡血补丁能提高多少性能

E5V3鸡血自2017年3月驱动之家的一篇文章,带动了E5V3的鸡血潮。时而至今,鸡血的方法已经越来越简单,越来越完善了,效能比起以前也有很大的提高,下面总结一下目前鸡血的状况与简单地做一个教程。
华硕 技嘉 微星,都需要用到HEX编辑微码头从而达到BIOS不加载微码。
而华擎是最简单的了,直接一个MMtool就搞定了。
去微码,改微码的教程,网上一抓也是一大堆,这里就不重复了。
早期鸡血,都是需要外挂EFI驱动的方式,这种方式对于很多人来说,门槛很高,也不利于推广。经过后期兰总的研究,指出了三种锁频率的方式。
华硕和技嘉在BIOS方面有相当高的投入,所以这两家主板可以直接用改了微码的BIOS,然后在BIOS中直接锁最高睿频和降压。十分简单方便,缺点就是因为没efi驱动优化,频率和效能偏低。
华擎和微星,因为没相关调节选项或者调节不生效,只能通过EFI驱动来达到锁频降压,从而提高睿频频率。
自有了EFI转FFS,然后插入到BIOS以内,鸡血变得很简单,直接刷个BIOS就可以了,在很长一段时间内,解锁频率再无提高。直到国外的fus和C_Payne分享了EFI驱动的源码。LZ折腾了很久,用了很多方法去修改源码,重新编译,对于零知识基础的我来说,不断尝试,编译成功了。在很xiaofeng大神和网友的教导下,用了FASM编译,让编译变得很简单,很容易推广。下面,我共享了我做的五大品牌的X99全系列BIOS,部分型号国内没销售的,可以发BIOS链接给我,我会进行补充!

⑨ 一段汇编怎么改成c语言

这本身就是一段C语言程序,只是它是GCC平台的写法(你可以用gcc来直接编译的) (gcc用的是GNU汇编,而我们一般是用MASM用的格式来写汇编代码的)
这是内联汇编
不知道你用的是什么编译器,如果用的是VC++ ,那么可以修改下写法
大概是类似于下面这样的:
static int __inline fls( int x )
{
__asm {
mov ecx, [x]
bsrl eax, ecx
jnz ffs1
mov ecx, -1
ffs1:
inc eax
}
}

这里说明一下,汇编中返回值默认是在EAX寄存器中的
BSRL的功能是用指定位来设置ZF标志位

热点内容
汽车小组件怎么弄到安卓桌面 发布:2025-05-16 13:51:12 浏览:218
linuxg编译器下载 发布:2025-05-16 13:50:58 浏览:775
centosc编译器 发布:2025-05-16 13:50:17 浏览:947
安卓手机如何变换桌面 发布:2025-05-16 13:39:33 浏览:514
sql存储过程命令 发布:2025-05-16 13:17:54 浏览:145
用纸做解压小玩具西瓜 发布:2025-05-16 13:04:09 浏览:935
局域网xp无法访问win7 发布:2025-05-16 13:03:58 浏览:942
油卡如何修改密码 发布:2025-05-16 13:00:35 浏览:901
安卓手机如何拼照片 发布:2025-05-16 12:58:23 浏览:374
深入浅出python 发布:2025-05-16 12:56:52 浏览:655