diff --git a/notes/Socket.md b/notes/Socket.md
index 48d65ed3..56cbad75 100644
--- a/notes/Socket.md
+++ b/notes/Socket.md
@@ -234,6 +234,8 @@ epoll_ctl() 用于向内核注册新的描述符或者是改变某个文件描
从上面的描述可以看出,epoll 只需要将描述符从进程缓冲区向内核缓冲区拷贝一次,并且进程不需要通过轮询来获得事件完成的描述符。
+
+
epoll 仅适用于 Linux OS。
epoll 比 select 和 poll 更加灵活而且没有描述符数量限制。
diff --git a/notes/pics/epoll.png b/notes/pics/epoll.png
new file mode 100644
index 00000000..2f01bd30
Binary files /dev/null and b/notes/pics/epoll.png differ
diff --git a/tools/diagram/src/epoll.svg b/tools/diagram/src/epoll.svg
new file mode 100644
index 00000000..b2f5a904
--- /dev/null
+++ b/tools/diagram/src/epoll.svg
@@ -0,0 +1,87 @@
+