dlinyj: (Default)
[personal profile] dlinyj
На прошлой неделе я проводил вебинар по данной теме. В ЖЖ его не анонсировал, только на сайте easyelectronics . Хотя группа была ограничена, ажиотаж вокруг вебинара оказался очень большим. Поэтому было принято решение провести новый вебинар! С 22 по 25 августа!

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

  • Ознакомление с процессом сборки ПО и специфики компилятора C из состава GCC

  • Разработка и использование разделяемых библиотек

  • Отладка программ

  • Изучение механизмов низкоуровнего файлового ввода-вывода

  • Изучение механизмов обеспечения многозадачности и межпроцессного взаимодействия

  • Применение файловых и сетевых сокетов

  • Изучение и применение механизма сигналов

  • Изучение процессов, потоков их различие, использование многопоточности, изучение механизмов синхронизации потоков и их проблем

  • Создание демонов, изучение различия между демонами и прикладным ПО

  • Изучение особенностей консольного ввода-вывода

  • Применение отображаемых в память файлов и их использование



  • Дата и время проведения данного вебинара: с 22 по 25 августа, с 11:00 по 17:00 (время Московское!), с перерывами (время ориентировочное, быть может будет и быстрее). Стоимость вебинара 2 000 российских рублей. География участников не имеет значения. Видеозапись будет обязательно!!! Для тех кто пропустил или не может быть, запись будет!
    Требования к участникам мастер-класса: Знание языка си, на уровне книги Б.В. Керниган,Д.М. Ричи «ЯЗЫК С».

    Запись ведётся по электронной почте dlinyj@gmail.com (. Для записи необходимо ваше имя (ф.и.о. по желанию) и контактные данные (номер телефона и почта). Желательно описать цели посещения этого вебинара, уровень подготовки и род занятий.

    Для примера, видео одной из тем с прошлого вебинара:





    Подробная программа курса:

    Модуль 1. Введение

    • Ознакомление со спецификой сборки ПО в GNU/Linux

    • Ознакомление с консольными текстовыми редакторами (vi,nano,mcedit)

    • Работа с отладчиком gdb

    • Ручная и автоматическая сборка ПО (Makefile)

    • Работа с отладчиком gdb

    • Модель Клиент-Интерфейс-Сервер (КИС)

    • Статическая сборка библиотек

    • Совместно используемые библиотеки

    • Работа с переменными окружения

    Модуль 2. Низкоуровневый ввод-вывод и файловые операции

    • Обзор механизмов ввода-вывода в Linux (Ubuntu)

    • Файловые дескрипторы

    • Системные вызовы: open, close, write, read и lseek

    • Типы файлов

    • Индексные дескрипторы и жесткие ссылки

    • Права доступа к файлу

    • Файловая система proc

    • Два способа прочесть содержимое директории

    • Разреженные файлы и специфика их применения

    • Блокировка областей файла

    Модуль 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. Консольный ввод-вывод

    • Специфика разработки консольных приложений

    • Предотвращение перенаправления вывода

    • Управление терминалом

    • Сокрытие пароля пользователя при аутентификации

    • Управление терминалом с помощью ESC-последовательностей

    Модуль 11. Отображаемая память

    • Отображение обычного файла

    • Совместный доступ к файлу

    • Частные отображения

    • Другие применения mmap

    Модуль 12. Домашнее задание

    • Специфика разработки 64-битных приложений

    • Использование библиотеки ncurses



    Ведущий курса: Долин Сергей aka dlinyj. В прошлом автор и редактор рубрики в журнале "Хакер". Электронщик, разработчик ПО linux (прикладное, тестового ПО для железа, драйвера). Разработчик ПО для встраиваемых систем. Программист linux с 2011 года. Работал в ОАО «НИЦЭВТ», АО «Концерн «Системпром», ООО «ПРОСОФТ» (в дочерней компании «Доламант»).
    This account has disabled anonymous posting.
    If you don't have an account you can create one now.
    HTML doesn't work in the subject.
    More info about formatting

    January 2026

    S M T W T F S
        123
    456 78910
    11121314151617
    18192021222324
    25262728293031

    Most Popular Tags

    Style Credit

    Expand Cut Tags

    No cut tags
    Page generated Jan. 22nd, 2026 06:36 pm
    Powered by Dreamwidth Studios