К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Linux Kernel Internals: Processes, Memory, and Scheduling · LearnSpace
Назад в каталог
courseraПрограммирование

Linux Kernel Internals: Processes, Memory, and Scheduling

Курс от Packt
Средний≈ 11.7 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

Gain a deep understanding of Linux kernel internals by exploring how processes, memory, and CPU scheduling work together to power modern operating systems. This course focuses on essential kernel subsystems and synchronization techniques that are critical for system performance, scalability, and stability in professional Linux environments. You will learn how the Linux kernel manages processes and threads, allocates and organizes memory, and schedules CPU tasks efficiently. Through practical explanations and demonstrations, the course helps you build the skills needed to analyze kernel behavior, understand synchronization mechanisms, and optimize system-level operations for development and administration tasks. This course stands out by combining detailed theoretical insights with practical, real-world kernel examples. Step-by-step walkthroughs and synchronization-focused lessons make complex Linux kernel concepts easier to visualize and apply. This course is ideal for Linux developers, system programmers, embedded engineers, and IT professionals interested in low-level system operations. A basic understanding of Linux commands, operating systems, and programming concepts is recommended. Packt is one of the world's most prolific publishers of cutting-edge technical content. For over two decades we've made it our mission to curate and publish the knowledge of only the very best technical experts. We focus on real-world courses that help our customers get the job done, with coverage that extends across a wide range of established and cutting-edge technical topics. If you're an individual or an organisation that embraces learning by doing, Packt is the perfect fit for you. This course is part two of a three-course Specialization designed to provide a comprehensive learning pathway in this subject area. While it delivers standalone value and practical skills, learners seeking a more integrated and in-depth progression may benefit from completing the full Specialization.

Навыки, которые вы освоите

Real-Time Operating SystemsSystem ConfigurationLinuxHardware ArchitecturePerformance TuningLinux AdministrationSystem ProgrammingLinux CommandsLinux ServersResource ManagementOperating System AdministrationDebuggingC (Programming Language)System SoftwareSystems AnalysisOS Process ManagementMemory ManagementOperating Systems

Программа курса

6 модулей · 119 учебных материалов

01Kernel Internals Essentials - Processes and Threads16 материалов

Inside the Linux Kernel: Navigating Processes, Threads, and Stacks

OverviewВидеоIntroductionЧтениеUnderstanding the Basics of the Process Virtual Address Space (VAS)ЧтениеOrganizing Processes, Threads, and Their Stacks User and Kernel SpaceЧтение

Учитесь у экспертов

Packt - Course Instructors

Преподаватель курса

Linux Kernel Internals: Processes, Memory, and Scheduling
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 11.7 ч

6 модулей

Язык: Английский

Часть программы вашего университета
User Space OrganizationЧтение
Kernel Space OrganizationЧтение
Viewing the User and Kernel StacksЧтение
Viewing the User Space Stack of a Given Thread or ProcessЧтение
The 10,000-Foot View of the Process VASЧтение
Accessing the Task Structure with CurrentЧтение
Working with the Task Structure via 'current'Чтение
Seeing That the Linux OS Is MonolithicЧтение
Iterating Over the Kernel's Task ListsЧтение
Differentiating Between the Process and Thread TGID and PIDЧтение
Iterating Over the Task List III CodeЧтение
Kernel Process and Thread FundamentalsЗадание
02Memory Management Internals - Essentials23 материалов

Demystifying Linux Memory: From Virtual Spaces to Kernel Maps

OverviewВидеоIntroductionЧтениеGoing Beyond the Printf APIЧтениеVirtual Addressing and Address TranslationЧтениеGetting from Virtual to Physical Address A Very Brief OverviewЧтениеVM Split on 64-Bit Linux SystemsЧтениеA Word on AArch64 Linux AddressingЧтениеExamining the Process VASЧтениеInterpreting the /proc/PID/maps OutputЧтениеFrontends to View the Process Memory MapЧтениеUnderstanding VMA BasicsЧтениеExamining the Kernel VASЧтениеHigh Memory on 32-Bit SystemsЧтениеMacros and Variables Describing the Kernel VAS LayoutЧтениеTrying It Out Viewing Kernel VAS DetailsЧтениеThe Kernel VAS via ProcmapЧтениеTrying It Out The User SegmentЧтениеRandomizing the Memory Layout KASLRЧтениеQuerying/Setting KASLR Status with a ScriptЧтениеAn Example of a NUMA Server ProcessorЧтениеDirect-Mapped RAM and Address TranslationЧтениеAn Introduction to Physical Memory ModelsЧтениеMemory Management FundamentalsЗадание
03Kernel Memory Allocation for Module Authors - Part 123 материалов

Mastering Kernel Memory: From Allocation Strategies to Practical Module Deployment

OverviewВидеоIntroductionЧтениеUnderstanding and Using the Kernel Page Allocator (or BSA)ЧтениеThe Workings of the Page AllocatorЧтениеPage Allocator Internals A Few More DetailsЧтениеDealing with the GFP FlagsЧтениеA Few Guidelines to Observe When (De)allocating Kernel MemoryЧтениеDeploying Our Lowlevel Mem Lkm Kernel ModuleЧтениеThe 'Exact' Page Allocator API PairЧтениеNever Sleep in Interrupt or Atomic ContextsЧтениеA Quick Note on Other Internal-Usage GFP FlagsЧтениеUnderstanding and Using the Kernel Slab AllocatorЧтениеHow Much RAM Exactly Is Taken Up by the Slab CachesЧтениеFreeing Slab MemoryЧтениеThe Actual Slab Caches in Use for KmallocЧтениеWriting a Kernel Module to Use the Basic Slab APIsЧтениеSize Limitations of the kmalloc APIЧтениеChecking via the /proc/buddyinfo PseudofileЧтениеCaveats When Using the Slab AllocatorЧтениеInterpreting the Output from Case 2ЧтениеThe Easy Way with SlabinfoЧтениеRunning a Script to See the SLUB Wastage or LossЧтениеKernel Memory Allocation FundamentalsЗадание
04Kernel Memory Allocation for Module Authors - Part 222 материалов

Mastering Advanced Kernel Memory Management Techniques

OverviewВидеоIntroductionЧтениеUsing Our Custom Slab Cache's MemoryЧтениеExtracting Useful Information Regarding Slab CachesЧтениеDebugging Kernel Memory Issues A Quick MentionЧтениеUnderstanding and Using the Kernel Vmalloc() APIЧтениеTrying Out vmalloc()ЧтениеA Brief Note on User-Mode Memory Allocations and Demand PagingЧтениеIs This Vmalloc-ed (or Module Region) Memory?ЧтениеMiscellaneous Helpers vmalloc_exec and vmalloc_userЧтениеMemory Allocation in the Kernel Which APIs to Use WhenЧтениеA Word on DMA and CMAЧтениеNew Multi-Generational LRU (MGLRU) Lists FeatureЧтениеA Quick Introduction to DAMON the Data Access Monitoring FeatureЧтениеStayin' Alive The OOM KillerЧтениеUnderstanding the Three VM Overcommit Memory PoliciesЧтениеNote on the Commit Limits in ProcЧтениеIntercepting the OOM Killer via Systemd-OomdЧтениеDemand Paging and OOMЧтениеThe Optimized Unmapped ReadЧтениеCgroups and Memory Bandwidth NoteЧтениеKernel Memory Allocation for Module AuthorsЗадание
05The CPU Scheduler - Part 118 материалов

Demystifying Linux CPU Scheduling: Policies, Preemption, and Performance

OverviewВидеоIntroductionЧтениеThe POSIX Scheduling PoliciesЧтениеVisualizing the FlowЧтениеTrying It Out The Command-Line ApproachЧтениеVisualizing the Flow via Alternate ApproachesЧтениеA Conceptual Example to Help Understand Scheduling ClassesЧтениеAsking the Scheduling ClassЧтениеNote on the CFS vruntime Value and Its RunqueueЧтениеNote on the CFS Scheduling Period and TimesliceЧтениеScheduling StatisticsЧтениеCPU Scheduling InternalsЧтениеThe Dynamic Preemptible Kernel FeatureЧтениеMinimally Understanding the Thread Info StructureЧтениеTimer Interrupt Housekeeping Setting TIF NEED RESCHEDЧтениеProcess Context Part Checking TIF NEED RESCHEDЧтениеThe Core Scheduler Code in BriefЧтениеCPU Scheduling and Kernel OperationsЗадание
06The CPU Scheduler - Part 217 материалов

Mastering CPU Affinity, Scheduling Policies, and Resource Control in Linux

OverviewВидеоIntroductionЧтениеQuerying and Setting a Thread's CPU Affinity MaskЧтениеSetting the CPU Affinity Mask on a Kernel ThreadЧтениеQuerying and Setting a Thread's Scheduling Policy and PriorityЧтениеAn Introduction to CgroupsЧтениеCgroup ControllersЧтениеEnabling or Disabling ControllersЧтениеCgroups Within the HierarchyЧтениеSlice and ScopeЧтениеGetting a Quick Brief on Kernel NamespacesЧтениеOur cgroups v2 Explorer ScriptЧтениеLeveraging systemd to Set Up CPU Resource Constraints on a ServiceЧтениеThe Manual Way a cgroups v2 CPU ControllerЧтениеRunning Linux as an RTOS An IntroductionЧтениеPointers to Building RTL for the Mainline 6.x Kernel on x86_64ЧтениеCPU Scheduling and Resource ControlЗадание