OSDev

для всех
Текущее время: 28 мар 2024, 18:56

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 00:09 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 00:37 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 04:58 

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 07:22 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 14:00 

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 17:04 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
По MS-DOS
https://ru.wikipedia.org/wiki/MS-DOS
http://old-os.ucoz.com/publ/stati/dos/k ... m/2-1-0-17


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 18:13 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
В догонку про мс-дос
http://www.computerhistory.org/press/ms ... -code.html


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 19:05 

Зарегистрирован: 28 ноя 2014, 23:58
Сообщения: 14
Всем спасибо за информацию.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 29 ноя 2014, 20:44 
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Разработка ОС полвека назад
СообщениеДобавлено: 01 дек 2014, 14:04 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
Bire писал(а):
Выходит, процесс написания ассемблера сначала в машинных кодах, а потом компилятора программ на языках высокого уровня приходилось повторять для каждой архитектуры заново?

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB