16 лет назад / 04 июля 2007 10:43

Какой хотелось бы видеть «идеальную» ОС? Чего такого хотелось бы иметь в «идеальной» операционной системе, чего нет или сильно ограничено в нынешних ОС?
Например:

  1. Хотелось бы чтобы ОС быстро реагировала на клавиатурные действия пользователя.

  2. Хотелось бы чтобы перерисовка окон происходила независимо от прочих действий программы (то есть без подвисаний).

  3. Хотелось бы чтобы переключение с программ вроде DirectX'овских происходило бысто и с первого раза; и чтобы переключение программ (например по Alt+Tab) вообще не зависело от желания текущей программы, что иногда наблюдается.

  4. ...

Какой хотелось бы видеть «идеальную» ОС?

Другими словами, чтобы ничего не глючило и не тормозило!

Данная статья является дискуссионным вбросом, набором надерганных из интернета фактов и моих собственных соображений и нуждается в дополнении, улучшении и упоря́дочивании, с тем, чтобы сформулировать требования к к операционной системе ReactOS, которая вот‑вот выйдет в стадию беты.

Статья может вызвать неоднозначные впечатления, поэтому просьба сразу писать, в чем автор ошибся, и как надо сделать правильно!

ReactOS позиционируется как свободная и бесплатная операционная система с открытым кодом, совместимая с приложениями и драйверами Windows (Windows NT версии 5.x и выше — Windows 2000 и далее. Ну насчет «далее» — это Windows XP (NT 5.1)

Какие функции, требующиеся для домашней OS, должны быть обеспечены, что нужно взять от Windows XP, а какие функции категорически брать не следует?

Под ReactOS должны запускаться программы и устанавливаться драйвера, работающие под Windows XP.

Это основное требование для операционной системы совместимой с Windows XP.
ReactOS должна устанавливаться и работать на реальном железе, а не только в VM.

Предлагаемые этапы выпуска новых версий:

Этап 1

Версия ReactOS которая будет устанавливаться на реальное железо и иметь возможность установки драйверов устройств, совместимых с Windows XP. 

На этом этапе ОС пусть получится "ограниченно годной", но ее уже можно выпустить в массы для опытов.

Процесс установки

Установка осуществляется с загрузочной флешки. Для создания флешки пользователь может скачать с сайта ReactOS установщик, какой‑нибудь ROSInstall.ехе. Далее установщик создает (а‑ля Rufus, только в автомате) загрузочную флешку, скачивает на нее образ системы и программу‑установщик драйверов. Пользователь вставляет флешку в целевой компьютер и устанавливает ReactOS ( «Откиньтесь на спинку кресла, съешьте французских булок» и вот это вот все ). Далее запускается программа ‑установщик драйверов (типа DriverPack ), которая будет входить в комплект на флешке, и устанавливает драйвер сетевой карты. Дальше можно подключить интернет и скачать остальные драйвера. Просто база драйверов офлайн занимает около 20 Gb, на всякую флешку запишешь.
Дальше устанавливаются драйвера устройств под конкретное железо. Пользователь устанавливает необходимый прикладной софт и может начинать работать.
 
Для каких-то целей ОС подойдет уже в таком ограниченно годном виде. Но главное, больше народу будет вовлечено в процесс, пользователи начнут давать обратную связь и возможно, кто‑то захочет подключиться к разработке.

Совместимость с софтом на данном этапе может быть ограничена, какая получается на настоящий момент, а там довольно много. Основная задача — установка на реальное железо, поддержка драйверов, поддержка сети и скачивания файлов с Интернета. Интернет браузер на данном этапе может быть ограниченно годный и не полностью поддерживать современные стандарты, лишь бы он мог открывать сайт с дистрибутивом ReactOS.

Требования к ОС этапа 1:

  • Поддержка драйверов железа под WindowsXP, поддержка Plug and Play.

  • Файловая система – FAT32

  • Разрядность системы -32b

  • Сеть и Интернет.

  • Интернет браузер – as is, ограниченный функционал

  • Офисное ПО –  возможно ограниченный функционал

  • Мультимедиа–  ограниченный функционал

  • Игры –  ограниченный функционал

Этап 2

Это уже рабочая система, которой можно пользоваться для типовых задач домашнего ПК Тут уже в обязательном порядке должны быть:

  • Интернет браузер с поддержкой современных технологий, в том числе online banking со всеми наворотами безопасности

  • Файловая система — FAT32, NTFS

  • Офисное ПО — Libre Office. MS Office (???)

  • Мультимедиа‑ более продвинутый, чем на 1 этапе, но... Как реально получится.

  • Игры — по возможности максимум.

  • Сон, гибернация

  • Что‑то еще????

ReactOS в первую очередь предназначена для использования на домашних ПК, поэтому 1 и 2 этап — это ReactOS Home Edition.

Системные требования

Что требовала Windows XP.

Рекомендуемые cистемные требования операционных систем Windows XP Home и Professional Edition следующие:

  • Pentium‑совместимый процессор 300 МГц или выше

  • Оперативная память 128 МБ или больше

  • Видеоадаптер и монитор Super VGA разрешением (800×600) или выше

  • Свободное место на жёстком диске 1,5 ГБ или больше

Значит так и запишем - 128  Мб ОЗУ! Хорошо, пусть будет 256 Мб, по нынешним временам это неплохо. Хотя говорят, что лучше 512 Мб.
Разрядность системы -32b

Браузер

Браузер, соответствующий современным требованиям — это отдельная песня.
Что из этих требований возможно реализовать в рамках Windows NT 5.1 — большой вопрос.

Придется допиливать какой‑нибудь опенсорсный браузер. Можно начинать уже прямо сейчас!

По браузерам и движкам см. например https://habr.com/ru/companies/timeweb/articles/706 390/
«Современный браузер — это весьма сложный образец софта с базой кода примерно в десятки миллионов строк.»

Типовая схема браузера
Типовая схема браузера

Основные требования к браузеру:

  • чтобы открывал современные сайты (ну, для начала кроме каких‑нибудь bank‑online) и работал под Windows XP.

  • не более 10 мб на вкладку для пустых страниц, оптимизация обращения к диску (что бы это ни значило)

  • См. также https://habr.com/ru/articles/373 803/

  • Поддержка процессоров с SSE2, только c SSE и даже без SSE

Обновление корневых сертификатов

В Windows:

Такие браузеры как Internet Explorer, Chrome, Yandex и др., а так же плагины Windows Media Player, VLC, Flash player и др. для проверки достоверности источника контента используют встроенные в Windows корневые сертификаты безопасности. Эти сертификаты действительны на определённый срок (как правило несколько лет). По завершению срока действия сертификатов многие сайты в браузере могут не открываться, а плагины не проигрывать медиаконтент.

Что‑бы не возникло проблем c браузером и плагинами в будущем, крайне желательно обновить корневые сертификаты Windows XP.

Сделать это можно автоматически с помощью простой программы UpdRoots.

Программа может обновить сертификаты и без подключения к интернету. Необходимо лишь поместить загруженные файлы сертификатов в туже папку где находится UpdRoots.exe

Сохранить на всякий случай последние сертификаты можете по этим ссылкам:
 www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authroots.sst
 www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/delroots.sst
 www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/roots.sst
 www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/updroots.sst
 www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/disallowedcert.sst

В браузере:

Firefox и браузеры на его основе для проверки достоверности источника контента используют корневые сертификаты безопасности из своего хранилища. Эти сертификаты действительны на определённый срок (как правило несколько лет). По завершению срока действия сертификатов многие сайты в браузере могут не открываться.

Необходимо установить в браузер новый или обновлённый корневой сертификат, который на многих сайтах исправит ошибки связанные с сертификатами.

Установка в Windows XP протоколов TLS 1.1 и TLS 1.2

Видеокарта и аппаратное ускорение в браузере:

Браузер Firefox может задействовать ваш графический адаптер в обработке загружаемого контента, и тем самым значительно разгрузить процессор. 

Видеокарта должна поддерживать DirectX9.0 или OpenGL 2.0.
ReactOS должна поддерживать драйвера для таких карт

  • Поддержка современных расширений и дополнений (каких?)

  • Правильное отображение современных сайтов Последние официальные версии браузеров для Windows XP выходили давно. С того времени многие веб-стандарты в интернете изменились: что-то убрали, но очень много добавилось нового (того, что старые браузеры не умеют).
    Ошибки могут проявляться по разному. Например: не прорисовывается часть страницы или вообще вся страница целиком, отдельные элементы страницы расположены не на своих местах, не нажимаются кнопки или не заполняются формы ввода.

Драйверы 

Все устанавливаемые драйверы должны быть взяты в первую очередь с официальных сайтов производителей оборудования или комплектующих. 
См. https://habr.com/ru/articles/373803/  Там целый список драйверов под WinXP

Видео и звук – поддержка DirectX9.0, OpenGL 2.0, современных кодеков (каких ???)

Подсистема печати, поддержка принтеров USB

Игры

Игрушки, как минимум те, которые шли под WindowsXP (ну может с ограничениями) со всеми вытекающими требованиями по графике и звуку.

Безопасность

Для ОС первого этапа.

  •  Пароль для входа. Ну можно и оставить )

  •  Учетные записи с разграничением прав – Администратор, Юзер – убрать.
     На первом этапе только один пользователь. В дальнейшем все учетные записи будут иметь права администратора.
    Требуется анализ и устранение всех дыр, закрытых пакетами обновлений SP1,2,3 и в последующих версиях Windows (ну, по возможности)

  •  Все, что связано с удаленным доступом к компьютеру – не реализуется
     (удаленный рабочий стол, помощник итд)

Какие еще службы Windows нужны и какие –нет ???

Вот надергал из инета всякого. Далее – информация со страницы.  

 ===================== не реализуется ====================
Сервер папки обмена — дает возможность удаленным пользователям просматривать вашу папку обмена. Отключаем.

Сервер — обычно компьютер, предоставляющий общие ресурсы пользователям сети. Отключено.

Модуль поддержки NetBIOS через TCP/IP — обеспечивает работу SMB-протокола. Отключаем.

Диспетчер автоподключений удаленного доступа — представьте себе такую ситуацию: вы открываете свежесохраненную страницу, а на ней присутствует баннер, который ссылается на другую страницу, и ваш explorer рьяно хочет подключиться к нету. Представили? Вам оно надо? Отключаем.

Диспетчер сеанса справки для удаленного рабочего стола — а если возьмут, да и помогут  — а если возьмут, да и помогут. Отключаем.

Удаленный реестр — позволяет удаленно управлять вашим реестром. Отключаем.

Вторичный вход в систему — позволяет запускать специфические процессы с правами другой учетной записи. Отключаем.

Служба терминалов — дает возможность работать на вашем компьютере удаленному пользователю при помощи утилиты Remote Desktop. Отключено.

Telnet — Сервер удаленного управления через командную строку. Отключаем.

"Политика безопасности IP..." реализуется по умолчанию при разработке, не настраивается (?)- разрешить ICMP трафик от всех пользователей на нашу машину.
 
Теперь у нас не будет работать ничего, кроме ICMP протокола. Сейчас нам осталось выделить те службы, которые нам нужны, и прописать для них доступ. Ниже я дам строчки для самых распространенных служб, но в вашем индивидуальном случае все может быть по-другому. Следует отметить, что по умолчанию каждая служба добавляется зеркально – то есть если мы разрешаем связь от нашего компьютера к любым веб-серверам (порт 80), то будет реализовываться и обратная связь для передачи ответа веб-сервера.

Если у вас есть локальная сеть с «левыми» адресами, то нужно прописать для нее доступ – открываем все протоколы с адресов 192.168.1.0 маска 255.255.255.0 (к примеру) до "Мой IP адрес".

1. Запросы DNS сервера. Разрешаем 53 порт получателя (Определённый IP адрес) протокола UDP от нашего компьютера к любому компьютеру. Вместо любого компьютера можно указать DNS сервер провайдера.

2. Веб-трафик. Открываем порт TCP 80 получателя от нашего компьютера к любому компьютеру.

3. FTP-трафик. Открываем порты TCP 20 и TCP 21 получателя от нашего компьютера к любому компьютеру.

4. SMTP трафик (для отправки писем). Открываем порт TCP 25 получателя от нашего компьютера к любому компьютеру (можно вместо любого компьютера указать SMTP сервер провайдера).

5. POP3 трафик (для приема писем). Открываем порт TCP 110 получателя от нашего компьютера к любому компьютеру (или к POP3 серверу провайдера).

6. IMAP трафик (для приема писем). Открываем порт TCP 143 получателя от нашего компьютера к любому компьютеру (или к IMAP серверу провайдера).

Что еще нужно разрешить на машине с ОС Home Edition ???

Службы сертификации (?)

Хранилища сертификатов с открытыми ключами:

Windows XP Professional хранит сертификаты с открытыми ключами в личном (Personal) хранилище сертификатов. Они хранятся открытым текстом, так как это общедоступная информация. Сертификаты имеют цифровую подпись ЦС для предотвращения изменения.
Сертификаты пользователя расположены в папке Documents and Settings<имя_пользователя>ApplicationDataMicrosoft SystemCertificatesMyCertificates профиля пользователя. Эти сертификаты записываются в локальном реестре при каждом входе в систему компьютера.

  • Автозапуск CD и флешек – нет

  • Автоматическое обновление системы – нет

Как известно для Windows XP вышло 3 сервиспака – SP1, SP2 и SP3. Что их них потребуется для ReactOS первого этапа. 

  • SP-1
    +  поддержка USB 2.0
    - возможность выбирать программы по умолчанию для просмотра Интернета, почты, обмена мгновенными сообщениями – нет
    - различные реализации виртуальной машины Java.  нет
    - Шифрующая файловая система EFS получила возможность использовать алгоритм шифрования AES с 256-битным ключом. Нет  + ? поддержка LBA-48, позволяющая операционной системе работать с жёсткими дисками ёмкостью более 137 Гб.

  • SP-2
    - улучшенный файрволл – нет;
    + поддержку Wi-Fi с мастером настройки и Bluetooth (на втором этапе)
    + расширенная защита памяти, в частности, от атак переполнения буфера как с использованием технологии «NX-бит» (на втором этапе)
    - Центр обеспечения безопасности нет!!!
    - функции автозапуска при вставке компакт-диска или подключении флеш-карт и подобных устройств.  нет!!! Remote Procedure Call (RPC) - нет!!! Безопасность электронной почты в Outlook Express – эмм?? Автоматическое обновление системы - нет!!!   

  • SP-3
    Криптографический модуль режима ядра (Kernel Mode Cryptographic Module) ???
    Wi-Fi Protected Access 2 (WPA2)
    Определение "Black hole" роутеров. ???

Прочее

Github desktop требует.net framework 4.5. При установке.net пишет «вы можете свободно его использовать для любой лицензированной систем windows».

Встает вопрос — а как в ReactOS будет обеспечиваться совместимость с приложениями .Net?

ReactOS третьего этапа

Как по мне, так развитие не должно идти в сторону Windows Vista, Win 7 и так далее. Добавляя и углубляя совместимость с драйверами и приложениями Windows 7 и следующих версий Windows? С точки зрения безопасности, быстродейсвия, удобства использования, потребленя ресурсов ПК ReactOS должна идти своим путем.

Основные проблемы операционной системы Windows связаны с компьютерной безопасностью.
 

Обеспечение безопасности в ReactOS третьего этапа

Основные виды вредоносного ПО описаны например в https://habr.com/ru/articles/748254/ 

  • шифровальщики

  • ботнеты

  • майнеры

  • стилеры (крадут пароли и пр.)

  • руткиты

  • буткиты

  • спамеры 

Операционная система должна быть обеспечивать безопасность по двум направлениям:

  • Препятствовать проникновению вредоносных программ

  • Минимизировать ущерб от действия вредоносных программ.
     
    При этом ОС не должна  ограничивать контроль пользователя над компьютером  препятствовать его действиям.

Защита от проникновения вредоносных программ

Основные методы проникновения:

  • фишинговая атака с использованием вредоносных программ во вложенных файлах.

  • фишинговые и вредоносные веб-сайты

  • Флешки и внешние диски

  • ???

Ну как бы и не много... И методы защиты как по мне так очевидны.

ОС должна контролировать запуск файлов из указанных выше источников.

Противодействие вредоносным программам, проникшим на ПК

Основные методы противодействия должны обеспечиваться архитектурой системы.

Например:

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

  • массовая обработка файлов

  • интернет  соединения

  • перехват клавиатуры

  • ???

Недоступность файлов операционной системы для пользовательких программ.

Операционная система устанавливается в раздел диска невидимого для пользователя. Никакие файлы операционной системы не доступны для пользователя. При необходимости пользователю доступны копии файлов, открытые для чтения. Обновление осуществляется средствами самой ОС без участия пользователя, ну в принципе и сейчас так в Windows.

Пользовательские программы не пишут свои данные в системный реестр.

Только в собственные ini файлы или в пользовательский реестр для совместимости с существующим ПО.

Драйвера для внешних устройств устанавливаются в режисе пользователя.
Подпись для драйверов не нужна.
 
Пользователькие программы не имеют возможность эмуляции мышки и калавиатуры без разрешения пользователя.

Ну, наверное достаточно для вброса. Надеюсь комментаторы "накидают тапков" по существу вопроса )

Комментарии (17)


  1. vilgeforce
    28.07.2023 09:15
    +1

    Отлично! Можете начинать реализовывать!



  1. doo000
    28.07.2023 09:15
    +4

    Мнээээээ. А зачем нужна ОС "как WinXP", если уже есть WinXP?


    1. ash_lm
      28.07.2023 09:15
      +1

      Я так понимаю задумка проекта ReactOS это "как WinXP", совместимость на уровне драйверов, актуальные (ну вроде бы) патчи безопасности. Но, на мой субъективный взгляд, проект, который следует аккурат за проектом WINE всегда будет отстающим, т.к. у проекта WINE цели немного отличаются от целей ReactOS. Поэтому для меня ReactOS это какое-то хобби для людей, которые над ним работают. И при такой модели он будет в стадии альфы пока вообще существует архитектура x86, если все вдруг дружно перейдут на ARM/Нибиру технологии и т.д., то мы увидим новый проект ReactOS. Но это всё моё имхо.


      1. PuerteMuerte
        28.07.2023 09:15

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

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


    1. diakin Автор
      28.07.2023 09:15

      ОФициально XP уже нет


  1. Mabu
    28.07.2023 09:15

    которая вот-вот выйдет в стадию беты

    Откуда такие сведения?


    1. diakin Автор
      28.07.2023 09:15

      Ну когда-нибудь выйдет же!


  1. dartraiden
    28.07.2023 09:15

    Честно поставил минус, т.к. статьи нет. Какой-то набор заметок из текстового файла с рабстола.


    1. diakin Автор
      28.07.2023 09:15

      Данная статья является дискуссионным вбросом, набором надерганных из интернета фактов и моих собственных соображений и нуждается в дополнении, улучшении   и упоря́дочивании, с тем, чтобы сформулировать требования к к операционной системе ReactOS, которая вот-вот выйдет в стадию беты. Статья может вызвать неоднозначные впечатления, поэтому просьба сразу писать, в чем автор ошибся, и как надо сделать правильно!


  1. Johan_Palych
    28.07.2023 09:15

    что взять в ReactOS из Windows

    Пока взяли из ReactOS в Windows:
    WinBtrfs - an open-source btrfs driver for Windows
    https://github.com/maharmstone/btrfs


    1. diakin Автор
      28.07.2023 09:15

      Ну не то, чтобы из ReactOS..


      1. Johan_Palych
        28.07.2023 09:15

        1. diakin Автор
          28.07.2023 09:15

          WinBtrfs - это драйвер Windows для файловой системы Linux следующего поколения Btrfs. Это повторная реализация с нуля, она не содержит кода из ядра Linux и должна работать в любой версии, начиная с Windows XP. Он также включен как часть бесплатной операционной системы ReactOS.

          Ну так это драйвер сам по себе, его можно использовать хоть в Windows, хоть в ReactOS. Но он не был разработан в рамках ReactOS , откуда его потом утащили в Windows.


          1. Johan_Palych
            28.07.2023 09:15

            И таки да.
            Add Mark Harmstone btrfs filesystem driver
            https://jira.reactos.org/browse/CORE-10892


            1. Jeditobe
              28.07.2023 09:15
              +1

              Однако потом все-таки были баг-репорты и патчи от команды ReactOS


  1. diakin Автор
    28.07.2023 09:15

    Microsoft выплатит калифорнийской компании VirnetX $200 млн и лицензирует ее технологии создания виртуальных частных сетей. 
    В 2007 г. калифорнийская компания VirnetX подала в суд на Microsoft, обвинив ее в нарушении двух патентов, связанных с технологиями виртуальных частных сетей (VPN). VirnetX, в частности, заявила, что ее патенты нарушаются в Windows XP и Windows Vista. В марте 2010 г. суд вынес решение в пользу истца, признав, что Microsoft нарушила патенты умышленно, и наложила на корпорацию штраф в размере $105,75 млн

    В связи с этим встает вопрос - какими еще патентами защищена Windows XP, в том числе третьих сторон. Срок действия патентов США - 20 лет. Windows XP была выпущена 25 октября 2001 года . Пакет обновлений SP1 для Windows XP был выпущен 9 сентября 2002 года. SP2 был выпущен 6 августа 2004 года. SP3 - 21 апреля 2008 года.
    То есть требуется анализ патентной чистоты решений, применяемых в ReactOS, поскольку Microsoft приобретала для Windows XP лицензии на решения третьих сторон.