Skip to content

Latest commit

 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Linux YouTube Reddit

GitHub   YouTube   My Awesome Lists

flowchart TD

    A[Programming Fundamentals]

    A --> A1[C Programming]
    A --> A2[Pointers]
    A --> A3[Structures & Unions]
    A --> A4[Bitwise Programming]

    A4 --> B[Computer Architecture]

    B --> B1[x86 / ARM Architecture]
    B --> B2[Memory Hierarchy]
    B --> B3[Assembly Language]
    B --> B4[CPU Privilege Levels]
    B --> B5[Interrupts & Exceptions]

    B5 --> C[Operating Systems]

    C --> C1[Processes & Threads]
    C --> C2[Scheduling]
    C --> C3[Virtual Memory]
    C --> C4[Synchronization]
    C --> C5[File Systems]

    C5 --> D[Linux Fundamentals]

    D --> D1[Bash]
    D --> D2[Linux Commands]
    D --> D3[System Calls]
    D --> D4[Procfs]
    D --> D5[Sysfs]
    D --> D6[udev]

    D6 --> E[Linux Kernel Basics]

    E --> E1[Kernel Architecture]
    E --> E2[Kernel Source Tree]
    E --> E3[Kernel Build System]
    E --> E4[Kconfig]
    E --> E5[Kbuild]
    E --> E6[Kernel Boot Process]

    E6 --> F[Kernel Programming]

    F --> F1[Loadable Kernel Modules]
    F --> F2[Kernel APIs]
    F --> F3[Memory Allocation]
    F --> F4[Kernel Data Structures]

    F4 --> G[Driver Development]

    G --> G1[Character Drivers]
    G --> G2[Block Drivers]
    G --> G3[Network Drivers]
    G --> G4[PCI Drivers]
    G --> G5[USB Drivers]
    G --> G6[I2C Drivers]
    G --> G7[SPI Drivers]
    G --> G8[Platform Drivers]

    G8 --> H[Hardware Interaction]

    H --> H1[MMIO]
    H --> H2[Port I/O]
    H --> H3[DMA]
    H --> H4[Interrupt Handling]
    H --> H5[Device Tree]

    H5 --> I[Driver Interfaces]

    I --> I1[ioctl]
    I --> I2[sysfs]
    I --> I3[procfs]
    I --> I4[mmap]
    I --> I5[netlink]

    I5 --> J[Synchronization]

    J --> J1[Spinlocks]
    J --> J2[Mutexes]
    J --> J3[Semaphores]
    J --> J4[Completions]
    J --> J5[RCU]

    J5 --> K[Debugging & Profiling]

    K --> K1[printk]
    K --> K2[dmesg]
    K --> K3[ftrace]
    K --> K4[perf]
    K --> K5[kgdb]
    K --> K6[crash]
    K --> K7[eBPF]

    K7 --> L[Advanced Topics]

    L --> L1[Power Management]
    L --> L2[Kernel Security]
    L --> L3[LSM Framework]
    L --> L4[Hotplug]
    L --> L5[Networking Stack]
    L --> L6[Driver Frameworks]

    L6 --> M[Kernel Contribution]

    M --> M1[Git]
    M --> M2[checkpatch.pl]
    M --> M3[Patch Development]
    M --> M4[Kernel Coding Style]
    M --> M5[Mailing Lists]
    M --> M6[Maintainer Review]

    M6 --> N[Professional Linux Driver Developer]

    style A fill:#0b5394,stroke:#073763,color:#ffffff
    style B fill:#3d85c6,stroke:#0b5394,color:#ffffff
    style C fill:#6aa84f,stroke:#38761d,color:#ffffff
    style D fill:#674ea7,stroke:#351c75,color:#ffffff
    style E fill:#e69138,stroke:#b45f06,color:#ffffff
    style F fill:#f1c232,stroke:#bf9000,color:#000000
    style G fill:#990000,stroke:#660000,color:#ffffff
    style H fill:#008080,stroke:#005555,color:#ffffff
    style I fill:#8e7cc3,stroke:#674ea7,color:#ffffff
    style J fill:#cc4125,stroke:#990000,color:#ffffff
    style K fill:#6fa8dc,stroke:#0b5394,color:#ffffff
    style L fill:#38761d,stroke:#274e13,color:#ffffff
    style M fill:#434343,stroke:#222222,color:#ffffff
    style N fill:#000000,stroke:#000000,color:#ffffff
Loading

📖 Contents

In Linux, drivers are categorized based on the type of device or functionality they manage.

1. Kernel-Space Driver

1.1 Device Driver

Programming Guide

Programming Guide

2. User-Space Driver

3. Miscellaneous

My Other Awesome Lists

You can access the my other awesome lists here

Contributing

Contributions of any kind welcome, just follow the guidelines!

Contributors

Thanks goes to these contributors!

License

CC0

🔼 Back to top