极客视点
极客时间编辑部
极客时间编辑部
113231 人已学习
免费领取
课程目录
已完结/共 3766 讲
2020年09月 (90讲)
时长 05:33
2020年08月 (93讲)
2020年07月 (93讲)
时长 05:51
2020年06月 (90讲)
2020年05月 (93讲)
2020年04月 (90讲)
2020年03月 (92讲)
时长 04:14
2020年02月 (87讲)
2020年01月 (91讲)
时长 00:00
2019年12月 (93讲)
2019年11月 (89讲)
2019年10月 (92讲)
2019年09月 (90讲)
时长 00:00
2019年08月 (91讲)
2019年07月 (92讲)
时长 03:45
2019年06月 (90讲)
2019年05月 (99讲)
2019年04月 (114讲)
2019年03月 (122讲)
2019年02月 (102讲)
2019年01月 (104讲)
2018年12月 (98讲)
2018年11月 (105讲)
时长 01:23
2018年10月 (123讲)
时长 02:06
2018年09月 (119讲)
2018年08月 (123讲)
2018年07月 (124讲)
2018年06月 (119讲)
时长 02:11
2018年05月 (124讲)
时长 03:16
2018年04月 (120讲)
2018年03月 (124讲)
2018年02月 (112讲)
2018年01月 (124讲)
时长 02:30
时长 02:34
2017年12月 (124讲)
时长 03:09
2017年11月 (120讲)
2017年10月 (86讲)
时长 03:18
时长 03:31
时长 04:25
极客视点
15
15
1.0x
00:00/03:27
登录|注册

微软为macOS开发大型Git仓库虚拟文件系统

讲述:丁婵大小:1.58M时长:03:27
近日,微软首要项目负责人萨伊德(Saeed Noursalehi)发博客称,微软在开发 macOS 适用的大型 Git 仓库虚拟文件系统 GVFS 上取得了不错的进展。
GVFS 是微软开发的开源系统,能使 Git 在企业级别运行,用于使用和管理大型 Git 仓库。借助 GVFS,Git 和 VS Team Services 的开发人员即使在使用 300 GB(350 万个文件)储量的 Windows 操作系统时也能保持高效工作。
GVFS 目前仅支持 Window 10 版本。现在,微软正在探索如何将 GVFS 搭建在其他平台上,并且已经在 macOS 适用的 GVFS 原型设计上取得了不错的进展。
Windows 版 GVFS 主要由三大块组成:
Git 补丁,使 GVFS 能在虚拟文件系统上高效运行 ;
文件系统过滤驱动,能拦截一些文件系统操作,并询问一个用户态进程如何响应目录枚举和文件内容;
用户态进程,知道如何翻译 Git 仓库的状态来响应文件系统查询,以及如何响应文件系统事件来修改 Git 仓库状态。
其中第二点和特定操作系统、文件系统以及驱动模型紧密相关,因此需要为每个操作系统重写,现在微软就在考虑为 macOS 做开发。
Windows 系统有一个文件系统过滤驱动的概念,它能堆叠到现存文件系统驱动上并修改系统的行为。MacOS 不支持以这种方式堆叠驱动,所以微软探索了别的方法,最终确定采用 Kauth 内核扩展机制来达到相似的效果。
当应用程序访问文件或目录时,内核需要判断当前用户是否有权限访问该对象。Kauth 允许一个自定义内核扩展 kext 来注册这些授权请求,并且能决定用户的权限,这样就提供了如下的一些功能:
阻止应用程序枚举目录,这样就能为目录子类填入占位符文件或目录。这能实现按需动态枚举文件系统结构;
阻止要读取文件的应用程序,从而填入其内容,这能实现按需下载文件内容;
发现用户修改文件的行为,从而通知 Git 这些文件可能是“脏”的;
拒绝一些特定操作,例如删除特殊文件或来自文件系统爬行器的请求。
要使所有这些都能工作,微软建立了占位符目录 (placeholder directories)和占位符文件(placeholder files)的概念。通过在目录或文件上设置文件标志,使其成为占位符,kext 就能快速检查虚拟节点(vnode)是否为需要担心的虚拟项。如果不是,kext 迅速返回,以避免给系统 IO 带来不必要的开销。
目前微软刚刚构建了 kext 的原型版本。微软还计划在 GVFS 用户态代码库中进行清理和重构,以允许使用.NET Core 在 Mac 上运行相同的代码。
此外,微软团队还计划在公开库中发布 macOS 适用的 GVFS 的所有代码,并将开发流程改为公开编写代码,而非偶尔在公开库中增加代码。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
免费领取
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
5
沉浸
阅读
分享
手机端
快捷键
回顶部