Pull to refresh

Ideal OS: перезагрузка десктопных операционных систем (часть 1)

Reading time7 min
Views44K

Привет, Хабр! Представляю вашему вниманию перевод статьи Ideal OS: Rebooting the Desktop Operating System Experience автора Josh Marinacci.



TL;DR: В этой статье Я хочу показать что:


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

"Современные" десктопные операционные системы раздуты


Давайте рассмотрим Raspberri Pi. За 35$ Я могу приобрести потрясающий компьютер с 4 ядрами CPU, по 1 ГГц на каждый! Также здесь найдётся 3д-ускоритель, гигабайт оперативной памяти и встроенный wifi/bluetooth/ethernet. За 35 баксов! И тем не менее, для большинства задач, которыми Я занимаюсь он подходит не лучше, чем 66 МГц компьютер, которым Я пользовался ещё в колледже.


image


На самом деле, в некоторых случаях всё гораздо хуже. Чтобы получить 3д ускорение для Doom, что было тривиальным делом для Microsoft Windows в середине 90ых, требуются невероятные усилия для X windows в наше время.


Ниже представлен скриншот запущенного Processing на Rapsberry Pi с аппаратным ускорением. И это возможно только благодаря полностью кастомному видеодрайверу для X Windows, который всё ещё находится в стадии эксперимента. Спустя 5 лет после выхода Rapsberry Pi.


image


Несмотря на проблемы X-Windows, Rapsberry Pi имеет удивительно мощный GPU, который способен делать вещи как на скриншоте далее, но при условии что мы избавимся от X-Windows.(конкретно этот скриншот сделан из OS X, но тот же код запускается на Pi 3 с 60fps)


image


Или другой пример. Atom — один из самых популярных текстовых редакторов на сегодня. Разработчики обожают его потому что к нему есть огромное количество плагинов, но давайте разберёмся каким образом он работает. Atom использует Electron, который по существу является полноценным веб-браузером, идущий совместно рука об руку с окружением NodeJS. Это целых два Javascript-движка входящие в состав одной программы. Приложения на Electron используют API отрисовки браузера, которые делегируют отрисовку нативным библиотекам, которые затем обращаются к GPU(если повезёт) для отрисовки на дисплей. Так много слоёв..


image


Долгое время Atom был не способен открывать файлы больше 2 мегабайт, так как прокрутка работала бы очень медленно. Разработчики разрешили эту проблему написав реализацию буфера на C++, по существу удалив один из слоёв.


image


Даже довольно простые приложения получаются чересчур усложнёнными в наши дни. Приложение для email, представленное выше концептуально очень простое. В нём всего лишь должно быть пару запросов в базу данных, текстовый редактор и модуль для коммуникации с IMAP и SMTP серверами. И всё же написание нового email-клиента является весьма сложной задачей. А если вы хотите модифицировать ваш email-клиент или уже существующий (например, Mail.app стандартный клиент для компьютеров Apple) — не существует простого способа сделать это. Отсутствует система плагинов. Отсутствует API для расширения функциональности. И это всё следствие раздутого количества слоёв.


Отсутствие инноваций


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


Mac OS


Mac OS X когда-то был лучом света в этом мёртвом царстве — каждый релиз демонстрировал прогресс и изобретательность инженеров Apple. Quartz 2D! Expose! Система синхронизации устройств! Виджеты! В наши дни Apple время от времени меняет тему и увеличивает привязанность к мобильным устройствам своего производства.


image


Самая последняя версии Mac OS X (ныне переименованная в macOS в честь того, где они были 2 десятилетия назад) называется High Sierra. Какие же образцовые функции мы с нетерпением ждём этой осенью? Новая файловая система и новый видеокодек. И это всё? Ну ещё они добавили редактирование в приложение Photos, которое уже было в iPhotos, но было удалено после одного из обновлений. А и блокировка автовоспроизведения в Safari.


Apple — самая дорогостоящая компания в мире и это всё на что они способны? Просто взаимодействие с десктопной ОС не является для них приоритетом.


Microsoft Windows


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


image


Вместо улучшения взаимодействия пользователя с системой они сфокусировались на новой модели добавления приложений, увеличивая количество слоёв поверх старого кода. И между прочим, Windows может всё ещё запускать приложения из 90ых.


Консоль Windows — CMD.exe, позволяющая запускать программы DOS, была заменена только в 2016 году. А самая большая фича последнего релиза Windows 10 состоит в том, что они добавили подсистему Linux. Всё слоёнее и слоёнее пирог выходит.


X Windows


image


X Windows улучшалась даже меньше чем остальные. На самом деле, это примечательный пример неизменяемости. Люди жалуются на это с начала 90ых. Я очень рад, что могу приодеть свой GUI, но как насчёт системного буфера обмена, в котором нельзя хранить более одного элемента за раз? Это неизменно с 80ых!


X Windows добавил менеджеры компоновки окон в середине 2000ых, но из-за легаси невозможно их использовать не для чего, кроме перетаскивания окон


image


Wayland предположительно должен был всё исправить, но он разрабатывается уже десятилетие и всё ещё не готов! Совместимость со старыми API является весьма тяжкой ношей. Мне кажется Apple была права, когда засунула старый macOS в эмулятор, отгородившись от древнего кода.


Рабочие станции?


Изначально десктопные операционные системы стали проще для использования, как только массовый рынок принял их; затем массовый рынок качнулся в сторону смартфонов и весь интерес в улучшении десктопного интерфейса подутих.


Нет смысла винить Apple или Microsoft(и уже Google) за это. 3 миллиарда смартфонов заменяются каждые 2 года и это намного более прибыльный рынок, чем несколько сотен миллионов ПК и ноутбуков, сменяющиеся, дай бог, раз в 5 лет.


image


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


Вещи которые всё ещё нам не доступны в 2k17


На дворе 2017 год. Давайте рассмотрим вещи, которые должны существовать, но которые отсутствуют по некоторым причинам.


Почему Я могу присоединять и отсоединять вкладки внутри моего браузера или файлового менеджера, но не могу сделать то же самое между 2мя разными приложениями? Не существует ни одной технической причины, почему это было бы невозможно. Окошки приложений всего лишь изображения, но ребята разработчики не добавляют этой фичи, потому что не в приоритете!


Почему Я не могу положить файл одновременно в два места моей файловой системы? Почему она обязана быть иерархичной? Почему Я не могу отсортировать файлы по тэгу или метаданным? Файловые системы с принципами баз данных существуют десятилетиями. Microsoft даже пыталась внедрить их со своей WinFS, но удалила из Windows Vista перед самым релизом, спасибо легаси. BeOS внедрила это 20 лет назад. Почему современные десктопные ОС не могут в это?


image


В любом веб-приложении можно менять масштаб. Достаточно нажать Ctrl + и текст станет больше. Всё внутри окна автоматически адаптируется к масштабу. Почему этого не умеют нативные приложения? Почему Я не могу иметь на экране две области разных размером для окон? Или даже масштабировать их автоматически, когда перемещаюсь между окнами? Все эти вещи просты до безобразия с композитным оконным менеджером, которые были банальностью на протяжении десятилетия.


Ограниченное взаимодействие


У моего компьютера есть мышь, клавиатура, датчики наклона, датчики света, 2 камеры, 3 микрофона и масса bluetooth-аксессуаров, но только первые 2 используются как основные устройства ввода. Почему Я не могу приказать своему пк выполнить что-то голосом или жестами?


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


Почему мой Macbook не может используя Bluetooth подключиться к интересным HID-устройствам, вместо синхронизации с Apple Watch. А нет, мак ведь не умеет синхронизироваться с Apple Watch. Ещё одно место, где мой десктоп занимает роль второго плана.


Почему компьютер не использует ничего для вывода кроме дисплея? Мой новый Razer-ноутбук имеет RGB-подсветку под каждой клавишей и единственная их функциональность — переливание цветными волнами! Как насчёт использовать эти LED для чего-то реально полезного?


Программы комбайны


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


Но самое важное, что слабая коммуникация между приложениями делает очень сложной их координацию. Фундаментальные принципы Unix состоят в том, что небольшие инструменты работают вместе. Но X Windows не поддерживает это от слова совсем


Созданные для 1984


Почему же наши ПК до сих пор такие неуклюжие? Главным образом, потому что они созданы для 1984ого года. Десктопное GUI было изобретено в то время, когда большинство людей создавало документы с нуля, сохраняло и распечатывало их. Если вам посчастливилось, вы сохраняли документ в общей файловой системе или отправляли по email. На этом всё. Графический интерфейс был создан для решения задач, которые раньше осуществлялись с бумагой.


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


Я создал VR-контент. Я сколлажил изображения. Я отправил сообщения в дюжине соц. сетей. Я создал идеальный плейлист из 30000 песен. Я обрабатываю на порядок больше данных из большего числа мест, чем это было возможно 20 лет назад. Десктопные операционные системы просто не в состоянии масштабироваться к современным задачам. А мне нужен компьютер, который поможет справиться с этой лавиной информации.


В следующей части, повествование пойдёт о том, каким образом можно будет прийти к решению описанных проблем
Tags:
Hubs:
Total votes 118: ↑80 and ↓38+42
Comments228

Articles