- Почему программисты используют Linux?
- Открытый исходный код
- Безопасность
- Подходит для программистов
- 5 преимуществ Linux для программистов
- 1. Понимание связей кода и управление ими
- 2. Автоматизация и логичность
- 3. Возможность читать открытый существующий код
- 4. Наличие набора слоёв абстракции
- 5. Получение прямого доступа к устройствам
- Запомнить
Почему программисты используют Linux?
Используется она из-за того, что имеет очень гибкие и обширные настройки, а также из-за своей стабильной работы. Кстати не только программисты используют Linux. Ос Android основана именно на ядре этой системы. Так что, можно сказать, все кто используют аппараты на Android используют Linux. Linux очень надежная и стабильная система. Не зря ее используют на высоконагруженных серверах. Linux очень сложно «подвесить», если какое-то приложение зависло, то достаточно убить процесс данного приложения, система же при этом продолжает стабильно работать. Linux не требует постоянных перезагрузок компьютера, даже после обновлений системы (кроме обновления ядра [в будущем и это не потребует перезагрузки]). Установка и удаление программ, драйверов также не требует перезагрузки системы. Linux не «кушает» память. Я много раз замечал, что если Windows оставить без перезагрузки на неделю, то рано или поздно он начинает сильно тормозить. Linux же прекрасно работал у меня и месяц и полтора без перезагрузки. Конечно, много в данном случае зависит от того, какие программы «отъедают» память, но факт остается фактом. Советую так же почитать 5 заблуждений о Linux.
Открытый исходный код
Представьте, вы покупаете автомобиль, но вы не можете увидеть, что находится под капотом? Аналогично обстоит дело с тем, когда вы используете систему под управлением Windows. Тем не менее, в отличие от Windows, Linux имеет полностью открытый исходный код. Вы можете посмотреть исходный код Linux, что является огромным плюсом. Я знаю, что большинство пользователей вовсе не обращают внимание на то, имеет ли система открытый код или это проприетарное ПО с закрытым кодом, для меня открытый код в Linux, это самая важная особенность при использовании GNU / Linux.
Доступность исходных текстов Linux дает возможность использовать и модифицировать код по своему желанию. Можно в любой момент исправить какие-нибудь ошибки или недочёты системы, а также расширить её функциональность, путём написания дополнений или программ, работающих под ее управлением. На данный момент вокруг Linux сформировалось огромное сообщество программистов, которые постоянно усовершенствуют систему. Они разрабатывают новые версии и разновидности данной ОС, пишут самые разнообразные программы, работающие под Linux.
На начальном этапе Linux бесплатно разрабатывался только энтузиастами-добровольцами, но с успехом Linux и его массовым коммерческим использованием дорабатывать ОС и вносить свой вклад стали и компании, со временем став значительной силой. Подавляющее большинство ПО в современных дистрибутивах по-прежнему доступно по свободным лицензиям, как правило, за исключением небольшого количества проприетарных компонентов. В 2008 году расчёты показывали, что для того, чтобы «с нуля» разработать систему, аналогичную Fedora 9, потребовалось бы затратить 10,8 млрд долл. Совокупная себестоимость ядра Linux оценена в более чем 1 млрд евро (около 1,4 млрд долл.). Только за 2008 год себестоимость ядра Linux увеличилась на 225 млн евро. В системе Linux воплощён труд в эквиваленте 73 тыс. человеко-лет.
Безопасность
В Linux практически нет вирусов. В отличие от MS Windows, имеющей множество «бэкдоров», само построение операционной системы исключает работу вредоносных программ. И по этому вы можете обойтись без антивирусных программ, тормозящих компьютер и мешающих работать. Не нужно все время обновлять антивирусные базы и проверять жесткий диск на вирусы, теряя бесценное время. Это именно так, Linux так устроен, что делает его безопасной операционной системой. В целом, процесс управления пакетами, работа с репозиториями, и много других функций позволяют использовать более широкие возможности, что придает Linux больше безопасности, чем Windows.
После установки ОС Windows, вам необходимо скачать / купить программу защиты от вирусов, чтобы сохранить ваш компьютер в безопасности от хакеров и вредоносных программ. Однако, Linux не требует использования антивирусных программ. Конечно, существуют программные средства, например фаерволы, которые помогут вашей системе быть защищенной от угроз, но в большей степени в этом нет необходимости если вы используете компьютер лишь для работы, игр, просмотра фильмов и серфинга по сети.
Подходит для программистов
Linux поддерживает практически все основные языки программирования (Python, C / C ++, Java, Perl, Ruby и т.д .). Кроме того, он предлагает широкий спектр приложений, используемых для программирования. Терминал Linux превосходит в возможностях командную строку. Вы можете найти много библиотек, разработанных изначально для Linux. Кроме того, многие программисты отмечают, что менеджер пакетов в Linux, помогает им установить большинство программ легко и просто. Тут можно почитать о аналогах программ Windows для Linux. Интересно, что возможности сценариев BASH также является одной из наиболее убедительных причин, почему программисты предпочитают использовать ОС Linux. Linux имеет встроенную поддержку SSH, который поможет вам легко управлять вашими серверами.
5 преимуществ Linux для программистов
Linux — высокопроизводительная и стабильная система, которая отлично работает на высоконагруженных серверах и предоставляет комфортное использование среды рабочего стола. Для ОС разработаны различные графические оболочки — например, KDE, LXDE и GNOME. Разработчик может выбрать понравившийся интерфейс. Также система довольно хорошо защищена от взлома и вирусов, так как имеет специфическую архитектуру. И хотя Linux устанавливается бесплатно, как и системные программы, это совершенно не говорит о низком качестве продукта. Проект постоянно поддерживается сообществом независимых программистов и энтузиастов-пользователей.
Распределённые файловые системы Linux делают совместную работу над файлами более быстрой и простой, а также обеспечивают дополнительную гибкость сети. Система имеет встроенную поддержку SSH для удобного управления серверами через терминал — это протокол удалённого управления компьютером. Кроме того, в дистрибутивах Linux есть Bash для чтения и запуска команд, выполнения скриптов, работы с файлами. Этот язык помогает пользователям создавать сценарии для автоматизации различных операций в процессе решения прикладных задач.
Дистрибутивы Linux устанавливаются быстро и просто. Во многих из них есть крупные репозитории программного обеспечения с открытым исходным кодом — например, в Debian GNU. У дистрибутива Fedora тоже есть преимущество — это девятимесячный цикл выпуска, в котором все новые функции включены в последнюю сборку. Пользователи могут обновить версию без переустановки. А Ubuntu совместим с Android Open Source Project, которым часто пользуются разработчики Android.
И это ещё только общие нюансы — дальше в статье мы рассмотрим 5 основных преимуществ Linux для программистов.
1. Понимание связей кода и управление ими
Linux учит пользователей самостоятельно во всём разбираться, а не безоговорочно полагаться на инструменты готовой платформы. При программировании же в других ОС разработчик обычно не задумывается, где находятся заголовочные файлы и внешние библиотеки.
В целом ничего страшного нет в том, чтобы доверять системе и не вникать в эти нюансы. Но всё же разработчику лучше научиться осмысливать процессы и понимать, что вообще происходит. И Linux в этом может здорово ему помочь — в системе всё прозрачно, в любой момент программист может углубиться в недра системы, найти и прочитать соответствующий код.
Такой навык обязательно ему пригодится в ситуациях, когда готовых решений для решения конкретной задачи не окажется. Это относится и к другим ОС. В Linux можно написать код, чтобы его потом запустить в других системах. И важно понимать, по какому принципу он компилируется.
2. Автоматизация и логичность
В Linux есть мощный терминал. С его помощью разработчик может делать всё то, что позволяет ему сделать доступ через ssh на его веб-сервер, при этом у него есть доступ к локальному. В ОС используются принципы автоматизации. Она специально сделана так, чтобы основные приложения запускались из терминала с дополнительными опциями. Есть возможность и полностью извлекать их из терминала.
Разработчики иногда неправильно воспринимают автоматизацию Linux, так как думают, что написание работающей с терминала программы означает прилагать минимум усилий для получения функционирующего приложения. Но это лишь говорит о том, что они неверно понимают принципы работы кода. Программисту кажется, что чем больше строк кода в приложении, тем лучше, в действительности же количество строк кода мало что значит.
Одну и ту же задачу можно решить вручную и затратить час, а можно использовать нужную команду терминала и потерять не более минуты своего времени. Поэтому Linux ещё и помогает значительно сократить время. Здесь главное — понять нестандартный принцип работы механизмов ОС и привыкнуть к ним.
Приведём пример. Нам нужно добавить изображение обложки к 40 файлам PDF.
Наверняка мы будем действовать по такой схеме:
- Запустим документ в PDF-редакторе.
- Откроем главный файл с обложкой.
- Добавим к нему документ PDF.
- Сохраним этот файл как новый PDF-файл.
- Проделаем всё это для всех старых документов PDF.
Времени выполнение такой задачи уйдёт немало, да и к тому же, процесс будет рутинным. А вот в Linux всё значительно упрощается. Требуется лишь предварительно продумать все шаги для достижения поставленной цели.
После некоторых поисков решения мы вскоре наткнёмся на команду pdftk-java и выведем простое решение:
$ pdftk A=cover.pdf B=document_1.pdf \ cat A B \ output doc+cover_1.pdf
Теперь нужно проверить, работает ли команда. Достаточно испробовать её на примере одного документа. После этого нужно будет поизучать утилиты, которые обрабатывают наборы данных.
Здесь мы обнаружим команду parallel:
$ find ~/docs/ -name «*.pdf» | \ parallel pdftk A=cover.pdf B=<> \ cat A B \ output <.>.cover.pdf
В результате задача будет решена быстрее и более разумным способом. Итак, вот что здесь главное, — научиться мыслить нестандартно, ведь обработка данных происходит не по привычному принципу линейности.
3. Возможность читать открытый существующий код
Итак, мы уже выяснили, что программисту лучше уметь самому разбираться, где конкретно располагаются заголовочные файлы и библиотеки. Но на этом обучающие способности Linux не исчерпаны — система также помогает разработчикам читать открытой код других программистов. Это здорово помогает специалистам развиваться.
Разработчики могут посмотреть код почти всех приложений, за исключением тех, которые не открыты, но работают на Linux. Такая возможность помогает им со временем всё лучше и лучше разбираться в задачах. Программист может использовать для этого какое-нибудь приложение, которым он постоянно пользуется. Он сможет обнаружить именно тот функционал, который хочет реализовать, и найти исходный код. То есть можно видеть не только сам код, но и как он работает.
Если код закрыт, пользователь может найти документацию для разработчиков, в которой есть примеры кода.
4. Наличие набора слоёв абстракции
Пользователи Linux получают также возможность использовать слои абстракции. Это помогает уменьшить объём работы при решении некоторых задач. В операционной системе Linux три главных уровня, и слои абстракции здесь находятся в середине, между физическим уровнем аппаратного обеспечения и установленным на компьютере ПО.
Эта возможность в ОС дана для того, чтобы большую часть кода, работающую в режиме ядра, не нужно было менять при её запуске на системах с различным аппаратным обеспечением. Слои абстракции скрывают различия в аппаратном обеспечении от основной части ядра ОС.
Есть немало подходящих инструментов в Qt и Java. Также можно использовать стеки наподобие Pulse Audio, Pipewire и gstreamer.
5. Получение прямого доступа к устройствам
При использовании многих ОС часто возникает сложность подключения к периферийным девайсам. Путь лежит через запутанные сети из SDK, библиотек с закрытым кодом. Также приходится сталкиваться с соглашениями о конфиденциальности.
В Linux же универсальный и понятный интерфейс. Например, все камеры разработчик видит в системе в виде устройств /dev/video0, /dev/video1 и так далее. То есть управляющей программе не требуется информация об отдельных камерах — она взаимодействует с ними через стандартный интерфейс. И к единой системе наблюдения можно подключить абсолютные любые устройства.
Запомнить
1 преимущество Linux для программистов — возможность научиться понимать связи кода, управлять ими и решать нестандартные задачи.
2 преимущество — автоматизация и логичность ОС, за счёт чего на выполнение задач уходит меньше времени.
3 преимущество — возможность читать открытый существующий код других разработчиков и таким способом развиваться.
4 преимущество — наборы слоёв абстракции в Linux, с их помощью в разы уменьшается объём работы.
5 преимущество — прямой доступ к периферийным устройствам и максимально простой интерфейс платформы.