User Tools

Site Tools


sys:os

This is an old revision of the document!


Системное программное обеспечение (СПО), Операционные системы (ОС)

Данная страница предназначена для организации курсов

  • Системное программное обеспечение (СПО) для групп АСУ (ИРНИТУ),
  • Операционные системы (ОС) 2?41 ИГУ.

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

Лабы сдавать в свою телеграм-группу в виде ссылки на единый проект всех лабораторных работ на github или ему подобный сервис. Лабы можно делать в любом порядке, можно в виде единого проекта (по согласованию с преподавателем).

СПО

Telegram-канал - https://t.me/+zCYSOQqGpqdmNDVi (ИРНИТУ АСУ-18-1 и др., Welcome!)

Слайды курса OCW.MIT.EDU Computer Language Engineering! Все сразу в одном файле.

Лабораторные по СПО

  1. Исследование компилятора gcc, язык ассемблера. Связь процесса и операционной системы. Makefile, git.
    • Нужно написать программу на С, С++, PASCAL/FPC и др. компилируемом языке, странслировать его в Assembler с разными опциями оптимизации
       gcc -S -o <>.s <>.c -O[0123s]
    • Разобраться с одним из вариантов [оптимизации] ассемблерной программой (добавить комментарии в сгенерированный ассемберный код) - найти циклы, переменные и т.п.
  2. Программу усовершенствовать: добавить параллельный процесс средствами Linux/Windows. Синхронизация доступа к общему ресурсу (файл, канал, pipe, очередь, mmap, smmem). Язык С или другой, но на С проще, есть куча примеров.
  3. Конечный детерминированный автомат, распознающий регулярное выражение. Реализация автомата на языке программирования и/или при помощи flex или antlr4. Лучше запрограммировать два варианта (ничего сложного там нет):
    • Программу на любимом языке программирования;
    • Программу на flex + С или на подобной связке.
  4. Реализация контекстно-свободной грамматики (оператора языка). Тут как душа пожелает flex+bison, antlr4, ….
  5. Реализация генератор кода - текст на языке ассемблера или, что круче, на llvm (llvmlite/Python, и т.п.).

Оценка = количество сданных лаб, минимум 4 (1234, тройки мне нужны). 😉 Кому трудно - делайте вдвоем.

Для 4 и 5 лабораторных можно дописать мой компилятор oberon7 (на стадии обновления исходников). https://github.com/eugeneai/Java-oberon-compiler, например, реализовать операции и тип bool, cardinal, В конце readme есть примеры задач.

Доступ к Виртуальной машине

Из командной строки (powershell) Windows 8.0-11.0

 ssh stud@sys.iscnet.ru 

Пароль здесь не публикую по понятным причинам.

ОС

Telegram-канал - https://t.me/+zCYSOQqGpqdmNDVi (тот же, что у ИРНИТУ АСУ-18-1)

Лабораторные по ОС

Лабораторная 1 - исследование компилятора GCC

… та же, что лабы. 1 (С→ассемблер)+2(параллельные процессы) по СПО ;-) Постановка задачи

Лабораторная 2 - Установка Linux

… из командной строки:

  1. Создать виртуальную Linux x86_64-машину (не забываем включить в BIOS в CPU аппаратную поддержку виртуальных машин) с винчестером и CD, сетевая карта - bridge.
  2. Загрузить дистрибутив System Rescue CD **64!**, подсоединяем к виртуальной машине, грузим CD; на некоторых машинах может не запускаться, попробуйте версию 4.X.X.
  3. Устанавливаем Linux-ы: изучаем бутстраппинг (bootstrapping) операционной системы:
    1. (“начальный уровень”) Debian/Ubuntu при помощи debootstrap;
    2. (“средний уровень”) ставим Arch Linux (my favorite distribution) русский перевод (может быть неактуальным!) ;
    3. (“продвинутый уровень”) Gentoo/Funtoo;
    4. (“уровень 'guru'”) LHS;
    5. (“уровень 'dao'”) Arch загрузкой по сети DHCP/TFTP/NFS, можно и другие дистрибутивы использовать.
  4. Установить сервер sshd.
  5. Сделать пользователя eugeneai с паролем 123456 (как у Хиллари Клинтон на корпоративной почте ;-)); пробросьте порт маршрутизатора 7022 на порт 22 вашей виртуальной машины; попробую зайти, посмотреть все ли готово.
  6. Отчет - запишите ролик (VirtualBox, например, может это) как все было (тут надо продумать вариант записи консоли).

Лабораторная 3. Реализация скрипта bash

… в вашей установленной виртуальной машине (не обязательно, можно и в sys.iscnet.ru ее выполнить.

Методичка опубликована ЗДЕСЬ.

Лабораторная 4. Реализация скрипта на Windows PowerShell

… To Be DONE, TODO

  1. Изучаем по книге (покупаем за $0), презентация;
  2. Делаем задачу из лабы с bash, но средствами Windows (Imagemagick для Windows существует тоже, например);
    1. Как вариант можно по согласованию поставить самостоятельно задачку.

Лабораторная 5. Разработка сетевой инфраструктуры

…. для организации распределенной обработки информации. Совместный проект 2-5 человек. Потребуются ваши виртуальные машины.

  1. Изучить RabbitMQ.
  2. Придумать задачу, например потоковая обработка документов (считывание изображений сканированных документов, распознавание, разметка, сохранение в БД, поиск в БД); Крутой проект, конечно, но можно модель построить.
  3. Реализовать виртуальную сеть (zerotier, OpenVPN, wireguard) и инфраструктуру RabbitMQ.
  4. Реализовать на инфраструктуре - каждый берет себе этап обработки, пишет на любом языке, поддерживаемом RebbitMQ.

Как продвинутый вариант - можно зарегистрироваться у Microsoft на Asure и там зажигать год бесплатно на новой учетной записи.

Темы проектов

Темы находятся здесь

sys/os.1679623434.txt.gz · Last modified: 2023/03/24 10:03 by eugeneai