Linux разработка на языке Cи. Изучаем основное API
Вебинар. Linux разработка на языке си. Изучаем основное API.
В данном вебинаре будет охватываться основное API разработчика в пространстве пользователя.
- Ознакомление с процессом сборки ПО и специфики компилятора C из состава GCC
- Разработка и использование разделяемых библиотек
- Отладка программ
- Изучение механизмов низкоуровнего файлового ввода-вывода
- Изучение механизмов обеспечения многозадачности и межпроцессного взаимодействия
- Применение файловых и сетевых сокетов
- Изучение и применение механизма сигналов
- Изучение процессов, потоков их различие, использование многопоточности, изучение механизмов синхронизации потоков и их проблем
- Создание демонов, изучение различия между демонами и прикладным ПО
- Изучение особенностей консольного ввода-вывода
- Применение отображаемых в память файлов и их использование
Дата и время проведения данного вебинара: с 22 по 25 августа, с 11:00 по 17:00 (время Московское!), с перерывами (время ориентировочное, быть может будет и быстрее). Стоимость вебинара 2 000 российских рублей. География участников не имеет значения. Видеозапись будет обязательно!!! Для тех кто пропустил или не может быть, запись будет!
Требования к участникам мастер-класса: Знание языка си, на уровне книги Б.В. Керниган,Д.М. Ричи «ЯЗЫК С».
Ведущий курса: Долин Сергей aka dlinyj. В прошлом автор и редактор рубрики в журнале "Хакер". Электронщик, разработчик ПО linux (прикладное, тестового ПО для железа, драйвера). Разработчик ПО для встраиваемых систем. Программист linux с 2011 года. Работал в ОАО «НИЦЭВТ», АО «Концерн «Системпром», ООО «ПРОСОФТ» (в дочерней компании «Доламант»).
Содержание
Спойлер
Модуль 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
Продажник
Спойлер
Скрытое содержимое.
Спойлер
Вебинар. Linux разработка на языке си. Изучаем основное API.
В данном вебинаре будет охватываться основное API разработчика в пространстве пользователя.
- Ознакомление с процессом сборки ПО и специфики компилятора C из состава GCC
- Разработка и использование разделяемых библиотек
- Отладка программ
- Изучение механизмов низкоуровнего файлового ввода-вывода
- Изучение механизмов обеспечения многозадачности и межпроцессного взаимодействия
- Применение файловых и сетевых сокетов
- Изучение и применение механизма сигналов
- Изучение процессов, потоков их различие, использование многопоточности, изучение механизмов синхронизации потоков и их проблем
- Создание демонов, изучение различия между демонами и прикладным ПО
- Изучение особенностей консольного ввода-вывода
- Применение отображаемых в память файлов и их использование
Дата и время проведения данного вебинара: с 22 по 25 августа, с 11:00 по 17:00 (время Московское!), с перерывами (время ориентировочное, быть может будет и быстрее). Стоимость вебинара 2 000 российских рублей. География участников не имеет значения. Видеозапись будет обязательно!!! Для тех кто пропустил или не может быть, запись будет!
Требования к участникам мастер-класса: Знание языка си, на уровне книги Б.В. Керниган,Д.М. Ричи «ЯЗЫК С».
Ведущий курса: Долин Сергей aka dlinyj. В прошлом автор и редактор рубрики в журнале "Хакер". Электронщик, разработчик ПО linux (прикладное, тестового ПО для железа, драйвера). Разработчик ПО для встраиваемых систем. Программист linux с 2011 года. Работал в ОАО «НИЦЭВТ», АО «Концерн «Системпром», ООО «ПРОСОФТ» (в дочерней компании «Доламант»).
Содержание
Спойлер
Модуль 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
Продажник
Спойлер
Скрытое содержимое.
видео одной из тем с прошлого вебинара:http://dlinyj.livejournal.com/707088.html
Спойлер