Linux内核学习资料汇总-转
Linux 内核相关的有趣资源,欢迎补充。
Awesome Linux kernel
Linux 内核相关的有趣资源,欢迎补充。
文章合集
- 「Linux 核心設計」系列講座 :star: :star: :star: :star: :star:
- LoyenWang :star: :star: :star: :star: :star:
- wowotech :star: :star: :star: :star: :star:
- linux inside :star: :star: :star: :star: :star:
- low level programming university :star: :star: :star: :star:
- 知乎专栏:术道经纬 :star: :star: :star:
- liexusong :star: :star: :star:
- gatieme 的笔记 :star: :star:
- 泰晓科技 :star: :star:
- dsahern’s blog :star:
- https://richardweiyang-2.gitbook.io/kernel-exploring
- https://devarea.com/labs/#.Xm3c_XUzYUE
- https://github.com/novelinux/linux-4.x.y
- http://terenceli.github.io/archive.html
- https://unixism.net/2020/04/io-uring-by-example-article-series/
进程
网络
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://github.com/figozhang/runninglinuxkernel_4.0 : 奔跑吧linux内核 @todo 似乎讲解过总线
trace
tiny os
- Os tutorial : 讲解清晰,但是部分完工
- OS in Rust
- biscuit : 使用 go 写的 POSIX-subset OS
- 清华的 rcore
- zcore
- 南京大学的os lab
- rust kernel
- https://github.com/MRNIU/SimpleKernel
- How to Make a Computer Operating System 非常详细和基础教程,写ucore 之前可以首先阅读此项目。
- linux frome scratch
- write your own os
- bb-kernel : This is just a set of scripts to rebuild a known working kernel for ARM devices.
- Write Your Own 64-bit Operating System Kernel From Scratch
文摘
- Fuchsia Overview : hn 关于 Fuchaia 的评价
- 知乎 : 如何学习内核 ?
- https://embeddedbits.org/how-is-the-linux-kernel-tested/
- https://news.ycombinator.com/item?id=22987747 : telefork() 将进程发送到另一个计算机上
- what cs major should know
- 制作一个启动到 bash 的最小内核
- 品读 Linux 0.11 核心代码
project
- spy : 一个两百行的内核模块,教学作用。
- build you own OS 写自己的操作系统
another os
- popcorn os linux kernel 的基础上为异构体系统提供支持
- minos : 国人开发的 RTOS
- 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
- 太素 : RISCV kernel
微内核
- la-sel4 : 龙芯对于 sel4 的移植
reference
- https://sysctl-explorer.net/
- osdev 操作系统重要的参考资料来源。
- 内核地图
- Kernel newbies
Book
- 奔跑吧 Linux内核 入门篇 和 奔跑吧 Linux内核 并没有阅读,看目录感觉内容还不错,入门篇中每章后面还有习题。
- 操作系统真象还原 ,目前没有看,豆瓣评价还可以,有点类似于ucore文档的详细版本
- Think OS 操作系统教材
- Operating System: three easy pieces 操作系统教材
- free programming books 操作系统相关的免费书籍
draft
https://github.com/riscv/riscv-pk : It is designed to support tethered RISC-V implementations with limited I/O capability and thus handles I/O-related system calls by proxying them to a host computer.
https://github.com/jdah/tetris-os : 一个只能玩俄罗斯方块的操作系统, 只可惜是基于 i386 架构的
https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials : 使用 rust 在树莓派上构建 os
https://github.com/belowthetree/TisuOS : 国人 Rust OS
https://makelinux.github.io/kernel/map/ : kernel map
参考资料
一些资料信息来源于 http://pdos.csail.mit.edu/6.828/2014/reference.html
UNIX general info
- Youtube Unix intro
- The UNIX Time-Sharing System, Dennis M. Ritchie and Ken L.Thompson,. Bell System Technical Journal 57, number 6, part 2 (July-August 1978) pages 1905-1930.
- The Evolution of the Unix Time-sharing System, Dennis M. Ritchie, 1979.
- The C programming language (second edition) by Kernighan and Ritchie. Prentice Hall, Inc., 1988. ISBN 0-13-110362-8, 1998.
building or reading a small OS
- How to make an Operating System
- xv6 book 中文
- 自己动手写操作系统于渊 著,电子工业出版社,2005
- Linux-0.11内核完全注释 赵炯,2009
- oldlinux论坛
- osdev.org
some OS course
x86 Emulation
x86 Assembly Language
- Intel 80386 Programmer’s Reference Manual, 1987 (HTML).
- Linux 汇编语言开发指南
- 汇编语言程序设计 布鲁姆 著, 马朝晖 等译,机械工业出版社,2005
Multiprocessor references:
x86系统结构与编程
- 微型计算机技术及应用(第4版) 戴梅萼,史嘉权 编著, 清华大学出版社, 2008
- x86/x64体系探索及编程 邓志 著,电子工业出版社,2012
- x86汇编语言:从实模式到保护模式 李忠,王晓波,余洁 著,电子工业出版社,2013
General BIOS and PC bootstrap
- BIOS Services and Software Interrupts, Roger Morgan, 1997.
- “El Torito” Bootable CD-ROM Format Specification,Phoenix/IBM, January 1995.
VGA display - console.c
- VESA BIOS Extension (VBE) 3.0 September 1998.
- Free VGA Project J.D. Neal, 1998.
8253/8254 Programmable Interval Timer (PIT)
- 82C54 CHMOS Programmable Interval Timer, , Intel, October 1994.
- Data Solutions 8253/8254 Tutorial, Data Solutions.
8259/8259A Programmable Interrupt Controller (PIC)
- 8259A Programmable Interrupt Controller,Intel, December 1988.
16550 UART Serial Port
- PC16550D Universal Asynchronous Receiver/Transmitter with FIFOs, National Semiconductor, 1995.
- http://byterunner.com/16550.html, Byterunner Technologies.
- Interfacing the Serial / RS232 Port,, Craig Peacock, August 2001.
IEEE 1284 Parallel Port
- Parallel Port Central, Jan Axelson.
- Parallel Port Background, Warp Nine Engineering.
- IEEE 1284 - Updating the PC Parallel Port, National Instruments.
- Interfacing the Standard Parallel Port, Craig Peacock, August 2001.
IDE hard drive controller
- AT Attachment with Packet Interface - 6 (working draft), ANSI, December 2001.
- Programming Interface for Bus Master IDE Controller, Brad Hosler, Intel, May 1994.
- The Guide to ATA/ATAPI documentation, Constantine Sapuntzakis, January 2002.
转载
Linux内核学习资料汇总-转
https://ysc2.github.io/ysc2.github.io/2024/07/30/Linux内核学习资料汇总-转/