🍏 самые гламурные никсы 🍏

Posted: 2020-02-14 in IT, Software
Метки:,

Сегодня мы посмотрим одну весьма известную операционку взглядом доброго админа. Да, речь идёт про MacOS X — проприетарную ось для современных яблочных компьютеров. Если вам это интересно — продолжение под катом.
Apple
Обычно обзоры макос бывают двух типов — в первом её ругают, что она не виндовс, и на ней не пускаются многие топовые гамы (местами ситуация похуже, чем в линуксовом вайне), не стартует какой-то старый софт и вообще всё непривычно, а во втором — сплошные щенячьи визги на скруглённость углов, дизайн, няшность и ламповость. Я же попробую посмотреть на неё немного иначе — не требуя от неё запуска неродных приложений и не обращая слишком много внимания на дизайн.

 

Мои читатели наверняка могли заметить, что я плохо отношусь к компании Apple, и у меня про них практически ничего нет. В отличие от винды, плотно оккупировавшей домашние и корпоративные десктопы, и всеядного линукса, сожравшего почти весь крупно-серверный рынок и всякий встраиваемый «интернет вещей-овощей», макось всегда оставалась в стороне от этих эпичных баталий. Причина в том, что отдельно от железа она в принципе не продаётся. Сама система при установке / загрузке проверяет, что она запущена именно на яблочном компьютере, а лицензия строго запрещает её отдельное использование. Поэтому её запуск на не-яблочном железе (т.н. «хакинтош») требует подбора определённых моделей железа и всяких хаков. В случае же использования виртуальных машин тем более требовались различные «хаки» в конфигах ВМ, чтобы макоз опознала такое эмулируемое железо как какой-нибудь макинтош.

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

В интернетах есть целая пачка статей про втаскивание макоза в виртуалку, но там всегда находились интересные шаги типа «извлеките ключ из дампа nvram реального макинтоша» и каждый раз мне было крайне лениво этим заниматься.

Так что когда на рутрекере один добрый человек зарелизил готовые ova-файлы для VirtualBox:

Catalina: MacOS-10.15-VirtualBox ⇵ BitTorrent
🧲 magnet:?xt=urn:btih:F80AA7A9D753DE414605121575313AD72C61F1B7&tr=http%3A%2F%2Fbt3.t-ru.org%2Fann%3Fmagnet&dn=%5BRUS%5D%20macOS%20Catalina%2010.15%20(%D0%BF%D1%80%D0%B5%D0%B4%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%20%D0%B4%D0%BB%D1%8F%20VirtualBox)%20%5BIntel%5D%20x64

HighSierra: MacOS-10.13-VirtualBox ⇵ BitTorrent
🧲 magnet:?xt=urn:btih:F70949C1352C88E57DE045DB45BDFCEB783C8D36&tr=http%3A%2F%2Fbt.t-ru.org%2Fann%3Fmagnet&dn=%5BRUS%5D%20macOS%20HighSierra%2010.13%20(%D0%BF%D1%80%D0%B5%D0%B4%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9%20%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%20%D0%B4%D0%BB%D1%8F%20VirtualBox)%20%5BIntel%5D%20x64

Я сразу же их скачал, чтобы посмотреть. Надпись [Intel] в названии раздачи не случайна. Образы виртуалок прекрасно стартуют на Core i7-7700К, но запустить их на AMD Ryzen 5 1600 не получилось. Надгрызенная ось весьма привередлива к железу. Сразу скажу, что обновлять такую систему внутри ВМ нельзя — там куча всяких кривых и капризных модулей, а мои попытки обновить систему закончились тем, что система перестала стартовать. Это же верно и для «хакинтошей» — макоси, установленной напрямую на не-яблочное десктопное железо. Впрочем, даже на оригинальном маке может что-нибудь криво сломаться при апдейтах, хоть и существенно реже.

Сперва посмотрим на интересные опции внутри vbox-файла, а конкретно на секцию ExtraData:

<ExtraData>
   <ExtraDataItem name="GUI/LastCloseAction" value="PowerOff"/>
   <ExtraDataItem name="GUI/LastGuestSizeHint" value="800,600"/>
   <ExtraDataItem name="GUI/LastNormalWindowPosition" value="1,30,640,480,max"/>
   <ExtraDataItem name="VBoxInternal/Devices/efi/0/Config/DmiBoardProduct" value="Iloveapple"/>
   <ExtraDataItem name="VBoxInternal/Devices/efi/0/Config/DmiSystemProduct" value="iMac11,3"/>
   <ExtraDataItem name="VBoxInternal/Devices/efi/0/Config/DmiSystemVersion" value="1.0"/>
   <ExtraDataItem name="VBoxInternal/Devices/smc/0/Config/DeviceKey" value="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"/>
   <ExtraDataItem name="VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC" value="1"/>
</ExtraData>

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

После импорта образа запускаем ВМ и сразу же смотрим, как оно увидело наше железо:

Память видится на ВМ всегда одной планкой, система считает, это это некий iMac, видны следы виртуалбокса в имени BootROM. И вот тут мы чуем первый же душок макоси — кнопочка «инструкция по обновлению памяти» ведёт нас на главную страницу яббло-саппорта, где надо будет уже искать собственно инструкцию именно к вашему маку. То есть если на заборе написано «дрова» — это ещё не значит, что за забором именно они и лежат, даже если забор кто-то зверски надкусил.

Само собой, следующим пунктом смотрим мониторинг системы (Launchpad — Другое — мониторинг системы):

Встроенный мониторинг относительно годный и всё требуемое показывает, фильтр есть — но только по имени процесса,  и даже можно экспортировать детальные  данные (сводку) о выбранном процессе.

Не надо только меня спрашивать, что делает в макоси процесс lsd — честно, не знаю =)
Конечно, в плане гибкости до ksysguard и conky ему очень и очень далеко, но в 2020 году странно хотеть от коммерческого ПО паритета возможностей с софтом, который может позволить себе иметь полсотни контрибуторов даже на такой штуке, как текстовый редактор (разработчики Kate/KWrite, моё почтение и респект вам!).

Впрочем, не будем забывать, что макоз — самый что ни на есть unix, и хотя унаследовался он от весьма древней кодовой базы, это не отменяет возможность использования таких штук, как ps, top и grep, хотя их версии там по современным меркам могут быть весьма «кислые».

К консольным тулзам макоси мы вернемся чуть позже, а пока посмотрим на список софта, доступный в лончере:

Тошнотный квиктайм я даже смотреть не буду, перейдём сразу к такой базовой вещи, как текстовый редактор. Просто его запустим и попробуем создать новый файл:

Пробуем сохранить, и видим два совершенно непонятных формата в самом верху списка и нечто под названием «Документ веб-архива». Это вторая дурная и весьма бесячая черта макоси — очень часто сделано так, чтобы пользователь нифига не понимал, ЧТО ИМЕННО он сейчас делает и каков будет конечный результат. Поясняю на данном примере: самая верхняя строчка — это формат RTF. Понять это внутри самой макоси можно, только посмотрев с помощью cat в консоли на внутренние потроха сохранённого файла. Как создать простой txt средствами только этого «редактора», да ещё и в нужной кодировке — я не понял.

Есть более детальный диалог выбора каталога  для сохранения:

Полный путь в файловой системе ? Превью ? Свободное место ? А зачем это вам, простите ?
Самый прикол в том, что если взять уже готовый текстовый файл, созданный, например, через «заметки» или генерацией системного отчёта,  то такой файл прекрасно сохраняется и редактируется в этом «редакторе», как обычный txt, и даже выбор кодировки и типа переноса строк там будет ! Конечно, выбор кодировок скуднее, чем я привык, нет подсветки синтаксиса и поиска/замен регулярками, но это я уже видимо много хочу.

 

Сложилось впечатление, что сперва яббл хотел родить аналог Wordpad, но вспомнив, что у них нет системного редактора (если не считать особо бесчеловечного к обычным пользователям vi), добавили к своему rtf-редактору поддержку редактирования простых файлов задним числом и не до конца. Зато там есть поддержка ODT и некоторых форматов MSOffice, хотя думаю понятно, что сохранения всех свойств и разметки в настолько сложных форматах от данного редактора ждать не стоит.

 

Но есть и ещё одна программулина, которая кажется более подходящей для моей простейшей задачи по созданию txt-файла — это так называемый «редактор скриптов»:

Попробуем написать скрипт на bash. Напоминаю, что для макоси bash весьма родная вещь — он там версии 3.2 (в федоре здорового человека — 5.0). Но нет, в яббл считают, что скрипты по умолчанию бывают двух видов — AppleScript и JavaScript. Если ваш скрипт на баше, питоне или php — в этой программе вы будете страдать. Самое страшное — если при сохранении вы выберете не тот тип файла, что сделать легче лёгкого, поскольку у них есть только названия: «Скрипт», «Пакет скриптов», «Программа» и «текст», но нет расширений или описаний. Наш случай — «текст». Выберете что-то другое — и ваш скрипт будет сохранён в полу-бинарном местечковом надкусанном формате, и восстановить из него исходную разметку своего кода вам будет весьма неприятно и сложно.

Так что внимательно смотрим, и выбираем тип — «текст». Тут яббл снова покажет свою «интеллектуальность», задалбывая вас сообщениями о синтаксической ошибке:

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

Конечно, под макоз есть куча стороннего софта, решающего эту боль, но это же надо потратить время и поставить. Если кто забыл — ставится там всё через жёппу AppStore и под своей учёткой (AppleID), и каждая мало-мальски всратая программулина часто хочет денег на каждый мелкий чих.
Впрочем, каждый сам решает, что делать в этом случае, мы же перейдём к рассмотрению такой базовой для никсов вещи, как консольные утилиты.

Огромный и жирный плюс — zsh (версии 5.7.1, современная и свежая) в качестве шелла. Это невероятно мощная оболочка, и тут разработчики молодцы. На скриншоте выше как раз потрошки «форматированного документа» и типа «скрипта» из TextEdit-а, где уши RTF и непотребное месиво видны невооружённым взглядом.
Посмотрим на версии и вывод некоторых стандартных утилит:

Утилита grep версии 2.5.1 из фряхи. Актуальная версия грепа в той же федоре  — 3.3. Так что системный софт в последней макоси может быть несколько несвеж, что может подпортить впечатление.
Сама тулза «Терминал» в принципе +/- годна, есть поиск, вкладки и даже попытка сделать навигацию внутри. Конечно, это далеко не Konsole из KDE, но после унылейшего cmd и чуть менее унылого posh из виндовс консоль мака покажется вам манной небесной. Первые два дня.
То есть ровно до тех пор, пока вы не решите в удалённой ssh-сессии запустить mc. Неработающие кнопки Insert / PgUp / PgDown / F10 быстро напомнят вам, какой сорт яблок единственно верный и правильный.
Зато разрабы не забыли перекрытие окошек с полупрозрачностью =)

Теперь немного про софт. Ставится он там несколько непривычно. Либо это аппстор, либо манипуляции мышкой с перетаскиванием архива на папку «программы», типа «подтверждающий жест». Механика эта была унаследована ещё от древних макосей до-юниксовской эпохи. Впрочем, это не значит, что софт поставится с первого раза.

Напоминаю, что мы запускаем гей-ос в виртуальной машине, и по умолчанию у нас стоит низкое разрешение экрана, а обмен файлами с хостом несколько затруднён. Попробуем поставить аддоны от VirtualBox, поскольку они есть под мак:

На самом последнем этапе установки получаем по морде птицей обломинго.
Лезем в «настройки безопасности» (окошко может появиться не сразу), разрешаем действие, пробуем повторить и снова ловим облом. Открываем логи, видим там классные сообщения вида «cannot open file at line 43348 of [378230ae7f]». Окуеваем с такого подхода, пускаем скупую слезу по виндовс, и даже допускаем крамольные мысли, что Леннарт Поттеринг вовсе не настолько зло, как думалось раньше.

Бороться с софт-инсталлером макоза мне на этом этапе расхотелось.

 

Посмотрим, что ещё есть в системе. Любимые жёлтые заметки. Кажется, их завезли везде.

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

Местная панель управления, она же «Системные настройки». Часть функций без фруктового логина в apple-id не работает, и макоз не забудет напомнить о благостности этой учётки.

Из относительно неприятного при использовании макоса в виртуалбоксе — нет звука, ни на вход, ни на выход. Если он вам нужен — вам, возможно, придется сбегать в iShop / iPort / iБазар или ещё какой i-Ларёк за макинтошем. Конечно, если вас мак впёр настолько сильно, что вам захотелось оригинального железа, но при этом нет желания сильно на это тратиться, есть вариант купить подержаное железо.
Но будьте осторожны с покупкой б/у-шной яблочной техники, мошенники лютуют и не дремлют.

 

Попробуем поменять разрешение монитора, попутно порадовавшись изобилию настроек:

Увы, но Стив Фюрер Джобс решил, что на маке  монитор должен быть расово верным и только от аппле и только с фиксированным набором разрешений. VGA / SVGA стандарт ? Да ну вас на фиг =)
Изначально в этом списке было только одно значение — 800х600, что мягко скажем маловато. Поменять просто так его в самой макоси из ВМ не получится. Так что выключаем виртуалку, смотрим в свойствам имя машинки и даём во внешней хост-системе такую команду:

VBoxManage setextradata "MacOS-10.15" VBoxInternal2/EfiGraphicsResolution 1600x1200

Это пропишет в конфиг виртуалки такой волшебный параметр:

<ExtraDataItem name="VBoxInternal2/EfiGraphicsResolution" value="1600x1200"

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

 

Если вы думали, что на этом страдания закончатся, то нет. Открыв браузер или любой документ длиннее пары страниц, вы быстро заметите, что прокрутка колесом работает инверсно — кручение колеса вниз будет перемещать вас к верхушке документа (вы как бы не «перемещаете взгляд вниз» а «двигаете вниз бумагу»).
Убрать это бесячее поведение можно в настройках мыши, в системных настройках:

Почему яббл считает такую прокрутку «обычным направлением» — хз. Не исключаю, что это придумали те же люди, которые разработали вот эту мышку:

нынче запрещённую к применению Женевской конвенцией наравне с фосфорными бомбами, кассетными боеприпасами и бактериологическим оружием.

Также не стоит надеяться, что вы найдёте  тут прям обилие легко доступных и тонких настроек.
Возможно, они и закопаны где-то в недрах конфигов и недокументированных интерфейсов, но гламурное i-гестапо считает, что вам это знать и видеть не надо для вашего же удобства и спокойствия.

 

Сетевые настройки.

Тут всё относительно неплохо, во всяком случае для такой гламурной операционки, как макось. VLAN-ы, LACP, виртуальные интерфейсы, 6to4, PPPoE и IPSec.

Но напоминаю — это сетевое наследие фряхи. То есть никаких QinQ, тегированного траффика поверх LACP и прочих прекрасных вещей вы тут не создадите. Возможно, в консоли как-то можно, хотя я сильно сомневаюсь.
То есть сетевые настройки гораздо более продвинуты, чем в виндовс (где они так же убоги, как и 25 лет назад), но тут и близко нет возможностей и гибкости линуксового сетевого стека.

Настроив сеть, можно и браузер запустить. В комплекте у макоси в качестве браузера идёт сафари. Раньше это было совсем кошмарное непотребное говнищще, но соврменными версиями двже можно попробовать пользоваться. Любовь к своим местечковым проприетарным форматам у яббла неистребима — сохранить страницу с картинками просто так нельзя. Либо голый html, либо свой «веб-архив», никем, кроме сафари просто так не понимаемый.

Так что если вашу грешную душу занесёт в этот фруктовый сад — не поддавайтесь гомогейским греховным искушениям, сразу ставьте фуррифокс.

Иначе предстоит вам познать внутренности «веб-архива» из этого самого сафари:

 

Помните, раньше я показывал вам «Заметки» ? У макоса есть ещё одни заметки, секретные типа. Лежат они в «связке ключей», но это совершенно другая сущность. Вообще местную парольницу можно поразглядывать:

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

 

Дисковые тома и файловые системы.

В самой макоси за управление файловыми системами и разделами отвечает так называемая «Дисковая утилита». Конечно же, в Apple никак не могли использовать родную для FreeBSD файловую систему UFS/UFS2 — она была надкусана недостаточно глубоко и не с той стороны.
Исторически у них была своя файловая система — hfs/hfs+, родившаяся ещё в древнюю эпоху MacOS 8.1, которую к настоящему времени тем или иным способом научились читать даже виндовс-системы.
Но яббл не был бы тем ещё фруктом, если бы не родил новую, конечно же проприетарную, ни с чем не совместимую и понимаемую только самой последней макосью файловую систему — APFS.

Как я понимаю, ябблу не давали спокойно спать возможности продвинутого управления суб-томами,  представленные в таких штуках, как тома LVM, пулы ZFS и суб-тома BTRFS уже много лет. Им хотелось свою сложную и современную файловую систему. Для проверки, какие вообще ФС может делать макось из коробки, я подцепил к ВМ ещё один диск. Смотрим:

М-да, весьма негусто. Особенно порадовали варианты с регистро-чувствительностью — это очень коварные грабли, которые ещё не раз прилетят в лоб.

NTFS, Ext2/3/4, BTRFS, Reiser, XFS, UFS ?   А вам зачем ? Мы в apple лучше вас знаем, что вам это не надо =).

 
Так, явно чего-то не хватает. Точно — списка доменов, куда стучится макозь при старте.
Смотрим:

17.248.150.40
a1051.b.akamai.net
a239.gi3.akamai.net
albert.gcsis-apple.com.akadns.net
api.apple-cloudkit.fe.apple-dns.net
api-glb.smoot.apple.com
e10499.dsce9.akamaiedge.net
e11408.d.akamaiedge.net
e17437.dscb.akamaiedge.net
e29543.dscb.akamaiedge.net
e5871.e9.akamaiedge.net
e5977.dsce9.akamaiedge.net
e673.dsce9.akamaiedge.net
e6987.a.akamaiedge.net
e6987.e9.akamaiedge.net
e9959.e9.akamaiedge.net
gateway.fe.apple-dns.net
geo-applefinance-cache.internal.query.g03.yahoodns.net
gsa.apple.com.akadns.net
gsp64-ssl.ls-apple.com.akadns.net
kt-prod.ess-apple.com.akadns.net
mesu.g.aaplimg.com
profile.gc.fe.apple-dns.net
setup.fe.apple-dns.net

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

Есть ли в макоси что-то хорошее ?
Пожалуй, да. Она довольно стабильна сама по себе, у неё были благородные предки. Если не обновлять.  Во всяком случае, она не падала в кернел-паник или бсоды. И она действительно хорошо вылизана в плане дизайна — кнопочки / шрифты / элементы управления — всё хорошо подогнано друг к другу.

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

На этом я пожалуй закончу знакомство с погрызенными фруктами.

Тут один приколист спросил меня, собираюсь ли я бежать за макинтошем ? Ни в коем случае.
Конечно, для человека, видевшего только виндовс (особенно всякие висты и десятки), макоз может показаться божественным откровением и даром свыше. Но если вы в своё время прониклись духом открытости и свободы, i-концлагерь и золотые кандалы вам совершенно не понравятся.

- комментарии
  1. Amin:

    Респект им, конечно, но пробовать мне это совершенно не хочется.
    Запуск на физическом железе и на ВМ требует разных плясок в случае макоси.

    Макоз оказался довольно кривой штукой, и мне сильно глубже в нём ковыряться мало интересно.

  2. Kirill:

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

  3. Amin:

    после виндовс, особенно последних — да, макос неплох.
    Привыкнуть можно ко многому, согласен.

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

    Кстати, многие говорят про особо волшебный софт, настолько крутой, что ради него мощные маки покупают. Я вот слышал только про обработку звука и какие-то штуки для дизайнеров.
    Но мне это не близко от слова совсем.

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.