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 года. Работал в ОАО «НИЦЭВТ», АО «Концерн «Системпром», ООО «ПРОСОФТ» (в дочерней компании «Доламант»).

    Date: 2016-08-11 09:34 pm (UTC)
    From: [identity profile] di-halt.livejournal.com
    Это повтор? Или что то новое будет?

    Date: 2016-08-11 09:43 pm (UTC)
    From: [identity profile] dlinyj.livejournal.com
    Повтор. Слишком много желающих. Анонс не дашь?

    Тебе по старой теме что-нить разжевать?

    Date: 2016-08-11 09:49 pm (UTC)
    From: [identity profile] di-halt.livejournal.com
    Анонс дам.

    Я еще даже материалы с семинара толком. Не до того было. Полностью только первую часть онлайн видел. Остальное фоном. В записи потом еще раз посмотрю когда соберусь заняться. А вообще слишком много инфы за раз. Не воспринимается. Вот своих сбагрю куда нибудь недельки на две-три и спокойно все пройду. Тогда и вопросы будут.
    Edited Date: 2016-08-18 06:19 pm (UTC)

    Date: 2016-08-18 09:16 pm (UTC)
    From: [identity profile] xanvariz.livejournal.com
    А если вебкамеры нет и хочу просто после вебинара посмотреть его в записи, то записаться можно?
    Edited Date: 2016-08-18 09:18 pm (UTC)

    Date: 2016-08-18 10:09 pm (UTC)
    From: [identity profile] dlinyj.livejournal.com
    Веб-камера вам и не нужна. Запись будет обязательно! Так что пишите на почту, я расскажу, что делать дальше.

    Date: 2016-08-19 12:32 pm (UTC)
    From: [identity profile] xanvariz.livejournal.com
    понятно.

    > и контактные данные (номер телефона и почта)

    А номер телефона вам зачем?

    Date: 2016-08-19 03:35 pm (UTC)
    From: [identity profile] dlinyj.livejournal.com
    Я обычно обзваниваю людей, но не хотите, можете не давать. Можно скайп.

    Date: 2016-08-19 09:44 pm (UTC)
    From: [identity profile] xanvariz.livejournal.com
    блин. У меня в телефоне включен белый список на звонки (так надо для "защиты" от некоторых) + микрофон на нем фиговатый - плохо слышно. А скайпа у меня нет, т.к., как написал выше, у меня нет вебки, как и микрофона.

    Если обзвон/скайп обязательны (тоже непонятно зачем), значит мне не судьба :(
    Edited Date: 2016-08-20 07:40 am (UTC)

    Date: 2016-08-20 10:20 am (UTC)
    From: [identity profile] dlinyj.livejournal.com
    Не обязательны. Половина народа телефон свой не дала. Мне он не очень нужен.

    Главное просто желание участвовать и оплатить курс. Остальное, как вам удобно.

    Date: 2016-08-20 10:41 am (UTC)
    From: [identity profile] xanvariz.livejournal.com
    а.. ну тогда отправил запрос.

    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 01:50 pm
    Powered by Dreamwidth Studios