LINUX.ORG.RU

На чем компилируется линукс?

 , , разработка ос


0

1

Привет, лор!

В общем-то, я далек от темы разработки операционных систем, но сегодня вдруг стало интересно:

Вот если исходники линукса компилируются с помощью make и gcc, то как скомпилировать их при отсутствии ОС?

А кто компилирует при отсутствии ОС?

vurdalak ★★★★★
()

На чем компилируется линукс?

На ЭВМ.

anonymous
()

Вот если исходники линукса компилируются с помощью make и gcc, то как скомпилировать их при отсутствии ОС?

Никак.

DeVliegendeHollander ★★
()

то как скомпилировать их при отсутствии ОС?

В уме. А вообще, есть tccboot от известного маньяка Белларда.

devl547 ★★★★★
()

В общем-то, я далек от темы разработки операционных систем, но сегодня вдруг стало интересно:

wiki.osdev.org

aristocraft
()

Вот тебе ещё пища для размышлений: как скомпилировать компилятор, если нет компилятора? Как собирается make, если для сборки нужен make?

i-rinat ★★★★★
()

Линус Торвальдс первые версии линукса компилировал под Minix, с помощью make и gcc (и ещё gas)

Harald ★★★★★
()

как скомпилировать их при отсутствии ОС?

ОС не ОС, а без биоса ничего не запустится. В современных биосах столько всего напихано, что компилятор будет выглядеть как галочка "[X] Rebuild OS before run".

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

Тоесть все начинается с какого-нибудь архаизма на асме, там делаем компилятор, что-то более высокоуровневое и так далее?

Genesis_39
() автор топика

Про миникс уже сказали, так что... Как сыграть на балалайке, если есть только гитара. Как построить квартиру отдельно от дома.

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

Ну почему жа? Можно ещё из загашников старый добрый DOS выкопать, смахнуть пылищу, и... :)

/* просто вспомнил древний мем: «DOS — не ОС, это всего лишь программный монитор» */

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

А я не сам, я с батей и братом у себя в саду, но вопрос именно про квартиру. =)

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

Ага, ставим, значится, MASM + Turbo C++, и уперёд.

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

не архаизм, а почти полноценная и современная по тем временам Unix-like ОСь, на которой запускались все необходимые для разработки программы

а вообще да, первый экземпляр инструмента более высокого уровня делается при помощи низкоуровневых инструментов,

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

Harald ★★★★★
()

как скомпилировать их при отсутствии ОС

Модифицировать gcc-совместимый компилятор, дабы работал без ОС, либо изготовить gcc-совместимый аппаратный компилятор.

anonymous
()

В чуть более старой версии GCC и ядра Linux. И так много-много раз, и отматываем время до годов изобретения Linux и GCC. Меняем их на ядро системы и кмпилятор того времени. Ещё мотаем время назад.

Видим что первые компиляторы были написаны на чистых машинных кодах. Появилась примитивная ОС. Чуть позже появлялись всё менее примитивные ОС, которые были скомпилированы в предыдущих своих версиях. Ещё мотаем вперёд, мотаем сильно вперёд. Видим что первое в мире ядро Linux 2.6.0 скомпилировано в системе с ядром Linux 2.4.x, а 3.0 в 2.6.x.

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

Это неправда! Он все это делал исключительно в своей голове (Танненбаум - это его воображаемый друг). Да и kernel.org - это всего лишь вывеска, ложки нет. А ЛОР ему снится.

slackwarrior ★★★★★
()

слава рокросс-компиляции!

u283
()

Как-то так:

Я, когда молодой и глупый был, интересу ради решил построить себе среду разработки почти с нуля. Разрешил себе использовать только ассемблер. Можно было и в машинных кодах писать - но я уже тогда с алкоголем завязал. На ассемблере написал минимальное ядро Форта, на Форте - простейший интерпретатор Лиспа. На этом Лиспе - компилятор Лиспа посложнее, а на нем уже - компилятор для довольно немалого подмножества Си и для полного Виртовского Паскаля. Все это заняло пару месяцев работы по вечерам.

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

...первые компиляторы были написаны... Появилась примитивная ОС...

А не наоборот?

Deleted
()
Последнее исправление: rht (всего исправлений: 1)

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

Хотя процесс таки был улучшен, перфокарты и телеграфную ленту никто не отменял.

Deleted
()

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

it-nativa
()
Ответ на: комментарий от sleepflint

почему обязательно перфоленту? На перфоленте отверстия, а на ленте из телетайпа - буквы и цифры, человекочитаемые. Телетайпы изначально использовались для телеграфа, но потом их приспособили как периферийное устройство для тогдашних компов, так что «телеграфная лента» тоже правильный термин :)

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

ну не знал я как она называется, вернее первая ассоциация - телеграммные шифровки времен дедушки ленина.
:-))

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

И что на телетайпе для ввода в ЭВМ набивалось? Точно буквы и цифры человекочитаемые? :) А телетайпы и сейчас кое-где используются – для телетайпа. :)

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

И что на телетайпе для ввода в ЭВМ набивалось? Точно буквы и цифры человекочитаемые? :)

Ну да, а что ещё?

Делаешь в этом нашем линуксе ls -l /dev/tty* и видишь историческое наследие 50-х годов

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

Ну тут всё ясно. Первой была программа вычисления чисел Бернулли для машины Чарльза Бэббиджа. На этой машине не было ни ОС, ни компилятора. :)

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

на ленту печатались данные, выводимые компьютером, а с клавиатуры буковки и циферки вводились прямо в компьютер, опционально с параллельным выводом на бумагу для контроля

Harald ★★★★★
()

Разработчик OS/2 знал бинарный код загрузчика наизусть. И вообще: paper - ultimate debugger, ну и средство разработки.

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

gcc-совместимый компилятор, дабы работал без ОС, либо изготовить gcc-совместимый аппаратный компилятор.

даешь gccOS! Ну а что, emacsOS есть, firefoxOS есть, bolgenOS есть, чем gcc хуже?

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

Что было первым ОС или компилятор?)

бог создал перво-ОС и компилятор

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Harald

"почему обязательно перфоленту?"

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

А было следующее:

1. наборные доски (седая древность). 2. перфокарты (2-3 поколение ЭВМ). 3. перфоленты (мини-ЭВМ). 3. Магнитные носители (ленты)

На любой ЭВМ в те далекие времена была обязательная программа - ассемблер (+ линкер), которая могла выполняться без ОС. Она и раскручивала ОС (которая писалась только на ассемблере), если таковая ОС существовала для данной ЭВМ (архитектур было море).

В дальнейшем, когда ОС стали могучими программами, с ЭВМ всегда поставлялась минимальная ОС для генерации рабочей ОС.

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

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

Artificial_Thought ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.