Открыто

Linux (Ubuntu) . Уровень 2. Программирование в Linux на C [Специалист] [Игорь Седых] [2020]

Тема в разделе "Курсы по программированию", создана пользователем bizonnnnn, 1 дек 2020.

Основной список: 19 участников

Резервный список: 10 участников

  1. 1 дек 2020
    #1
    Топикстартер
    Топикстартер ЧКЧлен клуба
    Linux (Ubuntu). Уровень 2. Программирование в Linux на C

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

    Вы научитесь:

    • Понимать процесс сборки ПО и специфики компилятора C из состава GCC
    • Разрабатывать и использовать разделяемые библиотеки
    • Использовать функции файлового ввода-вывода
    • Использовать механизмы обеспечения многозадачности и межпроцессного взаимодействия
    • Использовать файловые и сетевые сокеты
    • Использовать механизм сигналов
    • Разбираться в различиях между процессами и потоками, использовать многопоточность и ее специфики
    • Создавать демонов, понимать различия между демонами и прикладным ПО
    • Понимать специфику консольного ввода-вывода и уметь ее использовать
    • Понимать специфику отображаемых в память файлов и уметь их использовать
    Модуль 1. Введение
    • Ознакомление со спецификой сборки ПО в GNU/Linux (Ubuntu)
    • Ознакомление с консольными текстовыми редакторами (vi,nano,mcedit)
    • Ручная и автоматическая сборка ПО (Makefile)
    • Модель Клиент-Интерфейс-Сервер (КИС)
    • Статическая сборка библиотек
    • Совместно используемые библиотеки
    • Работа с переменными окружения
    Модуль 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. Консольный ввод-вывод
    • Специфика разработки консольных приложений
    • Предотвращение перенаправления вывода
    • Управление терминалом
    • Сокрытие пароля пользователя при аутентификации
    Модуль 11. Отображаемая память
    • Отображение обычного файла
    • Совместный доступ к файлу
    • Частные отображения
    • Другие применения mmap
    Модуль 12. Домашнее задание
    • Специфика разработки 64-битных приложений
    • Использование библиотеки ncurses
    • Программирование графического интерфейса с помощью GTK+

    Скрытая ссылка
     
    Последнее редактирование модератором: 19 май 2021
  2. Последние события

    1. skladchik.com
      В складчине участвует 20 человек(а).
      18 фев 2026
    2. skladchik.com
      В складчине участвует 20 человек(а).
      16 фев 2026
    3. Petr152
      Petr152 не участвует в складчине.
      30 янв 2026
    4. skladchik.com
      В складчине участвует 20 человек(а).
      11 окт 2025

    Последние важные события

    1. skladchik.com
      Взнос в складчине составляет 0р.
      12 июн 2021
    2. skladchik.com
      Нужен организатор складчины.
      12 июн 2021
    3. skladchik.com
      Складчина открыта.
      12 июн 2021
    4. skladchik.com
      Взнос в складчине составляет 1 491р.
      24 май 2021
  3. Обсуждение
  4. 22 май 2021
    #2
    Britisher
    Britisher ЧКЧлен клуба
    Пока еще не все разбежались со складчины, в качестве рекламы языка -
    Не начинайте учиться кодингу с Python, начните с языка C , но как всегда случается на хабре, комментарии интереснее самой статьи.
     
  5. 22 май 2021
    #3
    Gannicus
    Gannicus ЧКЧлен клуба
    ещё бы курс от Игоря по Си, я нашёл только версию для школьников
     
  6. 13 июн 2021
    #4
    jennife
    jennife СкладчикСкладчик
    Как жалко, так ждала тему...
    Надеюсь получиться организовать
     
  7. 12 апр 2024
    #5
    По правой
    По правой ЧКЧлен клуба (А)
    Это хорошая тема. И посмотрите, может ещё есть на Складчике. Просто 20й.. год