Задолго до появления Windows, в 70-х годах двадцатого века на свет появилась операционная система Unix, предназначенная для работы на мейнфреймах. В те времена не существовало персональных компьютеров. Компьютеры отождествлялись с мейнфреймами — большими машинами, занимающими целые этажи зданий.

Кстати, именно для написания Unix создавался язык СИ

Мейнфрейм

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

Мейнфрейм

Unix оказалась очень удачной операционной системой, но была платной и закрытой (нельзя посмотреть исходный код). На её основе создавались новые системы, которые со временем теряли обратную совместимость. Другими словами, приходилось писать программу под каждую операционную систему, которую необходимо поддерживать. Такая ситуация усложняла и удорожала жизнь всем настолько сильно, что был принят стандарт POSIX (Portable Operating System Interface). Сейчас это не один стандарт, а целое семейство стандартов, описывающих работу ключевых компонентов операционной системы и способа взаимодействия с ними из программ, написанных на СИ.

В те же времена начали активно развиваться сети и сначала появились прообразы интернета, а затем и сам интернет. Компьютеры становились меньше, а серверов — всё больше. В 1991 году студент Линус Торвальдс решил написать свою собственную свободную операционную систему, которая совместима со стандартом POSIX. Благодаря интернету, Линус смог собрать большое сообщество разработчиков, которые довольно быстро выпустили рабочую операционную систему под названием Linux и, самое главное, выложили в открытый доступ её исходный код. С тех пор популярность Linux для серверного окружения быстро росла.

Но сам Linux — это только ядро операционной системы, оно непригодно для использования без сопутствующих программ. К тому моменту, когда Linux начал свою разработку, уже существовал проект GNU, основанный Ричардом Столлманом, в рамках которого были разработаны и постоянно развивались свободные программы, составляющие основной инструментарий для разработки программ на языке Си: текстовый редактор Emacs, компилятор языка Си gcc, командная оболочка bash, библиотека важнейших функций для программ на Си libc. Все эти программы были написаны для операционных систем, похожих на Unix. Поэтому в них использовались стандартные для UNIX системные вызовы — POSIX. Благодаря этому Linux сразу начал поставляться с GNU утилитами, например, архиваторами или командной оболочкой bash, которую мы начнём изучать в этом курсе. Удивительный факт для людей, знакомых только с Windows, состоит в том, что Linux (как и Unix) не имеет графической оболочки. Это не значит, что её нельзя добавить. Можно! Более того, существует много разных опциональных графических оболочек.

History Of OS

Сейчас Linux не используется в чистом виде. Вместо этого конечные пользователи имеют дело с дистрибутивами. Дистрибутив, кроме Линукса и gnu программ, включает в себя утилиты для установки и настройки linux, поддержку регулярного обновления самого ядра и его окружения. В остальном внутри работает тот же Linux. Количество дистрибутивов огромно, но некоторые из них особо популярны, одни делаются энтузиастами, за другими стоят большие компании. Самыми популярными дистрибутивами являются Ubuntu и её разновидности: например, Ubuntu Server оптимизирован для работы на серверах, а Xubuntu — это разновидность Ubuntu с графической оболочкой, подходящей для маломощных компьютеров. Ubuntu полностью бесплатна.

Ubuntu

Windows, в отличие от Unix-подобных операционных систем, изначально создавалась для однопользовательского режима и никогда не пыталась быть совместимой с POSIX. Ей удалось захватить рынок персональных компьютеров, но на серверах она почти не встречается, даже несмотря на наличие Windows Server. Во-первых, она стоит денег, во-вторых, Windows не совместима с POSIX от слова "совсем". По этой причине Windows плохо подходит для веб-разработки. Хотя в ней есть командная строка, которая известна как cmd.exe, её функциональность оставляет желать лучшего, а опыт работы с ней никак не поможет при работе в Linux окружении, с которым всё равно придётся столкнуться.

Как и в случае изучения иностранных языков, я рекомендую осваивать Linux и его командную строку через полное погружение. Для этого надо установить Ubuntu основной системой или второй системой, если Windows вам нужен для работы, которая невозможна в Linux (например, Photoshop). На крайний случай, вы можете попробовать эмулировать POSIX среду, следуя нашему гайду. Если вы счастливый обладатель Mac, то можно ничего не делать. Операционная система macOS основана на Unix и является даже более POSIX совместимой, чем Linux. У неё прекрасная командная строка и инструментарий для работы.

В Windows 10 есть возможность установить Ubuntu как приложение из Магазина. После установки в системе появится почти полноценный Bash.

В дальнейшем все примеры в курсах, для которых нужна командая строка, показываются исключительно на POSIX совместимых операционных системах.

Самостоятельная работа

  1. Настройте POSIX совместимое рабочее окружение основываясь на https://guides.hexlet.io/development-on-windows/.

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

  1. Установка Ubuntu
  2. Книги по операционным системам

Для продолжения нужно перейти в курс и вступить в него.