Начинающим программистам очень часто рекомендуют работать не под Microsoft Windows, а под Linux. Тому есть масса причин, связанных с самой структурой и логикой Linux, её безопасностью, а также с лицензиями приложений. Предлагаем вашему вниманию перевод статьи Офира Чакона (Ofir Chakon), соучредителя и CTO компании DataGen Technologies, который делится опытом перехода с Windows на Linux Ubuntu. Статья рассчитана на новичков, которые мало что знают о мире Linux.
Людям, которые проводят большую часть времени у компьютера, иногда нужно задавать себе вопросы об основных «компьютерных» привычках. Полагаю, вы уже догадались, что речь пойдет об операционной системе, которую ежедневно использует каждый из нас. Сейчас Windows установлен на более чем 90% настольных компьютеров!
Пользователи выбирают Windows по разным причинам:
- Windows поставляется практически с каждым ПК по умолчанию.
- Если вы пользуетесь Windows много лет лишь меняя версии, то, скорее всего, привыкли, и вам сложно прервать эту традицию.
- Скорее всего, в вашем окружении вы видите только пользователей Windows и, может быть, MacOS, поэтому вы не замечаете альтернативы. Большинство людей считают, что Windows — единственный вариант для их ПК.
Альтернативой Windows, о которой я собираюсь рассказать, является Linux. Это семейство операционных систем на базе ядра, которое так и называют — «ядро Linux». Linux является Unix-подобной, то есть эта операционная система базируется на тех же принципах, что и системы на основе Unix (MacOS, например). Большинство сборок Linux полностью бесплатны, разрабатываются сообществом, имеют открытый исходный код и распространяются в форме дистрибутивов. Среди них — Ubuntu, CentOS, Debian и так далее. Дистрибутив — это набор программ с удобным (в большинстве случаев) установщиком, готовый к работе на устройстве. Каждый из них имеет свои плюсы и минусы и имеют множество вариантов применения. Linux является достаточно «легкой ОС» в смысле потребления ресурсов, поэтому используется во встроенных системах, устройствах «умного дома», IoT («интернета вещей») и многом другом. Android OS также основана на Linux.
Я — предприниматель, работающий в области технологий, с более чем семилетним опытом в разработке ПО и data science, и вынужден признать, что переход от Windows к Ubuntu привёл к одному из самых существенных повышений производительности за время моей профессиональной деятельности.
Как я на это решился
В какой-то момент я стал замечать, что мои основные рабочие инструменты, например, Android Studio IDE и симулятор Android, на компьютере под управлением Windows, едва позволяют мне добиться прогресса в работе с точки зрения латентности. Я подумал о том, что это связано с оборудованием, поэтому решил перейти на компьютер Lenovo Y50-70 с 16 ГБ оперативной памяти и жестким SSD диском объемом 512 ГБ.После установки необходимого программного обеспечения для продолжения разработки проекта я понял, что сталкиваюсь с подобными проблемами снова, но уже на совершенно новом компьютере. В моей работе было не так уж много приложений, использующих большие объемы оперативной памяти, и, разумеется, я ожидал, что мой новый ПК будет работать, как космолёт. Но такого не случилось, и я осознал, что мне нужно поменять стратегию.
У меня возникло естественное предположение, что проблема не в аппаратной составляющей, и я начал искать подход к программам. Во время обучения в колледже я какое-то время работал с Linux, и теперь решил изучить этот вариант более подробно. Ubuntu — самый популярный дистрибутив этой операционной системы для ПК. Он доступен в качестве клиентской «пользовательской» версии, а также в варианте для серверов. Именно эта двойственность и склонила чашу весов в пользу Ubuntu, поскольку мне нужны были и клиентская, и серверная ОС.
Я изучил множество ресурсов в Интернете, где велись дискуссии вроде «Linux или Windows», «Windows vs. Ubuntu». Многое понял, но все равно, ждал чего-то… Какого-то «знака свыше» что ли. Таким знаком оказалась вирусная атака, которая заставила меня сделать резервную копию всех файлов, отформатировать жёсткий диск, после чего начать работу. Только на этот раз — с операционной системой Ubuntu.
У меня были определённые мысли о том, что, возможно, стоит одновременно установить Windows и Ubuntu для плавного перехода. Теперь я рад, что я этого не сделал. Причиной того, что я полностью отказался от Windows стало мое желание полностью погрузиться в Ubuntu без возможности вернуться к Windows.
Вот некоторые уроки, которые я извлек во время своего перехода от Windows к Linux. Они могут быть интересны любому пользователю, но в основном предназначены для разработчиков, кодеров, программистов и каждого человека, который пишет код или создает продукты.
Производительность
Linux работает быстрее, чем Windows 8.1 и Windows 10 благодаря своей «легкой» архитектуре. После перехода на Linux я заметил резкое увеличение скорости и производительности при использовании тех же инструментов, с которыми я работал в Windows. Linux поддерживает множество эффективных инструментов для разработчиков и позволяет вам легко управлять ими.Безопасность
Linux является программным обеспечением с открытым исходным кодом. Теоретически, каждый может внести в неё свой код, чтобы что-то улучшить, добавить функции, исправить ошибки, снизить риски и многое другое. Естественно, каждый крупномасштабный проект с открытым исходным кодом имеет наблюдателей, изучающих все его аспекты. Поэтому, с точки зрения безопасности, Linux, естественным образом, более безопасен, чем Windows. Кроме того, основные усилия хакеров направлены именно на операционную систему производства Microsoft. Вместо того, чтобы устанавливать антивирусы и сторонние инструменты для очистки вредоносных программ, вам просто нужно придерживаться рекомендуемых репозиториев, и все будет хорошо.Разработка программного обеспечения
Терминал в Linux — козырный туз этой операционной системы. Вы можете делать с терминалом почти всё —устанавливать программы, конфигурировать приложения и серверы, управлять файловой системой и многое другое. Ну а для разработчиков терминал —что-то вроде тотемного идола. Нет ничего удобнее, чем получить возможность запускать серверы, тренировать модели машинного обучения, обращаться к удаленным машинам, компилировать и запускать сценарии из одного и того же окна терминала. Это существенно ускоряет производительность!Модульность
Вместе с Linux разработчик получает огромные возможности по модульности. Вы можете легко настроить что угодно, получить доступ к любому «уголку» вашего компьютера, контролировать процессы и управлять виртуальными средами для разных проектов. Поскольку ваш сервер, вероятно, основан на Linux, вам будет проще имитировать поведение, использовать аналогичное программное обеспечение и пакеты, а также автоматизировать рабочие потоки для процессов развертывания.Работа с удаленными серверами Linux
Большинство серверов, которые поддерживают работу всего интернета, основаны на Linux по многим причинам, которые я не буду здесь перечислять. Linux предоставляет любые инструменты, необходимые для разработки масштабируемых безопасных серверов. Таким образом, освоение Linux для настройки и обслуживания серверов является обязательным условием для любого ИТ-предпринимателя, который управляет end-to-end приложениями. В такой ситуации во время работы с Windows на локальном компьютере, вам придётся использовать сторонние инструменты, такие как PuTTY, для подключения и взаимодействия с удаленными серверами на базе Linux, что не так удобно. Например, для копирования файлов вам необходимо загрузить другой инструмент, когда вы используете Windows. Огромным преимуществом работы с локальной машиной на базе Linux является возможность подключения к любому удаленному серверу с помощью одной строчки, запущенной в терминале. Хосты могут быть сохранены в файле, а также как и SSH-ключи и имена пользователей, поэтому все, что вам нужно сделать для подключения через SSH, это: ssh ofir-server И — всё, вы подключены! Никаких паролей не требуется. Это простая демонстрация одной из многих возможностей настройки и поддержки серверов на базе Linux с использованием локальной машины на базе Linux. Большинство популярных облачных провайдеров также имеют CLI (интерфейс командной строки) для легкой интеграции.Знакомство с низкоуровневыми принципами ОС
Реализация Windows очень высокоуровнева. Другими словами, вы почти не сталкиваетесь с внутренними проблемами и реализацией самой операционной системы. В Linux все как раз наоборот. При использовании Linux вы часто сталкиваетесь с настройками, которые должны нужно сделать из терминала, путем редактирования файлов, добавления задач планировщика, обновления программного обеспечения, установки драйверов и так далее. При работе с Ubuntu, AskUbuntu.com — ваш друг. Вы не только получаете больше возможностей в качестве разработчика, но также учитесь (иногда и не легко), как решать проблемы, мониторить машину для поиска потенциальных проблем, настраивать различные компоненты и многое другое.Не все идеально, но все же
- Становление пользователя Ubuntu основано на кривой обучения. Некоторые вещи, которые делались сами собой под Windows, теперь нужно будет настраивать возможно, будет необходимо настроить с помощью AskUbuntu.com. Ожидайте возни, если на вашем компьютере установлено специальное оборудование, такое как графические процессоры.
- Я считаю, что каждый предприниматель в ИТ-сфере должен быть немного дизайнером, точнее обладать минимальными навыками графического дизайна. К сожалению, Adobe не выпустила ни одного из своих продуктов для пользователей Linux, поэтому их невозможно запустить напрямую. Альтернатива в Ubuntu называется GIMP. Это бесплатное ПО, удовлетворяющее всем основным требованиям разработчика-дизайнера (и даже чуть больше).
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ