google web font

пятница, 3 февраля 2012 г.

Однопользовательская система

Вот зачем ему несколько учётных записей?
Я много думал над этим и пришёл к выводу, что многопользовательские системы не нужны. Этот подход должен умереть. Линукс должен эволюционировать до однопользовательской системы, как и Windows, и хз как там у MacOS.

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

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

А ему?
У моей жены есть нетбук. У меня есть десктоп. Она не пользуется моим десктопом. Я не пользуюсь её ноутбуком. Даже когда это правило нарушается, она пользуется моей учёткой на десктопе, я пользуюсь её учёткой на нетбуке. Я специально для неё сделал заметную кнопку в панели, потому что ей от десктопа нужна только одна задача: показать кино. Она специально для меня на нетбуке установила второй браузер, чтобы я её вкладки не закрывал. Это — проще, чем настраивать несколько профилей пользователей и каждый раз при включении компьютера выбирать профиль или даже иногда при выходе из спящего режима перелогиниваться.

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

Я понимаю, что бывают сервера и компьютеры с общим доступом. Но даже там многопользовательские системы являются не самым оптимальным или хотя бы не единственным способом разграничить привилегии обслуживающего персонала (админов) и сервисов/юзеров.

Каждым компьютером в один момент времени сейчас пользуется только один пользователь. Времена мейнфреймов в прошлом. Торвальдс писал свою систему как однопользовательский клиент для университетского многопользовательского мейнфрейма. Незаметно для себя клиент сам превратился в многопользовательский мейнфрейм. Это было ошибкой.

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

Тогда наконец исчезнут эти дурацкие проблемы с линуксовыми файловыми системами на флэшках (когда uid владельца файла на одной системе внезапно не совпадает с uid текущего пользователя на другой). Наконец-то появится возможность сделать на компе "общую папку", в которой не придётся каждый раз после создания файла менять ему права на 666. Закончатся эти "для того, чтобы использовать аппаратное ускорение, пользователь должен быть в группе video". В каталоге /home будут сразу лежать собственные файлы, а не эти унылые /home/vasja и /home/masha. Мне наконец не придётся больше объяснять себе, почему я, установив какую-то программу, для того, чтобы начать ей пользоваться, должен добавить себя куда-то там. Ну и прочий треш закончится. Больше не придётся быть системным администратором бытового прибора для доступа в интернет. Нормально всё будет.

4 комментария:

  1. Получился бы хороший вброс.

    Но не думаю, что пользователю есть какое-то дело, где его документы -- в /home и /User или /home/vasja и /Users/vasja. Это действительно дело операционки -- обеспечить простоту использования. В целом идея отличная, но детали реализации, права, зачем это всё? Состоять в группе и обладать привелегиями -- это не одно и то же? В случае поломки действия всё равно будут одинаковы, а для вычурных случаев всё равно придётся допиливать напильником.

    Может быть, дело в том, что я не могу считаться человеком, далёким от компьютеров, но мне вполне удобно и сейчас. Мне не приходилось настраивать всё то, о чём регулярно всплывают темы на ЛОРе. Моя учётка почему-то сразу была в группе video, audio и ещё куче других. Всё оборудование заработало тоже само. Но когда мне понадобилось одолжить ноут в качестве видеоплеера, я создал новую учётку и был совершенно спокоен за свои файлы. Мне так привычнее, мне так удобнее.

    В моей системе 10 пользователей, про которых я не знаю? Плевать, я пользуюсь одним, своим. Если я в терминале вдруг заблудился, 'cd' и я в своей папке.

    ОтветитьУдалить
  2. Больше всего я согласен с доводом "изменения в сторону однопользовательской системы не окупятся".

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

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

    Ну так вот, если вместо абстракции сделать реально систему с подходом "одна система — один пользователь", то оно нигде не потечёт — это я имел в виду в топике. Конечно single-user mode существует уже сорок лет, поэтому слово "однопользовательская" получилось двусмысленным, к сожалению.

    ОтветитьУдалить
  3. Я не пытаюсь придраться к конкретным словам. Напротив, пытаюсь посмотреть на проблему с другой стороны, не со своей. И либо мне это плохо удаётся, либо действительно разницы нет.

    Пользователи в *nix -- это просто техническая реализация разделения полномочий. Допустим, у компьютера действительно один пользователь. Этому пользователю нельзя давать всё, ему понадобятся ограничения; понадобятся и способы их снять. И проблема, как я её вижу, состоит в том, что количество слоёв абстракции при этом не уменьшается.

    Ну вот есть в Windows (XP) средства повышения привилегий; я помню, что там программа, запущенная из-под Администратора не может выключить компьютер. У Администратора этого права нет, но он может его получить, запрашивается разрешение, оно приходит в контексте этого приложения и только тогда вызов функции для завершения работы оказывается успешным. Я долго думал, зачем это? Так и не нашёл ответа на вопрос. Если зловред решит вырубить компьютер, он всё равно его вырубит, просто программа будет на 50 байт длиннее. Фактически это защищает только от древнего ПО, наследия 95-98. То есть защиты никакой, только трудности для программистов, которые пишут что-то полезное.

    Так и в этом случае, я не вижу пользы.

    ОтветитьУдалить
  4. Полностью согласен с автором. Сильное усложнение организации файлов: длинные, незапоминаемые пути к файлам... Любое обобщение, усложнение (такое как многопользовательская система) должно иметь веский смысл; маркетинговый смысл его понятен: завлечь к компьютерам детей и пожилых и - дабы они ничего не напортили - выделить им отдельные аккаунты, что профанирует само понятие "персональный компьютер".

    ОтветитьУдалить