LINUX.ORG.RU
ФорумTalks

Microsoft открыла код 86-DOS и PC-DOS под лицензией MIT

 , , , ,


0

1

https://www.opennet.ru/opennews/art.shtml?num=65332:

Компания Microsoft опубликовала под лицензией MIT исходный код операционных систем 86-DOS 1.00 и PC-DOS 1.00, а также runtime-библиотеки компилятора Microsoft BASIC-86, ассемблер SCP, утилиты CHKDSK и EDLIN. PC-DOS 1.00 примечателен тем, что был первым выпуском DOS для компьютеров IBM PC. Код был восстановлен в рамках проекта по реконструкции кода первых версий DOS для CPU 8086, путём сканирования и транскрибирования архивных бумажных распечаток, созданных в 1981 и 1982 годах.

★★★★★

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

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

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от firkax

комментариев которых там конечно не будет

А они там есть.

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

dataman ★★★★★
() автор топика

4 тысячи строк на ассемблере и вот вам «ОС» - во времена были.

Сейчас в grub2 логики в несколько раз больше.

wandrien ★★★★
()
Ответ на: комментарий от dataman

Комментарий ты мой не прочитал либо не успел понять, но ответить в критическом тоне спешишь.

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

firkax ★★★★★
()
Ответ на: комментарий от firkax

исключительно ради документальной истории,
некромантам кода такое наверное уже и не интересно даже )

Sylvia ★★★★★
()
Ответ на: комментарий от firkax

главного отличия выложенных исходников от тех, которые и так у всех были.

И ты, конечно же, можешь продемонстрировать механизм получения двоичной версии MS-DOS из дизассемблированных исходников, где код отличен от db ?

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

r--r--r--
()

#потоксознания

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

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 1)
Ответ на: комментарий от r--r--r--

Нет, демонстрировать я ничего не буду.

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

где код отличен от db

Понять, где в исходнике было DB, а где ассемблерные инструкции, дизассемблер конечно на 100% не сможет, но это весьма незначительная мелочь. А ещё он на 100% не сможет выровнять инструкции по правильным байтам, но это мелочь ещё более незначительная и актуальная в основном для обфусцированного кода (дос - не такой).

firkax ★★★★★
()
Ответ на: комментарий от firkax

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

Нет, демонстрировать я ничего не буду.

У тебя столько ошибок во фразе "я - балабол", что я даже сосчитать не берусь.

r--r--r--
()
Ответ на: комментарий от Bfgeshka

Ребята из freedos хорошо кушать будут теперь!

Насколько я помню он многозадачный и х32. Ребятам из freedos эта некрофилия не нужна от слова совсем.

Ygor ★★★★★
()
Ответ на: комментарий от firkax

и этот листинг не сильно отличается от настоящего исходника

всмысле «код не особо оптимизирован»? А как на счёт идентификаторов? Ведь это ещё важнее, чем комментарии.

seiken ★★★★★
()
Ответ на: комментарий от tiinn

IBM и MS согласились с тем, что каждая из сторон имеет право дальше делать со своей копией той версии DOS (там была не 6.х), что хочет. MS опубликовала свою версию. Насколько она соответствует версии от IBM - не известно. MS была разработчиком DOS до "развода" с IBM - в этих версиях код идентичный.

После развода IBM создали OS/2.

Кроме того на базе DOS от IBM так же как от MS создавались рабочие станции Novell Netware (на этом месте густо запахло серой) до самого конца 90-ых, которые потом были в эксплуатации еще до середины нулевых.

r--r--r--
()
Ответ на: комментарий от scanner

Это у MS-то не bloatware?

Блоатварью, если использовать это слово, может являться Юникс. Юникс был намного сложнее Доса — это факт.

Да и чему там учиться? Писать код всей ОС в одном файле?

Ну да — и получить при этом удобную систему. Практика не беспрецедентная и весьма полезная в наше время, когда масштабы ПО разрослись экспоненциально.

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 1)
Ответ на: комментарий от kaldeon

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

scanner
()
Ответ на: комментарий от scanner

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

Это очень мало. В 7 издании юникса только ядро было в пределах 10,000 сишного кода.

Разделение на файлы вообще не принципиально.

kaldeon ★★
()
Ответ на: комментарий от scanner

в 10000 строк сишного кода разобраться легче, чем в 4000 ассемблерного

Вообще не обязательно. Язык Си нередко называют портабельным ассемблером. То есть он просто убирает бойлерплейт. Это обозначает, что в пределах тысячи строк сишного кода можно написать ещё больше алгоритмов. Кроме того, нужно делать поправку на время: в тот период код на Си редко был чистым и ясным, хотя Юникс, вероятно, страдал этим пороком в меньшей степени.

Но всё это мелочи. 10,000 строк Юникса — это только ядро. В юзерспейсе количество строк легко насчитает сотню тысяч, в то время как 4,000 строк в Досе — это конец.

kaldeon ★★
()
Последнее исправление: kaldeon (всего исправлений: 3)
Ответ на: комментарий от scanner

Конкретно дос тех времён - точно не блоатварь. И вообще, в те времена у всех производителей ПО ситуация была лучше чем сейчас. Причины того думаю есть разные: 1) на первых IBM PC вся память была 64кб (а в дешёвых моделях ещё меньше), 2) на ассемблере много и быстро код не нафлудишь, 3) программисты тех времён ещё не научились делать блоатварь.

И почему ты решил что в родном файле? В разных.

firkax ★★★★★
()
Ответ на: комментарий от wandrien

Копия или не копия, но исходники первого доса думаю не нужны не только им, но и не нужны были даже конкурентам микрософта из 90-х. Первый дос даже от 2.0 капитально отличается, в нём нет даже индексных файловых дескрипторов.

firkax ★★★★★
()
Ответ на: комментарий от scanner

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

firkax ★★★★★
()
Ответ на: комментарий от tiinn

А кто ж их знает. Но судя по сабжу, IBM там не решает (по крайней мере в 2026).

quwy
()
Ответ на: комментарий от firkax

Да уж, я думал, там сишка. Но всё равно в асме там всякие макры, метки…

seiken ★★★★★
()
Ответ на: комментарий от r--r--r--

Это не делает её ни 32 битной, ни многозадачной.

wandrien ★★★★
()
Ответ на: комментарий от dimgel

Он всё ещё нужен очень много кому. Конечно, не эта допотопная версия. Для более актуальных версий, драверы сетевых карт Intel, например, выпускались до 2022 (!) года. Ни для каких доисторических Windows не выпускались, а для DOS - выпускались. И это не случайно. Железо DOS-совместимое и сейчас в продаже имеется. Эту совместимость не просто так тянут. Огромное количество ПО для DOS всё ещё не заменено. DOS использовали в своё время как псевдо_RT ОС, с лёгким доступом к оборудованию. Это всё ещё не заменено.

lenin386 ★★★★★
()
Ответ на: комментарий от kaldeon

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

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

lenin386 ★★★★★
()
Ответ на: комментарий от lenin386

Ассемблер всегда копилируется в один и тотже бинарный код

Строго говоря, это не всегда так. Возможны вариации в кодировании инструкций.

wandrien ★★★★
()
Ответ на: комментарий от r--r--r--

механизм получения двоичной версии MS-DOS из дизассемблированных исходников, где код отличен от db

Загрузить в IDA :)

IDA — не единственный дизассемблер, который это умеет, такие существовали уже в начале 1990-х. С MS-DOS не пробовал, но с другими программами под 8088 IDA неплохо справлялся. Учитывая размеры ­— килобайты и десятки килобайт — можно действовать перебором, пытаться дизассемблировать подозрительные блоки данных и превращать в данные бессмысленный код.

question4 ★★★★★
()
Ответ на: комментарий от question4

можно действовать

Действовать-то, конечно, можно. Но почему-то никто не действует, и заява:

Ну код то в целом и так у всех был, …, и этот листинг не сильно отличается от настоящего исходника,

Грустно висит в воздухе без единого намёка на какое-либо подобие пруфа.

r--r--r--
()
Ответ на: комментарий от question4

IDA — не единственный дизассемблер, который это умеет, такие существовали уже в начале 1990-х.

Сразу же вспомнился Sourcer. :)

Оказалось, что я не одинок.
https://github.com/zhmu/sourcers:

In the early to mid ’90ies, Sourcer was one of my tools of choice. Given some binary executable file as input, it would generate an assembly listing. This listing could be further analyzed and annotated using a text editor.

Но суффикс rs как бы намекает. :)

dataman ★★★★★
() автор топика
Ответ на: комментарий от dataman

Сразу же вспомнился Sourcer. :)

Наверное, про него я и вспоминал.

question4 ★★★★★
()
Ответ на: комментарий от r--r--r--

MS опубликовала свою версию. Насколько она соответствует версии от IBM - не известно.

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

После развода IBM создали OS/2.

Вообще-то они полумуха вместе пилили. Ну и сам факт наличия vms c win 3.1 в «последних» версиях полумуха как бы намекает, что «развод» произошел «немного позднее» 87-го.

так же как от MS создавались рабочие станции Novell Netware

Это не от MS было и не чистый Novell Netware. То, что новеловские клиенты были и под MS это понятно, но не более того.

которые потом были в эксплуатации еще до середины нулевых.

Дольше.

anc ★★★★★
()
Ответ на: комментарий от wandrien

Строго говоря DOS не является полноценной операционной системой в современном понимании. Например в DOS отсутствует планировщик задач, нет даже кооперативной многозадачности.

X512 ★★★★★
()
Ответ на: комментарий от X512

Она и по тем временам не являлась.

Сравнить хотя бы с RSX-11, не говоря уж о OpenVMS и Unix.

wandrien ★★★★
()
Ответ на: комментарий от anc

у ms были undocument фичи. На эту тему даже отдельная книжка была, ну или глава в какой-то книжке.

По-моему, в книгах Фроловых.
И, вроде бы, в журнале «Монитор» иногда писали, но могу ошибаться.

dataman ★★★★★
() автор топика
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)