Ideal OS для десктопа, Статьи
|
HugoBo-SS
тут-та-ту
[SoftoRooMTeaM]
Группа: Модераторы Сообщений: 10.906 Регистрация: 3.04.2008 Из: Russia SPb Пользователь №: 827.869
Респектов: 4350
| Ideal OS, часть 1: перезагрузка десктопных операционных систем.
- Современные десктопные операционные системы не такие уж и современные. Это тормознутое поделие, обрюзгшее невообразимым множеством слоёв легаси-хлама, которое всё ещё функционирует лишь благодаря закону Мура. - Инновации в десктопных операционных системах остановились 15 лет назад и все ведущие игроки вряд ли захотят снова в них вложиться - Мы можем и нам следует начать всё с нуля, выучив уроки прошлого. "Современные" десктопные операционные системы раздуты» Нажмите, для открытия спойлера | Press to open the spoiler « Давайте рассмотрим Raspberri Pi. За 35$ Я могу приобрести потрясающий компьютер с 4 ядрами CPU, по 1 ГГц на каждый! Также здесь найдётся 3д-ускоритель, гигабайт оперативной памяти и встроенный wifi/bluetooth/ethernet. За 35 баксов! И тем не менее, для большинства задач, которыми Я занимаюсь он подходит не лучше, чем 66 МГц компьютер, которым Я пользовался ещё в колледже. На самом деле, в некоторых случаях всё гораздо хуже. Чтобы получить 3д ускорение для Doom, что было тривиальным делом для Microsoft Windows в середине 90ых, требуются невероятные усилия для X windows в наше время. Ниже представлен скриншот запущенного Processing на Rapsberry Pi с аппаратным ускорением. И это возможно только благодаря полностью кастомному видеодрайверу для X Windows, который всё ещё находится в стадии эксперимента. Спустя 5 лет после выхода Rapsberry Pi. Несмотря на проблемы X-Windows, Rapsberry Pi имеет удивительно мощный GPU, который способен делать вещи как на скриншоте далее, но при условии что мы избавимся от X-Windows.(конкретно этот скриншот сделан из OS X, но тот же код запускается на Pi 3 с 60fps) »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Или другой пример. Atom — один из самых популярных текстовых редакторов на сегодня. » Нажмите, для открытия спойлера | Press to open the spoiler « Разработчики обожают его потому что к нему есть огромное количество плагинов, но давайте разберёмся каким образом он работает. Atom использует Electron, который по существу является полноценным веб-браузером, идущий совместно рука об руку с окружением NodeJS. Это целых два Javascript-движка входящие в состав одной программы. Приложения на Electron используют API отрисовки браузера, которые делегируют отрисовку нативным библиотекам, которые затем обращаются к GPU(если повезёт) для отрисовки на дисплей. Так много слоёв.. Долгое время Atom был не способен открывать файлы больше 2 мегабайт, так как прокрутка работала бы очень медленно. Разработчики разрешили эту проблему написав реализацию буфера на C++, по существу удалив один из слоёв. Даже довольно простые приложения получаются чересчур усложнёнными в наши дни. Приложение для email, представленное выше концептуально очень простое. В нём всего лишь должно быть пару запросов в базу данных, текстовый редактор и модуль для коммуникации с IMAP и SMTP серверами. И всё же написание нового email-клиента является весьма сложной задачей. А если вы хотите модифицировать ваш email-клиент или уже существующий (например, Mail.app стандартный клиент для компьютеров Apple) — не существует простого способа сделать это. Отсутствует система плагинов. Отсутствует API для расширения функциональности. И это всё следствие раздутого количества слоёв. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Отсутствие инноваций
Инновации в десктопных операционных системах в общем и целом отправлены на кладбище. Можно спорить, что они закончились где-то в середине 90ых или даже в 80ых с выпуском маков, но очевидно, что всякий прогресс остановился после наступления эры смартфонов. Mac OS» Нажмите, для открытия спойлера | Press to open the spoiler « Mac OS X когда-то был лучом света в этом мёртвом царстве — каждый релиз демонстрировал прогресс и изобретательность инженеров Apple. Quartz 2D! Expose! Система синхронизации устройств! Виджеты! В наши дни Apple время от времени меняет тему и увеличивает привязанность к мобильным устройствам своего производства. Самая последняя версии Mac OS X (ныне переименованная в macOS в честь того, где они были 2 десятилетия назад) называется High Sierra. Какие же образцовые функции мы с нетерпением ждём этой осенью? Новая файловая система и новый видеокодек. И это всё? Ну ещё они добавили редактирование в приложение Photos, которое уже было в iPhotos, но было удалено после одного из обновлений. А и блокировка автовоспроизведения в Safari. Apple — самая дорогостоящая компания в мире и это всё на что они способны? Просто взаимодействие с десктопной ОС не является для них приоритетом. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Microsoft Windows» Нажмите, для открытия спойлера | Press to open the spoiler « В то же самое время компания Microsoft пыталась переизобрести десктоп как операционную систему для сенсорных планшетов и телефонов. И это была катастрофа, от которой они отмываются по сей день. За всё время разработки они не добавили ни одной функции, которая была бы полезна для пользователей десктопа, при этом тратя абсурдное количество денег на создание обоев. Вместо улучшения взаимодействия пользователя с системой они сфокусировались на новой модели добавления приложений, увеличивая количество слоёв поверх старого кода. И между прочим, Windows может всё ещё запускать приложения из 90ых. Консоль Windows — CMD.exe, позволяющая запускать программы DOS, была заменена только в 2016 году. А самая большая фича последнего релиза Windows 10 состоит в том, что они добавили подсистему Linux. Всё слоёнее и слоёнее пирог выходит. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« X Windows» Нажмите, для открытия спойлера | Press to open the spoiler « X Windows улучшалась даже меньше чем остальные. На самом деле, это примечательный пример неизменяемости. Люди жалуются на это с начала 90ых. Я очень рад, что могу приодеть свой GUI, но как насчёт системного буфера обмена, в котором нельзя хранить более одного элемента за раз? Это неизменно с 80ых! X Windows добавил менеджеры компоновки окон в середине 2000ых, но из-за легаси невозможно их использовать не для чего, кроме перетаскивания окон Wayland предположительно должен был всё исправить, но он разрабатывается уже десятилетие и всё ещё не готов! Совместимость со старыми API является весьма тяжкой ношей. Мне кажется Apple была права, когда засунула старый macOS в эмулятор, отгородившись от древнего кода. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Рабочие станции?Изначально десктопные операционные системы стали проще для использования, как только массовый рынок принял их; затем массовый рынок качнулся в сторону смартфонов и весь интерес в улучшении десктопного интерфейса подутих. » Нажмите, для открытия спойлера | Press to open the spoiler « Нет смысла винить Apple или Microsoft(и уже Google) за это. 3 миллиарда смартфонов заменяются каждые 2 года и это намного более прибыльный рынок, чем несколько сотен миллионов ПК и ноутбуков, сменяющиеся, дай бог, раз в 5 лет. Я считаю, что чтобы вернуться к улучшению интерфейса десктопа, мы должны пересмотреть наше отношение к ним. Если персональные компьютеры свободны от звания продукта для масс, то они должны рассматриваться как инструмент для работы — рабочие станции. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Вещи которые всё ещё нам не доступны в 2k17На дворе 2017 год. Давайте рассмотрим вещи, которые должны существовать, но которые отсутствуют по некоторым причинам. » Нажмите, для открытия спойлера | Press to open the spoiler « Почему Я могу присоединять и отсоединять вкладки внутри моего браузера или файлового менеджера, но не могу сделать то же самое между 2мя разными приложениями? Не существует ни одной технической причины, почему это было бы невозможно. Окошки приложений всего лишь изображения, но ребята разработчики не добавляют этой фичи, потому что не в приоритете! Почему Я не могу положить файл одновременно в два места моей файловой системы? Почему она обязана быть иерархичной? Почему Я не могу отсортировать файлы по тэгу или метаданным? Файловые системы с принципами баз данных существуют десятилетиями. Microsoft даже пыталась внедрить их со своей WinFS, но удалила из Windows Vista перед самым релизом, спасибо легаси. BeOS внедрила это 20 лет назад. Почему современные десктопные ОС не могут в это? В любом веб-приложении можно менять масштаб. Достаточно нажать Ctrl + и текст станет больше. Всё внутри окна автоматически адаптируется к масштабу. Почему этого не умеют нативные приложения? Почему Я не могу иметь на экране две области разных размером для окон? Или даже масштабировать их автоматически, когда перемещаюсь между окнами? Все эти вещи просты до безобразия с композитным оконным менеджером, которые были банальностью на протяжении десятилетия. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Ограниченное взаимодействие» Нажмите, для открытия спойлера | Press to open the spoiler « У моего компьютера есть мышь, клавиатура, датчики наклона, датчики света, 2 камеры, 3 микрофона и масса bluetooth-аксессуаров, но только первые 2 используются как основные устройства ввода. Почему Я не могу приказать своему пк выполнить что-то голосом или жестами? Почему мой компьютер не следит за моими глазами, чтобы увидеть, что Я читаю или просканирует что у меня в руках, чтобы использовать эти крутые AR-технологии, которые пришли в мой телефон. Некоторая функциональность существует в изолированных приложениях, но она не распространяется на всю систему и она не программируема. Почему мой Macbook не может используя Bluetooth подключиться к интересным HID-устройствам, вместо синхронизации с Apple Watch. А нет, мак ведь не умеет синхронизироваться с Apple Watch. Ещё одно место, где мой десктоп занимает роль второго плана. Почему компьютер не использует ничего для вывода кроме дисплея? Мой новый Razer-ноутбук имеет RGB-подсветку под каждой клавишей и единственная их функциональность — переливание цветными волнами! Как насчёт использовать эти LED для чего-то реально полезного? »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Программы комбайны» Нажмите, для открытия спойлера | Press to open the spoiler « Каждое мало-мальски полезное приложение имеет свою собственную часть файловой системы, свою собственную систему конфигурации, базу данных, файловый формат и алгоритмы поиска. А ещё свои собственные хоткеи. Невероятное количество дублирований! Но самое важное, что слабая коммуникация между приложениями делает очень сложной их координацию. Фундаментальные принципы Unix состоят в том, что небольшие инструменты работают вместе. Но X Windows не поддерживает это от слова совсем »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Созданные для 1984Почему же наши ПК до сих пор такие неуклюжие? Главным образом, потому что они созданы для 1984ого года. Десктопное GUI было изобретено в то время, когда большинство людей создавало документы с нуля, сохраняло и распечатывало их. Если вам посчастливилось, вы сохраняли документ в общей файловой системе или отправляли по email. На этом всё. Графический интерфейс был создан для решения задач, которые раньше осуществлялись с бумагой. » Нажмите, для открытия спойлера | Press to open the spoiler « Проблема в том, что на дворе 2017. Мы уже не работаем тем способом, что и в 1984. В типичный день Я возьму некий код с самых разных сайтов, скомпоную несколько тестов и сгенерирую структуру данных, представляющую результат, затем отправлю полученное другим для переиспользования. Импорт, синтез, экспорт. Я создал VR-контент. Я сколлажил изображения. Я отправил сообщения в дюжине соц. сетей. Я создал идеальный плейлист из 30000 песен. Я обрабатываю на порядок больше данных из большего числа мест, чем это было возможно 20 лет назад. Десктопные операционные системы просто не в состоянии масштабироваться к современным задачам. А мне нужен компьютер, который поможет справиться с этой лавиной информации. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Источник: habrahabr, первоисточник: | |
| |
3.09.2017 - 21:11 |
zoog
профи!
Группа: Пользователи Сообщений: 913 Регистрация: 13.09.2007 Пользователь №: 497.976
Респектов: 52
Предупреждений: 0
| Автор такой умный, а на горшок не просится скриншоты сняты фотоаппаратом на 10Мпикселей и запихнуты в пнг. Добавлено:Цитата | Quote Окошки приложений всего лишь изображения По-моему, что-то с автором не так.. Цитата | Quote Почему Я не могу положить файл одновременно в два места моей файловой системы? линки ж Цитата | Quote Почему она обязана быть иерархичной? удали все папки, набрось всё в корень... ? Цитата | Quote Почему Я не могу отсортировать файлы по тэгу или метаданным? TC Цитата | Quote Microsoft даже пыталась внедрить их со своей WinFS ему реально хочется, чтоб, например, вместо файлов мп3, ави и тхт были кнопочки "хочу кина", "хочу чтоб бум-бум", "надо работать"? признайтесь, это шутка? Сообщение отредактировал zoog - 3.09.2017 - 21:16 | |
| |
3.09.2017 - 23:47 |
HugoBo-SS
тут-та-ту
[SoftoRooMTeaM]
Группа: Модераторы Сообщений: 10.906 Регистрация: 3.04.2008 Из: Russia SPb Пользователь №: 827.869
Респектов: 4350
| Цитата | Quote(zoog @ 3.09.2017 - 21:34) Автор такой умный, а на горшок не просится скриншоты сняты фотоаппаратом на 10Мпикселей и запихнуты в пнг. Это - норма на habre. Это у нас созданы комфортные условия для "нищебродов" с устройствами доисторических разрешений домохозяек малограмотных пользователей, неумеющих настраивать свои браузеры для комфортного отображения интересующих их страниц. Вы не заметили, что автор пишет не исключительно о виндах, а обо всех ДЕСКТОПНЫХ ОS, Ваши подсказки по определённым вопросам касаются СТОРОННИХ программ пользовательского режима и не относятся к прозрачным начтройкам ВСЕХ операционных систем.... Цитата | Quote(zoog @ 3.09.2017 - 21:34) Цитата | QuoteПочему Я не могу положить файл одновременно в два места моей файловой системы?линки ж Что такое линки? Может быть, ссылочный механизм NTFS? Так данная файловая система - родная только в виндах, и её спецификации закрыты, потому реализация её поддержки в других ОСях ограничена. Да и в виндовс полноценная работа с ней нетривиальна не имеет ВСТРОЕННОГО УДОБСТВА для рядового пользователя. А положить в несколько мест - это положить в несколько мест, а не создать туеву хучу "линков". Цитата | Quote(zoog @ 3.09.2017 - 21:34) Почему она обязана быть иерархичной?удали все папки, набрось всё в корень... ? Почитайте на просторах инета ( к примеру,про ту же WinFS, какие бывают файловые системы, их свойства и возможности управления). И не путайте известные Вам (и мне и другим) убогие маркетинговые или школярские маячки с чисто служебными низкоуровневыми аттрибутами. PS: TC - Total Commander, как я понимаю? Его не знает 80 процентов пользователей виндов и андроида( а часть из знающих не умеет пользоваться не использует совсем), им не пользуется 100 процентов юзеров других операционных систем. И, повторюсь, это - СТОРОННЯЯ программа с закрытым исходным кодом ( почему - спросите у Гислера), которая требует дополнительных денежных средств, для комфортного использования ( на виндовс системах). | |
| |
4.09.2017 - 3:05 |
AquaTour
Специалист
Группа: Пользователи Сообщений: 417 Регистрация: 4.07.2005 Пользователь №: 27.183
Респектов: 50
Предупреждений: 0
| Очень многое из перечисленного не является проблемой ОС, а может решаться софтом, запуск которого современные ОС обеспечат. Автор не заметил, что МС интегрирует голосового помощника, как раз чтобы автор мог отдавать команды компьютеру голосом. В будущем обновлении 10 винды добавят функцию слежения за взглядом пользователя. Пользователь не может освоить ТС? Это проблема пользователя, а не ОС, потому что ОС может запустить ТС. А если пользователь не может освоить какой то софт, значит не очень то он ему и нужен. То, что какая то программа является сторонней, это опять же не проблема ОС. Автор - типичный нытик, если посадить его в описанные им же "идеальные условия" станет ныть еще громче о том, как было хорошо раньше. | |
| |
4.09.2017 - 8:06 |
zoog
профи!
Группа: Пользователи Сообщений: 913 Регистрация: 13.09.2007 Пользователь №: 497.976
Респектов: 52
Предупреждений: 0
| Цитата | Quote(HugoBo-SS) малограмотных пользователей, неумеющих настраивать свои браузеры То есть когда бухгалтерша впихивает несжатый 10Мп-скан с парой строчек текста - это я виноват? что же мне надо настроить, оперу-турбо? Цитата | Quote всех ДЕСКТОПНЫХ ОS Ой, таки в никсах линки и директории появились ещё до мс-дос афаик. А то, что у них в принципе нет файлового менеджера - это тоже проблема не мс, а специфической атмосферы промиску свободного софта. Цитата | Quote Его не знает 80 процентов Speak english or die - вот мой девиз. | |
| |
4.09.2017 - 8:16 |
zoog
профи!
Группа: Пользователи Сообщений: 913 Регистрация: 13.09.2007 Пользователь №: 497.976
Респектов: 52
Предупреждений: 0
| Цитата | Quote Да и в виндовс полноценная работа с ней в хвалёных никсах что ли есть? Цитата | Quote положить в несколько мест - это положить в несколько мест, а не создать туеву хучу "линков". Ну, тогда объясните мне, что это такое, если без линков. Многократное копирование?? Цитата | Quote про ту же WinFS Винфс - это уникальный, феерический факап, который просто не мог работать несмотря на все амбиции МС по анальному отбиранию у юзеров файлА. Ибо даже специализированные, годные программы по работе с ид3-тэгами (tag-rename, foobar, mp3tag) по-разному не видят простые тэги, а бг хотел вообще все файлы перевести в такой вид. Не говоря уж о надёжности, ту же нтфс упавшую починить на порядок сложнее. Сообщение отредактировал zoog - 4.09.2017 - 8:17 | |
| |
4.09.2017 - 17:44 |
HugoBo-SS
тут-та-ту
[SoftoRooMTeaM]
Группа: Модераторы Сообщений: 10.906 Регистрация: 3.04.2008 Из: Russia SPb Пользователь №: 827.869
Респектов: 4350
| На мой взгляд, автор не занимается сравнением достоинств и недостатков конкретных ОСей, а заостряет внимание на ОБЩЕЙ проблеме ТОРМОЗА в развитии ВСЕХ ОСей для десктопов и кривизны и излишней затратностности ресурсов компьютера в реализации несущественных "улучшений" ВЕЗДЕ. А Вы скатываетесь на банальный и набивший оскомину холивар вин-линь и кривизну реализаций механизмов ( высказывания о которых только подтверждают одну из мыслей автора ). И, предворяя пустые ( для поднятой темы) комментарии: не рассматриваем СТОРОННИЕ реализации механизмов того-сего, которые ( в целом) являются ещё одним слоем абстракции, требующим дополнительных ресурсов железа ( о чём в статье тоже упомянуто). Цитата | Quote(AquaTour @ 4.09.2017 - 3:28) Автор не заметил, что МС интегрирует голосового помощника, как раз чтобы автор мог отдавать команды компьютеру голосом.В будущем обновлении 10 винды добавят функцию слежения за взглядом пользователя. Рекламные лозунги "светлого будущего" не являются предметом статьи, в данном контексте. Рассматривается то, что есть по-факту и как работает то, что реализовано. В базовых возможностях ОСей ( повторюсь, не сторонних программ). Я не защищаю ВСЮ аргументацию автора, но с главным выводом согласен ( хотя сам - относительно олдскульный и консервативный пользователь, возможно, как раз из-за отсутствия реально полезных прорывных реализаций новоявленного ). | |
| |
4.09.2017 - 22:11 |
zoog
профи!
Группа: Пользователи Сообщений: 913 Регистрация: 13.09.2007 Пользователь №: 497.976
Респектов: 52
Предупреждений: 0
| Цитата | Quote(HugoBo-SS) автор не занимается На мой взгляд, ничем, плохо представляя себе механизм работы и имеющиеся возможности. Цитата | Quote на банальный и набивший оскомину холивар вин-линь не было такого) на мой взгляд, обе они хороши Цитата | Quote не рассматриваем СТОРОННИЕ реализации механизмов того-сего, которые ( в целом) являются ещё одним слоем абстракции, требующим дополнительных ресурсов железа ( о чём в статье тоже упомянуто) А вот это нонсенс, сила софта как раз в изобилии сторонних решений. Которые в случае виндовс гораздо легче и прямее афаик. | |
| |
4.09.2017 - 23:23 |
HugoBo-SS
тут-та-ту
[SoftoRooMTeaM]
Группа: Модераторы Сообщений: 10.906 Регистрация: 3.04.2008 Из: Russia SPb Пользователь №: 827.869
Респектов: 4350
| Цитата | Quote(zoog @ 4.09.2017 - 22:34) изобилии сторонних решений. Которые в случае виндовс гораздо легче и прямее афаик. Об этом и речь, в частности | |
| |
6.09.2017 - 20:51 |
HugoBo-SS
тут-та-ту
[SoftoRooMTeaM]
Группа: Модераторы Сообщений: 10.906 Регистрация: 3.04.2008 Из: Russia SPb Пользователь №: 827.869
Респектов: 4350
| Идеальная ОС, часть2: переосмысление операционных систем для десктопа
Нам нужна современная рабочая станция» Нажмите, для открытия спойлера | Press to open the spoiler « Итак, теперь мы выходим на теоретический уровень. Предположим, у нас действительно есть ресурсы и способ обеспечить (или игнорировать) обратную совместимость. Предположим, мы действительно можем создать нечто, чтобы по-другому спроектировать десктоп для современных методов работы. Как мы это сделаем? Для начала нужно избавиться от всего, что не справляется со своими задачами. - Традиционные файловые системы иерархические, с медленным поиском и не хранят по умолчанию все необходимые нам метаданные. - Все межпроцессные взаимодействия. Существует слишком много способов коммуникации между программами. Каналы, сокеты, общая память, RPC, вызовы ядра, drag-and-drop, копипаст. - Интерфейсы командной строки не соответствуют современному использованию приложений. Мы просто не можем всё делать в чистом тексте. Я бы хотел перенаправить свой видеозвонок по Skype в сервис видеоанализа во время разговора, но я реально не могу запустить видеопоток через awk или sed. - Оконные менеджеры на традиционных десктопах не следят за контекстом или контентом и не контролируются другими программами. - Нативные приложения слишком тяжеловесны, их долго разрабатывать и они живут в бункерах. Так что у нас остаётся? Немного. У нас осталось ядро и драйверы устройств. Мы можем держать надёжную файловую систему, но она не будет доступна для конечных пользователей или приложений. Теперь давайте добавим обратно некоторые элементы. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« База данных документов» Нажмите, для открытия спойлера | Press to open the spoiler « Начнём с общей для системы базы данных документов. Не будет ли проще создать новый почтовый клиент, если база данных уже готова? UI будет состоять всего из нескольких строчек кода. В реальности, многие обычные приложения — это всего лишь текстовые редакторы в сочетании с запросами данных. Возьмите iTunes, адресную книгу, календарь, уведомления, сообщения, Evernote, список дел, закладки, историю браузера, базу паролей и менеджер фотографий. Каждая из этих программ оснащена собственным уникальным хранилищем данных. Столько впустую потраченных усилий и помех для взаимодействия! BeOS доказала, что файловая система с базой данных действительно может работать и обеспечивает невероятные преимущества. Нам нужно её вернуть. У файловой системы с БД документов много преимуществ перед традиционной файловой системой. Не только «файлы» существуют более чем в одном месте и становятся легко доступны для поиска, но гарантированное наличие высокопроизводительной БД намного облегчает создание приложений. К примеру, возьмём iTunes. Он хранит mp3-файлы на диске, но все метаданные находятся в закрытой базе данных. Наличие двух «источников правды» создаёт массу проблем. Если вы добавляете на диск новую песню, то нужно вручную указать iTunes заново просканировать её. Если хотите разработать программу, которая работает с базой данных песен, то придётся осуществить реверс-инжиниринг формата iTunes DB и молиться, чтобы Apple не изменила его. Все эти проблемы исчезают при наличии единой системной базы данных. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Шина сообщений» Нажмите, для открытия спойлера | Press to open the spoiler « Шина сообщений станет единым способом межпроцессных взаимодействий. Мы избавляемся от сокетов, файлов, каналов, ioctrl, общей памяти, семафоров и всего остального. Все коммуникации только через шину сообщений. Мы получаем единое место для управления безопасностью и создания множества интересных функций через грамотное проксирование. В реальности некоторые из видов коммуникации всё-таки останутся как опции для приложений, которым они необходимы, вроде сокетов для браузера, но все коммуникации с системой и между приложениями идут через общую шину. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Компоновщик» Нажмите, для открытия спойлера | Press to open the spoiler « Теперь мы можем добавить компоновщик — оконный менеджер, который по-настоящему работает с 3D-поверхностями, преобразует координаты и контролируется через сообщения по шине. Большую часть того, что делает типичный менеджер, вроде размещения окон, наложения уведомлений и определения, какое окно активно, на самом деле могут делать другие программы, которые просто присылают сообщения в компоновщик, а он уже выполняет реальную работу. Это значит, что компоновщик будет тесно интегрирован с графическим драйвером, это важно для обеспечения высокой производительности. Ниже показана схема Wayland — компоновщика, который когда-нибудь станет работать по умолчанию в Linux. Приложения выводят графику на экран, запрашивая поверхность у компоновщика. Завершив вывод графики и при необходимости обновления они просто отправляют сообщения: пожалуйста, перерисуй меня. На практике у нас, вероятно, будет несколько типов поверхностей для 2D- и 3D-графики, а может и для необработанного видеобуфера. Важно то, что в конечном счёте именно компоновщик контролирует всё, что появляется на экране, и когда. Если одно приложение сходит с ума, компоновщик может подавить его вывод на экран и гарантировать, что вся остальная система нормально работает. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Приложения становятся модулями» Нажмите, для открытия спойлера | Press to open the spoiler « Все приложения превращаются в маленькие модули со всеми коммуникациями через шину сообщений. Полностью. Больше никакого доступа к файловой системе. Никакого доступа к аппаратному обеспечению. Всё только в виде сообщений. Если хотите воспроизвести mp3-файл, то отправляете сообщение play в сервис mp3. Вывод графики на экран через компоновщик. Такое разделение обеспечивает безопасность системы. В терминологии Linux, каждое приложение станет полностью изолировано через разрешения пользователя и chroot, возможно, вплоть до контейнеров Docker или виртуальных машин. Здесь нужно проработать много деталей, но всё решаемо уже сегодня. Модульные приложения будет гораздо легче разрабатывать. Если база данных — это единственный источник правды, то не нужно делать много работы по копированию данных в память и обратно. В примере с аудиоплеером поле поиска не будет загружать данные и проводить фильтрацию для отображения списка, оно просто определяет запрос. Список затем привязан к этому запросу, а данные появляются автоматически. Если другое приложение добавляет в базу данных песню, которая соответствует поисковому запросу, то UI плеера автоматически обновляется. Это всё делается без каких-либо дополнительных усилий со стороны разработчика. «Живые» запросы с автообновлением сильно облегчают жизнь и они более надёжны. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Переделка приложений» Нажмите, для открытия спойлера | Press to open the spoiler « На такой базе мы можем создать всё, что нам нужно. Однако это также означает, что нам придётся переделывать всё с нуля. Высокоуровневые конструкции поверх БД сильно упростят этот процесс. Посмотрим на несколько примеров. Электронная почта. Если разделить стандартный почтовый клиент на GUI и сетевые модули, которые общаются исключительно через сообщения по шине, то разработка программы станет намного проще. GUI не должен ничего знать о почте Gmail или Yahoo, или как обрабатывать сообщения об ошибках SMTP. Он просто ищет в БД документы с указанным типом "email". Когда GUI хочет отправить сообщение, то назначает ему свойство outgoing=true. Простой модуль составит список всех исходящих почтовых сообщений и отправит их по STMP. Разделение почтового клиента на компоненты значительно облегчает замену отдельных его частей. Вы можете разработать новый фронтенд за полдня, и не придётся переписывать сетевые модули. Вы можете разработать спам-фильтр вообще без пользовательского интерфейса, он просто сканирует входящие сообщения, обрабатывает их и помечает подозрительные сообщения тегом «спам». Он не знает и не заботится о том, как отображается спам в GUI. Он просто хорошо делает одну вещь. Почтовые фильтры могут делать и другие интересные вещи. Например, вы отправили своему боту по почте команду play beatles. Крошечный модуль сканирует входящую почту и отправляет другое сообщение модулю mp3 для воспроизведения музыки, а затем помечает письмо как удалённое. Когда всё превращается в запросы к БД, то вся система становится более гибкой и настраиваемой. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Командная строка» Нажмите, для открытия спойлера | Press to open the spoiler « Знаю, я раньше говорил, что мы избавимся от командной строки. Беру свои слова обратно. Мне действительно иногда нравится командная строка как интерфейс, меня беспокоит только её чисто текстовая природа. Вместо выстраивания цепочек CLI-приложений с текстовыми потоками нужно нечто более функциональное, вроде сериализованных потоков объектов (как JSON, но более эффективных). Вот тогда у нас появится настоящая сила. Рассмотрим следующие задачи: Я хочу использовать ноутбук как усиленный микрофон. Я говорю в него, а голос звучит из колонок Bluetooth в другом конце комнаты. Как только я публикую твит с хештегом #mom, его копия должна отправляться по электронной почте моей маме. Я хочу использовать iPhone в качестве микроскопа, закреплённого на стойке из конструктора «Лего». Он транслирует картинку на ноутбук, где у меня управление — кнопки для записи, паузы, приближения и ретрансляции прямого эфира на YouTube. Я хочу сделать простой байесовский фильтр, который реагирует на почтовые сообщения от «Энергосбыта», добавляет тег «коммунальные услуги», делает запись на веб-сайте, извлекает из письма сумму и дату платежа и добавляет запись в мой календарь. Каждая из этих задач концептуально проста, но только подумайте, сколько кода придётся написать, чтобы реализовать это сегодня. С интерфейсом командной строки на потоках объектов каждый из этих примеров укладывается в скрипт из одной или двух строчек. Мы можем осуществлять и более сложные операции, вроде «Найти все фотографии, сделанные за последние четыре года в радиусе 80 км от Йосемитского национального парка с рейтингом 3 звезды или выше, изменить их размер на 1000px по длинной стороне, закачать в альбом Flickr под названием «Лучшее из Йосемите» и поставить ссылку на альбом на Facebook. Это можно будет сделать встроенными инструментами, без дополнительного программирования, просто соединив несколько примитивов. Вообще-то Apple создала подобную систему. Она называется Automator. Вы можете в графическом интерфейсе создавать мощные рабочие процессы. Система никогда не рекламировалась, а сейчас убирают привязку к Applescript, на которой всё работает. Недавно всех сотрудников группы Automator перевели в другие команды. Эх… »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Семантические сочетания клавиш по всей системе» Нажмите, для открытия спойлера | Press to open the spoiler « Теперь, после переделки мира, чем займёмся? Сервисы доступны во всей системе. Это означает, что мы можем запустить единый сервис, где пользователь может назначать сочетания клавиш (keybindings). Это также означает, что у сочетаний клавиш появится более глубокий смысл. Вместо указания на функцию конкретной программы они указывают на сообщение о команде. Во всех приложениях, которые работают с документами, могут быть команды «Создать новый документ» или «Сохранить». Сервис сочетаний клавиш будет отвечать за превращение control-S в команду «Сохранить». Я называю это семантическими сочетаниями клавиш (semantic keybindings). С помощью семантических сочетаний клавиш будет гораздо легче поддерживать альтернативные способы ввода. Скажем, вы разработали причудливую кнопку на Arduino, при нажатии на которую звучит какая-то фраза. Вам не нужно писать специальный код для неё. Просто укажите Arduino отправлять событие о нажатии кнопки, а затем привяжите к этому событию аудиофайл в редакторе сочетаний клавиш. Превратите цифровой горшок в кастомное колёсико прокрутки. UI теперь изменяется как угодно. В этой области ещё необходимы некоторые исследования, но мне кажется, что семантические сочетания клавиш упростят разработку скринридеров и других программ для облегчения доступа. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Окна» Нажмите, для открытия спойлера | Press to open the spoiler « В нашей новой ОС любое окно стыкуется как вкладка к другому окну. Или к боковой панели. Или к чем-нибудь ещё. Независимо от приложения. Здесь большая свобода для экспериментов. В старой MacOS 8 была разновидность окон-вкладок, по крайней мере, в приложении Finder, которые можно было пристыковать к нижнему краю экрана для быстрого доступа. Ещё одна классная вещь, которую выбросили при переходе на Mac OS X. На скриншоте внизу пользователь приподымает границу окна, чтобы посмотреть, что там внизу. Это очень круто! Это был пример из научной статьи «Ametista: мини-набор для изучения новых способов управления окнами», автор Николас Руссель. Поскольку система полностью контролирует окружение всех приложений, она может принудительно ввести ограничения безопасности и демонстрировать это пользователю. Например, у доверенных приложений могут быть зелёные рамки. У только что скачанного из интернета нового приложения будет красная рамка. У приложения неизвестного происхождения — чёрная рамка, или оно вообще не выводится на экран. Многие виды спуфинга станут невозможными. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Умный копипаст» Нажмите, для открытия спойлера | Press to open the spoiler « Когда вы скопировали текст из одного окна и переключились в другое, компьютер знает, что вы что-то скопировали. Он может использовать это знание для осуществления каких-нибудь полезных действий, например, автоматически сдвинуть первое окно в сторону, оставив его в зоне видимости, и отобразить выделенный текст зелёным цветом. Это помогает пользователю сохранить концентрацию на текущей задаче. Когда пользователь вставляет текст в новом окне, можно показать, как зелёный фрагмент перепрыгивает из одного окна в другое. Но зачем ограничивать себя этим. Сделаем буфер обмена, который вмещает больше одного элемента. У нас гигабайты памяти. Давайте использовать её. Когда я копирую что-то, почему я должен помнить, что конкретно я копировал перед тем, как вставить это в другом окне? Буфер обмена нигде не видим. Исправим это. Буфер обмена должен отображаться на экране как некая полка, на которой хранятся все скопированные фрагменты. Я могу зайти на три веб-страницы, скопировать их адреса в буфер обмена, а затем вернуться в документ и вставить все три сразу. Модуль просмотра буфера обмена позволяет прокручивать всю историю буфера. Я могу искать в ней и фильтровать по тегам. Могу «прикрепить» любимые экземпляры для последующего использования. В классической macOS на самом деле был отличный встроенный инструмент под названием [name], но от него отказались при переходе на OS X. Десятилетия назад у нас было будущее! Вернём его обратно. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Рабочие наборы» Нажмите, для открытия спойлера | Press to open the spoiler « И наконец-то мы переходим к тому, что я считаю самым мощным изменением парадигмы в нашей новой Идеальной ОС. В новой системе все приложения представляют собой крошечные изолированные модули, которые знают только то, что говорит им система. Если расценивать БД как единственный источник правды, а сама БД версионированная, а наш оконный менеджер настраивается на любой вкус… то становятся возможными по-настоящему интересные вещи. Обычно я разделяю личные и рабочие файлы. Это отдельные папки, аккаунты, иногда разные компьютеры. В Идеальной ОС мои файлы могут разделяться средствами самой ОС. У меня может быть один экран с домашней почтой, а другой экран — с рабочей. Это одно и то же приложение, просто инициализированное с разными настройками запросов. Когда я открываю файл-менеджер на домашнем экране, то он показывает только файлы, предназначенные для домашних проектов. Если я создаю документ на рабочем экране, то он автоматически помечается тегом как строго рабочий документ. Управление всем этим тривиально; просто несколько дополнительных полей в базе данных. Исследователи из Технологического института Джорджии в реальности описали такую систему в своей научной работе «Giornata: пересмотр метафоры десктопа для содействия высококвалифицированной работе» Теперь сделаем ещё один шаг. Если всё версионируется, даже настройки GUI и расположение окон (поскольку всё хранится в БД), я могу сохранить состояние экрана. Он будет хранить текущее состояние всех параметров, даже мои сочетания клавиш. Я могу продолжить работу, но всегда будет возможность вернуться к этому состоянию. Или я могу посмотреть старое состояние — и восстановить его на новом экране. Я по сути создал «шаблон», который можно использовать снова и снова, как только я начинаю новый проект. Этот шаблон содержит всё необходимое: настройки почтового клиента, историю чатов, списки дел, код, окна для описания багов или даже соответствующие страницы Github. Теперь всё состояние компьютера в сущности рассматривается как репозиторий Github, с возможностью форкнуть состояние целой системы. Думаю, это будет просто волшебно. Люди станут обмениваться полезными рабочими пространствами в онлайне, как образами Docker. Можно настраивать свои рабочие процессы, добавлять полезные скрипты к рабочему пространству. Возможности здесь поистине восхитительные. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Ничего из этого не ново» Нажмите, для открытия спойлера | Press to open the spoiler « Так что вот так. Мечта. Всё вышеописанное базируется на трёх принципах: всесистемная версионированная база данных в реальном времени, всесистемная шина сообщений в реальном времени и программируемый компоновщик. Хочу подчеркнуть, что абсолютно ничего из того, о чём я рассказывал, не является новым. Я ничего не придумал. Всем этим идеям годы или десятилетия. Файловые базы данных впервые появились в BeOS. Единый механизм межпроцессных взаимодействий появился в Plan 9. Настройка окружения из редактируемого документа реализована в Oberon. И конечно ещё огромное множество научных статей с результатами исследований. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Почему у нас этого нет?» Нажмите, для открытия спойлера | Press to open the spoiler « Здесь ничего нового. И у нас до сих пор этого нет? Почему так? Подозреваю, что главная причина просто в сложности разработки успешной операционной системы. Гораздо удобнее расширять существующую систему, чем создать нечто новое; но расширение также означает, что вы ограничены выбором, сделанным в прошлом. Можем ли мы в реальности создать Идеальную ОС? Подозреваю, что нет. Никто не сделал это до сих пор, потому что, если честно, здесь не заработаешь деньги. А без денег просто не найдёшь ресурсы для разработки. Однако если кто-то всё-таки поставит цель создать такую ОС или хотя бы рабочий прототип, то я бы начал с конкретного ограниченного набора аппаратного обеспечения с существующими драйверами устройств. Недостаточная поддержка драйверов всегда была ахиллесовой пятой десктопного Linux. Например, Raspberry Pi 3 будет отличным вариантом. Так что мой вопрос к вам: как вы думаете, идея стоит усилий на её реализацию, хотя бы для создания рабочего прототипа? Вы бы поучаствовали в таком проекте? Какая часть функциональности должна работать, чтобы вы согласились взять систему для тестирования? И конечно, как нам её назвать? Если вам интересно обсуждение будущего десктопного UX, подписывайтесь на нашу новую группу Ideal OS Design. »» Нажмите, для закрытия спойлера | Press to close the spoiler «« Источник: geektimes, первоисточник Цитата | Quote(AquaTour @ 4.09.2017 - 3:28) Автор - типичный нытик, если посадить его в описанные им же "идеальные условия" станет ныть еще громче о том, как было хорошо раньше. Автор - не нытик-потребитель контента, автор - - активный разработчик ПО, с незашоренным мышлением | |
| |
|
|