Разное

Linux разработчик: 11 лучших дистрибутивов Linux для программиста | GeekBrains

Содержание

11 лучших дистрибутивов Linux для программиста | GeekBrains

Пригодится тем, кто устал от популярных систем.

https://d2xzmw6cctk25h.cloudfront.net/post/1635/og_cover_image/ed6ff579c5e5801a463225788d9515da

О том, какая операционная система лучше, можно спорить бесконечно — у противоборствующих лагерей полно разумных аргументов. Сегодня мы поговорим про линуксовые системы — в отличие от конкурентов, они дают больше свободы, позволяют конфигурировать их под свои задачи и возможности машины. Формат open-source — ещё один их плюс. Это именно то, что так любят программисты. Если подумываете отказаться от «родных» Windows или MacOS — ловите подборку лучших дистрибутивов Linux-систем.

Ubuntu считается лучшей системой для новичков, переход на неё с Windows и MacOS не уничтожит ни единой нервной клетки. Установка программ и пакетов предельно проста: базовое знакомство — и вы не почувствуете неудобств. Для разработчиков и программистов эта линуксовая ОС привлекательна стабильностью и надёжностью.

Ubuntu постоянно растёт и обновляется, в этом она схожа со «старшими» конкурентами. Как у Windows, у неё есть несколько дистрибутивов (Lubuntu, Xubuntu, Kubuntu), которые сохраняют функциональность, требуя меньше ресурсов. Это весомый аргумент для старых машин или задач, где нужна высокая производительность.

Бонус — отличная поддержка ОС. Все недочёты в Ubuntu устраняются молниеносно, техническая поддержка отвечает на вопросы постоянно, перечень дистрибутивов программ огромный и постоянно пополняется.

Американский производитель компьютеров и серверов System76 в прошлом году выпустил операционную систему Pop!_OS. Формально это та же Ubuntu, но изменения в графической оболочке GNOME и подключение собственных пакетов юридически сделали её новой системой.

По факту, для российского пользователя Pop!_OS — это Ubuntu с изменённым интерфейсом и улучшенной функциональностью. Если у вас есть претензии к внешнему виду первого фигуранта нашего списка — попробуйте Pop!_OS.

Debian — базовая ОС как для вышеупомянутых Ubuntu и Pop!_OS, так и менее раскрученных SteamOS, Linux mint, Knoppix. Исключительная стабильность делает Debian надёжным фундаментом для надстроек. Если захотите сделать свою операционную систему с блэкджеком и прочими приложениями — кастомизируйте Debian.

Red Hat Enterprise Linux (RHEL) — одна из известнейших корпоративных ОС на базе Linux. CentOS — её ближайшая альтернатива, позволяющая запускать большинство приложений от RHEL и пользоваться менеджером загрузок YUM. Ещё одно преимущество — CentOS имеет доступ к репозиторию Red Hat Software Collections (RHSCL), расширяющему возможности по использованию языков и баз данных.

CentOS подходит для профессиональной разработки, позволяя не тратить время на организацию взаимодействия с коллегами и поиск свежих дистрибутивов.

Альтернатива RHEL для корпоративного использования. Обновления выходят каждые полгода, все необходимые пакеты включены в базовую сборку, конфигурация автоматическая. Факт (почти реклама): Fedora использует сам Линус Торвальдс, оценивая эту ОС выше Ubuntu и Debian.

Операционная система, предназначенная для программистов в области кибербезопасности. Если вы видели сериал «Мистер Робот», то наверняка приметили там Kali Linux. Она основана на Debian и содержит множество инструментов для взлома и защиты системы. К примеру, «из коробки» поставляются John the Ripper — утилита для восстановления паролей из хэшей, Aircrack-ng — улавливатель беспроводных сетей и перехватчик трафика, а также сканер OWASP ZAP. Такой набор будет интересен каждому разработчику, и это только малая часть возможностей.

Ещё одна фича — возможность полноценно установить ОС на Raspberry Pi в качестве альтернативы Raspbian.

Если вам нужна легковесная операционная система с гибкими возможностями настройки (в том числе ядра), обратите внимание на Arch Linux. ОС поставляется с голым «фундаментом» и Pacman — менеджером пакетов. Графический интерфейс идёт как опция, а не необходимая составляющая, что ценят тру-программисты.

У Gentoo те же преимущества и недостатки, что у Arch. К первым можно отнести тотальный контроль над сборкой: буквально каждый элемент будет установлен только с вашего разрешения. Отсюда и недостатки — без опыта в линуксовых системах собрать удобную ОС будет затруднительно.

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

Вернёмся к «дружелюбным» системам, на которые стоит обратить внимание Linux-новичку. OpenSUSE — достойная альтернатива Ubuntu. Удобна для разработчиков благодаря множеству доступных сред и приложений, загружаемых с помощью менеджера пакетов YaST. С ним вы забудете о стандартных приложениях Windows и MacOS — здесь тоже всё на высшем уровне.

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

Если понравилась Elementary OS, обратите внимание на ChaletOS и Manjaro. Это схожие по устройству системы, которые подойдут для повседневного использования: просмотра почты, фотографий, видео. С их помощью можно дать вторую жизнь старому ноутбуку.

Сборок и кастомных систем Linux значительно больше перечисленных одиннадцати. Но именно они на сегодняшний день наиболее популярны и стабильны. Познакомьтесь с ними, «набейте руку», оцените преимущества и недостатки и обязательно расскажите о своем опыте в комментариях!

Краткая история Linux – База знаний Timeweb Community

Введение


Говоря “Linux”, люди чаще всего подразумевают группу операционных систем, разработанных на базе Linux. Хотя, по сути, Linux — это только ядро операционной системы, и для разработки полноценной операционной системы используются различные другие инструменты и библиотеки GNU проектов и других ресурсов. Кроме того, все больше разработчиков используют Linux для разработки и запуска мобильных приложений; Linux играет ключевую роль в разработке таких устройств, как хромбуки (портативные устройства под управлением операционной системы Chrome, которая в качестве ядра использует гибрид ядра Linux и сервисов, разработанных компанией Google).


Linux стал популярен по следующим причинам:


  • актуальность дистрибутивов и активная поддержка сообществами разработчиков;
  • возможность запускаться на самом разном оборудовании;
  • низкие требования по части ресурсов;
  • возможность установить программы из существующих репозиториев.

Но список причин, конечно, только этими не исчерпывается; существуют не только практические, но и этические причины. Например, многие разработчики воспринимают Linux как выражение открытости, самовыражения и доступности.


История разработки


Корни Linux уходят в два других проекта: Unix и Multics, которые ставили своей целью разработать многопользовательскую операционную систему.


Что такое Unix?


Unix – это собрание кроссплатформенных многопользовательских и многозадачных операционных систем.


Можно сразу сказать, что в данный момент Unix-системы являются одними из самых исторических важных операционных систем. Влияние Unix распространилось и на языки программирования: язык C был разработан во время разработки Unix-систем.


Разработкой Unix занималась корпорация Bell Laboratories – в 1969 году они показали первую систему Unix. Чем дальше, тем большую популярность обретали системы Unix — в 70-х их начали устанавливать на компьютеры в учебных заведениях.


При создании Unix разработчики поставили перед собой три основные задачи:


  1. Использование минимального количества функций, сохранение простоты.
  2. Общность: одинаковые методы и механизмы используются в разных случаях.
  3. Комбинирование программ для решения задач, а не разработка новых программ с нуля.

Что касается отличительных особенностей Unix, то это:


  1. Практически постоянное использование командной строки.
  2. Использование конвейнеров.
  3. Настройка системы через использование простых (зачастую текстовых) файлов.

Unix имеет свою собственную философию. Программист Дуглас Макилрой, который разработал конвейнер в Linux, определил следующие правила:


Пишите программы, которые делают что-то одно и делают это хорошо.


Пишите программы, которые бы работали вместе.


Пишите программы, которые бы поддерживали текстовые потоки, поскольку это универсальный интерфейс.


Одна из проблем, коснувшаяся Unix, — наличие разных версий и множества программ, которые писали разработчики под свои нужды; из-за низкой совместимости программы, работающие с одной версией Unix, могли не работать на машинах с другими версиями. В итоге было решено создать общий документ, в котором будут указаны стандарты, которым должны следовать разработчики.


В 1983 году было объявлено о создании GNU (GNU’s Not UNIX), Unix-подобной операционной системы. Произошло это под влиянием идеи основателя проекта Ричарда Столманна о необходимости создания свободно распространяемой операционной системы и вообще программного обеспечения с открытым исходным кодом.


Ричард Столманн также основан движение свободного программного обеспечения и сформулирован четыре права, которыми должен обладать пользователь: он может запускать программу для любых целей, он может изучать программы и изменять их согласно своим потребностям, он может распространять программу, чтобы помочь другим, и он может публиковать улучшения программы, чтобы помочь сообществу в целом. Все это в первую очередь говорило о том, что исходный код программы должен быть доступен всем.


Именно эта мысль вдохновила Линуса Торвальдса, создателя Linux, начать в 1991 году работу над своей операционной системой. Linux, как и GNU, это Unix-подобная система, то есть система, появившаяся под влиянием Unix.


В дальнейшем именно система GNU/Linux станет той системой, которую сейчас называют просто Linux.


Что такое Multics?


Multics — или Multiplexed Information and Computing Service («Мультиплексная информационная и вычислительная служба») — это одна из самых первых операционных систем, в которой была реализована плоская модель хранения данных и четко разделена концепция файлов (сегментов). Создание Multics началось в 1964 году. Над системой работали разработчики компании Bell Laboratories — через несколько лет часть разработчиков начнет работу над созданием Unix.


Multics разрабатывали для того, чтобы, во-первых, дать возможность использовать ресурсы ЭВМ большому количеству пользователей одновременно; во-вторых, дать пользователям возможность совместно использовать данные; в-третьих, обеспечить хорошую скорость работы с данными.


Однако главные вычислительные задачи не были достигнуты при выпуске первой версии системы, и компания Bell Laboratories перевела свой интерес на другой проект, в результате которого на свет появился Unix.


История Linux


История Linux начинается в 1991 году, когда финский программист Линус Торвальдс стал разрабатывать ядро операционной системы для своего компьютера. Свои наработки он выложил на сервере, и это стало ключевым событием в истории Linux. Сначала десятки, потом сотни и тысячи разработчиков поддержали его проект — общими усилиями на свет появилась полноценная операционная система.


Как уже было сказано, на Linux значительно повлияла система Unix, это заметно даже по названию. Впрочем, изначально проект назывался Freax — от слов “free” (бесплатный) и “freak” (странный), но в дальнейшем название было изменено на гибрид имени создателя (Линус) и Unix.


Эмблемой Linux стал Такс (Tux) — пингвин, нарисованный в 1996 году программистом и дизайнером Ларри Юингом. Впрочем, идею использовать именно пингвина придумал сам Линус Торвальдс. Теперь Такс является символом не только Linux, но и свободного программного обеспечения в целом.


Первая официальная версия Linux 1.0 вышла в 1994 году; вторая версия пошла в 1996 году. Товарный знак Linux был зарегистрирован на год раньше, в 1995.


С самого начала и по сей день Linux распространяется как свободное программное обеспечение с лицензией GPL. Это значит, что исходный код операционной системы может увидеть любой пользователь — и не только увидеть, но и доработать его. Единственное условие — измененный, модифицированный код должен быть так же доступен всем и распространяться по лицензии GPL. Это важно, так как дает возможность разработчикам использовать код и в то же время не бояться проблем из-за авторских прав.


Своему успеху Linux во многом обязан GNU: на момент выхода Linux существовало уже много свободного распространяемых утилит этого проекта, которые можно было использовать с разработанным ядром.


По факту Linux до сих представляет собой ядро Unix-подобной операционной системы, которое выполняет различные низкоуровневые задачи. В то же время проект GNU нуждался в ядре — разработка Линуса Торвальдса была очень своевременной.


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


Популярные дистрибутивы Linux


Дистрибутив Linux – это определение операционной системы, которая использует ядро Linux, и которую можно установить на машину пользователя. В дистрибутивах обычно содержатся не только ядро и сама операционная система, но и полезные приложения: редакторы, проигрыватели, инструменты для работы с базами данных и другое программное обеспечение.


То есть, как уже было сказано в начале статьи, дистрибутив Linux – это операционная система, которая состоит из ядра Linux и утилит, которые разрабатываются в рамках GNU.


Количество существующих дистрибутивов Linux превышает 600 разновидностей, более 300 из которых постоянно дорабатываются и обновляются.


Ubuntu


Ubuntu — один из самых распространенных дистрибутивов, легко устанавливается и интуитивно понятен в работе. Отлично подходит для персональных компьютеров, ноутбуков и серверов. Разрабатывается и спонсируется компанией Canonical Ltd, но имеет активную поддержку и со стороны свободного сообщества. Самая популярная операционная система для веб-серверов.


Debian


Debian — еще один популярный дистрибутив GNU/Linux, который оказал существенное влияние на развитие всех GNU/Linux операционных систем в целом. Основные черты Debian: широкие возможности, наличие множества репозиториев, высокое качество версий — это самый стабильный дистрибутив из всех существующих.


Linux Mint


Linux Mint — дистрибутив, основанный на Ubuntu и Debian. Linux Mint обладает красивым и удобным дизайном и подойдет даже начинающим пользователям. Поэтому его часто устанавливают на домашние компьютеры для того, чтобы иметь простую и удобную систему. Дистрибутив имеет поддержку различных мультимедийных форматов, в том числе включает проприетарные программы (Adobe Flash), поэтому хорошо подходит для работы с мультимедиа.


Manjaro


Manjaro — дистрибутив, основанный на Arch Linux. Благодаря большому количеству предустановленных программ (например, для офисной работы) он достаточно дружественен к новичкам, но в то же время имеет возможность тонкой настройки, множество пакетов, и стабилен в целом.


Arch


Arch — мощный дистрибутив, базирующийся на принципах простоты, современности, прагматизма, гибкости и идеи, что в центре внимания должен быть пользователь. Однако принцип простоты распространяется не на использование системы, а на ее внутреннюю организацию (принципы KISS и Unix-way). Поэтому Arch рассчитан на опытных пользователей, которые самостоятельно настроят и установят необходимые им утилиты.


История создания Linux | Losst

Сейчас, используя последнюю версию Ubuntu, Fedora или OpenSUSE, мы можем наслаждаться красивым и современным окружением рабочего стола, простотой использования графических программ, тем, что большинство оборудования компьютера поддерживается системой без дополнительных настроек. Но вы когда-нибудь задумывались, как наша любимая операционная система дошла до всего этого?

Учитываем ли мы и ценим количество времени и усилий, затраченное огромным количеством разработчиков, чтобы достичь этого, почти совершенного состояния системы? Скорее всего, нет. Давайте посмотрим на историю этой замечательной ОС и на её путешествие за последние несколько десятилетий. Когда она родилась? Как эволюционировала? Какие дистрибутивы появились во время развития, и что стало поворотным моментом, сделавшим из проекта для одного человека операционную систему, используемую повсюду, которая у нас есть сейчас? И какие были дистрибутивы, отправленные сообществом в архив?

Итак, давайте мысленно вернёмся назад во времени, почти на 30 лет назад, и вспомним, с чего начиналась история Linux систем.

Содержание статьи:

История создания Linux

1991 — начало

В самом начале был Unix, созданный программистами Кеном Томпсоном и Денисом Ритчи в 1969 году. Затем на протяжении восьмидесятых годов создавалось множество проектов на основе Unix, вдохновлённых этой философией. Это были: проект GNU Ричарда Столмана, BSD (Berkley Software Distribution), книга профессора Ендрю Таненбаума «Операционные системы: дизайн и реализация», а также MINIX (мини версия Unix), которая появилась приблизительно в то же время, что и книга.

Но только в 1991 году началась история Linux. Молодой финский студент по имени Линус Торвальдс объединил всё, что он знал о существующих системах в новое ядро, которое смогло захватить мир. Существует много легенд о том, почему Линус решил работать над своей системой. Одна из них гласит, что он работал в MINIX и передал данные на жёсткий диск вместо модема, чем уничтожил все разделы Minix. После этого он разочаровался в этой ОС и решил создать собственную.

Другая версия гласит, что он написал ядро для улучшения функциональности новой машины на Intel 386, которую он использовал. А так как улучшать Minix было запрещено, то ему пришлось развивать свою операционную систему.

Какова бы ни была истинная причина, он создал бесплатный эмулятор терминала, который был основан на Minix, в свою очередь, основанном на Unix, и это стало основой для работы над ядром операционной системы. В 1991 году 25 августа Линус опубликовал своё знаменитое сообщение в новостной рассылке Minix.

После этого первая версия Linux, которая тогда называлась Freax очень быстро разлетелась по FTP-серверам всего мира, а количество пользователей начало стремительно расти. Версия 0,01 очень сильно отличалась от той, что доступна в наши дни. Вы можете сами скачать ядро размером 71 килобайт и попробовать его установить отсюда.

Идём дальше по дороге истории. Излишне говорить, что Linux превратился в полномасштабную ОС, а Манчестерский вычислительный центр создал один из первых дистрибутивов, в котором использовался комбинированный загрузочный и корневой раздел. Дистрибутив назывался MCC Interim Linux.

1992 — 1994 — развитие настольных систем

Прошло не так много времени, и в период с 1992 по 1994 мы увидели появление и развитие самых известных и влиятельных дистрибутивов Linux: Slackware, Red Hat и Debian. Версия ядра увеличилась до 0,95, и здесь появилась поддержка X Window System, позволяющей запускать графические приложения.

Slackware был одним из первых дистрибутивов, которые использовали новое ядро Linux. Тогда он назывался SLS (Softlanding Linux System) и был основан Питером Макдональдом в 1992. SLS довольно сильно опередила своё время, так как это был первый дистрибутив Linux, содержащий не только ядро Linux 0,99, но и стек TCP/IP и систему X Window. Но этот дистрибутив имел много проблем и вскоре был заменён на Slackware Патрика Фолькердинга. Сейчас это самый старый дистрибутив Linux.

Но SLS не только дал рождение Slackware. Из-за проблемного интерфейса SLS другой пользователь решил сделать собственную систему и этим запустил ещё одну ветку дистрибутивов Linux. В 1993 Ян Мёрдок выпустил дистрибутив Debian Linux, который, по его словам, был назван в честь его тогдашней девушки Дебры Линн и его самого.

По мере развития Slackware появились компании, которые предоставляли техническую поддержку для такого программного обеспечения. Одна из них появилась в 1994 и называлась Software und System-Entwicklung, сейчас она более известна как S.U.S.E Linux.

Ещё один дистрибутив, который увидел свет 3 ноября 1994 года, называется Red Hat Commercial Linux. Дистрибутив создан Марком Эвингом и носит имя красной шляпы, которую автор носил в университете.

В 1994 14 марта вышла версия Linux 1.0.0, которая состояла из 176 250 строчек кода. Так началась история развития Linux-систем.

1995 — 1999 — появление Gnome и KDE

За этот период операционная система Linux сделала большой скачок в развитии, поскольку в ближайшие пять лет появятся основные дистрибутивы Linux, которые известны и широко используются сейчас, также появятся менее заметные дистрибутивы. Все это происходит во времена выхода игры «Атака пингвинов» и бума dot.com.

Jurix Linux был интересным дистрибутивом и популярностью по ряду причин. Во-первых, это был первый дистрибутив со скриптовым установщиком, позволяющим администратору упростить процесс установки. Он был одним из первых дистрибутивов, которые поддерживали bootp и NFS, а также первый использовал файловую систему ext2.

Но важной вехой в истории ос Linux Jurix стал не по этой причине — на его основе был создан SUSE Linux, который мы используем и сегодня.

Дистрибутивы, основанные на Red Hat Linux, тоже активно развивались в течение этого времени. Появились такие версии, как Caldera, Mandrake, TurboLinux, Yellow Dog и Red Flag. Теперь версия ядра Linux изменилась с 1.2 на 2.2.

Версия 2.0 была выпущена в 1996 году и перед ней вышел уже 41 релиз. Именно это быстрое развитие ядра и добавление некоторых очень важных функций закрепили позиции операционной системы Linux как серверной ОС и системы для IТ-специалистов по всему миру.

Например, в версии 2.0 появилась поддержка протокола SMB, улучшено управление памятью, поддержка работы на различных типах процессоров. Версия 2.2 получила улучшения работы SMB, поддержку PowerPC и возможность монтирования NTFS, но пока только для чтения.

Существует легенда, что один раз во время отпуска в Австралии Линус Торвальдс посетил зоопарк, где его укусил  свирепый пингвин. После чего он заразился пингвинитом и очень полюбил пингвинов. Во всяком случае Линусу нравились пингвины. Как он сказал, они бестолковые и весёлые. Что касается имени символа Linux — Tuxа, то в интернете его расшифровывают как (T)orvalds (U)ni(X). Теперь вы все знаете.

Системы на базе Debian развивались не так активно, как Red Hat. Разработчики предпочитали больше работать над удобством и внешним видом своих дистрибутивов. Будучи больше ориентированными на рабочий стол, такие дистрибутивы часто появлялись на обложках популярных IТ-журналов того времени. Попадались такие названия, как Libranet, Storm, Finnix и Corel Linux.

Несомненно, самым важным событием за эту часть истории ОС Linux стало появление KDE и Gnome. Окружение KDE (Kool Desktop Environment) появилось в 1996 году. Его основателем был Матиас Эттрих, студент университета Тюбингена. Он предложил не просто набор приложений, а целую среду рабочего стола, в которой они могли выполняться. У пользователей появился выбор пользоваться средой X11 или KDE, написанной на недавно появившемся фреймворке Qt.

К 1998 году вышла версия KDE 1.0 и первым дистрибутивом, который её использовал по умолчанию, был Mandrake. К 2000 вышла версия 2.0, которая получила множество улучшений, а также программы Konqueror, KOffice и библиотеку KIO.

Мигель де Иказа и Федерико Мен объявили о разработке нового окружения рабочего стола, а также приложений для него на основе библиотеки GTK+. Эта новая среда рабочего стола называлась Gnome. Считается, что первой операционной системой, использующей Gnome, была Red Hat Linux. Gnome быстро стал популярной средой рабочего стола благодаря своей высокой производительности и удобству для обычных пользователей. К маю 2000 года была выпущена версия Gnome 1.2 Bongo.

2000 — 2005 — появление Live-дистрибутивов

В этот период случился важный шаг в истории операционной системы Linux. За эти пять лет её популярность сильно выросла, появилось много новых компьютеров под управлением Linux. Ядро продолжало получать улучшения, появлялись новые программы, а также появился первый live-дистрибутив.

Knoppix — дружелюбный дистрибутив, основанный на Debian и разрабатываемый Клаусом Кноппером, был одним из самых популярных в то время. Он был примечателен по многим причинам, но основная из них — это возможность запустить и попробовать систему прямо с CD-диска.

Сейчас мы считаем эту возможность стандартной. Но в те времена Knoppix, выпущенный 30 сентября 2000 года, можно было запустить на любом компьютере и получить полноценную систему с поддержкой различного оборудования и сети. Это было чем-то новым. Knoppix стал основой для многих дистрибутивов, и некоторые из них известны и используются до нашего времени.

Кроме уже готовых дистрибутивов, появился проект, помогающий пользователям собрать собственный дистрибутив. Linux From Scratch (LFS) разрабатывался вместе с книгой Джареда Бикманса, в которой рассказывалось, как собрать свой дистрибутив Linux из исходников.

Linux — это в первую очередь свобода, и ему надо развиваться. Но чтобы поддержать развитие, обеспечить его защиту и сохранить независимость, необходимо сформировать компанию, которая и будет всем этим заниматься. Поэтому в 2000 году был создан фонд для спонсирования работы Линуса и развивающегося сообщества, по созданию и совершенствованию Linux, а также для защиты и сохранения основных ценностей движения.

Ключевым моментом в этот период был выпуск версии ядра Linux 2.4 четвёртого января. Эта версия добавила поддержку USB, PC карт, ISA Plug and Play, а также Bluetooth, RAID и ext3. Фактически, это было ядро с самым длинным сроком поддержки, она закончилась на версии 2.4.37.11 в 2011 году. Ядро очень сильно изменилось и стало более универсальным по сравнению с 1.0.

Компания Red Hat, которая уже к тому времени вышла на фондовый рынок и получала деньги за поддержку бесплатной Red Hat Linux OS, приняла решение что пора выбрать более коммерческий подход к делу. Поэтому дистрибутив разделился на две ветки. Появился Red Hat Enterprice Linux 2.1 с ядром 2.4.9. Он был более стабильным, с длительным сроком поддержки и для коммерческих пользователей. А второй дистрибутив — Fedora — свободный и для сообщества.

Red Hat Enterprice Linux всё ещё является продуктом с открытым исходным кодом. Компания размещает исходный код на нескольких FTP-серверах, с которых его загружают несколько независимых групп разработчиков и компилируют на его основе свои дистрибутивы: CentOS, Oracle Linux, CERN и Scientific Linux. Они имеют все преимущества стабильности коммерческого дистрибутива, но не имеют доступа к программному обеспечению и поддержке от Red Hat.

В декабре 2002 года появляется интересный дистрибутив — CRUX. Его основной целью было максимально сохранить простоту, такая тенденция была очень популярна в то время. CRUX был очень лёгким и ориентированным больше на разработчика, а не на обычного пользователя. В то время как у других дистрибутивов наблюдался экспоненциальный рост и соперничество за звание лучшей замены для Windows, CRUX оставался простым и минималистичным. А интересен он нам потому, что стал основой для ныне очень популярного ArchLinux.

18 декабря было объявлено о выходе новой версии ядра Linux — 2.6. В этой версии появилась поддержка PAE, новых процессоров, улучшенная поддержка 64-х битных процессоров, увеличен максимальный размер файловой системы до 16 Тб, добавлена файловая система EXT4 и другое.

Уже в то время дистрибутивы Linux были достаточно хороши, но им по-прежнему было очень далеко до идеала для тех, кому нравились продукты Microsoft. Поэтому была необходима новая философия, которая сделала бы Linux более близким к обычному пользователю. Например Ubuntu.

Целью Ubuntu, дистрибутива, основанного на Debian, было создание простого в использовании рабочего стола Linux, которым мог бы пользоваться обычный пользователь с небольшим опытом работы в этой системе. С выпуском Ubuntu 4.04 20 октября 2004 эта концепция была реализована.

2006 — 2012 — рост и падение Ubuntu

За этот период многие дистрибутивы стали более стабильными и продолжают улучшатся. Также появилось множество новых дистрибутивов. Один из них, первая версия которого была выпущена у 2006 году, на сегодняшний день очень популярен. Это Linux Mint. Он был основан на Ubuntu и содержал как свободное, так и проприетарное программное обеспечение. Это очень сильно упрощало установку кодеков, драйверов и других компонентов для новичков. Разработчики дистрибутива старались включить в него новые программы, а также прислушивались к мнению своих пользователей, чем и завоевали поддержку сообщества.

Тем временем была выпущена новая версия окружения рабочего стола KDE4, которая была встречена критикой пользователей из-за отсутствия стабильности. Даже сам Линус заявил, что эта версия KDE всё ломает и предоставляет только половину возможностей предыдущей версии. Тем не менее пользователи начали использовать KDE4 с окружением Plasma и современным внешним видом и к релизу версии 4.2, который состоялся в 2009, уже забыли о своём отрицательном опыте.

23 сентября была выпущена самая популярная на данный момент операционная система на базе ядра Linux, хотя 90% пользователей даже и не имеют представления о том, что они используют Linux. Конечно, это Android. Версия 1.0 была выпущена для HTC Dream и могла делать всё, что вы ждёте от современного смартфона, но это было очень плохо. В версии 1.1 было исправлено большинство ошибок, но только начиная с версии 1.5 система Android начала завоевывать мир смартфонов.

На протяжении всего этого времени Ubuntu становилась всё сильнее и сильнее. Она регулярно занимала первые места в рейтингах дистрибутивов Linux, завоевывала всё больше поклонников и была достаточно простой в использовании. Но потом, в один солнечный апрельский день, вышел релиз Ubuntu 14.04, он поставлялся с новым окружением по умолчанию — Unity. В строну Gnome 3 и KDE 4 никогда не было столько негатива, сколько полетело в сторону Unity. Можно сказать, что тогда Unity ненавидели почти все. Но Canonical не отказалась от своей идеи сразу, и оболочка стала вполне пригодной для использования.

После многих лет разработки в ветке 2.6 наконец была выпущена версия ядра 3.0. И нет, в ней не было никаких значительных изменений. Просто Линус и сообщество решили, что нумерация 2.6.* стала слишком сложной и пора уже менять номер.

Неудача с KDE4 — это не единственная неудачная история развития Linux окружений. После неё можно было бы сказать, что разработчики должны были бы научиться на чужом опыте и уже знать, что нравится их аудитории. Но это явно не касается команды разработчиков Gnome, которая в апреле 2012 выпустила Gnome 3. Теперь уже пользователи Gnome были очень недовольны изменениями интерфейса и переходили на KDE или использовали более старые версии Gnome. Но в следующих версиях Gnome стал намного лучше, а разработчики Linux Mint решили сохранить старый вид Gnome с новыми возможностями и создали свое окружение — Cinnamon.

2012-2018 — Linux и игры

В наше время Linux почти полностью завоевал рынок серверов и стал ещё более привлекательным для домашних пользователей. Один из факторов привлекательности Linux для обычных людей — это игры. В феврале 2013 года компания Valve, создатель крупной платформы дистрибуции игр, выпустила версию своего клиента Steam для Linux. Тогда большинство игр можно было запустить только через эмулятор Windows, а те игры, что были для Linux, как правило, мало кого интересовали.

Спустя несколько лет была выпущена SteamOS, операционная система на базе Linux для игровых консолей Valve. На данный момент для Linux доступно более 3000 игр в Steam. Также совсем недавно Valve начала работу над интеграцией эмулятора Windows-игр в Steam, что ещё сильнее упростит их запуск, учитывая, что недавно в этот эмулятор была добавлена поддержка многих библиотек из DirectX 10 и 11.

Новые дистрибутивы продолжают появляться с такой же скоростью как и раньше. Среди них есть и интересные. Например Manjaro, основанный на Arch Linux. Он появился в ноябре 2013, но несмотря на свою молодость уже занимает лидирующие позиции по популярности во многих топах. Его преимущество в том, что он упрощает установку и настройку ArchLinux, но в то же время оставляет его гибкость и некоторые преимущества. Кроме Manjaro вышло ещё много новых интересных дистрибутивов, например Antergos, ElementaryOS, Deepin Linux и другие, которые сейчас пользуются популярностью среди пользователей.

Что касается ядра Linux, то в 2015 году снова была изменена версия на 4.0. И снова не было никаких серьезных изменений, было устроено голосование, и сообщество приняло решение, что версию ядра следует сменить. Из значительных изменений за этот период стоит отметить добавление поддержки UEFI, улучшение работы с новым оборудованием, добавление систем безопасности, портирование подсистем, необходимых для Android, улучшение стабильности Btrfs и многое другое.

В 2013 году компания, занимающаяся разработкой Ubuntu, решила попробовать свои силы на мобильном рынке и выпустила мобильную версию Ubuntu — Ubuntu Touch. Преимуществами операционной системы должна была стать возможность превращать смартфон в полноценный компьютер при подключении его к экрану по HDMI. Для неё разрабатывалась отдельная оболочка Unity 8, дисплейный сервер Mir вместо X Window и даже было выпущено несколько смартфонов. Но из проекта ничего не получилось, он был закрыт в 2017, после того как Smasung выпустил свою DEX. Кроме того в версии 17.10 разработчики Ubuntu решили отказаться от использования Unity и вернулись к Gnome, а вместо своего дисплейного сервера Mir теперь будет использоваться разрабатываемый сообществом Wayland, который тоже разрабатывается на замену устаревшему Xorg.

Выводы

К сожалению, наша экскурсия в прошлое Linux подошла к завершению. Мы увидели старые дистрибутивы Linux и узнали с чего всё начиналось. Неизвестно, что случится в будущем, но операционная система Linux развивается и заинтересовывает всё больше и больше людей и компаний. Этим история создания Linux не заканчивается и, скорее всего, у неё большое будущее.

Linux для начинающего разработчика или как навсегда забыть о Windows / Хабр

Дисклеймер

Внимание, очень много букв! Предлагаю запастись попкорном и выделить время для данного мероприятия.

Пост предназначен в первую очередь для тех, кто занимается разработкой, но так же очень сильно поможет тем, кто пытался перейти на linux, но из-за каких бы то ни было непонятных вещей и трудностей плюнул и сказал: «Да ну нафиг этот линукс, еще возиться с ним буду».

В статье рассматривается установка Ubuntu 16.04 и настройка оной исключительно для работы.

Предыстория

Ранее уже были предприняты попытки перекатиться на linux, но из-за своей чрезмерной привязанности к продукту компании Microsoft, миграция в который раз откладывалась в «долгий ящик».

Так же меня всегда останавливало большое количество вопросов, на которые я не смог найти ответы, проблемы, ошибки и.т.д.

Но после того, как я заинтересовался и начал изучение Node.js, один товарищ меня все же подбил на переезд под предлогом того, что работать в linux будет удобнее. И вот, после нескольких неудачных попыток установки и некоторого времени использования Ubuntu в качестве основной ОС, я удалили драгоценную винду и навсегда забыл о ней. Ничуть об этом не жалею.

Приступаем к установке

Первое что нам надо сделать — записать загрузочную флешку или диск. Дистрибутив Ubuntu 16.04 весит всего 1.4 гб, поэтому лучше всего нам подойдет флешка. Скачиваем программу Unetbootin -> unetbootin.github.io.

Тут все довольно просто. Ставим «Образ диска», выбираем .iso файл, который мы скачали, выбираем носитель и нажимаем ОК. Запись не заставит себя долго ждать.

Перезагружаем систему и выбираем способ загрузки -> через USB. Но тут кого-то может подстерегать проблема, заключается она в том, что в обычном режиме загрузка не произойдет.

Чтобы все же завести флешку, пробуем загрузится с нее в UEFI режиме. Но позже, нас спросят, хотим ли мы продолжить установку в UEFI режиме. В случае если ваше решение перейти на linux является окончательным, то можете ответить утвердительно. Если же у вас есть необходимость загружаться в других ОС, то нажимаем «вернуться» (ума не приложу, почему именно так обозвали эту кнопку). Сама установка не должна вызывать каких-либо трудностей. Выбираем свой язык, и двигаемся дальше. Рекомендую в следующем окне поставить галочки:

В следующем окне выбираем пункт: «Другой вариант».

Далее нам нужно разметить диск. Если у вас 2 жестких диска и один из них не используется и на нем нет никаких данных, то просто выбираем его и нажимаем -> «Создать новую таблицу разделов».

У нас появится «свободное место», на него мы так же нажимаем и создаем первый раздел.

Раздел №1:

Размер root раздела может составлять и 4гб, но рекомендую поставить 40-50, чтобы имелся запас.

Тип — первичный

Местоположение — на всех разделах должно стоять «Начало этого пространства»

Использование — Ext4

Точка монтирования — » / «

Раздел №2:

Размер = размеру вашей оперативной памяти

Использование — раздел подкачки

Данный раздел играет роль резервной «оперативной» памяти, хранящейся на нашем жестком диске.

Раздел №3:

Размер = все оставшееся пространство

Тип — логический

точка монтирования — » /home «

Вот собственно и все, нажимаем продолжить, соглашаемся с тем что все файлы на разделах будут уничтожены. Далее — соглашаемся, вводим что просит. Теперь можно сходить попить кофе)

Настройка системы, оформление, подгонка под особенности железа

После установки мы конечно же перезагружаемся в нашу теперешнюю ОС, логинимся. Заходим в параметры системы -> программы и обновления, в первой вкладке выставляем галочки таким образом:

Сразу же выполним некоторые команды:

sudo apt update
sudo apt upgrade

sudo означает выполнение с правами администратора

После первой же команды у вас попросят пароль, который вы придумали на этапе установки. Не пугайтесь, если вы вводите пароль, а буквы не отображаются — это такая мера безопасности. Если спросит про установку пакетов и приветливо будет мигать курсором — смело пишем Y и нажимаем Enter. Так что же мы только что сделали сей командой? Мы дали команду пакетному менеджеру «apt» обновить список доступных пакетов и установить их. Принцип работы основывается на GIT, вы включаете репозитории, обновляете их, устанавливаете обновления.Это дает нам преимущество — у нас всегда все самое свежее. Список репозиториев лежит в /etc/apt/sources.list, но нам это вряд ли понадобится.

Обновление завершено — перезагружаемся, хоть и в linux это обычно не требуется, но возможно обновилось ядро и данную операцию все же следует провести. Вообще если после update вы видите строчки подобного содержания:

linux-headers, linux-generic

значит обновление затрагивает наше ядро и перезагрузка обязательна.

«Железные» проблемы

Лично у меня сразу возникла проблема с мышкой. Использую игровую мышь с чувствительностью 3800DPI. Естественно, она металась по всему монитору от малейшего передвижения. И проблема с отображением мониторов. У меня стоят 2х 17inch с соотношением 4:3. Один монитор у подключен в мат.плату, а второй — в видеокарту от AMD. С первым все было хорошо, а вот тот что на встроенной графике — затухал сразу же после входа в систему. На ум пришло написать скрипт в автозагрузку для замедления мышки и переопределения мониторов (может кому пригодится).

Решение проблемы с слишком шустрой мышкой

В консоли вводим xinput и видим список подключенных устройств. Находим свою мышь и переписываем ее ID. На моей мышке ID=11, вводим команду xinput list-props ’11’. Перед нами опять появляется список, но уже с набором опций, нам нужна Device Accel Constant Deceleration, смотрим ее ID (в скобочках). У меня оно равно 274. Теперь, зная id мышки и id, мы пишем следующее:

xinput set-prop '11' 274 2

В домашнем каталоге создаем файл start.sh и открываем его, где последняя цифра (2) означает во сколько раз надо замедлить мышь. Данную команду можем сразу внести в наш скрипт.ё

#!/bin/bash
xinput set-prop '11' 274 2

Почему же мы не зашли в настройки и там не убрали чувствительность? Потому что диапазон регулировки там невелик. И скорее всего, его будет недостаточно.

Решение проблемы с некорректно отображаемыми мониторами

Заходим в настройки -> настройка экранов. Видим два мониторчика, мы можем схватить один из них и расположить так, как нам нужно, а так же выбрать, на каком располагать панель запуска. Нажимаем применить, и если после перезагрузки все останется на своих местах, значит никаких действий более не требуется.

Но у меня при выставленном в БИОС приоритете встроенной графики, после входа второй монитор выключался и оставался тот, что подключен к видеокарте. Что примечательно — после пробуждения из спящего режима, второй снова оживал и работал нормально. Смотрим нумерацию мониторов, здесь на главном мониторе стоит метка «Primary».

xrandr

Согласно номерам, выставляем как будут располагаться мониторы. Дописываем в наш скрипт:

#!/bin/bash
xinput set-prop '11' 274 2
xrandr --output VGA1-1 --primary
xrandr --output VGA1-1 --left-of VGA1

Теперь пришло время прописать скрипт в автозагрузку, открываем меню dash (клавиша WIN) и вводим в поиске:

«Автоматически запускаемые приложения». Нажимаем добавить, вписываем имя (не важно какое, главное чтобы вам был понятен смысл назначения этого элемента), описание оставляем пустым. Теперь в поле «команда» вводим следующее:

sh /home/user/start.sh

Этим самым мы отдаем команду на запуск скрипта. Путь у вас может быть любой другой. Сохраняем и при следующей перезагрузке проверяем работоспособность.

Если все же проблема с мониторами остается — попробуйте поколдовать с их расположением и приоритетом вывода видео в БИОС

Касательно драйверов — я не стал ставить поскольку все и без них работает хорошо, в случае с AMD установка драйверов может вызвать крах системы.

Настройка системы и установка программ

Добавление шрифтов windows

После установки браузера (чуть позже), вы заметите что шрифты на некоторых сайтах режут глаза и от них хочется плакать.

sudo apt install msttcorefonts
sudo fc-cache -fv

После перезагрузки браузера шрифты должны отображаться правильно. Если есть желание — вы можете выставить какой-либо из них как системный (в настройках или ubuntu tweak tool). Рекомендую зайти в ubuntu tweak и во вкладке «шрифты» выставить:

Софт из уже включенных репозиториев

Программы которые уже включены в репозиторий партнеров canonical вы можете установить следующим образом:

sudo apt install <Название программы>

Пакет программ, которыми пользуюсь я:

1. skype

2. ssh (для подключения и удаленного управления машиной)

3. unity-tweak-tool (Тонкая настройка оболочки unity)

4. ubuntu-tweak-tool (Расширенные настройки системы)

5. inkscape (Редактор векторной графики)

6. gimp (Использую вместо фотошопа)

7. clementine (Аудиопроигрыватель)

8. mc (файловый менеджер для терминала)

9. vlc (видеопроигрыватель, со множеством кодеков)

10. filezilla (ftp клиент)

Установка стороннего ПО

Чтобы установить стороннее ПО нам придется добавлять репозитории в систему.

Telegram

sudo add-apt-repository ppa:atareao/telegram
sudo apt update
sudo apt install telegram

Yandex browser

Качаем с официального сайта пакет, открываем его, в менеджере нажимаем «install».

Для просмотра видео, требуется flash, установим его.

sudo apt install pepperflashplugin-nonfree

Brackets

Мне нравится работать в «скобках», очень приятная и удобная вещь:

sudo add-apt-repository ppa:webupd8team/brackets
sudo apt-get update
sudo apt-get install brackets

Далее установим тему, я использую numix, но вы можете найти любую другую и установить ее.

sudo add-apt-repository ppa:numix/ppa
sudo apt-get update
sudo apt-get install numix-gtk-theme numix-icon-theme n1umix-icon-theme-circle

После установки запускам unity tweak tool. Тему выставляем «Numix», значки так же «Numix». По душе темные темы? Запускаем ubuntu tweak tool и во вкладке «внешний вид» ставим «Применить темную тему глобально». Пока не вышли из ubuntu tweak, лучше прописать в автозагрузку skype и telegram.

Установка LAMP

Финальным штрихом установим LAMP сервер (Linux apache mysql php) и phpmyadmin:

sudo apt install lamp-server
sudo apt install phpmyadmin
sudo phpenmod mcrypt
sudo apt-get install php-mbstring php-gettext
sudo apt-get install php5-dev

Перезапустим apache:

sudo service apache2 reload

Пробуем зайти по адресу localhost. Если все в порядке, то двигаемся дальше. Открываем конфигурационный файл apache:

sudo nano /etc/apache2/apache2.conf

Находим там теги в них прописана информация о местоположении файлов нашего сервера, после последнего пишем такую конструкцию:

<Directory /home/user/public_html>

AllowOverride All

Require all granted

Путь можете указать какой вам удобно. В конце конфигурационного файла прописываем:

ServerName localhost

Внимание! Ниже описанные операции придется проделывать каждый раз при добавлении нового виртуального хоста!

Для добавления новых виртуальных хостов проделываем следующее. Создаем папку в директории /home/user/public_html/test, открываем /etc/hosts и в первую строку оного добавляем имя нашего сайта:

127.0.0.1 localhost testsite

Далее выполним в терминале:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/testsite.conf

Тем самым мы скопировали дефолтный конфигурационный файл для нашего сайта, открываем его:

sudo nano /etc/apache2/sites-available/testsite.conf

Раскомментируем строчку:

ServerName www.example.com

и вместо example.com впишем свое название. Далее подправим DocumentRoot который указывает на местоположение файлов нашего сайта, прописываем вместо стандартного /var/www — /home/user/public_html/test.

Теперь мы можем включить наш сайт:

sudo a2ensite testsite
sudo service apache2 reload

Вот и все. Базовая настройка завершена, можно пользоваться!

Не бойтесь искать в интернете, если вам что-то необходимо установить и настроить! Он не кусается. В данной статье я постарался изложить как можно подробнее процесс базовой настройки Ubuntu 16.04. Уверен, что после недели использования ubuntu в качестве основной ОС вы уже вряд ли вернетесь обратно.

ТОП-5 лучших дистрибутивов Linux для программистов

Перевод статьи
«Top 5 Best Linux Distros Programmers And Developers».

Linux это очень популярная у программистов операционная система. Есть множество причин, по которым разработчики и другие энтузиасты сферы технологий предпочитают ОС на основе Linux, а не Windows или Mac. Но поскольку дистрибутивов Linux великое множество, встает вопрос: какие из них лучше всего подойдут программисту в 2019 году?

При выборе дистрибутива следует
обязательно обращать внимание на
стабильность, совместимость, гибкость
и даже мощность.

Вы программист и подыскиваете себе
операционную систему на базе Linux? Вот
лучшие дистрибутивы для вас:

1. Debian Linux

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

Debian поставляется со множеством пакетов,
и все они оптимизированы для наибольшей
стабильности. Для упрощения пользования
пакетами созданы руководства пользователя,
так что проблем не должно возникнуть.

Debian это идеальный дистрибутив для
программистов, но он может быть не лучшим
выбором, если вы только начинаете свой
путь в программировании.

2. Ubuntu

Ubuntu это еще один очень популярный дистрибутив Linux, причем не только среди программистов. Его open source сообщество является одной из причин подобной популярности. Именно благодаря сообществу Ubuntu непрерывно развивается и оптимизируется, чтобы соответствовать всем нуждам современных разработчиков.

Ubuntu происходит от Debian.

Этот дистрибутив обычно используется
для серьезных приложений, например, для
облачных вычислений. Также на Ubuntu
запускаются большинство серверов.

Что хорошо в Ubuntu, это большое количество
пакетов, поставляемых вместе с
дистрибутивом. Они способны удовлетворить
самые разнообразные нужды разработчика.
Этот дистрибутив имеет независимый
Центр ПО, где содержится множество
приложений, которые вы можете использовать
для кастомизации этой операционной
системы.

3. Fedora

Fedora это дистрибутив Linux с открытым
исходным кодом. Спонсирует его компания
Red Hat Inc. А Red Hat хорошо известна тем что
спонсирует лучшие фичи среды Linux.
Фактически, большинство дистрибутивов
Linux стремятся выпускать пакеты релизов,
которые соответствовали бы стандартам
Red Hat.

Fedora самостоятельно настраивается и
обновляется. Это делает ее идеальным
дистрибутивом для системного
программирования. Обновления обычно
появляются каждые полгода. Переходить
с одной версии Fedora к следующей тоже
легко.

Fedora это прекрасный выбор для тех, кто
занимается open source проектами и любит
open source дистрибутивы. Благодаря своей
стабильности это идеальный дистрибутив
Linux для программирования.

4. Raspbian

Raspbian OS это еще один мощный дистрибутив
Linux из числа тех, которые стоит использовать
в 2019 году. Эта операционная система
особым образом кастомизирована для
начинающих программистов. С ней вы
сможете с легкостью управляться с
задачами, связанными с разработкой ПО.

Raspbian OS поставляется с различными
инструментами для программирования.
Среди прочих стоит упомянуть Geany,
Greenfoot, Mathematica, BlueJ Scratch, Node-RED, Python. Все они
помогут вам в вашем процессе обучения.

5. Arch
Linux

Arch Linux входит в число лучших дистрибутивов
Linux. Особенно его любят более консервативные
энтузиасты Linux. Частично своей популярностью
он обязан тому, что поставляется с
менеджером пакетов и ядром Linux.

Если вы хотите использовать Arch Linux для
программирования, вам придется сделать
некоторые шаги. Вам нужно будет выбрать
необходимые компоненты, собрать
операционную систему, а затем
кастомизировать ее. Но бояться этого
не стоит, потому что сообщество Arch всегда
готово оказать вам поддержку.

Проделать все это нужно будет только
один раз. Установив систему, в дальнейшем
нужно будет только делать ежемесячные
обновления.

А что вы думаете обо всех этих дистрибутивах? Какой из них, по вашему мнению, лучше всего подошел бы вам? Или вы выбрали бы совсем другой дистрибутив? Поделитесь своим мнением в комментариях!

с чего все началось / Блог компании 1cloud.ru / Хабр

В этом году ядру Linux исполняется 27 лет. ОС на его базе используют многие корпорации, государственные, исследовательские учреждения и дата-центры по всему миру.

За более чем четверть века вышло немало статей (в том числе и на Хабре), рассказывающих о разных отрезках истории Linux. В этой серии материалов мы решили выделить наиболее значимые и интересные факты, связанные с этой операционной системой.

Начнем с разработок, которые предшествовали Linux, и истории появления первой версии ядра.

/ Flickr / Toshiyuki IMAI / CC BY-SA

Эпоха «свободного рынка»

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

На заре 50-х большая часть программного обеспечения в США создавалась сотрудниками университетов и лабораторий и распространялась без каких-либо ограничений. Это делалось с целью упрощения обмена знаниями в научной среде. Первым опенсорсным решением того периода считается система A-2, написанная для ЭВМ UNIVAC Remington Rand в 1953 году.

В те же годы сформировалась первая группа разработчиков свободного ПО — SHARE. Они работали по модели «совместного однорангового производства». Результатом труда этой группы ближе к концу 50-х стала одноименная ОС.

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

Приход коммерции и рождение Unix

В 1959 году компания Applied Data Research (ADR) получила заказ от организации RCA — написать программу для автозаполнения блок-схем. Разработчики выполнили работу, но не сошлись с RCA в цене. Чтобы не «выбрасывать» готовый продукт, в ADR переделали решение для платформы IBM 1401 и начали самостоятельно его реализовывать. Однако продажи шли не очень хорошо, так как многие пользователи ждали бесплатную альтернативу решению ADR, которую планировали в IBM.

В ADR не могли допустить выпуск бесплатного продукта с аналогичной функциональностью. Поэтому разработчик Мартин Гетц (Martin Goetz) из ADR подал патент на программу и в 1968 году первым в истории США получил его. С этого момента принято отсчитывать эпоху коммерциализации в индустрии разработки — из «бонуса» к оборудованию ПО превратилось в самостоятельный продукт.

Приблизительно в то же время небольшая команда программистов из Bell Labs начала работу над операционной системой для мини-компьютера PDP-7 — Unix. Unix создавали в качестве альтернативы другой ОС — Multics.

Последняя была слишком сложной и работала только на платформах GE-600 и Honeywell 6000. Переписанная на языке СИ Unix должна была стать портативной и более простой в использовании (во многом благодаря иерархической файловой системе с единым корневым каталогом).

В 50-х холдинг AT&T, в состав которого на тот момент входила Bell Labs, подписал соглашение с правительством США, запрещающее корпорации продавать программное обеспечение. По этой причине первые пользователи Unix — научные организации — получали исходный код ОС бесплатно.

AT&T отдалилась от концепции свободного распространения ПО в начале 80-х. В результате вынужденного разделения корпорации на несколько компаний запрет на продажу ПО перестал действовать, и холдинг прекратил бесплатное распространение Unix. Разработчикам грозили исками за несанкционированный обмен исходным кодом. Угрозы не были беспочвенными — с 1980 года компьютерные программы стали объектом авторского права в США.

Не всех разработчиков устраивали условия, которые диктовали в AT&T. Поисками альтернативного решения занялась группа энтузиастов из Калифорнийского университета в Беркли. В 70-х учебное заведение получило лицензию от AT&T, и энтузиасты начали создавать на его основе новый дистрибутив, который впоследствии стал Unix Berkeley Software Distribution, или BSD.

Открытая Unix-подобная система возымела успех, на что сразу обратили внимание в AT&T. Компания подала в суд, и авторам BSD пришлось удалить и заменить весь задействованный исходный код Unix. Это немного замедлило распространение Berkeley Software Distribution в те годы. Последняя версия системы вышла в 1994 году, но сам факт появления свободной и открытой ОС стал важной вехой в истории опенсорсных проектов.

/ Flickr / Christopher Michel / CC BY / Фото обрезано

Назад — к истокам свободного ПО

В конце 70-х сотрудники Массачусетского технологического института написали драйвер для принтера, установленного в одной из аудиторий. Когда бумага застревала и создавалась очередь из заданий на печать, пользователи получали уведомление с просьбой устранить проблему. Позже в отделе появился новый принтер, для которого сотрудники захотели добавить такую функцию. Но для этого нужен был исходный код первого драйвера. Штатный программист Ричард Мэттью Столлман (Richard M. Stallman) запросил его у коллег, но получил отказ — выяснилось, что это конфиденциальная информация.

Этот незначительный эпизод, возможно, стал одним из судьбоносных в истории свободного ПО. Столлман негодовал из-за сложившегося положения вещей. Его не устраивали ограничения, накладываемые на обмен исходным кодом в ИТ-среде. Поэтому Столлман решил создать открытую операционную систему и позволить энтузиастам свободно вносить в нее изменения.

В сентябре 1983 года он объявил о создании проекта GNU — GNU’s Not UNIX («GNU не Unix»). В его основе лежал манифест, который послужил и базисом для лицензии на свободное программное обеспечение — GNU General Public License (GPL). Этот шаг стал началом активного движения за открытое ПО.

Несколько лет спустя профессор Амстердамского свободного университета Эндрю Таненбаум (Andrew S. Tanenbaum) в качестве учебного пособия разработал Unix-подобную систему Minix. Он хотел сделать ее максимально доступной для студентов. Издатель его книги, к которой прилагалась ОС, настаивал хотя бы на номинальной плате за работу с системой. Эндрю и издатель пришли к компромиссу по цене лицензии в $69. В начале 90-х Minix завоевала популярность среди разработчиков. И ей было суждено стать основой для разработки Linux.

/ Flickr / Christopher Michel / CC BY

Рождение Linux и первых дистрибутивов

В 1991 году молодой программист из Хельсинкского университета Линус Торвальдс осваивал Minix. Его эксперименты с ОС переросли в работу над совершенно новым ядром. 25 августа Линус устроил открытый опрос группы пользователей Minix о том, что их не устраивает в этой ОС, и анонсировал разработку новой операционной системы. В августовском письме есть несколько важных тезисов о будущей ОС:

  • система будет бесплатной;
  • система будет похожа на Minix, но исходный код будет абсолютно другим;
  • система не будет «большой и профессиональной, как GNU».

25 августа принято считать днем рождения Linux. Сам Линус ведет отсчет от другой даты — 17 сентября. Именно в этот день он загрузил первый релиз Linux (0.01) на FTP-сервер и отправил электронное письмо людям, проявившим интерес к его анонсу и опросу. В исходном коде первого релиза сохранилось слово «Freaks». Так Торвальдс планировал назвать свое ядро (комбинация слов «free», «freak» и Unix). Администратору FTP-сервера не понравилось название, и он переименовал проект в Linux.

Далее последовала череда обновлений. В октябре того же года была выпущена версия ядра 0.02, а в декабре — 0.11. Изначально Linux распространялся без лицензии GPL. Это означало, что разработчики могли пользоваться ядром, модифицировать его, но не имели права перепродавать результаты своих трудов. Начиная с февраля 1992 года, все коммерческие ограничения были сняты — с релизом версии 0.12 Торвальдс изменил лицензию на GNU GPL v2. Этот шаг Линус позже назвал одним из определяющих факторов успеха Linux.

Популярность Linux в среде разработчиков Minix росла. Некоторое время обсуждения велись в фиде comp.os.minix сети Usenet. В начале 92-го создатель Minix Эндрю Таненбаум запустил в сообществе спор об архитектуре ядер, заявив, что «Linux устарел». Причина, по его мнению, заключалась в монолитном ядре ОС, которое по ряду параметров уступает микроядру Minix. Еще одна претензия Таненбаума касалась «привязки» Linux к линейке процессоров x86, которая, по прогнозам профессора, должна была кануть в небытие в ближайшее время. В полемику вступил сам Линус и пользователи обеих ОС. В результате спора сообщество разделилось на два лагеря, а у приверженцев Linux появился свой фид — comp.os.linux.

Сообщество занималось расширением функциональности базовой версии — разрабатывались первые драйверы, файловая система. Самые ранние версии Linux умещались на двух дискетах и состояли из загрузочного диска с ядром и корневого диска, который устанавливал файловую систему и несколько базовых программ из инструментария GNU.

Постепенно сообщество начало разрабатывать первые дистрибутивы на базе Linux. Большинство ранних версий создавались энтузиастами, а не компаниями.

Первый дистрибутив — MCC Interim Linux — был создан на основе версии 0.12 в феврале 1992 года. Его автор — программист из Компьютерного центра университета Манчестера — назвал разработку «экспериментом» с целью устранить некоторые недостатки в процедуре установки ядра и добавить ряд функций.

Вскоре после этого число пользовательских дистрибутивов значительно возросло. Многие из них остались локальными проектами, «прожившими» не более пяти лет, например, Softlanding Linux System (SLS). Однако были и дистрибутивы, которым удалось не только «закрепиться» на рынке, но и во многом повлиять на дальнейшее развитие опенсорсных проектов. В 1993 году состоялся релиз двух дистрибутивов — Slackware и Debian, — которые дали старт серьезным переменам в индустрии свободного ПО.

Debian создал Иан Мердок (Ian Murdock) при поддержке Free Software Foundation Столлмана. Он задумывался как «изящная» альтернатива SLS. Debian поддерживается по сей день и является одной из самых популярных разработок на базе Linux. На его основе, в свою очередь, был создан ряд других важных для истории ядра дистрибутивов — например, Ubuntu.

Что касается Slackware, это — еще один ранний и успешный проект на базе Linux. Его первая версия вышла в 1993 году. По некоторым оценкам, через два года на долю Slackware приходилось уже около 80% установок Linux. И десятилетия спустя дистрибутив оставался популярным среди разработчиков.

В 1992-м в Германии была основана компания SUSE (аббревиатура от Software- und System-Entwicklung — разработка программного обеспечения и систем). Она первой начала выпускать продукты на базе Linux для бизнес-клиентов. Первым дистрибутивом, с которым стали работать SUSE, как раз был Slackware, адаптированный для немецкоязычных пользователей.

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

Посты из корпоративного блога 1cloud.ru:

Кто и зачем разрабатывает Linux


, Текст: Илья Мусабиров


Свыше 85% изменений в ядро Linux вносится крупными ИТ-компаниями, такими, как Red Hat, Novell, IBM, Intel и другими. Лишь 13,9% программистов занимаются разработкой ядра исключительно в качестве хобби — таковы результаты исследования, выполненного по заказу The Linux Foundation (LF). Разработчики ядра имеют разные цели – кто-то улучшает его поддержку в собственном оборудовании, другие ориентируются на спрос со стороны пользователей.

GNU/Linux — сложная система, включающая тысячи различных пакетов, от самых распространённых, таких, как утилиты GNU, X.org, графические среды GNOME и KDE, до специфичных для какого-то одного из дистрибутивов. Команды разработчиков каждого проекта отличаются численностью, подходом к работе, используемыми инструментами и методами планирования работ. При этом ядро Linux занимает особое место среди всех прочих приложений. От него зависит возможность работы системы GNU/Linux на различных аппаратных платформах и степень поддержки различных устройств. Поэтому характеристики процесса его разработки могут, в какой-то степени, служить индикатором для всей системы GNU/Linux.


Исследование LF охватывает трехлетний период разработки ядра (от версии 2.6.11 до версии 2.6.24) и фокусируется на таких характеристиках, как частота релизов и изменений, размер исходных текстов ядра, и самое главное, позволяет получить представление о том, кто же всё-таки разрабатывает ядро Linux.


Статистика показывает, что, в среднем, каждый новый релиз ядра выходит раз в 2,5 — 3 месяца (60 — 110 дней). В первую очередь это связано с выбранной в 2005 г. моделью разработки, направленной на сведение к минимуму длительности промежутков между разработкой новых функций, появлением поддержки новых устройств и включением их в ядро; а также сводящей к минимуму потребность создателей дистрибутивов в модификациях ядра.


При этом число изменений (патчей), вносимых в ядро, имеет тенденцию к росту. Сводя воедино эти две характеристики, можно отметить, что, в среднем, в ядро вносится 2,83 патча в час, при этом, в строках кода каждый день в ядро добавляется свыше 3 тыс. строк, более 1,4 тыс. строк модифицируется.

Расхожее в некоторых кругах представление о Linux как о системе, разрабатываемой любителями, неверно


Число разработчиков, принявших участие в выпуске версии 2.6.24, более чем в два раза превысило этот показатель для версии 2.6.11 и составило 1057 человек.

Компании, которые наиболее активно осуществляют доработку ядра Linux

































































































































Название компанииКоличество изменений% от общего числа изменений
Частные пользователи11,59413.9%
Название не определено10,80312.9%
Red Hat9,35111.2%
Novell7,3858.9%
IBM6,9528.3%
Intel3,3884.1%
Linux Foundation2,1602.6%
Consultant2,0552.5%
SGI1,6492.0%
MIPS Technologies1,3411.6%
Oracle1,1221.3%
MontaVista1,0101.2%
Google9651.1%
Linutronix8171.0%
HP7650.9%
NetApp7640.9%
SWsoft7620.9%
Renesas Technology7590.9%
Freescale7300.9%
Astaro7150.9%
Academia6560.8%
Cisco4420.5%
Simtec4370.5%
Linux Networx4340.5%
QLogic3980.5%
Fujitsu3890.5%
Broadcom3850.5%
Analog Devices3580.4%
Mandriva3290.4%
Mellanox2940.4%
Snapgear2850.3%

Источник: Linux Foundation




При этом, однако, всего 10 ведущих разработчиков совместно внесли почти 15% изменений, а 30 ведущих разработчиков — 30%. Это, однако, не значит, что расхожее в некоторых кругах представление о Linux как о системе, разрабатываемой любителями, верно. Несмотря на то, что далеко не у всех компаний, занимающихся свободным ПО, есть необходимость вносить изменения в ядро, число компаний, участвующих в его разработке, растёт. Четыре крупнейших компании-разработчика ядра — Red Hat, Novell, IBM и Intel — оплатили более 32% внесённых за время исследования изменений, а суммарный процент изменений в ядро, внесённых разработчиками, работающими на компании, составил более 70%.


При этом среди компаний, участвующих в разработке ядра, выделяется несколько групп по основной цели участия в разработке. Это группа компаний, включающая IBM, Intel, HP, SGI, MIPS и других, которая ориентируется, в основном, на поддержку работы Linux на собственном оборудовании. Дистрибьюторы, такие, как Red Hat, Novell, MontaVista, имеют целью добавление в ядро возможностей, на которые существует спрос среди пользователей, и которые усиливают конкурентоспособность дистрибутивов как конечных продуктов. Такие компании, как Sony, Nokia, Samsung, работают над ядром для улучшения работы систем на базе ядра Linux в собственных устройствах.


Таким образом, из исследования Linux Foundation можно сделать выводы о том, что ядро Linux является беспрецедентным примером успешного сотрудничества различных по размеру и производимой продукции компаний и индивидуальных разработчиков, считают исследователи. Количество этих разработчиков и распределение их вклада в разработку может служить, в некотором смысле, гарантией стабильности и независимости разработки. Это наглядно демонстрирует преимущества как открытой модели разработки в целом, так и гарантий, предоставляемых разработчикам и конечным пользователям самой концепцией свободного ПО, закреплённой в лицензии GNU GPL.

Лучший дистрибутив Linux для разработчиков в 2020 году

Лучшие дистрибутивы Linux для разработчиков обеспечивают простую, стабильную и безопасную среду для кодирования и программирования приложений.

Лучшие дистрибутивы Linux для разработчиков

Это становится все более важным, потому что Linux обеспечивает основу Интернета, мобильных устройств, а теперь и систем облачных вычислений.

Это означает, что для технических специалистов часто бывает важно иметь возможность работать непосредственно в среде Linux, особенно для операционных серверов и для разработки программного обеспечения, которое на них работает.

Хотя Linux имеет репутацию в первую очередь для кодеров и программистов, за последние пару десятилетий были предприняты шаги по предоставлению версий Linux, более удобных для обычных пользователей, например, за счет предоставления большего количества графического пользовательского интерфейса (GUI ) и меньше полагаться на использование командной строки.

Однако по своей сути Linux по-прежнему важен для использования в разработке, и существуют определенные дистрибутивы, которые меньше заботятся о новичках из Windows и настроены специально для различных технических целей.

Здесь мы рассмотрим основные дистрибутивы Linux, используемые разработчиками программного обеспечения, и представим лучшие из них.

  • Хотите, чтобы ваша компания или услуги были добавлены в это руководство покупателя? Отправьте свой запрос по адресу [email protected], указав URL-адрес руководства по покупке в строке темы.

(Изображение предоставлено Ubuntu)

1. Ubuntu

Разработано для начинающих

Поддерживает проект с открытым исходным кодом Android

Инструменты для программирования

В отличие от базовых дистрибутивов, таких как Arch Linux и Gentoo, Ubuntu спроектирован так, чтобы быть идеально подходит для начинающих, с интерфейсом рабочего стола и автоматическими обновлениями.

Ubuntu — выбранный дистрибутив Android Open Source Project для создания исходных файлов. Сборка Android регулярно тестируется с использованием самых последних версий Ubuntu. Вы также можете установить другие среды разработки с помощью Ubuntu Make.

Ubuntu теперь поддерживает формат упаковки приложений «снимков» с помощью инструмента Snapcraft, который позволяет вам писать приложения на языке программирования по вашему выбору и упаковывать их со всеми необходимыми зависимостями.

(Изображение предоставлено Debian)

2.Debian

Создан для стабильности

Подробные руководства

Некоторое устаревшее программное обеспечение

Debian — один из старейших дистрибутивов Linux, созданный с учетом требований стабильности. Все программы, включенные в Debian, должны соответствовать Руководству по свободному программному обеспечению Debian. Пакеты тщательно отбираются и тестируются для включения в ветку «Стабильная» Debian, что означает, что, хотя некоторые из них могут быть устаревшими, вероятность нестабильности системы очень мала, что делает эту ОС идеальной для программистов.

На веб-сайте Debian есть обширные руководства, в том числе глава по программированию, в которой рассказывается об основах создания сценария, его компиляции и использования Autoconf для компиляции ваших сценариев в других дистрибутивах Linux.

(Изображение предоставлено CentOS)

3. CentOS

Платформа разработки Red Hat

Стабильная система

Комплексный инструментарий

Как и Fedora, CentOS — это бесплатный вариант Red Hat (коммерческая версия) для сообщества. Linux). Многие из пакетов одинаковы, и теоретически можно создать версию CentOS, которая функционально идентична самой Red Hat, хотя на практике этого трудно достичь.

В результате получается очень стабильная система.Репозиторий CentOS также содержит набор инструментов разработчика, который может похвастаться рядом основных инструментов программирования.

Для разработчиков платформа виртуализации Xen предлагает способ разделения ваших проектов и безопасного запуска приложений внутри виртуальной машины. Вы можете найти инструкции о том, как это сделать, и другие советы для разработчиков в превосходной CentOS Wiki.

(Изображение предоставлено Fedora)

4. Fedora

Портал разработчика

Для разработки Red Hat

Многоязычная среда IDE

Fedora — это производная от коммерческого дистрибутива Red Hat Linux, поддерживаемая сообществом.Он также отмечен как дистрибутив, выбранный создателем ядра Linux Линусом Торвальдсом.

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

Если этого было недостаточно, репозитории Fedora также включают Eclipse, полнофункциональную многоязычную IDE.Eclipse, вероятно, наиболее известен благодаря Java, но также имеет C / C ++ и PHP IDE. Вы можете еще больше расширить его функциональность с помощью плагинов.

(Изображение предоставлено openSUSE)

5. OpenSUSE

Основное семейство Linux

Простые пакеты кодирования для установки

Open Build Service для разработчиков

OpenSUSE (ранее SUSE Linux) — это дистрибутив, специально разработанный для разработчиков программного обеспечения и системные администраторы. Благодаря встроенному инструменту YaST установка и настройка системы выполняются очень просто.Это позволяет вам одним щелчком установить все пакеты «-devel», необходимые разработчикам.

OpenSUSE поставляется с предустановленными всеми основными инструментами, необходимыми разработчику программного обеспечения, такими как текстовые редакторы Vim и Emacs, инструменты автоматизации сборки, такие как CMake, и инструменты упаковки, такие как RPM. Операционная система также поставляется с OBS (Open Build Service), инструментом для разработчиков для создания программного обеспечения для различных дистрибутивов и платформ.

(Изображение предоставлено Arch Linux)

6. Arch Linux

В комплекте только самое необходимое

Хорошая среда программирования

Вики-справка

Не рекомендуется для новичков

Arch Linux предлагает мощный уровень настройки во время установки , позволяя загружать и устанавливать только те пакеты, которые вам нужны.Хотя это определенно не для новичков в программировании, тот факт, что вы можете установить на свой компьютер только минимальное количество программ, используя систему сборки Arch и пользовательский репозиторий Arch, снижает вероятность того, что что-либо мешает вашему кодированию.

Это означает, например, что вы можете установить простой оконный менеджер, такой как i3, чтобы быть уверенным, что ваша система будет быстро реагировать при использовании выбранного вами текстового редактора. Если у вас возникнут трудности, Arch Linux Wiki предлагает полезное руководство по установке.

(Изображение предоставлено Gentoo)

7. Gentoo

Исходный код компиляции

Хорошее соответствие оборудования

Доступна Wiki

Названный в честь быстро плавающего пингвина, Gentoo иногда называют «мета» -дистрибутивом. скачать и скомпилировать исходный код вручную в соответствии с их потребностями. Это не только делает его идеальным для соответствия аппаратным требованиям вашего компьютера, но и позволяет вам точно решить, какие версии пакетов можно установить.

Gentoo несколько лет назад потерпел небольшую неудачу, когда его обширная Wiki перестала работать. К счастью, с тех пор он был восстановлен и теперь включает официальное руководство Gentoo. Если вам нужна дополнительная помощь, на Reddit также есть небольшой несгибаемый Gentoo.

(Изображение предоставлено Solus)

8. Solus

Модель скользящего выпуска

Поддерживает несколько редакторов

Поддержка программирования

Solus особенный тем, что это один из немногих ирландских дистрибутивов Linux, а также тем, что за ним следует кураторская модель скользящего выпуска.Преимущество этого заключается в том, что после установки ОС вы можете продолжать запускать обновления, а не выполнять серьезное обновление. Solus, однако, старается избегать установки очень свежих пакетов и бета-версий программного обеспечения для поддержания стабильности системы.

Solus поддерживает несколько редакторов и IDE, таких как Atom, Idea и Gnome Builder, а также графический интерфейс Git, GitKraken. На веб-сайте проекта Solus также утверждается, что ОС поддерживает ряд языков программирования, таких как Go, Rust, PHP, Node.js и Ruby.

(Изображение предоставлено Puppy Linux)

9.Puppy Linux

Легкий дистрибутив

Минимальные пакеты

Сильная поддержка программирования

Puppy Linux — чрезвычайно легкий дистрибутив, основанный на Ubuntu или Slackware. Вся ОС имеет размер всего около 330 МБ, что означает, что ее можно полностью запускать в ОЗУ, а также устанавливать на обычный жесткий диск. Он поставляется с минимальным количеством пакетов, хотя вы можете добавить больше, например devx, который содержит различные инструменты разработки.

«Викка» Puppy Linux описывает языки программирования, поддерживаемые ОС.Одним из примечательных языков является BaCon, который может преобразовывать код, написанный на BASIC, в C.

Wikka также предлагает обширный выбор руководств по написанию сценариев Bash и началу работы с Python.

(Изображение предоставлено: Raspbian)

10. Raspbian

Хорошие образовательные инструменты

Разработка игр

Учебные ресурсы Python

Raspbian — это операционная система по умолчанию, которая входит в состав Raspberry Pi. Поскольку Pi был разработан как образовательный инструмент, Raspbian — идеальная ОС для тех, кто хочет начать писать код.

На веб-сайте Raspberry Pi есть несколько впечатляющих руководств по использованию инструмента визуального программирования Scratch, который используется для создания анимации и игр. Также есть отличный раздел по началу работы с Python, который поддерживается «из коробки».

Молодые программисты могут предпочесть научиться использовать язык программирования для Minecraft Pi, мини-версии очень популярной игры-песочницы.

.

шагов для создания среды разработчика в Linux — LinuxAndUbuntu

В каждой современной отрасли разработка программного обеспечения или приложений имеет решающее значение для организации, вы можете ее назвать, киноиндустрии, здравоохранения, музыки, сельского хозяйства и других известных областях, все эти области зависят от развития. От небольших проектов до больших проектов, таких как Google или Facebook, от вашего смартфона до вашего Smart TV и т. Д. В этой статье вы узнаете, как создать среду разработчика и какие инструменты вам понадобятся для базовой среды разработчика.

1. Установите базу данных

Каждая среда разработки нуждается в базе данных, и не имеет значения, находится ли ваше программное обеспечение или приложение в стадии производства или разработки.

Вы можете выбрать множество баз данных, от SQL до NoSQL. Ниже приведены несколько вариантов, которые вы можете сделать в отношении баз данных:

Также прочтите — Разница между MySQL и PostgreSQL

MySQL

Система управления реляционными базами данных с открытым исходным кодом (RDBMS), для установки выполните следующую команду в интерфейсе командной строки: sudo apt install mysql-server Во время установки вам будет предложено установить пароль root MySQL.

После установки для входа в систему просто запустите — mysql -u root -p yourpassword

PostgreSQL

Система управления объектно-реляционными базами данных (ORDBMS) с дополнительным или необязательным использованием объектно-ориентированных функций. Для установки выполните следующую команду:

 $ sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/` lsb_release -cs`-pgdg main ">> / etc / apt / sources.list.d / pgdg.list '
$ wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add - 
Обновите свою систему и установите:
 $ sudo apt-get update
$ sudo apt-get install postgresql postgresql-contrib 

База данных PostgreSQL по умолчанию создает пользователя Postgres с привилегиями Postgres и учетную запись с тем же именем.Для подключения к PostgreSQL вам необходимо использовать созданного пользователя Postgres и подключиться к базе данных с помощью следующей команды:

 $ sudo su - postgres
$ psql 

В качестве альтернативы вы можете установить Postgres с помощью пакетов snap:

 $ sudo snap install postgresql10 
MongoDB

MongoDB — это база данных документов с масштабируемостью и гибкостью. Он хранит данные в гибких, похожих на JSON документах, то есть поля могут варьироваться от документа к документу, а структура данных может изменяться с течением времени.Для установки в Ubuntu сначала импортируйте общедоступный ключ GPG —

 sudo apt-key adv --keyserver hkp: //keyserver.ubuntu.com: 80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 

Создайте список файлов для MongoDB

8 Создайте

файл списка /etc/apt/sources.list.d/mongodb-org-3.4.list, используя команду, соответствующую вашей версии Ubuntu:

 echo "deb [arch = amd64, arm64] http: //repo.mongodb .org / apt / ubuntu xenial / mongodb-org / 3.4 multiverse "| sudo tee / etc / apt / sources.list.d / mongodb-org-3.4.list 

Обновите свою систему —

 sudo apt-get update 

Наконец, установите MongoDB

 sudo apt-get install -y mongodb-org 

2. Установите IDE

IDE (интегрированная среда разработки) — это программное приложение, которое предоставляет инструменты и облегчает разработку программного обеспечения для компьютерных программистов:

Также прочтите — 8 лучших IDE или редакторов кода для Linux

Существует множество IDE, которые вы можете использовать для своего приложения development — это наиболее часто используемые Netbeans, Intellij Idea и eclipse.Мы поговорим о Eclipse, которая является хорошей IDE, полной функций и плагинов.

Eclipse IDE

Eclipse — это интегрированная среда разработки (IDE), используемая в компьютерном программировании, и наиболее широко используемая среда Java IDE. Он содержит базовое рабочее пространство и расширяемую систему плагинов для настройки среды. Eclipse в основном используется в Java, но используется и в других языках, таких как производные C и PHP.

Чтобы установить Eclipse, вы можете загрузить zip-файл с его веб-сайта или использовать программу установки Eclipse.

После запуска установщика выберите, что вам установить. Если это среда Java, PHP или любой другой.

На следующих шагах вам нужно выбрать место, в которое вы хотите установить вашу IDE.

3. Установите веб-сервер для своего приложения

Если вы разрабатываете веб-приложение, вам понадобится веб-приложение. Для разработчиков J2EE мы будем использовать Apache Tomcat, а для пользователей PHP — Apache.

Apache Tomcat

Чтобы установить apache tomcat, вы можете загрузить его с официального сайта и распаковать в желаемую папку, или вы можете использовать терминал —

wget www-us.apache.org/dist/tomcat/tomcat-9/v9.0.0.M21/bin/apache-tomcat-9.0.0.M21.tar.gz

Веб-сервер Apache

Чтобы установить веб-сервер Apache, напишите в терминале:

 sudo apt update
sudo apt install apache2 

Для запуска выполните sudo /etc/init.d/apache2 start Зайдите в свой браузер и перейдите на localhost, чтобы проверить, загружается ли он.

Установите PHP

Это не веб-сервер, но, поскольку он работает вместе с Apache, вы можете установить его с помощью:

 sudo apt-get install php5 libapache2-mod-php5 

4.Другие варианты

Есть больше возможностей для завершения вашей системы путем установки дополнительных инструментов:

Gitkraken — для контроля версий;
Maven — для управления зависимостями;
Haroopad — для создания, редактирования, чтения файлов разметки;

Заключение

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

.

Лучшие дистрибутивы Linux для разработчиков

См. Также: Лучший дистрибутив Linux: эксперты Linux оценили дистрибутивы

Один из распространенных вопросов, которые мне задают, — «какой дистрибутив Linux лучше всего подходит для разработчиков?» Короткий ответ: это зависит от обстоятельств. Подробный ответ представлен в этой статье. В этой статье мы расскажем о различных дистрибутивах Linux, любимых разработчиками. Это также даст некоторое представление о том, почему нет автоматического (простого) ответа на вопрос, почему один разработчик предпочитает один дистрибутив другому.

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

Приложения разработчика

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

Geany — Если вы ищете IDE, которая позволяет разрабатывать для среды GTK, это стоит вашего рассмотрения.На первый взгляд может показаться, что это любой другой текстовый редактор. Однако если вы копнете глубже, вы обнаружите, что Geany — очень эффективный инструмент для разработки. Некоторые из его функций включают подсветку синтаксиса, сворачивание кода и достойную систему сборки для компиляции и запуска вашего вновь созданного кода.

Kdevelop — Если вы предпочитаете среду разработки, ориентированную на KDE, то, возможно, Kdevelop больше подходит для того, что вам нужно. Его функции хорошо знакомы с большинством тематических приложений KDE. К тому же это, возможно, одна из самых надежных доступных IDE.

Kdevelop основан на популярной среде разработки, ориентированной на KDE

Vim — Vim считается редактором, а не IDE. Причина, по которой я упоминаю это, заключается в том, что первые два примера на самом деле представляют собой инструменты, требующие от вас использования мыши вместе с клавиатурой. Редакторы, такие как Vim, предоставляют вам полнофункциональный редактор, который работает из любого интерфейса командной строки. Сюда входит SSH, который полезен для доступа к удаленному компьютеру, нуждающемуся в настройке или двух.

PyCharm — Используемый во множестве ситуаций разработки, Python продолжает набирать популярность. Для пользователей Linux PyCharm — очень популярная IDE для создания приложений и инструментов на основе Python. Независимо от того, хотите ли вы протестировать, отладить или просто выполнить быстрое редактирование в реальном времени, PyCharm должен быть частью вашего набора инструментов разработчика.

Android Studio — как для начинающих, так и для штатных разработчиков Android, Android Studio — это то место, где можно создать следующее большое приложение для Android.Android Studio — это официальный инструмент разработки для всех, кто хочет внести свои идеи в программное обеспечение для Android Play Store.

GitKraken — В том же духе, что и «Освободи Кракена» из классического фильма «Битва титанов», GitKraken раскрывает чудовищные силы, стоящие за Git, для тех, у кого есть навыки, чтобы укротить его силу. Вы можете управлять настройками пользовательского интерфейса, потоком Git и даже настраивать несколько профилей.

Postman — Не путать с вашим местным почтовым перевозчиком. Postman — отличный инструмент для разработки графического интерфейса пользователя для разработки и точной настройки API.Postman предназначен для отражения вашего существующего рабочего процесса API, предоставляет полную цепочку инструментов для разработки API и позволяет запускать программное обеспечение практически на чем угодно.

Visual Studio Code — В наши дни даже у Microsoft есть инструменты разработки для разработчиков, работающих под Linux. Visual Studio Code от Microsoft дает вам возможность писать код на C #, Python, C / C ++ и многих других языках.

Visual Studio Code позволяет разработчикам кодировать на широком спектре языков разработки.

Sublime Text — Этот удобный для программиста текстовый редактор может быть платным, но Sublime Text мощен. Известные возможности включают: одновременное внесение нескольких выбранных изменений, разделенное редактирование и общие параметры настройки в самом редакторе.

Самое главное — решить, с какой среды рабочего стола Linux вы хотите работать. Не столько среда рабочего стола, сколько обслуживание рабочего стола, с которым вы хотите иметь дело ежедневно.

Дистрибутивы Linux с фиксированным выпуском

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

Так как же фиксированная версия поддается разработчикам? Хотя я уверен, что есть исключения, я считаю, что фиксированный выпуск — идеальная среда для интерфейсных веб-разработчиков и мобильных разработчиков. И снова позвольте мне повторить — я знаю веб-дизайнеров, использующих Arch Linux.Но большинство людей, с которыми я работал, которые занимаются этим типом работы, предпочитают то, что завтра останется таким же, как и сегодня.

Надежные дистрибутивы в этом пространстве включают Ubuntu. Почетные упоминания относятся к Debian, openSUSE Leap и Fedora Workstation. Но если отбросить эмоции и принять тот факт, что Ubuntu — самый популярный дистрибутив для настольных компьютеров, использование того, что работает, имеет большой смысл. Это глупо, просто использовать, не требует большого количества «внутренних знаний» или других кривых обучения.Кроме того, сообщество большое и разнообразное.

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

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

Другие, с которыми я разговаривал, твердо убеждены, что Debian или даже Ubuntu — надежные варианты. Настоящая проблема здесь в том, какие пакеты и насколько передовыми вам нужны эти пакеты? Fedora часто используется разработчиками, работающими в рамках других проектов разработки с открытым исходным кодом. Часто эти разработчики ищут самые свежие доступные пакеты, и даже с его фиксированным характером выпуска Fedora, как правило, естественным образом подходит для этого.

Если, напротив, ваша работа по разработке в основном связана с кодированием веб-сайтов или вам не нужны самые последние пакеты / стеки программного обеспечения, возможно, Ubuntu подойдет вам.Однако стоит отметить, что с появлением Snaps и Flatpaks любые опасения по поводу возраста программного обеспечения начнут уменьшаться, независимо от того, какой дистрибутив вы предпочитаете.

Прокатный выпуск Дистрибутивы Linux

Иногда разработчикам требуется максимально современный дистрибутив. Очевидные примеры включают разработчиков ядра Linux и приложений. Это дает разработчикам непосредственный опыт работы с любыми ошибками или недоработками, с которыми они могут столкнуться до того, как их код станет общедоступным.

Популярные скользящие дистрибутивы включают Arch Linux, openSUSE Tumbleweed и Fedora Rawhide. Двумя наиболее часто используемыми в этой области являются Arch и openSUSE Tumbleweed. Оба дистрибутива имеют сильные сообщества, ориентированные на разработчиков. У самой Fedora также есть сильное сообщество разработчиков … однако я не видел такого большого количества вещей в Rawhide.

Можно утверждать, что это потому, что Fedora сама по себе является довольно передовой, несмотря на то, что она является дистрибутивом с фиксированным выпуском. И это, ребята, я думаю, представляет собой самое важное соображение после выбора правильного программного обеспечения — рабочий процесс.

Затем у нас есть Arch. К моему большому удивлению, я много слышал от моих знакомых разработчиков, что Arch стала их де-факто платформой разработки. Основная причина этого в том, что Arch позволяет вам устанавливать только то, что вам нужно, а не то, что, по мнению разработчиков дистрибутива, вам нужно. Объедините это с огромным количеством программного обеспечения, доступного через AUR и невероятную Arch Wiki, неудивительно, почему разработчики предоставляют Arch серьезную возможность завоевать их.

Могу ли я лично предположить, что скользящий дистрибутив имеет смысл в качестве основы для разработки? Одним словом — да.Arch и другие скользящие дистрибутивы могут быть абсолютно использованы для разработки. Фактически, это делается прямо сейчас каждый день. Как и в любом другом дистрибутиве, резервное копирование необходимо для пользовательских данных на случай, если что-то пойдет не так. Пока существуют резервные копии критически важных пользовательских данных, любой дистрибутив, имеющий правильный набор инструментов (постоянный или фиксированный), более чем отвечает потребностям сегодняшних разработчиков.

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

Рабочий процесс разработки имеет значение

Позвольте мне нарисовать вам картину. Если вы разработчик iOS, скорее всего, вы выберете операционную систему, которая наилучшим образом предоставит вам необходимые инструменты, но при этом не будет мешать вам. И хотя есть методы, позволяющие разрабатывать приложения для iOS в Linux, вы, вероятно, столкнетесь с огромными хлопотами.

С другой стороны, если вы разрабатываете для Android, использование Linux имеет большой смысл. Лучше всего то, что официальная Android IDE доступна для пользователей Linux! Никаких странных обходов нет, полностью поддерживается.

Те же примеры применимы к разработке под OS X, Windows и Linux. По логике вещей, следовало бы использовать платформу, которая сделает процесс максимально безболезненным. Одно из соображений при выборе дистрибутива Linux, удобного для разработчиков, — помнить, что рабочий процесс разработки должен соответствовать выбранной вами платформе. Так что в некоторых случаях вообще выбор Linux — совершенно спорный вопрос.

Как правило, выбор Linux для разработки имеет смысл, если вы делаете следующее:

Защитите IDE или редактор, на который вы полагаетесь.Помните скользящие распределения? Нет ничего более неприятного, чем столкнуться с новой ошибкой в ​​программном обеспечении, когда у вас приближаются сроки. И да, это действительно происходит, и этого можно полностью избежать, если немного спланировать. Любое распространение, фиксированное или скользящее … должно быть настроено с резервным планом, если ваша текущая версия программного обеспечения решит отказаться от него. Запуск виртуальной машины или контейнерного решения может быть одним из способов избежать серьезных проблем. Я лично рекомендую иметь готовый образ диска с рабочей конфигурацией в качестве решения для резервного копирования на случай, если ваша текущая установка станет нестабильной.Такой подход быстрее и эффективнее в краткосрочной перспективе, чем часы устранения неполадок.

Программное обеспечение, которое вы используете, обновлено до последней версии дистрибутива, который вы хотите использовать. Arch vs Debian представляет собой интересный пример этого. Хотя многие приложения, вероятно, доступны в обоих, выбор программного обеспечения Arch будет намного более современным, чем в стабильной версии Debian. Тем не менее, Arch по-прежнему остается вариантом, если вы создаете образ диска, как предложено в последней части # 1 выше.

Если Linux исчезнет завтра, сможете ли вы проделать такую ​​же разработку на машине с Windows или OS X? Хорошая новость — да.Однако вам может потребоваться переосмыслить часть своего рабочего процесса. Один из способов уменьшить эту проблему — использовать кроссплатформенные IDE и редакторы. Почему это вообще вопрос? Потому что вы никогда не знаете, когда вы можете войти в облачную учетную запись для работы над проектом … из чужой операционной системы. Как ни странно это звучит, это все чаще встречается в отпусках во время путешествий или после сбоя компьютера.

Выбор правильного дистрибутива Linux

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

Перед тем как подвести итоги, давайте попробуем следующее упражнение: выберите как минимум три дистрибутива Linux и потратите несколько дней на использование каждого. Загрузите, установите и используйте необходимое программное обеспечение, на которое вы полагаетесь при разработке. Во время тестирования каждого дистрибутива делайте заметки о том, что работает хорошо и что вы считаете проблемным в каждом рассматриваемом дистрибутиве. Отсутствуют ли пакеты, возможно, программный стек слишком старый или слишком новый / нестабильный? Продолжайте делать эти записи.

По крайней мере, через неделю просмотрите свои записи и изучите результаты своего тестирования. Вы обнаружили, что один дистрибутив или тип выпуска подходит для вас лучше, чем другие протестированные? Если да, то вы подтвердили, какой дистрибутив вам подходит. Я также рекомендую попробовать то же самое в отношении текстовых редакторов, IDE и других связанных инструментов разработки. Это гарантирует, что ваш рабочий процесс разработки останется на высшем уровне.

Что скажешь? Очевидно, я не упомянул все дистрибутивы или приложения IDE, доступные в этой статье.Вместо этого я подумал, что было бы интересно посмотреть, что вы все используете? Фиксированный или непрерывный, IDE или текстовый редактор — что из этого вы предпочитаете? Напишите в комментариях и поделитесь своими любимыми инструментами и дистрибутивом Linux, используемым для разработки программного обеспечения.

.

HOWTO по разработке ядра Linux — Документация по ядру Linux

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

Если что-либо в этом документе устареет, присылайте исправления
обслуживающему персоналу этого файла, который указан в нижней части
документ.

Введение

Итак, вы хотите узнать, как стать разработчиком ядра Linux? Или ты
ваш менеджер сказал: «Пойдите, напишите драйвер Linux для этого
устройство. » Цель этого документа — научить вас всему, что вам нужно
знать, как достичь этого, описав процесс, который вам нужно пройти,
и подсказывает, как работать с сообществом. Он также попытается
объясните некоторые причины, по которым сообщество работает именно так.

Ядро написано в основном на C, с некоторыми архитектурно-зависимыми
детали написаны в сборке.Хорошее понимание C требуется для
разработка ядра. Сборка (любой архитектуры) не требуется, если только
вы планируете заниматься разработкой этой архитектуры на низком уровне. Хотя они
не являются хорошей заменой твердому C-образованию и / или годам
опыта, следующие книги пригодны для справки:

  • «Язык программирования C» Керниган и Ричи [Прентис Холл]
  • «Практическое программирование на языке C», Стив Уаллин [O’Reilly]
  • «C: Справочное руководство» Харбисона и Стила [Прентис Холл]

Ядро написано с использованием GNU C и набора инструментов GNU.Пока это
соответствует стандарту ISO C89, в нем используется ряд расширений,
не входит в стандарт. Ядро — это автономный C
среды, не полагаясь на стандартную библиотеку C, поэтому некоторые
части стандарта C не поддерживаются. Произвольный длинный длинный
деления и числа с плавающей запятой не допускаются. Иногда это может быть
трудно понять предположения, которые ядро ​​имеет в цепочке инструментов
и расширения, которые он использует, и, к сожалению, нет
исчерпывающая ссылка на них.Пожалуйста, проверьте информационные страницы gcc (информация
gcc
) для получения информации о них.

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

Правовые вопросы

Исходный код ядра Linux выпущен под лицензией GPL. Пожалуйста, посмотрите
файл, КОПИРОВАНИЕ, в главном каталоге дерева исходных текстов, для получения подробной информации о
лицензию. Если у вас есть дополнительные вопросы по лицензии, пожалуйста,
обратитесь к юристу и не спрашивайте в списке рассылки ядра Linux. В
люди в списках рассылки не юристы, и вам не следует полагаться на
их заявления по правовым вопросам.

Общие вопросы и ответы о GPL см .:

Документация

В дереве исходных текстов ядра Linux есть большой набор документов,
бесценен для изучения того, как взаимодействовать с сообществом ядра.когда
в ядро ​​добавлены новые функции, рекомендуется
Также добавлены файлы документации, в которых объясняется, как использовать эту функцию.
Когда изменение ядра приводит к тому, что интерфейс, который ядро ​​предоставляет
пользовательское пространство для изменения, рекомендуется отправить информацию или
патч к страницам руководства, объясняющий изменение страниц руководства
специалист по сопровождению на [email protected] и отправьте копию списка
[email protected].

Вот список файлов в дереве исходного кода ядра, которые
требуется чтение:

README
Этот файл дает краткую справочную информацию о ядре Linux и описывает
что необходимо сделать для настройки и сборки ядра.люди
новички в ядре должны начать здесь.
Документация / процесс / changes.rst
Этот файл содержит список минимальных уровней различного программного обеспечения.
пакеты, необходимые для сборки и запуска ядра
успешно.
Документация / процесс / coding-style.rst
Здесь описывается стиль кодирования ядра Linux и некоторые
обоснование этого. Ожидается, что весь новый код будет следовать
рекомендации в этом документе. Большинство сопровождающих принимают только
исправления, если следовать этим правилам, и многие люди будут только
проверьте код, если он в правильном стиле.
Документация / процесс / submitting-patches.rst и Документация / process / submitting-drivers.rst

Эти файлы подробно описывают, как успешно создавать
и отправьте патч, включая (но не ограничиваясь):

  • Содержание сообщения электронной почты
  • Формат электронной почты
  • Кому послать на

Следование этим правилам не гарантирует успеха (поскольку все патчи
подлежат тщательной проверке на предмет содержания и стиля), но не следуя им
почти всегда предотвратит это.

Другие отличные описания того, как правильно создавать патчи:

Документация / процесс / stable-api-nonsense.rst

Этот файл описывает обоснование сознательного решения
не иметь стабильного API в ядре, включая такие вещи, как:

  • Подсистема регулировочных пластин (для совместимости?)
  • Переносимость драйверов между операционными системами.
  • Снижение риска быстрых изменений в дереве исходных текстов ядра (или
    предотвращение быстрой смены)

Этот документ имеет решающее значение для понимания разработки Linux.
философии и очень важен для людей, переходящих на Linux с
разработка на других операционных системах.

Документация / руководство администратора / security-bugs.rst
Если вы чувствуете, что обнаружили проблему безопасности в ядре Linux,
пожалуйста, следуйте инструкциям в этом документе, чтобы уведомить ядро
разработчикам и помогите решить проблему.
Документация / процесс / management-style.rst
В этом документе описывается, как работают специалисты по обслуживанию ядра Linux, а также
разделяли этические принципы своих методологий. Это важное чтение
для всех, кто плохо знаком с разработкой ядра (или кому просто интересно
это), поскольку он разрешает множество распространенных заблуждений и путаницы.
об уникальном поведении специалистов по обслуживанию ядра.
Документация / процесс / stable-kernel-rules.rst
В этом файле описаны правила выпуска стабильного ядра.
случиться, и что делать, если вы хотите изменить один из этих
выпускает.
Документация / процесс / kernel-docs.rst
Список внешней документации, относящейся к ядру.
развитие. Пожалуйста, обратитесь к этому списку, если вы не найдете то, что
ищите в документации ядра.
Документация / процесс / применение патчей.первый
Хорошее введение, подробно описывающее, что такое патч и как его
примените его к различным ветвям разработки ядра.

Ядро также имеет большое количество документов, которые можно
автоматически генерируется из самого исходного кода или из
Разметка ReStructuredText (ReST), как эта. Это включает
полное описание встроенного в ядро ​​API и правила обработки
блокировка должным образом.

Все такие документы можно сгенерировать как PDF или HTML, запустив:

 сделать pdfdocs
сделать htmldocs
 

соответственно из основного исходного каталога ядра.

Документы, в которых используется разметка ReST, будут созданы в разделе «Документация / вывод».
Их также можно сгенерировать в форматах LaTeX и ePub с помощью:

 сделать latexdocs
сделать epubdocs
 

Стать разработчиком ядра

Если вы ничего не знаете о разработке ядра Linux, вам следует
посмотрите проект Linux KernelNewbies:

Он состоит из полезного списка рассылки, в котором вы можете задать почти любой тип
основного вопроса о разработке ядра (не забудьте поискать в архивах
сначала, прежде чем спрашивать то, на что уже был дан ответ в
прошлое.) Он также имеет канал IRC, который вы можете использовать, чтобы задавать вопросы в
в реальном времени и много полезной документации, которая полезна для
узнать о разработке ядра Linux.

На сайте представлена ​​основная информация об организации кода, подсистемах,
и текущие проекты (как в дереве, так и вне дерева). Он также описывает
некоторая базовая логистическая информация, например, как скомпилировать ядро ​​и
применить патч.

Если вы не знаете, с чего хотите начать, но хотите найти
какую-то задачу начать делать, чтобы присоединиться к сообществу разработчиков ядра,
перейти к проекту Linux Kernel Janitor:

Это отличное место для начала.Он описывает список относительно простых
проблемы, которые необходимо устранить и исправить в ядре Linux
исходное дерево. Работая с разработчиками, отвечающими за этот проект, вы
изучит основы добавления патча в дерево ядра Linux,
и, возможно, укажут направление, над чем работать дальше, если
у вас еще нет идеи.

Если у вас уже есть кусок кода, который вы хотите поместить в ядро
дерево, но нужна помощь, чтобы получить его в надлежащей форме,
Проект kernel-mentors был создан, чтобы помочь вам в этом.Это
список рассылки, и его можно найти по адресу:

Прежде чем вносить какие-либо изменения в код ядра Linux, необходимо
Необходимо понимать, как работает рассматриваемый код. Для этого
цель, нет ничего лучше, чем прочитать его напрямую (самое сложное
биты хорошо прокомментированы), возможно, даже с помощью специализированных
инструменты. Одним из таких инструментов, который особенно рекомендуется, является Linux
Проект перекрестных ссылок, который может представить исходный код в
самореференциальный индексируемый формат веб-страницы.Отличный актуальный
репозиторий кода ядра можно найти по адресу:

Процесс разработки

Процесс разработки ядра Linux в настоящее время состоит из нескольких различных
основные «ветки» ядра и множество различных специфичных для подсистем ядра
ветви. Эти разные отделения:

  • основное дерево ядра 4.x
  • 4.x.y -стабильное дерево ядра
  • 4.x — патчи ядра git
  • специфичные для подсистемы деревья ядра и исправления
  • 4.x -следующее дерево ядра для интеграционных тестов

Дерево ядра 4.x

Ядра

4.x поддерживаются Линусом Торвальдсом и могут быть найдены на
https://kernel.org в каталоге pub / linux / kernel / v4.x /. Его развитие
процесс выглядит следующим образом:

  • После выпуска нового ядра открывается двухнедельное окно,
    в течение этого периода времени сопровождающие могут отправлять большие изменения в
    Линус, обычно патчи, которые уже были включены в
    -следующее ядро ​​на несколько недель.Предпочтительный способ отправки больших изменений
    использует git (инструмент управления исходным кодом ядра, дополнительная информация
    можно найти на https://git-scm.com/), но простые патчи также просто
    хорошо.
  • Через две недели выпускается ядро ​​-rc1, и основное внимание уделяется созданию
    новое ядро ​​как можно более прочное. Большинство патчей на данный момент
    следует исправить регресс. Ошибки, которые существовали всегда, не
    регрессии, поэтому предлагайте такие исправления, только если они важны.
    Обратите внимание, что может быть принят совершенно новый драйвер (или файловая система)
    после -rc1, потому что нет риска вызвать регрессию с таким
    изменение, пока изменение является самодостаточным и не затрагивает области
    вне добавляемого кода.git можно использовать для отправки
    патчи к Linus после выпуска -rc1, но патчи также должны быть
    отправлено в общедоступный список рассылки для проверки.
  • Новый -rc выпускается всякий раз, когда Линус считает, что текущее дерево git
    быть в разумно нормальном состоянии, пригодном для тестирования. Цель состоит в том, чтобы
    выпускать новое ядро ​​-rc каждую неделю.
  • Процесс продолжается до тех пор, пока ядро ​​не будет признано «готовым»,
    процесс должен длиться около 6 недель.

Стоит упомянуть, что написал Эндрю Мортон о linux-ядре
список рассылки о выпусках ядра:

«Никто не знает, когда будет выпущено ядро, потому что оно
выпущен в соответствии с предполагаемым статусом ошибки, а не в соответствии с
предвзятые сроки.”

4.x.y -стабильное дерево ядра

Ядра с 3-частными версиями являются стабильными ядрами. Они содержат
относительно небольшие и критические исправления проблем безопасности или значительных
регрессии, обнаруженные в данном ядре 4.x.

Это рекомендованная ветка для пользователей, которым нужна последняя стабильная версия.
ядро и не заинтересованы в помощи в разработке тестов / экспериментальных
версии.

Если ядро ​​4.x.y недоступно, то имеет самый высокий номер 4.x
ядро — это текущее стабильное ядро.

4.x.y обслуживаются «стабильной» командой , и
выпускаются по мере необходимости. Нормальный период выпуска составляет примерно
две недели, но может быть и больше, если нет насущных проблем. А
проблема, связанная с безопасностью, вместо этого может привести к тому, что релиз произойдет почти
мгновенно.

Файл Documentation / process / stable-kernel-rules.rst в дереве ядра
документирует, какие изменения допустимы для стабильного дерева, и
как работает процесс выпуска.

4.x — патчи git

Это ежедневные снимки дерева ядра Линуса, которые управляются в
git репозиторий (отсюда и название.) Эти патчи обычно выпускаются
daily и представляют текущее состояние дерева Линуса. Они больше
экспериментальные, чем ядра -rc, поскольку они генерируются автоматически
без даже беглого взгляда, чтобы убедиться, что они вменяемы.

Дерево ядра и исправления, специфичные для подсистем

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

Большинство этих репозиториев представляют собой деревья git, но есть и другие SCM
уже используются, или очереди исправлений публикуются как серия quilt. Адреса
эти репозитории подсистем перечислены в файле MAINTAINERS.Много
из них можно просмотреть на https://git.kernel.org/.

Прежде чем предложенный патч будет зафиксирован в таком дереве подсистем, он
подлежат проверке, которая в основном происходит в списках рассылки (см.
соответствующий раздел ниже). Для нескольких подсистем ядра этот обзор
процесс отслеживается с помощью инструмента лоскутное одеяло. Пэчворк предлагает сеть
интерфейс, который показывает публикации патчей, любые комментарии к патчу или
изменения к нему, и сопровождающие могут отмечать исправления как находящиеся на рассмотрении,
принято или отклонено.Большинство этих лоскутных сайтов перечислены на
https://patchwork.kernel.org/.

4.x -следующее дерево ядра для интеграционных тестов

До того, как обновления из деревьев подсистем будут объединены в основную линию 4.x
tree, они должны быть протестированы на интеграцию. Для этого есть специальный
существует репозиторий тестирования, в который помещены практически все деревья подсистем.
тянут практически ежедневно:

Таким образом, -next ядро ​​дает общее представление о том, что будет
ожидается, что он войдет в основное ядро ​​в следующий период слияния.Приглашаем отважных тестировщиков протестировать -next ядро ​​во время выполнения.

Сообщения об ошибках

https://bugzilla.kernel.org — это место, где разработчики ядра Linux отслеживают ядро
ошибки. Пользователям рекомендуется сообщать обо всех ошибках, которые они находят в этом
орудие труда. Для получения дополнительной информации о том, как использовать ядро ​​bugzilla, см .:

Файл admin-guide / reporting-bugs.rst в основном каталоге исходных кодов ядра имеет хороший
шаблон о том, как сообщить о возможной ошибке ядра, и подробности о том, какого рода
разработчикам ядра требуется информация, чтобы помочь отследить
проблема.

Управление отчетами об ошибках

Один из лучших способов применить на практике свои хакерские навыки — исправить
об ошибках сообщили другие люди. Не только вы поможете сделать ядро
более стабильный, вы научитесь решать проблемы реального мира и улучшите
ваши навыки, и другие разработчики будут знать о вашем присутствии. Фиксация
баги — один из лучших способов заслужить признание других разработчиков, потому что
не многие люди любят тратить время на исправление чужих ошибок.

Для работы с отчетами об ошибках, о которых уже сообщалось, перейдите по адресу https: // bugzilla.kernel.org.
Если вы хотите получать информацию о будущих отчетах об ошибках, вы можете подписаться на
список рассылки bugme-new (сюда отправляются только новые сообщения об ошибках) или в
Список рассылки bugme-janitor (каждое изменение в bugzilla отправляется сюда)

Списки рассылки

Как описано в некоторых из вышеперечисленных документов, большая часть ядра ядра
разработчики участвуют в списке рассылки ядра Linux. Подробно о том, как
подписаться и отказаться от рассылки можно по адресу:

В сети есть архивы списков рассылки по разным адресам.
места.Используйте поисковую систему, чтобы найти эти архивы. Например:

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

Большинство отдельных подсистем ядра также имеют свои собственные отдельные
список рассылки, в котором они делают свои разработки. Увидеть
MAINTAINERS содержит список того, что эти списки для различных
группы.

Многие списки размещены на kernel.org. Информация о них может быть
Найдено по адресу:

Пожалуйста, не забывайте придерживаться хороших поведенческих привычек при использовании списков.
В следующем URL-адресе есть несколько простых рекомендаций для
взаимодействие со списком (или любым списком):

Если на ваше письмо ответят несколько человек, список получателей CC: может
стать довольно большим. Не удаляйте никого из списка CC: без хорошего
причина или не отвечайте только на адрес списка.Привыкайте к получению
отправьте письмо дважды, одно от отправителя и второе из списка, и не пытайтесь
чтобы настроить это, добавив причудливые почтовые заголовки, людям это не понравится.

Не забудьте сохранить контекст и атрибуцию ваших ответов.
оставьте строки «Джон Кернелхакер написал …:» в верхней части ответа, и
добавьте свои утверждения между отдельными цитируемыми разделами вместо
писать в верхней части письма.

Если вы добавляете исправления в свою почту, убедитесь, что они представляют собой простой читаемый текст.
как указано в Documentation / process / submitting-patches.первый
Разработчики ядра не хотят иметь дело с
вложения или сжатые патчи; они могут захотеть прокомментировать
отдельные строчки вашего патча, который работает только так. Убедись, что ты
используйте почтовую программу, которая не искажает пробелы и символы табуляции. А
Хороший первый тест — отправить письмо самому себе и попробовать применить свои
собственный патч самостоятельно. Если это не помогает, исправьте почтовую программу.
или меняйте, пока не заработает.

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

Различия между ядром сообщества и корпоративными структурами

Сообщество ядра работает иначе, чем большинство традиционных корпоративных
среды разработки. Вот список вещей, которые вы можете попробовать
сделать, чтобы избежать проблем:

Хорошие отзывы о предлагаемых вами изменениях:

  • «Это решает несколько проблем».
  • «Это удаляет 2000 строк кода».
  • «Вот патч, объясняющий то, что я пытаюсь описать.”
  • «Я тестировал его на 5 разных архитектурах …»
  • «Вот серия небольших заплаток, которые …»
  • «Это увеличивает производительность на типичных машинах …»

Плохих вещей, о которых не следует говорить:

  • «Мы сделали это в AIX / ptx / Solaris, поэтому, следовательно, это должно быть
    хорошо … »
  • «Я занимаюсь этим 20 лет, так что …»
  • «Это необходимо для моей компании, чтобы зарабатывать деньги»
  • «Это для нашей линейки продуктов Enterprise.”
  • «Вот мой дизайнерский документ на 1000 страниц, в котором описана моя идея»
  • «Я работаю над этим 6 месяцев …»
  • «Вот патч на 5000 строк, который …»
  • «Я переписал весь текущий бардак, и вот он …»
  • «У меня крайний срок, и этот патч нужно применить сейчас».

Другим отличием сообщества ядра от большинства традиционных
рабочая среда разработки программного обеспечения — безликая природа
взаимодействие.Одно из преимуществ использования электронной почты и IRC в качестве основных форм
общение — это отсутствие дискриминации по признаку пола или расы.
Рабочая среда ядра Linux принимает женщин и меньшинства
потому что все, что вы есть, это адрес электронной почты. Международный аспект также
помогает уравнять правила игры, потому что вы не можете угадать пол на основе
имя человека. Мужчину можно назвать Андреа, а женщину — Пэт.
Большинство женщин, которые работали с ядром Linux и выразили недовольство
мнение имели положительный опыт.

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

Разбейте свои изменения

Сообщество ядра Linux неохотно принимает большие куски кода
упал на это все сразу. Изменения нужно внести правильно,
обсуждались и разбивались на крошечные отдельные части.Это почти
полная противоположность тому, что компании привыкли делать. Твое предложение
также следует вводить очень рано в процессе разработки, чтобы
вы можете получать отзывы о том, что вы делаете. Это также позволяет
сообщество считает, что вы работаете с ними, а не просто используете их
как свалка для вашей функции. Однако не отправляйте 50 писем по адресу
один раз в список рассылки, ваша серия патчей должна быть меньше, чем
это почти все время.

Причины разрыва следующие:

  1. Небольшие исправления увеличивают вероятность того, что ваши исправления будут
    применяются, поскольку они не требуют много времени и усилий для проверки
    правильность.Патч из 5 строк может быть применен сопровождающим с
    едва ли второй взгляд. Однако исправление на 500 строк может занять несколько часов.
    проверка на правильность (время на это экспоненциально
    пропорционально размеру патча, что ли).

    Небольшие патчи также упрощают отладку, когда что-то идет
    неправильно. Гораздо легче откатить патчи один за другим, чем
    рассечь очень большой патч после того, как он был наложен (и сломан
    что нибудь).

  2. Важно не только отправлять небольшие патчи, но и переписывать
    и упростить (или просто изменить порядок) патчи перед их отправкой.

Вот аналогия от разработчика ядра Al Viro:

«Представьте себе учителя, оценивающего домашнее задание ученика математики. В
учитель не хочет видеть проб и ошибок ученика
прежде, чем они придумали решение. Они хотят увидеть
самый чистый, самый элегантный ответ. Хороший ученик знает это, и
никогда не представит свою промежуточную работу до финала
решение.

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

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

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

Обоснуйте изменение

Наряду с разделением патчей для вас очень важно разрешить
сообщество Linux знает, почему они должны добавить это изменение. Новые особенности
должны быть оправданы как необходимые и полезные.

Задокументируйте свои изменения

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

  • зачем нужна смена
  • общий подход к дизайну в патче
  • подробности реализации
  • результаты тестирования

Подробнее о том, как все это должно выглядеть, см.
Раздел журнала изменений документа:

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


Спасибо Паоло Чиаррокки, который разрешил «Процесс разработки»
(https://lwn.net/Articles/94386/) раздел
основываться на написанном им тексте, а Рэнди Данлэпу и Герриту
Huizenga — вот список того, что вы должны и не должны говорить.
Также спасибо Пэту Мочелю, Ханне Линдер, Рэнди Данлэпу, Кей Сиверс,
Войтех Павлик, Ян Кара, Джош Бойер, Кис Кук, Эндрю Мортон, Энди
Клин, Вадим Лобанов, Джеспер Джул, Адриан Банк, Кери Харрис, Франс Поп,
Дэвид А.Уилер, Джунио Хамано, Майкл Керриск и Алекс Шепард для
их обзоры, комментарии и вклады. Без их помощи это
документ было бы невозможно.

Сопровождающий: Greg Kroah-Hartman

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *