diff --git a/README.md b/README.md
index 7c91bb53b7e37f132e2f7ea3b4ba18ff9706d8c2..05d7e5ca174e5ae5de8c9d40129ab39268c21aba 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,51 @@
 # Granite
 
+## 项目结构说明
+
+这里的结构只是暂时的,有计划给它大改
+
+### bintool
+
+放一些调试用的工具,像是探查 elf 内容,打包 elf 之类的
+
+### drivers
+
+设备驱动和缓存的抽象,目前只有对块设备的抽象。后续说不定会重新组织一下。
+
+### easy-fs
+
+rCore 的遗留,不必太在意,可以删掉
+
+### fat32
+
+只是包一层第三方库 fatfs 来实现接口
+
+### kernel
+
+系统的核心部分,目前组织有点乱,未来可以考虑修改
+
+### res
+
+参考资料;系统镜像;BootLoader 之类的。总之是一些相关的资源
+
+### rust-fatfs
+
+第三方 fat32 库,做了点细微的修改以适应本项目的需求
+
+### user
+
+rCore 的残留,不过也可以拿来做测试用,所以不急着删。
+
+### vfs
+
+virtual file system.
+
+理想情况下,希望每增加一种操作系统的支持,就为其实现 vfs 的接口。内核那边不太需要关心这种改变。
+
+不过实际上现在内核那里还是写死了用的 fat32。
+
+这个抽象的位置感觉也不太合适。如果是宏内核,它应该放到 kernel 里。
+
 ## 规范
 
 加载器加载 ELF 可执行文件时,`argc`、`argv`、参数、环境变量、`auxv`、如何排布是有具体要求的。
@@ -37,7 +83,8 @@ Linux 中的线程就是一种轻量级进程,这和 rCore 中是不太一样
 
 ## Todo List
 
+- [ ] 页表机制要换。目前是 rCore 式的双页表,通过跳板进行 trap 处理。但实践下来感觉造成的问题更多,切成 linux 或者 windows 那样的最好。这个工作越早进行越好,因为影响面比较广。
 - [ ] Cow 虚拟页
 - [ ] 页面置换
-- [ ] 信号机制
-- [ ] 标记 `unsafe`
+- [ ] 信号机制。目前还没有具体的处理。
+- [ ] 标记 `unsafe`。这里的阻碍是我不太敢对 `unsafe` 乱下手,可能还得花时间看死灵书
diff --git a/bintool/src/bin/elf.rs b/bintool/src/bin/elf_extractor.rs
similarity index 83%
rename from bintool/src/bin/elf.rs
rename to bintool/src/bin/elf_extractor.rs
index 32dfa585391f1b1947695b88504e7cef990b68bb..6f534d4223882660c508a9c527f7b5c9b4d38128 100644
--- a/bintool/src/bin/elf.rs
+++ b/bintool/src/bin/elf_extractor.rs
@@ -1,3 +1,5 @@
+//! 用于从操作系统镜像中抽取文件内容
+
 use std::{fs::File, io::Read};
 
 use fatfs::{FileSystem, FsOptions};
@@ -18,9 +20,3 @@ fn main() {
         .unwrap();
     std::fs::write("lua.elf", data).unwrap();
 }
-
-#[test]
-fn test_wrapping() {
-    let a = usize::MAX - 1000;
-    println!("{}", a as isize);
-}
diff --git a/bintool/src/bin/elf_probe.rs b/bintool/src/bin/elf_probe.rs
index 3fa4c0863aea789dbc5b71cd0cee0ad4317be13e..0903fc42797f01d70f9a1308b71b6fdab3e04fc3 100644
--- a/bintool/src/bin/elf_probe.rs
+++ b/bintool/src/bin/elf_probe.rs
@@ -1,3 +1,5 @@
+//! elf 探针。单纯是用于加载和查看 elf 内容的东西
+
 use std::{fs::File, io::Read};
 
 use fatfs::{FileSystem, FsOptions};
@@ -16,5 +18,5 @@ fn main() {
         .unwrap()
         .read_to_end(&mut data)
         .unwrap();
-    let elf = xmas_elf::ElfFile::new(&data).unwrap();
+    // let elf = xmas_elf::ElfFile::new(&data).unwrap();
 }
diff --git a/bintool/src/bin/pack.rs b/bintool/src/bin/pack.rs
index f2fc425856ecc3b96d14f7ae88e585c8138d7997..d2f0c227a015d94b1fb57f49e02e710f54faff96 100644
--- a/bintool/src/bin/pack.rs
+++ b/bintool/src/bin/pack.rs
@@ -1,3 +1,5 @@
+//! 用于向操作系统镜像里面加入一些应用
+
 use std::fs::File;
 
 use fatfs::{FileSystem, FsOptions, Write};