Мнение: развитие os x ведёт в тупик, погубивший классическую mac os

Казалось бы, с мобильными гаджетами и их ОС у Apple всё идёт идеально: айфоны, айподы и айпады продаются миллионами, для них создаётся множество программ, пользователи довольны, и нет никаких обстоятельств тревожиться о будущем. В действительности обстоятельство для этого имеется, и кроется она в самом нутре мобильной ОС iOS. Кроме того, с того времени, как в Apple стали переносить особенности iOS в настольную Mac OS X, её будущее также выяснилось на грани.

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

В своё время появление помощи виртуальной памяти разрешило (до какой-то степени) не обращать внимания на ограничения, накладываемые количеством ОЗУ. Cистема сама выгружает неиспользуемые фрагменты оперативной памяти на диск, а после этого восстанавливает их, в то время, когда появляется необходимость. Персистентность приложений, в сущности, развивает ту же идею, но разрешает совокупности выгружать не просто данные из памяти, а замораживать целые процессы, впустую тратящие ресурсы, и после этого так же машинально восстанавливать их. В случае если виртуальная память скрывает от программистов и пользователей отличие между ОЗУ и диском, то персистентность приложений скрадывают отличия между запущенными и отключёнными процессами.

Весьма примитивная и ненадёжная форма персистентности приложений имеется в iOS и других современных мобильных совокупностях, каковые без участия пользователя завершают работу неактивных приложений, дабы сэкономить память либо заряд батареи. Ту же цель преследует функция Resume, показавшаяся в последней версии Mac OS X. И в том и в другом случае роль совокупности сводится к тому, что перед закрытием приложения она передаёт ему сообщение, призывающее сохранить текущее состояние и приготовиться к немедленному отключению. Как реагировать на это сообщение, решают разработчики приложения.

Это весьма несложный и экономичный способ, но он терпим только , пока соперники не реализовали полноценную персистентность приложений. Тогда Apple будет необходимо опять перестраивать внутренности совокупности, а перестраивать, как мы знаем, часто тяжелее, чем строить с нуля. Пятнадцать лет назад подобная перестройка завела уникальную Mac OS в таковой тупик, что выбираться из него было нужно путём приобретения второй ОС – NeXTstep.

Один из самых известных недочётов хорошей Mac OS пребывал в том, что в том месте существовала фальшивая , а кооперативная многозадачность. При кооперативной многозадачности приложения должны сами возвращать управление совокупности. Из этого и наименование: дабы такая многозадачность трудилась, нужна “кооперация”, другими словами сотрудничество со стороны приложений. Программа, которая не возвращает управление добровольно, остановит работу компьютера, и с этим ничего не сделать.

В Unix и Windows NT переключением управления между процессами управляет совокупность. Процесс возможно в любую секунду остановлен, стёрт с лица земли и без того потом.

на данный момент та же история повторяется с персистентностью приложений. И iOS, и OS X Lion пробуют сохранять состояние приложений, но вместо того, дабы сделать это самостоятельно, они снова устраивают “кооперацию”. Приложения должны сами сохранять собственное состояние и сами восстанавливать его, пользуясь особыми программным интерфейсом. В случае если приложение не осилит с этим, то никакой персистентности не выходит – эти теряются.

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

На ранних скриншотах OS X Lion у приложений нет индикации состояния (запущено либо нет). Все программы должны были . Но фокус не удался — сейчас кроме того на apple.com показывают огоньки под значками

Возможно, само собой разумеется, винить разработчиков приложений в лени, но это бессмысленно. Порочен сам подход. О персистентности данных, как и о многозадачности, обязана заботиться совокупность, а не чужой программист. Обстоятельство, по которой этого не происходит, в современных совокупностях Apple и в уникальной Mac OS одинаковая: совокупность изначально разрабатывалась под железо, которого “не хватало” чтобы сделать верно.

Хорошая Mac OS разрабатывалась в начале восьмидесятых, в то время, когда кроме того шестнадцатиразрядные процессоры считались роскошью. Но к середине девяностых железо, в полной мере пригодное для полноценной реализации многозадачности, было распространено везде, Mac OS же осталась прошлой. Windows 95 с вытесняющей многозадачностью превосходила устаревающую совокупность Apple во всех отношениях. Проект Copeland, цель которого была в том, чтобы устранить отставание, длился пара лет, но так ничем и не закончился. Десять лет форы не помогли, а напротив, помешали Apple.

Весьма возможно, что история повторится. Непременно кто-нибудь, безнадёжно отстающий (и потому не связанный по ногам и рукам ветхими наработками), сделает всё как нужно, а не как было возможно пара лет назад – и Apple снова окажется в глубоком тылу. iOS и Mac OS X – сложные совокупности с множеством особенностей и тонкостей. Не в последнюю очередь принципиально важно, что на эти изюминки ориентируются разработчики приложений. И выпутаться из всего того, что было нагорожено за последние три года, окажется не так легко.

Как верно реализовать персистентность приложений? Один из ответов – это виртуализация. Каждое приложение должно запускаться в отдельной виртуальной машине, а восстановление и сохранение будут происходить через образ виртуальной автомобили. Вдобавок, у для того чтобы способа имеется хорошие побочные эффекты. Во-первых, безопасность, поскольку каждое приложение окажется надёжно изолированным от вторых. Во-вторых, улучшенная совместимость: для каждого приложения совокупность может поддерживать собственную, приспособленную как раз для него среду – к примеру, устаревшую версию ОС.

Ещё один вариант, дающий гарантированный итог, – помощь персистентности на уровне ядра ОС. Об этом уже думают, например, в Микрософт, трудясь над ядром Singularity. Над похожей совокупностью трудится и отечественный соотечественник Дмитрий Завалишин.

В Apple смело сделали первый ход – начали внедрять персистентность на уровне программных интерфейсов приложений. Но покуда смелость не подкреплена важной базой либо глобальным замыслом, революции возможно не ожидать. А вдруг и ожидать, то с какой-нибудь совсем второй стороны.

Mac OS Evolution


Похожие статьи: