libc
约 1 分钟阅读
- 大部分功能是桥接系统和用户空间
- syscall笔记syscallRing 0 - 内核态 · 初始化中断或异常处理机制 · 代码可以直接访问硬件、管理内存和执行CPU的所有指令集 · 内核和驱动程序 · Ring 1 & Ring 2 - 很少使用 - 例如 驱动程序 · Ring 3 - 用户态 · 不能直接访问硬件或执行某些敏感的CPU指令打开:/notes/os/linux/sys/syscall
- musl笔记muslmalloc 大场景性能弱 - 性能要求高的场景使用 jemalloc 或 mimaloc · 不支持 utmp/wtmp - last,who,users 命令部分功能不可用 · 安全考虑、隐私考虑 · 需要实现 suid/sgid 修改 记录打开:/notes/os/linux/libc/musl
- glibc
- jart/cosmopolitanGitHubjart/cosmopolitan
- ISC, C
- build-once run-anywhere c library
- Comparison of C/POSIX standard library implementations for Linux
- Linux nolibc
ld.so
- dynamic linker/loader
- ldd 可用于查看共享库依赖
- 主要功能
- 加载共享库
- 符号解析
- 重定位
- 处理依赖
- 运行初始化代码
- LD_LIBRARY_PATH - 搜索路径
- LD_PRELOAD - 预加载共享库
- /etc/ld.so.conf
关联信息
反向链接、本文链接的其他页面和外部资料。
站内链接
参考资料
GitHub2 条
- jart/cosmopolitangithub.com/jart/cosmopolitan
- torvalds/linux/tools/include/nolibc/nolibc.hgithub.com/torvalds/linux/blob/master/tools/include/nolibc/nolibc.h
Hacker News1 条
- Hacker News #34479284HN #34479284
其他外链2 条
- lwn.net/Articles/920158lwn.net/Articles/920158
- www.etalabs.net/compare_libcs.htmlwww.etalabs.net/compare_libcs.html