"Если 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.
Комментарии (87)
brand2000
08.01.2017 15:52-1пожалуйста, уберите в статье оформление текста!
вы убиваете возможность нормально читать на устройствах и rss читалках, где разрешение экрана меньше строки оформленного вами текста.
благодарю.Jeditobe
08.01.2017 15:52Важной информации там нет.
brand2000
08.01.2017 15:56-1в том то и дело, что важной нет, а текст и картинки разъезжаются из-за текста в начале статьи и приходится скролить туда сюда…
да даже просто браузер с прокруткой показывает.
ну ведь не сложно проверить статью, хотя бы после публикации…Jeditobe
08.01.2017 16:03Я проверял, на моих устройствах все ровно, в том числе и на смартфоне с весьма скромной диагональю и разрешением по нынешним временам и дефолтном браузере. Я думаю, ваши вопросы нужно адресовать администрации Хабра.
Картинкаhomm
08.01.2017 17:31-8Программист, разработчик операционной системы, работающий на куче железа, пишущий софт, работающий в нескольких операционных системах:
Я проверял, на моих устройствах все работает
Господи
Jeditobe
08.01.2017 17:36+5Издательская система Хабарахабр не мой продукт, ответственность за корректность его работы несу не я. Я использовал стандартную функцию системы. Проверил на маленьких разрешениях и разных на устройствах, общий рынок которых совокупно превышает 98%. Везде результат был приемлемым.
homm
08.01.2017 17:44-5Я использовал стандартную функцию системы.
Вы использовали неразрывные пробелы для отступов заданной, удобной вам ширины.
Jeditobe
08.01.2017 17:55+6И ни на одном популярном устройстве даже с маленьким экраном это не вызвало сколько-нибудь существенных проблем для чтения статьи в целом.
Я использовал тег pre, который есть в официальном списке тегов. И он не должен влиять на текст статьи целиком, а если влияет, то это баг.
Данная дискуссия бесполезна и не имеет отношения к опубликованному материалу.brand2000
08.01.2017 21:11-1похоже придётся таки минусующим таки сказать, что первая строка была пофикшена ещё в 18:00, а вы всё минусите… здоровья вам!
а вообще удивительно, сколько сложностей, времени вызвало столь элементарная просьба…
и ещё на этом нахватать минусов…
тем более на таком ресурсе.
kekekeks
08.01.2017 16:02Там только проблема одна есть — оно бесполезно для разработчиков, желающих добавить поддержку XP в свои продукты. Ввиду лицензии.
Jeditobe
08.01.2017 16:04+1Лицензии чего?
kekekeks
08.01.2017 16:07+2На код. Она не LGPL как у Wine, а GPL. Соответственно нельзя просто так взять и поставлять этот враппер в составе коммерческого продукта, как это делают с winelib.
Jeditobe
08.01.2017 16:10Зато можно прекрасно поставлять отдельным инсталлятором. И сказать:
1. Поставьте эту среду.
2. Поставьте наш продукт
3. Profit
А если честно, в данном случае, никого не остановит это разногласие в лицензиях.kekekeks
08.01.2017 16:20+1Выглядит как какое-то очень костыльное решение, но можно попробовать.
Кстати, а из-за чего именно в качестве лицензии ReactOS была выбрана именно GPL, а не LGPL как у вайна?
ukt
08.01.2017 17:15+1Собственно вы уже выше сами ответили:
На код. Она не LGPL как у Wine, а GPL. Соответственно нельзя просто так взять и поставлять этот враппер в составе коммерческого продукта, как это делают с winelib.
Как по мне, так сделано для того, что бы наработки по ДХ10(или врапперу) в реактОС добавить, и, что бы оно только там осталось.
Хотелось бы комплект скомпилированных файлов(в виде инсталлера или ином виде), что бы можно было попробовать запустить хевен бенчмарк, например.
Группа РеактОС, вы делаете крутые вещи, за что вам респект.
Jeditobe
08.01.2017 17:16+1https://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 под другими лицензиями или с двойным лицензированием.
BlackRaven86
09.01.2017 15:07А можно ли его вообще использовать для запуска проприетарного ПО? Если эти библиотеки подгружаются в процессе работы, то мы получаем производное произведение (derivative work).
Jeditobe
09.01.2017 15:26Вполне можно. Произвольное произведение должно быть неразрывным. А этот слой сам по себе, может быть установлен отдельно по решению пользователя и может запускать кучу другого ПО. Кроме того ПО пишется с совместимостью под Windows Х версии, а не под слой.
Нет тут производного произведения.BlackRaven86
09.01.2017 20:42Если приложение подгружает библиотеку, например через аналог dlopen() — то это уже производное произведение с приложением (либо с Windows, смотря кто подгружает библиотеку).
Я так понимаю, относительно легальный способ — это чтобы пользователь сам поставил этот слой совместимости (и, таким образом, сам сделал производное произведение). Но тут еще надо учитывать лицензию на проприетарный продукт.
BlackRaven86
08.01.2017 23:37-1Если лицензия совместима с GPL — никаких проблем.
kekekeks
09.01.2017 05:39+2В общем, тут проблема как раз с этим если. И с тем фактом, обычный разработчик в своей обычной профессиональной деятельности (то есть, на работе в коммерческой конторе за деньги) воспользоваться этим кодом не может. Что делает поддержку XP силами самой конторы коммерчески невыгодной затеей. Можно много спорить и ломать копья по этому поводу, но:
- очередное ПО будет продолжать быть несовместимым с XP
- проект не дождётся от вышеуказанной конторы патчей, которые могли быть написаны в процессе допиливания под это самое ПО.
Будь оно под MIT или хотя бы LGPL, ПО бы успешно допилили под XP, а проект, возможно, получил бы патчи. А может быть и не получил. Но "может быть" всяко лучше "точно не".
Таким образом чья-то вера в культ Столлмана в итоге сделала мир чуть более худшим местом, чем он мог бы быть. Вообще применение GPL для библиотек (для программ она отлично подходит) по сути своей лишено здравого смысла и является вопросом скорее религии и желания обратить остальных в свою веру.
NickKolok
10.01.2017 19:18Хорошо расписано на сайте GNU. Библиотека уникальна, так что да, всё верно. И библиотеку можно считать системной (напомню, это означает всего лишь, что она не распространяется вместе с продуктом), так что всё прекрасно.
kekekeks
11.01.2017 12:50Да, там хорошо расписано, что братья в вере должны помогать друг другу и не должны помогать неверным. Прямо в третьем абзаце. Этакий радикальный ислам.
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.
Речь идет о неравных условиях для разработчиков свободного и проприетарного ПО, когда вторые могут использовать библиотеки, написанные первыми, а вот разработчики свободного ПО использовать проприетарные компоненты не могут.
kekekeks
12.01.2017 23:14Ну я и говорю, радикальный ислам. Давайте нагадим тем, кто посмел работать за зарплату.
BlackRaven86
12.01.2017 23:40Нет вы лжете и перекручиваете. Разработчиков проприетарного ПО никто не заставляет использовать библиотеки под GPL. Они могут пользоваться другими библиотеками или разрабатывать свои.
И вообще, заканчивайте это ваш BSD-срач.
OCTAGRAM
09.01.2017 11:47Разработчики, желающие добавить поддержку XP в свои продукты, я имею в виду Inkscape всякие, могли бы зарубить себе на носу, что если им так хочется полезть в msvcrt.dll за новыми функциями, пусть тащат с собой установщик msvcrt 12.0 и лезут в msvcrt120.dll.
dark_snow
08.01.2017 16:04Ну наконец-то. Самое интересное, месяца 4 назад искал способ пару функций «завраппить» ибо нужно было на ХР крайнюю версию оперы\хрома запустить.
VaalKIA
08.01.2017 17:16+2Ещё есть очень старый проект, я с помощью него FAR под DOS пользовал:
http://www.doswin32.com/index.htmlJeditobe
08.01.2017 17:25Угу, это расширитель ДОС на стероидах и с мутагенами.
VaalKIA
08.01.2017 17:36+1Тем не менее, мне было очень удобно PowerPC>VirtualPC>DOS>FAR по производительностии, чем Windows95>Far
Автор, помниться, даже специально по моему запросу фиксил работу под VirtualPC, за что ему огромное спасибо.VaalKIA
08.01.2017 19:46А за что народ минусует, вы поработайте сначала в виртуалке на Маке 200МГц, когда все проги и барахло своё виндовое за много лет лежит на диске…
DenMMM
08.01.2017 17:41-3Существование таких проектов показывает абсурдность и абсолютную ненужность смены версий Виндовс. Ну кроме как «чтобы ченить продать».
Такой «прогресс» уже откровенно бесит. Только дистрибы пухнут.Am0ralist
08.01.2017 17:46+12Да-да. Надо еще и линуксами начала нулевых пользоваться, прогресс не нужен.
Simplevolk
08.01.2017 18:36Если бы линуксы новых версий выходили платными, то да)) а так- можете пользоваться любыми версиями… Линукс же!
DenMMM
09.01.2017 10:15+3Что такого прогрессивного отличает Win10 от WinXP?
DirectX n-й версии, Кортана, Edge, «плитки», новый дизайн? Это все как-то мало относится к самой ОС…
Та же подсистема Linux (ну ладно, OS/2) была еще в NT4. А тут вспомнили!
Только некоторые технологии типа виртуализации действительно что-то новое.lexa107
09.01.2017 11:21+2А почему вы считаете, что прогресса нет? Пример из личной практики. Мы экспериментировали с заменой аллокатора памяти внутри большого игрового проекта. Проект до сих пор поддерживает WinXP ввиду значительной доли аудитории с этой системой. Так вот, заменив стандартный виндовый аллокатор на tcmalloc на WinXP был получен буст производительности ~25%. В то же время на Win7 замена дала буст в пределах допустимой погрешности измерений. Несложно сделать вывод, что как минимум система работы с памятью была переработана. Выводы можете делать сами.
sumanai
09.01.2017 12:43Та же подсистема Linux (ну ладно, OS/2) была еще в NT4.
Стоит заметить, что старые подсистемы требовали перекомпиляции бинарных файлов, а новая запускает нативные.
Am0ralist
09.01.2017 13:25Я — «винадмин». Хватает, знаете ли.
И, как минимум, UAC и вообще защита, плюс запрет писать программам в определенные места, это не говоря о всяких сетевых плюшках (были бы все 8-ки на работе, можно было бы надежнее организовать сетевые диски).
А вот скорость XP SP3 уже удручает на слабом железе, т.е. либо SP2 либо, внезапно, семерку ставить.
Да, можно эксгумировать труп годами. Однако за это время линукс, знаете ли, нехило так себя перетряхивал. Чего в рамках XP сделать было бы не возможно.
Ну и денег на развитие винды откуда было бы взять иначе? Это линукс пилят на деньги многих корпораций, винда же пилится на деньги одной.sumanai
09.01.2017 15:40плюс запрет писать программам в определенные места
Замечу, что это просто реализация прав доступа, которые есть во всей линейке NT. Просто раньше всё работало от админа (точнее, все работали от админа), а начиная с Висты с UAC много чего запускается от пользователя. При работе от ограниченного пользователя на XP программы так же не могут писать в системные директории.Am0ralist
09.01.2017 15:49Даже под обычными пользователям в Program Files в XP прав хватало писать.
Для одних конкретных разработчиков это было настолько неожиданное изменение, что даже год тому назад их «новая» версия программы требовала полный доступ к папке, в которую установлена…sumanai
09.01.2017 15:58Даже под обычными пользователям в Program Files в XP прав хватало писать.
У вас были какие-то проблемы, или сборка, или неправильно настроенный образ ОС. Ибо стандартные права доступа запрещают запись из-под пользователя куда-либо на системном диске, кроме своего домашнего каталога и общих документов.Am0ralist
09.01.2017 17:45Как минимум у опытных пользователей всегда были разрешения «изменить» на папках Program Files, что означало, возможность хранить настройки программы в ini файлах.
Если не ошибаюсь, при уходе с XP даже на висту с этим столкнулись многие программы (там у людей даже the bat почту хранил).
Сейчас же даже если пользователь cидит с админскими правами, программы такой возможности не имеют по умолчанию. Ибо в какой-то момент в МС осознали, что без подобных жестких методов программисты и дальше будут творить фигню, наплевав на все добрые советы самой МС. Все более-менее адекватные разработчики это быстро поправили…sumanai
09.01.2017 17:49Как минимум у опытных пользователей
Они де-факто являются чуть ограниченными админами, и поэтому их использование не имеет смысла. Если уж ограничивать, то до простого пользователя, у которого таких прав нет.
Сейчас же даже если пользователь cидит с админскими правами, программы такой возможности не имеют по умолчанию.
Ну да. А для старых программ действует виртуализация ФС. Которая, правда, вводит в недоумение, когда прога грузит конфиг из своего виртуализованного каталога, а ты правишь настоящий и не понимаешь, почему ничего не пашет.Am0ralist
09.01.2017 17:58Они де-факто являются чуть ограниченными админами, и поэтому их использование не имеет смысла.
Ну, из-за требований пром.софта приходилось давать. Хоть как-то ограничить чтоб.
Ну да. А для старых программ действует виртуализация ФС. Которая, правда, вводит в недоумение, когда прога грузит конфиг из своего виртуализованного каталога, а ты правишь настоящий и не понимаешь, почему ничего не пашет.
У меня вот визуалстудия 13-ая забила на то, что папка «Documents» пользователя была перенесена системными средствами в другое место и создала все свои настройки по «верному» пути. Долго думал…sumanai
09.01.2017 18:03Ну, из-за требований пром.софта приходилось давать.
А выяснить и давать права на конкретные каталоги? Хотя да, если прога удаляет старый конфиг и создаёт новый, это не поможет.
Долго думал…
Я бы симлинк сделал.
dark_snow
08.01.2017 20:36+2А вы сударь не забывайте, что есть корпоративный сектор в котором может (и используется) та же ХР (банкоматы etc) и обновлять целиком ось не каждый захочет
Kuprijan
08.01.2017 20:52-2Так это уже давно должно быть понятно, что новые дистрибутивы Win — маркетинг и всё, вот например у Ubuntu — поставил один раз, а потом обновления просто накатываешь — ничего переустанавливать даже не надо. (Не конечно и в Win так делать можно — не установить новую, а обновить существующую — только вот половина программ потом поломаны будут)
enamchuk
09.01.2017 13:18+1Вот как раз поддержка старого ПО в новых Windows реализована лучше всех, и обновиться без переустановки можно с Windows 3.1 до Windows 10 (пройдясь через все версии). Ubuntu же ломался не раз и не два после глобального обновления, и по-мелочи после незначительных. Не гуру в Linux, но и руки не совсем кривые.
drEgo
08.01.2017 20:51А где-нибудь рабочий билд уже есть?
Jeditobe
08.01.2017 20:52+1Где-нибудь есть. А можно скомпилировать самому. Там все готово для этого.
drEgo
08.01.2017 22:09Не у всех есть такая возможность, по разным причинам. Я понимаю, что проект сейчас нацелен на поиск контрибьютеров и кому надо, тот соберёт себе, но простым смертным тоже хочется глянуть, что там за зверь.
sumanai
08.01.2017 23:12Как с драйверами?
Jeditobe
09.01.2017 13:19+2Как с драйверами для XP
sumanai
09.01.2017 15:41Вот это печалит. Если программам можно найти аналоги или просто сидеть на старых версиях, то запустить на новом железе без дров- совсем печально выходит.
Jeditobe
09.01.2017 17:08У большинства людей уже есть необходимое железо, и именно поэтому они не хотят слезать с ХР. Что новые программы (новые версии старых) отказываются от старого апи.
sumanai
09.01.2017 17:18Железо не вечное. Даже мой не самый новый десктоп не полностью поддерживает XP, хотя и работает хорошо. На свой новый ноутбук я даже не пытался ставить свою любимую XP, ибо понимаю, что это дохлый номер.
Jeditobe
09.01.2017 17:19Новое — не вечное. А вот старое раньше с большим ресурсом выпускали из-за более крупных техпроцессов в нанометрах.
neit_kas
09.01.2017 01:35Не хотят забывать старую добрую XP) Собственно, тоже до сих пор дома трудятся пара компов, ака «печатная машинка», с XP на борту. Очень разачаровал тот факт, что Cygwin прекратил поддержку XP. Попробую на досуге запустить с этим API.
p.s.
Эх, кто бы ей ещё написал загрузчик для UEFI. Стоит отметить, под Itanium есть.Jeditobe
09.01.2017 13:20+2Для ReactOS пишется такой загрузчик. Весьма вероятно, что можно будет осуществить пересадку.
sumanai
09.01.2017 15:42Где можно посмотреть текущий прогресс по этой задаче? Я конечно клонировал как-то себе репозиторий ReactOS, но так просто там не разберусь.
Jeditobe
09.01.2017 17:29+1sumanai
09.01.2017 17:34Fuck you binutils.
Состояние проекта ясно, спасибо!Jeditobe
09.01.2017 17:41Между прочим, это третий человек в этом списке.
sumanai
09.01.2017 18:01Не спорю, отличный специалист.
Я указал на этот коммит, потому что он последний из связанных с BOOTLIB и был сделан 11 месяцев назад. Коммиты, отмеченные ROSLOAD или BOOTMGR, ещё старше.Jeditobe
09.01.2017 23:34+1Ионеску обычно работает в локальной рабочей копии, а коммитит по настроению и сразу пачками.
prefrontalCortex
10.01.2017 20:41+1Раньше было в моде определение диагноза пользователя по аватарке, теперь эвона как — состояние проекта по рандомному коммит-мессаджу.
neit_kas
09.01.2017 21:39Кстати, на вики нашёл:
Добавлена поддержка файловой системы ext2 и системного загрузчика GRUB, что позволяет ReactOS работать на одном компьютере с Linux.
Кто-нибудь в курсе, под GRUB2 тоже могёт?
sumanai
09.01.2017 21:29А вообще, я вспомнил, где я это видел. Это пользователь Samuka с BetaArchive, уже восьмой год пилящий свою ОС Shorthorn на базе Longhorn. Там же можно было скачать бинарный пакет One Core API, его наработки в ОС Shorthorn и прочее. Работоспособность его One Core API там подвергали сомнению.
Но он не выкладывал свои наработки по этому проекту в открытый доступ, это приватный проект, так что не знаю, можно ли его называть OpenSource.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!
sumanai
10.01.2017 05:20Да я читал. Но ссылок на этот репозиторий там нет.
svyatpro
10.01.2017 14:45Они не обязаны там быть. Проект менеджится на стороннем ресурсе, и пока выпускать его рано. Все результаты его работы, это не более чем анонс. Первый, я так думаю, альфа билд будет выпущен в скором времени, когда будут прикрыто порядка десятка критических багов.
en1gma
много софта стало 64bit-only, так что нужно ещё 64bit-on-32bit враппер создавать…
Jeditobe
Вроде как там обе версии делают.
Temtaime
Враппером не отделаешься, нужен эмулятор :)