22 мая польский разработчик инди-игр и фанат Linux Кшиштоф Кристиан Янковски (Krzysztof Krystian Jankowski) представил Floppinux 0.1.0 — дистрибутив Linux, умещающийся на одной 3.5-дюймовой дискете.
В образ размером 1.44 МБ включено: рабочее ядро Linux 5.13.0-rc2 размером 632 КБ с поддержкой TTY, printk, ELF и скриптов, начинающихся с "#!"; компоненты и инструменты на 552 КБ (busybox-1.33.1), включая доступ к утилитам cat, du, echo, ls, sleep, uname, clear, vi, poweroff, reboot, init, mount, umount, less и ash, причем еще осталось 272 КБ свободного места (du -h). Минимальные требования для запуска — i486DX ЦПУ и 24 MB ОЗУ. Для загрузки в образе задействован syslinux.
Кристиан Янковски опубликовал инструкцию для компоновки вариаций миниалистического образа Floppinux с нужными для разных задач комплектами программ.
Фото разработчика на фоне запуска Floppinux на старом ноутбуке Fujitsu Siemens P1610 с Intel Core Solo 1.2 ГГц и 1 ГБ ОЗУ.
Примечательно, что у автора проекта возникли проблемы с записью образа на внешний дисковод гибких дисков в Linux, поэтому он использовал старую версию Windows (можно на выбор Windows 95/98/ME или Windows NT4/2000/XP) и утилиту DiskWrite для записи Floppinux 0.1.0 на 3.5-дюймовую дискету.
DGG
Слабовато как-то. Помнится в конце 90х QNX помещался на дискете вместе с гуём и гуёвым интернет-браузером
dreesh
Разрядность наверное поменьше была нежели сейчас)
ialexander
32 бита тогда и у floppinux сейчас:
Floppinux — An Embedded ?Linux on a Single ?Floppy
gsaw
Ну странно сравнивать QNX для встраиваемых систем двадцатилетней давности с нынешним линуксом. Размер памяти на микроконтроллерах порой мегабайтами меряется, что уж говорить о железаках, куда можно linux поставить. Требования другие.
da-nie
Тот QNX 4.25 весьма мощная ОС была.
Serge78rus
Так и дистрибутив QNX занимал не одну дискету, а около десятка. А то, о чем упомянул уважаемый DGG было, насколько я помню, отнюдь не полным дистрибутивом, а лишь некоторой демонстрацией, впрочем, действительно, очень впечатляющей.
da-nie
Не совсем. На той дискете (её, кстати, можно найти и сейчас), помнится, полноценная ОС+браузер+простенькие игрушки+GUI. А в полноценном дистрибутиве компиляторы, библиотеки и прочее подобное.
tlittle
А Floppylinux — это прямо реально дистрибутив? С пакетным менеджером, с необходимыми утилитами для развертывания и все вот это?
dreesh
Нет, там только минимальное ядро и 5% утилит от busybox. Этого не достаточно для нормальной работы за компьютером
tlittle
Ну я про то и говорю, демонстрационная дискета от QNX выглядела значительно более впечатляющей (я на своем 100м пеньке отключал от мамки все накопители кроме дисковода и показывал, как можно полноценно серфить в тогдашнем инете).
dreesh
Вы понимаете что, сегодня нужно поддерживать сотни протоколов, прерываний и абстракций заложенных в железе (ipv6, например)? если делать ядро для конкретной конфигурации с идеей сделать как можно компактнее, то можно повторить то чем вы сейчас восхищаетесь) А если брать готовое ядро с дефольной конфигурацией, то не стоит надеяться на отсутствие сотни абстракций над абстракциями (которые абстракциями погоняют). Тем более он сделал это почти не тратя время) Он просто запустил пару команд на компьютере и получил систему пригодную для запуска с дискеты, такое мог ваш предмет восхищения?
tlittle
Да, я понимаю, что сегодня нужно поддерживать. Я не понимаю, зачем вот этот FloppyLinux. То, что он сделал не дистрибутив — это мы вроде уже поняли. Так зачем? Чтобы показать, что загрузчик с ядром можно впихнуть на дискету?
unsignedchar
Just for fun, например ;)
dreesh
Демонстрация что монстр в несколько гигов может жить на дискете и делается это парой команд) Just for fun, как написали выше
RAslM
Тогда и версия ядра была ниже, даже если выкинуть все дрова и модули, все равно скорее всего оставили патчи безопасности + сами утилиты подросли в размере.
dreesh
Ну например busybox
это столько параметров в конфиге у бизибокса (+- 100 пустых строк), а он собранный с uClibc занимает 2 Мб. В попугаях это получается ~1 кб на строку конфига (что я и зачем посчитал не знаю).
Ну а в ядре linux скорее всего куча мертвого кода, который можно вычистить, но в данный момент такого храбреца нет)
Alexey2005
Думаю, это можно сделать в автоматическом режиме. Написать плагин к менеджеру памяти, который при первом обращении к какой-либо 4Кб-странице помечает её как использованную (обращения отслеживать через перехват обработчика #PF). И как следует поработать в Linux с этим плагином.
А дальше экспортировать список тех 4Кб-блоков кода, к которым за весь сеанс не было ни одного обращения: это и будет неиспользуемый мусор. Дальше прямо в бинарнике забиваем их нулями и используя Linux'овый механизм sparse-файлов освобождаем место на диске, пропуская эти нулевые страницы.
dreesh
Мне кажется, лобовая трассировка поломает редкие сценарии, которые имеют место быть)
Alexey2005
При наличии багтрекера и автоматической системы отправки отчётов об ошибках, все эти крэши будут выловлены достаточно быстро.
unsignedchar
В то время и Doom на 1 дискету помещался ;) И браузеры были попроще ;)
da-nie
Только если демонстрационка. :) Wad-файл в DOOM'е весьма большой. Даже сжатый.
LevOrdabesov
5 дискет, и жатые arj-ем. Главное сокровище было на тот момент.
McStrauth
А если не секрет, есть какое-то практическое применение у этого чуда? Навскидку могу себе представить только, что оно откуда-то загружается, монтирует себе какие-то удалённые разделы, а уж там — всё, что надо для работы какого-либо девайса. Вот только схема эта мне кажется как-то уж слишком избыточно замудрённой. Или я, как водится, чего-то недопонимаю?
P.S. Не поймите меня неправильно — как зарядка для ума и развлечение, штука забавная и почему бы и да, если есть возможность.
gsaw
Сама по себе запись на дискету практического смысла не имеет. Тут просто демонстрация минимальной по размерам рабочей системы на линуксе. Хотя нынче уже встраиваемые системы не так ограниченны размером памяти. Флэш-память имхо дешевле, чем те-же трудозатраты на оптимизацию по размеру.
lovermann
У меня возник такой же вопрос по поводу практического применения, ну, раз демонстрация размеров, то, блин, чего вспомнили дискеты? Тут у нас уже целое поколение выросло, которое эти дискеты никогда в глаза не видело :)
p_fox
Ну как "не видело". Это же настоящая физическая иконка кнопки "сохранить".
Dark_Scorpion
Читал что военные США управляют ядерными ракетами при помощи дискет. Кто знает, но есть шанс, что это возможность установить новые инструменты на старое железо.
lovermann
Ну, они же как бы не вечные, эти дискеты. Хз, размагнитятся там и всё, тю-тю.
denis-19 Автор
Тут проблему решали такую. habr.com/ru/company/macloud/blog/558386
0FFH
было такое
минитмены требовали дискет 8 дюймов
даже не 5 а 8!
пофиксили
щас идет снятие этих минитменов с вооружения
guinzoo
Так даже ПО в самолетах до сих пор обновляется дискетами.
Alexsey
Ну если задача запустить линукс с дискеты любыми силами то я еще года 4 назад PITUX использовал чтобы циски конфигурить с древнего compaq.
perfect_genius
Ого, конкурент Колибри.
deuxexdeex
Купил как-то в новосибирском Академгородке 486-ой (году так в 2010).
Вместо винта у него была флеш-память на 2 мб (т.к. винты в начале 90х были шумные, а этот комп по ночам служил в качестве CD- плеера).
На 2 мб размещался DOS (1.4 мб), который грузил линукс (кажется 600 кб).
Линукс был настолько урезан, что имел лишь несколько команд, для прослушивания CD-дисков. В частности, человек даже выкинул libc (>1mb), пересобрав программы, которые от него зависели и захардкодив в них нужные функции.
Am0ralist
Что бы слушать CD-audio достаточно же только CD-ROM и бп. Кнопки управления на самом приводе, колонки в разъем для наушников…
philfreeeu
На большинстве CD-ROM была только кнопка eject. Реже бывала еще вторая — Play/Pause. И видимо еще реже, но бывали кнопки перехода между треками.
nitro80
Думаю, в 2010 году найти cdrom с кнопками play/pause/nex/prev куда проще, чем рабочий 486
Papa_Carlo
В 2010 году ;) мини плеер с 6" цветным экраном и пультом мог проигрывать мп4 петь и плясать . И стоило это ну где-то 50$ Philips.. у меня до сих пор валяется такой..
saege5b
Это потом.
Я помню ещё в районе 2x..4х со всем обвесом.
Тогда еще мутили схемы питания, что бы сидюк автономно питать.
А звук в заводился отдельным хвостом в ОС.
Evengard
Возможно может стать неплохой базой для сверхминималистичных докер-контейнеров?...
mc2
Так есть же Alpine, при этом с полным пакетом busybox.
wigneddoom
Не, в докер-контейнере ядро не нужно. Ну и сверхминималистичный - это статически слинкованный бинарник вашей программы.
mrhakerfox
FreeSCO, 2005-й год. Вмещался на одну дискету)
lv333
Вот да! Полноценный роутер с менеджером пакетов веб гуем и прочем! Правда там ядро было даже на то время древнее:) Но оно запускалось реально на самых ископаемых тазиках и исправно работало.
KirovA
В начале двухтысячных баловался MenuetOS - уже тогда ось с симпатичным гуём на одной дискете воспринималась как чудо-чудное. Из нее потом Колибри выросла.
neuotq
Забавно, что MenuetOS ещё жива и что-то там развивается.
Siemargl
Аналогично есть PicoBSD/NanoBSD
mezantrop
Не, 24 МБ RAM это слишком жирно. Мне надо чтобы на 8-ми взлетело.
dreesh
мне бы 4 в несжатом виде) В принципе это возможно, но нужно по всему коду пройтись. Если поднять старые дефайны и выкинуть половину апи ядра то можно влезть)