Системное программирование linux курсы

Содержание
  1. Программирование в Linux на C/C++
  2. 1. Введение
  3. Ознакомление со спецификой сборки ПО в GNU/Linux
  4. Ознакомление с консольными текстовыми редакторами
  5. Ручная и автоматическая сборка ПО
  6. Модель Клиент-Интерфейс-Сервер (КИС)
  7. Статическая сборка библиотек
  8. Совместно используемые библиотеки
  9. Работа с переменными окружения
  10. 2. Низкоуровневый ввод-вывод и файловые операции
  11. Обзор механизмов ввода-вывода в Linux
  12. Файловые дескрипторы
  13. Системные вызовы: open, close, write, read и lseek
  14. Типы файлов
  15. Индексные дескрипторы и жесткие ссылки
  16. Права доступа к файлу
  17. Файловая система proc
  18. Два способа прочесть содержимое директории
  19. Разреженные файлы
  20. Блокировка областей файла
  21. 3. Межпроцессное взаимодействие
  22. Способы межпроцессного взаимодействия: каналы, сообщения, разделяемая память и семафоры
  23. Неименованные каналы
  24. Именованные каналы
  25. Сообщения
  26. Разделяемая память
  27. Семафоры
  28. 4. Сокеты
  29. Сокеты в файловом пространстве имен (UNIX-сокеты)
  30. Парные сокеты
  31. Сетевые сокеты
  32. 5. Сигналы
  33. Знакомство с сигналами
  34. Отличие сигналов от других механизмов межпроцессного взаимодействия
  35. Специфика обработки сигналов
  36. 6. Процессы
  37. Клонирование процессов — fork()
  38. Замена исполняемого процесса — exec()
  39. Зомби — причины возникновения и способы их устранения
  40. 7. Потоки
  41. Потоки и процессы
  42. Специфика построения многопоточных приложений
  43. Досрочное завершение потока
  44. 8. Потоки (продолжение)
  45. Создание обработчика завершения потока
  46. Средства синхронизации потоков
  47. Атрибуты потоков
  48. 9. Демоны (службы)
  49. Отличие демона от консольной утилиты
  50. Специфика разработки демонов
  51. Создание демона использующего сетевые сокеты
  52. 10. Консольный ввод-вывод
  53. Предотвращение перенаправления вывода
  54. Управление терминалом
  55. Сокрытие пароля пользователя при аутентификации
  56. 11. Отображаемая памят
  57. Отображение обычного файла
  58. Совместный доступ к файлу
  59. Частные отображения
  60. Другие применения mmap
  61. Операционные системы семейства UNIX. Системное программирование
  62. О курсе
  63. Формат
  64. Информационные ресурсы
  65. Требования
  66. Программа курса
  67. Результаты обучения
  68. Направления подготовки
  69. Основы программирования для Linux
  70. О курсе
  71. Для кого этот курс
  72. Начальные требования

Программирование в Linux на C/C++

• Приобретаемые навыки:
• Понимание процесса сборки ПО и специфики компилятора C/C++ из состава GCC
• Умение разрабатывать и использовать разделяемые библиотеки
• Навыки по использованию функций файлового ввода-вывода
• Понимание механизмов обеспечения многозадачности и межпроцессного
взаимодействия и умение их использовать
• Навыки по использованию файловых и сетевых сокетов
• Понимание механизма сигналов и навыки по его использованию
• Знание различий между процессами и потоками, использование многопоточности
и ее специфики
• Навыки по созданию демонов, понимание различий между демонами и
прикладным ПО
• Понимание специфики консольного ввода-вывода и умение ее использовать
• Понимание специфики отображаемых в память файлов и умение их использовать

Дистанционно — Формат обучения в он-лайн классе. Вы можете подключиться к занятиям из любой точки мира по сети Интернет. Процесс выстроен по типу очного обучения. Вы присутствуете на вебинаре, работаете с удаленными/виртуальными лабораториями и консультируетесь с преподавателем в режиме он-лайн. Подробнее об он-лайн обучении.

Включено в курс
Документы об обучении

Удостоверение о повышении квалификации

Целевая аудитория

Курс рассчитан на программистов, окончивших курс «Программирование на языке C/C+»
или имеющих эквивалентную подготовку.

Программа

1. Введение

Ознакомление со спецификой сборки ПО в GNU/Linux

Ознакомление с консольными текстовыми редакторами

Ручная и автоматическая сборка ПО

Модель Клиент-Интерфейс-Сервер (КИС)

Статическая сборка библиотек

Совместно используемые библиотеки

Работа с переменными окружения

2. Низкоуровневый ввод-вывод и файловые операции

Обзор механизмов ввода-вывода в Linux

Файловые дескрипторы

Системные вызовы: open, close, write, read и lseek

Типы файлов

Индексные дескрипторы и жесткие ссылки

Права доступа к файлу

Файловая система proc

Два способа прочесть содержимое директории

Разреженные файлы

Блокировка областей файла

3. Межпроцессное взаимодействие

Способы межпроцессного взаимодействия: каналы, сообщения, разделяемая память и семафоры

Неименованные каналы

Именованные каналы

Сообщения

Разделяемая память

Семафоры

4. Сокеты

Сокеты в файловом пространстве имен (UNIX-сокеты)

Парные сокеты

Сетевые сокеты

5. Сигналы

Знакомство с сигналами

Отличие сигналов от других механизмов межпроцессного взаимодействия

Специфика обработки сигналов

6. Процессы

Клонирование процессов — fork()

Замена исполняемого процесса — exec()

Зомби — причины возникновения и способы их устранения

7. Потоки

Потоки и процессы

Специфика построения многопоточных приложений

Досрочное завершение потока

8. Потоки (продолжение)

Создание обработчика завершения потока

Средства синхронизации потоков

Атрибуты потоков

9. Демоны (службы)

Отличие демона от консольной утилиты

Специфика разработки демонов

Создание демона использующего сетевые сокеты

10. Консольный ввод-вывод

Предотвращение перенаправления вывода

Управление терминалом

Сокрытие пароля пользователя при аутентификации

11. Отображаемая памят

Отображение обычного файла

Совместный доступ к файлу

Частные отображения

Другие применения mmap

Преподаватели

Информационные технологии, интернет, телеком, Программирование, Разработка, Системная интеграция, CTO, CIO, Директор по IT,
Тесты, экзамен: Certified Ethical Hacker, EC-Concil, LPIC-2 Certification, Linux Professional Institute, LPIC-1 Certification, Linux Professional Institute Опыт работы
Академия Информационных Систем (Июнь 2015 — настоящее время) — Преподаватель-эксперт
Проведение курсов в интересах работодателя. Автор 14 курсов по направлениям системного администрирования (Linux,FreeBSD), информационной безопасности, программирования под Linux (прикладная разработка, разработка драйверов устройств), экономической безопасности (противодействие корпоративному мошенничеству).
АО ГК «Новые торговые системы» (Январь 2014 — Март 2015) — CIO
Успешно выполнял роль антикризисного ИТ-директора для крупного российского ритейлера (7 тысяч сотрудников). Это позволило повысить качество сервиса ИТ-подразделений (ITSM) и оптимизировать затраты на 20%. Совместно с дирекцией безопасности бизнеса холдинга автоматизировал выявление хищений, что за первые же два месяца позволило спасти более 5 000 000 рублей (благодарности и рекомендации прилагаются).
УЦ Специалист при МГТУ им Баумана (Июль 2008 — Август 2013) — Преподаватель-эксперт
Разработал несколько линеек курсов для обучения ИТ-специалистов по информационной безопасности, разработке программного обеспечения, UNIX-системам (Linux/FreeBSD). Курсы включали как системное администрирование (от новичков до профессионалов), так и программирование в Linux (прикладное и системное). Курсы предоставлялись на базе УЦ Специалист Образование
Российский государственный технологический университет имени К.Э. Циолковского, Москва — (Высшее)
Производственный менеджмент, Экономика и управление на предприятии (по отраслям)

Читайте также:  1с настройка hasp linux

Источник

Операционные системы семейства UNIX. Системное программирование

Слушатели познакомятся с программными и структурными компонентами UNIX-подобных операционных систем, а также аппаратом системных вызовов и синтаксисом командного языка программирования, особенностями системного программирования на процедурном и командном языках на разнообразных примерах реализации. Научатся разрабатывать системные и прикладные программные приложения (продукты) с учетом возможностей операционной системы.

О курсе

Основной целью освоения дисциплины «Операционные системы семейства UNIX. Системное программирование» является обучение слушателей принципам организации современных вычислительных систем.

Основу курса составляют теоретические и практические материалы, связанные с построением современных операционных систем, концепцией и алгоритмами управления локальными и распределенными ресурсами. Изучаются варианты реализации многозадачной обработки информации (средства синхронизации, транзакции, механизмы репликации), средства файловой системы и системы управления вводом-выводом, реализации управления оперативной памятью, обработки прерываний и подходы к обеспечению безопасности информации.

Рассматриваются инструментальные средства разработки прикладных и системных программных приложений (системные вызовы и инструкции командного языка программирования), обсуждаются различные аспекты их использования.

Слушатели познакомятся с материалом, позволяющим эффективно использовать возможности ОС при проектировании самостоятельных прикладных программных приложений, получат не только представление о состоянии и возможностях современных ОС, но и приобретут навыки разработки системных приложений.

Формат

Курс состоит из 16 недель. Каждая неделя содержит видеолекции, тестовые задания и материалы для самостоятельного изучения. В открытом доступе вы можете ознакомиться с видеолекциями первых двух недель, остальные материалы станут доступны после оплаты курса.

Информационные ресурсы

Для успешного освоения дисциплины слушатель может использовать следующие программные средства: операционные системы FREE BSD, Linux-подобные, Solaris, AIX, MAC или др. UNIX-подобные ОС. Допускается в качестве альтернативы использование виртуальных UNIX/LINUX машин.

Предварительно, перед процессом обучения, предлагается познакомиться с аппаратом системных вызовов и утилитами файловой системы UNIX-подобных ОС.

Читайте также:  Master pdf editor linux код активации

Базовые учебники

  1. Стивен Р.У., Раго С.А. UNIX. Профессиональное программирование. 3-е издание. – СПб.: Символ-Плюс, 2010 г.
  2. Чан Т. Системное программирование на С++ для UNIX. – Киев: Издательская группа BHV, 1999 г.
  3. Тейнсли Д. Linux и UNIX: программирование в shell. Руководство разработчика. СПб.: БХВ-Петербург, 2004г. (http://litresp.com/kniga/ru/%D0%A2/tejnsli-devid/linux-i-unix-programmirovanie-v-shell-rukovodstvo-razrabotchika дата обращения 20.01.2021)

Основная литература

  1. Моли Б. UNIX/LINUX: Теория и практика программирования. — М: КУДИЦ_ОБРАЗ, 2004 г.
  2. Роббинс А. LINUX: программирование в примерах. – М: КУДИЦ_ОБРАЗ, 2005 г.
  3. Истратов А.Ю. Межпроцессное взаимодействие на уровне «клиент-сервер» в ОС UNIX (Учебное пособие), М.: РГУИТиП, 2006 г.

Дополнительная литература (по необходимости)

Робачевский А., Немнюгин С., Стесик О. Операционная система UNIX. 2-е изд. СПб.: БХВ-Петербург, 2005 г.

Требования

Для освоения курса слушатели должны владеть навыками программирования на языке С/С++, разбираться в компонентах оборудования вычислительной системы и знать основы дискретной математики.

Программа курса

1. Понятие «Операционная система»

2. Процессы и потоки в ОС UNIX

3 Системные вызовы и программы (утилиты) управления процессами в ОС UNIX. Примеры реализаций.

4. Файлы и файловые системы в ОС UNIX

5. Поддержка и реализация файлов в ОС UNIX. Системные вызовы и утилиты для получения информации о файле.

6. Системные вызовы работы с файлами в ОС UNIX. Примеры реализаций.

7. Управление устройствами ввода-вывода (УВВ) в ОС UNIX. Системные вызовы для ввода-вывода информации.

8. Межпроцессный (программный) канал в ОС UNIX. Примеры реализации.

9. Обработка прерываний в ОС UNIX

10. Системные вызовы и программы (утилиты) обработки прерываний в ОС UNIX. Примеры реализаций.

11. Примеры многозадачных процедурно-программных реализаций с обработкой прерываний в ОС UNIX.

12. Распределение и перераспределение оперативной памяти в ОС UNIX. Программные средства и системные вызовы работы с оперативной памятью.

Читайте также:  Вывод сетевых интерфейсов linux

13. Интерпретатор команд shell в ОС UNIX. Функции интерпретатора. Встроенные и внешние команды (утилиты) интерпретатора shell.

14. Понятие shell переменной. Специальные shell переменные. Конструкции командного языка программирования expr, let, test. Примеры реализаций.

15. Конструкции командного языка программирования while, until, for, if, case, trap. Примеры реализаций.

16. Примеры реализаций многозадачных программных приложений в shell.

Результаты обучения

Обладает навыками проектирования системных приложений и организации межпрограммного (межсетевого) обмена информацией.

Решает задачи взаимодействия между процессами ОС и задачи обработки прерываний. Умеет выбирать программные средства (системные вызовы, программные утилиты) для решения поставленной задачи.

Использует программные утилиты и системные вызовы ОС для проверки оборудования вычислительной системы и компонентов ОС.

Решает задачи разработки системных приложений на процедурном и командном языках программирования.

Демонстрирует знания компонент операционной системы.

Умеет объяснить принципы и алгоритмы работы компонент операционной системы и умеет работать в командной строке ОС.

Направления подготовки

  • Русский язык курса
  • 16 недель длительность курса
  • от 9 до 10 часов в неделю понадобится для освоения
  • 4 зачётных единицы для зачета в своем вузе

Источник

Основы программирования для Linux

Курс нацелен на изучение основ программирования в операционной сиcтеме Linux. Он затрагивает базовый инструментарий и все основные компоненты: управление процессами, межпроцессные взаимодействия, сетевые возможности.

О курсе

Операционная система Linux является одной из наиболее распространенных и популярных. Она работает и в серверах и на настольных компьютерах, в различных устройствах (телевизорах, точках доступа, электронных книгах, системах хранения данных. ), а также в мобильных телефонах, планшетах и умных часах, обеспечивая системную основу для Android, Tizen, Sailfish. Кроме того, Linux обладает открытым исходным кодом, что делает ее незаменимой для целей обучения, ведь любой может посмотреть на детали реализации системных механизмов и интерфейсов и повысить свой уровень разбирая конкретные технические решения профессиональных разработчиков. Немаловажной является POSIX-совместимость Linux, что позволяет автоматически распространять умения программировать на другие ОС, например, Mac OS X.

В курсе будут рассмотрены базовые инструменты написания программ для Linux, а также затронуты основные прикладные интерфейсы, касающиеся управления процессами, работы с файловой системой, организации межпроцессного и сетевого взаимодействия. Также будет уделено внимание многим аспектам разработки программ, таким как: использование динамических библиотек, организация многопоточных вычислений и разделяемой памяти, получение расширенной информации о системе. Стоит отметить, что в этом курсе сознательно не затрагиваются вопросы программирования графического интерфейса пользователя, которые являются предметом рассмотрения отдельных курсов.

После окончания курса вы сможете уверенно разрабатывать несложные прикладные и серверные приложения, организовывать обработку данных на компьютерах с ОС Linux.

Для кого этот курс

Интересующиеся программированием, обладающие уверенными навыками работы в Linux в качестве пользователя и знакомые с основами программирования на С/С++

Начальные требования

Для комфортного восприятия материала курса, необходимо обладать пониманием того, как работать в Linux на уровне пользователя, а также уверенными навыками программирования на языке С или C++. В этом вам могут помочь онлайн-курсы:

Источник

Оцените статью
Adblock
detector