摘要:
malloc_par via:https://elixir.bootlin.com/glibc/glibc-2.26/source/malloc/malloc.c#L1783 每个分配区是 struct malloc_state 的一个实例, ptmalloc 使用 malloc_state 来管理 阅读全文
摘要:
从 glibc2.26 开始引入了一个 freed chunk 管理机制:tcache -- thread local caching 还是那句话:Read The F**king Source Code glibc 版本:2.26,via:https://elixir.bootlin.com/gl 阅读全文
摘要:
今天有点无聊在 YouTube 上瞎看 看到了 liveoverflow 的一个视频,提到 TOCTOU ,所以打算复现一下 via: https://www.youtube.com/watch?v=5g137gsB9Wk demo 代码: via: https://gist.github.com/ 阅读全文
摘要:
这几天一直在忙别的事,完事了,看了点文件系统相关的部分,就看看 read 在内核里面的实现 这是大概的函数调用链,但是我不会一个一个全部去分析,我只看主要的 man 手册描述 via:https://man7.org/linux/man-pages/man2/read.2.html NAME rea 阅读全文
摘要:
Linux内核源码分析 -- 同步原语 -- 互斥锁 mutex /* * Simple, straightforward mutexes with strict semantics: * * - only one task can hold the mutex at a time (同一时间仅能被 阅读全文
摘要:
Linux内核源码分析 -- 同步原语 -- 自旋锁 spinlock_t typedef struct spinlock { union { struct raw_spinlock rlock; #ifdef CONFIG_DEBUG_LOCK_ALLOC # define LOCK_PADSIZ 阅读全文
摘要:
Linux内核源码分析 -- 同步原语 -- 信号量 semaphore 源码位于 include/linux/semaphore struct semaphore { raw_spinlock_t lock; // 保护信号量的自旋锁 unsigned int count; // 现有的资源的数量 阅读全文
摘要:
Linux 内核源码分析 -- getuid,geteuid getuid 获取用户标识号 via:https://man7.org/linux/man-pages/man2/geteuid.2.html returns the real user ID of the calling process 阅读全文
摘要:
chroot 在 内核中的实现 在 Linux 5.6 版本中 chroot 函数的系统调用对应的函数位于:./fs/open.c:539:SYSCALL_DEFINE1(chroot, const char __user *, filename) via: https://elixir.bootl 阅读全文
摘要:
每个页的大小: 2^12 = 4096 Bytes 每个地址的大小: 8 Bytes 每个页能容纳:2^9 = 512 个地址 需要一个 9bit 的字段来索引映射表 一般来说,如果页面大小为 2^k,那么一个页面可以容纳 k 3 个指针 阅读全文