План на курса

Въведение

  • Цели
  • Кой си ти
  • Фондация Linux.
  • Linux Основно обучение
  • Програми за сертифициране и цифрови значки
  • Linux Разпределения
  • Платформи
  • Подготовка на вашата система
  • Използване и изтегляне на виртуална машина
  • Нещата се променят в Linux

Предварителни

  • Процедури
  • Стандарти и LSB

Как да работите в OSS проекти **

  • Преглед на това как да допринасяте правилно
  • Стойте близо до Mainline за сигурност и качество
  • Проучете и разберете ДНК на проекта
  • Разберете какво сърбите искате да Scratch
  • Идентифицирайте поддържащите и техните работни потоци и методи
  • Получете ранна информация и работете на открито
  • Допринасяйте с нарастващи битове, а не с големи изхвърляния на код
  • Оставете егото си пред вратата: не бъдете тънкокожи
  • Бъдете търпеливи, развивайте дългосрочни взаимоотношения, бъдете полезни

Компилатори

  • GCC
  • Други компилатори
  • Основни опции на gcc
  • Препроцесор
  • Интегрирани среди за разработка (IDE)
  • лаборатории

библиотеки

  • Статични библиотеки
  • Споделени библиотеки
  • Свързване към библиотеки
  • Зареждащ механизъм за динамично свързване
  • лаборатории

направи

  • Използване на make и Makefiles
  • Изграждане на големи проекти
  • По-сложни правила
  • Вградени правила
  • лаборатории

Контрол на източника

  • Контрол на източника
  • RCS и CVS
  • Подривна дейност
  • git
  • лаборатории

Отстраняване на грешки и Core Dumps

  • gdb
  • Какво представляват основните дъмп файлове?
  • Създаване на Core Dumps
  • Проучване на Core Dumps
  • лаборатории

Инструменти за отстраняване на грешки

  • Получаване на време
  • Профилиране и производителност
  • valgrind
  • лаборатории

Системни повиквания

  • Системни извиквания срещу библиотечни функции
  • Как се правят системни повиквания
  • Върнати стойности и номера на грешки
  • лаборатории

Памет Management и разпределение

  • Памет Management
  • Динамично разпределение
  • Настройка на malloc()
  • Заключване на страници
  • лаборатории

Файлове и файлови системи в Linux **

  • Файлове, директории и устройства
  • Виртуалната файлова система
  • Файловата система ext2/ext3
  • Журналиране на файлови системи
  • Файловата система ext4/
  • лаборатории

Файл I/O

  • UNIX файлов I/O
  • Отваряне и затваряне
  • Четене, писане и търсене
  • Позиционен и векторен I/O
  • Стандартна I/O библиотека
  • Поддръжка на големи файлове (LFS)
  • лаборатории

Разширени файлови операции

  • Стат функции
  • Функции на директорията
  • inotify
  • Картографиране на паметта
  • flock() и fcntl()
  • Създаване на временни файлове
  • Други системни повиквания
  • лаборатории

Процеси I

  • Какво е процес?
  • Граници на процеса
  • Групи процеси
  • Файловата система proc
  • InterProcess Communication Методи
  • лаборатории

Процеси II

  • Използване на system() за създаване на процес
  • Използване на fork() за създаване на процес
  • Използване на exec() за създаване на процес
  • Използване на clone()
  • Излизане
  • Конструктори и деструктори
  • Очакване
  • Демон процеси
  • лаборатории

Тръби и Fifos

  • Тръби и InterProcess Communication
  • popen() и pclose()
  • тръба()
  • Именувани канали (FIFO)
  • splice(), vmsplice() и tee()
  • лаборатории

Асинхронен I/O**

  • Какво е асинхронен I/O?
  • POSIX Asynchronous I/O API
  • Linux Изпълнение
  • лаборатории

Сигнали I

  • Какво представляват сигналите?
  • Налични сигнали
  • Изпращане на сигнали
  • Аларми, пауза и заспиване
  • Настройване на обработка на сигнали
  • Комплекти сигнали
  • sigaction()
  • лаборатории

Сигнали II

  • Повторно влизане и манипулатори на сигнали
  • Прескачащи и нелокални връщания
  • siginfo и sigqueue()
  • Сигнали в реално време
  • лаборатории

POSIX нишки I

  • Многопоточност под Linux
  • Основна структура на програмата
  • Създаване и унищожаване на нишки
  • Сигнали и нишки
  • Forking срещу Threading
  • лаборатории

POSIX нишки II

  • Безизходици и състезателни условия
  • Мутекс операции
  • Семафори
  • Фютекс
  • Условни операции
  • лаборатории

Networking и гнезда

  • Networking Слоеве
  • Какво представляват сокетите?
  • Поточни сокети
  • Дейтаграмни сокети
  • Сурови сокети
  • Подреждане на байтове
  • лаборатории

Адреси и хостове на сокети

  • Адресни структури на сокет
  • Преобразуване на IP адреси
  • Информация за хоста
  • лаборатории

Портове и протоколи за сокети

  • Информация за сервизен порт
  • Информация за протокола
  • лаборатории

Клиенти на сокети

  • Основна клиентска последователност
  • гнездо ()
  • свързвам ()
  • close() и shutdown()
  • UNIX клиент
  • Интернет клиент
  • лаборатории

Сървъри за сокети

  • Основна сървърна последователност
  • свързване ()
  • слушам()
  • приемам ()
  • UNIX сървър
  • Интернет сървър
  • лаборатории

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

  • пиша(), чета()
  • изпрати (), recv ()
  • sendto(), recvfrom()
  • sendmsg(), recvmsg()
  • изпрати файл ()
  • socketpair()
  • лаборатории

Опции за гнезда

  • Получаване и настройка на опциите на сокета
  • fcntl()
  • ioctl()
  • getsockopt() и setsockopt()
  • лаборатории

Netlink гнезда**

  • Какво представляват netlink сокетите?
  • Отваряне на netlink Socket
  • netlink Съобщения
  • лаборатории

Мултиплексиране на сокети и едновременни сървъри

  • Мултиплексиран и асинхронен I/O сокет
  • изберете ()
  • анкета()
  • pselect() и ppoll()
  • epoll
  • Задвижвани от сигнали и асинхронни I/O
  • Едновременни сървъри
  • лаборатории

Междупроцес Communication

  • Методи на IPC
  • POSIX IPC
  • System V IPC**
  • лаборатории

Споделена памет

  • Какво е споделена памет?
  • POSIX споделена памет
  • Споделена памет на System V**
  • лаборатории

Семафори

  • Какво е семафор?
  • POSIX семафори
  • Семафори на System V**
  • лаборатории

Опашки за съобщения

  • Какво представляват опашките за съобщения?
  • POSIX опашки от съобщения
  • Опашки от съобщения на System V**
  • лаборатории

Изисквания

Този курс е за опитни разработчици. Студентите трябва да владеят програмиране на C и да са запознати с основните Linux помощни програми и текстови редактори.

Публика

Този курс е за опитни разработчици. Студентите трябва да владеят програмиране на C и да са запознати с основните Linux помощни програми и текстови редактори.

Ниво на опит: средно ниво

  28 Hours
 

Брой участници


Започва

Свършва


Dates are subject to availability and take place between 09:30 and 16:30.
Open Training Courses require 5+ participants.

Свързани Kурсове

Свързани Kатегории