Comments 35
Ппц, мне кажется, что объем текста в статье вместе с картинками весит больше этой оси на дискете))) Не перевелись еще погромисты, кто могёт в изящный код. Столько функций на 1 дискете это мощно.
Есть идеи, как это использовать на практике, при отсутствии дисковода и cd-привода в компьютере?
Не думал, что она ещё жива.
Респект.
так понял, программ для записи экрана нет
Не очень понял - там можно линуксовый софт запускать? Как они уместили туда эту прослойку, если даже просто ядро линукс уже больше размером?
Нужен более подробный разбор, как что там сделано. Пока непонятно. Как и цель проекта не очень ясна. Размер 1.44 сейчас нигде не ограничивает, даже в микросхемах биос можно больше свободного места найти. Других киллер-фич не видно пока.
Вы запускаете это на обычной Линукс системе, используется просто сетевая прозрачность XServer
Наибольшая польза ограничения размера - принудительная дисциплинированность в достижении высочайшей оптимальности и качества кода. Многократное увеличение человекочасов, затраченных на каждую строчку. Конечно, счас это не ценится, но и система нишевая, для своих ценителей. Я бы сравнил это с демосценой.
Наибольшая польза ограничения размера - принудительная дисциплинированность в достижении высочайшей оптимальности и качества кода.
Так у этой медали есть две стороны.
Максимально компактный код как правило очень сложен в чтении и поддержке.
Я бы сравнил это с демосценой.
Да, или с так называемым «Код-гольф» (Code golf) — видом программистских соревнований, где цель — написать самую короткую программу (по количеству символов), решающую заданную задачу.
Не обязательно лаконичный код должен быть запутанным и трудно читаемым. Во первых она написана полностью на ассемблере. Во вторых минимизация размера достигается избеганием мусора и всевозможных лишних прослоек и уровней абстракции, лаконичностью in-design.
Максимально компактный код как правило очень сложен в чтении и поддержке.
вроде бы очевидно обратное: компактный код читать гораздо проще чем приукрашенный (если так можно выразиться). Вроде как, чем меньше в коде финтифлюшек, тем он компактнее и, соответственно, проще для понимания.
Ну и с точки зрения поддержки будет действовать та же логика, мне кажется: чем меньше всяких излишеств в коде тем проще его поддерживать.
Когда цель писать простой код - да, Ваша логика верна.
Но когда компактность становится самоцелью, то в ход идут хитро вывернутые приемы, которые делают код сжатым, но очень сложным.
Вот пример задачи с палиндромом - обычное решение и максимально компактное:
You are given a number and your challenge is to find the closest palindromic prime number that greater than what you were given.
Обычное решенение
def golf(number):
while True:
number += 1
prime = True
for i in range(number - 1, 1, -1):
if number % i == 0:
prime = False
if prime == True:
reverse = int(str(number)[::-1])
if number == reverse:
return numberРешение соревнования "Код-гольф", где цель минимальное количество символов
def golf(n):
for k in range(n+1,98689):
if len([i for i in range(k-1,1,-1) if k%i==0])==0 and str(k)==str(k)[::-1]:return kхороший пример. Любые крайности деструктивны в своей неадекватности.
Код-гольф все про более высокоуровневые языки. Тут скорее речь про оптимизации на уровне алгоритмов и тонкостей архитектуры.
И как правило, если ставить во главу угла размер кода, то будет страдать оптимизация по скорости исполнения.
По поводу человеко-часов я бы сильно поспорил. Одно дело писать на asm под виндоуз когда вынужден реализовывать кучу прослоек или вызовов в windows API, а другое с нуля под новую ось. Тут уже можно реализовать достаточно гибкие подходы по реализации общих процедур, которые будут именно заточены под вызовы на asm. Да и с ИИ задача программирования на asm сильно упрощается.
ну дык для запуска калькулятора или пасьянса не нужен весь функционал ядра линукса :)
Там процентов 80 это дрова, 90% которых можно выкинуть если сборка под конкретное железо. Потом всякое вроде огромного сетевого стэка, файловых систем и т.п.
Современное ядро на дискету сложно будет запихать (хотя надо посмотреть что там у того же openwrt) но когда-то линукс на дискете я собирал. При чем на базе федоры, но от неё мало что осталось. Он грузился с дискеты, содавал диск в RAM и закачивал туда софт из сети. Ядро 2.2 этакий нетворк-лайв-флопик, если нет сидюка но есть сеть. Потом компы стали грузиться с USB и надобность отпала.
ну, а если говорить про "Минуэт ОС", то им, как я понимаю, ядро линукса и не нужно. У них ведь свое ядро. А для запуска простых линукс-бинарников нужно просто сэмулировать условия выполнения, плюс интерпретировать вызовы API "иксов" в свою GUI-подсистему. Для обеспечения запуска древнего "калькулятора", пасьянса, часиков и маджонга - это посильная задача.
Проект очень старый. Когда его начинали, 1.44 дискеты были очень даже в ходу. А киллер-фича это феноменально низкие требования к железу и феноменальная скорость.
О, скоро понадобится после безумия в мире 🌚
А зачем на статье тег "open source"?
Эта ОС же в актуальной версии под EULA распространяется.
Или что-то изменилось? СПО там только старая 32-битная версия, которую уже миллион лет никто не трогает.
Ну... у меня в BIOSе до сих пор есть возможность загрузиться с флопи-диска,
Живите теперь с этим...
!!!
Живите теперь с этим...
С чем? Что вы сидите за компьютером 15-летней давности? Ну вы прям герой.
Не герой конечно. Скорее фрик.
Этот компьютер уже у меня более 15 лет. Забрал списанный из офиса в 2009 году.
Иногда что-то меняю по выходу из строя, но не на новое, а также со свалки где компьютеры на килограммы принимают/сдают.
Есть ещё пара компьютеров разного возраста, но ими редко пользуюсь как пользователь.
Спасибо за минус.
Выпуск операционной системы MenuetOS 1.57, которая написана на ассемблере и умещается на дискету