Привет, Хабр! Мы в компании Friflex запустили подкаст «Гости из IT». Вместе с экспертами из разных областей IT разбираемся в технологиях и обсуждаем, как они меняют нашу жизнь и работу.
Сегодня размышляем об операционных системах: зачем они нужны, какие задачи решают и можно ли в принципе ими владеть.
Своими мыслями делятся Роман Аляутдин, директор департамента разработки ОС «Аврора» в «ОМП», и Алексей Хорошилов, ведущий научный сотрудник Института системного программирования им. Иванникова РАН, руководитель Технологического центра исследования безопасности ядра Linux. Модерировали дискуссию ведущий Антон Комолов и CEO Friflex Петр Чернышев.
Что такое операционная система?
Алексей Хорошилов: Операционная система — это прослойка между приложениями и железом. Приложения должны работать на разном железе, не задумываясь об этом. Например, если каждое приложение само будет учиться работать с каждой моделью принтера — это будет кошмар.
Операционная система предоставляет унифицированный интерфейс, с которым используется каждое приложение. Поэтому вы можете печатать на каждом принтере, который поддерживает операционная система вашего компьютера.
С академической точки зрения определение на этом заканчивается (а мне приходилось писать его для большой Российской энциклопедии). Но все уже привыкли, что кроме базовых функций в операционную систему входит целый набор приложений.
Если вы дадите пользователям десктопную операционку, в которой будет только терминал, как 30 лет назад, пользователи не поймут. Все ждут, что там будет файловый менеджер, куча встроенных приложений. То же самое касается и сегмента серверных операционных систем.
Роман Аляутдин: Задача операционной системы — организовать вычислительный процесс. Управлять железом, периферией и предоставлять интерфейс как прикладным программам, так и пользователям. Предоставлять графический интерфейс, если мы говорим о мобильных или о десктопных операционных системах.
Операционные системы используются в разных сегментах. Есть операционные системы для авиации. Есть операционные системы потребительские, для десктопа, для мобильных устройств. Есть встраиваемые операционные системы. Вы приходите домой и включаете стиральную машину, а там — маленькая операционная система.
Что такое российская операционная система?
Роман Аляутдин: А какая компания или организация может считать операционную систему своей? Почему Android — операционная система Google? Можно дать такой ответ: если компания владеет кодом и у нее есть команда, которая умеет развивать, сопровождать, вносить значимые изменения и поддерживать кодовую базу такого большого программного продукта, как операционная система, можно сказать, что это операционная система ей принадлежит.
Почему я вспомнил Android — это очень крупный продукт, им пользуются во всем мире. Но даже такая огромная корпорация с многомиллиардными бюджетами, как Google, строит свой продукт на основе ядра Linux. А его разрабатывает весь мир, в том числе российские программисты.
Даже такая огромная корпорация не делает все от бита до бита у себя в подвале. Крупные мировые вендоры сегодня стараются объединяться и общие компоненты разрабатывать вместе через проекты с открытым исходным кодом.
Тексты программ доступны для всех участников. Общим котлом они варят эту уху. Кто-то приносит петрушку, кто-то — рыбу, кто-то — картошку. Все могут вместе эту уху есть и использовать в качестве компонента своих операционных систем. Похожий подход сейчас начинает мигрировать и в сторону электроники.
Как развиваются операционные системы
Алексей Хорошилов: Нельзя смотреть на операционную систему как на что-то статичное. ОС — это живой организм, он должен жить, развиваться, в нем нужно исправлять ошибки, убирать уязвимости. Нельзя сказать, что мы вложили столько-то человеко-лет и завершили разработку. Если продуктом начинает кто-то пользоваться, он требует постоянного внимания и вложений.
Роман Аляутдин: Да, именно поэтому вы видите новые релизы операционных систем. Даже если бы туда не вносили нового функционала, эти новые релизы все равно бы были — чтобы исправлять ошибки и убирать уязвимости. Их бы выпускали, чтобы сохранить тот уровень свойств продукта, который был при выпуске.
Когда продуктом пользуются, в нем рано или поздно находятся ошибки, проблемы, несостыковки, несовместимости. Их надо решать и устранять. К тому же, мир не стоит на месте, все хотят нового функционала, нового интерфейса. Наконец, хотят работать с новой периферией. Это мотивирует разработчиков развивать операционные системы.
В операционной системе Аврора мы стараемся постоянно поддерживать баланс между оригинальным интерфейсом и универсальным пользовательским опытом. Когда человеку выдают на работе планшет на Авроре, он не должен впадать в ступор, переключаясь со своего телефона на Android или IOS.
Мы проводим исследования. Например, собираем фокус-группы. Раздаем пользователям телефоны с Авророй. Они ими пользуются, выполняют разные задачи и пишут отчеты. Мы изучаем отчеты и на основе обратной связи решаем, что делать дальше.
Современные операционные системы для десктопа или для мобильных устройств — это десятки и сотни миллионов строк кода, это две тысячи, пять тысяч компонентов. Сопровождать, разрабатывать и развивать эти компоненты — огромнейшая работа.
Полностью выпуск можно послушать на разных платформах: