返回:SQLite—系列文章目录
上一篇:SQLite字节码引擎(十二)
下一篇:SQLite 4.9的虚拟表机制(十四)

1. 引言
本文介绍了 SQLite OS 可移植性层或“VFS” - 模块位于 SQLite 实现堆栈底部 提供跨操作系统的可移植性。
VFS是Virtual File System(虚拟文件系统)的缩写,是一个计算机文件系统的概念。它允许用户在操作系统中通过不同的协议和存储形式访问文件,而不必考虑底层文件系统的物理实现。这些协议可以是本地文件系统、网络文件系统、FTP、WebDAV、数据库等等。它的作用是为不同的文件系统提供一个统一的接口,使得开发人员能够更轻松地处理和使用文件系统。许多操作系统和软件都使用VFS来管理文件系统,例如Linux操作系统、Windows操作系统等。
2. VFS 与 SQLite 其余部分的关系

SQLite库的内部组织可以看作是 右侧显示的模块堆栈。 Tokenizer、Parser 和 Code Generator 组件用于 处理 SQL 语句并将其转换为可执行程序 使用虚拟机语言或字节码。 粗略地说,这前三层实现了 sqlite3_prepare_v2()。前三名生成的字节码 layers 是一个准备好的语句。 虚拟机模块负责运行 SQL 语句 字节码。B-Tree 模块将数据库文件组织成多个 具有有序键和对数性能的键/值存储。 Pager 模块负责加载数据库的页面 文件存入内存,用于实现和控制事务,以及 用于创建和维护阻止数据库的日志文件 崩溃或电源故障后的损坏。 操作系统接口是一个精简抽象,它提供了一组通用的 用于调整 SQLite 以在不同操作系统上运行的例程。 粗略地说,最底层的四层实现了sqlite3_step()。
这篇文章是关于底层的。
操作系统接口 - 也称为“VFS” - 是SQLite的组成部分 跨操作系统可移植。每当任何其他模块 在SQLite中需要与操作进行通信 系统,它们调用 VFS 中的方法。然后,VFS 调用 满足请求所需的特定于操作的代码。 因此,将 SQLite 移植到新的 操作系统只是编写一个新的操作系统接口层的问题 或“VFS”。
3. 多个 VFS
标准 SQLite 源代码树包含用于 unix 的内置 VFS 和窗户。替代 VFS 可以是 使用 sqlite3_vfs_register() 接口在 start-time 或 run-time 添加。
可以同时注册多个 VFS。 每个 VFS 都有唯一的名称。 同一进程中的单独

&spm=1001.2101.3001.5002&articleId=137448232&d=1&t=3&u=d11dba57766741d5bcb011c098a27aba)
933

被折叠的 条评论
为什么被折叠?



