2021-12-04_16

数据包

数据包也是麦块客制化非常重要的部分,利用【全局数据包】globaldataandresourcepacks-1.16.5-1.10.2模组可实现地图默认加载数据包

Ships v13

by Ercerus

  • 整体很不错,细节到位,非简单原版覆盖,有额外添加,有战利品表
  • 问题出在如big_brick_2一众在Ships v13 for [1.18].zip\data\minecraft\structures\underwater_ruin目录下的nbt结构不知道怎么考虑的结构内含一组命令方块?(可能用于结构内生物什么的生成?)
  • 可能正常情况侦测器激活,正确执行命令方块命令后会自删除,但结构在生成时往往有意外,导致一组命令方块留着上方原地
  • 暂时解决是直接删除结构中命令方块
    enter description here

模组部分

按时间顺序【由近及远】

BetterFoliage-2.7.1后不再更新

  • 所以遗留了很多问题,特别是兼容性问题,最明显是BYG中部分树叶的额外叶片贴图未渲染对应绿色,而呈现灰白色
  • 由MCMOD上一位老哥的评论启发,通过编辑.jar中的对应config,手动兼容
  • jar包已有bop/byg(需调整)/desolation/environmental/leaf-particles/vanilla的兼容配置.rules文件,仿照格式亦可兼容其它模组树叶如terraqueous中的一众果树

druidcraft薰衣草过多

薰衣草除了染料没有其它用途,无视群系过多生成,无法调控

末地加载问题

整合之前一直存在向末地向1000格左右加载(通过TP或折跃门等)存在卡死问题:游戏内随机刻停止,实体生物或物品等无反应,方块可放置可破坏,无掉落物。游戏外内存高占用几乎不变,CPU不再高占用。

Awesome Dungeon系列

作者即jtl_elisa
貌似因为作者在patreon开设特别通道,或者网络问题无法验证patreon身份,报错
awesome dungeon loading errors NoClassDefFoundError: com/command-block/libraryferret/patreon/Patreon

  • 暂时解决方案:其系列模组的library《LibraryFerret》使用1.0.3版本而不使用2.0可初步解决问题
  • 唉,好像直接修改.jar包中的META-INF/MANIFEST.MF成Implementation-Version: 2.0.0也行

【结构】大型结构Shrines-1.16.5-2.0.0-Beta8

加载闪退(毕竟BETA)
日志fatal报错:

apply failed mixins.shrines.json:MixinMinecraftServer -> net.minecraft.server.MinecraftServer:
1
2
3
4
5
6
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException Critical injection failure: @Inject annotation on onConfigurePackRepository could not find any targets matching 'configurePackRepository' in net.minecraft.server.MinecraftServer. 
No refMap loaded. [PREINJECT Applicator Phase -> mixins.shrines.json:MixinMinecraftServer -> Prepare Injections -> ->
handler$bbi000$onConfigurePackRepository(.../mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: Critical injection failure: @Inject annotation on onConfigurePackRepository could not find any targets matching
'configurePackRepository' in net.minecraft.server.MinecraftServer. No refMap loaded. [PREINJECT Applicator Phase ->
mixins.shrines.json:MixinMinecraftServer -> Prepare Injections -> -> handler$bbi000$onConfigurePackRepository(.../mixin/injection/callback/CallbackInfoReturnable;)V -> Parse]

有:
InvalidInjectionException严重注入失败:@onConfigurePackRepository上的injection批注在网络中找不到任何与“configurePackRepository”匹配的目标。我的世界。服务器MinecraftServer。未加载参考地图。
更换为BETA7版本正常

某生物附魔模组更新后

更新后会生物附魔详情会以名称形式显示(很长很难看)
找出来了,是【生物】【前置24】地下城怪物dungeons_mobs-1.16.5-2.0.1-beta(测试版?)
暂时配置中关闭附魔功能(另有模组——稀有精英怪)

变异骷髅闪退

  • 【生物】变异生物MutantBeasts-1.16.4-1.1.3.jar
  • 生成的变异骷髅似乎在一个跳跃动作后便会使整合包闪退
  • 其它生物均无此现象
  • 可能与实体优化相关模组有关#待解决
  • 已排除:
    1
    2
    3
    4
    5
    【优化】实体剔除EntityCulling-1.16.5-2.1.6
    【优化】生物加载performant-1.16.2-5-3.77m
    【优化】渲染优化(针对多人) out_of_sight-1.16.4-1.0.1
    ……
    所有【优化】

BYG草甸方块材质?

  • 现象为草甸方块放在任意草方块、泥土方块上直接变透明
  • 应该是模组冲突导致,与草坪优化相关
  • 【装饰】【前置30】更好的树叶BetterFoliage-2.7.1-Forge-1.16.5.jar由此模组导致此模组识别各个模组的草方块、树叶方块等再基于原本材质进行修饰(如跟丰富的树叶),可能草甸方块不是简单的草方块换皮,所以有BUG(可通过设置改变,其提供的设置十分详细和丰富)(但太久没更新没修BUG了)

【杂项】快速树叶腐烂FastLeafDecay-v25.jar导致(这个BUG价值三天)

  • 整合包加入了非常的群系性结构性影响生成世界的模组,
  • 在创造新的世界时约有30%的可能卡死
  • (表现为并非未响应,但加载百分比长时间不变化,任务管理器占用内存变化幅度非常小,如果打开日志的话可以观察到已经在卡死前报错fatal了,只是并没有彻底的阶数游戏进程而且也不再继续)
  • 最后分析可能与树叶检测有关:在生成世界时部分模组已经生成树叶,部分还没有生成,而本模组在生成时就已经开始执行检测?造成冲突?!

区块预生成Chunk-Pregenerator

  • 在选择世界生成类型的下方会有一个按钮
  • 在其中点击start便可以预生成区块

优化性模组

在大型整合包中年尤为重要

Out Of Sight(机翻)

厌倦了你的邻居巨大的模板工厂基地 (你甚至看不到大部分时间) 降低你的框架?这个模组是你需要的!
如果磁贴实体距离远超过 24 个街区,则”视线外”只需停止它们的渲染,并且您可以在配置文件中将此范围配置到最适合您的任何范围。
它还支持实体,一些模组用于渲染 fps 重功能。
在一个完美的世界中,每个模组都经过优化和良好的测试,但与通常包含超过 100 模组的模组包,这个世界并不存在。所以我这样做, 使多人模组更可玩!
优点:

  • 在繁忙的复杂基地附近, 包含大量模板实体和实体 (如机器、灯光等) 的框架速度非常好
  • 客户端仅模组

缺点:

  • 当你走近时, 更明显的弹出的实体和瓷砖实体

ferritecore(机翻)

此模组以几种不同的方式减少了 Minecraft 的内存使用。此处提供了有关更改的高级别技术描述。
保存的内存量将取决于模组,在 1.16.4 Direwolf20 包的 1.2.0 版本中,它大约将标题屏幕上的内存使用量(GC 之后)从 3.1 GB 减少到 1.1-1.2 GB。

smoothboot(机翻)

平滑启动 - 优化 Minecraft 装载性能,使低端系统更平滑,高端系统规模更好。
如果您的 PC 具有较旧或低端 CPU(前 CPU 具有 8 个或更少的线程),您可能已经注意到 Minecraft 在加载到标题屏幕时占用了 CPU 的 100%,导致光标口吃,使多任务处理变得非常困难。平滑启动可以完全解决这个问题,加载应该更顺畅,而且可能更快。

特征

  • 更改用于加载的线程数量
  • 更改 Minecraft 使用的线程的优先级

模组的工作原理

Minecraft 使用执行器执行多重任务。问题是,在加载过程中运行的任务在 CPU 上相当繁重,因此它会导致 100% CPU 使用。而且,有些任务不一定受益于多阅读。平滑引导通过更改执行者的参数(包括其使用的线程数和每个线程的优先级)来修复这些问题。
欲了解更多信息,请阅读平滑启动维基

兼容性

模组应与所有模组兼容,包括 Optifine。但是,值得注意的是,模组使用混合素覆盖用于加载游戏的某些方法。

Entity Culling(机翻)

实体剔除是一个相对较小的客户端性能核心模组,旨在跳过隐藏(磁贴)实体的渲染。
在香草中,它只呈现玩家视野中的所有(瓷砖)实体。这意味着可能有成百上千的 (瓷砖) 实体吃你的 fps, 而你甚至看不到他们, 因为他们隐藏在墙后。
剔除隐藏实体
此模组光线跟踪另一个线程,以检查(瓷砖实体)是否可见。因为这种方法不是100%准确的每个(瓷砖)实体,不被认为是可见的开放gl遮挡测试将作出。
当许多(瓷砖)实体不可见时,这可能导致大量 fps 改进。同时,当大多数(瓷砖)实体可见时,也只有最低限度的开销。
阴影的配置选项(当使用视网膜和带阴影的阴影的阴影时)
此模组还添加了一些配置选项,以在安装视光素和使用带阴影的阴影的阴影器时调整阴影的渲染。
某些阴影器可能会提供配置选项来调整阴影渲染距离。但问题是,所有被认为太远的实体、瓷砖实体和块的阴影仍将由 cpu 处理,然后由遮光板扔掉。
此模组允许用户指定实体、瓷砖实体和地形的最大阴影距离。
或者,它还允许完全跳过实体、瓷砖实体或地形阴影的渲染。

performant(机翻)

最显著的功能:
所有功能均可配置,可在配置中调整/启用/禁用。
减少 AI 开销
AI 不再花费一半的时间来决定他们应该执行哪些任务
实体碰撞和路径的多重读数
实体更新、碰撞路径和移动的昂贵部分更快,并且发生多重阅读。
AI/实体、磁体和事件的负载平衡
负载平衡是一种更具侵入性的机械师,以限制滞后罪犯,它可能会影响其他模组的功能,但只有在您的游戏已经落后时才会变得活跃起来。它通过定期检查服务器的 tps 以及它是否低于配置负载平衡中的阈值而工作。然后,它开始配置 AI/实体、Tileent 和事件,以确定谁导致最多的滞后,并限制其更新与这些源导致的滞后。这主要是一个功能,以保持你的游戏可玩,而一些特定的滞后来源通常会把它带到它的膝盖。
FPS
用于渲染实体的 FPS 得到改进,但仅对客户端的改进很少。
登录/播放超时
可配置的登录超时,用于在游戏期间登录和断开连接,帮助使用较慢 PC 和连接的玩家。
食谱缓存
食谱查找得到快得多,帮助所有这些自动制作的模组在那里造成滞后时,通过大量的食谱。
快速世界更新
随机块和块滴答声整体速度更快,性能成本更低。
可配置的公用设施
禁用实体生成特定类型的实体。
显示非正常块负载的调试设置。
用于显示的调试设置

【结构】【前置40】valhelsia_structures-1.16.5-0.1.6.jar

  • 本身是别人整合包用的
  • 但是在生成结构的时候,其特殊的代码(貌似调用结构使用方块时会用其特别标志替代,有时会不切换回方块本身)会使草方块(本应是)变为透视方块
  • 貌似是JAVA版本要求比较严格-其建议JAVA8

【前置10】【辅助】jei-1.16.5-7.7.1.110.jar.old

  • jei这之后的几个版本不能使用标签搜索。。
  • jei-1.16.5-7.7.1.136此版本可以了

【生物】[BETA]dannys_expansion1.16.5-1.0.9.1.jar

  • 非常优质的生物模组
  • 待更新或手动调整(生成和掉落物还有问题)

风铃chime模组

  • 在1.16.5中缺少与模组衔接的铜风铃合成表与紫水晶风铃合成表
  • 计划通过kubejs手动添加(已添加)

【前置13】【生物】【前置12】mysticalworld-1.16.5-0.3.5.24

  • 此版本银与水银物品贴图有部分混淆
  • 以简单修复

【辅助】工具栏inventorio-1.16-forge-1.6.1.jar

  • 此模组提供的额外工具栏位以及自动切换系统较方便
  • 但存在三叉戟等蓄力投掷物无法右击蓄力释放的问题
  • 暂无解决方法

Forgotten+Treasures(已弃用)

以下问题已查明,系此模组Forgotten+Treasures导致
enter description here

  • “耕地消失术”表现为自然村庄耕地或玩家耕地在玩家身边几秒内变为普通泥土
  • 钟乳石问题在更新为【前置4】cavebiomeapi-1.16.5-1.4.1.jar 【群系】【前置4】cavesandcliffs-1.16.5-7.0.jar后,钟乳石刷新异常:bs表现为如沙子一样的下落特性,且肉眼可见的作为实体间断刷新

Epic Fight Mod

  • 本模组由于为僵尸村民也修改了动作,使用任何其它模组中的僵尸村民都将出现贴图错误。
  • 本模组对生物也进行了修改,模组生物不会受到本模组的控制。
  • 本模组对装备显示兼容(如旅行者背包)正在更新

更好的第一人称视角与地下城武器

  • 无法正常使用双持武器与弩
  • 地下城武器同样与村民守卫模组不能很好兼容(村民守卫无法使用模组中的弩)

“弱响应?”

  • 测试时,在进入末地或末地加载千格左右时出现,表现为区块不在加载(甚至直接可以下到原本的地形中),实体不再响应(生物、掉落物、箱子),而方块的放置不受影响
  • 查看日志,在多次排除法h后确定其报错为GL ERROR 65539: invalid key -1
  • 简单更换JAVA版本无法解决
  • 经过去除部分模组,确认为模组原因,确定系byg1.3.5导致

Druidcraft

  • 其0.4.53出现接骨木树花朵材质丢失问题
  • 作者已在0.4.54修复,很快啊(这种bug还要我来de-?)

BYG与BOP

  • 两大高版本群系模组
  • 其实由于BOP生成是特殊生成模式,所以冲突在所难免
  • 又有”【优化】生物群系修复(争对新添加群系)biomeidfixer-1.16.5-1.0.1.s4”与”【优化】【前置15】byg群系生成修复chocolate-1.3.0-1.16.4”能够对此问题进行修复
  • 但我混合正常使用只能在两百加模组的全部整合中成功,推测另有模组旁敲侧击的解决了问题
  • 使用单独以上两个修复模组不能使BYG与BOP在BOP群系下正常使用

【群系】【前置4】CavesAndCliffsBackport-1.16.5-6.3.jar

  • 目前此模组及其前置共添加了三种地下群系(cavesandcliffs:lush_caves/cavebiomeapi:caves/cavesandcliffs:dripstone_caves)鉴于普通模组没有特别涉及地下生成设置会致使以上群系生物过于单一,故特别添加生成设置
  • 此模组【前置4】系”【前置4】cavebiomeapi-1.16.5-1.3.7.jar”存在一定的特殊性(鉴于在1.17以下还原三维群系此前置模组特加入了三维群系),具观察加入三维群系方式过于暴力(指定一定深度以下为洞穴群系),可能兼容性较差
  • 此模组的创建世界卡死为间歇性,有待进一步确定
  • 关于此模组受特定世界类型影响导致的:地下全是繁茂洞穴、滴水洞穴的问题,或地下完全不存在此模组添加的以上两种群系的问题。目前推断为旧版本问题

【音效】动态环绕4.26DynamicSurroundings-1.16.4-4.0.4.2.jar

  • 此模组添加了真实的音效系统,较好的解决了隔墙听声问题
  • 此模组目前以确认可能导致已创建世界无法加载进入问题,日志报错”SoundControl Sound Processor is lagging”,暂停使用后即可成功进入
  • 以上问题目前推测为角色生处方块内部物理声效无法计算所导致(例如处在观察者模式在地下退出世界后重新加入时)

【优化】储物抽屉优化drawerfps-2.1.jar

  • 此模组系解决”【杂项】储物抽屉StorageDrawers-1.16.3-8.2.2”所导致的间歇性掉帧问题,效果良好
    * 但此观察此模组系通过在一定范围外不加载“抽屉”单元贴图来解决问题,这常常间歇性导致正常地形方块成片贴图不加载(同种类或不同种类,多数情况下为树干贴图消失、岩壁贴图消失等)同时系统直接报错”OpenGL Error 1281: Invalid Value”(此报错可能原因多样,经多次尝试发现系此模组导致)
  • 见下OpenGL

Error adding element: Base value out of range: 256 [-10-128]

Adding onto the list: betterdefaultbiomes gives warnings whenever this mod (2.2.0) is introduced, the same lag spike as faeldray mentioned happens every 5mins

  • 【群系拓展】更好的群系BetterDefaultBiomes-1.16.4+-Alpha 2.6.1 导致?不是
  • 好像无伤大雅?

varint too big

在连接自己的模组服的时候发生
enter description here
好像是Terrain模组导致【风味拓展】【自然】【装饰】装饰性环境植物terraincognita-1.16.3-1.7.1.1.jar

生成调整(待记录)

矿石

  • 生成铜的模组有三个,太多了,关闭两个(一个设为1)
  • wyrmroost中生成的铂矿太多了,且不可调控,通过强制修改掉落物,使其掉落NNOW中提供的兼容铂粒(好蠢后面发现拿kube可以直接改)
  • 锡也有两个模组在生成,降低了比例
  • 铅也调整了在mysticalworld中配置的生成高度等

生物

其实之前通过“【辅助】生物生成管理SpawnBalanceUtility-1.36.0.11.jar”改过很多,当时没有做记录,现在可能也忘了
原版生物
各种水生物
三洞穴群系
BOSS(特指有屏幕血条的生物)

以下正式记录

减少

  • ‘minecraft_earth_mod:系列
    虽然只有10的weight但有各种牛
    故将其中的牛下调为5
    (除 minecraft_earth_mod:wooly_cow在寒带将15下调为10)
    其中又给viler女巫下调为5,并减少群系

增加

  • 河流、湖泊、沼泽、洞穴的鱼类
    河流
    1
    2
    3
    4
    5
    minecraft:river
    mysticalbiomes:petrified_river
    mysticalbiomes:sprout_river
    mysticalbiomes:uncanny_river
    minecraft:frozen_river
    湖泊
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    betterendforge:megalake(the_end
    betterendforge:megalake_grove(the_end
    biomesoplenty:coniferous_lakes
    biomesoplenty:grove_lakes
    byg:fresh_water_lake
    byg:frozen_lake
    byg:great_lake_isles
    byg:great_lakes
    byg:polluted_lake
    genericeco:cold_lake
    genericeco:frozen_lake
    genericeco:great_lakes
    genericeco:lake
    genericeco:lukewarm_lake
    genericeco:red_desert_lakes
    genericeco:warm_lake
    minecraft:desert_lakes
    projectvibrantjourneys:crystal_lakes
    沼泽
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    byg:cold_swamplands
    byg:cypress_swamplands
    byg:vibrant_swamplands
    byg:mangrove_marshes
    byg:marshlands
    environmental:marsh
    environmental:mushroom_marsh
    genericeco:dark_swampland
    genericeco:dark_swampland_marshes
    genericeco:dense_marsh
    genericeco:lush_swamp
    genericeco:lush_swamp_marshes
    genericeco:marsh
    genericeco:swamp_marshes
    minecraft:swamp
    projectvibrantjourneys:mangrove_marsh
    洞穴
    1
    2
    3
    4
    5
    cavebiomeapi:caves
    cavesandcliffs:dripstone_caves
    cavesandcliffs:lush_caves
    darkerdepths:crystal_cave
    darkerdepths:glowshroom_caves
    byg:dead_sea

其它

Better Minecraft [FORGE] v34

在此版本后,项目组不再使用Global Data- & Resourcepacks (by JTK222)模组

/data get entity @p SelectedItem

查看手持物品详细数据
非常有用

OpenGL Error 1281: Invalid Value

老问题,不只是“【优化】储物抽屉优化drawerfps-2.1.jar”的原因,这次表现为水体透明
好家伙不查不知道,首先看看OpenGL是个啥吧:
OpenGL(英语:Open Graphics Library,译名:开放图形库或者“开放式图形库”)是用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序编程接口(API)。这个接口由近350个不同的函数调用组成,用来绘制从简单的图形比特到复杂的三维景象。而另一种程序接口系统是仅用于Microsoft Windows上的Direct3D。OpenGL常用于CAD、虚拟现实、科学可视化程序和电子游戏开发。
总之不只是我的世界高清修复在用
那么看了一下日志,发现和一个叫VBO的东西相关,一查:
顶点缓存对象(VBO)准许顶点数组数据存放在服务端的高性能显卡内存中,且提供高效数据传输。
又有知乎大佬说和做水效相关,那么找对问题了,但怎么解决。。。

  • 与JAVA版本有关
  • 尝试关闭Optifine提供的性能设置中的区域渲染

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
[
"【全局数据包】globaldataandresourcepacks-1.16.5-1.10.2.jar",
"【前置11】citadel-1.8.1-1.16.5.jar",
"【前置13】architectury-1.26.42.jar",
"【前置14】物品筛选item-filters-forge-1605.2.5-build.9.jar",
"【前置15】rhino-forge-1605.1.5-build.75.jar",
"【前置1】cloth-config-4.11.26-forge.jar",
"【前置22】Mantle-1.16.5-1.6.157.jar",
"【前置23】【杂项】血月丰收月enhancedcelestials-2.0.9-1.16.5.jar",
"【前置25】Penguin-Lib-1.16.5-0.4.3.jar",
"【前置26】SimpleCoreLib-1.16.5-2.0.8.22.jar",
"【前置27】Library_of_Exile-1.16.5-1.2.0.jar",
"【前置28】structure_gel-1.16.5-1.7.8.jar",
"【前置29】structure_toolkit-1.16.5-1.0.2.jar",
"【前置2】AutoRegLib-1.6-49.jar",
"【前置30】cavebiomeapi-1.16.5-1.4.2.jar",
"【前置31】majrusz-library-1.16.4-2.0.1.jar",
"【前置3】YungsApi-1.16.4-Forge-13.jar",
"【前置6】kotlinforforge-1.14.0-obf.jar",
"【前置7】CreativeCore_v2.2.0_mc1.16.5.jar",
"【前置】collective-1.16.5-4.37.jar",
"【前置】geckolib-forge-1.16.5-3.0.87.jar",
"【前置】InsaneLib-1.4.2-mc1.16.5.jar",
"【前置】litewolfcore-1.16.5v1.0.1.jar",
"【前置】Placebo-1.16.5-4.7.0.jar",
"【前置】shetiphiancore-1.16-3.8.15.jar",
"【前置】valhelsia_core-16.0.15.jar",
"【前置】【了不起核心】LibraryFerret-Forge-1.16.5-1.0.3.jar",
"【前置】可调生物大小Pehkui-3.3.3+1.16.5-forge.jar",
"【前置】帕秋莉Patchouli-1.16.4-53.3.jar",
"【前置】饰品栏curios-forge-1.16.5-4.0.8.2.jar",
"【基础】【便捷】jei找东西findme-1.16.3-2.2.1.0.jar",
"【基础】【便捷】农田不再被踩坏TrampleStopper-2.6.1-build.22+mc1.16.5.jar",
"【基础】【便捷】区域挖掘OreExcavation-1.8.157.jar",
"【基础】【便捷】搬箱子carryon-1.16.5-1.15.5.22.jar",
"【基础】【便捷】树叶快速掉落RapidLeafDecay-1.16.5-2.0.0.jar.disabled",
"【基础】【便捷】物品堆叠upsizer-mc1.16.4-6.1.1.jar",
"【基础】【便捷】穿草swingthroughgrass-1.16.4-1.5.3.jar",
"【基础】【便捷】边拿边走InvMove-1.16.3-0.4.6.jar",
"【基础】【修复】合成冲突化解polymorph-forge-1.16.5-0.40.jar",
"【基础】【前置0】jei-1.16.5-7.7.1.152.jar",
"【基础】【地图】世界地图XaerosWorldMap_1.26.5_Forge_1.16.5.jar",
"【基础】【地图】(小地图与信息提示)XaerosBetterPvP_22.13.0_Forge_1.16.5.jar",
"【基础】【性能】内存加载ferritecore-2.0.5-forge.jar",
"【基础】【性能】实体剔除EntityCulling-1.16.5-2.1.6.jar",
"【基础】【性能】平滑加载smoothboot-forge-1.16.4-1.2.2.jar",
"【基础】【性能】渲染优化(针对多人) out_of_sight-1.16.4-1.0.1.jar",
"【基础】【性能】生物加载performant-1.16.2-5-3.99m.jar",
"【基础】【汉化】拼音搜索JustEnoughCharacters-1.16.4-4.3.4.jar",
"【基础】【汉化】汉化i18nupdatemod-1.16.5-2.0.4.jar",
"【基础】【玩法】【便捷】Quark-r2.4-322.jar",
"【基础】【生物定制】MobsPropertiesRandomness-3.3.0-mc1.16.5.jar",
"【基础】【界面】【定制】菜单PackMenu-1.16.5-2.5.0.jar",
"【基础】【界面】伤害显示TextDamageIndicators-1.16.3-2.0.1.jar",
"【基础】【界面】拾取通知PickUpNotifier-v1.2-1.16.3.jar",
"【基础】【界面】模组目录catalogue-1.6.1-1.16.5.jar",
"【基础】【界面】模组设置configured-1.5.2-1.16.5.jar",
"【基础】【界面】群系标题yung_TravelersTitles-1.16.4-1.5.jar",
"【基础】【界面】饱和度状态栏appleskin-forge-mc1.16.x-2.4.0.jar",
"【基础】【界面】高亮显示Jade-1.16.4-2.8.3.jar",
"【基础】【调试工具】【便捷】游戏内模组设置GameMenuModOption-1.16.4-1.8.2.jar",
"【基础】【调试工具】【定制】SpawnBalanceUtility-1.36.0.11.jar",
"【基础】【辅助】JEI效果信息显示jeed-1.16.5-1.6.jar",
"【基础】【辅助】JEI村民交易信息jei-professions-1.0.0-1.16.4.jar",
"【基础】【辅助】JEI模组拓展jeiintegration_1.16.5-7.1.0.22.jar",
"【基础】【辅助】JEI资源显示JustEnoughResources-1.16.5-0.12.1.133.jar",
"【基础】【辅助】查看物品是否接触过travelers_index-1.16.4-1.0.2.jar",
"【基础】【键位】Controlling-7.0.0.28.jar",
"【小拓展】【兼容】Alex's+Abnormalities+1.1+-+Forge+1.16.5.jar",
"【小拓展】【兼容】【辅助】盔甲架显示饰品Curious Armor Stands-1.16.5-2.2.0.jar",
"【小拓展】【兼容】饰品化夸克背包CuriosQuarkOBP-1.16.5-1.0.2.jar",
"【小拓展】【杂项】夸克奇思妙想QuarkOddities-1.16.3.jar",
"【小拓展】【辅助】经验饰品护符CrimsonXP-1.1.1.jar",
"【小拓展】【辅助】结构指南针ExplorersCompass-1.16.5-1.1.2-forge.jar",
"【小拓展】【辅助】群系指南针NaturesCompass-1.16.5-1.9.1-forge.jar",
"【小拓展】不死图腾饰品栏位curioofundying-forge-1.16.5-5.2.0.0.jar",
"【小拓展】保护要塞生成SaveMyStronghold-1.16.4-1.0.jar",
"【小拓展】收集背包backpacked-2.1.8-1.16.5.jar",
"【小拓展】村庄英雄合成HeroOfNowhereUpdated_1.16.5.jar",
"【小拓展】潜影贝饰品栏位curiousshulkerboxes-forge-1.16.5-4.0.1.0.jar",
"【小拓展】白天睡觉插件Daydreamer-1.16.5-1.0.jar",
"【小拓展】结构大小限制取消StructureExpansion-1.16.5-1.0.7.jar",
"【小拓展】随机生物大小vmh-1.0.6-1.16.5.jar",
"【小拓展】(再也不用经验修补了)维修箱子RepairChests-1.16.5-1.7.jar",
"【核心】【下界合金前置】upgradedcore-1.16.5-1.0.0.3-release.jar",
"【核心】【任务】ftb-quests-forge-1605.3.6-build.98.jar",
"【核心】【储物】储物抽屉StorageDrawers-1.16.3-8.5.2.jar",
"【核心】【前置10】expandability-2.0.1-forge.jar",
"【核心】【前置15】ftb-library-forge-1605.3.4-build.90.jar",
"【核心】【前置18】【不寻常本体】abnormals_core-1.16.5-3.3.1.jar",
"【核心】【前置】dungeons_libraries-1.16.5-0.0.15-beta.jar",
"【核心】【商店】ftb-money-1605.1.3-build.3.jar",
"【核心】【团队】ftb-teams-forge-1605.2.3-build.40.jar",
"【核心】【定制】【结构】刷怪castle_dungeons-3.3-1.16.5-forge.jar",
"【核心】【定制】【调试工具】(添加合成表矿辞统一)kubejs-forge-1605.3.19-build.299.jar",
"【核心】【烹饪】懒人厨房CookingForBlockheads_1.16.5-9.3.3.jar",
"【核心】【玩法】【前置8】(夸克同理各种小东西)charm-forge-1.16.5-2.3.2.jar",
"【核心】【玩法】【装饰】地灵云心海树山花terraqueous-1.16-1.7.25.jar",
"【核心】【玩法】围火无怪nohostilesaroundcampfire_1.16.5-3.8.jar",
"【核心】【玩法】巫术精致hexerei-0.1.4.jar",
"【核心】【玩法】幻梦eidolon-0.2.7.jar",
"【核心】【玩法】幻梦扩展(eidolon)hexblades-1.16.5-0.0.9.3.jar",
"【核心】【玩法】德鲁伊工艺Druidcraft-1.16.5-0.4.54.jar",
"【核心】【玩法】武器增强EnhancedArmaments-forge-1.16.5-1.1.2.jar",
"【核心】【玩法】武器属性modifiers-0.1.2-forge.jar",
"【核心】【玩法】治疗篝火healingcampfire_1.16.5-3.3.jar",
"【核心】【玩法】爆头headshot-1.3.0.jar",
"【核心】【玩法】荒野之息Paraglider-1.16.5-1.3.2.7.jar",
"【核心】【生物】【不寻常】buzzier_bees-1.16.5-3.0.3.jar",
"【核心】【生物】【不寻常】endergetic-1.16.5-3.0.2.jar",
"【核心】【生物】【不寻常】碧海新生upgrade_aquatic-1.16.5-3.1.2.jar",
"【核心】【生物】【结构】【不寻常】残暴与掠夺savageandravage-1.16.5-3.2.0.jar",
"【核心】【生物】外来物种Exotic+Critters+1.16Experimental1.23.jar",
"【核心】【生物】阿斯特米尔的森林(地狱门与钓鱼方式改变)forestcraft-1.87.jar",
"【核心】【矿物】简单矿石SimpleOres2-1.16.5-2.4.7.2.jar",
"【核心】【结构】坚毅堡垒stalwart-dungeons-1.16.5-1.1.7.jar",
"【核心】【群系】cavesandcliffs-1.16.5-7.2.0.jar",
"【核心】【群系】【不寻常】河口群系Bayou-Blues-1.16.5-1.0.5.jar",
"【核心】【群系】【不寻常】秋原autumnity-1.16.5-2.1.2.jar",
"【核心】【群系】【不寻常】自然环境(有生物)environmental-1.16.5-1.1.1.jar",
"【核心】【群系】【不寻常】薰衣草Abundance-1.16.5-1.0.5.jar",
"【核心】【群系】【不寻常】雨林沙丘atmospheric-1.16.5-3.1.1.jar",
"【核心】【群系】【前置33】神秘世界mysticalworld-1.16.5-0.3.5.24.jar",
"【核心】【群系】探险者explorercraft-5.0.6.jar",
"【核心】【背包】可作为饰品的背包ImprovedBackpacks-1.6.2.1.jar",
"【核心】【自然】【生物】活力之旅projectvibrantjourneys-1.16.5-3.2.11.jar",
"【核心】【装备】升级下界合金装备upgradednetherite-1.16.5-2.0.0.8-release.jar",
"【核心】【装备】地下城装备dungeons_gear-1.16.5-3.1.15-beta.jar",
"【核心】【附魔】【不寻常】allurement-1.16.5-1.2.1.jar",
"【核心】【难度】稀有精英怪infernalmobs-1.16.2.1.jar",
"【核心】【食物】【前置25】简单农场simplefarming-1.16.5-1.3.8.jar",
"【核心】【食物】【前置】农夫乐事FarmersDelight-1.16.5-0.6.0.jar",
"【核心】【饰品】Artifacts-1.16.5-2.10.5.jar",
"【核心】【饰品】泰拉瑞亚更多饰品curioBountiful+Baubles+FORGE-1.16.3-0.0.2.jar",
"【核心】【饰品】遗迹饰品relics-1.16.5-0.3.4.3.jar",
"【核心】【龙】iceandfire-2.1.10-1.16.5.jar",
"【核心】【龙】龙栖Wyrmroost-1.16.3-1.2.11.jar",
"【核心】无用之材[NNOW]NeverNeededOrWanted-1.16.5-1.0.9b.jar",
"【生物拓展】alexsmobs-1.12.1.jar",
"【生物拓展】mowziesmobs-1.5.25.jar",
"【生物拓展】[BETA需要自改]dannys_expansion1.16.5-1.0.9.1.jar",
"【生物拓展】【动物】untamedwilds-1.16.5-1.5.8.jar",
"【生物拓展】【动物】更好动物betteranimalsplus-1.16.5-11.0.5-forge.jar",
"【生物拓展】【动物】生物与怪物CNB-1.16.3_5-1.2.11.jar",
"【生物拓展】【地牢】科博尔兹及地牢Kobolds-2.0.1.jar",
"【生物拓展】【怪物】【下界】更多下界生物infernal-expansion-1.16.5-2.5.0.jar",
"【生物拓展】【怪物】【兼容】地下城怪物dungeons_mobs-1.16.5-2.0.3-beta.jar",
"【生物拓展】【怪物】劫掠兽ravageandcabbage-1.0.0.jar",
"【生物拓展】【怪物】更多僵尸UNDEADv.1.7.b.release+Biome.jar",
"【生物拓展】【怪物】更多末影人farlanders-1.16.4-1.3.9.jar",
"【生物拓展】【怪物】海盗Pirates_And_Looters_Kraken_Update.jar",
"【生物拓展】【怪物】灾祸村民illagers_plus-1.16.5v1.0.1.jar",
"【生物拓展】【怪物】附魔师enchantwithmob-1.16.5-1.5.2.jar",
"【生物拓展】【村民】更多职业村民morevillagers-FORGE-1.16.5-1.5.5.jar",
"【生物拓展】【村民】村民护卫guardvillagers-1.16.5.1.2.6.jar",
"【生物拓展】【海洋】无尽海洋endlessocean-1.16.5-0.2.5-BETA.jar",
"【生物拓展】【海洋】无尽海洋endless_oceans-1.0.5-forge.jar",
"【生物拓展】【玩法】进阶难度(宝藏袋)majruszs-difficulty-1.16.4-1.1.0.jar",
"【生物拓展】【鱼类】Piscary-1.16.5-1.0.3.jar",
"【生物拓展】【鱼类】古老水生物OddWaterMobs[1.16.5]_1.5.0.jar",
"【生物拓展】【鱼类】水产养殖Aquaculture-1.16.5-2.1.22.jar",
"【生物拓展】【鱼类】海之深渊AbyssalDepths-1.16.5-1.0.1.jar",
"【生物拓展】【鸟类】珍奇鸟类exoticbirds-1.16.4-1.4.0.jar",
"【生物拓展】啥都有(石壳乌龟)(variety)mobsgenus-0.4.jar",
"【生物拓展】无名生物unnamedanimalmod-1.0.3.jar",
"【生物拓展】更多傀儡extragolems-16.5.2.jar",
"【生物拓展】更多骷髅bones-1.16.5-2.1.0.jar",
"【生物拓展】潘多拉的生物pandoras_creatures-1.16.3-2.0.1.jar",
"【生物拓展】落选生物outvoted-2.0.0-alpha.12-forge.jar",
"【生物拓展】让我们去牧羊LGH-1.2.jar",
"【生物拓展】非虔诚Impish+Tome+(1.16.5_ver.1.1.2).jar",
"【结构拓展】(从下面射弓箭游上去)天空村庄SkyVillage_1.0.0_1.16.5.jar",
"【结构拓展】dungeons_enhanced-1.16.5-1.8.1.jar",
"【结构拓展】more_ships_1.16.5_3.jar",
"【结构拓展】mvs-2.6.1.jar",
"【结构拓展】The_Graveyard_2.1_(FORGE)_for_1.16.4-1.16.5.jar",
"【结构拓展】valhelsia_structures-1.16.5-0.1.6.jar",
"【结构拓展】yung-YungsExtras-Forge-1.16.4-1.0.jar",
"【结构拓展】yung_BetterDungeons-1.16.4-1.2.1.jar",
"【结构拓展】yung_BetterMineshafts-Forge-1.16.4-2.0.4.jar",
"【结构拓展】yung_BetterStrongholds-1.16.4-1.2.1.jar",
"【结构拓展】【了不起】AwesomeDungeonForge-1.16.5-2.0.11.jar",
"【结构拓展】【了不起】BetterVillage-Forge-1.16.5-1.0.2.jar",
"【结构拓展】【了不起】下界AwesomeDungeonNether-Forge-1.16.5-1.0.3.jar",
"【结构拓展】【了不起】末地AwesomeDungeonEnd-Forge-1.16.5-1.0.3.jar",
"【结构拓展】【了不起】海洋AwesomeDungeonOcean-Forge-1.16.5-2.0.7.jar",
"【结构拓展】不死军团UndeadArmy-2.5.jar",
"【结构拓展】含地表铁煤矿带灯dungeons-chasms.jar",
"【结构拓展】含空岛热气球StructuresPlusEnd.jar",
"【结构拓展】地下城起源DungeonsArise-1.16.5-2.1.49-beta.jar",
"【结构拓展】地下村庄stoneholm-1.2.2.jar",
"【结构拓展】地下结构性矿石含爬行者通道more_underground_structures_1.16.5_4.jar",
"【结构拓展】大型结构Shrines-1.16.5-2.3.0.jar",
"【结构拓展】尖气球AmbientStructures1.0.jar",
"【结构拓展】旷野塔towers_of_the_wild-1.16.3-2.1.0.1.jar",
"【结构拓展】旷野塔拓展totw_additions-1.1.0.jar",
"【结构拓展】更多地牢dungeons_plus-1.16.5-1.1.5.jar",
"【结构拓展】更多结构repurposed_structures_forge-3.4.7+1.16.5.jar",
"【结构拓展】桥YungsBridges-Forge-1.16.4-1.0.1.jar",
"【结构拓展】灾难Cataclysm-0.20.jar",
"【结构拓展】简单VanillaStructures.jar",
"【结构拓展】精致的塔楼Extractures(v1.3)_1.16.5.jar",
"【结构拓展】非常好的天空结构(随机空岛与建筑)Soaring-Structures-2-1.16.5-2.0.jar",
"【结构拓展】额外猪灵堡Piglin+Expansion+1.2.jar",
"【群系拓展】abyg-1.2-forge.jar",
"【群系拓展】BOP_BiomesOPlenty-1.16.5-13.1.0.480-universal.jar",
"【群系拓展】byg-1.3.5.jar",
"【群系拓展】【下界】ShretNether - Release -1.3.4.jar",
"【群系拓展】【下界】更好地狱betternether_reforged-1.2.jar",
"【群系拓展】【下界】滋养下界NourishedNetherV12-1.16.5Backport.jar",
"【群系拓展】【下界】舒适下界ComfortableNether4.9.jar",
"【群系拓展】【兼容】byg群系生成修复chocolate-1.3.0-1.16.4.jar",
"【群系拓展】【兼容】神秘世界群系mysticalbiomes-1.16.5-0.0.1.9.jar",
"【群系拓展】【末地】(最好看的那个)betterendforge-1.16.5-1.6.3.jar",
"【群系拓展】【末地】【不寻常】末地OuterEnd-0.2.14.jar",
"【群系拓展】【末地】末地重生EndReborn+[0.8.4].jar",
"【群系拓展】【末地】滋养末地NourishedEndV9-1.16.5Backport.jar",
"【群系拓展】原版群系升级H.E.B+Release+1.0.jar",
"【群系拓展】奇迹:原版生物群系大修Mirabilis+1.0.3-1+1.16.5.jar",
"【群系拓展】更好的群系BetterDefaultBiomes-1.16.4+-Alpha 2.6.1.jar",
"【群系拓展】深岩之下darkerdepths-1.16.5-1.1.4.jar",
"【群系拓展】通用群系genericeco-1.16.5-2.3.jar",
"【调试工具】剥离地形World+Stripper-1.16.5-2.1.0.jar",
"【质量提升】【前置】CreativeCore_v2.2.0_mc1.16.5.jar.disabled",
"【质量提升】【前置】Iceberg-1.16.5-1.0.45.jar",
"【质量提升】【前置】Prism-1.16.5-1.0.1.jar",
"【质量提升】【显示】物理掉落物ItemPhysic_v1.4.18_mc1.16.5.jar.disabled",
"【质量提升】【视听】#debug优先#含物理音效DynamicSurroundings-1.16.5-4.0.5.0.jar.disabled",
"【质量提升】【贴图】#debug优先#更好的树叶BetterFoliage-2.7.1-Forge-1.16.5.jar.disabled",
"【质量提升】【音效】结构charmonium-forge-1.16.5-2.3.2.jar.disabled",
"【质量提升】【音效】自然AmbientSounds_v3.1.11_mc1.16.5.jar.disabled",
"【质量提升】【音效】自然V3.0-Matmos-mod-1.16.jar.diaabled",
"【质量提升】物品品质框ItemBorders-1.16.5-1.1.6.jar",
"【质量提升】物品边框LegendaryTooltips-1.16.5-1.3.1.jar",
"【质量提升】远距离粗加载DistantHorizons-1.6.2a-1.16.5.jar.disabled",
"【选择拓展】ND拟康乃馨扩展ndpatches-1.0.jar",
"【选择拓展】【结构】大型多层地牢DungeonCrawl-1.16.5-2.3.9.jar",
"【选择拓展】【结构】天空之城castle_in_the_sky-1.16.5-0.2.6.jar",
"【选择拓展】【结构】女巫小屋betterhut+1.1.jar.disabled",
"【选择拓展】【结构】村庄thatched-0.5.jar",
"【选择拓展】【结构】泰拉式浮空岛Floating_Islands_V1.1.2.jar",
"【选择拓展】【结构】组合塔BrassAmberBattleTowers-1.16.5-1.6.3.jar",
"【选择拓展】【结构】露营帐篷StumbleUponCampsites.jar",
"【选择拓展】【装饰】decorative_blocks-1.16.4-1.7.2.jar",
"【选择拓展】【装饰】【兼容】decorative_blocks_abnormals-1.2.jar",
"【附魔拓展】前置Bookshelf-Forge-1.16.5-10.4.32.jar",
"【附魔拓展】前置cofh_core-1.16.5-1.5.0.11.jar",
"【附魔拓展】附魔拆解台Disenchanting-forge-1.16.5-1.7.2.jar",
"【风味拓展】【下界】下界扩展又nether-s-exoticism-1.16.5-1.1.3.jar",
"【风味拓展】【前置21】cuneiform-1.16.3-1.2.5.jar",
"【风味拓展】【前置】selene-1.16.5-1.9.0.jar",
"【风味拓展】【家具】(菜篮)NefsMedievalPub+v0.9(1.16.5).jar",
"【风味拓展】【植物】NatureExpansion1.5.jar",
"【风味拓展】【结构】魔术师the-conjurer-1.16.4-1.0.13.jar",
"【风味拓展】【自然】【装饰】装饰性环境植物terraincognita-1.16.3-1.7.3.jar",
"【风味拓展】【自然】生境(小而精)habitat-1.0.1.jar",
"【风味拓展】【自然】花草灌木SereneShrubbery-1.16.5-1.1.0.jar",
"【风味拓展】【装饰】DustrialDecor-1.3.1.jar",
"【风味拓展】【装饰】supplementaries-1.16.5-0.18.4b.jar",
"【风味拓展】【装饰】灵感原版装饰Inspirations-1.16.5-1.2.3.37.jar",
"【风味拓展】【装饰】自然装饰NaturalDecorMod1.16.5IIV0.3.jar",
"【风味拓展】怪物生成(墓碑出僵尸)jumpers-forge-1.16.5-v2.0.jar",
"【风味拓展】更多洞穴特征(蘑菇罐子石锥)extcaves.jar",
"【风味拓展】添加了一些末地结构修改了一些配方Farmable1.0.0.jar",
"【风味拓展】溪流upstream-1.0.jar",
"【风味拓展】额外(juicer果汁机含一种女巫小屋)extract-1.1.jar",
"【风味拓展】风铃Chimes-1.0.0-1.16.5.jar",
"【食物拓展】Horticulture-1.16.5-1.0.2.jar",
"【食物拓展】ND农夫乐事下界扩展nethers_delight-2.1.jar",
"【食物拓展】【不寻常】neapolitan-1.16.5-2.2.1.jar",
"【食物拓展】【不寻常】【兼容】不寻常系列融合农夫乐事abnormals_delight-1.16.5-1.2.1.jar",
"【食物拓展】【兼容】Alex's+Delight+1.1.3+-+Forge+1.16.5.jar",
"【食物拓展】【兼容】Alex's+Delights+1.0.0.jar",
"【食物拓展】【兼容】农夫乐事兼容性farmersdelightintegration-1.16.5-1.0.3.jar",
"【食物拓展】【兼容】农夫乐事兼容性farmersdelightintegrations-1.16.5-1.2.jar",
"【食物拓展】【兼容】简单快乐simpledelights-1.2.jar",
"【食物拓展】【兼容】茶与FD_farmerstea-1.16.5-1.3.jar",
"【食物拓展】【兼容】(巨多联动)农夫乐事非正规厨师irregularchef-1.16.5-1.0.1.jar",
"【食物拓展】【前置16】潘马斯农村食物核心pamhc2foodcore-1.16.3-1.0.2.jar",
"【食物拓展】【拓展】农夫乐事铜锅copperpot-1.16.5-1.2.0.jar",
"【食物拓展】【树木】潘马斯树木pamhc2trees-1.16.3-1.0.1.jar",
"【食物拓展】农夫乐事扩展Farmers_Extra_Foods_1.2.jar",
"【食物拓展】潘马斯作物pamhc2crops-1.16.3-1.0.2.jar",
"【食物拓展】潘马斯食物拓展pamhc2foodextended-1.16.3-1.0.2.jar",
"【食物拓展】简单的茶simplytea-1.16.5-2.4.0.jar"
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[
"archive-v1.0.zip",
"Better-Villages.zip",
"FarlandersInWarpedVillages.zip",
"fossil_dungeons.zip",
"fs1-6-6.zip",
"Grian's Dungeons.zip",
"illager-fortresses-v11-for-1-18.zip",
"More Structures.zip",
"New-Desert-Temple.zip",
"New-End-Cities.zip",
"New-Ocean-Ruins.zip",
"New-Pillagers.zip",
"New-Ruined-Portals.zip",
"New-Shipwrecks.zip",
"pillager-stronghold.zip",
"Repurposed_Structures-Better_Dungeons_Forge.zip",
"Repurposed_Structures-Better_Strongholds_Forge.zip",
"Repurposed_Structures-Buzzier_Bees.zip",
"Repurposed_Structures-Caves_And_Cliffs_Backport-v2.zip",
"Repurposed_Structures-Environmental.zip",
"Repurposed_Structures-Farmers_Delight_Forge.zip",
"Repurposed_Structures-Hexerei_v2.zip",
"Repurposed_Structures-Ice_and_Fire_v2.zip",
"Repurposed_Structures-More_Villagers_Forge_v2.zip",
"Repurposed_Structures-Savage_And_Ravage.zip",
"RRS-BuzzierVillages.zip",
"RRS-EnvironmentallyFriendly.zip",
"RRS-RepurposedDelight.zip",
"Ships v13 for [1.18](edited).zip",
"the-forbidden-castle-v1-1.zip"
]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
[
"desktop.ini",
"mods_list.json",
"printname.py",
"【全局数据包】globaldataandresourcepacks-1.16.5-1.10.2.jar",
"【前置11】citadel-1.8.1-1.16.5.jar",
"【前置13】architectury-1.26.42.jar",
"【前置14】物品筛选item-filters-forge-1605.2.5-build.9.jar",
"【前置15】rhino-forge-1605.1.5-build.75.jar",
"【前置1】cloth-config-4.11.26-forge.jar",
"【前置22】Mantle-1.16.5-1.6.157.jar",
"【前置23】【杂项】血月丰收月enhancedcelestials-2.0.9-1.16.5.jar",
"【前置25】Penguin-Lib-1.16.5-0.4.3.jar",
"【前置26】SimpleCoreLib-1.16.5-2.0.8.22.jar",
"【前置27】Library_of_Exile-1.16.5-1.2.0.jar",
"【前置28】structure_gel-1.16.5-1.7.8.jar",
"【前置29】structure_toolkit-1.16.5-1.0.2.jar",
"【前置2】AutoRegLib-1.6-49.jar",
"【前置30】cavebiomeapi-1.16.5-1.4.2.jar",
"【前置31】majrusz-library-1.16.4-2.0.1.jar",
"【前置3】YungsApi-1.16.4-Forge-13.jar",
"【前置6】kotlinforforge-1.14.0-obf.jar",
"【前置7】CreativeCore_v2.2.0_mc1.16.5.jar",
"【前置】collective-1.16.5-4.28.jar",
"【前置】geckolib-forge-1.16.5-3.0.81.jar",
"【前置】InsaneLib-1.4.2-mc1.16.5.jar",
"【前置】Placebo-1.16.5-4.7.0.jar",
"【前置】shetiphiancore-1.16-3.8.15.jar",
"【前置】valhelsia_core-16.0.15.jar",
"【前置】【了不起核心】LibraryFerret-Forge-1.16.5-1.0.3.jar",
"【前置】可调生物大小Pehkui-3.3.3+1.16.5-forge.jar",
"【前置】帕秋莉Patchouli-1.16.4-53.3.jar",
"【前置】饰品栏curios-forge-1.16.5-4.0.8.2.jar",
"【基础】【便捷】jei找东西findme-1.16.3-2.2.1.0.jar",
"【基础】【便捷】农田不再被踩坏TrampleStopper-2.6.1-build.22+mc1.16.5.jar",
"【基础】【便捷】区域挖掘OreExcavation-1.8.157.jar",
"【基础】【便捷】搬箱子carryon-1.16.5-1.15.5.22.jar",
"【基础】【便捷】树叶快速掉落RapidLeafDecay-1.16.5-2.0.0.jar",
"【基础】【便捷】物品堆叠upsizer-mc1.16.4-6.1.1.jar",
"【基础】【便捷】穿草swingthroughgrass-1.16.4-1.5.3.jar",
"【基础】【便捷】边拿边走InvMove-1.16.3-0.4.6.jar",
"【基础】【修复】合成冲突化解polymorph-forge-1.16.5-0.40.jar",
"【基础】【前置0】jei-1.16.5-7.7.1.152.jar",
"【基础】【地图】世界地图XaerosWorldMap_1.25.1_Forge_1.16.5.jar",
"【基础】【地图】(小地图与信息提示)XaerosBetterPvP_22.10.0_Forge_1.16.5.jar",
"【基础】【性能】内存加载ferritecore-2.0.5-forge.jar",
"【基础】【性能】实体剔除EntityCulling-1.16.5-2.1.6.jar",
"【基础】【性能】平滑加载smoothboot-forge-1.16.4-1.2.2.jar",
"【基础】【性能】渲染优化(针对多人) out_of_sight-1.16.4-1.0.1.jar",
"【基础】【性能】生物加载performant-1.16.2-5-3.98m.jar",
"【基础】【汉化】拼音搜索JustEnoughCharacters-1.16.4-4.3.4.jar",
"【基础】【汉化】汉化i18nupdatemod-1.16.5-2.0.4.jar",
"【基础】【玩法】【便捷】Quark-r2.4-322.jar",
"【基础】【生物定制】MobsPropertiesRandomness-3.3.0-mc1.16.5.jar",
"【基础】【界面】【定制】菜单PackMenu-1.16.5-2.5.0.jar",
"【基础】【界面】伤害显示TextDamageIndicators-1.16.3-2.0.1.jar",
"【基础】【界面】拾取通知PickUpNotifier-v1.2-1.16.3.jar",
"【基础】【界面】模组目录catalogue-1.6.1-1.16.5.jar",
"【基础】【界面】模组设置configured-1.5.2-1.16.5.jar",
"【基础】【界面】群系标题yung_TravelersTitles-1.16.4-1.5.jar",
"【基础】【界面】饱和度状态栏appleskin-forge-mc1.16.x-2.4.0.jar",
"【基础】【界面】高亮显示Jade-1.16.4-2.8.1.jar",
"【基础】【调试工具】【便捷】游戏内模组设置GameMenuModOption-1.16.4-1.8.2.jar",
"【基础】【调试工具】【定制】SpawnBalanceUtility-1.36.0.11.jar",
"【基础】【辅助】JEI效果信息显示jeed-1.16.5-1.6.jar",
"【基础】【辅助】JEI村民交易信息jei-professions-1.0.0-1.16.4.jar",
"【基础】【辅助】JEI模组拓展jeiintegration_1.16.5-7.1.0.22.jar",
"【基础】【辅助】JEI资源显示JustEnoughResources-1.16.5-0.12.1.133.jar",
"【基础】【辅助】查看物品是否接触过travelers_index-1.16.4-1.0.2.jar",
"【基础】【键位】Controlling-7.0.0.28.jar",
"【小拓展】【兼容】Alex's+Abnormalities+1.1+-+Forge+1.16.5.jar",
"【小拓展】【兼容】【辅助】盔甲架显示饰品Curious Armor Stands-1.16.5-2.2.0.jar",
"【小拓展】【兼容】饰品化夸克背包CuriosQuarkOBP-1.16.5-1.0.2.jar",
"【小拓展】【杂项】夸克奇思妙想QuarkOddities-1.16.3.jar",
"【小拓展】【辅助】经验饰品护符CrimsonXP-1.1.1.jar",
"【小拓展】【辅助】结构指南针ExplorersCompass-1.16.5-1.1.2-forge.jar",
"【小拓展】【辅助】群系指南针NaturesCompass-1.16.5-1.9.1-forge.jar",
"【小拓展】不死图腾饰品栏位curioofundying-forge-1.16.5-5.2.0.0.jar",
"【小拓展】保护要塞生成SaveMyStronghold-1.16.4-1.0.jar",
"【小拓展】收集背包backpacked-2.1.8-1.16.5.jar",
"【小拓展】村庄英雄合成HeroOfNowhereUpdated_1.16.5.jar",
"【小拓展】潜影贝饰品栏位curiousshulkerboxes-forge-1.16.5-4.0.1.0.jar",
"【小拓展】白天睡觉插件Daydreamer-1.16.5-1.0.jar",
"【小拓展】结构大小限制取消StructureExpansion-1.16.5-1.0.7.jar",
"【小拓展】随机生物大小vmh-1.0.6-1.16.5.jar",
"【小拓展】(再也不用经验修补了)维修箱子RepairChests-1.16.5-1.7.jar",
"【核心】【下界合金前置】upgradedcore-1.16.5-1.0.0.3-release.jar",
"【核心】【任务】ftb-quests-forge-1605.3.6-build.98.jar",
"【核心】【储物】储物抽屉StorageDrawers-1.16.3-8.5.2.jar",
"【核心】【前置10】expandability-2.0.1-forge.jar",
"【核心】【前置15】ftb-library-forge-1605.3.4-build.90.jar",
"【核心】【前置18】【不寻常本体】abnormals_core-1.16.5-3.3.1.jar",
"【核心】【前置】dungeons_libraries-1.16.5-0.0.9-beta.jar",
"【核心】【商店】ftb-money-1605.1.3-build.3.jar",
"【核心】【团队】ftb-teams-forge-1605.2.3-build.40.jar",
"【核心】【定制】【结构】刷怪castle_dungeons-3.3-1.16.5-forge.jar",
"【核心】【定制】【调试工具】(添加合成表矿辞统一)kubejs-forge-1605.3.19-build.299.jar",
"【核心】【烹饪】懒人厨房CookingForBlockheads_1.16.5-9.3.3.jar",
"【核心】【玩法】【前置8】(夸克同理各种小东西)charm-forge-1.16.5-2.3.2.jar",
"【核心】【玩法】【装饰】地灵云心海树山花terraqueous-1.16-1.7.24.jar",
"【核心】【玩法】围火无怪nohostilesaroundcampfire_1.16.5-3.8.jar",
"【核心】【玩法】巫术精致hexerei-0.1.4.jar",
"【核心】【玩法】幻梦eidolon-0.2.7.jar",
"【核心】【玩法】幻梦扩展(eidolon)hexblades-1.16.5-0.0.9.3.jar",
"【核心】【玩法】德鲁伊工艺Druidcraft-1.16.5-0.4.54.jar",
"【核心】【玩法】治疗篝火healingcampfire_1.16.5-3.3.jar",
"【核心】【玩法】爆头headshot-1.3.0.jar",
"【核心】【玩法】荒野之息Paraglider-1.16.5-1.3.2.7.jar",
"【核心】【生物】【不寻常】buzzier_bees-1.16.5-3.0.3.jar",
"【核心】【生物】【不寻常】endergetic-1.16.5-3.0.2.jar",
"【核心】【生物】【不寻常】碧海新生upgrade_aquatic-1.16.5-3.1.2.jar",
"【核心】【生物】【结构】【不寻常】残暴与掠夺savageandravage-1.16.5-3.2.0.jar",
"【核心】【生物】外来物种Exotic+Critters+1.16+Experimental+1.19.jar",
"【核心】【生物】阿斯特米尔的森林(地狱门与钓鱼方式改变)forestcraft-1.85.jar",
"【核心】【矿物】简单矿石SimpleOres2-1.16.5-2.4.7.2.jar",
"【核心】【结构】坚毅堡垒stalwart-dungeons-1.16.5-1.1.7.jar",
"【核心】【群系】cavesandcliffs-1.16.5-7.2.0.jar",
"【核心】【群系】【不寻常】河口群系Bayou-Blues-1.16.5-1.0.5.jar",
"【核心】【群系】【不寻常】秋原autumnity-1.16.5-2.1.2.jar",
"【核心】【群系】【不寻常】自然环境(有生物)environmental-1.16.5-1.1.1.jar",
"【核心】【群系】【不寻常】薰衣草Abundance-1.16.5-1.0.5.jar",
"【核心】【群系】【不寻常】雨林沙丘atmospheric-1.16.5-3.1.1.jar",
"【核心】【群系】【前置33】神秘世界mysticalworld-1.16.5-0.3.5.24.jar",
"【核心】【群系】探险者explorercraft-5.0.6.jar",
"【核心】【背包】可作为饰品的背包ImprovedBackpacks-1.6.2.1.jar",
"【核心】【自然】【生物】活力之旅projectvibrantjourneys-1.16.5-3.2.11.jar",
"【核心】【装备】升级下界合金装备upgradednetherite-1.16.5-2.0.0.8-release.jar",
"【核心】【装备】地下城装备dungeons_gear-1.16.5-3.1.9-beta.jar",
"【核心】【附魔】【不寻常】allurement-1.16.5-1.2.1.jar",
"【核心】【难度】稀有精英怪infernalmobs-1.16.2.1.jar",
"【核心】【食物】【前置25】简单农场simplefarming-1.16.5-1.3.8.jar",
"【核心】【食物】【前置】农夫乐事FarmersDelight-1.16.5-0.6.0.jar",
"【核心】【饰品】Artifacts-1.16.5-2.10.5.jar",
"【核心】【饰品】泰拉瑞亚更多饰品curioBountiful+Baubles+FORGE-1.16.3-0.0.2.jar",
"【核心】【饰品】遗迹饰品relics-1.16.5-0.3.4.3.jar",
"【核心】【龙】iceandfire-2.1.10-1.16.5.jar",
"【核心】【龙】龙栖Wyrmroost-1.16.3-1.2.11.jar",
"【核心】无用之材[NNOW]NeverNeededOrWanted-1.16.5-1.0.9b.jar",
"【生物拓展】alexsmobs-1.12.1.jar",
"【生物拓展】mowziesmobs-1.5.25.jar",
"【生物拓展】[BETA需要自改]dannys_expansion1.16.5-1.0.9.1.jar",
"【生物拓展】【动物】untamedwilds-1.16.5-1.5.7.jar",
"【生物拓展】【动物】更好动物betteranimalsplus-1.16.5-11.0.5-forge.jar",
"【生物拓展】【动物】生物与怪物CNB-1.16.3_5-1.2.11.jar",
"【生物拓展】【地牢】科博尔兹及地牢Kobolds-2.0.1.jar",
"【生物拓展】【怪物】【下界】更多下界生物infernal-expansion-1.16.5-2.5.0.jar",
"【生物拓展】【怪物】【兼容】地下城怪物dungeons_mobs-1.16.5-2.0.3-beta.jar",
"【生物拓展】【怪物】劫掠兽ravageandcabbage-1.0.0.jar",
"【生物拓展】【怪物】更多僵尸UNDEADv.1.7.b.release+Biome.jar",
"【生物拓展】【怪物】更多末影人farlanders-1.16.4-1.3.9.jar",
"【生物拓展】【怪物】海盗Pirates_And_Looters_Kraken_Update.jar",
"【生物拓展】【怪物】灾祸村民illagers_plus-1.16.4v1.7.2.jar",
"【生物拓展】【怪物】附魔师enchantwithmob-1.16.5-1.5.2.jar",
"【生物拓展】【村民】更多职业村民morevillagers-FORGE-1.16.5-1.5.5.jar",
"【生物拓展】【村民】村民护卫guardvillagers-1.16.5.1.2.6.jar",
"【生物拓展】【玩法】进阶难度(宝藏袋)majruszs-difficulty-1.16.4-1.1.0.jar",
"【生物拓展】【鱼类】Piscary-1.16.5-1.0.3.jar",
"【生物拓展】【鱼类】古老水生物OddWaterMobs[1.16.5]_1.5.0.jar",
"【生物拓展】【鱼类】水产养殖Aquaculture-1.16.5-2.1.22.jar",
"【生物拓展】【鱼类】海之深渊AbyssalDepths-1.16.5-1.0.1.jar",
"【生物拓展】【鸟类】珍奇鸟类exoticbirds-1.16.4-1.4.0.jar",
"【生物拓展】啥都有(石壳乌龟)(variety)mobsgenus-0.4.jar",
"【生物拓展】无名生物unnamedanimalmod-1.0.3.jar",
"【生物拓展】更多傀儡extragolems-16.5.2.jar",
"【生物拓展】更多骷髅bones-1.16.5-2.1.0.jar",
"【生物拓展】潘多拉的生物pandoras_creatures-1.16.3-2.0.1.jar",
"【生物拓展】落选生物outvoted-2.0.0-alpha.12-forge.jar",
"【生物拓展】让我们去牧羊LGH-1.2.jar",
"【生物拓展】非虔诚Impish+Tome+(1.16.5_ver.1.1.2).jar",
"【结构拓展】(从下面射弓箭游上去)天空村庄SkyVillage_1.0.0_1.16.5.jar",
"【结构拓展】dungeons_enhanced-1.16.5-1.7.jar",
"【结构拓展】more_ships_1.16.5_3.jar",
"【结构拓展】The_Graveyard_2.1_(FORGE)_for_1.16.4-1.16.5.jar",
"【结构拓展】valhelsia_structures-1.16.5-0.1.6.jar",
"【结构拓展】yung-YungsExtras-Forge-1.16.4-1.0.jar",
"【结构拓展】yung_BetterDungeons-1.16.4-1.2.1.jar",
"【结构拓展】yung_BetterMineshafts-Forge-1.16.4-2.0.4.jar",
"【结构拓展】yung_BetterStrongholds-1.16.4-1.2.1.jar",
"【结构拓展】【了不起】AwesomeDungeonForge-1.16.5-2.0.11.jar",
"【结构拓展】【了不起】BetterVillage-Forge-1.16.5-1.0.2.jar",
"【结构拓展】【了不起】下界AwesomeDungeonNether-Forge-1.16.5-1.0.3.jar",
"【结构拓展】【了不起】末地AwesomeDungeonEnd-Forge-1.16.5-1.0.2.jar",
"【结构拓展】【了不起】海洋AwesomeDungeonOcean-Forge-1.16.5-2.0.6.jar",
"【结构拓展】不死军团UndeadArmy-2.5.jar",
"【结构拓展】含地表铁煤矿带灯dungeons-chasms.jar",
"【结构拓展】含空岛热气球StructuresPlusEnd.jar",
"【结构拓展】地下城起源DungeonsArise-1.16.5-2.1.49-beta.jar",
"【结构拓展】地下村庄stoneholm-1.2.2.jar",
"【结构拓展】地下结构性矿石含爬行者通道more_underground_structures_1.16.5_4.jar",
"【结构拓展】大型结构Shrines-1.16.5-2.3.0.jar",
"【结构拓展】尖气球AmbientStructures1.0.jar",
"【结构拓展】旷野塔towers_of_the_wild-1.16.3-2.1.0.1.jar",
"【结构拓展】旷野塔拓展totw_additions-1.1.0.jar",
"【结构拓展】更多地牢dungeons_plus-1.16.5-1.1.5.jar",
"【结构拓展】更多结构repurposed_structures_forge-3.4.7+1.16.5.jar",
"【结构拓展】桥YungsBridges-Forge-1.16.4-1.0.1.jar",
"【结构拓展】灾难Cataclysm-0.19.jar",
"【结构拓展】简单VanillaStructures.jar",
"【结构拓展】精致的塔楼Extractures(v1.3)_1.16.5.jar",
"【结构拓展】非常好的天空结构(随机空岛与建筑)Soaring-Structures-2-1.16.5-2.0.jar",
"【结构拓展】额外猪灵堡Piglin+Expansion+1.2.jar",
"【群系拓展】(bopbyg级别)simplybiomes-0.5.jar",
"【群系拓展】abyg-1.2-forge.jar",
"【群系拓展】BOP_BiomesOPlenty-1.16.5-13.1.0.480-universal.jar",
"【群系拓展】byg-1.3.5.jar",
"【群系拓展】【下界】ShretNether - Release -1.3.4.jar",
"【群系拓展】【下界】更好地狱betternether_reforged-1.2.jar",
"【群系拓展】【下界】滋养下界NourishedNetherV12-1.16.5Backport.jar",
"【群系拓展】【下界】舒适下界ComfortableNether4.9.jar",
"【群系拓展】【兼容】byg群系生成修复chocolate-1.3.0-1.16.4.jar",
"【群系拓展】【兼容】神秘世界群系mysticalbiomes-1.16.5-0.0.1.9.jar",
"【群系拓展】【末地】(最好看的那个)betterendforge-1.16.5-1.6.3.jar",
"【群系拓展】【末地】【不寻常】末地OuterEnd-0.2.14.jar",
"【群系拓展】【末地】末地重生EndReborn+[0.8.4].jar",
"【群系拓展】【末地】滋养末地NourishedEndV9-1.16.5Backport.jar",
"【群系拓展】【海洋】无尽海洋endlessocean-1.16.5-0.2.5-BETA.jar",
"【群系拓展】【海洋】无尽海洋endless_oceans-1.0.5-forge.jar",
"【群系拓展】原版群系升级H.E.B+Release+1.0.jar",
"【群系拓展】奇迹:原版生物群系大修Mirabilis+1.0.3-1+1.16.5.jar",
"【群系拓展】更好的群系BetterDefaultBiomes-1.16.4+-Alpha 2.6.1.jar",
"【群系拓展】深岩之下darkerdepths-1.16.5-1.1.4.jar",
"【群系拓展】通用群系genericeco-1.16.5-2.3.jar",
"【调试工具】剥离地形World+Stripper-1.16.5-2.1.0.jar.disabled",
"【质量提升】【前置】Iceberg-1.16.5-1.0.41.jar",
"【质量提升】物品品质框ItemBorders-1.16.5-1.1.6.jar",
"【质量提升】物品边框LegendaryTooltips-1.16.5-1.1.7.jar",
"【选择拓展】ND拟康乃馨扩展ndpatches-1.0.jar",
"【选择拓展】【结构】大型多层地牢DungeonCrawl-1.16.5-2.3.9.jar",
"【选择拓展】【结构】天空之城castle_in_the_sky-1.16.5-0.2.6.jar",
"【选择拓展】【结构】女巫小屋betterhut+1.1.jar",
"【选择拓展】【结构】泰拉式浮空岛Floating_Islands_V1.1.2.jar",
"【选择拓展】【结构】组合塔BrassAmberBattleTowers-1.16.5-1.6.3.jar",
"【选择拓展】【结构】露营帐篷StumbleUponCampsites.jar",
"【附魔拓展】前置Bookshelf-Forge-1.16.5-10.4.32.jar",
"【附魔拓展】前置cofh_core-1.16.5-1.5.0.11.jar",
"【附魔拓展】附魔书详情EnchantmentDescriptions-1.16.5-7.1.20.jar",
"【附魔拓展】附魔拆解台Disenchanting-forge-1.16.5-1.7.2.jar",
"【风味拓展】【下界】下界扩展又nether-s-exoticism-1.16.5-1.1.3.jar",
"【风味拓展】【前置21】cuneiform-1.16.3-1.2.5.jar",
"【风味拓展】【前置】selene-1.16.5-1.9.0.jar",
"【风味拓展】【家具】(菜篮)NefsMedievalPub+v0.9(1.16.5).jar",
"【风味拓展】【植物】NatureExpansion1.5.jar",
"【风味拓展】【结构】魔术师the-conjurer-1.16.4-1.0.13.jar",
"【风味拓展】【自然】【装饰】装饰性环境植物terraincognita-1.16.3-1.7.3.jar",
"【风味拓展】【自然】生境(小而精)habitat-1.0.1.jar",
"【风味拓展】【自然】花草灌木SereneShrubbery-1.16.5-1.1.0.jar",
"【风味拓展】【装饰】supplementaries-1.16.5-0.18.4.jar",
"【风味拓展】【装饰】灵感原版装饰Inspirations-1.16.5-1.2.3.37.jar",
"【风味拓展】【装饰】自然装饰NaturalDecorMod 1.16.5 II V0.26.jar",
"【风味拓展】怪物生成(墓碑出僵尸)jumpers-forge-1.16.5-v2.0.jar",
"【风味拓展】更多洞穴特征(蘑菇罐子石锥)extcaves.jar",
"【风味拓展】添加了一些末地结构修改了一些配方Farmable1.0.0.jar",
"【风味拓展】溪流upstream-1.0.jar",
"【风味拓展】额外(juicer果汁机含一种女巫小屋)extract-1.1.jar",
"【风味拓展】风铃Chimes-1.0.0-1.16.5.jar",
"【食物拓展】Horticulture-1.16.5-1.0.2.jar",
"【食物拓展】ND农夫乐事下界扩展nethers_delight-2.1.jar",
"【食物拓展】【不寻常】neapolitan-1.16.5-2.2.1.jar",
"【食物拓展】【不寻常】【兼容】不寻常系列融合农夫乐事abnormals_delight-1.16.5-1.2.1.jar",
"【食物拓展】【兼容】Alex's+Delight+1.1.3+-+Forge+1.16.5.jar",
"【食物拓展】【兼容】Alex's+Delights+1.0.0.jar",
"【食物拓展】【兼容】农夫乐事兼容性farmersdelightintegration-1.16.5-1.0.3.jar",
"【食物拓展】【兼容】农夫乐事兼容性farmersdelightintegrations-1.16.5-1.2.jar",
"【食物拓展】【兼容】简单快乐simpledelights-1.2.jar",
"【食物拓展】【兼容】茶与FD_farmerstea-1.16.5-1.3.jar",
"【食物拓展】【兼容】(巨多联动)农夫乐事非正规厨师irregularchef-1.16.5-1.0.1.jar",
"【食物拓展】【前置16】潘马斯农村食物核心pamhc2foodcore-1.16.3-1.0.2.jar",
"【食物拓展】【拓展】农夫乐事铜锅copperpot-1.16.5-1.2.0.jar",
"【食物拓展】【树木】潘马斯树木pamhc2trees-1.16.3-1.0.1.jar",
"【食物拓展】农夫乐事扩展Farmers_Extra_Foods_1.2.jar",
"【食物拓展】潘马斯作物pamhc2crops-1.16.3-1.0.2.jar",
"【食物拓展】潘马斯食物拓展pamhc2foodextended-1.16.3-1.0.2.jar",
"【食物拓展】简单的茶simplytea-1.16.5-2.4.0.jar"
]

总结

4网络层

  • 选路算法
    • 链路状态选路算法
    • 距离向量算法
    • 层次选路
  • 因特网中的选路协议
    • 内部网关协议:RIP、OSPF、IGRP
    • 外部网关协议:BGP
  • SDN
    概念,用途,架构

5数据链路层

  • 链路层功能、提供的服务
  • 差错检测方法
  • 多路访问链路和协议
  • 局域网技术
  • 以太网技术(链路层和物理层的实现方式)
    • 帧格式
    • 以太网提供无连接、不可靠的服务
    • 以太网采用的CSMA/CD原理
  • 集线器和交换机
  • VLAN

Cerf and Kahn 原则

  • 最简单化,自治原则 – 网络独立运作,与其他网络互连时无须进行内部改动
  • 尽力服务原则– 提供尽最大努力的端到端服务
  • 无状态路由器 – 路由器无须维护连接状态信息
  • 分散式控制

协议三要素

网络协议的三个要素及其含义:

  1. 语义,解释控制信息每个部分的意义;
  2. 语法,用户数据与控制信息的结构与格式,以及数据出现的顺序;
  3. 同步/时序,对事件发生顺序的详细说明。
    简单来说:语义表示要做什么,语法表示要怎么做,同步/时序表示做的顺序

网络评估

延迟、丢包、带宽、吞吐量

  • 发生丢包的原因:
    网络转发节点的队列缓存不足,导致新到的报文无法入队缓存,只能丢弃;
    报文到达目的地时延过大,导致接收方已不再需要该报文,从效果上看等同于丢包。
  • 带宽:物理链路理论上能承载的最大吞吐量
  • 吞吐量:接收端接收到数据的比特速率

时延

节点处理时延nodal processing delay:

检查错误位
选择输出链路
高速路由器处理延迟-微秒级

排队时延queueing delay:

等待被发送到输出链路上的时间
取决于路由器的拥塞程度

传输时延Transmission delay

R=链路带宽 (bps)
L=分组长度 (bits)
发送分组比特流的时间 = L/R

传播时延Propagation delay

d = 物理链路的长度
s = 介质的信号传播速度 (~2x108 m/sec)
传播延迟 = d/s

攻击与病毒

常见攻击方式:

  • 植入恶意软件:病毒、蠕虫(自我传播)、特洛伊木马。共同特征是自我复制、传播、破坏电脑文件
  • 攻击服务器和网络基础设施:DoS(Denial of Service)
  • 嗅探分组
  • 伪装
  • 修改或删除报文

端口

三个端口组
| 端口组 | 号码范围 | 描述 |
| — | — | — |
| 公认端口 | 0到1023 | 这些端口号保留用于常见或流行的服务和应用程序, 例如 Web浏览器, 电子邮件客户端和远程访问 客户端。为常用的服务器应用程序定义的公认端口使 客户端能够轻松识别所需的关联服务。
|
| 注册端口 | 1024到49151 | IANA将这些端口号分配给请求实体, 以用于特定的进程或应用程序。这些进程主要是用户选择安装的单个 应用程序, 而不是使用公认端口号的 常见应用程序。例如, 思科已为其RADIUS服务器身份验证进程 注册了端口1812。
|
| 私有和(或)动态端口 | 49152 到 65535 | 这些端口也称为 _临时端口_。客户端的操作系统通常在 发起与服务的连接时动态分配端口号。之后即可在通信过程中使用动态端口识别客户端 应用程序。
|

该表显示了一些常用的公认端口号及其相关应用程序。
| 端口号 | 协议 | 应用层 |
| — | — | — |
| 20 | TCP | 文件传输协议 (FTP) - 数据 |
| 21 | TCP | 文件传输协议 (FTP) - 控制 |
| 22 | TCP | 安全 Shell (SSH) |
| 23 | TCP | Telnet |
| 25 | TCP | 简单邮件传输协议 (SMTP) |
| 53 | UDP(TCP?) | 域名服务 (DNS) |
| 67 | UDP | 动态主机配置协议 (DHCP)- 服务器 |
| 68 | UDP | 动态主机配置协议-客户端 |
| 69 | UDP | 简单文件传输协议 (TFTP) |
| 80 | TCP | 超文本传输协议 (HTTP) |
| 110 | TCP | 邮局协议第 3 版 (POP3) |
| 143 | TCP | 互联网消息访问协议 (IMAP) |
| 161 | UDP | 简单网络管理协议 (SNMP) |
| 443 | TCP | 安全超文本传输协议 (HTTPS) |

TCP/UDP

TCP提供但UDP不提供的服务包括:
可靠传输
流量控制
拥塞控制

  • TCP:可靠传输、流量控制、拥塞控制、面向连接、有序
  • UDP:Unreliable, unordered,IP在传输层的扩展

传输层上不可用的服务:延迟保证、带宽保证

UDP

  • 尽力而为”服务,容忍丢包、应用程序自主排序
  • 无连接:在UDP发送方和接收方之间无握手、每个UDP段的处理独立于其他段
  • 无连接创建(它将增加时延)
  • 简单:在发送方、接收方无连接状态
  • 段首部小
  • 拥塞控制: UDP能够尽可能快传输

TCP

  • 点到点:一个发送方, 一个接收方; 连接状态与端系统有关,不为路由器所知
  • 可靠、有序的字节流:没有 “报文边界”
  • 流水线:TCP拥塞和流量控制设置滑动窗口协议
  • 发送和接收缓冲区
  • 全双工数据:同一连接上的双向数据流、MSS: 最大报文段长度、MTU:最大传输单元
  • 面向连接:在进行数据交换前,初始化发送方与接收方状态,进行握手(交换控制信息),
  • 流量控制: 发送方不能淹没接收方
  • 拥塞控制: 抑止发送方速率来防止过分占用网络资源

报文

IP
enter description here
UDP
enter description here
8字节固定
TCP
enter description here

MSS/MTU

TCP可从发送缓存中取出并放入报文段(segment)的数据量受限于最大报文段长度MSS。MSS通常根据最初确定的本地发送主机发送的最大链路层帧长度MTU来设置。

MSS+TCP/IP头部的长度(20+20字节)= MTU
以太网和PPP链路中MTU为1500字节,因此MSS通常为1460字节。

TCP流控

enter description here

HTTP

  • HTTP/1.0: GET POST HEAD
    要求服务器保持请求的对象不响应
  • HTTP/1.1: 除了GET, POST, HEAD 还有
    PUT 将entity body中的文件上传到URL字段指定的位置
    DELETE 删除URL字段中指定的文件

典型的状态码如下:

  • 200 OK
    request succeeded, requested object later in this msg
  • 301 Moved Permanently (永久的重定向)
    requested object moved, new location specified later in this msg (Location:)
  • 400 Bad Request
    request msg not understood by server
  • 404 Not Found
    requested document not found on this server
  • 505 HTTP Version Not Supported

格式

1
2
3
4
GET /index.html HTTP/1.1 \r\n
Host: ……
\r\n
……
1
2
3
4
HTTP/1.1 200 OK\r\n
Date:……
\r\n
……
  • GET:GET方法请求一个指定资源的表示形式,使用GET的请求应该只被用于获取数据。
  • HEAD:HEAD方法请求一个与GET请求的响应相同的响应,但没有响应体
  • POST:POST方法用于将实体提交到指定的资源,通常导致在服务器上的状态变化或副作用。
  • PUT:PUT方法用请求有效载荷替换目标资源的所有当前表示。
  • DELETE:DELETE方法删除指定的资源。

DHCP

即插即用
DHCP概述:

  • 主机广播 DHCP DISCOVER 消息
  • DHCP 服务器用 DHCP OFFER 消息响应
  • 主机请求IP地址 DHCP REQUEST 消息
  • DHCP 服务器确认 DHCP ACK/NACK 消息
  • DHCP 终止租用期 DHCP RELEASE 消息

各层次

一般题5层模型:1物理层2数据链路层3网络层4传输层5应用层
对应PDU:位/比特,帧,数据包/分组,段,数据

协议

TCP/IP协议簇

如今,TCP/IP 协议簇包含许多协议,并且不断发展以支持新服务。
enter description here
TCP/IP是开放的标准的协议簇

应用层

域名系统

  • DNS - 域名系统。将域名(例如 cisco.com)转换为 IP 地址。
    主机配置
  • DHCPv4 - IPv4动态主机配置协议。DHCPv4 服务器在启动时动态地将 IPv4 编址信息分配给 DHCPv4 客户端,并允许在不再需要时重新使用这些地址。
  • DHCPv6 - IPv6动态主机配置协议。DHCPv6类似于DHCPv4。DHCPv6服务器在启动时动态地将IPv6编址信息分配给DHCPv6客户端。
  • SLAAC - 无状态地址自动配置。一种允许设备在不使用DHCPv6服务器的情况下获得其IPv6编址信息的方法。
    邮件
  • SMTP - 简单邮件传输协议。使客户端能够将邮件发送到邮件服务器,并使服务器能够将邮件发送到其他服务器。客发服,服发服
  • POP3 - 邮局协议第 3 版。使客户端能够从邮件服务器检索电子邮件并将电子邮件下载客户端本地邮件应用程序。下载到客
  • IMAP - 互联网消息访问协议。使客户端能够访问存储在邮件服务器上的电子邮件,并在服务器上维护电子邮件。访问服
    文件传输
  • FTP - 文件传输协议。它设置规则,使得一台主机上的用户能够通过网络访问另一台主机或向其传输文件。FTP是一种可靠、面向连接且进行确认的文件传输协议。
  • SFTP - SSH文件传输协议。作为安全外壳 (SSH)协议的扩展,SFTP可用于建立安全的文件传输会话,在该会话中对文件传输进行加密。SSH 是一种安全远程登录的方法,通常用于访问设备的命令行。
  • TFTP - 简单文件传输协议。这是一个简单的,无连接的文件传输协议,使用尽最大努力、无需确认的文件传输方式。它使用的开销比FTP少。
    Web和Web服务
  • HTTP - 超文本传输协议。这是有关在万维网上交换文本、图形图像、音频、视频以及其他多媒体文件的一组规则集。
  • HTTPS - 安全 HTTP。这是一种安全的HTTP形式,它对在万维网上交换的数据进行加密。
  • REST - 具象状态传输协议。它使用应用程序编程接口 (API) 和 HTTP 请求创建 Web 应用程序的 Web 服务。

传输层

面向连接

  • TCP - 传输控制协议。它使运行在不同主机上的进程之间能够进行可靠的通信,并提供可靠的、需要确认的传输,以确保传输成功。
    无连接
  • UDP - 用户数据报协议。它允许一台主机上运行的进程向另一台主机上运行的进程发送数据包。但是,UDP不会确认数据报传输是否成功。

互联网层

Internet 协议IP

  • IPv4 - 互联网协议第 4 版。它接收来自传输层的消息段,将消息打包成数据包,并为通过网络进行端到端传递的数据包进行地址分配。IPv4 使用 32 位地址。
  • IPv6 - 互联网协议第 6 版。与 IPv4 类似,但使用 128 位地址。
  • NAT - 网络地址转换。将私有网络 IPv4 地址转换为全球唯一的公有 IPv4 地址。
    消息传送ICMP运行于IP之上
  • ICMPv4 - IPv4 互联网控制消息协议。目的主机针对数据包传输中出现的错误,向源主机提供反馈。
  • ICMPv6 - 用于 IPv6 的ICMP。与 ICMPv4 类似的功能,但用于 IPv6 数据包。
  • ICMPv6 ND - IPv6 邻居发现。包括用于地址解析和重复地址检测的四个协议消息。
    路由协议
  • OSPF - 开放最短路径优先协议。它使用基于区域的分层设计的链路状态路由协议。OSPF是一种开放式标准内部路由协议。
  • EIGRP — 增强型内部网关路由协议这是一种思科开发的开放标准路由协议,使用基于带宽、延迟、负载和可靠性的复合度量。
  • BGP - 边界网关协议。这是一种开放标准的外部网关路由协议,用于互联网服务提供商(ISP)之间。BGP 还通常用于 ISP 与其大型私有客户端之间来交换路由信息。
主要工作:路由和转发
  • 转发:将数据包从路由器的输入链接移动到适当的路由器输出链路
  • 路由:确定数据包从源到目标所采用的路由
连接和无连接
  • 数据报 网络提供网络层的无连接 服务
  • 虚电路 网络提供网络层的 连接 服务
  • 类比于TCP/UDP的面向连接/ 无连接的传输层服务:
    • 任何网络中的网络层只提供两种服务之一,不会同时提供。
      虚电路网络:提供连接服务。
      数据报网络:提供无连接服务。
    • 传输层:面向连接服务在网络边缘的端系统中实现。
    • 网络层:面向连接服务在端系统及网络核心的路由器中实现。

网络接入层/数据链路层

地址解析

  • ARP - 地址解析协议。提供 IPv4 地址与硬件地址之间的动态地址映射。
  • *注意**:您可能会看到其他文档状态,表明 cd 在互联网层(OSI 第 3 层)运行。但是,在本课程中,我们声明 ARP 在网络接入层(OSI 第 2 层)运行,因为它的主要目的是发现目标的 MAC 地址。MAC 地址是第 2 层地址。
    数据链路协议
  • 以太网 - 为网络接入层的布线和信令标准定义规则。
  • WLAN - 无线局域网。定义 2.4 GHz 和 5 GHz 无线电频率的无线信号规则。

IP及子网计算

MAC

6*8=48bit
前3字节IEEE后3厂家自行分配

功能

  • 数据封装:帧同步、帧定界,地址确定,错误检测机制
  • 媒体访问管理:媒体分配,冲突解决

DNS

类型

分布式、层次数据库

  • 根服务器:在因特网上有13(247:2011)个根服务器,主要维护的是顶级域名服务器的IP地址
  • 顶级域服务器(TLD):维护顶级域名的IP地址
    顶级域名:com、org、net、edu、gov、jp、ca、cn
  • 权威DNS服务器:由组织机构维护的自己提供的服务器的域名到IP地址映射的DNS服务器。例如我们学校的Web服务器和电子邮件服务器的域名和IP地址的映射由我们学校自己的权威DNS服务器维护。

查询

  • 迭代查询
    enter description here
  • 递归查询
    enter description here

记录

  • A
  • CNAME
  • NS
  • MX

算法

迪杰斯特拉

迪杰斯特拉(Dijkstra)算法是典型最短路径算法,用于计算一个节点到其他节点的最短路径
它的主要特点是以起始点为中心向外层层扩展(广度优先遍历思想),直到扩展到终点为止。

基本思想:

  • 通过Dijkstra计算图G中的最短路径时,需要指定一个起点D(即从顶点D开始计算)。
  • 此外,引进两个数组S和U。S的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),而U则是记录还未求出最短路径的顶点(以及该顶点到起点D的距离)。
  • 初始时,数组S中只有起点D;数组U中是除起点D之外的顶点,并且数组U中记录各顶点到起点D的距离。如果顶点与起点D不相邻,距离为无穷大。
  • 然后,从数组U中找出路径最短的顶点K,并将其加入到数组S中;同时,从数组U中移除顶点K。接着,更新数组U中的各顶点到起点D的距离。
  • 重复第4步操作,直到遍历完所有顶点。

校验和

第一步:补零
第二部:4位累加,溢出做0001加
第三步:二进制取反

CRC

第一步:展开多项式得除数
第二步:原数据补零(个数为多项式最高次)
第三步:从左向右按位异或(结果为除数长度-1不足补零)

多路访问协议类型

信道划分协议

把信道划分为小“片” (时隙)
给节点分配专用的小“片”

TDMA时分

避免冲突、公平:每个节点专用速率R/N b/s。
节点速率有限:R/N b/s;
效率不高:节点必须等待它的传输时隙。

FDMA频分

避免冲突、公平:N个节点公平划分带宽;
节点带宽有限、效率不高:节点带宽为R/N。

CDMA 码分

每个节点分配一个唯一的编码
每个节点用它唯一的编码来对它发送的数据进行编码

随机访问协议

典型随机访问协议:

ALOHA协议(纯ALOHA,时隙ALOHA)

星型拓扑结构
使地理上分散的用户通过无线电来使用中心主机

载波侦听

载波监听多路访问CSMA协议

  • 载波侦听 CS:某个节点在发送之前,先监听信道。
    信道忙:有其他节点正往信道发送帧,该节点随机等待(回退)一段时间,然后再侦听信道。
    信道空:该节点开始传输整个数据帧。
  • 冲突检测 CD:边发送边监听,即节点在传输同时侦听信道。
    如果检测到有其他节点正在传输帧,发生冲突,立即停止传输,并用某种方法来决定何时再重新传输。

带冲突检测的载波监听多路访问CSMA/CD

基本原理:传送前侦听
信道忙:延迟传送
信道闲:传送整个帧
发送同时进行冲突检测:一旦检测到冲突就立即停止传输, 尽快重发。

带冲突避免的载波监听多路访问CSMA/CA

轮流协议

  • 来自中心站的轮询
  • 令牌传递

简单缩写

ISP-Internet Service Provider-互联网服务提供商

Internet Service Provider即互联网服务提供商

xDSL

ADSL

Asymmet-ricaI DigitaI Subscriber Loop非对称数字用户线环路
在一对铜线上支持上行速率640Kbps到1Mbps,下行速率1Mbps到8Mbps,有效传输距离在3-5公里范围以内。

SDSL

Symmetric digital subscriber line对称数字用户线路
SDSL实现了可在一对普通铜线上,以上下对称的2.3Mbps速率支持有话音伴随达2.4千米的传输距离,无话音伴随情况下传输距离更可达到2.7千米。
SDSL具有开通率高、覆盖面积广、传输速率高、性能稳定的特点。

HDSL

High-speed Digital Subscriber Line
支持对称(1.544Mbps/2.048Mbps)传输,有效传输距离为3-4公里,且需要两至四对铜质双绞电话线,适用于商用环境。

VDSL

Very-high-bit-rate Digital Subscriber Loop
是xDSL技术中最快的一种,在一对铜质双绞电话线上,上行数据的速率为13到52Mbps,下行数据的速率为1.5到2.3 Mbps,但是VDSL的传输距离只在几百米以内。非对称

CIDR-Classless InterDomain Routing-无类域间路由

无类域间路由CIDR(Classless InterDomain Routing)
CIDR的提出:Internet指数增长,IP地址即将用完。基于分类的IP地址空间的组织浪费了大量的地址。B类地址很难申请,C类地址的增多使得路由选择表暴涨

CDMA-Code Division Multiple Access-码分多址

Code Division Multiple Access码分多址
码分多址的基本思想是靠不同的地址码来区分的地址。每个配有不同的地址码,用户所发射的载波(为同一载波)既受基带数字信号调制,又受地址码调制。

HTTP-Hyper Text Transfer Protocol-超文本传输协议

超文本传输协议(Hyper Text Transfer Protocol,HTTP)
是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。

HTTPS-Hypertext Transfer Protocol Secure-超文本传输安全协议

Hypertext Transfer Protocol Secure
HTTPS 协议是由 HTTP 加上 TLS /SSL 协议构建的可进行加密传输、身份认证的网络协议,主要通过 数字证书 、 加密算法 、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。HTTPS 是 HTTP 协议的一种扩展

SMTP-Simple Mail Transfer Protocol-简单邮件传输协议

Simple Mail Transfer Protocol简单邮件传输协议是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服务。SMTP独立于特定的传输子系统,且只需要可靠有序的数据流信道支持,SMTP的重要特性之一是其能跨越网络传输邮件,即“SMTP邮件中继”。使用SMTP,可实现相同网络处理进程之间的邮件传输,也可通过中继器或网关实现某处理进程与其他网络之间的邮件传输。

MIME-Multipurpose Internet Mail Extensions-多用途互联网邮件扩展

SMTP面向ASCII使用MIME传输非ASCII
MIME(Multipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。

IMAP-Internet Message Access Protocol-因特网消息访问协议

IMAP(Internet Message Access Protocol)因特网消息访问协议以前称作交互邮件访问协议(Interactive Mail Access Protocol),是一个应用层协议。它的主要作用是邮件客户端可以通过这种协议从邮件服务器上获取邮件的信息,下载邮件等。

POP3-Post Office Protocol v3-邮局协议版本3

POP3,全名为“Post Office Protocol - Version 3”,即“邮局协议版本3”。是TCP/IP协议族中的一员,由RFC1939 定义。本协议主要用于支持使用客户端远程管理在服务器上的电子邮件。

DHCP-Dynamic Host Configuration Protocol-动态主机配置协议

Dynamic Host Configuration Protocol(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。

FTP-File Transfer Protocol-文件传输协议

文件传输协议(File Transfer Protocol,FTP)是用于在网络上进行文件传输的一套标准协议,工作在应用层, 使用 TCP 传输。FTP允许用户以文件操作的方式(如文件的增、删、改、查、传送等)与另一主机相互通信。然而, 用户并不真正登录到自己想要存取的计算机上面而成为完全用户, 可用FTP程序访问远程资源, 实现用户往返传输文件、目录管理以及访问电子邮件等等, 即使双方计算机可能配有不同的操作系统和文件存储方式。

TCP-Transmission Control Protocol-传输控制协议

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

UDP-User Datagram Protocol-用户数据报协议

User Datagram Protocol一种无连接的传输层协议,它主要用于不要求分组顺序到达的传输中,分组传输顺序的检查与排序由应用层完成,提供面向事务的简单不可靠信息传送服务。UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。

MAC-Media Access Control-媒体介入控制层

Media Access Control媒体介入控制层,它定义了数据帧怎样在介质上进行传输。在共享同一个带宽的链路中,对连接介质的访问是“先来先服务”的。物理寻址在此处被定义,逻辑拓扑(信号通过物理拓扑的路径)也在此处被定义。线路控制、出错通知(不纠正)、帧的传递顺序和可选择的流量控制也在这一子层实现。

ARP-Address Resolution Protocol-地址解析协议

Address Resolution Protocol - 地址解析协议。提供 IPv4 地址与硬件地址之间的动态地址映射。

DNS-Domain Name System-域名系统

Domain Name System域名系统是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用UDP端53。

SSL-Secure Sockets Layer-安全套接字协议

SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。

TSL-Transport Layer Security-传输层安全性协议

传输层安全性协议 Transport Layer Security,TLS 及其前身安全套接层 Secure Sockets Layer,SSL是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
最新版TLS建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本。
地位与SSL并列,支持的加密算法不同,TLS与SSL 3.0不能互操作

VPN-Virtual Private Network-虚拟专用网络是

Virtual Private Network虚拟专用网络是,专用网络的延伸,它包含了类似Internet的共享或公共网络链接。通过VPN可以以模拟点对点专用链接的方式通过共享或公共网络在两台计算机之间发送数据。

DASH-Dynamic Adaptive Streaming over HTTP-动态自适应流

Dynamic Adaptive Streaming over HTTP动态自适应流,主要目标是形成IP网络承载单一格式的流媒体并提供高效与高质量服务的统一方案, 解决多制式传输方案并存格局下的存储与服务能力浪费、运营高成本与复杂度、系统间互操作弱等问题.

ABR-Area Border Router-区域边界路由器

Area Border Router区域边界路由器,ABR被认为同时是OSPF主干和相连区域的成员。因此,它们同时维护着描述主干拓扑和其他区域拓扑的路由选择表。
该类路由器可以同时属于两个以上的区域,但其中一个必须是骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。

OSPF-Open Shortest Path First-开放式最短路径优先

Open Shortest Path First开放式最短路径优先是广泛使用的一种动态路由协议,它属于链路状态路由协议,具有路由变化收敛速度快、无路由环路、支持变长子网掩码(VLSM)和汇总、层次区域划分等优点。在网络中使用OSPF协议后,大部分路由将由OSPF协议自行计算和生成,无须网络管理员人工配置,当网络拓扑发生变化时,协议可以自动计算、更正路由,极大地方便了网络管理。但如果使用时不结合具体网络应用环境,不做好细致的规划,OSPF协议的使用效果会大打折扣,甚至引发故障。

RIP-Routing Information Protocol-路由信息协议

Routing Information Protocol ,路由信息协议RIP是一种基于距离矢量算法的协议,它使用跳数作为度量值来衡量到达目的地址的距离。
是基于UDP,端口520的应用层协议。

BGP-Border Gateway Protocol-边界网关协议

Border Gateway Protocol边界网关协议是运行于 TCP 上的一种自治系统的路由协议。 BGP 是唯一一个用来处理像因特网大小的网络的协议,也是唯一能够妥善处理好不相关路由域间的多路连接的协议。

引论8、进程39存储18、设备7、文件12、shell12、Linux编程4

引论

  • 目标:方便性、有效性、可扩展性、开放性
  • 作用1. 作为用户与计算机硬件系统之间的接口2. 操作系统作为计算机系统资源的管理者3. 实现了对计算机资源的抽象
  • 发展过程:人工操作方式、单批道处理系统、多批道处理系统(资源利用率高,系统吞吐量大,平均周转时间长,无交互能力)、分时系统(多路性、独立性、及时性、交互性)、实时系统(多路性、独立性、及时性、交互性、可靠性)、微机操作系统(单用户多用户)
  • 基本特征 并发、共享、虚拟、异步
  • 主要功能:处理机管理功能(进程控制、进程同步、进程通信、进程调度)、内存管理功能(内存分配、内存保护、地址映射、内存扩充)、 (I/O)设备管理功能(缓冲管理、设备分配、设备处理)、文件管理功能(文件存储空间管理、目录管理、文件读写管理与保护)、操作系统与用户之间的接口【用户接口(联机用户接口、脱机用户接口、程序接口)、程序接口】

进程

  • 进程的描述:而由程序段、相关的数据段和PCB三部分便构成了进程实体。

  • 典型定义1. 进程是程序的一次执行。2. 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。3. 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位

  • 特征:动态性、并发性、 独立性、异步性

  • 进程 状态IMG_20220304_151207_edit_772433114767030

  • 引起创建进程的事件:用户登录、作业调度、提供服务、应用请求

  • 引起进程终止的事件:正常结束、异常结束(①越界错误。存储区。 ②保护错。写一个只读文件。 ③非法指令。执行一条不存在的指令。 ④特权指令错。用户访问只允许OS执行的指令。 ⑤运行超时。 ⑥等待超时。 ⑦算术运算错。 ⑧I/O故障。)外界干预(① 操作员或操作系统干预。 ② 父进程请求终止该进程。 ③ 当父进程终止子孙进程终止。)

  • 引起进程阻塞的事件:请求系统服务、启动某种操作、新数据尚未到达、无新工作可做

信号量

记录型信号量

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
int in=0,out=0;
item buffer[n];
semaphore mutex=1,empty=n,full=0;

void producer(){
while(1){
...produce nextp
wait(empty);
wait(mutex);
buffer(in):=nextp;
in:=(in+1) mod n;
signal(mutex);
signal(full);
}
}

void consumer{
while{
wait(full);
wait(mutex);
nextc:=buffer(out);
out:=(out+1) mod n;
signal(mutex);
signal(enpty);
...consume nextc
}
}
  • 处理机调度:高级调度(外存作业调入内存,用于批处理系统,调度最慢)、低级调度(决定就绪队列中的那个进程应获得处理机,调度最频繁)、中级调度(把外存上那些已经具备运行条件的就绪进程重新载入内存)

  • 死锁条件:互斥、请求和保持(占有且等待)、不可抢占(非剥夺)、环路等待

存储

设备

文件

SHELL

Linux

条件码

enter description here
enter description here

多少位

ARM是32bit处理器,所以它的
字是32bit的。0x0000 0000
半字自然就是16bit;0x0000
字节不论在哪个CPU上都是8bit。0x00

NZCV

N 1为负 0为正

本位设置成当前指令执行结果的第31位。当两个由补码
表示的有符号整数运算时,N=1 表示结果为负数;否则结果
为正数或零

Z 1为零 0为非零

Z=1 表示运算的结果为零,否则结果不为零

C 加进1 减借0

分 4 种情况:

  1. 在加法指令中(包括比较指令CMN),当结果产生了进位,则C=1,表示无符号数运算发生上溢出,其它 情况下C=0
  2. 在减法指令中(包括比较指令CMP),当运算中发生了借位,则C=0,其它情况下C=1
  3. 对于在操作数中包含移位操作的运算指令(非加/减指令),C被设置成被移位寄存器最后移出去的位
  4. 对于其它非加/减法运算指令,C的值通常不受影响

V 溢出1

分两种情况:

  1. 对于加/减运算指令,当操作数和运算结果都是以二进制的补码表示的带符号的数时,且运算结果超出了有符号运算的范围时溢出。V=1 表示符号位溢出
  2. 对于非加/减法指令,通常不改变标志位 V 的值

指令

enter description here

ARM 指令有几种寻址方式

ARM 指令有 8 种寻址方式。分别是:
立即数寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、堆栈寻址、相对寻址

LDM/STM

寻址方式 说明 pop =LDM push =STM
FA 递增满 LDMFA LDMDA STMFA STMIB
FD 递减满 LDMFD LDMIA STMFD STMDB
EA 递增空 LDMEA LDMDB STMEA STMIA
ED 递减空 LDMED LDMIB STMED STMDA

多寄存器

类型 每次基址寄存器操作 传送起始地址 Rn序号变化
IA 先传数据,后基址加4 (Rn) +
IB 先基址加4,后传数据 (Rn)+4 +
DA 先传数据,后基址减4 (Rn) -
DB 先基址减4,后传数据 (Rn)-4 -
无论如何高寄存器高地址

类型 堆栈类型 pop push
FA 递增满 LDMFA STMFA
FD 递减满 LDMFD STMFD
EA 递增空 LDMEA STMEA
ED 递减空 LDMED STMED
常用现场保与恢复
  • STMFD SP!,{R0 - R7,LR};现场保存,将R0~R7、LR入栈,SP值更新 。
  • LDMFD SP!,{R0 - R7,PC}^;恢复现场,包括CPSR,异常处理返回,SP值更新。

^

后缀“^”说明

  • 寄存器列表不包含PC:使用后缀“^”进行数据传送时,加载/存储的是用户模式的寄存器,而不是当前模式的寄存器。
  • 寄存器列表包含有PC:除了正常的多寄存器传送外,还要将SPSR拷贝到CPSR中。该用法可用于异常处理返回。
  • 禁用情况:后缀“^”不允许在用户模式或系统模式下使用。 因为它们没有SPSR

ARM是小端 高位高地址

ARM 体系结构支持 7 种运行模式

用户模式、系统模式、快速中断模式、一般中断模式、管理模式、终止模式、未定义模式

伪指令、宏指令

伪指令的作用

  1. 程序定位的作用;
  2. 为非指令代码进行定义;
  3. 为程序完整性做标注;
  4. 有条件的引导程序段。

声明全局变量伪指令

  • GBLA 定义一个 全局数字变量,其默认初值为 0 ;GBLA Test1
  • GBLL 定义一个 全局逻辑变量 ,其默认初值为 FALSE;GBLL Test2
  • GBLS 定义一个 全局字符串变量,其默认初值为空 ;GBLS Test3

声明局部变量伪指令

定义一个ARM程序中的局部变量,并将其初始化。与全局变量同理

  • LCLA
  • LCLL
  • LCLS

数据定义伪指令

  • SETA伪指令用于给一个数字变量赋值;
  • SETL伪指令用于给一个逻辑变量赋值;
  • SETS伪指令用于给一个字符串变量赋值;

其他伪指令

  • LTORG用于声明一个数据缓冲池(文字池)的开始。
  • MAP^ FIELD# SPACE% DCB= DCD&

32位到16位指令

1
2
3
4
5
6
7
8
9
10
		   CODE3232 位编码 
INPro LDR R0, = SubPro +#1
MOV LR , PC
BX R0
SUB R1,R2,#2

CODE16
SubPro ADD R1R3,#1

BX LR

CPSR/SPSR

从高到低为FSXC
enter description here

1
2
3
MRS R0, CPSR
BIC R0, R0, #0x40
MSR CPSR_c, R0

异常与中断PC值

enter description here

汇编语言程序段的基本结构

1
2
3
4
5
6
7
8
9
10
11
			AREA Init, CODE, READONLY ;只读的代码段名叫Init
ENTRY ;程序入口点
start
LDR R0,=0X3FF5000
LDR R1,=0XFF ;或MOV R1#0XFF
STR R1,[R0]
LDR R0,=0X3FF5008
LDR R1,=0X01 ;或MOV R1#0X01
STR R1,[R0]
…….
END ;段结束

ARM与C混合编程

ATPCS

ATPCS规定,ARM的数据堆栈为FD型堆栈,即递减满堆栈。
还有对于参数个数不多于4的函数,编译器必须按参数在列表中的顺序,自左向右为它们分配寄存器R0~R3。
如果函数的参数多于4个,那么多余的参数则按自右向左的顺序压入数据堆栈,即参数入栈顺序与参数顺序相反。

C调用ARM

1
2
3
4
5
6
7
8
9
	AREA tt, CODE, READONLY
EXPORT strcopy
strcopy
LDRB R2,[R1],#1
STRB R2,[R0],#1
CMP R2,#0
BNE strcopy
MOV PC,LR
END

LDR R1,[SP]
LDR R2,[SP,#4]
BX LR
extern void strcopy(char *d,const char * s);

1
2
3
4
5
6
7
8
9
extern void strcopy(char *d,const char * s);
int main(void)
{
const char *src = “source”;
char dest[10];
…….
strcopy(dest, src);
……….
}

ARM调用C

1
2
3
4
int g(int a, int b, int c, int d, int e)
{
return a+b+c+d+e;
}

STR LR, [SP,#-4]!
ADD SP, SP, #(4)
LDR PC, [SP],#4

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	EXPORT f
AREA tt, CODE, READONLY
IMPORT g ;声名g为外部引用符号
ENTRY
f
STR LR, [SP,#-4]!
ADD R1, R0, R0
ADD R2, R1, R0
ADD R3, R1, R2
STR R3, [SP, #-4]!
ADD R3, R1, R1
BL g
ADD SP, SP, #4
RSB R0, R0, #0
LDR PC, [SP],#4
END

混合编程

enter description here

内联汇编

它不支持 Thumb 指令;除了程序状态寄存器 CPSR 之外,不能直接访问其他任何物理寄存器等;
如果在内联汇编程序指令中出现了以某个寄存器名称命名的操作数,那么它被叫做虚拟寄存器,而不是实际的物理寄存器。

1
2
3
4
5
6
7
8
9
10
11
void enable_IRQ(void)
{
int tmp;
_ _asm //声名内联汇编代码
{
MRS tmp, CPSR
BIC tmp, tmp, #0x80
MSR CPSR_c, tmp
}
}

1
2
3
4
5
6
7
8
9
10
11
12
void Read_mode(void)
{
int tmp, RR;
RR = 0xFFFFFFE0;
__asm //声名内联汇编代码
{
MRS tmp, CPSR
BIC tmp, tmp, RR
MSR CPSR_c, tmp
}
}

嵌入式汇编

与内联汇编不同,嵌入式汇编具有真实汇编的所有特性,数据交换符合 ATPCS 标准,同时支持 ARM 和Thumb,所以它可以对目标处理器进行不受限制的低级访问。但是不能直接引用 C/C++ 的变量

1
2
3
4
5
6
7
8
9
10
11
_ _asm int add(int i, int j)
{
ADD R0, R0, R1
MOV PC, LR
}

void main()
{
printf(“12345 + 67890 =%d\n”,add(12345,67890));
}

PWM

PWM 概念(脉宽调制)就是只对一方波序列信号的占空比按要求进行调制,而不是改变方波信号的其它参数,即不改变 幅度和周期,因此脉宽调制信号的产生和传输,都是数字式的。

DMA

数据库应用编程

enter description here

数据库连接技术

数据库接口中间件:

ODBC 开放式数据库连接服务

由微软公司开发,ODBC建立了一组规范,为多种数据库的开发提供统一的API接口
ODBC技术为应用程序提供了一套CLI(调用层接口)函数库和基于DLL(动态链接库)的运行支持环境。
层次结构及访问步骤
ODBC体系结构由四个部分组成:

  • ODBC数据库应用程序
  • 启动程序管理器 - 最重要的部件
  • DBMS驱动程序
  • 数据源

JDBC Java数据库连接服务

由SUN(Oracle)开发
JDBC包括一组用JAVA语言书写的接口和类,独立于特定的DBMS统一对数据库的操作。
接口封装位于java.sql、Javax.sql两个包
enter description here

数据库访问步骤

  • java程序加载java包java.sql.*中的核心类和接口,然后加载驱动程序
  • 创建数据库connection连接对象
  • 创建statement对象
  • 调用statement对象的相关方法执行对应的SQL语句
  • 处理数据库返回结果
  • 关闭连接
    enter description here
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
package JDBCtest;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;\

public class JDBCdemo{
public static void main(String args[]){
Connection conn=null;
Statement stmt=null;
String URL="jdbc:postgresql://localhost:5432/testDB";
String userName="name";
String passWord="123";

try{
Class.forName("org.postgresql.Driver");
conn=DriverManager.getConnection(URL,userName,passWord);//建立连接
String sql ="select * from test";
stmt=(Statement)conn.createStatement();//创建statement对象
ResultSet rs=stmt.executeQuery(sql);//executeQuery用于select返回结果集;executeUpdate用于update、delete、insert返回受影响的行数
while(rs.next()){//rs中即保存了返回的结果集
System.out.println(rs.getString("id")+" "+rs.getString("name"));
}
rs.close();
stmt.close();
conn.close();
}
catch(Exception e){
System.err.println(e.getClass().getName()+":"+e.getMessage());
System.exit(0);
}
}
}

储存过程编程

是数据库的一种对象,由一组完成特定数据处理功能的SQL语句和过程语句组成的程序,
编译后储存在数据库中
外部程序可以直接调用储存过程执行,不用再次编译

1
2
3
4
5
6
7
8
9
10
11
12
CREATE [ OR REPLACE ] FUNCTION name
( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = } default_expr ] [, ...] ] )
[ RETURNS retype | RETURNS TABLE ( column_name column_type [, ...] ) ]
AS $$ //实际代码的开始

DECLARE
-- 声明段
BEGIN
--函数体语句

END;
$$ LANGUAGE lang_name; //结束并指明所用的编程语言

优点

  1. 减少网络通信量
  2. 执行速度更快
  3. 更强的适应性
  4. 降低了业务实现与应用程序的耦合
  5. 降低了开发的复杂性
  6. 保护数据库元信息
  7. 增强了数据库的安全性

缺点

  1. SQL本身是一种结构化查询语言,而存储过程本质上是过程化的程序;面对复杂的业务逻辑,过程化处理逻辑相对比较复杂;而SQL语言的优势是面向数据查询而非业务逻辑的处理
  2. 如果存储过程的参数或返回数据发生变化,一般需要修改存储过程的代码,同时还需要更新主程序调用存储过程的代码。
  3. 开发调试复杂,由于缺乏支持存储过程的集成开发环境,存储过程的开发调试要比一般程序困难。
  4. 可移植性差

enter description here
此例创建过程函数Out_Record()
将查询的学生ID与姓名成对输出

触发器编程

由事件触发启动而不是运行启动,所以不能有参数
可用于定义逻辑比较复杂的完整性约束或业务规则约束

分类

按执行次数

  • 语句级触发器 - FOR EACH STATEMENT
  • 行级触发器 - FOR EACH ROW 指定表数据每变化一行就执行一次触发器

按执行时间

  • BEFORE触发器
  • AFTER触发器
  • INSTEAD OF触发器

特殊变量

  • NEW - RECORD类型,对于行级触发,它保存INSERT/UPADTE操作产生的新行数据
  • OLD - RECORD类型,对于行级触发,它保存INSERT/DELETE操作前的旧行数据
  • TG_OP - text类型,获取触发器是由INSERT/UPDATE/DELETE哪类操作引发

规则触发器

附加到一个表,只捕获DML事件
将function安装为触发器的格式
enter description here

enter description here
此例在Audit_score中进行delete|update|insert的记录

事件触发器

针对一个数据库DDL操作的触发器,在数据库级别上捕获DDL事件
类型

  • ddl_command_start
  • ddl_command_end
  • sql_drop删除一个数据库前触发

安装格式
enter description here

游标

  1. 游标(Cursor)是一种临时的数据库对象;
  2. 用来存放从数据库表中查询返回的数据记录;
  3. 提供了从结果集中提取并分别处理每一条记录的机制;
  4. 游标总是与一条SQL查询语句相关联;
  5. 游标包括:SQL语言的查询结果,指向特定记录的指针。

NoSQL数据库技术

enter description here

SQL

结构化查询语言是一种对关系数据库进行访问的数据操作语言

特点

一体化、使用方式灵活、非过程化、语言语法简单

类型

DDL数据定义语言

  • CREATE DATABASE/TABLE/INDEX
  • DROP DATABASE/TABLE/INDEX
  • ALTER DATABASE/TABLE

DML数据操控语言

  • INSERT
  • UPDATE
  • DELETE
    需要commit

DQL数据查询语言

  • SELECT

DCL数据控制语言

  • GRANT
  • DENY
  • REVOKE 权限收回

TPL事务处理语言

  • BEGIN/START TRANSACTION 开始事务
  • COMMIT 提交事务
  • ROLLBACK 回滚事务

CCL游标控制语言

  • DECLEAR CURSOR 定义游标
  • FETCH INTO 提交游标数据
  • CLOSE CURSOR 关闭游标

视图

SELECT查询结果集的虚拟表,使用储存在基础表的数据

作用

  • 简化复杂SQL查询操作
  • 提高数据访问安全性
  • 提供一定程序的数据逻辑独立性
  • 集中展示用户感兴趣的特定信息

索引

一种按照关系表中指定列的取值顺序组织元组数据存储的数据结构
以支持快速查找

优点

  • 提高关系表数据检索速度
  • 可快速连接关联表
  • 减少分组和排序的时间

开销

  • 创建和维护索引需要开销
  • 占据额外存储空间
  • 数据操纵会因为维护索引而带来开销

数据库设计与实现

数据库设计概述

数据库设计方案

  • 概念数据模型 - 现实世界的抽象,由数据库设计人员和用户共同完成
  • 逻辑数据模型 - 由概念模型抽象,由数据库设计人员完成
  • 物理数据模型 - 由逻辑模型抽象,并可转化为数据定义语句

(标识符是逻辑概念,主键是物理概念)

数据库设计过程与策略

过程
enter description here
策略:
自底向上、自顶向下、由内至外、混合

E-R模型

即实体-关系模型,是设计系统概念模型、逻辑数据模型的有效方法

基本元素

实体、属性、联系(关系)

联系的类型

多重性

联系数量称为联系度数
1:1
1:N
M:N

参与性

即可选/强制
则有如下符号
enter description here

继承性

分为非互斥继承联系、互斥继承联系、完整继承联系、非完整继承联系
enter description here

依赖性

标识符依赖弱实体
非标识符依赖弱实体

数据库建模设计

概念模型设计

  • 抽取与标识实体
  • 分析与标识实体联系:连接与联系符号选择、命名
  • 定义实体属性与标识符:选择标识符
  • 检查与完善

逻辑模型设计

  • CDM/LDM转换 - 在业务实体的基础上,增加数据实体;多对多实体联系通过关联实体转换为一对多实体联系;区分主键标识符、外键标识符
  • 规范化与完善 - 满足3NF范式

物理模型设计

  • 实体到关系表的转换:实体属性对应表的列、实体标识符转换为对应表主键(或设置为代理键)
  • 实体联系的转换:关系表之间的主,外键设置
    (弱实体到关系表的转换:若弱实体依赖于一个强实体时,加入强实体标识符作为外键值)
    在逻辑模型转换成物理模型时, 需要先确定将使用的DBMS。
    enter description here

数据库规范化设计

目标

  • 减少数据库中冗余数据,降低维护一致性的工作量
  • 合理设计关系表之间的依赖关系和约束关系,便于实现一致性
  • 合理设计数据库结构,便于对数据高效访问

非规范化的问题

插入,删除,修改出现异常

函数依赖理论

X->Y,Y依赖于X·
X为决定因子,Y为函数依赖

完全/部分函数依赖

定义:设X、Y是某关系的不同属性集,如X->Y,且不存在X的真子集A使A->Y,则为完全函数依赖,否则为部分函数依赖
enter description here

函数传递依赖

定义:有X->Y,Y-/->X,Y->Z则称Z对X存在函数传递依赖
enter description here

多值函数依赖

定义:对于 R(U,X,Y)中存在(x,y1,z1)和(x,y2,z2)时,也存在(x,y1,z2)和(x,y2,z1)
enter description here

关系规范化范式

关系规范化程度利弊:

  • 利:冗余数据减少;可消除数据访问异常增加
  • 弊:分解出来的关系表增加;实现数据查询访问时需要关联多表效率低
    逆规范化处理
    enter description here

第一范式

如果关系表中的属性不可再细分,则满足第一范式

第二范式

如果关系满足第一范式,并且消除了关系中属性部分函数依赖,则满足第二范式
即要求属性完全函数依赖

第三范式

如果关系满足第二范式,并且切断了关系中的属性传递函数依赖,则满足第三范式

巴斯科德范式BCNF

在关系中所有函数依赖的决定因子都是候选键
enter description here

第四范式

如果关系满足BCNF,并消除了多值函数依赖,该关系满足第四范式
enter description here

第五范式

如果关系满足第四范式,并消除了连接依赖,则满足第五范式

数据库管理

概述

数据库管理是为保证数据库系统的正常运行和服务质量必须进行的系统管理工作。

目标

为什么需要数据库管理?
因为数据库规模复杂,访问权限,安全隐私,损坏丢失
所以数据库管理目标有:

  • 保障数据库系统正常稳定运行
  • 充分发挥数据库系统的软硬件处理能力
  • 确保数据库系统安全和用户数据隐私
  • 有效管理数据库用户及其角色权限
  • 解决数据库系统性能优化、系统故障与数据损坏等问题
  • 最大程度地发挥数据库对其所属机构的作用

数据库管理内容

① DBMS系统运行管理
② 数据库性能监控
③ 数据库索引管理
④ 数据库查询优化
⑤ 数据库事务并发控制
⑥ 数据库角色管理
⑦ 数据库用户管理
⑧ 数据库对象权限管理
⑨ 数据安全管理
⑩ 数据库备份
⑪ 数据库恢复

DBMS管理功能结构

enter description here

DBMS结构

enter description here

事务管理

事务的概念

是一个数据库操作序列(一连串操作的集合),是数据库应用程序的基本逻辑单元
这些操作要么都做,要么都不做,是一个不可分割的执行单位。
事务是DBMS执行的最小任务单元,是最小故障恢复单元,是最小并发控制单元
每个事务都具有ACID特性。

事务的生命周期状态

enter description here

事务的特性ACID

原子、一致、隔离、持久

  • 原子性(Atomicity):事物要不做完要不回退,如原子一样不可分割,不能半途而废
  • 一致性(Consistency):例如银行转账,收发方金额总数一致
  • 隔离性(Isolation):多事务并发执行,不能相互干扰、双回滚
  • 持续性(Durability): 一旦提交,结果不变

如果在DBMS中各个事务按串行执行很容易满足ACID但是考虑:改善系统的资源利用率,减少事务执行的平均等待时间还是要支持并发

事务的SQL语句

1
2
3
BEGIN;
SQL...;
COMMIT;(ROLLBACK;)

还有SAVEPOINT用于设立事务保存点

并发控制

并发控制问题

  • 脏读 - 指多个事务同时发生时,一个事务读取了被另一个事务所修改后的共享数据
  • 不可重复读 - 指一个事务对同一个共享数据先后读取数据不一致
  • 幻像读 - 指一个事务对同一共享数据读取两次但第二次比第一次新增数据
  • 丢失更新 - 指一个事务对共享数据进行更新后查询发现该数据与更新值不一致

并发事务调度

  • 由于并发控制调度器将各个事务的SQL数据操作请求按照一定顺序进行调度执行
  • 对共享数据的任意顺序访问操作是导致数据库可能产生数据异常的根本原因
  • 所以只有当事务调度顺序的执行结构与事务串行执行的数据结果一样时,才得以保证一致性,即并发事务调度目标

数据库锁机制

数据库锁机制

  • 排他锁,不允许加任何锁,禁止对数据的修改删除及读取
  • 共享锁,只允许加共享锁,即允许读取,禁止修改删除

锁定粒度越大,DBMS管理就越容易,但并发能力就越差;粒度越小,管理越复杂,并发能力越强。

并发控制协议

  • 一级加锁协议 - 任何事务在修改共享数据对象前,必须对该数据单元排他锁定,直到事务完成。以避免丢失更新
  • 二级加锁协议 - 在一级加锁协议的基础上,针对事务读取共享数据时,必须进行共享锁定,只需直到读取完成。以避免丢失更新、脏读
  • 三级加锁协议 - 在一级加锁协议的基础上,针对事务读取共享数据时,必须进行共享锁定,直到事务完成。以避免丢失更新、脏读、不可重复读取
两阶段锁定协议

分为增长阶段和缩减阶段
增长阶段:事务只能加锁,不能释放锁
缩减阶段:事务只能释放锁,不能加锁
以保证并发事务调度可串行化

并发事务死锁解决

死锁的必要条件
  • 互斥条件
  • 请求和保持条件
  • 不剥夺条件
  • 环路等待条件
防范和解决

防范死锁问题的两大策略

  • 一次锁定所有资源
  • 所以事务锁定资源的顺序必须相同

解决方法即选择一个处理代价最小的事务进行回滚撤销

事务隔离级别

隔离级别 脏读 不可重复读 丢失更新
读取未提交 可能 可能 可能
读取已提交 不可能 可能 可能
可重复读 不可能 不可能 可能
可串行化不可能 不可能 不可能 不可能

安全管理

安全模型

多层安全模型
|层面|安全控制与管理|
|-|-|
|身份认证系统|用户身份鉴别|
|DBMS|用户存取权限控制|
|OS|操作系统安全保护|
|数据库|数据加密储存|

用户管理

用户创建

1
2
3
4
5
6
7
8
9
10
CREATE USER name WITH
SUPERUSER
CREATEDB
CREATEROLE
INHERIT#继承角色权限
LOGIN
REPLICATION#复制权限
BYPASSRLS#绕过安全策略权限
CONNECTION LIMIT -1#用户最大连接数
[ ENCRYPTED | UNENCRYPTED ] PASSWORD 123456;

用户修改

1
2
3
4
ALTER USER name WITH 
ALTER USER name RENAME TO
ALTER USER name SET
ALTER USER name RESET

用户删除

1
DROP USER name

权限管理

1
2
3
GRANT 权限 ON 对象 TO 名字
REVOKE 权限 ON 对象 FROM 名字
DENY 权限 ON 对象 TO 名字

角色管理

将一组具有相同权限的用户定义为角色ROLE

1
CREATE USER name IN ROLE name

备份与恢复

数据库备份

  • 备份内容:用户数据库、系统数据库
  • 备份方式:完整数据库备份、差异数据库备份、事务日志备份、文件备份;还分为冷备份、热备份
  • 备份设备:磁盘阵列、磁带库、光盘库

PgSQL备份方法

一般的

1
2
pg_dump -f 输出文件名 数据库名称
psql -d 数据库名称 -f 导入文件名

文件系统概述

定义

操作系统中的各类文件、管理文件的软件,以及管理文件所涉及到的数据结构等信息的集合。

功能

  • 有效地管理文件的存储空间
  • 管理文件目录
  • 完成文件的读/写操作
  • 实现文件共享与保护
  • 为用户提供交互式命令接口和程序调用接口

文件、记录和数据项

数据项:最低级的数据组织形式,其中:

  • 基本数据项 - 描述一个对象的某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位, 即原子数据,数据元素或字段。
  • 组合数据项 - 若干个基本数据项组成的,简称组项。

记录:一组相关数据项的集合,描述一个对象在某方面的属性。

文件:由创建者所定义的、 具有文件名的一组相关元素的集合。其中有结构的文件,文件由若干个相关记录组成; 而无结构文件则被看成是一个字符流。
文件在文件系统中是一个最大的数据单位,它描述了一个对象集。
文件的属性包括:
文件类型、文件长度、文件的物理位置、文件的建立时间等

文件类型

按用途分类

  • 系统文件 - 系统软件构成的文件。大多数的系统文件只允许用户调用,但不允许用户去读,更不允许修改;有的系统文件不直接对用户开放。
  • 用户文件 - 用户的源代码、目标文件、可执行文件或数据等所构成的文件。
  • 库文件 - 标准子例程及常用的例程等所构成的文件。允许用户调用,但不允许修改。

按数据形式

  • 源文件 - 指由源程序和数据构成的文件。
  • 目标文件 - 把源程序经过相应语言的编译程序编译,未链接的目标代码所构成的文件。它属于二进制文件。
  • 可执行文件 - 编译后所产生的目标代码再经过链接程序链接后所形成的文件。

按存取控制属性(权限)

读、写、执行
(PPT写分三类:只执行文件、只读文件、读写文件)

按组织形式和处理方式

  • 普通文件 - 由ASCII码或二进制码组成的字符文件。用户建立的源程序文件、数据文件、目标代码文件及操作系统自身代码文件、库文件、实用程序文件等都是普通文件,它们通常存储在外存储设备上。
  • 目录文件 - 由文件目录组成的,管理和实现文件系统功能的系统文件,目录文件可以对其它文件的信息进行检索。由字符序列构成,与普通文件一样操作。
  • 特殊文件 - 特指系统中的各类I/O 设备。统一管理,系统将所有的输入/输出设备都视为文件,按文件方式提供给用户使用。

文件系统模型

enter description here

  1. 对象及其属性 - 对象即文件、目录、磁盘存储空间
  2. 对对象操纵和管理的软件集合 - 包括对文件存储空间的管理、对文件目录的管理、逻辑地址转换为物理地址、对文件读和写的管理、文件的共享与保护
  3. 文件系统的接口 - 命令接口:用户与文件系统交互的接口,通过终端键入命令取得服务。程序接口:用户程序与文件系统的接口,通过系统调用来取得服务。

物理结构

文件存在两种形式的结构:

  1. 文件的逻辑结构 从用户观点出发所观察到的文件组织形式 。从逻辑组织的角度看,文件由若干记录构成
  2. 文件的物理结构 文件在外存上的存储组织形式 。从物理组织的角度看,文件由若干数据块组成

存储空间的管理

文件分配外存空间考虑的问题是:怎样才能有效地利用外存空间和如何提高对文件的访问速度
(外存的组织方式)
分配方法:连续、链接、引索

连续分配

为每一个文件分配一组相邻接的盘块。
即把逻辑文件中的数据顺序地存储到物理上邻接的各个数据块中,形成的物理文件进行顺序存取。
对应文件目录中为每个文件建立一个表项,只用记载文件的第一个数据块地址及文件长度

  • 优点 - 顺序访问(检索)容易、顺序访问速度快
  • 问题 - 要求有连续的存储空间导致磁盘空间碎片化(要使用紧凑技术)、必须事先知道文件的长度不利于动态增长的文件存储

链接分配

链接文件:采用链接分配方式时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的物理文件称为链接文件。

隐式链接

即在文件目录的每个目录项中,含有指向链接文件第一个盘块和最后一个盘块的指针。 每个盘块中都含有一个指向下一个盘块的指针。
enter description here

问题
适合顺序访问,随机访问是极其低效的(如找访问文件的第i个盘块必须顺序读取前i-1个盘块)

为了提高检索速度和减小指针所占用的存储空间,可以将几个盘块组成一个
(按几个盘块拼在一起的簇为单位分配、链接)
减少了查找时间和指针所占空间,但增大了内部碎片

显式链接

即将用于链接文件各物理块的指针,显式地存放在内存的一张链接表中。
如FAT表
enter description here

属于某一文件的第一个盘块号,作为文件地址被填入相应文件的FCB的“物理地址”字段中。
由于分配给文件的所有盘块号都放在该表中,故把该表称为文件分配表FAT (File Allocation Table)。
查找记录的过程是在内存中进行的,显著地提高检索速度,减少了访问磁盘的次数。
enter description here
即FCB表记录文件的第一个盘块号,再通过FAT表查得所有文件盘块

问题
不能支持高效的直接存取。要对一个较大的文件进行直接存取,须首先在FAT中顺序地查找许多盘块号。
FAT需占用较大的内存空间。由于一个文件所占用盘块的盘块号是随机地分布在FAT中的,因而只有将整个FAT 调入内存,才能保证在FAT 中找到一个文件的所有盘块号。

索引分配

单级索引分配:解决连续分配和链接分配存在的诸多问题。
原理:为每个文件分配一个索引块(表),再把分配给该文件的所有盘块号都记录在该索引块中,索引块就是一个含有许多盘块号的数组。
而在建立一个文件时,只需在为之建立的目录项中填上指向该索引块的指针。

  • 优点 - 索引分配方式支持直接访问(直接找第i个)、基于数据块的分区能消除外部碎片
  • 缺点 - 索引本身空间大小问题:大文件索引项较多,可能使一个数据块容纳不了一个文件的所有分区的索引。索引块可能要花费较多的外存空间。每当建立一个文件时,便须为之分配一个专门的索引块,将分配给该文件的所有盘块号记录于其中。对于小文件如果采用这种方式,索引块的利用率将是极低的。
两级索引分配

当文件太大,其一级索引块太多时,这种方法是低效的。
此时,应为这些索引块再建立一级索引,形成两级索引分配方式。
即系统再分配一个索引块,作为第一级索引的索引块,将第一块、第二块……等索引块的盘块号填入到此索引表中、
enter description here

文件存储空间的管理

文件存储空间的管理方法:空闲分区表、空闲链表法、位示图、成组链接法

空闲分区表

空闲表法属于连续分配方式,它为每个文件分配一块连续的存储空间,即系统也为外存上的所有空闲区建立一张空闲表,每个空闲区对应于一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块数等信息。

其可用于可变大小分区的连续分配
为文件分配存储空间时,首先顺序查找空闲分区表中的各个表项,直至找到第一个大小适合的空闲分区。可以采用首次适应分配算法最佳适应分配算法等。

  • 优点 - 实现简单。最佳适应分配算法,将各空闲分区按照(长度)从小到大的顺序进行排列,再利用有效的查找算法,能很快找到需要大小的空闲分区。
  • 缺点 - 空闲分区分布较分散且数量较多时,空闲分区表将会很大。需要很大的内存空间,会降低空闲分区表的检索速度。

一般文件系统当文件较小时采用连续分配而较大则需要采用离散分配

空闲链表法

如上用专门的空闲分区表登记空闲分区信息会浪费一定的存储空间,而且不适合登记分散且数目很多的空闲分区,不利于基于存储块的链接文件和索引文件的存储空间分配。

空闲链表法是将所有空闲盘区拉成一条空闲链。根据构成链所用基本元素的不同,可把链表分为空闲盘块链、空闲盘区链两种形式。

空闲盘块链

将磁盘上的所有空闲空间,以盘块为单位拉成一条链,优点:简单

空闲盘区链

将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)连成一条链,
而每个盘区上含有用于指示下一个空闲盘区的指针和能指明本盘区大小(盘块数)的信息。
分配盘区的方法与内存的动态分区分配类似,通常采用首次适应算法
问题
一段时间以后,可能会使空闲分区链表中包含太多小分区,使文件分配到的存储空间过分离散。

位示图

利用二进制位0、1表示存储空间中存储块的使用状态。空闲分区:0,已分配分区:1(或者相反)
通常可用m × n 个位数来构成位示图,并使m × n等于磁盘的总块数。

根据位示图进行盘块分配时,可分三步进行:

  1. 顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。
  2. 将所找到的一个或一组二进制位转换成与之相应的盘块号。 假定找到的其值为“0”的二进制位位于位示图的第i 行、第j列,则其相应的盘块号应按下式计算: b = n(i- 1) + j
  3. 修改位示图,令map[i,j]=1。

盘块的回收分两步:

  1. 将回收盘块的盘块号转换成位示图中的行号和列号。转换公式为: i = (b - 1)DIV n + 1 j = (b - 1)MOD n + 1
  2. 修改位示图。令map[i,j] =0。
  • 优点 - 可以容易地找到一个或一组连续的空闲分区、小磁盘位示图空间小
  • 缺点 - 大磁盘空间大、则很难将位示图装入内存

文件目录

目录管理的要求:

  1. 实现“按名存取”。
  2. 提高对目录的检索速度。
  3. 文件共享。
  4. 允许文件重名。

文件控制块(FCB):用于描述和控制文件的数据结构
文件目录:文件控制块的有序集合

文件控制块FCB

内容

  • 基本信息:文件名、文件类型等
  • 地址信息:卷(存储文件的设备)、起始地址(起始物理地址)、文件长度(以字节、字或块为单位)等。
  • 访问控制信息:文件所有者、访问信息(用户名和口令等)、合法操作等
  • 使用信息:创建时间、创建者身份、当前状态、最近修改时间、最近访问时间等。

目录内容的组织方式及分析

目录项的两种组织方式:

  1. FCB存储全部目录内容
  2. 存储部分目录信息,如文件名、索引节点指针等,其余部分保存在索引节。打开文件时将索引节点从磁盘读到内存中。

目录文件及操作

目录文件:
一个文件目录也被看做是一个文件,即目录文件。是多个文件的目录项构成的一种特殊文件。
目录的操作:
搜索目录、创建目录、删除目录、显示目录、修改目录

目录结构

单级目录结构,两级目录结构,层次目录结构 :树型目录、无循环图

单级目录结构分析

所有用户的全部文件目录保存在一张目录表中,每个文件的目录项占用一个表项。
优点简单且能实现目录管理的基本功能:按名存取
缺点 (1) 查找速度慢 (2) 不允许重名 (3) 不便于实现文件共享

两级目录结构

可分为主文件目录MFD、用户文件目录UFD

其一定程度解决了重名问题,提高了文件目录检索效率,也实现了简单的文件共享
问题:不便用户文件的逻辑分类;进一步解决重名、共享、检索效率等问题

多级目录结构

目录结构:多级目录结构又称为树型目录结构,主目录在这里被称为根目录,把数据文件称为树叶,其它的目录均作为树的结点。
路径名:从树的根(即主目录)开始,把全部目录文件名与数据文件名,依次地用“/”连接起来,即构成该数据文件的路径名。
当前目录:为每个进程设置一个“当前目录”,又称为“工作目录”进程对各文件的访问都相对于“当前目录”而进行。

目录查询技术

线性检索法

又称为顺序检索法。
①在单级目录中,利用文件名,用顺序查找法直接从文件目录中找到指名文件的目录项。
②在树型目录中,用户提供的文件名是由多个文件分量名组成的路径名,此时须对多级目录进行查找。

Hash方法

建立了一张Hash索引文件目录,用户提供的文件名并将它变换为文件目录的索引值,再利用该索引值到目录中去查找。
其显著提高了检索速度

文件共享和访问控制

文件共享的有效控制涉及两个方面: 同时存取、存取权限

控制同时存取

允许多个用户同时读文件内容,但不允许同时修改,或同时读且修改文件内容。
共享用户之一修改文件内容时,将整个文件作为临界资源,锁定整个文件,不允许其他共享用户同时读或写文件。
仅仅锁定指定的一条记录,允许其他共享用户读/写该文件的其它记录。后者的并发性能更好。
控制对文件的同时存取涉及进程的同步与互斥问题。

控制存取权限

即控制授权用户以合法的方式访问文件
包括:
执行(Execution)
读(Reading)允许用户读文件内容,包括拷贝和执行文件
追加(Appending)
更新(Updating)即允许用户修改、删除、增加文件内容
更改权限 (Changing protection)
删除 (Deletion)

文件共享的实现

从不同地方打开同一个文件,首要步骤就是找到文件的目录项,读取文件在外存的起始地址。
实现文件共享的方式:
利用链接目录项实现法、利用索引节点实现法、利用符号链实现法

链接目录项实现

文件目录项中设置一个链接指针,用于指向共享文件的目录项。访问文件时,根据链接指针内容找到共享文件的目录项,读取该目录项中文件起始位置等信息,操作该文件。

利用索引节点实现

文件的物理地址及其它的文件属性等信息,不再是放在目录项中,而是放在索引结点中。在文件目录中只设置文件名及指向相应索引结点的指针。
文件目录项中只包含文件名和指向索引节点的指针,文件的物理地址及其它说明信息保存在索引节点中

利用符号链实现

在利用符号链方式实现文件共享时,只是文件主才拥有指向其索引结点的指针,而共享该文件的其它用户,则只有该文件的路径名,并不拥有指向其索引结点的指针。
优点:能连接任何机器上的文件
缺点:备份可能会产生多个拷贝

利用URL实现

统一资源定位器URL (Uniform Resource Locator)是Internet上用来链接超文本文件的一种方法。它可以链接同一台计算机中的本地文件,也可链接Internet中任何主机上的远程文件。

习题

P236

  • 1、I/O系统的基本功能
  • 隐藏物理设备细节
  • 实现与设备无关性
  • 提高处理机和I/O利用率
  • 实现对I/O设备的控制
  • 确保设备正确共享
  • 进行错误处理
  • 2、I/O软件的四个层次的基本功能
  • 中断处理程序 用于保存被中断CPU当前运行环境,转入中断处理程序进行处理,处理完成后返回到被中断设备驱动程序并恢复现场
  • 驱动设备 与硬件直接关联,用来具体实现系统对设备发出的操作指令,驱动I/O设备工作
  • 设备独立性软件 用于实现用户程序与设备驱动器的统一接口、设备命令、设备保护以及设备分配与释放等
  • 用户层I/O软件 用于实现用户I/O设备交互
  • 3、I/O系统接口与软件硬件接口分别是什么接口
    I/O系统接口是I/O系统与上层系统之间的接口,向上层提供设别操作的抽象I/O命令,以便上层对设备的使用
    软件硬件接口的上面是中断处理程序用于不用设备驱动程序,下面为各种设备控制器

  • 7、什么是内存映像I/O
    驱动程序将抽象I/O命令转换出的一系列具体命令、参数等数据装入设备控制器的相应寄存器,由控制器来执行命令以具体实施对I/O设备的控制。内存映像I/O统一了对内存和控制器的访问方法。

  • 8、为什么说中断是OS的基础
    中断在操作系统中有着特殊重要的地位,它是多道程序得以实现的基础,没有中断就不可能实现多道程序,因为进程之间的切换就是通过中断来完成的。另一方面,中断也是设备管理的基础,为了提高处理机的利用率和实现CPU和实现I/O设备并执行,也必需有中断的支持。中断处理程序是I/O系统中最底层。

  • 15、推动I/O控制发展的主要因素

    1. 尽量减少CPU对I/O控制的干预,把CPU从繁杂的I/O控制中解脱出来,以便更多地去完成数据处理任务
    2. 缓利CPU的高速性和设备的低速性之间速度不匹配的矛盾,以提高CPU的利用率和系统的吞吐量
    3. 提高CPU和I/O设备操作的并行程度,使CPU和I/O设各都处于忙碌状态,从而提高整个系统的资源利用率和系统吞吐量。
  • 17、试说明DMA工作流程
    当CPU要从磁盘读入数据块时,先向磁盘控制器发送一条读命令。该命令被送到命令寄存器CR中。同时还发送本次要读入数据的内存起始目标地址,送入内存地址寄疗器MAR,将本次要读数据的字节数送入数据计数器DC,将磁盘中的源地址直接送DMA控制器的I/O控制逻辑上。然后启动DMA控制器传送数据,CPU便处理其它任务。整个数据传送过程由DMA控制器控制。

  • 18、为何要引入与设备无关性?如何实现独立性
    引入设备独立性,可使应用程序独立于具体的物理设备,是设备分配具有灵活性。另外容易实现I/O重定向,为了实现设备独立性,必须在设备驱动程序之上设置一层设备独立性软件,用来执行所有I/O设备的公用操作,并向用户层软件提供统一接口。关键是系统中必须设立一张逻辑设备表LUT用来进行逻辑设备到物理设备的映射,其中每个表项中包含了逻辑设备名、物理设备片和设备驱动程序入口地址三项;当应用程序用逻辑设备名请求分配I/O设备时,系统必须为它分配相应的物理设备,并在LUT中建立一个表目,以后进程利用该逻辑设备名请求I/O操作时,便可从LUT中得到物理设备名和驱动程序入口地址。

  • 20、考虑系统独立性如何分配独占设备

    1. 进程以逻辑设备名提出I/O请求
    2. 根据逻辑设备表相应表项获得I/O请求的逻辑设备对应类型的物理设备在系统设备中的指针。
    3. 从指针所指位置起顺序检索系统设备表,直到找到对应I/O请求所用类型、空闲的空闲的且经过分配安全性算法验证为安全分配的设备的设备控制表,将对应设备分配给请求进程;如果未找到安全可用的空闲设备,则把请求进程的进程控制块挂到相应类型设备的等待队列上等待唤醒和分配。
    4. 系统把设备分配给I/O请求进程后,再到该设备的设备控制表中找出与其相连接的控制器的控制器控制表,根据其状态字段判断该控制器是否忙碌,若忙碌则把请求进程的进程控制块挂到该控制器的等待队列上,若不忙碌将该控制器分配给进程。
    5. 系统把控制器分配给I/O请求进程后,从该控制器的控制器控制表中找出与其相连接的通道的通道控制表,根据其状态字段判断该通道是否忙碌,若忙则把请求进程的进程控制块挂到该通道的等待队列,否则将该通道分配给进程。
    6. 只灯在设备、控制器和通道三者均分配成功时,这次的设备分配才算成功,然后便可启动设备进行数据传送。
  • 21、设备虚拟及其关键技术
    设备虚拟技术将一台独占设备转化为若干台逻辑设备,供若干进程同时使用。主要依赖SPOOLing技术。

  • 22、SPOOLing系统为请求I/O进程提供哪些服务

    1. 由输出进程在输出井中为之申请一空闲盘块区,并将要打印的数据送入其中;
    2. 输出进程再为用户进程中请一张空白的用户打印表,并将用户的打印要求填入其中,再将该表挂到请求打印队列上;
    3. 一旦打印机空闲,输出进程便从请求打印队列的队首取出一张请求打印表,根据表中的要求将要打印的数据从输出井传送到内存缓冲区,再由打印机进行打印。
  • 23、假脱机系统向用户提供共享打印机的思想
    对每个用户而言,系统并非即时执行程序真实打印操作,而只是将数据输出到缓冲区,这是数据并未被真正打印,而当打印机空闲且该打印任务在等待队列队首时开始真正进行打印。

  • 24、引入缓冲的主要原因
    缓和CPU与I/O设备之间速度不匹配的问题,减少对CPU的频繁中断,放宽对中断响应时间的限制,解决数据读写速度不匹配问题,总体上提高CPU和I/O设备之间的并行性。

P266

  • 2、文件系统模型每层的基本内容
  1. 对象及其属性 - 对象即文件、目录、磁盘存储空间
  2. 对对象操纵和管理的软件集合 - 包括对文件存储空间的管理、对文件目录的管理、逻辑地址转换为物理地址、对文件读和写的管理、文件的共享与保护
  3. 文件系统的接口 - 命令接口:用户与文件系统交互的接口,通过终端键入命令取得服务。程序接口:用户程序与文件系统的接口,通过系统调用来取得服务。
  • 4、用户可以对文件施加的主要操作
    创建文件、删除文件、读文件、写文件、打开、关闭。

  • 5、为什么引入“打开”,打开的含义
    所谓“打开”,是指系统将指名文件的属性(包括该文件在外存上的物理位置)从外存拷贝到内存打开文件表的一个表目中,并将该表目的编号(或称为索引)返回给用户。
    通过打开建立的连接,用户可以直接获取文件信息而避免了再次检索

  • 6、解释文件的逻辑结构和物理结构

  1. 文件的逻辑结构 从用户观点出发所观察到的文件组织形式 。从逻辑组织的角度看,文件由若干记录构成
  2. 文件的物理结构 文件在外存上的存储组织形式 。从物理组织的角度看,文件由若干数据块组成
  • 7、按文件的组织方式可将文件分了哪几类
  1. 普通文件:由ASCII码或二进制码组成的字符文件。用户建立的源程序文件、数据文件、目标代码文件及操作系统自身代码文件、库文件、实用程序文件等都是普通文件,它们通常存储在外存储设备上。
  2. 目录文件:由文件目录组成的,管理和实现文件系统功能的系统文件,目录文件可以对其它文件的信息进行检索。由字符序列构成,与普通文件一样操作。
  3. 特殊文件:特指系统中的各类I/O 设备。统一管理,系统将所有的输入/输出设备都视为文件,按文件方式提供给用户使用
  • 8、如何提高对变长记录文件的检索速度
    建立索引表
    为每个文件分配一个索引块(表),再把分配给该文件的所有盘块号都记录在该索引块中,索引块就是一个含有许多盘块号的数组。也可通过多级索引进一步提升检索速度

  • 9、通过哪两种方法对固定长度记录随机访问
    通过文件中记录的位置 据第一条记录的首地址和记录长度,可计算第i条记录的地址。
    利用关键字 通过关键字值顺序查找记录。

  • 12、对索引文件和索引文件顺序的检索方式
    对索引文件:根据关键字利用某种算法检索索引表,找到对应表项通过记录指针访问记录
    对索引顺序:首先根据用户关键字在索引表中查找第一条记录指针,然后通过指针再在记录组内顺序查找

  • 14、对目录管理的主要要求是什么

  1. 实现“按名存取”。
  2. 提高对目录的检索速度。
  3. 文件共享。
  4. 允许文件重名。
  • 15、采用单级目录能否满足目录管理要求
    单级目录的优点是简单且能实现目录管理的基本功能——按名存取
    但存在下述一些缺点: (1) 查找速度慢 (2) 不允许重名 (3) 不便于实现文件共享

  • 16、目前广泛采用的目录结构是什么,有什么优点
    树形目录
    优点:提高对目录的检索速度和文件系统性能、便于分用户管理

  • 19、Hash检索法中如何解决冲突
    将其Hash值再加上一个常数(该常数应与目录的长度值互质),形成新的索引值,再返回到第一步重新开始查找。

  • 23、基于符号链的文件共享的优点
    能连接任何机器上的文件。 每增加一个连接,就增加一个文件名,各用户使用自己的名字去共享文件。

  • 24、什么是保护域、进程和保护域的动态联系是什么
    进程对一组对象访问权的集合,进程只能在指定区域内执行操作,域也就规定了进程所能访问的对象和能执行的操作。
    进程和域之间,可以是一对多的关系,即一个进程可以联系着多个域。在此情况下,可将进程的运行分为若干个阶段,其每个阶段联系着一个域,这样便可根据运行的实际需要来规定在进程运行的每个阶段中所能访问的对象。

  • 25、举例说明具有域切换权的访问控制矩阵
    IMG_20220508_195344_edit_703369545537463
    如图,由于域D1和D2所对应的项目中有一个S代表switch故允许域D1中的进程切换到D2中。

P296

  • 1、目前常用的外存组织方式
    连续组织方式:为文件在物理上分配连续的磁盘空间
    链接组织方式:文件可以存在不连续的盘块中而通过链接记录链接在一起
    索引组织方式:建立索引记录文件组织

  • 2、连续组织方式的顺序文件的优缺点及适用场合
    为每一个文件分配一组相邻接的盘块。
    即把逻辑文件中的数据顺序地存储到物理上邻接的各个数据块中,形成的物理文件进行顺序存取。
    对应文件目录中为每个文件建立一个表项,只用记载文件的第一个数据块地址及文件长度

  • 优点 - 顺序访问(检索)容易、顺序访问速度快

  • 问题 - 要求有连续的存储空间导致磁盘空间碎片化(要使用紧凑技术)、必须事先知道文件的长度不利于动态增长的文件存储
    连续组织方式所形成的顺序文件是一种最简单、最常用的文件组织方法,它适用于许多资料处理的场合,如磁带文件,打印文件都是常用的顺序文件

  • 3、链接式文件中常采用什么方式
    空闲盘块链:将磁盘上的所有空闲空间,以盘块为单位拉成一条链;空闲盘区链:将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)连成一条链, 而每个盘区上含有用于指示下一个空闲盘区的指针和能指明本盘区大小(盘块数)的信息。

  • 13、说明增量式索引组织方式
    增量式索引组织方式的基本思想:为了能较全面地照顾到小、中、大及特大型作业,可以采取多种组织方式来构成文件的物理结构。如果盘块的大小为1 B或4 B,对于小文件而言,最多只会占用10个盘块,为了能提高对数量众多的小型作业的访问速度,最好能将它们的每一个盘块地址都直接放入文件控制块FCB(或索引结点)中,这样就可以直接从FCB中获得该文件的盘块地址。

  • 16、对空闲磁盘空间的管理常采用的分配方式、UNIX采用什么方式
    文件存储空间的管理方法:空闲分区表、空闲链表法、位示图、成组链接法,UNIX系统采用的是成组链接法。