«Путь Unix»
Соц сети
Разработка мобильных приложений

Наверное, не должно, но меня постоянно удивляет, как много мы живем в Интернете. Даже я обнаружил, что полностью загружаюсь, не используя ничего, кроме веб-браузера. С таким упором на веб-сервисы можно забыть оценить скромную операционную систему.

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

Большинство из нас имеет дело только с одним или, возможно, с обоими из двух семейств операционных систем: «Домашние окна» и «Домашние практически все остальное». Последний более известен как Unix.

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

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

Корень семейного древа

Если вы не слышали о Unix, это только потому, что не все его потомки имеют одинаковое сходство с ним - и определенно не имеют общего имени. MacOS - это отдаленное ответвление, которое, хотя и наименее похоже на своих предков, все же воплощает в себе достаточно элементарных черт Unix, чтобы проследить четкое происхождение.

Три основных ответвления BSD, особенно FreeBSD, наиболее близки к формуле Unix и продолжают составлять основу некоторых из самых важных компьютерных систем в мире. Значительная часть мировых серверов, компьютеризированная военная техника и консоли PlayStation - все это своего рода BSD под капотом.

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

Откуда взялась эта незаменимая ОС?

Чтобы преподать как можно более сжатый урок истории, Unix была создана собранием лучших умов информатики в Bell Labs в 1970 году. В своей задаче они ставили перед собой простые цели. Во-первых, они хотели ОС, которая могла бы бесперебойно работать на любом оборудовании, которое они могли найти, поскольку, по иронии судьбы, им было трудно найти какие-либо компьютеры для работы в Bell. Они также хотели, чтобы их ОС позволяла нескольким пользователям одновременно входить в систему и запускать программы, не сталкиваясь друг с другом. Наконец, они хотели, чтобы ОС была простой в администрировании и интуитивно понятной. После приобретения устройств в соседнем отделе, у которых было излишек, команда в конечном итоге создала Unix.

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

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

Организационная структура

Моя концепция Unix и сопровождающий ее общий подход к вычислениям - это то, что я называю «Unix Way». Это пересечение структуры Unix и философии Unix.

Чтобы начать со структурной стороны уравнения, давайте рассмотрим файловую систему. Дизайн представляет собой дерево, в котором каждый файл начинается с корня и разветвляется оттуда. Просто "дерево" перевернуто, корень вверху. Каждый файл имеет собственное отношение к «/» (обозначение косой черты, называемое «корнем»). Вся система содержится в найденных здесь каталогах. В каждом каталоге вы можете иметь практически неограниченное количество файлов или других каталогов, каждый из которых может иметь неограниченное количество собственных файлов и каталогов и так далее.

Что еще более важно, у каждого корневого каталога есть определенная цель. Я рассказал об этом некоторое время назад в статье о стандарте иерархии файловой системы , так что я не буду перефразировать все это здесь. Но чтобы дать несколько наглядных примеров, каталог / boot хранит все, что вашей системе необходимо для загрузки. В каталогах / bin, / sbin и / usr хранятся все ваши системные двоичные файлы (то, что запускает программы). Файлы конфигурации, которые могут изменить работу системных программ, находятся в / etc. Все ваши личные файлы, такие как документы и мультимедиа, находятся в / home (точнее, в каталоге вашей учетной записи в / home). Данные, которые постоянно меняются, а именно журналы, помещаются в / var.

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

Accusoft - Нажмите, чтобы узнать больше!

Все есть файл

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

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

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

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

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

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

Добродетели открытости

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

Во-первых, каждый может извлечь из этого урок. Фактически, Linux родился из желания изучать Unix и экспериментировать с ним. Линус Торвальдс хотел, чтобы копию Minix можно было изучить и модифицировать, но ее разработчики не захотели раздавать ее исходный код. В ответ Торвальдс просто создал собственное ядро ​​Unix, Linux. Позже он опубликовал ядро ​​в Интернете для всех, кто также хотел поиграть с Unix. Достаточно сказать, что определенный интерес к его творчеству был.

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

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

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

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

Школа мысли, и класс на заседании

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

Есть несколько формулировок философии Unix , поэтому я обрисую то, что я считаю ее основными принципами.

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

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

С помощью всего нескольких десятков инструментов пользователи могут:

  • Управляйте процессами
  • Манипулировать файлами и их содержимым независимо от типа файла
  • Настроить оборудование и сетевые устройства
  • Управление установленным ПО
  • Напишите и скомпилируйте код в рабочие двоичные файлы

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

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

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

По сути, все, что действительно делают компьютеры, это преобразование некоторого текста в другой текст (посредством двоичного кода, чтобы он мог понять текст). Таким образом, инструменты Unix должны позволять пользователям редактировать, заменять, форматировать и переориентировать текст без каких-либо проблем. В то же время текстовые инструменты Unix никогда не должны отказывать в детальном управлении пользователем.

При соблюдении вышеизложенных догм манипуляции с текстом разделены на отдельные инструменты. К ним относятся такие, как awk, sed, grep, sort, tr, uniq и множество других. И здесь каждый из них грозен сам по себе, но чрезвычайно силен в сочетании.

Истинная сила исходит изнутри

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

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

В то время, когда я писал о технологиях, я рассмотрел некоторые из этих инструментов, и, вероятно, со временем расскажу еще больше. А до тех пор, если вы нашли «Unix Way» столь же убедительным, как и я, я призываю вас найти его для себя. Уверяю вас, в Интернете нет недостатка в этом. Вот где я его взял.


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