开发备忘录

用于记录开发中遇到的问题与解决方法

Posted by MenghanStudio on October 26, 2024

2024-10-23 内存页表的访问方式 – 内存映射

内容来源: https://www.bookstack.cn/read/writing-an-os-in-rust/09-paging-implementation.md

  1. 恒等映射

    虚拟地址直接映射到物理地址

恒等映射

  • 缺点 产生内存碎片导致下次映射查找困难
  1. 固定偏移量映射

    为页表映射使用单独的内存区域,从一个有固定偏移量的虚拟地址空间开始映射

固定偏移量映射

  • 缺点 每当创建新页表时就要创建新的映射
  1. 完整物理内存映射

允许整个虚拟地址空间直接映射到物理内存

完整物理内存映射

  • 缺点 需要额外的页表来存储物理内存的映射
  1. 临时映射

通过一级恒等映射表实现,大致步骤为: – 在恒等映射的1级表中搜索未使用条目。 -> 将该条目映射到我们想要访问的页表所在的物理帧。 -> 通过映射到该条目的虚拟页面访问目标帧。 -> 将该条目设置回未使用状态,从而删除本次临时映射

临时映射

  • 缺点 操作繁琐且重复
  1. 递归页表

允许某个页表的条目本身作为页表的指针,意味着某个页表可以直接或间接地映射到自己

递归页表

没整明白

2024-10-26 Git 分支操作

分支的操作

  • 查看分支列表:使用 git branch 命令可以查看本地分支列表。

  • 创建新分支:通过 git branch 新分支名 命令可以创建新分支。

  • 切换分支:使用 git checkout 分支名 命令可以切换到指定分支。

  • 快速创建和切换分支:git checkout -b 分支名 命令可以创建并立即切换到新分支。

  • 合并分支:在合并分支时,需要先切换到目标分支,然后使用 git merge 源分支名 命令进行合* 并。

  • 解决合并冲突:当两个分支对同一文件有不同修改时,可能会出现冲突,需要手动解决。

  • 删除分支:合并完成后,可以通过 git branch -d 分支名 命令删除功能分支。

远程分支操作

  • 推送本地分支到远程仓库:首次推送时使用 git push -u 远程仓库别名 本地分支名:远程分支名 * 命令。

  • 查看远程分支列表:git remote show 远程仓库名 命令可以查看远程仓库中的所有分支。

  • 跟踪远程分支:使用 git checkout -b 本地分支名 远程仓库名/远程分支名 命令可以下载并跟踪* 远程分支。

  • 拉取远程分支最新代码:git pull 命令可以将远程分支的最新代码下载到本地。

  • 删除远程分支:git push 远程仓库名 –delete 远程分支名 命令可以删除远程仓库中的指定分支。