КС:2015:Проект:Shell — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Новая страница: «== Что это за проект == === Введение === [https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82…»)
 
(12)
Строка 1: Строка 1:
 +
== Метаданные проекта ==
 +
ID проекта: shell
 +
Ментор проекта: Паринов А.А.
 +
Аккаунты ментора в git-сервисах:
 +
* [http://GitHub.com GitHub.com]: aparinov
 +
* [http://GitLab.com GitLab.com]: aparinov
 +
* [http://BitBucket.org BitBucket.org]: aparinov
 
== Что это за проект ==
 
== Что это за проект ==
  
Строка 4: Строка 11:
  
 
[https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8 Интерпретатор командной строки] - программа, одна из основных частей операционной системы, обеспечивающая базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки.
 
[https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%BF%D1%80%D0%B5%D1%82%D0%B0%D1%82%D0%BE%D1%80_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8 Интерпретатор командной строки] - программа, одна из основных частей операционной системы, обеспечивающая базовые возможности управления компьютером посредством интерактивного ввода команд через интерфейс командной строки.
 +
Помимо обязательной части функционала, по согласованию с ментором, приветствуется расширенная функциональность и авторская реализация выполнения стандартных операций.
  
 
=== Что требуется ===
 
=== Что требуется ===
Строка 21: Строка 29:
 
== Критерии оценивания ==
 
== Критерии оценивания ==
  
=== Требования на зачет в конце 1-го модуля ===
+
=== Первая контрольная точка (24 октября 2015 г.) ===
 
+
Необходимо иметь приватный git-репозиторий на сайте [http://BitBucket.org BitBucket.org] с проектом, в который приглашен ментор [http://bitbucket.org/aparinov aparinov]. В репозитории должно быть:
Должен быть реализован интерпретатор командной строки, который поддерживает разбиение аргументов по пробельным символам, запуск в основном режиме.
+
* Файл README.md, который содержит описание проекта, написанный в расчета на "конечного пользователя". Это описание должно быть написано '''самостоятельно''', а не скопировано из Wiki, и отражать Ваше понимание того, что нужно сделать.
 +
* Реализацию TCP-сервера, который при запуске создает сокет, принимает хотя бы по одному соединению одновременно, и выводит в качестве отладочной информации (на стандартный поток вывода или стандартный поток ошибок) данные, который ему передает клиент (для тестирования можно использовать программу telnet).
 +
* Для тех, кто реализует проект на Си/C++, - проектный файл CMakeLists.txt.
 +
* Отображение двух панелей. Обе панели должны одновременно отображать директории и файлы файловой системы компьютера.
 +
* Должен быть реализован интерпретатор командной строки, который поддерживает разбиение аргументов по пробельным символам, запуск в основном режиме.
  
 
=== Итоговая оценка ===
 
=== Итоговая оценка ===

Версия 22:16, 20 октября 2015

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 4 балла. Реализован интерпретатор, который поддерживает разбиение аргументов по пробельным символам, поддерживает одиночные и двойные кавычки в аргументах, символ \, перенаправления и конвейеры.
  • +2 балла. Реализован фоновый режим средствами job control.
  • +2 балла. Реализовано редактирование вводимой командной строки.
  • +2 балла. Реализованы переменные окружения и подстановка программ с помощью `cmd`.