Тема 1. Язык программирования bash
1. Оператор case. Синтаксис и примеры использования.
2. Команда test: назначение, синтаксис, примеры.
3. Оператор if: назначение, синтаксис, примеры. Полная и неполная развилки.
4. Циклы в сценариях: оператор for. Назначение, синтаксис, примеры. Использование команды seq.
5. Циклические конструкции whileи until. Назначение, синтаксис, примеры. Отличие между циклами whileи until.
6. Использование C-подобного синтаксиса в циклических конструкциях. Особенности C-подобного синтаксиса. Операторы breakи continue. Примеры.
7. Одномерные массивы в bash, их особенности. Способы объявления массивов, различные виды обращений (к элементу, к длине, количеству и пр.) Примеры.
8. Определение функций в bash. Работа с файлом функций. Примеры.
Тема 2. Внутреннее устройство Linux
9. Понятие о ядре ОС Linux. Общая структура ОС Linux.
10. Драйверы устройств: типы и назначение.Взаимодействие аппаратной части компьютера и приложений.
11. Процесс, программа, приложение. Многопоточные и многозадачные приложения. Режим ядра и режим пользователя. Схема «процесс-ядро». Потоки ядра, их особенности.
12. Выполнение процессов, облегченные процессы. Понятие и назначение виртуальной памяти. Область кода, область данных, стек, куча.
13. Адресное пространство процесса, таблица процессов, дескриптор процесса. Системные и пользовательские процессы. Демоны. Команда ps.
14. Дескриптор процесса: идентификатор процесса и родительского процесса, UID, EUID, GID, EGID. Команды topи pstree.
15. Планировщик заданий. Приоритет и фактор уступчивости, их связь. Команды nice и renice.
16. Жизненный цикл процессов. Характеристика состояний процесса и перехода в другие состояния.
17. Сигналы: назначение, виды, примеры. Команда kill.
18. Процесс загрузки Linux. Загрузчики LILO и GRUB. Системы инициализации.
19. Демоны и супердемоны: inetd (xinetd), init, cron, atd, sshd и др.
20. Файловые системы Linux. Виртуальные файловые системыprocfs и sysfs.
21. Архитектура взаимодействия ОС с файловой системой.
22. Общая характеристика диск-ориентированных файловых систем. Журналируемые файловые системы. Стратегии журналирования. Понятие экстента.
23. Структура файловой системы ext2fs. Относительная блочная адресация. Структура каталога.
24. Характеристика файловых систем JFS2, XFS, ext3fs/ext3fs/ext4fs, ReiserFS.
Тема 3. Прикладное программное обеспечение
25. Понятие программного обеспечения (ПО). Общая характеристика системного, прикладного и инструментального ПО. Примеры программных продуктов.
26. Системное ПО: характеристика и назначение базового ПО.
27. Системное ПО: операционные системы. Назначение, классификация, особенности. Примеры.
28. Системное ПО: функции операционных оболочек, файловых систем, драйверов, утилит, тестирующих программ. Примеры.
29. Системное ПО: сравнительная характеристика ОС семейства Windowsи Linux (на примере Windows7 и какого-либо современного дистрибутива Linux).
30. Прикладное ПО: назначение и классификация. Понятие пакета прикладных программ (ППП). Примеры ППП общего и специального назначения.
31. Интегрированные ППП. Полносвязные и объектносвязные ППП. Виды использования общих ресурсов. Характеристика технологий OLE и ActiveX.
32. Необходимость в разработке программного обеспечения. Этапы подготовки и решения прикладных задач на компьютере.
33. Инструментальные средства программирования и их состав. Язык программирования, система программирования. Понятие транслятора, компилятора интерпретатора. Редактор связей, объектный код.
34. Языки программирования высокого уровня: алфавит, синтаксис, семантика. Отличие от языков низкого уровня. Примеры и общая характеристика ЯП высокого уровня.
35. Языки программирования высокого уровня: процедурные, объектно-ориентированные и декларативные языки. Понятие команды, функции, процедуры. Основные понятия ООЯП: объект, класс, наследование, инкапсуляция, полиморфизм.
36. CASE-технологии: назначение, особенности, примеры.
37. Программа, основные характеристики. Показатели качества программы (мобильность, надежность и др.)
38. Оценка качества процессов создания ПО: стандарты серии ISO 9000, CMM.
39. Оценка качества готовых программных продуктов: функциональная пригодность, корректность и т.д.
40. Жизненный цикл (ЖЦ) ПО. Каскадная, итерационная и спиральная модели ЖЦ.
41. Понятие архитектуры ПО. Программы, пакеты программ, программные системы, программные комплексы.
42. Модели проектирования программных продуктов: DFD, ERD, STD, SADT. Примеры диаграмм.
43. Надежность ПО. Понятие повреждения, восстановления, отказа.
44. Количественные характеристики надежности ПО. Простейший поток отказов. Понятие MTBF и интенсивность отказов, их связь.
45. Криптографические средства защиты ПО. Понятие системы шифрования, шифра, ключа. Симметричные и асимметричные системы шифрования.
46. Шифрование с открытым и закрытым ключами. Электронная подпись: назначение и технология использования. Электронные сертификаты. Сертификационные центры.
47. Правовые методы защиты ПО: понятие лицензии, виды лицензионных соглашений.
48. Правовые методы защиты ПО: понятие авторского права, права на интеллектуальную собственность, их особенности.