我今天在Twitter上询问了他们想进一步了解哪些Linux知识,我以为答复真的很酷,所以这里是清单(许多可以在任何Unixy操作系统上进行讨论,其中一些是Linux特定的)
TCP / IP和网络的东西
什么是端口/插槽?
seccomp
系统的
IPC(进程间通信,管道)
权限,setuid,粘性位,chown如何工作
Shell如何使用fork&exec
如何使我的计算机成为路由器?
流程组,会议负责人,shell作业控制
内存分配,堆如何工作,malloc做什么?
ttys,终端如何工作
工艺调度
司机
Linux和Unix有什么区别
内核
现代X服务器
X11如何工作?
Linux的零拷贝API(sendfile,splice,tee)
dmesg甚至在做什么
内核模块如何工作
嵌入式内容:实时,GPIO等
btrfs
QEMU / KVM
外壳重定向
哈尔
chroot
文件系统和索引节点
什么是RSS,我怎么知道我的进程正在使用多少内存
iptables
什么是网络接口?
什么是syslog,它如何工作?
通常如何组织日志?
虚拟内存
BPF
引导程序,initrd,内核参数
该ip
命令
什么是不是文件文件的所有文件(/ dev,stdin,/ proc,/ sys)
公交车
sed和awk
命名空间,cgroups,docker,SELinux,AppArmor
调试器
线程和进程之间有什么区别?
如果unix是基于文本的,那么GNOME之类的桌面环境如何适应?
“人”系统如何工作。
kpatch,kgraph,kexec
有关堆栈的更多信息。C var真的是堆栈插槽吗?setjmp和longjmp如何工作?
包装管理
挂载和VFS
有很多原因
这个月我需要再画11张有关Linux的图纸,这些都是很棒的主意
这个清单上有很多我不知道的东西,这很酷地提醒我们仍然需要学习多少有趣的东西!其中一些我几乎不知道它们是什么(dbus,SELinux),或者只有一个粗略的概念(seccomp,X11的工作原理等等)
这也很清楚地提醒我我走了多远–我至少知道从清单上的大部分内容开始,即使我在没有查找一些东西的情况下绝对无法详细解释其中的很多内容。