• Linux Inside на русском
  • Содержание
  • Введение
  • Процесс загрузки ядра
    • От загрузчика к ядру
    • Первые шаги в коде настройки ядра
    • Инициализация видеорежима и переход в защищённый режим
    • Переход в 64-битный режим
    • Декомпрессия ядра
    • Рандомизация адреса ядра
  • Инициализация
    • Первые шаги в ядре
    • Начальная обработка прерываний и исключений
    • Последние приготовления перед точкой входа в ядро
    • Kernel entry point
    • Continue architecture-specific boot-time initializations
    • Architecture-specific initializations, again...
    • End of the architecture-specific initializations, almost...
    • Scheduler initialization
    • RCU initialization
    • End of initialization
  • Interrupts
    • Introduction
    • Start to dive into interrupts
    • Interrupt handlers
    • Initialization of non-early interrupt gates
    • Implementation of some exception handlers
    • Handling Non-Maskable interrupts
    • Dive into external hardware interrupts
    • Initialization of external hardware interrupts structures
    • Softirq, Tasklets and Workqueues
    • Last part
  • System calls
    • Introduction to system calls
    • How the Linux kernel handles a system call
    • vsyscall and vDSO
    • How the Linux kernel runs a program
    • Implementation of the open system call
    • Limits on resources in Linux
  • Timers and time management
    • Introduction
    • Clocksource framework
    • The tick broadcast framework and dyntick
    • Introduction to timers
    • Clockevents framework
    • x86 related clock sources
    • Time related system calls
  • Synchronization primitives
    • Introduction to spinlocks
    • Queued spinlocks
    • Semaphores
    • Mutex
    • Reader/Writer semaphores
    • SeqLock
    • RCU
    • Lockdep
  • Memory management
    • Memblock
    • Fixmaps and ioremap
    • kmemcheck
  • Cgroups
    • Introduction to Control Groups
  • SMP
  • Concepts
    • Per-CPU variables
    • Cpumasks
    • The initcall mechanism
    • Notification Chains
  • Data Structures in the Linux Kernel
    • Doubly linked list
    • Radix tree
    • Bit arrays
  • Theory
    • Paging
    • Elf64
    • Inline assembly
    • CPUID
    • MSR
  • Initial ram disk
    • initrd
  • Misc
    • Linux kernel development
    • How the kernel is compiled
    • Linkers
    • Program startup process in userspace
    • Write and Submit your first Linux kernel Patch
    • Data types in the kernel
  • KernelStructures
    • IDT
  • Полезные ссылки
  • Участники
Powered by GitBook

Полезные ссылки

Полезные ссылки

Загрузка Linux

  • Протокол загрузки Linux/x86
  • Параметры ядра Linux

Защищённый режим

  • 64-ia-32-architectures-software-developer-vol-3a-part-1-manual.pdf

Управление памятью в ядре Linux

  • Заметки @lorenzo-stoakes о подсистеме VM в ядре Linux

Программирование последовательного порта

  • Программирование 8250 UART
  • Последовательные порты на OSDEV

VGA

  • Video Graphics Array (VGA)

Ввод/вывод

  • Программирвоание портов ввода/вывода

GCC и GAS

  • Типы атрибутов GCC
  • Директивы ассемблера

Важные структуры данных

  • Определение task_struct

Управление памятью

  • Серия статей "NUMA Deep Dive"

Полезные ссылки

  • Запуск программ в Linux x86
  • Разметка памяти при выполнении программы (32 бита)

results matching ""

    No results matching ""