Мой опыт использования linux

Первое знакомство с Linux – все плохо, но может быть лучше

Дисклеймер 1: здесь я говорю о linux не как о ядре, а как о семействе операционных систем.

Дисклеймер 2 (взят с этого сайта): Несколько важных вещей перед тем как читать:

Если вы верите, что Linux идеален, пожалуйста, закройте эту статью

Если вы думаете, что критика Linux предназначена только для необоснованного ругательства в сторону Linux, закройте эту страницу.

Если вы думаете, что цель этой статьи — показать, что «ничего не работает в Linux или Linux почти не используется», вы ошибаетесь, пожалуйста, закройте эту страницу.

Если вы думаете, что я здесь, чтобы продвигать Windows или Mac OS, закройте эту страницу.

Дисклеймер 3: дальше одно большое мое ИМХО: первый пользовательский опыт с linux, написанное частично на эмоциях, вероятно с ошибками, так что просьба не бить палками, а предоставить здоровую критику) Заранее спасибо.

Всем привет. Недавно я решил попробовать linux вместо windows, которым пользуюсь уже довольно давно.

Последнее время до меня стали доходит разговоры, какой линукс крутой и замечательный. Я на своей шкуре решил это проверить. Выбрал довольно популярный дистрибутив неплохо подходящий для новичков. На первый взгляд все кажется круто: LiveCD с приятным рабочим столом, кастомизация все дела. Но после установки я сразу столкнулся с проблемами, о существовании которых пользователи windows могут только “мечтать”. Банальная смена клавиш переключения раскладки, ломает половину шорткатов. Как оказалось этой “особенности” уже около 17 ЛЕТ (первое упоминание этой проблемы встретил от 2003 года, но ссылка потеряна). Несмотря на то, что есть патчи, фиксящие это, их до сих пор не включили в upstream. В браузерах отсутствует функция прокрутки страницы по нажатию колеса. Такого рода мелочи очень поломали мой UX. Если Linux хочет стать популярным, ему нужно добавить привычные для Windows пользователя мелкие детали (жду шутки про неотключаемые автообновления и телеметрию XD). Сейчас Linux для меня выглядит как что-то среднее между альфой и бетой очень многообещающей системы. Пока что я вижу, что системой удобно пользоваться либо совсем нубам, которые даже не поймут, что они пользуются другой ОС или профи, которые могут все настроить под себя, а если что-то сломается, самостоятельно починить. Но это ладно… больше мелочи.

Что меня больше всего огорчило – это организация файловой системы. Я надеялся сбежать с корабля хаоса windows на корабль linux, где хотел найти порядок, понятную и логичную организацию каталогов. Нашел же я /usr, /bin, /usr/bin, /usr/local, /etc и тд. What hell is that. Я понимаю что это все тянется со времен unix (легаси, оно и в Африке легаси) и такая структура используется, потому что так заведено, но она не кажется мне удобной. Это собственно и стало краеугольным камнем преткновения, оттолкнувшим меня в итоге от использования linux. Я любитель логики и удобства. Здесь я не увидел ни того, ни другого. Как мне например установить программу, которая поставляется в тарболе? Почему часть программ ставятся в /usr/local, а часть в /usr, а часть вообще в /opt? Почему я, как пользователь, должен читать мануалы и запоминать огромные схемы, объясняющие структуру файловой системы? Где интуитивность, которая так необходима простым пользователям? На мой взгляд, вообще само существование такого рода гайдов говорит, о том, что-то то не так. В Windows это все чуть более логично, хотя тоже со своими особенностями (appdata/local, appdata/roaming ага да).

Зачем в linux такие сложности? На мой взгляд стоит обновить FHS (Filesystem Hierarchy Standard), осовременить его: сделать имена папок более полными, а не убогими сокращениями, например. Есть отличный пример этой идеи в виде организации директорий в GoboLinux. Думаю FHS должен двигаться примерно в этом направлении, чтобы новым пользователям, которые будут мигрировать с windows, было легче освоиться. Да, работы предстоит много!

Читайте также:  Антиспам для windows mobile

Далее хочу поговорить про важную часть Unix way – зависимости. Это конечно ад, если к этому подходить, как это есть сейчас (о славные, бедные мейнтейнеры, трудящиеся в поте лица, чтобы все это работало). Мне довелось использовать NPM, и знаете, мне нравиться, как он организует управление зависимостями. На мой взгляд, благодаря этой чудо вещи dependency hell issue в веб сфере более менее решена. Сделано это за счет диапазонов версий и строгого придерживания semver. Диапазоны позволяют делать дедупликацию и экономить место, при этом, так как пакеты следуют semver, зависимые от них программы не ломаются. Подробнее о том как работает npm можно найти здесь: пакеты и модули в NPM, npm-install#algorithm.

Я думаю данные паттерны можно применить к Linux и управлению пакетами в нем, сделав таким образом этот процесс более интуитивно понятным, а пакеты дистрибутиво-независимыми и при это сохранив возможность использовать общесистемные библиотеки, которые будут храниться в глобальном хранилище. Lock файлы позволят делать легкие backup’ы. Думая, это откроет такие новые возможности как смена дистрибутива в несколько команд.

Например, система может быть организованна следующим образом. Основным в системе будет пакет Core , у которого будет только следующие зависимости:

kernel – ядро Linux

system – основные системные пакеты, которые сейчас являются частью дистрибутива, то есть среда рабочего стола, основные системные библиотеки и т.п.

user – все остальные пакеты

all – установленные по умолчанию программы, такие как офисный пакет, почта, калькулятор и т.п., а также программы, устанавливаемые под root пользователем и доступные всем другим пользователям

vasya – Программы конкретного пользователя, к которым никто другой доступа не имеет. Устанавливаются от имени пользователя, не требуют root прав

petya – Программы конкретного пользователя, к которым никто другой доступа не имеет. Устанавливаются от имени пользователя, не требуют root прав

Примечание: kernel , system , user и т.д. являются пакетами со своими зависимостями, которые также являются пакетами со своими зависимостями – рекурсия.

Еще необходимо будет зарезервировать namespace @local , чтобы пользователь мог устанавливать пакеты, не представленные в репозитории, такие как например поставляемые в тарболах. Причем нет смысла заставлять пользователя вручную писать манифест пакета, а лучше сделать простенькую программу с gui и cli, которая будет сама формировать манифест, задавая вопросы по типу: как пакет называется и т.п., чтобы пользователь знал как на них отвечать и ему не потребовалось совершать какие-то дополнительные, сложные действия.

Такая организация позволит быстро менять ядро системы, «дистрибутив», а также сохранит возможность как бандлить зависимости, так и использовать их динамически, как это есть сейчас.

Еще круто будет полностью отделить данные программ от пользовательских данных: программы не должны писать прямо в home директорию пользователя. Это место для людей, не для “роботов”. Я думаю, данные приложений должны быть разделены примерно следующим образом:

Program Data: Сама программа и все необходимые для ее запуска файлы (только для чтения. Любые манипуляции с этими данными совершает ТОЛЬКО пакетный менеджер)

Tmp: временные данные, кэш

Appdata: всякие ресурсы, загружаемые из интернета и прочие данные, нужные программе, но скорее всего неинтересные пользователю. (удаляются вместе с программой)

Userdata: данные программы, интересные пользователю: конфиги, сохранения игр (остаются после удаления программы)

При этом у пользователя должна быть возможность как в Android удалить все данные программы в два клика. Логично было бы предположить, что Appdata должна находиться например в /Data/Someprogram/Appdata , а Userdata в папке конкретного пользователя ( /home/Vasya/.Userdata/Someprogram ), причем на Userdata должна быть ссылка из Appdata: так пользователю будет проще найти все данные, связанные с конкретной программой, и вычистить их вручную при необходимости, при этом папку с личными данными ( /home/Vasya ) пользователя можно будет спокойно перенести в другую систему. Пример: /Data/Minecraft/Appdata, /Data/Minecraft/Userdata -> /home/Vasya/.Userdata/Minecraft , /Programs/Core/deps/user/Vasya/Minecraft . На данный момент в windows приходиться рыскать по минимум пяти папкам ( appdata/local , appdata/roaming , appdata/locallow , ProgramData , ProgramFiles(x86) ), чтобы найти все данные программы и полностью ее удалить, что, я считаю, неудобно (uninstall.exe далеко не всегда удаляют программу целиком, то есть так, чтобы следов ее пребывания в системе не оставалось).

Читайте также:  Операционная система windows 20000

Насколько я понимаю, основной язык для linux это C. Запахло древностью, хаха) Думаю, C неплохо было бы модернизировать: добавить модули (нормальные, а не эти костыли, как я считаю, что есть сейчас ( #include
, я смотрю на тебя)). Изоляция модулей, позволит убрать некоторые неровности в опыте разработчика: использовать процедуры до их объявления внутри модуля (как это сделано в JS с функциями), сделать зависимости более явными. Да и можно будет использовать глобальный пакетный менеджер linux (который предстоит еще сделать) для управления пакетами для C. Круто наверное было бы еще добавить безопасные макросы, которые не надо будет оборачивать в сто слоев скобок и прочих оберток.

Также я считаю, что бесплатная открытая IDE ala Visual Studio для C под linux это must have. Все таки современные разработчики любят всякие такие штучки.

Это что касалось вопросов технических

Теперь про пользователей.

Когда все вышеперечисленное будет сделано, первых кого нужно перетащить, это разработчиков софта. До конца. Чтобы им было просто противно хотя бы даже докасаться до windows. Они просто интуитивно будут писать софт именно под Linux – свой главный инструмент, систему, которую они используют каждый день. Так будет уже какая то более менее полная база ПО в том числе и для пользователей. Да, сейчас уже есть аналоги многим популярным программам с windows, но мне кажется их еще не достаточно, местами может не хватать функционала или интерфейс может быть сильно непривычным.

Сейчас, если пользователь каким то чудом узнает, что существует Linux, то загуглив «linux» он попадет на довольно простой сайт linux.org, на котором не обнаружит большой зеленой кнопки СКАЧАТЬ или КУПИТЬ. Если он начнет разбираться, как же это чудо все таки установить, то наткнется на какие то дистрибутивы… «Лол это что? – скажет пользователь и бросит занятие, – Че то надо выбирать! Много! Сложно!». Если сделать так, что по запросу linux пользователю будет выдаваться глянцевый современный сайт с рюшечками, с описание преимуществ, и большой кнопкой скачать, то пользователь быстрее и проще клюнет. Причем «Скачать» не должна перекидывать на страницу выбора дистрибутива (как это по сути сделано сейчас), а должна сразу скачивать образ и выводить инструкцию о том, как это чудо себе на компьютер поставить. Еще можно qr добавить. чтобы пользователь мог с телефона открыть инструкцию и спокойно переставить ОС без необходимости переписывать инструкцию на бумагу. Ну это уже так, мелочи)

Live образ не должен посвящать пользователя в то, какие вообще есть дистрибутивы. Вместо этого программа установки должна спросить несколько общих вопросов, на основе которых выбрать за пользователя (они не любят выбирать сами) стартовый набор программ (включая среду рабочего стола и прочие системные вещи) – по сути дистрибутив, только более модульный. Для более опытных пользователей можно оставить функцию выбора набора стартовых программ вручную, чтобы не отбирать возможность настроить все под себя. Стоит также обновить логотип linux, сделать его более современным, ярким, чтобы пользователи скорее обращали на него внимание, то есть по сути превратить linux в бренд, узнаваемый бренд. Ну и остается только мечтать о рекламной компании. Может конечно сыграть фактор сарафанного радио, но на мой взгляд реклама сыграла бы значительно более существенную роль в раскрутке бренда Linux. Ну и как уже много раз говорили – предустановка наше все) Тут я никаких новых идей уже не выскажу, просто повторю: пользователи чаще всего оставляют все по умолчанию, потому что лень. Они уже заплатили за что-то (за ноутбук например), зачем им еще что-то делать. Если это возможно было бы круто пропихнуть законы, чтобы ОС покупалась отдельно от ноутбуков, а они поставлялись девственно голые или с какой-нибудь FreeDOS или OpenBSD. Ах мечты!

Источник

Что стоит знать задумавшемуся о переходе на Ubuntu

Знакомый, в глаза не видевший Linux, но заинтересовавшийся опенсурсом, после выхода Ubuntu 10.10 попросил написать ему, «чем хорошо, чем плохо, какие осложнения, какие тонкости, как наладить отношения с вин7», чтобы он мог решить, нужно ли ему это счастье.

Читайте также:  Lg 22ea53 драйвер windows 10

Сначала подумал «зачем буду писать текст, когда наверняка его уже сто человек написали — быстро нагуглю, пошлю ссылку, а потом уже на конкретные вопросы отвечать буду». Но затем обнаружил, что по запросам вроде «миграция на ubuntu» вываливаются гигантские мануалы с тонкостями настройки compiz, а недлинный текст для «неопределившихся» быстро найти не получается ни в интернете вообще, ни на ubuntu.com и ubuntu.ru (то есть все как и писал в предыдущем посте), ни на Хабре — вот и подумал, что пусть теперь хотя бы на Хабре будет.

Участники «Убунтариума» вряд ли узнают из текста что-то новое, зато они могут дополнить его в комментах (не претендую на звание гуру, так что много важного наверняка упустил), и тогда люди, которые позже введут в гугл что-то вроде «переход на ubuntu», найдут тут счастье.

Сразу предупреждаю, что в тексте многое дано в несколько упрощенном варианте, чтобы была сразу ясна суть; если кто-то после этого поста решит-таки переходить, он все равно еще будет читать более подробные тексты, так что корректные формулировки узнает. Также хочу сказать, что вовсе не уговариваю всех подряд переходить на Ubuntu; недостатки у системы есть, для кого-то они вполне могут быть критичными, и в тексте постарался изложить все беспристрастно.

Ради чего это все (главные плюсы)

Что нужно знать, если «интересно, но страшно»

Что у Windows-пользователя вызовет при переходе основные вопросы

Главные мифы о Ubuntu и Linux в целом

1. Линукс сложный, он для сисадминов, а не нормальных людей.
Базовые задачи (серфинг, музыка-видео и т.д.) выполняются в Ubuntu не сложнее, чем в Windows, а порой и легче (см. вышеупомянутую установку программ). Да, есть консоль, но большинство основных задач можно выполнять и через графический интерфейс: например, для установки видеоплеера VLC можно ввести в консоль «sudo apt-get install vlc», а можно зайти в «Центр приложений Ubuntu», ввести в поле поиска «vlc», выбрать его и нажать на «установить». Консоль и хоткеи линуксоиды часто используют не из-за того, что без них в системе очень неудобно, а из-за того, что с ними (если потратить время и научиться) становится очень удобно. Без графического интерфейса, с одной консолью, вы можете остаться в том случае, если захотите сделать что-то нетипичное — но при гуглении по названию задачи, которую хотите выполнить, зачастую можно найти на форумах готовые команды, которые останется только скопировать в консоль, даже если не понимаешь, что они означают. (Ну и, справедливости ради, нетипичные задачи в Windows нередко еще сложнее выполнить.)
2. Линукс некрасивый, он для сисадминов, а не девушек с тягой к прекрасному.
Во-первых, Ubuntu совершенно не выглядит угловатым консольным монстром из 90-х; многие даже считают, что она отчасти подражает MacOS. Во-вторых, в Ubuntu куда большее единообразие системы, чем в Windows: приложения следуют одним правилам оформления, выводят оповещения одним и тем же способом, и так далее. Исключения из единого облика есть (обычно это кроссплатформенные приложения, выглядящие так же, как и под другими системами), но и на часть из них можно натянуть скины. В-третьих, если ставить внешний вид во главу угла, то с помощью Compiz Fusion можно заставить Ubuntu выглядеть эффектнее Windows и настроить ее внешность под себя (есть, например, такой ролик — не самый показательный, но суть понять можно).
3. Под Линукс нет нужных мне программ/игр.
Смотря какие нужны. Программы для выполнения всех базовых задач есть. Специфические — зависит от конкретной ситуации. AutoCAD, скажем, толком нет (хотя говорят, что альтернативы ему становятся все лучше и все совместимее с ним), и большинство автокадщиков даже при любви к линуксу оставляет второй системой Windows для работы. Игры есть, в том числе хорошие, но свежих блокбастеров нет. (Впрочем, блокбастеров теперь и на Windows все меньше, они в основном на приставках.)

Источник

Оцените статью