ПО, ЭВМ и АСУ из Таможенного Союза

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Проект "Виртуальные машины" » Для чего используют виртуальные вычислительные машины


Для чего используют виртуальные вычислительные машины

Сообщений 1 страница 13 из 13

1

1) тестирование и отладка приложений с возможностью не устанавливать на реальную систему.
  (изоляция)

2) автоматизация задач по администрированию систем.
(унификация, стандартизация)
Видимо имеется в виду что-то вроде докера, где архитектура эмулируемой машины подгоняется под какой-то типовой шаблон (возможно всего один, или небольшое количество), и приложения затем создаются, распространяются и используются в уже настроенном под такую среду состоянии ("контейнере").
Я не проводил аналогии между контейнерными перевозками в логистике грузов в материальном мире и контейнерами докера, может быть имеет смысл?

3) размещение образов дисков на общедоступных серверах для использования их другими пользователями
  (публикация, размножение (тиражирование, копирование, дублицирование ПО), распространение ПО (диссеминация) )

4) обслуживание и развёртывание вебсайтов и приложений в облачной среде
  (унификация, стандартизация, изоляция)

5) использование готовых приложений, предназначенных для конкретной платформы.
  (эмуляция)
Готовое приложение заработает, если сойдутся все компоненты эмулируемой платформы. Набор команд, архитектура, вызовы и соглашения операционной системы, используемые протоколы.
В этом случае, очевидно, виртуальная машина должна быть похожа на эту платформу, то есть, используемые двоичные коды команд должны быть такими же, как в имитируемой платформе, а не такими, как захотелось автору виртуальной машины по его произволу.

6) разработка и тестирование на различных платформах без необходимости их покупки (актуально для Эльбрусов)
  (эмуляция, экономия, )

7) Подготовка приложений для других операционных систем, например сборка на сервер под Linux для смартфона на Android
  (эмуляция, кросс-компиляция).

8) Использование специализированных вычислительных платформ для более эффективной обработки данных.
  (эмуляция, скорость/быстродействие, кросс-компиляция)
Cобирать ПО для слабой машины типа роутера или тому подобной слабомощной коробочки на мощном сервере сборки. Виртуальная машина позволяет использовать более мощное железо.

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

Чего мы здесь (девяти пунктах от ChatGPT) не видим? Доказательств корректности ПО. Как будто бы нет связи между машинами Поста и виртуальными машинами для архитектуры Intel 64. А она есть, только почему-то про неё не пишут.

Ещё виртуальные машины могут использоваться при описании семантики (прагматики?) языков программирования. Например при описании языка Синхро была описана и необходимая виртуальная машина (так как язык Синхро параллельный, то и машина к нему нужна соответствующая, многопроцессорная).

Виртуальная машина есть в тексте стандарта UEFI. Там она решает задачи унификации и стандартизации (кода, который можно писать в загрузчиках, которые следующая после UEFI стадия запуска вычислительной системы).

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

Отредактировано Лис (2023-02-24 00:36:11)

0

2

Ещё виртуальные машины используют как бэкенды для большого количества компиляторов. Пример - LLVM.
Создание такой (кириллической) платформы для русскоязычных языков дало бы огромное ускорение (буст) для появления широкого спектра компиляторов, например того же Солуни.

Суть в том, чтобы при разработке платформы создать:
1) российскую терминологию в кириллической записи (переназвать все части процессоров, все мнемоники инструкций)
  где требуется создание терминологии, там нужно создание словаря доступного для редактирования многими пользователям, как хотел БудДен.
  Но у БудДена в движке не предусматривалось документирования соглашений.
  А в git, например, есть процесс сливания двух разных веток в одну, который может отразить достижение соглашения между двумя пользователями.
2) документацию
  Достаточно ли тут будет DoxyGen? Нужна ли Wiki?
  мне кажется, что и того и другого (как их, кстати, проинтегрировать между собой?) не будет достаточно.
  И даже если форумы и Q&A сайт прикрутить - не хватит для создания по-настоящему хорошей документации.
3) спецификацию/стандарт
  всё-таки документация документацией, но то как блоги, не имеет нормативной силы. Может быть даже юридической, если звёзды сойдутся.
4) и только в самом финале несколько реализаций (для тех или иных окружений, ну, там Linux, ReactOS, FreeDOS, Cosmos OS)

МихалНик, скажи своё ехидное слово (например на тему "сначала сделайте ХОТЬ ЧТО НИБУДЬ").

Ранее по теме:
2022-06-17, Зачем делать виртуальную машину?

Отредактировано Лис (2023-02-24 00:49:58)

0

3

Лис написал(а):

Достаточно ли тут будет DoxyGen?

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

0

4

Евгений написал(а):

Лучше выбрать другой инструмент.

Написать.

В данном случае лучше создать специализированный web-движок, чтобы он позволял команды добавлять. Думаю над этим.

0

5

Лис написал(а):

Написать.

Тоже пришла подобная мысль. Возможно немного в другом контексте. Написать генератор   статических HTML страниц для документирования кода на русифицированном С.

0

6

Для того, чтобы описать инструкции, можно передавать параметры в скрипт используя URI.

Например:
[html]<tt>https://домен.сайт/коды/Интел64/ЯДРО+ССЕ+ММХ+АВХ+ФМА+АЕС+СГХ+ВТ-х+ЕПТ+СМТ/Длинный_режим/Название_Инструкции+Режим_Адресации+названия_регистров+смещение/ГАС</tt>[/html]

Обработчик запроса будет анализировать УРИ (URI) и формировать текст страницы, учитывая указанный ему контекст.
Если указано конкретное смещение, то формирует двоичный код инструкции для указанной константы.
Если не указано, то формирует в обобщённом виде.
Если не указано название конкретного регистра - использует название группы регистров - ммхн
и так далее. Если не указана инструкция - выводит информацию про режим в целом.

Если указан синтаксис, например ГАС, то выводит ассемблерную команду для этого синтаксиса и конкретное описание команды (с объяснением деталей синтаксиса). Если синтаксис не указан, то только обобщённое описание команды без конкретики.

Здесь:

Наборы инструкций:
Интел64 (чтобы отличить архитектуру от Арм64, Эльбрус и РискВ64)

Режимы Интел64:
Режим системного управления, Реальный режим, Длинный режим, Виртуальный режим 8086, Защищённый режим

Подсистемы процессора (функциональность в процессоре):
ССЕ, SSE,
ММХ, MMX,
АВХ, AVX (Advanced Vector Extensions)
ФМА, FMA (Fused Multiply-Add)
АЕС, AES (Advanced Encryption Standard)
СГХ, SGX (Software Guard Extensions)
ВТ-х, VT-x (Virtualization Technology)
ТСХ, TSX (Transaction Synchronization Extensions)
ЕПТ, EPT (Extended Page Tables)
СМТ, SMT (Simultaneous Multithreading)

Синтаксис
ГАС, ФАСМ, РАС (российский ассемблер), РЧАС (российско-чеченский (нохчийн мотт) ассемблер), РТАС (российско-татарский (татарча) ассемблер) и т.д. Россия - это федеративное государство, а не империя.

В директории может быть несколько файлов. Файл по-умолчанию может не иметь видимого имени,
но можно добавить ещё файл "варианты", в котором перечислять все конкретизации концепции ссылками на более точные страницы.
(со страницы по-умолчанию на страницу "варианты" должна отображаться ссылка, чтобы пользователь увидел её наличие).

Если кто-то захочет описать на этом сайте архитектуру виртуальной машины КуМир, получится ли у него это? Если нет, то что помешает? Как сделать, чтобы получилось?

Отредактировано Лис (2023-02-24 23:21:14)

0

7

Ещё нужны справочники по:

- системным вызовам

/вызовы/Линукс/версия-6.1.13/сисколл/фопен

- терминологии

/термины/english_version/русская_версия

возможно где-то надо добавить автора перевода или ссылку на соглашения/стандарты

/термин/english_version/русская_версия/источники
/термин/english_version/источники_БудДен+Уткин/русская_версия
(слово "источники" тут заменяет слово "варианты", потому что оно точнее)

Ну и у самого английского термина должны быть варианты перевода
/термин/english_version/варианты

Отредактировано Лис (2023-02-24 23:43:57)

0

8

Данные скрипт может считывать из файла/файлов (это вместо использования базы данных),
тогда добавление инструкций будет не через web-интерфейс, а через git руками.

Хотя в принципе можно и веб-интерфейс заставить работать с git на сохранение.

Файлы с данными могут иметь формат XML, а могут JSON (но только я второй не знаю).

Отредактировано Лис (2023-02-24 23:42:58)

0

9

Лис написал(а):

Нужна ли Wiki?

Покрутил на локальном сервере Dokuwiki. Есть авторизация, администрирование, роли пользователей. Статьи сохраняются в виде текстовых файлов, то есть легко переносить, сохранять.
Нам такое не пойдет?

0

10

Евгений написал(а):

Покрутил на локальном сервере Dokuwiki. Есть авторизация, администрирование, роли пользователей. Статьи сохраняются в виде текстовых файлов, то есть легко переносить, сохранять.
Нам такое не пойдет?

В шапке есть тхаб.рф.
Зайди на эту вики, почитай активность, количество участников, полезность контента.
В чём будет разница?
Почему нельзя использовать тхаб.рф уже сейчас, зачем устанавливать ещё одну?

Отредактировано Лис (2023-02-27 22:57:14)

0

11

Лис написал(а):

Зайди на эту вики, почитай активность, количество участников, полезность контента.

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

0

12

Евгений написал(а):

Даже если есть полезная информация, то в общей куче она не видна.

тхаб.рф

Евгений написал(а):

я пока не понимаю в каком виде это должно быть

У скрипта cgi-bin две задачи:
1) обеспечить разбор URI, чтобы определить, какую именно справку нужно сформировать.
можно, конечно, попробовать перевесть эту задачу на сервер Apache, но реализация тогда будет зависеть от специфики web-сервера
и не факт что будет работать с NGinx. CGI какой-никакой (fastGCI лучше), но стандарт (и на него, как на стандарт, можно опереться).
2) обеспечить сохранение ввода пользователя
(это не актуальная сейчас задача, потому что дизайн интерфейса важнее.
читают гораздо больше людей и роботов, чем редактируют)

Евгений написал(а):

и можно ли это сделать на cgi-скриптах.

UID пользователя при закачивании файлов и при выполнении cgi-скрита один и тот же.
Это означает, что скрипт сможет писать файлы в директории, при необходимости можно будет использовать внедрённую (embedded) базу данных, например sqlite. А можно будет воспользоваться API git-клиента и сохранять изменения прямо в git (он тоже в своём роде хранилище информации).

Но эти все рассуждения - это признаки отрастания лапок. Творцы не такие, они творят.

Отредактировано Лис (2023-02-28 04:53:21)

0

13

Взлет Докера был по-настоящему эпичным. Не смотря на то, что контейнеры сами по себе — не новая технология, до Докера они не были так распространены и популярны. Докер изменил ситуацию, предоставив стандартный API, который сильно упростил создание и использование контейнеров, и позволил сообществу вместе работать над библиотеками по работе с контейнерами. В статье, опубликованной в  The Register в середине 2014 говорится, что Гугл поддерживает больше двух миллиардов контейнеров в неделю.

https://habr.com/en/post/310460/

В общем, фишка в том, что сделали веб-сайт с API и опубликовали документацию.
И это совсем не то же самое, что просто сделать виртуализацию/контейнеризацию.

0


Вы здесь » ПО, ЭВМ и АСУ из Таможенного Союза » Проект "Виртуальные машины" » Для чего используют виртуальные вычислительные машины