Linux (Ubuntu). Уровень 2. Программирование в Linux на C / TeachMePlease

Требуется подтверждение e-mail адреса!

Требуется подтверждение e-mail адреса! Письмо с инструкцией выслано на адрес электронной почты, указанный при регистрации

Cookies

Отключены cookie-файлы!

Для корректной работы сайта необходимо разрешить использование cookie-файлов.

Cookies

Для оптимизации дизайна и быстродействия наших веб-сайтов используются cookie-файлы. Продолжая посещение веб-сайта, вы соглашаетесь на использование cookie-файлов.

Ок
Категории
Категории

Linux (Ubuntu). Уровень 2. Программирование в Linux на C

Возраст
Любой
Уровень подготовки
Средний
Язык
Русский
Контакты организации
specialist.ru
  • Описание курса
  • Чему вы научитесь?
  • Программа
  • Требования к участникам
Описание курса

Операционная система Linux давно занимает лидирующие позиции в программном обеспечении суперкомпьютеров, она занимает второе место в сегменте интернет‑серверов и стремительно набирает популярность в корпоративном сегменте. Этому способствуют главные преимущества Linux по сравнению с коммерческими операционными системами — высокая экономическая эффективность, мобильность, гибкость, оптимальные условия для установки СУБД.

На нашем курсе «Linux (Ubuntu). Уровень 2. Программирование в Linux на C» Вы получите знания и навыки, необходимые для разработки программного обеспечения для стремительно набирающей популярность операционной системы Linux. Вы станете понимать процесс сборки ПО и специфики компилятора C из состава GCC. Вы научитесь разбираться в различиях между процессами и потоками, использовать многопоточность и ее специфики. Вы узнаете, кто такие «демоны» и в чем их отличие от прикладного программного обеспечения.

В Центре «Специалист» обучение Linux проводится на примере популярнейшего дистрибутива Ubuntu. Однако изучать Вы будете именно Linux, и после обучения в нашем Центре Вы легко сможете работать с любым дистрибутивом Linux: Debian, Mandriva, Red Hat, Mint, Alt Linux, Open SUSE, ASP Linux, МСВС и многие другие.
Программа курса соответствует требованиям профессионального стандарта «Программист».

Продолжительность курса - 32 ак. ч.

Чему вы научитесь?
Понимать процесс сборки ПО и специфики компилятора C из состава GCC
Разрабатывать и использовать разделяемые библиотеки
Использовать функции файлового ввода-вывода
Использовать механизмы обеспечения многозадачности и межпроцессного взаимодействия
Использовать файловые и сетевые сокеты
Использовать механизм сигналов
Разбираться в различиях между процессами и потоками, использовать многопоточность и ее специфики
Создавать демонов, понимать различия между демонами и прикладным ПО
Понимать специфику консольного ввода-вывода и уметь ее использовать
Понимать специфику отображаемых в память файлов и уметь их использовать
Программа
Модуль 1. Введение - 2,5 ак. ч.
  • Модуль
  • Онлайн/Очно
Ознакомление со спецификой сборки ПО в GNU/Linux (Ubuntu). Ознакомление с консольными текстовыми редакторами (vi,nano,mcedit). Ручная и автоматическая сборка ПО (Makefile). Модель Клиент-Интерфейс-Сервер (КИС). Статическая сборка библиотек. Совместно используемые библиотеки. Работа с переменными окружения.
Модуль 2. Низкоуровневый ввод-вывод и файловые операции - 2.5 ак. ч.
  • Модуль
  • Онлайн/Очно
Обзор механизмов ввода-вывода в Linux (Ubuntu). Файловые дескрипторы. Системные вызовы: open, close, write, read и lseek. Типы файлов. Индексные дескрипторы и жесткие ссылки. Права доступа к файлу. Файловая система proc. Два способа прочесть содержимое директории. Разреженные файлы и специфика их применения. Блокировка областей файла.
Модуль 3. Межпроцессное взаимодействие - 3 ак. ч.
  • Модуль
  • Онлайн/Очно
Механизмы межпроцессного взаимодействия Linux (Ubuntu): неименованные каналы (pipes), именованные каналы (named pipes), сообщения (message queue), разделяемая память (shared memory), семафоры (semaphores).
Модуль 4. Сокеты - 2,5 ак.ч.
  • Модуль
  • Онлайн/Очно
Сокеты в файловом пространстве имен (UNIX-сокеты). Парные сокеты (pair sockets). Сетевые сокеты (sockets).
Модуль 5. Сигналы - 3 ак.ч.
  • Модуль
  • Онлайн/Очно
Знакомство с сигналами (signals). Отличие сигналов от других механизмов межпроцессного взаимодействия. Специфика обработки сигналов (signal handling).
Модуль 6. Процессы - 2.5 ак. ч.
  • Модуль
  • Онлайн/Очно
Клонирование процессов — fork(). Замена исполняемого процесса — exec(). Зомби (zombies) — причины возникновения и способы их устранения.
Модуль 7. Потоки - 2.5 ак. ч.
  • Модуль
  • Онлайн/Очно
Потоки и процессы. Специфика построения многопоточных приложений (multithreading). Досрочное завершение потока.
Модуль 8. Потоки (продолжение) - 3 ак.ч.
  • Модуль
  • Онлайн/Очно
Создание обработчика завершения потока. Средства синхронизации потоков (synchronize primitives). Атрибуты потоков.
Модуль 9. Демоны (службы) - 3 ак.ч.
  • Модуль
  • Онлайн/Очно
Отличие демона от консольной утилиты. Специфика разработки демонов (daemons). Создание демона использующего сетевые сокеты.
Модуль 10. Консольный ввод-вывод - 2.5 ак.ч.
  • Модуль
  • Онлайн/Очно
Специфика разработки консольных приложений. Предотвращение перенаправления вывода. Управление терминалом. Сокрытие пароля пользователя при аутентификации.
Модуль 11. Отображаемая память - 2,5 ак.ч.
  • Модуль
  • Онлайн/Очно
Отображение обычного файла. Совместный доступ к файлу. Частные отображения. Другие применения mmap.
Модуль 12. Домашнее задание - 2.5 ак.ч.
  • Модуль
  • Онлайн/Очно
Специфика разработки 64-битных приложений. Использование библиотеки ncurses. Программирование графического интерфейса с помощью GTK+.
Требования к участникам
Требуемая подготовка: Успешное окончание курса Программирование на языке C (Си) или эквивалентная подготовка.
Требуемая подготовка: Успешное окончание курса Linux. Уровень 1. Основы администрирования систем Debian, CentOS, Gentoo или эквивалентная подготовка.

Дипломы, сертификаты

Организация