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

Confirmation of e-mail address is required!

The letter with the instruction has been sent to the e-mail address specified at the time of registration

Cookies

Cookies are disabled!

For the correct operation of the site, you must allow the use of cookies.

Cookies

Cookies are used to optimize the design and performance of our websites. By continuing to visit the website, you agree to use cookies.

Ok
Washington, D.C.
English
For kids
Programming
Music
Photography

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

  • Offline
Москва 
  • Group size
    up to 15 people
  • Duration
    Going on 7 hours 10 minutes
About the event
  • Level
    Medium
  • Language
    Russian
  • Age
    Any
7%
When subscribing to the newsletter, you receive a 7% discount on the first purchase
10%
Purchase this course and receive 10% discount on the next purchase
The discount is valid for  60 days  from the day of purchase
  • Course Description
  • What you will learn?
  • Program
  • Requirements for course participants
Course Description

Операционная система 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, МСВС и многие другие. 

Программа курса соответствует требованиям профессионального стандарта «Программист».

Курс «Linux (Ubuntu). Уровень 2. Программирование в Linux на С» входит в комплексные программы подготовки системных администраторов и специалистов по безопасности Linux. Обучаясь по комплексной программе, Вы получаете скидку до 15% сразу на несколько курсов, входящих в программу. Каждая комплексная программа обучения Linux готовит к международной профессиональной сертификации Linux Professional Institute (LPIC 1, 2, 3).

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

Diplomas, certificates

Organization

Address
  • 3-я Ямского Поля улица, 32
    Москва

Still have questions?

Start a chat with our support agent to get a quick response to all questions you might have