Что такое операционная система UNIX — Журнал «Код»
В 1970-х годах в мире появился UNIX — операционная система, из которой растут ноги у большинства современных операционок. Для своего времени это был технологический прорыв, а заложенные там принципы мы используем до сих пор. В этой статье — что же там было такого революционного.
👍 Статья расширяет кругозор и помогает лучше понять информатику, но не имеет прикладной ценности. Если вам нужно что-то прикладное — прочитайте про размеры элементов в CSS.
Однозадачные компьютеры
Когда компьютеры только начали появляться, то работали они примерно так:
- Компьютер включался.
- Находил на носителе информации первую команду программы, которую нужно выполнить.
- Выполнял эту команду и переходил к следующей.
- Так происходило, пока в программе не заканчивались шаги или она сама не останавливалась. Тогда специальными командами оператор говорил компьютеру, где найти код для другой программы, или запускал первую программу заново.
Получается, что они работали в однозадачном режиме: работает только одна программа, а для запуска второй нужно остановить первую. По этому принципу до сих пор работают контроллеры в ваших микроволновках и холодильниках, а также контроллеры типа Arduino.
Сначала такой подход всех устраивал, потом стало неудобно.
Многозадачные компьютеры
Чтобы компьютер работал более эффективно, программисты написали код, который управляет работой всего компьютера — операционную систему.
Первые операционные системы были псевдомногозадачными. Это значит, что они не запускали одновременно несколько программ, а в цикле по очереди брали по одной команде из каждой программы и выполняли их. Так как переключение между командами из разных программ происходит быстро, то создаётся впечатление, что они работают одновременно.
Потом эту проблему тоже решили, и компьютер мог выполнять несколько программ действительно одновременно, чтобы они не мешали друг другу. Так появились многозадачные операционные системы.
Пример многозадачности — в статье о Python
Но в то время домашних компьютеров не было, а желающих поработать за университетским компьютером было много, поэтому все работали по очереди. Например, один лаборант работал на нём с часу до двух, второй — с двух до трёх, а научный руководитель работал за компьютером с трёх до шести.
При этом мощности компьютеров уже хватало на то, чтобы с ним мог работать второй пользователь, не замедляя работу первого. А вот операционных систем, которые бы так умели, — не было. И здесь появляется UNIX.
UNIX — многопользовательская операционная система
Создатели UNIX Кен Томпсон и Деннис Ритчи (который потом напишет язык C) решили проблему так:
- Есть один центральный компьютер — сервер, на котором выполняются все программы.
- Если кто-то хочет поработать за этим компьютером, то он подключается к нему не напрямую, а через терминал. Терминал — это монитор и клавиатура, которые соединены с сервером. Сам терминал ничего не считает, а только отправляет и получает результаты с сервера.
- Пользователь вводит свой логин и пароль и получает право запускать на сервере программы, которые ему нужны. При этом на сервере может быть запущено одновременно много программ от разных пользователей.
- Сервер помнит, кто на каком терминале зашёл под каким логином, поэтому результаты работы программы он отправляет в нужный терминал.
Со стороны пользователя кажется, что весь сервер в его распоряжении, но на самом деле сервером могут пользоваться одновременно десятки человек и не знать о том, что сервер выполняет что-то ещё. Сейчас это звучит обычно и примитивно, но для того времени это был прорыв.
Пример работы современных серверов — хостинги
Операционную систему, которая умеет всё это делать, назвали UNIX — сокращение от Uniplexed Information and Computing Service (единый информационно-вычислительный сервис). Изначально это называлось UNICS, но потом последние две буквы превратились в одну.
Что нового появилось в UNIX, чего до неё не было
Вот что впервые появилось именно в UNIX — и в виде идей, и в виде готового кода:
Файловая система с любой глубиной вложенности. Мы сейчас привыкли к папкам, в которых можно создавать другие папки, а в них третьи и так почти до бесконечности. Но до UNIX глубина вложенности была ограничена — нельзя было создать, например, папку внутри другой папки.
Модель работы с файлами. Пользователю раньше нужно было самому предусмотреть формат, размер и физическое размещение файлов на диске. В UNIX это всё взяла на себя операционная система.
Работа с программами напрямую. До UNIX настройку работы всех программ можно было сделать только в командной строке: запустил → компьютер что-то посчитал → показал результат. Если нужно изменить параметры, то это надо было делать через командную строку. В новой системе можно было менять настройки программ прямо внутри них — именно так и устроены сейчас все программы.
Зачем нужна командная строка в современных компьютерах
Вывод всего как текста. Раньше компьютеры работали с битами и выводили битовые последовательности. Их нужно было отдельно разбивать на нужные фрагменты или использовать встроенные программы для перевода битов в байты, а из них — в текст.
В UNIX единица вывода — это не бит, а байт. А в байт как раз умещается символ текста, а значит, с ним можно работать как с текстом: искать, склеивать с другими, отправлять в файл и так далее.
Регулярные выражения стали использоваться не только в профессиональных задачах, но и как основа для обработки вывода программ.
Читайте про регулярки в нашей статье →
Язык C. Этот язык появился в UNIX как замена языка B. Но B был интерпретируемым языком (как Python), и для запуска программ нужен был его интерпретатор. Язык C — компилируемый, а значит, готовые программы можно запускать на любом совместимом компьютере, даже если на нём нет компилятора C.
Чем отличается C от C++
Протокол TCP/IP. До UNIX этот протокол не был популярен, и компьютеры связывались друг с другом по более старому протоколу, который не имел столько возможностей. Теперь благодаря этой операционной системе весь мир пользуется интернетом, построенным на протоколе TCP/IP. Справедливости ради, этот протокол появился не в первой поставке UNIX.
Как устроен интернет: адреса
Как работают в UNIX
Для управления этой системой почти всегда используется командная строка. Есть, конечно, и графический интерфейс для некоторых систем и задач, но штука в том, что UNIX заточен на работу в серверах. А у серверов чаще всего нет ни клавиатуры, ни монитора — только сетевые соединения, через которые пользователи и соединяются с сервером, чтобы им управлять.
За что админы любят SSH
Интерфейс командной строки в FreeBSD — Unix-подобной операционной системеКак UNIX стал стандартом
С середины 1970-х годов идёт довольно мутная история, в которой компания
AT&T долго и небезуспешно пытается заработать на UNIX, а американские университеты и инженеры-любители делают свою открытую версию. Идёт конкуренция между стандартами, инструментами, поставками и протоколами.
Конкуренция выливается в то, что у UNIX появляется множество более совершенных потомков. Их мы называем Unix-подобными системами.
Можно сказать, что Unix-подобность — это такой набор правил, условностей и стандартов, которых должны придерживаться новые операционки, чтобы сохранять преемственность и некоторую совместимость. То есть такой ГОСТ для операционных систем. Операционка может быть и без ГОСТа, но с ним лучше.
Где сегодня используется UNIX
В чистом виде UNIX сейчас используется только на серверах и оборудовании связи. Всё дело в том, что для домашнего использования эта система подходит слабо: у неё нет встроенного графического интерфейса и все операции и программы нужно настраивать вручную.
Объясни мне: как устроен интернет
Зато если нужна гарантированная надёжность, производительность и масштабируемость, особенно при сетевых нагрузках, — используют UNIX или производные от неё. Про них сейчас тоже расскажем.
Тысячи пользователей онлайн: как работать, когда у тебя высоконагруженный проект
UNIX-подобные системы
На основе оригинальных версий Юникса появилось много разных операционных систем: BSD, Solaris, HP-UX и даже MacOS, который сделан на основе BSD версии 4. 4. Идеи, которые были заложены 50 лет назад, оказались настолько рабочими, что применяются до сих пор.
А ещё есть Linux и его производные — RedHat, Calculate, Ubuntu и ещё сотня дистрибутивов. Многие думают, что Линукс — это развитие Юникса, но на самом деле это полностью самостоятельное и независимое от него семейство операционных систем, хотя и слова похожие. Про Линукс обязательно расскажем в следующей статье.
Текст:
Михаил Полянин
Редактор:
Максим Ильяхов
Художник:
Даня Берковский
Корректор:
Ирина Михеева
Вёрстка:
Кирилл Климентьев
Соцсети:
Олег Вешкурцев
Общая характеристика ОС семейства Unix. Основные компоненты (структура) Unix-системы. Виды программ (процессов) в Unix.
Unix — это семейство операционных систем (ОС), обладающих сходной архитектурой и интерфесом с пользователем. Unix как явление зародилось в начале 70-х годов и развивается до сих пор. Основные современные варианты UNIX: Linux, BSD (FreeBSD, NetBSD, OpenBSD), AIX, HPUX, Solaris, SCO. Важнейшие современные стандарты, обеспечивающие целостность семейства UNIX:
- POSIX — Portable Operating System Interface
- ANSI C (c89 и с99)
Классическая архитектура UNIX двухуровневая:
- Ядро — управляет ресурсами компьютера и предлагает программам базовый набор услуг (системные вызовы).
- Системные программы (управление сетью, терминалами, печатью), прикладные программы (редакторы, утилиты, компиляторы и т.д.).
Функции ядра:
- инициализация системы — загрузка и запуск ОС
- управление процессами и потоками
- управление памятью — отображение адресного пространства на физическую память, совместное использование памяти процессами
- управление файлами — реализует понятие файловой системы, дерева каталогов и файлов
- обмен данными между процессами выполняющимися внутри одного компьютера, в разных узлах сетей передачи данных, а также между процессами и драйверами внешних устройств
- программный интерфейс (API) — обеспечивает доступ к возможностям ядра со стороны процессов пользователя через системные вызовы, оформленных в виде библиотеки функций на Си.
Ядро изолирует программы пользователя от аппаратуры. Все части системы, не считая небольшой части ядра, полностью независимы от архитектуры компьютера и написаны на Си. Системные вызовы — это уровень, скрывающий особенности конкретного механизма выполнения на уровне аппаратуры от программ пользователя. Для программиста, системный вызов — это функция (определенная на Си), которую он вызывает в своей программе. Все низкоуровневые операции осуществляются через системные вызовы.
Подсистемы ядра:
- Файловая подсистема. Обеспечивает унифицированный доступ к файлам:
- контроль прав доступа к файлу;
- чтение/запись файла;
- размещение и удаление файла;
- перенаправление запросов к периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.
- Подсистема управления процессами. Запущенная на выполнение программа порождает один или несколько процессов (задач). Подсистема контролирует:
- создание и удаление процессов
- распределение системных ресурсов (памяти, вычислительных ресурсов) между процессами
- синхронизация процессов
- межпроцессное взаимодействие
Специальная задача ядра планировщик процессов разрешает конфликты процессов в конкуренции за ресурсы.
- Подсистема ввода/вывода. Выполняет запросы файловой системы и подсистемы управления процессами для доступа к периферийным устройствам (дискам, лентам, терминалам). Обеспечивает буферизацию данных и взаимодействует с драйверами устройств.
Типы процессов
Системные процессы. Системные процессы являются частью ядра и всегда расположены в оперативной памяти. Системные процессы не имеют соответствующих им программ в виде исполняемых файлов и запускаются особым образом при инициализации ядра системы. Выполняемые инструкции и данные этих процессов находятся в ядре системы, таким образом они могут вызывать функции и обращаться к данным, недоступным для остальных процессов. Системными процессами являются: shed (диспетчер свопинга), vhand (диспетчер страничного замещения), bdfflush (диспетчер буферного кэша) и kmadaemon (диспетчер памяти ядра). К системным процессам следует отнести init, являющийся прародителем всех остальных процессов в UNIX.
Хотя init не является частью ядра, и его запуск происходит из исполняемого файла (/etc/init), его работа жизненно важна для функционирования всей системы в целом.Демоны. Демоны — это неинтерактивные процессы, которые запускаются обычным образом — путем загрузки в память соответствующих им программ (исполняемых файлов), и выполняются в фоновом режиме. Обычно демоны запускаются при инициализации системы (но после инициализации ядра,) и обеспечивают работу различных подсистем UNIX: системы терминального доступа, системы печати, системы сетевого доступа и сетевых услуг и т. п. Демоны не связаны ни с одним пользовательским сеансом работы и не могут непосредственно управляться пользователем. Большую часть времени демоны ожидают пока тот или иной процесс запросит определенную услугу, например, доступ к файловому архиву или печать документа.
Прикладные процессы. К прикладным процессам относятся все остальные процессы, выполняющиеся в системе. Как правило, это процессы, порожденные в рамках пользовательского сеанса работы. С такими процессами вы будете сталкиваться чаще всего. Например, запуск команды ls(l) породит соответствующий процесс этого типа. Важнейшим пользовательским процессом является основной командный интерпретатор (login shell), который обеспечивает вашу работу в UNIX. Он запускается сразу же после вашей регистрации в системе, а завершение работы login shell приводит к отключению от системы.
Пользовательские процессы могут выполняться как в интерактивном, так и в фоновом режиме, но в любом случае время их жизни (и выполнения) ограничено сеансом работы пользователя. При выходе из системы все пользовательские процессы будут уничтожены. Интерактивные процессы монопольно владеют терминалом, и пока такой процесс не завершит свое выполнение, пользователь не сможет работать другими приложениями. Вы сможете работать с другими приложениями, если в функции интерактивного процесса входит запуск на выполнение других программ. Примером такой задачи является командный интерпретатор shell, который считывает пользовательский ввод и запускает соответствующие задачи.
Что такое UNIX? — Сеть без проблем
Тремя наиболее популярными операционными системами в мире являются Windows, Mac и Linux. Эти три операционные системы получают всю прессу, две из которых больше, чем вторая, и, вероятно, единственные, о которых вы слышали.
Что если я скажу вам, что две из трех самых популярных операционных систем на самом деле вобрали в себя основные принципы чего-то, называемого UNIX? Эти принципы являются основными понятиями системы с разделением времени, позволяющей нескольким пользователям одновременно получать доступ к одному мэйнфрейму.
Разработанная в 1970 году и разработанная как небольшая гибкая система, используемая исключительно программистами, UNIX быстро стала ведущей операционной системой для рабочих станций. Но сколько вы действительно знаете о UNIX?
UNIX и UNIX-подобные операционные системы — самые мощные и популярные многопользовательские и многозадачные операционные системы на рынке. Несколько лет UNIX разрабатывался для разных машин, включая современные системы POSIX, такие как Linux, его многочисленные варианты и Mac OS. Трудно поверить, что что-то такое могущественное может иметь такое скромное начало.
Разработанная в Bell Telephone Laboratories, или Bell Labs, несколькими программистами, UNIX была написана на языке программирования Си. Это позволило установить его практически на любом компьютере с компилятором Си. Одно это дало UNIX естественную мобильность, гибкость и позволяло использовать ее в качестве довольно мощного варианта в качестве операционной системы.
Помимо того, что Bell Labs была недорогой, она распространяла операционную систему в ее исходной языковой форме, что позволяло любому, кто в нее попал, модифицировать и настраивать ее для своих собственных целей. Это породило десятки различных версий UNIX на протяжении десятилетия, работающих на разных сайтах.
Bell Labs в конечном итоге распалась в 1984 году. Тем не менее, они начали продавать UNIX в попытке определить стандартную версию системы. Они разработали то, что многие считали слишком ограничительным, одним из них был Ричард Столлман, ответственный за проект GNU. Проект GNU является основой Linux, которую мы знаем сегодня, поскольку он состоит из ядра Linux, а не ядра UNIX.
Тем не менее, Linux был вдохновлен MINIX, которая была UNIX-подобной операционной системой, созданной для образовательных целей. Это привело к эффекту домино для большинства операционных систем, доступных сегодня. GNU / Linux является производной от UNIX, и, в свою очередь, многие современные операционные системы, включая Android, Chrome OS, Steam OS и огромное количество встроенных операционных систем для устройств, основаны на Linux.
Стандарт UNIX
Стандарт действительно появился, но не основанный ни на чем AT & T. Сегодня торговая марка UNIX принадлежит The Open Group . То же самое можно сказать и о Единой спецификации UNIX. Любая операционная система, использующая UNIX, должна была быть сертифицирована The Open Group и соответствовать Единой спецификации UNIX.
Как проиллюстрировано The Open Group:
Для тех, кто заинтересован в посещении ссылки на изображение, вот она.
POSIX, как упоминалось ранее, представляет собой семейство стандартов, определенных Институтом инженеров по электротехнике и электронике (IEEE). Они служат для уточнения и унификации интерфейсов прикладного программирования, предоставляемых UNIX-подобными операционными системами.
Это делает это так, когда вы пишете программу, основанную на стандартах POSIX, переносимость и функциональность упрощаются среди большого семейства производных UNIX, таких как Linux и Mac OS. Использование API или кода, не стандартизированного как часть POSIX для UNIX-подобных операционных систем, усложнит переносимость на другие UNIX-подобные системы.
Что такое программы, системы и подсистемы UNIX?
Команды UNIX выполняются в интерфейсе командной строки, предоставляемом оболочкой. Эта оболочка является программой, которая будет читать введенные команды и либо выполнять их самостоятельно, либо передавать их ядру.
«Ядро ядра» — это то, вокруг чего построены системы UNIX, которые управляют системой и другими процессами. Это ядро операционной системы UNIX, которое напрямую взаимодействует с базовым оборудованием для предоставления набора стандартных сервисов. Подсистемы ядра могут включать управление процессами, управление файлами, управление памятью, управление сетью и другие.
Программы UNIX предназначены для разработки нескольких основных принципов, в том числе таких требований, как единственная цель, совместимость и работа со стандартизованным текстовым интерфейсом.
Когда дело доходит до функций UNIX, вот список нескольких выдающихся:
- Позволяет использовать одни и те же ресурсы для разных пользователей в одной системе.
- Обеспечивает многозадачность, при которой каждый пользователь может выполнять много процессов одновременно.
- Первая операционная система написана на языке высокого уровня, что позволяет легко переносить ее на другие машины с минимальными адаптациями.
- Иерархическая файловая структура, облегчающая доступ и обслуживание данных.
- Встроенные сетевые функции для легкого обмена информацией между пользователями.
Почему UNIX имеет значение
Помимо Windows и систем на базе Windows, большинство операционных систем, которые вы увидите, имеют философию, основанную на UNIX. Если вы посмотрите на терминал Mac OS X или файловую систему, вы заметите поразительное сходство с Linux. Оба из которых полностью отличаются от Windows. Это потому, что Linux и Mac OS являются UNIX-подобными системами.
Понимание этого поможет вам также понять, насколько важен и был UNIX. Одной из основных философий UNIX, используемых сегодня, является создание небольших модульных утилит, позволяющих выполнять особые задачи с исключительным уровнем эффективности. Знание терминала Mac OS также познакомит вас с терминалом Linux и наоборот. Это UNIX в двух словах.
UNIX-подобные системы полагаются на единую файловую систему для взаимодействия программ друг с другом. Windows-подобные системы полагаются на DOS. Это причина того, что только Windows-подобные системы имеют буквы дисков. Все остальные операционные системы имеют его так, что каждый файл в системе является частью единой иерархии каталогов. Опять же, все благодаря философии UNIX.
UNIX можно увидеть в архитектуре операционных систем, таких как BSD, Linux и Mac OS, полностью задуманной. Можно сказать, что без UNIX не было бы Mac OS, и вполне возможно, что то же самое можно сказать и о ее конкурентах, включая Windows.
Мы явно гиперболичны здесь. Тем не менее, вам придется признать, что UNIX сыграл важную роль в разработке каждой операционной системы, используемой сегодня. Если это не иллюстрирует важность UNIX и его философии, я не уверен, что будет.
Насколько публикация полезна?
Нажмите на звезду, чтобы оценить!
Средняя оценка / 5. Количество оценок:
Оценок пока нет. Поставьте оценку первым.
Статьи по теме:
Изучение операционной системы Unix, 5-е издание [Книга]
Предисловие
Семейство операционных систем Unix
Операционная система (или «ОС»)
представляет собой набор программ, управляющих компьютером. Он управляет как оборудованием
Некоторые компьютеры имеют однопользовательская ОС, что означает, что только один человек может пользоваться компьютером одновременно. Многие старые операционные системы (такие как MS-DOS) также могут одновременно выполнять только одно задание. Но почти любой компьютер может сделать намного больше, если у него есть многопользовательская, многозадачная операционная система, например Unix. Эти мощные операционные системы позволяют многим людям одновременно пользоваться компьютером. и пусть каждый пользователь запускает несколько заданий одновременно.
Unix был изобретен более 30 лет назад для научных и профессиональные пользователи, которым нужна очень мощная и гибкая ОС.
С тех пор он получил значительное развитие. Поскольку Unix был разработан для экспертов, поначалу он может быть немного ошеломляющим. Но после того, как вы освоите основы (из этой книги!), вы начнете ценить некоторые из причин использования Unix:Он поставляется с огромным количеством мощных прикладных программ. Вы можете получить многие другие бесплатно в Интернете. (Утилиты GNU, доступные на сайте Free Software Foundation, очень популярны.) Таким образом, вы можете сделать гораздо больше за гораздо меньше более низкая стоимость.
Не только приложения часто бесплатны, но и некоторые Версии Unix также бесплатны. Линукс — хороший пример. Как и бесплатные приложения, большинство бесплатных версий Unix имеют превосходное качество. Их поддерживают программисты-добровольцы, которым нужна мощная ОС и разочарованы медленной и полной ошибок разработкой ОС на каком-то крупном софтверные компании.
В отличие от операционных систем, таких как Microsoft Windows и MacOS, которые предназначены для на определенных типах аппаратного обеспечения, Unix работает практически на любом, от крошечных встроенных систем до гигантских суперкомпьютеров. Прочитав эту книгу, вы будете готовы использовать многие виды компьютеров без изучения новой ОС для каждого из них.
В общем, Unix (особенно без оконного system) менее требовательна к ресурсам, чем другие основные операционные системы. Например, Linux будет успешно работать на старой системе с процессором x386. микропроцессор и позволить нескольким пользователям совместно использовать один и тот же компьютер. (Не пытайтесь использовать последние версии Microsoft Windows на системе, которой больше нескольких лет!) Если вам нужна оконная система, Unix позволяет выбирать из современных многофункциональных интерфейсов, а также от простых, которые требуют много меньшая мощность системы. Любой, у кого ограниченные ресурсы — образовательные учреждения, организации в развивающихся странах и т. д. могут использовать Unix для делать больше с меньшими затратами.
Большая часть развития Интернета была сделана на Unix системы. Многие интернет-сайты и провайдеры интернет-услуг используют Unix, потому что это так гибко и недорого. С мощным аппаратным обеспечением Unix действительно сияет.
Версии Unix
Существует несколько версий Unix. Еще несколько лет назад существовало две основные версии: линейка Unix выпуски, запущенные в AT&T (последний выпуск — System V Release 4), и еще один из Калифорнийского университета в Беркли (англ. последняя версия была 4.4BSD). Некоторые прошлые и настоящие коммерческие версии включают SunOS, Solaris, SCO Unix, AIX, HP/UX и ULTRIX. Бесплатные версии включают Linux, NetBSD и FreeBSD. (FreeBSD основана на 4.4BSD-Lite).
Многие версии Unix, включая System V Release 4, объединяются ранее. AT&T выпускает с функциями BSD. Стандарт POSIX для Unix-подобных операционных систем определяет единый интерфейс к Unix. Хотя расширенные функции различаются в зависимости от системы, вы должны иметь возможность используйте это вводное руководство в любой системе.
Когда мы пишем «Unix» в этой книге, мы имеем в виду «Unix и его версии». если мы специально не упомянем конкретную версию.
Интерфейсы для Unix
Unix можно использовать так, как это было изначально, на терминалы, похожие на пишущие машинки, из приглашения оболочки в командной строке. (См. Раздел P.6.2 далее в этой главе.) Большинство версий Unix также работают с оконными системами (иногда называемыми графические пользовательские интерфейсы или GUI). Это позволяет каждому пользователю иметь один экран с несколькими окна, включая «терминальные» окна, которые ведут себя как исходные Юникс интерфейс. (Глава 2 объясняет основы оконной системы.)
Хотя оконная система позволяет вам использовать Unix без ввода текста в командной строки, мы потратим большую часть времени на эту традиционную командную строку интерфейс к Unix. Почему?
Каждая система Unix имеет интерфейс командной строки. Если вы умеете пользоваться командной строкой, вы всегда сможете использовать систему.
Если вы станете более продвинутым пользователем Unix, вы обнаружите, что команда line на самом деле гораздо более гибкий, чем оконный интерфейс. Программы Unix предназначены для использования вместе с командой линии — в качестве «кирпичиков» — в почти бесконечном числе комбинаций, чтобы сделать бесконечное количество задач. Ни одна оконная система, которую мы видели (пока!) не имеет такой огромной мощности.
Вы можете запускать и закрывать оконные программы из командной строки, но оконные программы обычно не могут влиять на командную строку или программы, которые вы запускаете из одного.
Как только вы научитесь пользоваться командной строкой, вы сможете использовать те же методы написания сценариев . Эти маленькие (или большие!) программы автоматизируют работу, которую вы бы делать вручную и многократно с оконной системой (если только вы не понимаете, как программировать оконную систему, которая обычно это более сложная работа). См. раздел 8.3 в главе 8. для краткого введения в сценарии.
В целом, текстовые интерфейсы намного проще, чем графические. для пользователей с нарушениями зрения и слуха.
Мы не утверждаем, что интерфейс командной строки подходит для всех ситуация. Например, используя Интернет с его графикой и ссылки — обычно проще с веб-браузером с графическим интерфейсом. Но командная строка — это основной способ использования Unix. Понимание этого позволит вам работать в любой системе Unix, с окнами или без.
Содержание этого справочника
Эта книга учит основные системные служебные команды, которые помогут вам начать работу с Unix. Вместо того, чтобы загружать вас множеством деталей, мы хотим, чтобы вы были освоиться в среде Unix как можно скорее. Таким образом, мы рассматриваем наиболее полезные функции команды, а не описываем ее. все его варианты подробно.
Мы также предполагаем, что ваш компьютер работает правильно; у кого-то есть запустил, знает процедуру отключения питания, и знает, как выполнять обслуживание системы. Другими словами, мы не рассматриваем системное администрирование Unix.
Пользователи Unix могут выбирать между множеством различных пользовательских интерфейсы — оболочки и оконные системы. В наших примерах показана оболочка bash . и оконные среды GNOME и KDE. Мы выбрали их, потому что они популярны и служат хорошими примерами. не потому, что мы думаем, что они всегда «лучшие». Если вы выполняете дополнительную работу или настраиваете системы Unix для другим пользователям рекомендуем ознакомиться с разнообразными оболочками и оконные системы и выбор лучших для ваших нужд. Принципы, изложенные в этой книге, должны помочь вам использовать любой Конфигурация Юникс.
Что нового в пятом издании
Unix продолжает развиваться, и эта книга меняется вместе с ним. Хотя большинство советов в этой книге работают на всех системах Unix, старые и новые, с 1997 года произошли изменения, которые оправдывают пятую версия. На протяжении многих лет читатели просили нас включить темы, которые не могли быть всего в нескольких абзацах — например, текстовый редактор. Мы решили немного расширить эту небольшую книгу, добавив многостраничные обзоры популярных инструментов Unix: текстовый редактор Pico, программа электронной почты Pine, веб-браузер Lynx и две программы интерактивного чата. Сеть встречается гораздо чаще, поэтому мы добавили новую главу о ней. В наших примерах работы с окнами показаны более новые оконные системы, и вы найдете разделы, посвященные редактированию командной строки. Появился новый глоссарий с определениями общеупотребительных терминов, а также Индекс также был расширен. Наконец, мы внесли изменения, предложенные нашими читателями.
Формат
В следующих разделах описываются условные обозначения, используемые в данном руководстве.
Команды
Сначала мы вводим каждое основное понятие, а затем разбиваем его на задачи, ориентированные разделы. В каждом разделе показана лучшая команда для выполнения задачи, а также поясняется, что она делает. делает и показывает синтаксис (как собрать командную строку). Синтаксис задается следующим образом:
п.м. имя файла
Команды отображаются шрифтом жирным шрифтом . (в данном примере rm ). Вы должны ввести команду точно так, как она представлена в примере. Переменные части (здесь имя файла ) появятся в курсив шрифт; вы должны указать свое собственное значение. Чтобы ввести эту команду, введите rm затем пробел и имя файла, который который хотите удалить, затем нажмите клавишу RETURN. (На вашей клавиатуре может быть клавиша с надписью ENTER или стрела с прямоугольным древком вместо клавиша ВОЗВРАТ.) В этой книге термин введите означает введите команду и нажмите RETURN, чтобы запустить ее.
Примеры
Примеры показывают, что должно происходить при вводе команды. В некоторых примерах предполагается, что вы создали определенные файлы. Если вы этого не сделали, вы можете не получить показанных результатов.
Для примера мы используем символы в стиле пишущей машинки.
Элементы, которые вы вводите, чтобы попробовать пример: полужирный шрифт
. Системные сообщения и ответы представляют собой обычный текст
.
Вот пример:
$ дата
Вт 9 окт 13:39:24 MST 2001
$
Символ «$» — это приглашение оболочки (системы). Чтобы сделать этот пример, вы должны ввести дату а затем нажмите ВОЗВРАТ. Команда date отвечает: «Вт, 9 окт. 13:39:24 MST 2001», а затем возвращает вас к подсказке.
Текст, который вы видите в примерах, может не совпадать с тем, что вы видите на экране. В разных версиях Unix есть команды с разными выводами. Иногда мы редактируем образцы экрана, чтобы убрать отвлекающий текст. или сделать их подходящими для страницы.
Список проблем
В некоторые разделы мы включили контрольный список проблем. Вы можете пропустить эти части и вернуться к ним, если у вас возникли проблемы.
Упражнения
В некоторых разделах есть упражнения для закрепления прочитанного текста. Выполняйте упражнения, но не бойтесь экспериментировать самостоятельно.
Упражнения состоят из двух столбцов. В левой колонке указано, что нужно сделать, а в правой колонке указано, как это сделать. Например, строка в Раздел 1.2.1, ближе к концу В главе 1 показано следующее:
Чтобы выполнить упражнение, введите слово дата на клавиатуре, а затем нажмите клавишу ВОЗВРАТ. В левой колонке указано, что произойдет.
После того, как вы попробуете команды, у вас будет лучшее представление о тех, которые вы хотите узнать больше о. Затем вы можете получить дополнительную информацию из источника в Раздел 8.1, в Главе 8.
Комментарии и вопросы
Комментарии и вопросы, касающиеся этой книги, направляйте издателю:
O’Reilly & Associates, Inc.
1005 Highway Highway Gravenstein North
Себастополь, CA 95472
(800) 998-9938 (в Соединенных Штатах или Канаде)
(707) 829-0515 (International или Local)
(707) 829-0515 (International или Local)
(707) 829-0515 (International или Local)
(707) 829-0515 (International или Local)
(707) 829-0515 (International или Loc 707) 829-0104 (факс)
Чтобы задать технические вопросы или прокомментировать книгу, отправьте электронное письмо по адресу:
У нас есть веб-сайт книги, где перечислены примеры, исправления и любые планы относительно будущих изданий. Вы можете получить доступ к этому сайту по адресу:
Для получения дополнительной информации о книгах, конференциях, ресурсных центрах и сети O’Reilly посетите веб-сайт O’Reilly по адресу:
Если вы пишете нам, пожалуйста, укажите информацию о вашем Unix среда и компьютер, которым вы пользуетесь. Вы получите нашу благодарность, а также благодарность от будущих читателей этого справочник.
Благодарности
Х. Милтон Пик рецензировал первый вариант этого издания. Джефф Кавски выступил в роли технического редактора. Крис Стоун из O’Reilly & Associates, Inc. предоставил информацию о Mac OS X и сделал обзор раздела о ней. И Тим, спасибо от Джерри за все ваши советы и поддержку во время моего 12 лет писал для O’Reilly.
О Unix
О UnixНа этой странице:
- Обзор
- В IU
- Ключевые компоненты
Обзор
Unix (официально UNIX) является зарегистрированным товарным знаком The Open Group, относящимся к семейству компьютерных операционных систем и инструментов, соответствующих базовой спецификации Open Group, выпуск 7 (также известной как POSIX. 1-2008 или IEEE Std 1003.1 — 2008).
Первоначальная операционная система Unix была разработана в исследовательском центре AT&T Bell Labs в 1969. Он был разработан с использованием языка программирования высокого уровня (C) вместо языка ассемблера для конкретной платформы, что обеспечивает его переносимость на несколько компьютерных платформ. Unix также разрабатывался как автономная программная система, включающая операционную систему, среду разработки, утилиты, документацию и изменяемый исходный код. Эти ключевые факторы привели к широкому использованию и дальнейшему развитию в коммерческих условиях и помогли Unix и его вариантам стать важным инструментом обучения и обучения, используемым в академических условиях.
В 1970-х и 1980-х годах AT&T лицензировала Unix сторонним поставщикам, что привело к разработке нескольких вариантов Unix, включая Berkeley Unix, HP-UX, AIX и Microsoft Xenix. В 1993 году AT&T продала права на операционную систему Unix компании Novell, Inc., которая через несколько лет продала торговую марку Unix консорциуму, который впоследствии стал The Open Group.
Чтобы использовать торговую марку Unix, поставщик операционной системы должен уплачивать The Open Group лицензионный сбор и ежегодные отчисления за торговую марку. Официально лицензированные операционные системы Unix (и их поставщики) включают macOS (Apple), Solaris (Oracle), AIX (IBM), IRIX (SGI) и HP-UX (Hewlett-Packard).
Операционные системы, которые ведут себя как системы Unix и предоставляют аналогичные утилиты, но не соответствуют спецификации Unix или не лицензированы The Open Group, широко известны как Unix-подобные системы. К ним относятся широкий спектр дистрибутивов Linux (например, Red Hat Enterprise Linux, Ubuntu и CentOS) и несколько потомков операционной системы Berkeley Software Distribution (например, FreeBSD, OpenBSD и NetBSD).
Проприетарные операционные системы Unix (и подобные Unix варианты) работают на самых разных цифровых архитектурах и обычно используются на веб-серверах, мейнфреймах и суперкомпьютерах. В последние годы смартфоны, планшеты и персональные компьютеры с версиями или вариантами Unix становятся все более популярными.
В IU
В Университете Индианы на исследовательском суперкомпьютере Big Red 3 работает проприетарный вариант Linux под названием Cray Linux Environment (CLE). Остальные исследовательские суперкомпьютеры работают под управлением коммерческого дистрибутива Linux под названием Red Hat Enterprise Linux (RHEL).
В Университете Индианы для личной или ведомственной поддержки систем Linux или Unix см. раздел Получение справки по Linux или Unix в IU.
Ключевые компоненты
Патентованные системы Unix и их варианты характеризуются несколькими важными компонентами:
- Ядро: Ядро — это главная управляющая программа операционной системы, отвечающая за управление памятью, системные вызовы и другие низкоуровневые функции, общие для большинства программ, и предоставляющая драйверы для управления оборудованием.
- Оболочка: Оболочка — это интерактивная программа, обеспечивающая интерфейс между пользователем и ядром. Оболочка интерпретирует команды, введенные пользователем или предоставленные сценарием оболочки, и передает их ядру для выполнения. Оболочки, доступные для использования в Unix и Unix-подобных системах, включают
ш
(оболочка Bourne),баш
(оболочка Bourne-again),csh
(оболочка C),tcsh
(оболочка TENEX C),кш
(оболочка Korn),ЗШ
(оболочка Z). - Файловая система: Unix и Unix-подобные операционные системы используют иерархическую (перевернутую древовидную) структуру каталогов с корневым каталогом (
/
) наверху. Стандартная файловая система имеет, среди прочего, следующие каталоги:Каталог Описание /
Корневой каталог, где начинается все дерево /ящик
Содержит основные исполняемые файлы (двоичные файлы), обычно используемые всеми пользователями системы (например, chmod
,cp
,mv
,grep
иtar
)/и т. д.
Содержит локальные файлы конфигурации, подкаталоги, содержащие файлы конфигурации для больших программных пакетов (таких как оконная система X11) /библиотека
Содержит общие библиотеки, необходимые для загрузки системы и выполнения команд в корневой файловой системе /tmp
Локальное свободное пространство для хранения временных файлов, которые могут быть удалены без уведомления /usr/bin
Основной каталог для большинства исполняемых файлов, используемых обычными пользователями в системе (например, emacs
,make
,scp
,sftp
,ssh
иyum
2) 2)USR/библиотека
Содержит статические и динамические библиотеки, несколько исполняемых файлов, которые обычно не вызываются напрямую, и подкаталоги для сложных программ Дополнительные файловые системы на устройствах хранения с прямым или сетевым подключением могут быть смонтированы как ответвления от корневого каталога.
Например, в IU сетевое запоминающее устройство обеспечивает файловую систему для пространства домашнего каталога на исследовательских суперкомпьютерах. Файловая система монтируется из корневого каталога каждой системы по адресу
/N
, при этом пространство домашнего каталога каждого пользователя находится по адресу/N/u/
, а файлы, связанные с программным обеспечением, — по адресу/N/soft 9.0153 .
Чтобы определить, какие файловые системы смонтированы в Unix или Unix-подобной системе, используйте команду
mount
. - Среда разработки: Большинство Unix и Unix-подобных систем включают инструменты и библиотеки для написания, компиляции и отладки программ на языках C, C++ и Fortran.
Исследовательские суперкомпьютеры IU предоставляют различные наборы компиляторов для использования с кодами C, C++ и Fortran; см.:
- Компиляция программ на Big Red 3 в IU
- Компиляция программ по карбонатам в IU
- Компиляция программ на Quartz на IU
- Команды: Unix и Unix-подобные системы включают большое количество стандартных утилит для редактирования текста, написания, компиляции и управления программами, обработки, управления пользовательской средой и получения информации о системе и ее пользователях. Многие команды позволяют аргументам (известным как параметры или флаги) изменять их поведение по умолчанию. Пользователи вводят команды и аргументы в командной строке оболочки, а затем оболочка интерпретирует их и передает ядру для выполнения. Краткое введение в команды Unix см. в разделе Введение в команды Unix.
- Документация: страницы руководства и файлы
info
содержат полезную информацию об использовании большинства команд, системных вызовов и библиотек, включенных в систему.
Связанные документы
Используйте команду man Unix для чтения справочных страниц
Это документ агат в базе знаний.
Последнее изменение: 17.05.2022 15:40:17 .
Система AT&T V | БТОС BSD/ОС - Berkeley Software Design, Inc. CLIX - Intergraph Corp. Последовательный CTIX DC/OSx — Пирамида ДЕЛЬФИ DG/UX — Общие данные Цифровой UNIX (OSF1), Домен/ОС DSR/NX Дайникс - секвент ESIX - Системы Esix FreeBSD — Организация FreeBSD FreeBSD/Arm — 4.4 BSD для RISC-платформ Acorn HP-UX — Hewlett Packard (HP) CX/UX Харриса, Helios, HEP-UPX, Херд — ГНУ ИДРИС Интерактивный UNIX - Sun Microsystems Irix - Силиконовая графика (SGI) линукс LynxOS — Lynx Real-Time System Inc. MachTen - Тенон Интерсистемс Миникс Моторола UNIX R40, Моторола UNIX V/88 MV/UX — Общие данные NCR SVR4 MP-RAS - Корпорация NCR NetBSD Следующий NonStop-UX - Тандем OpenBSD ОС/МП POSIX, PTX (последовательный) QNX - QNX Software Systems Ltd.