OSDev
http://osdev.su/

Разработка ОС полвека назад
http://osdev.su/viewtopic.php?f=18&t=1022
Страница 1 из 1

Автор:  Bire [ 29 ноя 2014, 00:09 ]
Заголовок сообщения:  Разработка ОС полвека назад

Стал недавно интересоваться осдевом. И вот в моей бедовой головушке возник вопрос: а как писались ОС времён МС-ДОС и раньше? Сейчас у всех винда/линукс, куча софта - пиши оси - не хочу. здесь написано, что первые версии UNIX бали написаны на ассемблере. А под чем эти версии компилировали? Под чем в свою очередь компилировали то, под чем компилировали UNIX? :-) В общем, прошу помочь совершить ньюфагу экскурс в историю, желательно со статьями/книгами или просто подробным рассказом. Заранее благодарен.

Автор:  Bargest [ 29 ноя 2014, 00:37 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

Можно один раз написать программу-транслятор на машинных кодах, к примеру, вручную скомпилировав ассемблерный код в массив байт на листочке. Имея транслятор, можно написать и другие вещи.
Когда-то давно вообще на перфокартах программировали. Запись программы на перфокарту как раз по сути и есть ручная трансляция.

Автор:  SII [ 29 ноя 2014, 04:58 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

"Запись программы на перфокарту" не имеет ни малейшего отношения к ручной трансляции. Перфокарта -- всего лишь носитель данных; ей плевать, что на ней пробито. Обычно на них пробивали отнюдь не машинный код, а исходные тексты программ на том или ином языке.

Изначально программировали прямо в машинных кодах: человек сначала писал алгоритм на обычном человеческом языке или рисовал блок-схему, а потом сам же переводил её в машинный код той машины, с которой он работал. Потом придумали языки ассемблера и трансляторы для них. Язык ассемблера отражает машинный код конкретной машины, однако удобочитаем для человека; ассемблер (транслятор с языка ассемблера в машинный код) переводит текстовую запись программы с языка ассемблера в машинный код. Понятно, что первый ассемблер писался в машинных кодах вручную, а уже после этого с его помощью можно было писать другие программы (и его самого) на языке ассемблера. Аналогичным образом, первые компиляторы языков высокого уровня (в частности, Фортрана) писались на языке ассемблера.

Автор:  Bire [ 29 ноя 2014, 07:22 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

Выходит, процесс написания ассемблера сначала в машинных кодах, а потом компилятора программ на языках высокого уровня приходилось повторять для каждой архитектуры заново? И нет ли инф-ции о том, как разрабатывалась MS-DOS? Чего-то вроде мемуаров авторов?
И ещё: как программы на машинных кодах в разные времена скармливались компьютерам? Вот стоит железка без тени интеллекта. Как записать в загрузочный сектор что-либо, если в мире не существует жёстких дисков с софтом для записи на жёсткие диски? Это пространный пример, но, надеюсь, суть вопроса ясна.

Автор:  SII [ 29 ноя 2014, 14:00 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

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

Никаких "загрузочных секторов" в "древности" не существовало -- хотя б по той причине, что не было дисков. На самых ранних машинах программа и данные вводились вручную с пульта управления прямо в оперативную память. Довольно быстро для ввода приспособили перфокарты и перфоленты: на специальных устройствах подготовки данных производилась пробивка необходимых дырок, после чего производилось считывание перфоленты или колоды перфокарт в память машины (поздней такое же появилось и для магнитных лент; у нас подготовка данных на вычислительных центрах велась на перфокартах и магнитных лентах ещё в 1980-х, а ленты дожили до 1990-х; на Западе это хозяйство умерло лет на 10 раньше за счёт внедрения терминалов сначала на электрических пишущих машинках, а потом и на более-менее привычных нам дисплеях и клавиатурах; в СССР сие дело имелось, но появилось позже и в ограниченном количестве, что и вынуждало сохранять подготовку данных устаревшим способом). Для считывания применялись три способа: 1) вручную в память вводили программу начальной загрузки (там всего несколько команд, так что это хоть и неудобный, но не шибко медленный способ; кроме того, во многих случаях эта программа могла храниться в памяти постоянно, если только целевой программе не требовался весь доступный объём ОЗУ -- впоследствии этот способ стал самым распространённым, а начальный загрузчик стал помещаться не в ОЗУ, а в ПЗУ); 2) использовалось устройство считывания, способное осуществлять передачу в память самостоятельно, без участия процессора, и при этом имеющее необходимое ручное управление; 3) сам процессор тем или иным способом умел выполнять загрузку с одного или некоторых устройств стандартным образом (к последним относятся, например, мэйнфреймы IBM, впервые появившиеся в 1964-м и выпускаемые до сих пор; там на пульте управления набирается адрес загрузочного устройства и нажимается кнопка "Загрузка", после чего процессор считывает с заданного устройства загрузочную запись и с её помощью продолжает процесс загрузки).

Автор:  Himik [ 29 ноя 2014, 17:04 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

По MS-DOS
https://ru.wikipedia.org/wiki/MS-DOS
http://old-os.ucoz.com/publ/stati/dos/k ... m/2-1-0-17

Автор:  pavia [ 29 ноя 2014, 18:13 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

В догонку про мс-дос
http://www.computerhistory.org/press/ms ... -code.html

Автор:  Bire [ 29 ноя 2014, 19:05 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

Всем спасибо за информацию.

Автор:  pavia [ 29 ноя 2014, 20:44 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

На самом деле это тема большая. Можете ещё почитать журнал "радио". Про программы "монитор" и схемы надо смотреть. Тогда разработки были уникальные. Раньше ключам задавались программы.
На самом деле проще начать с 8080, z80 и 8086 процессоров для них схем много.

Мне тоже было это интересно. Но я так до правды не докопался. Зато схемотехнику освоил и понимаю как можно сделать.

Автор:  Yoda [ 01 дек 2014, 14:04 ]
Заголовок сообщения:  Re: Разработка ОС полвека назад

Bire писал(а):
Выходит, процесс написания ассемблера сначала в машинных кодах, а потом компилятора программ на языках высокого уровня приходилось повторять для каждой архитектуры заново?

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

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/