По юридическим причинам я не могу назвать это курсом, так что мастер-класс.
![]()
Дорогие коллеги, я планирую проведение мастер-класса программирования под linux. В рамках этого мероприятия будет рассмотрено:
Стоимость данного мастер-класса будет составлять 6 000 рублей.
Место проведения - город Москва, в помещении Хакспейса Нейрон.
Даты проведения: Ориентировочно 30 мая (понедельник), по 2 июня (четверг) с 10 до 17 с перерывом на обед и перерывами на чай/кофе.
Онлайн трансляции не планируется.
Количество человек в группе: 8 .
Запись ведётся либо здесь в комментариях, личным сообщением, либо по электронной почте dlinyj@gmail.com . Для записи ваше Ф.И.О. и контактные данные (номер телефона и почта).
Требования к обучающимся: Знание языка си, на уровне книги Б.В. Керниган,Д.М. Ричи "ЯЗЫК С".
![]()
Пара слов о себе: Много лет занимаюсь разработкой ПО для встраиваемых систем. Разработкой под linux занимаюсь с 2011 года. Работал в ОАО "НИЦЭВТ", АО «Концерн «Системпром», ООО "ПРОСОФТ" (в дочерней компании "Доламант"). Занимался разработкой тестового ПО, сборкой и написанием ПО под Linux, тестового ПО для железа (под linux), драйверов linux.

Дорогие коллеги, я планирую проведение мастер-класса программирования под linux. В рамках этого мероприятия будет рассмотрено:
- Ознакомление с процессом сборки ПО и специфики компилятора C из состава GCC
- Разработка и использование разделяемых библиотек
- Изучение механизмов низкоуровнего файлового ввода-вывода
- Изучение механизмов обеспечения многозадачности и межпроцессного взаимодействия
- Применение файловых и сетевых сокетов
- Изучение и применение механизма сигналов
- Изучение процессов, потоков их различие, использование многопоточности, изучение механизмов синхронизации потоков и их проблем
- Создание демонов, изучение различия между демонами и прикладным ПО
- Изучение особенностей консольного ввода-вывода
- Применение отображаемых в память файлов и их использование
Модуль 1. Введение
- Ознакомление со спецификой сборки ПО в GNU/Linux
- Ознакомление с консольными текстовыми редакторами (vi,nano,mcedit)
- Ручная и автоматическая сборка ПО (Makefile)
- Модель Клиент-Интерфейс-Сервер (КИС)
- Статическая сборка библиотек
- Совместно используемые библиотеки
- Работа с переменными окружения
Модуль 2. Низкоуровневый ввод-вывод и файловые операции
- Обзор механизмов ввода-вывода в Linux (Ubuntu)
- Файловые дескрипторы
- Системные вызовы: open, close, write, read и lseek
- Типы файлов
- Индексные дескрипторы и жесткие ссылки
- Права доступа к файлу
- Файловая система proc
- Два способа прочесть содержимое директории
- Разреженные файлы и специфика их применения
- Блокировка областей файла 3
Модуль 3. Межпроцессное взаимодействие
- Механизмы межпроцессного взаимодействия Linux (Ubuntu)
- Неименованные каналы (pipes)
- Именованные каналы (named pipes)
- Сообщения (message queue)
- Разделяемая память (shared memory)
- Семафоры (semaphores)
Модуль 4. Сокеты
- Сокеты в файловом пространстве имен (UNIX-сокеты)
- Парные сокеты (pair sockets)
- Сетевые сокеты (sockets)
Модуль 5. Сигналы
- Знакомство с сигналами (signals)
- Отличие сигналов от других механизмов межпроцессного взаимодействия
- Специфика обработки сигналов (signal handling)
Модуль 6. Процессы
- Клонирование процессов — fork()
- Замена исполняемого процесса — exec()
- Зомби (zombies) — причины возникновения и способы их устранения
Модуль 7. Потоки
- Потоки и процессы
- Специфика построения многопоточных приложений (multithreading)
- Досрочное завершение потока
Модуль 8. Потоки (продолжение)
- Создание обработчика завершения потока
- Средства синхронизации потоков (synchronize primitives)
- Атрибуты потоков
Модуль 9. Демоны (службы)
- Отличие демона от консольной утилиты
- Специфика разработки демонов (daemons)
- Создание демона использующего сетевые сокеты
Модуль 10. Консольный ввод-вывод
- Специфика разработки консольных приложений
- Предотвращение перенаправления вывода
- Управление терминалом
- Сокрытие пароля пользователя при аутентификации
Модуль 11. Отображаемая память
- Отображение обычного файла
- Совместный доступ к файлу
- Частные отображения
- Другие применения mmap
Модуль 12. Домашнее задание
- Специфика разработки 64-битных приложений
- Использование библиотеки ncurses
Стоимость данного мастер-класса будет составлять 6 000 рублей.
Место проведения - город Москва, в помещении Хакспейса Нейрон.
Даты проведения: Ориентировочно 30 мая (понедельник), по 2 июня (четверг) с 10 до 17 с перерывом на обед и перерывами на чай/кофе.
Онлайн трансляции не планируется.
Количество человек в группе: 8 .
Запись ведётся либо здесь в комментариях, личным сообщением, либо по электронной почте dlinyj@gmail.com . Для записи ваше Ф.И.О. и контактные данные (номер телефона и почта).
Требования к обучающимся: Знание языка си, на уровне книги Б.В. Керниган,Д.М. Ричи "ЯЗЫК С".

Пара слов о себе: Много лет занимаюсь разработкой ПО для встраиваемых систем. Разработкой под linux занимаюсь с 2011 года. Работал в ОАО "НИЦЭВТ", АО «Концерн «Системпром», ООО "ПРОСОФТ" (в дочерней компании "Доламант"). Занимался разработкой тестового ПО, сборкой и написанием ПО под Linux, тестового ПО для железа (под linux), драйверов linux.