Dlinyj (dlinyj) wrote,
Dlinyj
dlinyj

Categories:

Вебинар. Linux разработка на языке си. Изучаем основное API.

На прошлой неделе я проводил вебинар по данной теме. В ЖЖ его не анонсировал, только на сайте 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 года. Работал в ОАО «НИЦЭВТ», АО «Концерн «Системпром», ООО «ПРОСОФТ» (в дочерней компании «Доламант»).
    Tags: linux, мастер-класс
    Subscribe
    • Post a new comment

      Error

      Anonymous comments are disabled in this journal

      default userpic

      Your reply will be screened

      Your IP address will be recorded 

    • 10 comments