8 января в 15:02

One Core API чтоб править Windows

                      "Если Microsoft не обеспечивает совместимость — 
                      сообщество обеспечивает совместимость".
                                                                     Aceler



Поздравляем хабражителей с Рождеством! И у нас есть праздничный сюрприз для вас!

Представляем вашему вниманию проект One Core API — слой совместимости с открытым исходным кодом для Windows XP/2003, который позволяет запускать на этих системах программы для более поздних ОС. По сути это враппер функций NT6. Путем дополнительных ухищрений обеспечивается поддержка DirectX 10. One Core API создан на основе исходников Wine и ReactOS, но его разработкой занимается другая команда.

Всех желающих приглашаем присоединится к разработке: github.com/Skulltrail192/One-Core-Api

Демонстрация возможностей


Приложения, что на скриншотах ниже, нельзя так просто взять и запустить под Windows XP, если только не использовать One Core API.

image

image

image

image

image

image

image

image
Автор: @Jeditobe
Фонд ReactOS
рейтинг 203,37
Операционная система
Похожие публикации

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

  • 0
    много софта стало 64bit-only, так что нужно ещё 64bit-on-32bit враппер создавать…
    • 0
      Вроде как там обе версии делают.
    • 0
      Враппером не отделаешься, нужен эмулятор :)
  • –1
    пожалуйста, уберите в статье оформление текста!
    вы убиваете возможность нормально читать на устройствах и rss читалках, где разрешение экрана меньше строки оформленного вами текста.
    благодарю.
    • 0
      Важной информации там нет.
      • –1
        в том то и дело, что важной нет, а текст и картинки разъезжаются из-за текста в начале статьи и приходится скролить туда сюда…
        да даже просто браузер с прокруткой показывает.
        ну ведь не сложно проверить статью, хотя бы после публикации…
        • 0
          Я проверял, на моих устройствах все ровно, в том числе и на смартфоне с весьма скромной диагональю и разрешением по нынешним временам и дефолтном браузере. Я думаю, ваши вопросы нужно адресовать администрации Хабра.

          Картинка
          image


          Для самых тяжелых случаев используйте эту ссылку —
          https://vk.com/reactos_ru?w=away-1086956_33320
          • –6
            а, ну отлично…
            главное, что бы вам удобно было.
          • –8

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


            Я проверял, на моих устройствах все работает

            Господи

            • +5
              Издательская система Хабарахабр не мой продукт, ответственность за корректность его работы несу не я. Я использовал стандартную функцию системы. Проверил на маленьких разрешениях и разных на устройствах, общий рынок которых совокупно превышает 98%. Везде результат был приемлемым.
              • –5
                Я использовал стандартную функцию системы.

                Вы использовали неразрывные пробелы для отступов заданной, удобной вам ширины.

                • +6
                  И ни на одном популярном устройстве даже с маленьким экраном это не вызвало сколько-нибудь существенных проблем для чтения статьи в целом.

                  Я использовал тег pre, который есть в официальном списке тегов. И он не должен влиять на текст статьи целиком, а если влияет, то это баг.

                  Данная дискуссия бесполезна и не имеет отношения к опубликованному материалу.
                  • –1
                    похоже придётся таки минусующим таки сказать, что первая строка была пофикшена ещё в 18:00, а вы всё минусите… здоровья вам!

                    а вообще удивительно, сколько сложностей, времени вызвало столь элементарная просьба…
                    и ещё на этом нахватать минусов…
                    тем более на таком ресурсе.
                • 0
                  У вас явно что-то не так с браузером. Вот скрин с моего Samsung Galaxy Ace (Android 2.3.6), браузер Opera Mini Beta.image
                  • 0
                    картинка не прикрепилась
                    image
                  • –1

                    У меня? Вы точно туда ответили?

  • 0

    Там только проблема одна есть — оно бесполезно для разработчиков, желающих добавить поддержку XP в свои продукты. Ввиду лицензии.

    • +1
      Лицензии чего?
      • +2

        На код. Она не LGPL как у Wine, а GPL. Соответственно нельзя просто так взять и поставлять этот враппер в составе коммерческого продукта, как это делают с winelib.

        • 0
          Зато можно прекрасно поставлять отдельным инсталлятором. И сказать:
          1. Поставьте эту среду.
          2. Поставьте наш продукт
          3. Profit

          А если честно, в данном случае, никого не остановит это разногласие в лицензиях.
          • +1

            Выглядит как какое-то очень костыльное решение, но можно попробовать.


            Кстати, а из-за чего именно в качестве лицензии ReactOS была выбрана именно GPL, а не LGPL как у вайна?

            • +1
              Собственно вы уже выше сами ответили:
              На код. Она не LGPL как у Wine, а GPL. Соответственно нельзя просто так взять и поставлять этот враппер в составе коммерческого продукта, как это делают с winelib.


              Как по мне, так сделано для того, что бы наработки по ДХ10(или врапперу) в реактОС добавить, и, что бы оно только там осталось.

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

              Группа РеактОС, вы делаете крутые вещи, за что вам респект.
            • +1
              https://en.wikipedia.org/wiki/Wine_(software)#History
              Bob Amstadt, the initial project leader, and Eric Youngdale started the Wine project in 1993.
              The Wine project originally released Wine under the same MIT License as the X Window System, but owing to concern about proprietary versions of Wine not contributing their changes back to the core project,[15] work as of March 2002 has used the LGPL for its licensing

              ReactOS начинался в 1996, задолго до до смены лицензии в Wine. Некоторые компактные компоненты ReactOS под другими лицензиями или с двойным лицензированием.
          • 0

            А можно ли его вообще использовать для запуска проприетарного ПО? Если эти библиотеки подгружаются в процессе работы, то мы получаем производное произведение (derivative work).

            • 0
              Вполне можно. Произвольное произведение должно быть неразрывным. А этот слой сам по себе, может быть установлен отдельно по решению пользователя и может запускать кучу другого ПО. Кроме того ПО пишется с совместимостью под Windows Х версии, а не под слой.

              Нет тут производного произведения.
              • 0

                Если приложение подгружает библиотеку, например через аналог dlopen() — то это уже производное произведение с приложением (либо с Windows, смотря кто подгружает библиотеку).


                Я так понимаю, относительно легальный способ — это чтобы пользователь сам поставил этот слой совместимости (и, таким образом, сам сделал производное произведение). Но тут еще надо учитывать лицензию на проприетарный продукт.

    • –1

      Если лицензия совместима с GPL — никаких проблем.

      • +2

        В общем, тут проблема как раз с этим если. И с тем фактом, обычный разработчик в своей обычной профессиональной деятельности (то есть, на работе в коммерческой конторе за деньги) воспользоваться этим кодом не может. Что делает поддержку XP силами самой конторы коммерчески невыгодной затеей. Можно много спорить и ломать копья по этому поводу, но:


        • очередное ПО будет продолжать быть несовместимым с XP
        • проект не дождётся от вышеуказанной конторы патчей, которые могли быть написаны в процессе допиливания под это самое ПО.

        Будь оно под MIT или хотя бы LGPL, ПО бы успешно допилили под XP, а проект, возможно, получил бы патчи. А может быть и не получил. Но "может быть" всяко лучше "точно не".


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

        • 0
          Хорошо расписано на сайте GNU. Библиотека уникальна, так что да, всё верно. И библиотеку можно считать системной (напомню, это означает всего лишь, что она не распространяется вместе с продуктом), так что всё прекрасно.
          • 0

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

            • 0

              Вы говорите неправду:


              Proprietary software developers have the advantage of money; free software developers need to make advantages for each other. Using the ordinary GPL for a library gives free software developers an advantage over proprietary developers: a library that they can use, while proprietary developers cannot use it.

              Речь идет о неравных условиях для разработчиков свободного и проприетарного ПО, когда вторые могут использовать библиотеки, написанные первыми, а вот разработчики свободного ПО использовать проприетарные компоненты не могут.

              • 0

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

                • 0

                  Нет вы лжете и перекручиваете. Разработчиков проприетарного ПО никто не заставляет использовать библиотеки под GPL. Они могут пользоваться другими библиотеками или разрабатывать свои.


                  И вообще, заканчивайте это ваш BSD-срач.

    • 0
      Разработчики, желающие добавить поддержку XP в свои продукты, я имею в виду Inkscape всякие, могли бы зарубить себе на носу, что если им так хочется полезть в msvcrt.dll за новыми функциями, пусть тащат с собой установщик msvcrt 12.0 и лезут в msvcrt120.dll.
  • 0
    Ну наконец-то. Самое интересное, месяца 4 назад искал способ пару функций «завраппить» ибо нужно было на ХР крайнюю версию оперы\хрома запустить.
  • +2
    Такую энергию, да в мирных бы целях. Хоть в тот же WINE-бы поконтрибутить.
    • +2

      Что поконтрибьютить в WINE? Говорят же, это код, вытащенный из WINE.

    • +1
      Проект ReactOS не только берет наработки из WINE, но и вносит правки в него
  • 0
    Напрашивается идея совместимости с React OS.
    • +2
      Сначала желательно добиться совместимости с XP и 2003 окончательно, тогда с ReactOS все получится автоматом.
  • +2
    Ещё есть очень старый проект, я с помощью него FAR под DOS пользовал:
    http://www.doswin32.com/index.html
    • 0
      Угу, это расширитель ДОС на стероидах и с мутагенами.
      • +1
        Тем не менее, мне было очень удобно PowerPC>VirtualPC>DOS>FAR по производительностии, чем Windows95>Far
        Автор, помниться, даже специально по моему запросу фиксил работу под VirtualPC, за что ему огромное спасибо.
        • 0
          А за что народ минусует, вы поработайте сначала в виртуалке на Маке 200МГц, когда все проги и барахло своё виндовое за много лет лежит на диске…
  • –3
    Существование таких проектов показывает абсурдность и абсолютную ненужность смены версий Виндовс. Ну кроме как «чтобы ченить продать».
    Такой «прогресс» уже откровенно бесит. Только дистрибы пухнут.
    • +12
      Да-да. Надо еще и линуксами начала нулевых пользоваться, прогресс не нужен.
      • 0
        Если бы линуксы новых версий выходили платными, то да)) а так- можете пользоваться любыми версиями… Линукс же!
      • +3
        Что такого прогрессивного отличает Win10 от WinXP?
        DirectX n-й версии, Кортана, Edge, «плитки», новый дизайн? Это все как-то мало относится к самой ОС…
        Та же подсистема Linux (ну ладно, OS/2) была еще в NT4. А тут вспомнили!
        Только некоторые технологии типа виртуализации действительно что-то новое.
        • +2
          А почему вы считаете, что прогресса нет? Пример из личной практики. Мы экспериментировали с заменой аллокатора памяти внутри большого игрового проекта. Проект до сих пор поддерживает WinXP ввиду значительной доли аудитории с этой системой. Так вот, заменив стандартный виндовый аллокатор на tcmalloc на WinXP был получен буст производительности ~25%. В то же время на Win7 замена дала буст в пределах допустимой погрешности измерений. Несложно сделать вывод, что как минимум система работы с памятью была переработана. Выводы можете делать сами.
        • 0
          Та же подсистема Linux (ну ладно, OS/2) была еще в NT4.

          Стоит заметить, что старые подсистемы требовали перекомпиляции бинарных файлов, а новая запускает нативные.
        • 0
          Я — «винадмин». Хватает, знаете ли.
          И, как минимум, UAC и вообще защита, плюс запрет писать программам в определенные места, это не говоря о всяких сетевых плюшках (были бы все 8-ки на работе, можно было бы надежнее организовать сетевые диски).
          А вот скорость XP SP3 уже удручает на слабом железе, т.е. либо SP2 либо, внезапно, семерку ставить.
          Да, можно эксгумировать труп годами. Однако за это время линукс, знаете ли, нехило так себя перетряхивал. Чего в рамках XP сделать было бы не возможно.
          Ну и денег на развитие винды откуда было бы взять иначе? Это линукс пилят на деньги многих корпораций, винда же пилится на деньги одной.
          • 0
            плюс запрет писать программам в определенные места

            Замечу, что это просто реализация прав доступа, которые есть во всей линейке NT. Просто раньше всё работало от админа (точнее, все работали от админа), а начиная с Висты с UAC много чего запускается от пользователя. При работе от ограниченного пользователя на XP программы так же не могут писать в системные директории.
            • 0
              Даже под обычными пользователям в Program Files в XP прав хватало писать.

              Для одних конкретных разработчиков это было настолько неожиданное изменение, что даже год тому назад их «новая» версия программы требовала полный доступ к папке, в которую установлена…
              • 0
                Даже под обычными пользователям в Program Files в XP прав хватало писать.

                У вас были какие-то проблемы, или сборка, или неправильно настроенный образ ОС. Ибо стандартные права доступа запрещают запись из-под пользователя куда-либо на системном диске, кроме своего домашнего каталога и общих документов.
                • 0
                  Как минимум у опытных пользователей всегда были разрешения «изменить» на папках Program Files, что означало, возможность хранить настройки программы в ini файлах.
                  Если не ошибаюсь, при уходе с XP даже на висту с этим столкнулись многие программы (там у людей даже the bat почту хранил).

                  Сейчас же даже если пользователь cидит с админскими правами, программы такой возможности не имеют по умолчанию. Ибо в какой-то момент в МС осознали, что без подобных жестких методов программисты и дальше будут творить фигню, наплевав на все добрые советы самой МС. Все более-менее адекватные разработчики это быстро поправили…
                  • 0
                    Как минимум у опытных пользователей

                    Они де-факто являются чуть ограниченными админами, и поэтому их использование не имеет смысла. Если уж ограничивать, то до простого пользователя, у которого таких прав нет.
                    Сейчас же даже если пользователь cидит с админскими правами, программы такой возможности не имеют по умолчанию.

                    Ну да. А для старых программ действует виртуализация ФС. Которая, правда, вводит в недоумение, когда прога грузит конфиг из своего виртуализованного каталога, а ты правишь настоящий и не понимаешь, почему ничего не пашет.
                    • 0
                      Они де-факто являются чуть ограниченными админами, и поэтому их использование не имеет смысла.

                      Ну, из-за требований пром.софта приходилось давать. Хоть как-то ограничить чтоб.
                      Ну да. А для старых программ действует виртуализация ФС. Которая, правда, вводит в недоумение, когда прога грузит конфиг из своего виртуализованного каталога, а ты правишь настоящий и не понимаешь, почему ничего не пашет.

                      У меня вот визуалстудия 13-ая забила на то, что папка «Documents» пользователя была перенесена системными средствами в другое место и создала все свои настройки по «верному» пути. Долго думал…
                      • 0
                        Ну, из-за требований пром.софта приходилось давать.

                        А выяснить и давать права на конкретные каталоги? Хотя да, если прога удаляет старый конфиг и создаёт новый, это не поможет.
                        Долго думал…

                        Я бы симлинк сделал.
    • +2
      А вы сударь не забывайте, что есть корпоративный сектор в котором может (и используется) та же ХР (банкоматы etc) и обновлять целиком ось не каждый захочет
    • –2
      Так это уже давно должно быть понятно, что новые дистрибутивы Win — маркетинг и всё, вот например у Ubuntu — поставил один раз, а потом обновления просто накатываешь — ничего переустанавливать даже не надо. (Не конечно и в Win так делать можно — не установить новую, а обновить существующую — только вот половина программ потом поломаны будут)
      • +1
        Вот как раз поддержка старого ПО в новых Windows реализована лучше всех, и обновиться без переустановки можно с Windows 3.1 до Windows 10 (пройдясь через все версии). Ubuntu же ломался не раз и не два после глобального обновления, и по-мелочи после незначительных. Не гуру в Linux, но и руки не совсем кривые.
  • 0
    А где-нибудь рабочий билд уже есть?
    • +1
      Где-нибудь есть. А можно скомпилировать самому. Там все готово для этого.
      • 0
        Не у всех есть такая возможность, по разным причинам. Я понимаю, что проект сейчас нацелен на поиск контрибьютеров и кому надо, тот соберёт себе, но простым смертным тоже хочется глянуть, что там за зверь.
        • 0
          Я думаю, будет логично попросить это прямо на гитхабе, а не здесь.
  • 0
    Как с драйверами?
    • +2
      Как с драйверами для XP
      • 0
        Вот это печалит. Если программам можно найти аналоги или просто сидеть на старых версиях, то запустить на новом железе без дров- совсем печально выходит.
        • 0
          У большинства людей уже есть необходимое железо, и именно поэтому они не хотят слезать с ХР. Что новые программы (новые версии старых) отказываются от старого апи.
          • 0
            Железо не вечное. Даже мой не самый новый десктоп не полностью поддерживает XP, хотя и работает хорошо. На свой новый ноутбук я даже не пытался ставить свою любимую XP, ибо понимаю, что это дохлый номер.
            • 0
              Новое — не вечное. А вот старое раньше с большим ресурсом выпускали из-за более крупных техпроцессов в нанометрах.
  • 0
    Не хотят забывать старую добрую XP) Собственно, тоже до сих пор дома трудятся пара компов, ака «печатная машинка», с XP на борту. Очень разачаровал тот факт, что Cygwin прекратил поддержку XP. Попробую на досуге запустить с этим API.
    p.s.
    Эх, кто бы ей ещё написал загрузчик для UEFI. Стоит отметить, под Itanium есть.
    • +2
      Для ReactOS пишется такой загрузчик. Весьма вероятно, что можно будет осуществить пересадку.
      • 0
        Где можно посмотреть текущий прогресс по этой задаче? Я конечно клонировал как-то себе репозиторий ReactOS, но так просто там не разберусь.
        • +1
          • 0
            Fuck you binutils.

            Состояние проекта ясно, спасибо!
            • 0
              Между прочим, это третий человек в этом списке.

              image
              • 0
                Не спорю, отличный специалист.
                Я указал на этот коммит, потому что он последний из связанных с BOOTLIB и был сделан 11 месяцев назад. Коммиты, отмеченные ROSLOAD или BOOTMGR, ещё старше.
                • +1
                  Ионеску обычно работает в локальной рабочей копии, а коммитит по настроению и сразу пачками.
            • +1

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

      • 0
        Кстати, на вики нашёл:
        Добавлена поддержка файловой системы ext2 и системного загрузчика GRUB, что позволяет ReactOS работать на одном компьютере с Linux.

        Кто-нибудь в курсе, под GRUB2 тоже могёт?
  • 0
    А вообще, я вспомнил, где я это видел. Это пользователь Samuka с BetaArchive, уже восьмой год пилящий свою ОС Shorthorn на базе Longhorn. Там же можно было скачать бинарный пакет One Core API, его наработки в ОС Shorthorn и прочее. Работоспособность его One Core API там подвергали сомнению.
    Но он не выкладывал свои наработки по этому проекту в открытый доступ, это приватный проект, так что не знаю, можно ли его называть OpenSource.
    • 0
      Его последнее сообщение там
      Happy new year for everybody! I'm in vocation, but, on return, i will release the official site project, with links, tutorials and more!
      • 0
        Да я читал. Но ссылок на этот репозиторий там нет.
        • 0

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

  • 0
    зачем эти извраты, есть wine/crossover, есть линукс…
    • 0
      Если вам не надо, не значит что не надо другим.

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

Самое читаемое Разработка