Linux System Programming
Въведение
Част 1 - Основи на Линукс
Какво е системно програмиране?
Работна среда
Отдалечен достъп
Как да получите помощ в Линукс?
Файлова система
Трансфер на файлове
Процеси в Линукс
Потребители и групи
Файлови разрешения
Управление на потребители и групи
Стандартни потоци
Пренасочване и тръбопроводи
Текстовият редактор Nano
Упражнение
Част 2 – Програмиране
Процесът компилиране
Компилатор GCC
Изходен програмен код
Компилирайте в асемблер
Компилирайте до обектен файл
Компилирайте до изпълнима програма
Стартирайте изпълнимата програма
Библиотеки
GNU архиватор
Създаване на обектен файл
Създайте статична библиотека и свържете статично
Програма за намиране сумата на числа
Дебъгване с GDB
Упражнение
Част 3 – Файлова система и файлове
Файловете в Linux
Файлови системи и именовани пространства
Работа с файлове в C
Буферирани срещу небуферирани потоци
Основи при работа с файлове
Отваряне и затваряне на файл
Четене на съдържанието на файл
Четене и отпечатване на файл
Четене и писане на файл
Запис на изречения във файл
Търсене в файлове и откъслечни файлове
Направете файл с дупка
Заключване на файлове
Заключи и пиши там
Упражнение
Част 4 – Процеси
Процеси в Linux
Управление на процесите
Програмиране на процесите в C
Изпълнение на команда
Показване на изходния код на файла
Стартиране на дъщерен процес
Записване на изречения във файл
Изчакване и прекратяване на дъщерен процес
Изпълнение и отпечатване на състоянието
Зомбита и проста обработка на сигнали
Игра със зомбита
Упражнение
Част 5 – Комуникация между процеси
IPC Методи
Сигнали
Най-важните сигнали
Управление на сигналите
Обработка на сигнал
Изчакване на сигнали
Разглеждане на сигнали
Показване на информация за сигналите
Reentrancy
Анонимни и наименувани тръби
Работа с тръби
Използване на анонимни тръби
Чат
Упражнение
Част 6 - Синхронизация на комуникацията между процесите
Опашка за съобщения
Съобщенията в C
Определяне на общите данни
Сървър за съобщения
Клиент за съобщения
Споделена памет
Споделена памет в C
Определяне на общите данни
Сървър за памет
Клиент за памет
Семафори
Използване на семафори
Определяне на общите данни
Семафор Сървър
Семафор Клиент
Упражнение
Част 7 – Сокети
Сокетите в Линукс
Работа със сокети в C
Използване на Unix сокети
Сокет файлов сървър
Сокет файлов клиент
Двойка сокети
Пример за двойка сокети
Мрежови сокети
Мрежов сокет файлов сървър
Мрежов сокет файлов клиент
Упражнение
Част 8 – Нишки
Threads
libpthreads (POSIX threads)
Thread management functions – basics
Creating threads
Finishing threads
Joining threads
Joining two Threads
Joining two Threads (2)
Thread management functions - cancellations
Thread management functions – types
Thread cancellations - basic scenario
Thread cancellability STATE
Thread cancellability type
Exercise
Part 9 - Threads (synchronization)
Exiting the Threads
Managing thread exit with C
Clean thread exit
Why is synchronization needed?
Synchronization mechanisms
Mutexes
Mutex example
Typical use of mutexes
Problems with threads - race conditions
Problems with threads - thread safe code
Problems with threads - mutex deadlock
Creating and destroying mutexes
Locking and unlocking mutexes
Mutex example
Synchronizing with semaphores
Semaphore Threads
Exercise
Part 10 – Daemons
What are Daemons?
Our chat Daemon
Daemonize
Singlas handling
Set listening Socket
Connections handling
Tidy Up
Startup arguments
Powered by
GitBook
Част 7 – Сокети
Част 7 – Сокети
Сокетите в Линукс
Работа със сокети в C
Използване на Unix сокети
Сокет файлов сървър
Сокет файлов клиент
Двойка сокети
Пример за двойка сокети
Мрежови сокети
Мрежов сокет файлов сървър
Мрежов сокет файлов клиент
Упражнение
results matching "
"
No results matching "
"