Благодарим ви, че изпратихте вашето запитване! Един от членовете на нашия екип ще се свърже с вас скоро.
Благодарим ви, че направихте своята резервация! Един от членовете на нашия екип ще се свърже с вас скоро.
План на курса
Въведение
- Цели
- Кой си ти
- Фондация 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 Часа