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/ |