1.Ariane处理器源码剖析(五)续:MMU
2.「技术干货」ARM64内核源码解读:mmu-gather操作
3.常见的文文件文件格式有哪些
Ariane处理器源码剖析(五)续:MMU
虚拟存储器概念
在没有使用虚拟地址的系统中,处理器输出的文文件地址直接送到物理存储器。而使用虚拟地址时,文文件处理器输出的文文件地址为虚拟地址,不会直接送到物理存储器,文文件需要先进行地址转换。文文件ssm项目源码分享负责转换的文文件部件称为MMU。
使用虚拟存储器不仅可以减少物理存储器容量需求,文文件还有保护和共享等好处。文文件虚拟地址通过页表(PT)映射到物理地址。文文件页表存储虚拟地址到物理地址(***到PFN)的文文件对应关系,表格大小取决于系统可用内存。文文件页表结构不同于Cache,文文件直接使用***寻址,文文件无需Tag。文文件
访问虚拟地址时,可能需要两次物理内存访问:先访问页表获取物理地址,再使用物理地址访问内存。现实中,处理器使用TLB和Cache加速过程。多级页表减少页表占用空间,TLB负责快速查找。缺页(Page Fault)发生时,校园跑腿源码授权从下级存储取页并更新页表。
操作系统使用页表控制每个页的访问权限,实现程序权限管理。写通(Write Through)方式在某些Cache间使用,写回(Write Back)类型Cache中,指令执行时仅更新D-Cache,物理内存更新可能延迟。
TLB(Translation Lookaside Buffer)作为页表缓存,提高访问速度。现代处理器采用两级TLB,容量和替换策略影响性能。TLB缺失可能由软件或硬件触发,随机替换算法适用于TLB。TLB写入确保页不被替换。控制TLB和Cache需管理进程ID等信息。
虚拟Cache通过虚拟地址寻址,与物理Cache不同,仍需TLB加速访问。虚拟Cache引入同义和同名问题,通过进程ID解决。控制Cache包括写操作、寻址策略等。分销号卡源码将TLB和Cache放入流水线优化性能,限制了Cache大小。使用Virtually-Indexed, Virtually-Tagged方式,虚拟Cache与物理Cache结合解决重名问题。
MMU模块、TLB、虚拟内存系统、PTW等组件实现虚拟存储器功能。通过不同策略优化访问速度和内存使用。
「技术干货」ARM内核源码解读:mmu-gather操作
本文深入解析了Linux内核虚拟内存管理中的mmu_gather操作,该操作确保了tlb刷新与物理页面释放的有序执行,并能将多个页面聚集起来统一释放。
在进程退出、执行munmap或执行execv等情况下,内核会解除虚拟内存区域的页表映射、刷新tlb并释放物理页面。这一过程遵循特定顺序:解除页表映射、刷新tlb、释放物理页面。在刷新tlb之前,不能先释放物理页面,否则可能导致不正确的趣盒源码iapp结果,而mmu_gather(mmu积聚)的作用就是确保这一顺序,并将需要释放的物理页面聚集起来统一释放。
mmu_gather操作涉及三个关键数据结构:mmu_gather、mmu_table_batch、以及mmu_gather_batch。mmu_gather用于表示一次mmu积聚操作,包含了操作进程、积聚页目录物理页面、起始和结束虚拟地址、是否操作整个用户地址空间、是否为可执行或hugetlb的vma等信息。mmu_table_batch用于积聚进程使用的页目录物理页面,而mmu_gather_batch则表示物理页的积聚批次,用于积聚映射到用户空间的物理页。
整体调用由tlb_gather_mmu、unmap_vmas、free_pgtables和tlb_finish_mmu等函数组成。其中,tlb_gather_mmu初始化mmu_gather结构,unmap_vmas解除页表映射,free_pgtables释放页表,tlb_finish_mmu进行tlb刷新与物理页面释放。会员管理源码html
在unmap_vmas函数中,解除相关进程虚拟内存区域的页表映射,并将物理页面放入积聚结构中进行统一释放。通过遍历进程页表并解除映射关系,将物理页面加入到积聚结构中。
unmap_vmas函数的关键之处在于遍历页表,将映射关系解除,并将物理页面加入积聚结构。在释放页表过程中,每当一个页表积聚结构填满,就会释放该结构中的页面。最后,通过tlb_finish_mmu完成tlb刷新与物理页面释放的最终步骤。
mmu_gather操作适用于进程退出、execv执行和munmap调用等场景,确保了内存资源的有序释放,优化了内核的内存管理效率。
常见的文件格式有哪些
常见的文件格式有:
A
AAC:MPGE-4高级音频编码
ACC:苹果设备的专属音乐格式
ACE:Ace压缩档案格式
ACT:Microsoft office助手文件
AIF,AIFF:音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式
ANI:Windows系统中的动画光标
APK:AndroidPackage /Android(安卓)安装包,APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装
APS:开发环境使用的资源文件,若要修改资源需要修改3个文件,.aps文件.rc文件 Resource.h
ARC:LH ARC的压缩档案文件
ARJ:Robert Jung ARJ压缩包文件
ASD:Microsoft Word的自动保存文件;Microsoft高级流媒体格式(microsoft advanced streaming
format,ASF)的描述文件;可用NSREX打开 Velvet Studio例子文件
ASF:Microsoft高级流媒体格式文件
ASM:汇编语言源文件,Pro/E装配文件
ASP:动态网页文件;ProComm Plus安装与连接脚本文件;Astound介绍文件
AST:Astound多媒体文件;ClarisWorks“助手”文件
avi:Windows视频文件
Axx:ARJ压缩文件的分包序号文件,用于将一个大文件压至几个小的压缩包中(xx取-的数字)
A3L:Authorware 3.x库文件
A4L:Authorware 4.x库文件
A5L:Authorware 5.x库文件
A3M,A4M:Authorware Macintosh未打包文件
A3W,A4W,A5W:未打包的Authorware Windows文件
B
BAK:备份文件
BAS:Visual Basic Module VB6模块文件
BAT:批处理文件
BDICT:百度输入法词库文件
BIN:二进制文件,其用途依系统或应用而定
BINHex:苹果的一种编码格式
BMP:Windows或OS/2位图文件
BOOK:Adobe FrameMaker Book文件
BOX:Lotus Notes的邮箱文件
BPL:Borlard Delph 4打包库
BPS:百度输入法皮肤文件
BSP:Quake图形文件
BUN:CakeWalk 声音捆绑文件(一种MIDI程序)
C
C:C代码文件
C0l:台风波形文件
CAB:Microsoft压缩档案文件
CAD:Softdek的Drafix CAD文件
CAM:Casio照相机格式
CAP:压缩音乐文件格式
CAS:逗号分开的ASCⅡ文件
CCB:Visual Basic动态按钮配置文件
CCH:Corel图表文件
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索引文件
CFG:配置文件
CGI:公共网关接口脚本文件
CGM:计算机图形元文件
CH:OS/2配置文件
CHI:.CHM文件的一个索引,用来支持对应的.CHM文件中的搜索功能,要和同名的.CHM文件放到一起用
CHK:由Windows磁盘碎片整理器或磁盘扫描保存的文件碎片
CHM:HTML格式的帮助文档
CHP:Ventura Publisher章节文件
CHR:字符集(字体文件)
CHT:ChartViem文件;Harvard Graphics矢量文件
CIF:Adaptec CD 创建器 CD映像文件
CIL:Clip Gallery下载包
CIM:SimCity 文件
CIN:OS/2改变控制文件用于跟踪INI文件中的变化
CLASS:Java类文件
CLP:Windows 剪贴板文件
CLL:Crick Software Clicker文件
CLS:Visual Basic类文件
CMD:Windows NT,OS/2的命令文件;DOS CD/M命令文件;dBASEⅡ程序文件
COM:操作系统中的二进制可执行文件,可执行文件分两种一种是后辍名为.COM另一种就是.EXE 了,.COM一般用于DOS。
CPI:Microsoft MS-DOS代码页信息文件
CPL:控制面板扩展名,Corel颜色板
CPP:C++代码文件
CPR:Corel提供说明书文件
CPT:Corel 照片-绘画图像
CSS:层叠样式表文档,配合HTML使用,单独专门定义样式表
CST:Macromedia Director Cast文件
CSV:Comma Separated Value逗号分隔值,通常都是纯文本文件
CTL:Visual Basic User Control VB6.0用户自定义控件
CTX:Visual Basic User Control Binary FileVB6.0用户自定义控件二进制缓存文件
CUR:Windows光标文件
D
DAT:数据流格式,DAT文件也是MPG格式的,是VCD刻录软件将符合VCD标准的MPEG-1文件自动转换生成的。也有数据文件的后缀名为.DAT,文件格式不确定,任何文件的后缀名都可以设为.DAT,因为读取数据不是从后缀名判断的,而是从文件格式判断
DB:数据库文件,Thumbs.db是缩略图缓存
DBF:dBASE文件,一种由Ashton-Tate创建的格式,可以被ACT!、Lipper、FoxPro、Arago、Wordtech、Xbase和类似数据库或与数据库有关产品识别;可用数据文件(能被Excel
打开);Oracle 8.1.x表格空间文件
DBX:DataBearn图像;Microsoft Visual FoxPro表格文件
DCF:数码照相机统一记录格式,DCF 也有音频格式
DCT:Microsoft Visual FoxPro数据库容器
DCU:Delphi编译单元文件
DCX:Microsoft Visual FoxPro数据库容器;基于PCX的传真图像;宏
DIR:MacromediaDirector文件
DLF:一种INI配置文件格式的语言文件
DLL:动态链接库
DOC: Microsoft Word 文档文件
DOCX:Microsoft Word 文档文件
Perfect文档、Microsoft:Word文档;DisplayWrite文档
DOT:Microsoft Word文档模板
DPL:Borland Delph 3压缩库
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:World Bank(世界银行)的STARS数据文件
DTD:SGML文档类型定义(DTD)文件
DTED:地面高度数字数据(图形的数据格式)文件
DTF:Symantec Q&A相关的数据库数据文件
DTM:DigiTrakker模块文件
DUN:Microsoft拔号网络导出文件
DV:数字视频文件(MIME)
DWG:AutoCAD工程图文件;AutoCAD或Generic CADD老版本的绘图格式
DXR:Macromedia Director受保护(不可编辑)**文件
E
E:易语言代码源文件
EC:易语言模块文件
EDA:Ensoniq ASR磁盘映像
EDD:元素定义文档(FrameMaker+SGML文档)
EDE:Ensoniq EPS磁盘映像
EDK:Ensoniq KT磁盘映像
EDQ:Ensoniq SQ1/SQ2/Ks磁盘映像
EDS:Ensoniq SQ磁盘映像
EDV:Ensoniq VFX-SD磁盘映像
EFA:Ensoniq ASR文件
EFE:Ensoniq EPS文件
EFK:Ensoniq KT文件
EFQ:Ensoniq SQ1/SQ2/Ks文件
EFS:Ensoniq SQ文件
EFV:Ensoniq VFX-SD文件
EMD:ABT扩展模块
EMF:Windows增强元文件
EML:Microsoft Outlook Express邮件消息(MIME RTC)文件
EOT:是一种压缩字库,目的是解决在网页中嵌入特殊字体的难题,目前只有微软的IE浏览器支持
EXE:可执行文件(程序)
F
FAV:Microsoft Outlook导航条
FAX:传真类型图像
FCD:虚拟CD-ROM
FDF:Adobe Acrobat表单文档文件
FLA:Macromedia Flash动画源文件
FLAC:无损音频压缩编码
FLV:Flash视频文件
FNE:易语言的其中一种支持库文件,用于在易语言中装载和提供对应的命令和方法,易语言支持库还有FNR格式、NPK格式以及LPK文件包等。
FND:Microsoft Explorer保存的搜索文件(Find applet)
FNR:FNR文件是易语言的其中一种支持库文件,用于在易语言中装载和提供对应的命令和方法,但是与FNE格式支持库不同的是,FNR不带编辑信息,有运行支持代码的支持库。
FON:系统字体
FRM:Visual Basic Form File VB6.0窗体文件
FRT:Microsoft FoxPro报表文件
FRX:Visual Basic表单文本;Microsoft FoxPro报表文件
FXP:经Microsoft FoxPro编译的源文件
G
GDM:铃声、口哨声和声音板模块格式
GetRight:GetRight未完成的下载文件
GHO:Norton 克隆磁盘映像
GID:Windows 全局索引文件(包括帮助状态)
GiF:动态文件
GL:动画格式
GRP:程序管理组
H
H:C/C++ Header 头文件
HEX:Macintosh BinHex2.0文件
HLP:帮助文件;Date CAD Windows帮助文件
HPP:C++程序头文件
HQX:Macintosh BinHex 4.0文件
HT:HyperTerminal(超级终端)
HTM,HTML:超文本文档
HTT:Microsoft超文本模板
HTX:扩展HTML模板
I
ICO:Windows图标
IDX:Microsoft FoxPro相关数据库索引文件;Symantec Q&A相关数据库索引文件;Microsoft Outlook
Express文件
IMG:GEM映像
INC:Include File 引用文件,ASP中也会用到
INF:Windows操作系统下用来描述设备或文件等数据信息的文件
INI:配置文件,ini文件格式适合程序记录一些基本的配置设置
INP:Oracle 3.0版或早期版本的表单源代码
INRS:INRS远程通信声频
INS:InstallShield安装脚本;X-Internet签字文件;Ensoniq EPS字簇设备;Cell/ⅡMAC/PC抽样设备
INT:中间代码,当一个源程序经过语法检查后编译产生一个可执行代码
IOF:Findit文档
IQY:Microsoft Internet查询文件
ISO:根据ISD 有关CD-ROM文件系统标准列出CD-ROM上的文件
ISP:X-Internet签字文件
ISS:Inno Setup 项目脚本文件 (Inno Setup 是一种安装包生成工具)
IST:数字跟踪设备文件
ISU:InstallShield卸装脚本
IT:脉冲跟踪系统音乐模块(MOD)文件
ITI:脉冲跟踪系统设备
ITS:脉冲跟踪系统抽样,Internet文档位置
IV:Open Inventor中使用的文件格式
IVD:超过/微观数据维数或变量等级文件
IVP:超过/的用户子集配置文件
IVT:超过/表或集合数据文件
IVX:超过/微数据目录文件
IW:Idlewild屏幕保护程序
IWC:Install Watch文档
J
J:Ricoh照相机格式
JAR:Java档案文件(一种用于applet和相关文件的压缩文件)
JAVA:Java源文件
JAVA:Java源文件
JFF,JFIF,JIF:JPEG文件
JPE,JPEG,JPG:JPEG图形文件
JS:javascript源文件
JSP:HTML网页,其中包含有对一个Java servlet的参考
K
KAR:卡拉OK MIDI文件(文本+MIDI)
KEY:授权文件
L
LAB:Visual dBASE标签文件
LBT,LBX:Microsoft FoxPro标签文件
LDB:Microsoft Access加锁文件
LHA:LZH更换文件后缀
LIB:Windows系统中的库文件,分为两种,静态库与动态库
LIC:License 用户许可证书文件
LNK:快捷方式文件
LOG:日志文件
LPK:LPK文件是易语言的其中一种支持库安装包,包含".FNE"、".FNR"、相关例程和文档的全部或部分文件。用于在易语言中装载和提供对应的命令和方法
LST:列表文件 /MASM Listing
LUA:LUA脚本语言文件
LZH:LH ARC压缩档案
M
M1V:MPEG相关文件(MIME"mpeg"类型)
M3D:Corel Motion 3D动画文件
M3U:MPEG URL(MIME声音文件)
MAM:Microsoft Access宏
MAQ:Microsoft Access查询文件
MAR:Microsoft Access报表文件
MBX:Microsoft Outlook保存email格式;Eudora邮箱
MCW:Microsoft Word的Macintosh文档
MDB:Microsoft Access数据库
MDN:Microsoft Access空数据库模板
MDW:Microsoft Access工作组文件
MID:MIDI音乐
MKV:视频文件
MMM:Microsoft多媒体
**MOV:QuickTime for Windows视频文件
MP2:第二层MPEG音频文件
MP3:第三层MPEG音频文件
MP4:视频或音频文件
MPA:MPEG相关文件,MIME“mpeg类型”
MPE,MPEG,MPG:MPEG动画文件
MPP:Microsoft工程文件;CAD绘图文件格式
MPR:Microsoft FoxPro菜单(已编译)
MSI:Windows 安装器包
MSN:Microsoft 网络文档;Descent Mission文件
N
NPK:NPK属于易语言COM包装支持库,该支持库是引用COM包装库生成的,例如WebBrowser、Windows媒体播放器。该扩展名格式支持库可用记事本打开。
O
OBD:Microsoft Office活页夹
OBJ:对象文件
OBZ:Microsoft Office活页夹向导
OCX:Microsoft对象链接与嵌入定制控件
ODS:Microsoft Outlook Express邮箱文件
OFT:Microsoft Outlook模板
OPX:OPL扩展DLL(动态链接库)
OSS:Microsoft Office查找文件
OST:Microsoft Exchange / Outlook 离线文件
P
PAL:压缩文件
PART:Go!Zilla部分下载文件
PAS:Pascal源代码
PCS:PICS动画文件
PDF:Adobe Acrobat
可导出文档格式文件(可用Web浏览器显示);Microsoft系统管理服务器包定义文件;NetWare打印机定义文件
PEM:OpenSSL 使用 PEM 文件格式存储证书和密钥。PEM 实质上是 Base 编码的二进制内容,再加上开始和结束行BEGIN CERTIFICATE、ENDCERTIFICATE,在这些标记外面可以有额外的信息,如编码内容的文字表示。文件是 ASCII 的,可以用任何文本编辑程序打开
PHP,PHP3:包含有PHP脚本的HTML网页
PHTML:包含有PHP脚本的HTML网页;由Perl分析解释的HTML
PM5:Pagemaker 5.0文件
PM6:Pagemaker 6.0文件
PNG:可移植图像文件
PPS:Microsoft Powerpoint幻灯片放映
PPT:Microsoft Powerpoint演示文稿
PRF:Windows系统文件,Macromedia导演设置文件
PSD:Adobe photoshop位图文件
PSM:Protracker Studio模型格式;Epic游戏的源数据文件
PST:Microsoft Outlook个人文件夹文件
PWL:Windows 口令列表文件
Q
QIF:QuickTime相关图像(MIME);Quicken导入文件
QPYD:QQ拼音输入法词库文件
QPYS:QQ拼音输入法皮肤文件
QT,QTM:QuickTime
**QTI,QTIF:QuickTime相关图像
QTP:QuickTime优先文件
QTS:Mac PICT图像文件;QuickTime相关图像
QTX:QuickTime相关图像
R
RA:RealAudio声音文件
RAM:RealAudio元文件
RAR:Windows RAR压缩文件
RC:Resource Script开发环境使用的资源文件,若要修改资源需要修改3个文件,.aps文件.rc文件 Resource.h
REC:录音机宏;RapidComm声音文件
REG:注册表文件
REP:Visual dBASE报表文件
RES:Microsoft Visual Studio资源文件
RM:RealAudio视频文件
RMF:Rich Map格式(3D游戏编辑器使用它来保存图)
ROM:基于盒式磁带的家庭游戏仿真器文件(来自Atari 、Colecovision、Sega、Nintendo等盒式磁带里的ROM完全拷贝,在两个仿真器之间不可互修改)
RTF:Rich Text Format 富文本格式(也有称为多文本格式)
Rxx:多卷档案上的RAR压缩文件(xx=1~间的一个数字)
S
SAV:游戏保存文件
SB:原始带符号字节(8位)数据
SBK:Creative Labs的Soundfont 1.0 Bank文件;(Soundb laster)/EMU SonndFont v1.x Bank文件
SBL:Shockwave Flash对象文件
SCC:Microsoft SourceSafe Status 在VB6.0中是管理记录文件
SCF:Windows Explorer命令文件
SCH:Microsoft Schedule+1
SCP:拨号网络脚本文件
SCR:Windows屏幕保护;传真图像;脚本文件
SFX:RAR自解压档案
SHTML:含有服务器端包括(SSI)的HTML文件
SKN:皮肤文件,QQ拼音输入法的皮肤源文件也是.skn
SLN:Microsoft Visual Studio Solution VS开发环境的解决方案文件
SPL:Shockwave Flash对象;DigiTrakker抽样
SQL:Informix SQL查询;通常被数据库产品用于SQL查询(脚本、文本、二进制)的文件扩展名
STF:Microsoft 安装文件
STM:.shtml的短后缀形式,含有一个服务端包括(SSI)的HTML文件;Scream Tracker V2音乐模块(MOD)文件
STR:屏幕保护文件
SVG:一种用XML定义的语言,用来描述二维矢量及矢量/栅格图形
SWA:在Macromedia导演文件(MP3文件)中的Shockwave声音文件
SWF:Flash动画文件
SYS:系统文件
T
T:Commodore 仿真器磁带映像文件
TDF:Text Design File 是一个文字格式,或者是一个字幕文件格式
THEME:Windows 桌面主题文件
TIF,TIFF:标签图像文件格式(TIFF)位图
TLB:类似于.ocx,是一种ActiveX文件
TMP:Windows临时文件
TORRENT:BT种子文件
TRM:终端文件
TTF:TrueTypeFont是Apple公司和Microsoft公司共同推出的字体文件格式
TXT:Windows文本文档
TZ:老的压缩格式文件
V
VBA:VBase文件
VBP:Microsoft Visual Basic工程文件
VBW:Microsoft Visual Basic工作区文件
VBX:Microsoft Visual Basic用户定制控件
VCXPROJ:VC++ Project / C++ 工程文件
VCXPROJ.FILTERS:VC++ Project Filters File / C++项目文件虚拟目录
VCXPROJ.USER:Visual Studio Project User Options file / 项目用户配置
VOB:DVD视频文件
VQE,VQL:Yamaha Sound-VQ定位器文件
VQF:Yamaha Sound-VQ文件(可能出现标准)
VRF:Oracle 7配置文件
VSL:下载列表文件(GetRight)
W
WAB:Microsoft Outlook文件
WAD:包含有视频、玩家水平和其他信息的DOOM游戏的大文件
WAL:Quake 2正文文件
WAV:Windows波形声形
WBK:Microsoft Word备份文件
WFM:Visual dBASE Windows表单
WFN:在CorelDRAW中使用的符号
WIZ:Microsoft Word向导
WOFF:Web Open Font Format Web开放字体格式,是一种网页所采用的字体格式标准
WRL:虚拟现实模型
WWL:Microsoft Word内插器文件
X
XLK:Microsoft Excel备份
XLL:Microsoft Excel内插器文件
XLM:Microsoft Excel宏
XLS:Microsoft Excel 电子表格
XLSB:Microsoft Excel 二进制电子表格
XLSX:Microsoft Excel 电子表格
XLT:Microsoft Excel模板
XLV:Microsoft Excel VBA模块
XLW:Microsoft Excel工作簿/工作区
XML:可扩展标记语言
Z
ZAP:Windows软件安装配置文件
zip:Windows RAR 压缩文件
-:用于为老版本(或备份)文件编号(比如:被安装程序改变的CONFIG.SYS文件);又可用于为小范围的PC应用程序的多个用户相关数据文件编号
M:Lotus 1-2-3 SmartMaster文件
:Lotus 1-2-3 文件
2D:VersaCAD的2维绘画文件
2GR,3GR:在Windows之下的VGA图形驱动程序/配置文件
:在或更高级处理器上使用的文件
3D:VersaCAD的3维绘画文件
3DM:3D NURBS建模器,Rhino
3DS:3D Studio(DOS下)格式文件
4GE:Informix 4GL编译后代码
4GL:Informix 4GL源代码