Разработать эмулятор для языка оболочки ОС. Необходимо сделать работу эмулятора как можно более похожей на сеанс shell в UNIX-подобной ОС. Эмулятор должен запускаться из реальной командной строки, а файл с виртуальной файловой системой не нужно распаковывать у пользователя. Эмулятор принимает образ виртуальной файловой системы в виде файла формата zip. Эмулятор должен работать в режиме GUI. Конфигурационный файл имеет формат yaml и содержит: • Имя пользователя для показа в приглашении к вводу. • Путь к архиву виртуальной файловой системы. Необходимо поддержать в эмуляторе команды ls, cd и exit, а также следующие команды:
- echo.
- chmod.
- uname. Все функции эмулятора должны быть покрыты тестами, а для каждой из поддерживаемых команд необходимо написать 3 теста.
- Python 3: Основной язык программирования.
- Tkinter: Для создания GUI.
- PyYAML: Для обработки конфигурационного файла.
- Zipfile: Для работы с ZIP-архивами.
- ls — вывод содержимого папки.
- cd — переход в другую директорию.
- echo — вывод текста.
- chmod — изменение прав доступа к файлам.
- uname — вывод информации о системе.
- exit — завершение работы эмулятора.
-
Эмулятор командной строки:
• Реализован класс ShellEmulator, который обрабатывает команды и управляет виртуальной файловой системой.
• Команды вводятся пользователем в GUI и передаются на обработку.
-
GUI:
• Реализован класс ShellGUI с использованием Tkinter.
• Поля ввода и вывода команд отображаются в графическом интерфейсе.
• Результат выполнения команды выводится в текстовой области.
-
Файловая система:
• Временная файловая система создаётся в памяти при запуске программы и удаляется при её завершении.