• 4 июля 2016, понедельник
  • Москва, Хохловский пер. д.7/9, стр.2, подъезд 1, офис 303. м.Китай-Город

Мастер-класс программирование на си под Linux. Изучаем основное API.

Регистрация на событие закрыта

Извините, регистрация закрыта. Возможно, на событие уже зарегистрировалось слишком много человек, либо истек срок регистрации. Подробности Вы можете узнать у организаторов события.

Другие события организатора

2825 дней назад
с 11:00 4 июля до 17:00 7 июля 2016
Москва
Хохловский пер. д.7/9, стр.2, подъезд 1, офис 303. м.Китай-Город

Друзья! С 4 по 7 июля у нас состоится мероприятие — четырехдневный мастер-класс по программированию под Linux. Это второй мастер-класс, дополненный и исправленный Данный мастер-класс предназначен в первую очередь для разработчиков ПО, инженеров, программистов и просто любителей, кто интересуется устройством и спецификой ОС Linux.устройством и спецификой ОС Linux.

В рамках этого мероприятия будет рассмотрено:

  • Ознакомление с процессом сборки ПО и специфики компилятора C из состава GCC
  • Разработка и использование разделяемых библиотек
  • Изучение механизмов низкоуровнего файлового ввода-вывода
  • Изучение механизмов обеспечения многозадачности и межпроцессного взаимодействия
  • Применение файловых и сетевых сокетов
  • Изучение и применение механизма сигналов
  • Изучение процессов, потоков их различие, использование многопоточности, изучение механизмов синхронизации потоков и их проблем
  • Создание демонов, изучение различия между демонами и прикладным ПО
  • Изучение особенностей консольного ввода-вывода
  • Применение отображаемых в память файлов и их использование

Стоимость данного мастер-класса будет составлять 6 000 рублей (оплата при встрече).

Даты проведения: c 30 мая (понедельник) по 2 июня (четверг) с 10 до 17 с перерывом на обед и перерывами на чай/кофе.
Онлайн трансляции не планируется.

Количество человек в группе: 8.

Требования к обучающимся: Знание языка си, на уровне книги Б.В. Керниган,Д.М. Ричи "ЯЗЫК С".

Программа мастер-класса:

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

Ознакомление со спецификой сборки ПО в GNU/Linux
Ознакомление с консольными текстовыми редакторами (vi,nano,mcedit)
Работа с отладчиком gdb
Ручная и автоматическая сборка ПО (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. Консольный ввод-вывод

Специфика разработки консольных приложений
Предотвращение перенаправления вывода
Управление терминалом
Сокрытие пароля пользователя при аутентификации
Управление терминалом с помощью ESC-последовательностей

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

Отображение обычного файла
Совместный доступ к файлу
Частные отображения
Другие применения mmap

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

Специфика разработки 64-битных приложений
Использование библиотеки ncurses

Регистрация

Рекомендуемые события

Организуете события? Обратите внимание на TimePad!

Профессиональная билетная система, статистика продаж 24/7, выгрузка списков участников, встроенные инструменты продвижения, личный кабинет для самостоятельного управления и еще много чего интересного.

Узнать больше