КС:2015:Проект:Shell

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

Метаданные проекта

ID проекта: shell Ментор проекта: Паринов А.А. Аккаунты ментора в git-сервисах:

Что это за проект

Введение

Интерпретатор командной строки - программа, одна из основных частей операционной системы, обеспечивающая базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки. Помимо обязательной части функционала, по согласованию с ментором, приветствуется расширенная функциональность и авторская реализация выполнения стандартных операций.

Что требуется

Реализовать интерпретатор командной строки, который будет поддерживать обработку команд в стиле bash.

Чему вы научитесь

1. Освоите библиотеку терминального ввода-вывода (ncurses)

2. Освоите управление заданиями POSIX

Начальные требования

1. Умение разрабатывать программы на C или C++

Критерии оценивания

Первая контрольная точка (24 октября 2015 г.)

Необходимо иметь приватный git-репозиторий на сайте BitBucket.org с проектом, в который приглашен ментор aparinov. В репозитории должно быть:

  • Файл README.md, который содержит описание проекта, написанный в расчета на "конечного пользователя". Это описание должно быть написано самостоятельно, а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать.
  • Для тех, кто реализует проект на Си/C++, - проектный файл CMakeLists.txt.
  • Отображение двух панелей.
  • Должен быть реализован интерпретатор командной строки, который поддерживает разбиение аргументов по пробельным символам, запуск в основном режиме.
  • В левая панель должна поддерживать набор команд разделенных пробелами. Правая панель должна отображать в столбик отображать введенные команды.

Вторая контрольная точка (22 ноября 2015 г.)

  • Реализован интерпретатор, который поддерживает разбиение аргументов по пробельным символам, перенаправления и конвейеры.

Итоговая оценка

  • 4 балла. Реализован интерпретатор, который поддерживает разбиение аргументов по пробельным символам и исполнение команд из директории /, навигация по файловой системе.
  • +2 балла. Реализована поддержка одиночных и двойных кавычек в аргументах, символ /usr/bin/, перенаправления и конвейеры.
  • +2 балла. Реализовано редактирование вводимой командной строки и дополнение команды cd с помощью клавиши TAB
  • +2 балла. Реализованы запуск исполнение в параллельном процессе.