Skip to content

grenition/conf-management

Repository files navigation

Mirea configaration management

Набор инструментов для управления конфигурациями, эмуляции командной строки, анализа зависимостей Git-репозитория и работы с учебными языками и виртуальными машинами.

Start

Для сборки и исполнения программы у вас должна быть установлена среда исполнения .net

Для исполнения программы перейдите в каталог, содержащий файл MireaConfigurationManagement.csproj и введите следующую команду

dotnet run MireaConfigurationManagement.csproj

Shell emulator

Команда для перехода к сценарию эмулятора CLI

scenario execute shell_emulator

Сценарий эмулирует следующие bash команды ls, cd, pwd, uptime, date

Git dependencies visualizer

Для корректной работы сценария, необходимо, чтобы был установлен MermaidCLI

GitDependenciesScenario – это сценарий, предназначенный для анализа и визуализации зависимостей Git-репозитория. Он выполняет слудующие операции

  1. Построение графа зависимостей коммитов в репозитории.
  2. Сохранение графа в формате Mermaid.
  3. Генерация изображения графа в формате PNG с использованием Mermaid CLI.
  4. Автоматическое открытие сгенерированного изображения для просмотра.

Команда для перехода к сценарию

scenario execute git_dependencies

Edu configuration language

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

Команда для перехода к сценарию

scenario execute conf_language

Пример входных данных

{
  /* Это комментарий к корневому объекту */
  "configName": "TestConfig", // Комментарий к полю configName
  "version": 1,
  "settings": {
    // Комментарий внутри settings
    "maxUsers": 100,
    "features": [
      "login",
      "dashboard",
      "reports"
    ]
  }
}

Выходной файл

table(
    {#
    Это комментарий к корневому объекту
    #}
    configName => 'TestConfig',
    {#
    Комментарий к полю configName
    #}
    version => 1,
    settings => table(
        {#
        Комментарий внутри settings
        #}
        maxUsers => 100,
        features => ['login'; 'dashboard'; 'reports']
    )
)

Edu assemler and interpretator

Ассемблер и интерпретатор для учебной виртуальной машины (УВМ). Система команд УВМ представлена далее.

Разработано читаемое представление команд УВМ. Ассемблер принимает на вход файл с текстом исходной программы, путь к которой задается из командной строки. Результатом работы ассемблера является бинарный файл в виде последовательности байт, путь к которому задается из командной строки. Дополнительный ключ командной строки задает путь к файлулогу, в котором хранятся ассемблированные инструкции в духе списков “ключ=значение”, как в приведенных далее тестах. Интерпретатор принимает на вход бинарный файл, выполняет команды УВМ и сохраняет в файле-результате значения из диапазона памяти УВМ. Диапазон также указывается из командной строки. Форматом для файла-лога и файла-результата является csv.

Команда для выполнения сценария ассемблера

scenario execute assembler

Команда для выполнения сценария интерпретатора необходима команда

scenario execute interpreter

Поддерживаемые команды

LOAD_CONST 889 2
READ_MEM 0 4 704
WRITE_MEM 1 0 688
BITREV 5 224

LOAD_CONST - Загружает константное значение в регистр. Формат: LOAD_CONST <значение> <адрес_регистра>

READ_MEM - Читает значение из памяти и загружает в регистр. Формат: READ_MEM <базовый_регистр> <целевой_регистр> <смещение>

WRITE_MEM - Записывает значение из регистра в память. Формат: WRITE_MEM <исходный_регистр> <базовый_регистр> <смещение>

BITREV - Выполняет побитовый реверс значения из памяти и сохраняет в регистр. BITREV <целевой_регистр> <адрес_памяти>

Пример программы, которая выполяет поэлементно операцию bitreverse() над вектором длины 5 и записывает результат в исходный вектор

LOAD_CONST 0 0
LOAD_CONST 10 1
LOAD_CONST 20 2
LOAD_CONST 30 3
LOAD_CONST 40 4
LOAD_CONST 50 5

WRITE_MEM 1 0 1000
WRITE_MEM 2 0 1001
WRITE_MEM 3 0 1002
WRITE_MEM 4 0 1003
WRITE_MEM 5 0 1004

BITREV 1 1000
BITREV 2 1001
BITREV 3 1002
BITREV 4 1003
BITREV 5 1004

WRITE_MEM 1 0 1000
WRITE_MEM 2 0 1001
WRITE_MEM 3 0 1002
WRITE_MEM 4 0 1003
WRITE_MEM 5 0 1004

About

MIREA Education projects - Configuration Management

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages