Если Linux является только ядром, то как использовались его первые версии (без распространения)?

112

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

Noop
источник
66
Предпосылка вашего вопроса ошибочна. Вам не нужен дистрибутив для использования Linux. Вам нужно ядро ​​Linux и немного пользовательского кода. Вот и все. «Распределение» - это просто то, что мы называем это, когда кто-то другой собирает их для вас, а не вы делаете это сами.
Йорг Миттаг
9
На самом деле, вначале было больше проблем с куриным яйцом, из-за отсутствия приличных инструментов для конкретных пользователей. Как только парень из MCC Interim Linux взломал это яйцо и сам написал несколько инструментов, по крайней мере fdisk, была открыта дверь для других, чтобы они могли более легко выдвигать свои собственные настройки Linux.
Руи Ф Рибейро

Ответы:

162

На ранних этапах Linux Линус Торвальдс выпустил исходный код ядра Linux в альфа-состоянии, чтобы дать понять другим, что работа над новым Unix-подобным ядром находится в стадии разработки. К тому времени, как заявил @RalfFriedi, ядро ​​Linux было кросс-скомпилировано в Minix.

Что касается полезного программного обеспечения, Линус Торвальдс также портировал утилиты для распространения вместе с ядром Linux, чтобы другие могли его протестировать. Эти программы были в основном bashи gcc, как описано в LINUX's History Линуса Торвальдса . За в Usenet в пост :

От: torvalds@klaava.Helsinki.FI (Линус Бенедикт Торвальдс)  
Группы новостей: comp.os.minix
Тема: Что бы вы хотели увидеть больше всего в миниксе?
Резюме: небольшой опрос для моей новой операционной системы  
Идентификатор сообщения: <1991Aug25.205708.9541@klaava.Helsinki.FI>
Дата: 25 августа 91 20:57:08 GMT
Организация: Университет Хельсинки

Привет всем, кто использует Minix -

Я делаю (бесплатную) операционную систему (просто хобби, она не будет большой и профессиональной, как gnu) для 386 (486) клонов AT. Это варилось с апреля и начинает готовиться. Я хотел бы получить какие-либо отзывы о вещах, которые людям нравятся / не нравятся в minix, так как моя ОС чем-то похожа
(среди прочего, такая же физическая структура файловой системы (по практическим причинам)).

В настоящее время я портировал bash (1.08) и gcc (1.40), и кажется, что все работает. Это подразумевает, что я получу что-то практичное в течение нескольких месяцев, и я хотел бы знать, какие функции хотели бы получить большинство людей. Любые предложения приветствуются, но я не буду обещать, что буду их реализовывать :-)

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

После этого были загрузочные дискеты HJ Lu's Boot-root . Если бы это можно было назвать дистрибутивом, он получил бы славу первого дистрибутива, который можно установить на жесткий диск.

Это были два 5¼-дюймовых образа дискеты, содержащие ядро ​​Linux и минимальные инструменты, необходимые для начала работы. Столь минимальными были эти инструменты, чтобы для загрузки с жесткого диска требовалось редактирование основной загрузочной записи с помощью шестнадцатеричного редактора.

bootroot

Со временем количество утилит стало больше, чем максимальный размер дискеты.

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

MCC Interim Linux был дистрибутивом Linux, впервые выпущенным в феврале 1992 года Оуэном Ле Бланком из Манчестерского вычислительного центра (MCC), входящего в состав Манчестерского университета.

Первый выпуск MCC Interim Linux был основан на Linux 0.12 и использовал код ramdisk Теодора Цо для копирования небольшого корневого образа в память, освобождая дисковод для дискет с дополнительными утилитами. [2]

Он также заявил, что его дистрибутивы были "неофициальными экспериментами", описывая цели его выпусков как:

  • Чтобы обеспечить простую процедуру установки.
  • Чтобы обеспечить более полную процедуру установки.
  • Предоставить услугу резервного копирования / восстановления.
  • Для резервного копирования его (тогда) существующей системы.
  • Компилировать, связывать и тестировать каждый двоичный файл в соответствии с текущими версиями ядра, gcc и библиотек.
  • Обеспечить стабильную базовую систему, которую можно установить за короткое время и к которой можно добавить другое программное обеспечение с относительно небольшими усилиями.

После предшественника MCC SLS был первым дистрибутивом, предлагающим систему X Window в мае 1992 года. Примечательно, что конкурент SLS, мифический Yggdrasil , дебютировал в декабре 1992 года.

Иггдрасиль

За нами последовали другие крупные дистрибьюторы, такие как Slackware в июле 1993 года (на основе SLS) и Debian в декабре 1993 года до первого официального выпуска версии 1.1 в декабре 1995 года.

Изображение предоставлено:
* Образ загрузочной / корневой дискеты с: https://www.maketecheasier.com/
* Образ дискеты yggdrasil с: https://yggdrasilblog.wordpress.com/

Руи Ф Рибейро
источник
4
Было бы хорошо сослаться на эти сообщения электронной почты из самых основных источников, если они где-то заархивированы в Интернете.
Wildcard
2
@Wildcard Нашел это электронное сообщение на сайте, утверждающем, что он является страницей Линуса Торвальда.
Руи Ф. Рибейро
2
@slm На самом деле с более ранних времен я переезжал домой слишком много раз, и хранение у моих родителей ограничено. Раньше у меня были ранние дискеты 386BSD / FreeBSD и компакт-диск PCworld 93-95 (возможно, 95) со всем набором дискет Linux (не помню дистрибутив). У меня также был полный комплект установочных дисков SCO V с действующим ключом, который я использовал в своих 486. У меня были очень продвинутые технические характеристики для того времени, я работал на крупного поставщика компьютеров.
Руи Ф. Рибейро,
28
"(просто хобби, не будет большим и профессиональным, как гну)" Ха.
Ф. Джордж
9
just a hobby, won't be big and professional like gnuо, мальчик, ты был не прав
Альваро
17

В моем случае (c.1994) Linux был собран как образы, подходящие для 3,5-дюймовых дискет (1,44 МБ), вероятно, как продолжение 5/4-дюймовых образов, упомянутых выше, и у каждого есть определенный набор драйверов, скомпилированных в ( сеть, VGA и т. д.). Таким образом, вы должны были знать, что вам нужно, и надеяться, что у вас есть подходящее оборудование.

После того, как вы загрузились и смогли подключиться к локальной сети или через модем, вы пошли и нашли нужное программное обеспечение (FTP, gopher и т. Д.) - это было в самом начале «Интернета», а поисковые системы не на самом деле еще существует, поэтому нужно было знать, куда идти или кого спрашивать) и построить его самостоятельно.

Я был в восторге, когда смог загрузить свой 486DX и набрать номер в своей университетской сети (56 тыс.!) И смонтировать общий ресурс AFS на домашнем компьютере ... это были дни. ;)

Ксавье
источник
2
Предполагая, что вы сделали все это в 1994 году, это было больше похоже на 28.8k ... хорошие времена!
GuitarPicker
В 1994 году вам не пришлось жонглировать дискетами. Я начал с Linux в этом же году, но у Slackware уже были полные дистрибутивы на CD.
Габор
Вы должны были купить компакт-диск из журнала. В то время компакт-диски были дорогими. Что касается RH, я не забываю загружать все файлы через FTP в выходные дни по фантастическому общему соединению 256 Кбит / с, создавать образ CD, а затем записывать CD на работе, возможно, около 96.
Rui F Ribeiro
@GuitarPicker, это могло быть оптимистичным. Многие из нас были еще на 1200, 2400, и в 1992 году Linux, в общем-то, оказался в тупике Академического института. Как и Линус, наш доступ в Интернет был по коммутируемому соединению с университетом. У нас были Usenet и Gopher, но не было графического (мозаичного) WWW. В 1992 году не у всех тоже был 386. У меня была коробка Olivetti M24 (AT & T) 8086 с монохромным экраном, которая работала под Windows 1 (не очень хорошо). Minix был увлечением или академическим занятием, а не свободным. Линукс считался боровом с пропускной способностью, но он постоянно увеличивал пропускную способность. Linux был большой вещью в Кампусе для программистов.
mckenzm
12

Короткая версия

В то время, когда Линус запустил свое ядро, проект Gnu имел работающую операционную систему, за исключением работающего ядра. Поэтому, когда люди оглядывались по сторонам, они находили все необходимые им инструменты: gcc (и friend: binutils), bash (и friends gnu-utils), emacs,…

Затем они построят свою собственную систему из частей.

Вот откуда пошла эта шутка: «Если бы MS-Windows был самолетом, он поднялся бы на 10 тысяч футов, а затем взорвался, убив всех в стороне, но, по крайней мере, вам не нужно создавать собственный самолет, прежде чем вылететь».

Ctrl-Alt-Делор
источник
8
И именно поэтому большинство дистрибутивов называются дистрибутивами GNU / Linux , если вы следуете GNU и FSF.
Немо
У GNU не было хорошей библиотеки libc. В старые времена Linux использовал разные библиотеки libc. Только относительно поздно у нас была хорошая библиотека glibc. Вначале использовались инструменты Minix (частично созданные GNU).
Джакомо Катенацци
@GiacomoCatenazzi правда о libc. Но у него было большинство пользовательских инструментов. Я помню, как в 1992 году компилировал инструменты GNU для работы на Sun Solaris. (Я не начинал использовать Linux, пока он не перешел в середину glibc.) Эти инструменты существовали некоторое время (до Linux).
Ctrl-Alt-Delor
Да уж. Я также начал с Solaris, предпочитая инструменты GNU, а не Sun. Оттуда я захотел большего, поэтому я перешел на Linux (и в моем первом дистрибутиве не было никаких систем X. Клиенты Red Hat могли использовать коммерческий X. Только позже у нас был XFree86. Переход к истинно бесплатной (и в основном GNU) системе потребовал много лет (ядро было всего лишь одним шагом, но самый «демократичный» шаг [компьютер + базовый unix были, наконец, для всех (или лучше для студентов)).
Джакомо Катенацци
12

В своей книге « Just For Fun » Линус Торвальдс упомянул, что ядро ​​Linux изначально было простым эмулятором терминала для подключения к удаленной машине Unix через модем:

Таким образом, в конечном итоге я смог изменить два потока, AAAAAAAA и BBBBBBB, чтобы один считывал данные с модема и записывал их на экран, а другой читал с клавиатуры и записывал данные на модем. У меня была своя собственная программа эмуляции терминала.

Когда я хотел читать новости, я вставлял дискету и перезагружал машину, и я читал новости с университетского компьютера, используя мою программу. Если бы я хотел внести изменения, чтобы улучшить пакет эмуляции терминала, я бы загрузился в Minix и использовал его для программирования ...

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

К тому времени, когда я это сделал, стало ясно, что проект уже превращается в операционную систему. Поэтому я изменил свое представление об эмуляторе терминала на операционную систему.

bodqhrohro
источник
10

Отредактировано: устранено неловкое отсутствие понимания того, как работают ядра, и оставлено важная часть.

Пользовательское пространство GNU существовало до появления ядра Linux.

https://en.wikipedia.org/wiki/GNU

https://en.wikipedia.org/wiki/Linux_kernel

Питер Макдональд (Peter MacDonald) широко известен как создатель первого «полезного» дистрибутива GNU / Linux.

https://en.wikipedia.org/wiki/Peter_MacDonald_(computer_programmer)

https://en.wikipedia.org/wiki/Softlanding_Linux_System

По воспоминаниям о некоторых дискуссиях, которые у меня были с ним: Питер работал системным администратором Unix в правительстве и учился в Университете Виктории на степень магистра. Питер хотел работать дома, но стоимость лицензии на настольную систему Unix была непомерно высокой. Он уже был знаком с пользовательскими инструментами GNU, поэтому, увидев сообщение Линуса Торвальдса в сети университета, он в полной мере воспользовался преимуществами и подключил инструменты GNU к новому ядру. Итак, действительно, первоначальная проблема была обратной вашим вопросом: пользовательское пространство уже существовало, и все, что требовалось, - это ядро.

Некоторые другие исторические лакомства:

  • Питер не распространял SLS Linux и не взимал плату за программное обеспечение. SLS был распространен его женой Коллин, и плата была за дорогой и длительный процесс записи компакт-дисков для рассылки.
  • Питер сделал ряд огромных вкладов в ядро, которые никогда не были признаны, включая динамическую загрузку модулей и улучшенное управление памятью.
  • Программное обеспечение было «глючным», потому что он работал, ходил в школу, воспитывал двоих детей и пытался порадовать пользователей Linux. Мы все знаем, как легко поддерживать пользователей Linux счастливыми ...
  • У Питера нет воспоминаний о «аргументах» / «разногласиях» по поводу сценариев установки, которые, как утверждают другие, привели к расколу, который запустил Slackware и Debian.
Dinsdale
источник
2
Если вы можете загрузить ядро ​​в память и выполнить образ, он запаникует, потому что не может выполнить / sbin / init. init - это уже пользовательский инструмент. Любая программа на C, использующая API ядра, является программой пользователя.
Ральф Фридл
D'о! Хорошая точка зрения. Я пытался сказать, что инструменты, с которыми обычно взаимодействуют пользователи, не нужны для работы ядра. Я буду переосмысливать и обновлять ...
Динсдейл
Хотя это довольно хорошо задокументировано, Питер не был ни первым, ни вторым, кто распространял утилиты «ядро + пользовательская земля», но мы, как сообщество Linux, во многом вкладываем усилия в превращение дистрибутивов Linux в нечто подобное, как мы знаем сегодня.
Руи Ф Рибейро
2

Linux был впервые запущен как улучшенная замена Minix и для понимания программирования в защищенном режиме на i386. Minix поставляется с источником, и в то время были утилиты GNU userland и утилиты BSD userland. Оба были доступны с источником. Linux пытался быть POSIX-совместимым, поэтому переносить его было не так сложно. Одним из первых шагов было запустить bash в Linux. Первые годы Linux можно рассматривать как кросс-компиляцию, ядро ​​нужно было скомпилировать в другой системе.

RalfFriedl
источник
2
Ядро кросс-компилировалось в Minix.
Руи Ф Рибейро
17
Сказать, что Linux был «запущен как расширение для Minix», вводит в заблуждение. Да, это правда, что Линус в то время использовал Minix, но Linux не разделяет ни одной строки кода с Minix, а также придерживается другой философии проектирования (микроядро или монолит). Minix также не был официально доступен для 386 в то время, тогда как ядро ​​Linux было написано для 386 с самого начала. Первой файловой системой Linux была файловая система Minix, из-за совместимости, но это также была полная переопределение.
Йохан Мирен
10
Линус и автор Minix согласны с тем, что это не Minix и не основанный на нем.
Ctrl-Alt-Delor
@ JohanMyréen Конечно, любой короткий текст - не вся правда. Даже Википедия содержит только краткое введение. И я знаю, что Linux был запущен из-за недостатков Minix. Если бы существовал Minix для i386, сегодня может не быть Linux. С другой стороны, Linux был вдохновлен Minix, и первая поддерживаемая файловая система была Minix. Но я согласен, что продление не является правильной работой, я изменил предложение.
Ральф Фридл,