"Если 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
Поделиться с друзьями
-->

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


  1. en1gma
    08.01.2017 15:43

    много софта стало 64bit-only, так что нужно ещё 64bit-on-32bit враппер создавать…


    1. Jeditobe
      08.01.2017 15:46

      Вроде как там обе версии делают.


    1. Temtaime
      08.01.2017 20:32

      Враппером не отделаешься, нужен эмулятор :)


  1. brand2000
    08.01.2017 15:52
    -1

    пожалуйста, уберите в статье оформление текста!
    вы убиваете возможность нормально читать на устройствах и rss читалках, где разрешение экрана меньше строки оформленного вами текста.
    благодарю.


    1. Jeditobe
      08.01.2017 15:52

      Важной информации там нет.


      1. brand2000
        08.01.2017 15:56
        -1

        в том то и дело, что важной нет, а текст и картинки разъезжаются из-за текста в начале статьи и приходится скролить туда сюда…
        да даже просто браузер с прокруткой показывает.
        ну ведь не сложно проверить статью, хотя бы после публикации…


        1. Jeditobe
          08.01.2017 16:03

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

          Картинка
          image


          1. brand2000
            08.01.2017 16:05
            -6

            а, ну отлично…
            главное, что бы вам удобно было.


          1. homm
            08.01.2017 17:31
            -8

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


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

            Господи


            1. Jeditobe
              08.01.2017 17:36
              +5

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


              1. homm
                08.01.2017 17:44
                -5

                Я использовал стандартную функцию системы.

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


                1. Jeditobe
                  08.01.2017 17:55
                  +6

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

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

                  Данная дискуссия бесполезна и не имеет отношения к опубликованному материалу.


                  1. brand2000
                    08.01.2017 21:11
                    -1

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

                    а вообще удивительно, сколько сложностей, времени вызвало столь элементарная просьба…
                    и ещё на этом нахватать минусов…
                    тем более на таком ресурсе.


                1. Dimonkov
                  08.01.2017 21:12

                  У вас явно что-то не так с браузером. Вот скрин с моего Samsung Galaxy Ace (Android 2.3.6), браузер Opera Mini Beta.image


                  1. Jeditobe
                    08.01.2017 21:13

                    картинка не прикрепилась
                    image


                  1. homm
                    08.01.2017 22:01
                    -1

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


  1. kekekeks
    08.01.2017 16:02

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


    1. Jeditobe
      08.01.2017 16:04
      +1

      Лицензии чего?


      1. kekekeks
        08.01.2017 16:07
        +2

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


        1. Jeditobe
          08.01.2017 16:10

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

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


          1. kekekeks
            08.01.2017 16:20
            +1

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


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


            1. ukt
              08.01.2017 17:15
              +1

              Собственно вы уже выше сами ответили:

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


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

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

              Группа РеактОС, вы делаете крутые вещи, за что вам респект.


            1. Jeditobe
              08.01.2017 17:16
              +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 под другими лицензиями или с двойным лицензированием.


          1. BlackRaven86
            09.01.2017 15:07

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


            1. Jeditobe
              09.01.2017 15:26

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

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


              1. BlackRaven86
                09.01.2017 20:42

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


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


    1. BlackRaven86
      08.01.2017 23:37
      -1

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


      1. kekekeks
        09.01.2017 05:39
        +2

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


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

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


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


        1. NickKolok
          10.01.2017 19:18

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


          1. kekekeks
            11.01.2017 12:50

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


            1. BlackRaven86
              12.01.2017 21:34

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


              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.

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


              1. kekekeks
                12.01.2017 23:14

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


                1. BlackRaven86
                  12.01.2017 23:40

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


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


    1. OCTAGRAM
      09.01.2017 11:47

      Разработчики, желающие добавить поддержку XP в свои продукты, я имею в виду Inkscape всякие, могли бы зарубить себе на носу, что если им так хочется полезть в msvcrt.dll за новыми функциями, пусть тащат с собой установщик msvcrt 12.0 и лезут в msvcrt120.dll.


  1. dark_snow
    08.01.2017 16:04

    Ну наконец-то. Самое интересное, месяца 4 назад искал способ пару функций «завраппить» ибо нужно было на ХР крайнюю версию оперы\хрома запустить.


  1. lockywolf
    08.01.2017 16:26
    +2

    Такую энергию, да в мирных бы целях. Хоть в тот же WINE-бы поконтрибутить.


    1. homm
      08.01.2017 17:34
      +2

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


    1. Oplkill
      08.01.2017 17:56
      +1

      Проект ReactOS не только берет наработки из WINE, но и вносит правки в него


  1. Keyten
    08.01.2017 16:54

    Напрашивается идея совместимости с React OS.


    1. Jeditobe
      08.01.2017 17:08
      +2

      Сначала желательно добиться совместимости с XP и 2003 окончательно, тогда с ReactOS все получится автоматом.


  1. VaalKIA
    08.01.2017 17:16
    +2

    Ещё есть очень старый проект, я с помощью него FAR под DOS пользовал:
    http://www.doswin32.com/index.html


    1. Jeditobe
      08.01.2017 17:25

      Угу, это расширитель ДОС на стероидах и с мутагенами.


      1. VaalKIA
        08.01.2017 17:36
        +1

        Тем не менее, мне было очень удобно PowerPC>VirtualPC>DOS>FAR по производительностии, чем Windows95>Far
        Автор, помниться, даже специально по моему запросу фиксил работу под VirtualPC, за что ему огромное спасибо.


        1. VaalKIA
          08.01.2017 19:46

          А за что народ минусует, вы поработайте сначала в виртуалке на Маке 200МГц, когда все проги и барахло своё виндовое за много лет лежит на диске…


  1. DenMMM
    08.01.2017 17:41
    -3

    Существование таких проектов показывает абсурдность и абсолютную ненужность смены версий Виндовс. Ну кроме как «чтобы ченить продать».
    Такой «прогресс» уже откровенно бесит. Только дистрибы пухнут.


    1. Am0ralist
      08.01.2017 17:46
      +12

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


      1. Simplevolk
        08.01.2017 18:36

        Если бы линуксы новых версий выходили платными, то да)) а так- можете пользоваться любыми версиями… Линукс же!


      1. DenMMM
        09.01.2017 10:15
        +3

        Что такого прогрессивного отличает Win10 от WinXP?
        DirectX n-й версии, Кортана, Edge, «плитки», новый дизайн? Это все как-то мало относится к самой ОС…
        Та же подсистема Linux (ну ладно, OS/2) была еще в NT4. А тут вспомнили!
        Только некоторые технологии типа виртуализации действительно что-то новое.


        1. lexa107
          09.01.2017 11:21
          +2

          А почему вы считаете, что прогресса нет? Пример из личной практики. Мы экспериментировали с заменой аллокатора памяти внутри большого игрового проекта. Проект до сих пор поддерживает WinXP ввиду значительной доли аудитории с этой системой. Так вот, заменив стандартный виндовый аллокатор на tcmalloc на WinXP был получен буст производительности ~25%. В то же время на Win7 замена дала буст в пределах допустимой погрешности измерений. Несложно сделать вывод, что как минимум система работы с памятью была переработана. Выводы можете делать сами.


        1. sumanai
          09.01.2017 12:43

          Та же подсистема Linux (ну ладно, OS/2) была еще в NT4.

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


        1. Am0ralist
          09.01.2017 13:25

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


          1. sumanai
            09.01.2017 15:40

            плюс запрет писать программам в определенные места

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


            1. Am0ralist
              09.01.2017 15:49

              Даже под обычными пользователям в Program Files в XP прав хватало писать.

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


              1. sumanai
                09.01.2017 15:58

                Даже под обычными пользователям в Program Files в XP прав хватало писать.

                У вас были какие-то проблемы, или сборка, или неправильно настроенный образ ОС. Ибо стандартные права доступа запрещают запись из-под пользователя куда-либо на системном диске, кроме своего домашнего каталога и общих документов.


                1. Am0ralist
                  09.01.2017 17:45

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

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


                  1. sumanai
                    09.01.2017 17:49

                    Как минимум у опытных пользователей

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

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


                    1. Am0ralist
                      09.01.2017 17:58

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

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

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


                      1. sumanai
                        09.01.2017 18:03

                        Ну, из-за требований пром.софта приходилось давать.

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

                        Я бы симлинк сделал.


    1. dark_snow
      08.01.2017 20:36
      +2

      А вы сударь не забывайте, что есть корпоративный сектор в котором может (и используется) та же ХР (банкоматы etc) и обновлять целиком ось не каждый захочет


    1. Kuprijan
      08.01.2017 20:52
      -2

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


      1. enamchuk
        09.01.2017 13:18
        +1

        Вот как раз поддержка старого ПО в новых Windows реализована лучше всех, и обновиться без переустановки можно с Windows 3.1 до Windows 10 (пройдясь через все версии). Ubuntu же ломался не раз и не два после глобального обновления, и по-мелочи после незначительных. Не гуру в Linux, но и руки не совсем кривые.


  1. drEgo
    08.01.2017 20:51

    А где-нибудь рабочий билд уже есть?


    1. Jeditobe
      08.01.2017 20:52
      +1

      Где-нибудь есть. А можно скомпилировать самому. Там все готово для этого.


      1. drEgo
        08.01.2017 22:09

        Не у всех есть такая возможность, по разным причинам. Я понимаю, что проект сейчас нацелен на поиск контрибьютеров и кому надо, тот соберёт себе, но простым смертным тоже хочется глянуть, что там за зверь.


        1. Jeditobe
          08.01.2017 22:29

          Я думаю, будет логично попросить это прямо на гитхабе, а не здесь.


  1. sumanai
    08.01.2017 23:12

    Как с драйверами?


    1. Jeditobe
      09.01.2017 13:19
      +2

      Как с драйверами для XP


      1. sumanai
        09.01.2017 15:41

        Вот это печалит. Если программам можно найти аналоги или просто сидеть на старых версиях, то запустить на новом железе без дров- совсем печально выходит.


        1. Jeditobe
          09.01.2017 17:08

          У большинства людей уже есть необходимое железо, и именно поэтому они не хотят слезать с ХР. Что новые программы (новые версии старых) отказываются от старого апи.


          1. sumanai
            09.01.2017 17:18

            Железо не вечное. Даже мой не самый новый десктоп не полностью поддерживает XP, хотя и работает хорошо. На свой новый ноутбук я даже не пытался ставить свою любимую XP, ибо понимаю, что это дохлый номер.


            1. Jeditobe
              09.01.2017 17:19

              Новое — не вечное. А вот старое раньше с большим ресурсом выпускали из-за более крупных техпроцессов в нанометрах.


  1. neit_kas
    09.01.2017 01:35

    Не хотят забывать старую добрую XP) Собственно, тоже до сих пор дома трудятся пара компов, ака «печатная машинка», с XP на борту. Очень разачаровал тот факт, что Cygwin прекратил поддержку XP. Попробую на досуге запустить с этим API.
    p.s.
    Эх, кто бы ей ещё написал загрузчик для UEFI. Стоит отметить, под Itanium есть.


    1. Jeditobe
      09.01.2017 13:20
      +2

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


      1. sumanai
        09.01.2017 15:42

        Где можно посмотреть текущий прогресс по этой задаче? Я конечно клонировал как-то себе репозиторий ReactOS, но так просто там не разберусь.


        1. Jeditobe
          09.01.2017 17:29
          +1

          1. sumanai
            09.01.2017 17:34

            Fuck you binutils.

            Состояние проекта ясно, спасибо!


            1. Jeditobe
              09.01.2017 17:41

              Между прочим, это третий человек в этом списке.

              image


              1. sumanai
                09.01.2017 18:01

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


                1. Jeditobe
                  09.01.2017 23:34
                  +1

                  Ионеску обычно работает в локальной рабочей копии, а коммитит по настроению и сразу пачками.


            1. prefrontalCortex
              10.01.2017 20:41
              +1

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


      1. neit_kas
        09.01.2017 21:39

        Кстати, на вики нашёл:

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

        Кто-нибудь в курсе, под GRUB2 тоже могёт?


  1. sumanai
    09.01.2017 21:29

    А вообще, я вспомнил, где я это видел. Это пользователь Samuka с BetaArchive, уже восьмой год пилящий свою ОС Shorthorn на базе Longhorn. Там же можно было скачать бинарный пакет One Core API, его наработки в ОС Shorthorn и прочее. Работоспособность его One Core API там подвергали сомнению.
    Но он не выкладывал свои наработки по этому проекту в открытый доступ, это приватный проект, так что не знаю, можно ли его называть OpenSource.


    1. Jeditobe
      09.01.2017 23:33

      Его последнее сообщение там

      Happy new year for everybody! I'm in vocation, but, on return, i will release the official site project, with links, tutorials and more!


      1. sumanai
        10.01.2017 05:20

        Да я читал. Но ссылок на этот репозиторий там нет.


        1. svyatpro
          10.01.2017 14:45

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


  1. lola_term
    10.01.2017 03:27

    зачем эти извраты, есть wine/crossover, есть линукс…


    1. Jeditobe
      10.01.2017 14:46

      Если вам не надо, не значит что не надо другим.