Linux内核学习[资源帖]

Linux 内核相关的有趣资源,欢迎来此处补充。

入门

  • bb-kernel : This is just a set of scripts to rebuild a known working kernel for ARM devices.

虚拟化

  • LC-3 虚拟机 : 只有几百行
  • dockerpi : 其实是一百行左右的 Dockerfile,在其中运行 qemu 模拟 raspberrypi 的硬件环境法
  • OSX-KVM : 利用 kvm 实现运行 OSX 的虚拟机
  • Docker-OSX : 类似 dockerpi, 提供安装 OSX-KVM 的自动安装
  • macos virtualbox : 提供一个脚本,在 virtualbox 中间运行 macos
  • v86 : 使用 js 写的 x86 硬件虚拟化,可以在网页上运行机器
  • windows95 in electron : 利用 v86 实现运行 windows95 在 electron 中间

KVM

  • Learning KVM - implement your own kernel
    • 源码
  • kvmexample
  • kvmsample : 几百行,guest 就是一个三行的汇编
  • kvmtool : 没有维护, 大约20000 行
  • 简易的KVM firmware的简单Rust 实现 : @todo 不是很懂 firmware 在此处的含义

进程

  • Kernel Thread Sanitizer
  • cfs

网络

  • epoll 原理

sysadmin

  • Linux sysadmin chanllenge : 一共二十个教程
  • Linux Tools Quick Tutorial : 文本处理的部分强烈推荐
  • Linux Productivity Tools
  • Test your sysadmin skills
  • Linux sysadmin interview questions
  • Java 程序员眼中的 Linux
  • 常用工具的 checksheet
  • Linux journey : 界面精美

安全

  • make linux fast again
  • a13xp0p0v : linux 安全的工程师,多个项目可以作为参考,linux-kernel-defence-map 可重点关注
  • Andrey Konovalov : 很厉害
  • https://github.com/r0hi7/BinExp : binary exploitation
  • https://github.com/milabs/awesome-linux-rootkits
  • https://github.com/xairy/linux-kernel-exploitation

distribution

  • snakeware
  • https://github.com/linuxkit/linuxkit : 制作自己的发行版
  • https://github.com/ivandavidov/minimal : mininal 发行版

教程

  • eudyptula : 划分为 20 任务,项目已停止,不过还是有价值
  • Linux kernel labs : 强烈推荐
  • raspberry pi os : 利用 raspberrypi 学习内核
  • https://gitee.com/tinylab
  • https://devarea.com/labs
    • https://devarea.com/introduction-to-network-filters-linux/#.Xm3bn3UzYUE
    • https://devarea.com/linux-kernel-development-creating-a-proc-file-and-interfacing-with-user-space/#.Xm3biXUzYUE
  • https://github.com/figozhang/runninglinuxkernel_4.0 : 奔跑吧linux内核 @todo 似乎讲解过总线

trace

  • eBPF 介绍
  • https://github.com/zoidbergwill/awesome-ebpf
  • Debug Hacks 内核调试的老技术

tiny os

  • Os tutorial : 讲解清晰,但是部分完工
  • OS in Rust
  • biscuit : 使用 go 写的 POSIX-subset OS
  • 清华的 rcore
  • zcore
    • 相关文档
  • 南京大学的os lab
    • 相关文档
  • rust kernel
    • https://github.com/sgmarz/osblog
  • https://github.com/MRNIU/SimpleKernel

文章合集

  • wowotech :star: :star: :star: :star: :star:
  • linux inside :star: :star: :star: :star: :star:
  • low level programming university :star: :star: :star: :star:
  • 知乎专栏:术道经纬 :star: :star:
  • gatieme 的笔记 :star: :star:
  • LoyenWang :star: :star:
  • dsahern's blog :star:
    • The CPU Cost of Networking on a Linux Host
  • https://devarea.com/labs/#.Xm3c_XUzYUE
  • https://github.com/novelinux/linux-4.x.y
  • https://terenceli.github.io/archive.html
  • https://unixism.net/2020/04/io-uring-by-example-article-series/

文摘

  • Fuchsia Overview : hn 关于 Fuchaia 的评价
  • 知乎 : 如何学习内核 ?
  • https://embeddedbits.org/how-is-the-linux-kernel-tested/
  • https://news.ycombinator.com/item?id=22987747 : telefork() 将进程发送到另一个计算机上
  • meltdown 和 spectrum 相关

project

  • syzkaller : @todo 暂时不知道如何实现 fuzzer 的
  • kernelci
  • https://github.com/linux-test-project/ltp
  • https://systemd.io/ 了解一下其中的内容
  • https://github.com/jarun/keysniffer
  • https://github.com/orhun/kmon : 内核包管理器,
  • idea4good : 和内核没有什么关系,只是利用 fb 和 shmem,绕过 X 来实现显示让人觉得很有意思

another os

  • popcorn os linux kernel 的基础上为异构体系统提供支持
  • minos : 国人开发的 RTOS
  • https://github.com/demikernel/demikernel
  • https://github.com/bottlerocket-os/bottlerocket : 基于linux 为容器而生的操作系统, 类似还有很多, 可以在awesome linux containers 中间找
  • https://www.freebsd.org/
  • https://www.minix3.org/
  • https://github.com/swimos/swim
  • https://github.com/dwelch67/raspberrypi : 要啥树莓派,qemu 学习 arm 指令集
  • https://news.ycombinator.com/item?id=22564665 : good fellow helps, all kinds of resources

你可能感兴趣的:(Linux内核学习[资源帖])