unix
February 12, 2023

Unix на работе. Часть 2: Софт

Рассказываю про софт «которого нет» под ОС которая «не нужна». Как обычно с юмором и картинками.

Картинка, которой 20 лет пугали своих клиентов продажники Микрософт.

Первая часть тут.

Минутка истории

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

Речи не было о доступе к исходникам и возможности самостоятельной сборки, потому что такая возможность автоматически означала тиражирование и все сопутствующие сверхдоходы от перепродажи уже собственной сборки.

Юниксы тоже были закрытыми и платными.

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

Но потом появился один пассажир, который навел шороху. А затем и другие крутые парни подтянулись.

Вообщем с тех пор пластмассовый мир победил индустрия разработки ПО сильно изменилась:

возникло движение Open Source, целая отдельная культура, распространяющая идею открытых исходников.

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

Но конечно же проприетарный софт никуда не делся и в перспективе не денется:

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

Cпонсорством (деньгами), работой (патчами) или оборудованием.

Да, это авторы Unix в свои лучшие годы.

Культура Unix

В отличие от пользовательских Mac и Windows, где у каждой более-менее сложной программы были и есть свои прайс, реклама и раскрутка — в мире юниксов программы были прежде всего утилитами.

Ценилась возможность комбинировать эти утилиты между собой и собирать в цепочки обработки:

find . -type f  -exec grep -i "test" {} + | wc -l

На примере выше используются три разные программы: find, grep и wc, соединенные в одну цепочку обработки.

Что этот пример делает:

Ищет слово "test" без учета регистра во всех файлах в текущем каталоге, затем считает общее количество вхождений.

Это и есть тот самый «Unix way»:

куча мелких утилит, каждая из которых делает что-то одно, но хорошо. И все эти утилиты можно комбинировать между собой.

Само собой что у такого подхода есть определенные недостатки, ключевой из которых:

хер поймешь что на самом деле есть а чего нет.

Три сестры под вендой.

Софт которого нет

Из-за философии Unix и доступных исходников, а также ввиду отсутствия коммерческого интереса — ключевой софт достаточно давно перемешался между собой зависимостями и слился в практически единую платформу, которая однотипна и примерно одинаково работает во всех *BSD и Линуксах:

Все средства разработки, все ключевые библиотеки, базовые консольные утилиты — лет 20 как однотипны и однообразны. Везде.

Поэтому что во FreeBSD, что в Убунте у вас будет практически одинаковый grep, awk, mc, bash, perl, python, qt, gtk и так далее.

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

Теперь поговорим о минусах.

Да, это Maya под линуксом. Теперь официально.

Профессиональный софт, для профи

Существует куча ПО с длинной историей, выпускаемого по-сути только для профессионалов.

Некоторый такой софт вы точно знаете:

продукция Adobe (в первую очередь Photoshop), софт для 3D-моделирования (Maya, 3DMax), софт для инженеров и архитекторов (Autocad) и подобное.

Но конечно менее известных узкоспециализированных систем куда больше.

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

В случае фотошопа это например настройка цветового профиля на мониторе, для Maya/3DMax — тонкая настройка аппаратного ускорения при отрисовке.

Поставляется такой софт естественно с закрытыми исходниками, оптимизируется только под поддерживаемые платформы.

Думаю вполне очевидно что в философию «Unix Way» такое ПО не вписывается никак, поэтому ожидать релиза какого-нибудь фотошопа под FreeBSD — точно не стоит.

На уровне прикола это можно сделать (сам такое делал, каюсь). Но ожидать от подобной связки рабочего функционала не надо.

Тем не менее ситуация постепенно исправляется, развиваются открытые аналоги: Blender, Gimp, LibreOffice — все эти проекты за последние 10 лет шагнули очень далеко вперед.

Мне лично сложно судить о возможности полной замены фотошопу с 3дмаксом — поскольку никогда профессионально не занимался графикой.

Но как минимум студенты и начинающие авторы используют открытый софт в полный рост, с достаточно вдохновляющим результатом.

Также вендоры профессионального ПО постепенно начинают активную поддержку Linux и все больше такого софта начинает хоть как-то в нем работать.

Слезы олдфага

Старый софт

Вы еще помните что когда-то был DOS? Под который написали кучу софта, часть из которого до сих пор активно используется.

Да кстати если вдруг не знали:

MS-DOS for Embedded Systems is a cost-effective solution for simple legacy applications. Available as a ROM-based or disk-based operating system, MS-DOS has minimal resource requirements and is ideal for small, mobile applications and those that do not need a user interface.

MS DOS до сих пор продается!

Официально.

Чтобы запускать старый софт на новом или неподдерживаемом оборудовании нужен эмулятор. Чем больше эмуляторов вам доступно тем больше софта вы сможете использовать.

Вообщем в Unix мире с эмуляцией полный порядок:

всевозможных эмуляторов устаревшего железа и окружения — тьма.

Поехали перечислять.

Dosbox

Во-первых есть Dosbox, который позволяет закрыть наверное все возможные вопросы с софтом для DOS и его окружением.

Если у вас на предприятии или в НИИ что-то еще осталось на DOS — смело можете сдавать в музей ваши 386/486е и переходить в Dosbox.

Запуск Windows 3.1 в Dosbox

Wine

Затем конечно Wine, который при наличии времени и прямых рук позволяет запустить даже ААА-игры последнего поколения:

Cyberpunk 2077 на линуксе.

Я вообщем-то не геймер, поэтому ценю Wine за возможность запуска более обывательского софта:

MS Office 2019 на линуксе

Qemu

Ооочень интересная штука, позволяющая «то что нельзя, но очень хочется», например запустить HP-UX на обычном компе:

HP-UX да, на PC.

Еще эта штука очень портабельная, поэтому присутствует в самых неожиданных местах.

Mame

Для самых еб#нутых злостных декадентов есть Mame, который позволяет запускать совсем дикий не-x86 софт:

SGI Irix в эмуляторе MIPS на обычном компе с линуксом. Олдфаги должны визжать от счастья.

Редкости которые есть но я лично пока не трогал:

AXPbox - эмулятор Alpha;

FS-UAE - эмулятор Amiga;

Supermodel - эмулятор Sega.

Вот тут прям склад эмуляторов для всяких старых игровых платформ, наслаждайтесь кому интересно.

Подводя итог

С софтом в Unix все очень даже хорошо.

Единственная область где дела не очень:

современный профессиональный узкоспециализированный коммерческий софт.

Его в юниксах не было, нет и скорее всего не будет:

Как только ОС превращается в кнопку «пуск» для какого-то коммерческого приложения — все, в юникс-окружении такому софту делать нечего.

При этом устаревший софт скорее всего можно будет запустить под юниксами в эмуляции.

To be continued..

В следующей части расскажу об особенностях разработки под Unix, как это правильно делать и наслаждаться а не страдать.

Продолжение тут.