• A
  • A
  • A
  • АБВ
  • АБВ
  • АБВ
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Программа «Linux Kernel».

Общее описание 
Linux сегодня - самая популярная операционная система в мире для суперкомпьютеров. Работа большого количества веб серверов в сети Интернет по всему миру и более миллиарда Android устройств осуществляется благодаря Linux. Огромное количество пользователей по всему миру используют GNU/Linux на своих домашних компьютерах. Этот курс позволит сформировать первоначальные знания по работе с ядром Linux. Курс  Linux Kernel является важным для начинающих специалистов по низкоуровневому программированию. Участники узнают о принципах программирования на языке С в пространстве ядра, смогут делать свои собственные конфигурации ядра и работать с исходным кодом. Будут раскрыты и более узкие темы, по различным подсистем ядра: Kernel Virtual Memory, Process Management, Linux Scheduler, Kernel Synchronization Primitives, Kernel Time-keeping Architecture, Kernel Memory Management, Process Address Space и прочее.

Для кого рекомендовано обучение:Целевая аудитория - студенты 3-5 курсов технических факультетов. Необходимы знания основ алгоритмики, базовых понятий языка Си, основ аппаратного устройства компьютеров.

Цель программы : формирование базовых навыков низкоуровневого программирования, понимание основ архитектуры современных операционных систем.

Задачи программы:

1. Проявить у обучаемых интерес к системному программированию

2. Укрепить и улучшить знания языков Си, ассемблер

3. Ознакомить обучаемых с общепринятыми практиками программирования

4. Обучить использованию и чтению чужого кода, его анализу

Длительность обучения: 1 лекция в неделю (2 ач). Практика, обсуждения по домашним заданиям - отдельно (предположительно +1 час в неделю) 33ач

Результаты обучения: Получение знаний основ архитектуры ОС linux. Особенности общей архитектуры операционных систем. Основы низкоуровневого программирования. Углубленные знания и понимание языка Си, представление об ассемблере.

     План обучения

Тема

Время

Материалы

Комментарий

1. Linux Introduction

4,5 а.ч

Введение в OC Линукс, история, основные концепции, базовые понятия архитектуры

 

2. Version Control Systems

1,5 а.ч

Использование контроля версий для отчетности по тестовым заданиям. Введение в одну из систем контроля версий

* опционально, при наличии свободных часов

3. Linux Kernel

4,5 а.ч

Разделение ядра и пространства пользователя. Способы взаимодействия, ограничения, реализация на современных аппаратных архитектурах

 

4. Linux memory management

4,5 а.ч

Выделение памяти, разница в использовании памяти между user space и kernel space. Память в ядре. Управление ею.

 

5. Assembler, CPU Architectures

4,5 а.ч

Обзор аппаратных платформ. Архитектура процессоров. Ассемблеры, использование в ядре.

* опционально

6. Debugging techniques

4,5 а.ч

Техники отладки приложений, компонентов в ядре линукс. Отладка драйверов. Отладчики.

 

7. Dynamic Libraries

4,5 а.ч

Модель динамических библиотек, принципы работы.

 

8. Networking

4,5 а.ч

Сетевая подсистема в ядре линукс. Обзор основных компонентов. Использование сетевых интерфейсов.

* в зависимости от наличия базовых знаний по сетевым технологиям