Чем отличается Unix от Linux
Если вы недавно начали изучать Linux и осваиваться в этой огромной вселенной, то наверное, часто встречали термин Unix. Звучит очень похоже на Linux, но что же оно значит? Наверное, вам интересно чем отличается unix от linux.
Ответ на этот вопрос зависит от того что вы понимаете под этими словами. Ведь каждое из них может интерпретироваться по-разному. В этой статье мы рассмотрим упрощенную историю Linux и Unix чтобы помочь вам понять что это и как они между собой связаны.
Как всегда вы можете задавать вопросы или добавить дополнительную информацию в комментариях.
Краткая история Unix и Linux
Свою историю Unix начал в конце 1960-х и в начале 1970-х в научно-исследовательских вычислительных лабораториях AT&T Bell Labs в Соединенных штатах. Вместе с MIT и General Electric исследовательская лаборатория Bell Labs начала разработку новой операционной системы.
Некоторые исследователи были недовольны ходом разработки этой операционной системы. Они отошли от работы над основным проектом и начали разрабатывать собственную ОС.
В 1970 году эта система получила название Unix, а два года спустя она была полностью переписана на языке программирования Си.
Это позволило распространять и портировать Unix на различные устройства и вычислительные платформы.
Так как Unix продолжал развиваться, AT&T начал продавать лицензии на использование ее в университетах, а также в коммерческих целях.
Это означало что не все могли, как сейчас, свободно изменять и распространять код операционной системы Unix.
Вскоре начало появляться много редакций и вариантов операционной системы Unix, предназначенной для решения различных задач. Самой известной из них была BSD.
Linux похож на Unix по функциональности и возможностям, но не кодовой базой. Эта операционная система была собрана из двух проектов. Первый — проект GNU, разработанный Ричардом Столлманом в 1983, второй — ядро Linux, написанное Линусом Торвальдсом в 1991.
Целью проекта GNU было создать систему похожую на Unix, но не зависящую от него.
Иными словами, операционную систему, не содержащую код Unix, которая могла бы свободно распространяться и модифицироваться без ограничений, как свободное программное обеспечение.
Так как свободное ядро Linux не могло работать само по себе, проект GNU объединился с ядром Linux, и так родилась операционная система Linux.
Конструировался Linux под влиянием системы Minix, потомка Unix, но весь код был написан с нуля. В отличие от Unix, который использовался на серверах и больших мэйнфреймах различных предприятий, Linux был рассчитан для использования на домашнем компьютере с более простым аппаратным обеспечением.
На сегодняшний день Linux работает на огромном количестве платформ, большем чем любая другая ОС, это сервера, встраиваемые системы, микрокомпьютеры, модемы и даже мобильные телефоны. Теперь будет более подробно рассмотрена разница linux и unix.
Что такое Unix
Термин Unix может относиться к таким понятиям:
- Оригинальная операционная система, разработанная в AT&T Bell Labs, на основе которой развиваются другие ОС.
- Товарный знак, написано заглавными буквами. UNIX принадлежит The Open Group, которая разработала набор стандартов для операционных систем — Single UNIX Specification. Только те системы, которые соответствуют стандартам могут законно называться UNIX. Сертификация не бесплатная и требует от разработчиков платить за использование этого товарного знака.
- Все операционные системы зарегистрированы с именем Unix. Потому что они соответствуют вышеупомянутым стандартам. Это AIX, A/UX, HP-UX, Inspur K-UX, Reliant UNIX, Solaris, IRIX, Tru64, UnixWare, z/OS и OS X — да, даже те что работают на компьютерах Apple.
Что такое Linux
Термин Linux относится только к ядру. Операционная система не будет полной без настольной среды и приложений. Поскольку большинство приложений были разработаны и сейчас разрабатываются в рамках проекта GNU, полное название операционной системы — GNU / Linux.
Сейчас множество людей используют термин Linux для обозначения всех, основанных на ядре Linux, дистрибутивов. На данный момент самая новая версия ядра Linux — 4.4, версия 4.5 находится на стадии разработки. Смена нумерации релизов ядра с 3.х на 4.х состоялась не так уж давно.
Linux — это Unix подобная операционная система, которая ведет себя как Unix, но не содержит его код. Unix подобные ОС часто называют Un*x, *NIX и *N?X, или даже Юниксоидами. У Linux нет сертификации Unix, а GNU расшифровывается как GNU not Unix, так что в этом отношении Mac OS X больше Unix чем Linux.
Но тем не менее ядро Linux и ОС GNU Linux очень похожи на Unix по функциональности, реализуют большинство принципов философии Unix.
Это удобочитаемый код, хранение конфигурации системы в отдельных текстовых файлах, а также использование небольших инструментов командной строки, графическая оболочка и менеджер сеансов.
Важно заметить что далеко не все Unix подобные системы получили сертификацию UNIX. В определенном контексте все операционные системы, основанные на UNIX или на его идеях, называются UNIX подобными, независимо от того есть ли у них сертификат UNIX или нет. Кроме того, они могут быть коммерческими и бесплатными.
Надеюсь, теперь стало более понятно, чем отличается unix от linux. Но пойдем еще дальше и подведем итоги.
Основные отличия
- Linux — свободная операционная система с открытым исходным кодом, а оригинальная Unix — нет, кроме некоторых ее производных.
- Linux — это клон оригинального Unix, но он не содержит его код.
- Главное отличие unix от linux, в том что Linux — это только ядро, в то время как Unix была и есть полноценной операционной системой.
- Linux был разработан для персональных компьютеров. А Unix ориентирован в первую очередь на крупные рабочие станции и сервера.
- Сегодня Linux поддерживает больше платформ чем Unix.
- Linux поддерживает больше типов файловых систем чем Unix.
Как видите, путаница обычно возникает из-за того, что linux vs unix могут означать совершенно разные вещи. Какое бы значение ни имелось в виду, факт остается фактом — Unix был первым, а Linux появился позже. Linux родился из стремления к свободе программного обеспечения и мобильности, вдохновленный подходом Unix.
Можно смело сказать что мы все в долгу перед движением свободного программного обеспечения, потому что мир был бы намного хуже без него.
Источник: https://losst.ru/linux-i-unix-v-chem-raznitsa
В чем разница между дистрибутивами linux и какой выбрать?
Разница, прежде всего, в политике, которую ведет коммьюнити дистрибутива, что выражается от различия версий пакетов до некоторых архитектурных различиях. Иными словами, каждый дистрибутив ориентирован на свой круг пользователей.
Если дистрибутив нужен в первую очередь красивый, это очевидно OpenSuse — единственный дистрибутив, в котором умеют готовить KDE из коробки. Но это немного не связывается с понятием “быстрый” на среднестатистической машине. Если важна простота пользования (именно пользования, а не конфигурации и поддержки) то это ubuntu.
Хотя, fedora вполне, я считаю, догнала ее по дружелюбности. Если важна стабильность то debian, но платить придется устаревшим ПО. Но стабильно. Если важно крупное, развивающееся коммьюнити, готовое помочь в любой момент, плюс — свежие пакеты и получение обновлений одним из первым — Fedora ждет тебя.
Притом, времена, когда Fedora на самом деле была тестовым дистрибутивом, давно прошли, сейчас федора это стабильный и активно развивающийся дистрибутив. С недавнего времени, есть разделения на testing, desktop и server версии. Лично я предпочитаю именно федору.
Ну и упомяну генту, в которой как ни в каком другом дистрибутиве можно добиться минималистичности и максимальной кастомизации системы под свой вкус. Но первая конфигурация всегда долгая, плюс пакетов нет — придется собирать самому.
Благо, есть инструмент, который по максимуму берет на себя управления — для пользователя разница с бинарными дистрибутивами будет заметна только во времени процесса. (полная пересборка системы занимает несколько часов).
Что касаемо внешнего вида рабочего окружения — это все настраивается на любом дистрибутиве. Любые DE доступны на каждом дистрибутиве, и выбор стоит исключительно за пользователем.
разницы между линукском юниксом и любыми другмими никс системаминет, включаяя MACOS, все они работают одинаково, bash во всех системах одинаковый. Разница небольшая в расположение файлов и название команд напрмер apt-get install apache2 -ubuntu yum install httpd -centos Но во всех из них сработаетfind . -name 'php.
ini' -exec sed -i 's/func_overload=0/func_overload=2/g' “{}” ;фактически относить к разнице дистрибутивов как банальным сборкам винды. но все баазовые команды будут называться одинаково, фактически все остальное это банальная сборка софта. Учитывай что графика в линуксе всего лишь оболочка как в винде 3.
11 Так что разница в ней не влияет ни на что 😉
выбирай между ubuntu и mint
Нравится 1 Комментировать
Если Ubuntu нормально работает (читай — подхватила все оборудование) и не вызывает отвращения, ее и оставьте. Вполне нормальный дистрибутив. Для конечного пользователя разные дистрибутивы мало чем отличаются. Скорость работы GUI (в сравнению с последними версиями Windows) вас нигде не удивит, при условии более-менее приличного железа. ИМХО.
Попробуйте elementary os, очень быстрый, на базе стабильной Ubuntu 12.04 работает практически все из коробки, вот где-где, а в нем действительно выкинуто все лишнее. Минимализм с user-friendly лицом.
Это мое творчество. Устанавливаешь Ubuntu server 14.04. Далее выполни следующее:tasksel install standard ## можно запустить tasksel и выбрать пробелом все, что нужно, но мне не нравится такой подход — много всякой всячины тянет. apt-get install xserver-xorg xdg-utils ## далее KDE по желанию. можно и другое установить.
apt-get install kde-wallpapers-default kde-runtime plasma-widgets-workspace kde-workspace kdm konsole plasma-desktop plasma-netbook kde-l10n-ru plasma-desktopthemes-artwork plasma-widget-folderview pm-utils plasma-widget-networkmanagement apt-get –no-install-recommends install acpi-support openjdk-7-jre
apt-get install libreoffice-kde libreoffice-l10n-ru libreoffice-help-ru libreoffice-impress libreoffice-calc apt-get install lintian ## будет установлен со всеми зависимостями и утилитами (честно говоря даже не помню сейчас что это такое) ## веб-сервер для локального тестирования apt-get install apache2 apache2.2-bin apache2-mpm-prefork apache2-utils
apt-get install php5 php5-cli php5-common php5-dev php5-gd php5-mcrypt php5-mysql php-pearПеречень программ под KDE предельно минимален. К нему следует добавить как минимум ark — оболочка архиватора, kmix со всей звуковой системой, gwenview, чтобы картинки смотреть, dolphin — файловый менеджер, kate — текстовый редактор, браузер, соль, перец по вкусу. Еще не мешает пометить библиотечные пакеты как установленные автоматически, чтобы не было такого бардака:
apt-mark showmanual | grep “^lib”
Примерно так. Получается хорошая вещь. по крайней мере существенно лучше дефолтной Kubuntu.Сначала ставьте Ubuntu, последнюю версию, сейчас это 14.10, это один и самых допиленных дистрибутивов которые только можно найти, у вас с наименьшей вероятностью возникнут трудности. Со временем у вас могут возникать вопросы — ответы с привязкой к Ubuntu найти будет проще.
Чем сложнее будут вопросы (если будут) — тем больше опыта вы получите, и в какой-то момент его будет достаточно для того, чтобы задуматься о смене дистрибутива, и будет опыт сообразить, стоит ли вообще это делать.
Источник: https://toster.ru/q/192159
Семейство unix-подобных операционных систем
Здравствуйте, сегодня я расскажу вам о замечательном семействе unix-подобных операционных систем! Некоторые из вас конечно знают, что операционные системы, основанные на базе ядра linux входят в достаточно большую семью unix. Но знают об этом далеко не многие, ведь согласитесь не каждый рядовой пользователь интересуется историей возникновения ОС которой он пользуется. Но кому это интересно, тому я сегодня и расскажу немного из истории семьи UNIX.
Как нам с вами известно, операционные системы созданные на базе ядра linux называются дистрибутивами. Как в настоящей семье у каждого дистрибутива, как у ребеночка есть свое имя, которое тщательно выбирается при создании ОС. Debian, AltLinux, Fedora, Mandriva, Ubuntu, Mint, ArchLinux, Gentoo, RedHat, OpenSUSE.
Все эти ОС являются дистрибутивами Linux. Да, кстати наиболее правильное название всего этого семейства GNU/Linux. Как известно все эти ОС знакомы нам в различных версиях, так как на протяжении своего существования они многократно изменяются и развиваются.
UNIX изначально была названа UNICS и расшифровывалась как (UNIplexed Information and Computing System). Эта ОC была создана в 1960-х годах сотрудниками компании Bell Labs Денисом Ритчи, Кеном Томпсоном и Дугласом МакИлроем. Но главным создателем все же считается Кен Томпсон.
Первая версия Unix для мини компьютеров вышла в ноябре 1971 года.
«Первая редакция» такое названия получила эта версия, и она считалась первой официальной версией. Самые первые версии Unix были далеко не идеальными, они не имели встроенного компилятора с языком высокого уровня, и были написаны на ассемблере.
После первой версии Unix буквально через год была выпущена вторая версия которая была уже усовершенствована на то время, она была написана уже на другом языке Си. Потом были третья и четвертая версии, естественно каждая следующая версия Unix была все лучше и лучше.
С 1974 года Unix начал свое распространение среди различных университетов и других учебных заведений. Пора популярности для Unix настала в 1975 году, за пределами Bell Labs начали появляться новые версии.
Последняя седьмая версия Unix была пожалуй единой версией Unix! И именно эта версия пожалуй близка к нашей современной версии Unix. Вот пожалуй и все что я могу сказать о Unix.
27 сентября 1983 года была начата разработка операционной системы GNU. Так как Ричард Столлман, так сказать прародитель GNU, не хотел чтоб кто либо предъявил права на его дитя, уволился с работы и посвятил свою жизнь написанию ОС GNU.
Одной из первых программ этой операционной системы стал текстовый редактор Emacs. Этот текстовый редактор стал просто находкой для программистов, благодаря ему они смогли писать свои программы.
Да кстати известно что астероид открытый в 1992 году Аризонским университетом, получил название GNU 9965.
А сейчас давайте кратко рассмотрим MINIX.
Первую версию MINIX создал Эндрю Таненбаум в 1987 году, также известно что создал он ее в качестве «иллюстрации» к учебнику об ОС. Программа MINIX была написана на языке программирования С, который был разработан в 1970 году, этот язык был изначально создан для операционных систем UNIX.
Известно что Таненбаум относился к MINIX только как к учебному пособию, и не собирался усовершенствовать, или продвигать его дальше. Поэтому роль разработчика MINIX как отдельной ОС взял на себя Linux.
Для всех желающих изучить исходные коды систем, MINIX распространялся под свободной лицензией.
В 1991 году финский студент Линус Торвальдс решил написать операционную систему совместимую с ядром UNIX. Которая в дальнейшем получила название LINUX. Эта идея пришла ему не случайно, воспользовавшись операционной системой MINIX, он понял что она не совсем удовлетворяет его требованиям,что и подтолкнуло его на мысль о своей ОС.
Свою ОС Линус Торвальдс изначально создавал как полноценное ядро для своего ПК.
В 1994 году разработчики ядра LINUX наконец сочли, что ядро вполне законченно, и выпустили версию 1.0, но известно что ранее в 1992 году была еще одна версия 0.95 вот она как раз таки и не была полностью законченной, поэтому она как бы пробный вариант, в отличии от 1.0.
Так как LINUX разрабатывается свободным сообществом, роль Линуса Товальдса в его разработке маленько изменилась, теперь он не главный разработчик, а всего лишь важный член сообщества, которое оценивает исходные коды, которые будут в дальнейшем включены в ядро. И один из тех, кто дает свое добро на их включение в ОС.
Но все же LINUX является общей моделью, которую разрабатывает свободное сообщество.
Так как исходные коды в LINUX были в свободном доступе, а сам LINUX был в свободном распространении, ОС начала быстро распространяться и усовершенствоваться, так сказать каждый подстраивал ее под себя. Также эту операционную систему очень часто устанавливают на сервера.
Ведь администрирование серверов на базе линукс намного проще. На сервера обычно устанавливают Debian, CentOS или Fedora.
Как вы помните GNU/Linux имеет огромное количество дистрибутивов, то есть огромную семью, и обо всех сразу естественно не напишешь.
Поэтому думаю на этом все, спасибо за внимание.
Источник: http://shkola-linux.ru/articles/66-semeistvo-unix-podobnyh-operacionnyh-sistem.html
Обзор операционных систем UNIX и Linux
История UNIX начиналась в 60-е гг. ХХ в.
, когда сотрудник лаборатории Bell Labs — крупнейшей телекоммуникационной компании в мире AT&T — Кен Томпсон написал на ассемблере операционную систему, которая в шутку была названа UNICS (UNiplexed Information and Computing Service — примитивная информационная и вычислительная служба). Впоследствии написание этого слова стало короче, превратившись в UNIX.
Переписывать всю систему на ассемблере заново для каждой новой машины дело трудное, поэтому Томпсон решил переписать UNIX на языке высокого уровня, который он сам специально разработал и назвал языком В.
Но язык В оказался неэффективным, в первую очередь, из-за отсутствия в нём структур данных. Тогда коллега Томпсона Ритчи разработал следующий язык, явившийся преемником языка В, который, естественно, получил название С.
Вместе Томпсон и Ритчи переписали UNIX на С. Язык С оказался как раз тем языком, который и был нужен в то время, и он сохраняет лидирующие позиции в области системного программирования до сих пор.
За работу по созданию ОС UNIX Ритчи и Томпсону ассоциацией по вычислительной технике АСМ была присуждена престижная премия Тьюринга.
Операционная система UNIX поставлялась с полным комплектом исходных текстов, поэтому владельцы системы могли совершенствовать её. Новые идеи и усовершенствования системы распространялись быстро. К середине 80-х гг.
ОС UNIX широко применялась на мини-компьютерах и рабочих станциях различных производителей. Многие компании даже приобрели лицензии на исходные тексты, чтобы производить свои версии системы UNIX.
Одной из таких компаний была небольшая начинающая фирма Microsoft, в течение нескольких лет продававшая Version 7 под именем XENIX.
Для того чтобы система UNIX могла быть гарантированно запущена на любой машине, к концу 80-х гг. при содействии Совета по стандартам Standard Boards при Институте инженеров по электротехнике и электронике IЕЕЕ была предпринята попытка объединить варианты системы.
В этой работе приняли участие сотни людей из промышленных, академических и правительственных организаций. Коллективное название проекта — POSIX. Первые три буквы этого сокращения означали Portable Operating System — переносимая операционная система.
Буквы IX были добавлены, чтобы имя проекта выглядело юниксообразно. Комитет POSIX выработал стандарт, известный как 1003.1.
Этот стандарт определяет набор библиотечных процедур, которые должна предоставлять каждая соответствующая данному стандарту система UNIX, таким образом, гарантируя, что эта программа будет работать на любой версии системы, поддерживающей данный стандарт.
Операционную систему UNIX можно рассматривать в виде пирамиды. У основания пирамиды располагается аппаратное обеспечение, состоящее из ЦП, памяти, дисков, терминалов и других устройств. Над аппаратным обеспечением располагается уровень режима ядра системы UNIX.
Его функция заключается в управлении аппаратным обеспечением и предоставлении всем программам системных вызовов. Эти системные вызовы позволяют программам создавать процессы, файлы и прочие ресурсы и управлять ими.
Программы обращаются к системным вызовам, помещая аргументы в регистры ЦП и выполняя команды прерывания для переключения из пользовательского режима в режим ядра и передачи управления операционной системе UNIX.
Уровни пользовательского режима представлены библиотекой системных вызовов и большим количеством стандартных программ (командный процессор, компиляторы, редакторы, программы обработки текста, утилиты для работы с файлами). Именно эти программы и запускаются пользователем с терминала.
Таким образом, существует три межуровневых интерфейса в ОС UNIX: интерфейс системных вызовов, интерфейс библиотечных функций и интерфейс, образованный набором стандартных обслуживающих программ. Последний интерфейс большинство пользователей считает системой UNIX.
В действительности он не имеет практически никакого отношения к самой системе и легко может быть заменён, например, графическим интерфейсом, не требуя никаких изменений в самой системе. Именно эта гибкость сделала систему UNIX столь популярной и позволила ей пережить многочисленные изменения технологии, лежащей в её основе.
У многих версий системы UNIX имеется графический интерфейс пользователя, сходный с популярными интерфейсами, применяемыми на компьютерах Macintosh и в системе Windows.
Пользовательский интерфейс UNIX состоит не только из оболочки, но также из большого числа стандартных обслуживающих программ, называемых утилитами, а также масса прикладных программ, таких как web-браузеры, программы просмотра изображений и т.д.
Процессы UNIX очень похожи на последовательные классические процессы, которые были рассмотрены выше. Каждый процесс запускает одну программу и изначально получает один поток управления.
UNIX представляет собой многозадачную систему, так что несколько независимых процессов могут работать одновременно.
У каждого пользователя может быть одновременно несколько активных процессов, так что в большой системе могут одновременно работать сотни и даже тысячи процессов.
Файловая система в UNIX — иерархическая, с файлами и каталогами. Все диски монтируются в единое дерево каталогов, начинающееся в одном корне. Отдельные файлы могут быть связаны с любым каталогом дерева.
В 1991 г. финский студент Линус Торвальдс написал ещё один клон системы UNIX, который назвал Linux. Первая версия Linux функционально почти не отличалась от микроядерной системы MINIX. Однако, в отличие от MINIX, Linux была монолитной системой, т.е. вся ОС помещалась в ядре.
Операционная система Linux быстро совершенствовалась и впоследствии развилась в полноценный клон UNIX с виртуальной памятью, более сложной файловой системой и многими другими добавленными функциями.
Она была перенесена на другие платформы и теперь работает на широком спектре машин, как и UNIX.
Версия Linux 1.0, появившаяся в 1994 г., включала новую файловую систему, отображение файлов на адресное пространство памяти и совместимое с UNIX сетевое программное обеспечение. Данная версия также включала многие новые драйверы устройств.
К этому времени ОС Linux стала достаточно совместимой с UNIX, поэтому в неё было перенесено большое количество программного обеспечения UNIX, что значительно увеличило полезность этой системы.
Кроме того, операционная система Linux привлекла большое количество разработчиков, которые продолжили работу над её совершенствованием и расширением. Следующая версия — 2.0, вышла в 1996 г.
Она включала в себя поддержку 64-разрядной архитектуры, симметричной многозадачности, новых сетевых протоколов и прочих многочисленных функций. Система также содержала внушительную коллекцию различных драйверов устройств.
Необычной особенностью Linux является её бизнес-модель: это свободно (бесплатно) распространяемое программное обеспечение.
Эту программу, а также созданные на её основе дистрибутивы (установочные комплекты, включающие прикладные программы) можно скачать с различных Internet-сайтов, например, www.kernel.org.
Система Linux поставляется вместе с лицензией, разработанной Ричардом Столманом, основателем Фонда бесплатно распространяемых программ.
Источник: https://cyberpedia.su/5x77ac.html
В чем разница между unix и linux?
Чтобы действительно понять ответ, он помогает взглянуть на историю обеих действующих систем.
Unix был изобретен в AT & T Bell Labs Кен Томпсоном. Его коллега Деннис Ритчи внес свой вклад, а также изобрел язык C и написал компилятор C. На протяжении многих лет код также был предоставлен UC Berkeley, дальнейшей работой в AT & T, Sun, IBM и других.
В конечном итоге он был стандартизован в серии публикаций под названием POSIX. В целом, код был проприетарным, так как он был защищен авторским правом AT & T, а затем продан или лицензирован для других компаний, которые в значительной степени переписывали его на протяжении многих лет, но сохраняли различные права.
В 1990-х годах появились две ветви «бесплатного Unix». Одним из них был Linux , который является клоном, написанным для работы как Unix без какого-либо реального кода Unix.
Другая ветка существует сегодня как NetBSD , и за ней быстро последовала FreeBSD , а затем намного позже любой другой BSD, о которой вы, возможно, слышали. Эти проекты немного отличаются от Linux тем, что они являются «частичными клонами».
Они содержат смесь исходного кода «реального Unix» (часть, которая была свободно лицензирована, в основном, UC Berkeley) и недавно написанный код «клон» и другой более поздний код, появляющийся как часть перезаписываемых или необходимых для поддержки современных HW и современных Посикс.
Linux намного популярнее, потому что NetBSD и FreeBSD некоторое время были связаны между собой в судебном процессе между AT & T и UCB. Хотя они были решены в пользу BSD, они никогда не оправлялись от задержки, по крайней мере, не по популярности.
Таким образом, нет, Linux и коммерческие Unix не имеют общего кода ядра, хотя коммерческие Unix и * BSD когда-то имели довольно много общего. Ядра Unix у лицензированных поставщиков содержат код, который они сами написали, возможно, с каким-то оригинальным кодом AT & T, все еще присутствующим здесь и там. Ядро Linux состоит из кода, написанного Линусом Торвальдсом и другими авторами.
«Программное обеспечение Unix» — это программное обеспечение, написанное в API Posix и обычно работающее на всех версиях Unix, Linux и NetBSD и FreeBSD.
Теоретически Posix SW может работать на системах «не-Unix», но это, похоже, не очень хорошо работает.
В наши дни «Unix» технически является торговой маркой, но, как правило, используется неформально как обозначение как для коммерческих Unix, Linux, так и для семейства BSD.
Источник: http://www.bilee.com/unix-linux-2.html
Операционная система Unix (стр. 1 из 3)
Введение
Что такое Unix?
Где взять бесплатный Unix?
Каковы основные отличия Unix от других OS?
Почему Unix?
Основные понятия Unix
Файловая система
https://www.youtube.com/watch?v=S_VnwZpYepg
Комадный интерпретатор
Руководства — man
Писать об ОС Unix чрезвычайно трудно. Во-первых, потому, что об этой системе написано очень много. Во-вторых, потому, что идеи и решения Unix оказали и оказывают огромное влияние на развитие всех современных ОС, и многие из этих идей уже описаны в этой книге.
В-третьих, потому что Unix — не одна ОС, а целое семейство систем, и не всегда можно “отследить” их родство между собой, а уж описать все ОС, входящие в это семейство просто невозможно.
Тем не менее, мы, ни в коей мере не претендуя на полноту, попытаемся дать беглый обзор “мира Unix” в тех его областях, которые представляются нам интересными для целей нашего учебного курса.
Рождение ОС Unix относится к концу 60-х годов, и эта история уже обросла “легендами”, которые подчас по-разному повествуют о деталях этого события. ОС Unix родилась в исследовательском центре Bell Telephone Laboratories (Bell Labs), входящем в состав корпорации AT&T.
Изначально этот инициативный проект для ЭВМ PDP-7 (впоследствии — для PDP-11) представлял собой то ли с файловую систему, то ли компьютерную игру, то ли систему подготовки текстов, то ли и то, и другое, и третье.
Важно, однако, то, что с самого начала проект, превратившийся в итоге в ОС, задумывался как программная среда коллективного пользования. Автором первой версии Unix является Кен Томпсон, однако в обсуждении проекта, а впоследствии — и в его реализации принимал участие большой коллектив сотрудников (Д. Ритчи, Б.
Керниган, Р. Пайк и другие). На наш взгляд, несколько счастливых обстоятельств рождения Unix определили удачу этой системы на много лет вперед.
Для большинства сотрудников того коллектива, в котором родилась ОС Unix, эта ОС была “третьей системой”. Существует мнение (см.
, например [1]), что системный программист достигает высокой квалификации только при выполнении третьего своего проекта: первый проект получается еще “ученическим”, во второй разработчик пытается включить все, что не получилось в первом, и в итоге он получается слишком громоздким, и только в третьем достигается необходимый баланс желаний и возможностей. Известно, что до рождения Unix коллектив Bell Labs участвовал (совместно с рядом других фирм) в разработке ОС MULTICS. Конечный продукт MULTICS (Bell Labs не принимала участия в последних стадиях разработки) носит все признаки “второй системы” и не получил широкого распространения. Следует, однако, заметить, что в этом проекте были рождены многие принципиально важные идеи и решения, и некоторые концепции, которые многие считают рожденными в Unix, на самом деле имеет своим источником проект MULTICS.
ОС Unix была системой, которая делалась “для себя и для своих друзей”. Перед Unix не ставилась задача захвата рынка и конкуренции с какими-либо продуктами. Сами разработчики ОС Unix были и ее пользователями, и сами оценивали соответствие системы своим нуждам. Без давления рыночной конъюнктуры такая оценка могла быть предельно объективной.
ОС Unix явилась системой, которая сделана программистами и для программистов.
Это определило изящество и концептуальную стройность системы — с одной стороны, а с другой — необходимость понимания системы для пользователя Unix и чувства профессиональной ответственности для программиста, разрабатывающего программное обеспечение для Unix. И никакие последующие попытки сделать “Unix для чайников” не смогли избавить ОС Unix от этого достоинства.
В 1972-73 гг. Кен Томпсон и Деннис Ритчи написали новую версию Unix. Специально для этой цели Д. Ритчи создал язык программирования C, представлять который теперь уже нет необходимости.
Более 90% программного кода Unix написано на этом языке, и язык стал неотъемлемой частью ОС.
То, что основная часть ОС написана на языке высокого уровня, обеспечивает возможность ее перекомпиляции в коды любой аппаратной платформы и является обстоятельством, определившим широкое распространение Unix.
В период создания Unix антимонопольное законодательство США не давало корпорации AT&T возможности выходить на рынок программных продуктов. Поэтому ОС Unix была некоммерческой и свободно распространялась, прежде всего — в университетах.
Там ее развитие продолжалось, и наиболее активно оно велось в Калифорнийском университете в г. Беркли. При этом университете была создана группа Berkeley Software Distribution, которая занималась развитием отдельной ветви ОС — BSD Unix.
На протяжении всей последующей истории основная ветвь Unix и BSD Unix развивались параллельно, неоднократно взаимно обогащая друг друга.
По мере распространения ОС Unix стал все более возрастать интерес к ней коммерческих фирм, которые стали выпускать собственные коммерческие версии этой ОС. Со временем стала коммерческой и “основная” ветвь Unix от AT&T, для ее продвижения была создана дочерняя фирма Unix System Laboratory.
Ветвь BSD Unix в свою очередь разветвилась на коммерческую BSD и Free BSD [18]. Различные коммерческие и свободно распространяемые Unix-подобные системы строились на базе ядра AT&T Unix, однако в них включались и свойства, заимствуемые из BSD Unix, а также и оригинальные свойства.
Несмотря на общий источник, различия между членами семейства Unix накапливались и в итоге привели к тому, что перенос приложений из одной Unix-подобной ОС в другую стал чрезвычайно затруднен. По инициативе пользователей Unix возникло движение за стандартизацию API Unix.
Это движение было поддержано Международной организацией стандартов ISO и привело к возникновению стандарта POSIX (Portable Operation System Interface eXecution), который развивается и в настоящее время и является самым авторитетным стандартом для ОС.
Однако, оформление спецификаций POSIX как официального стандарта — процесс довольно медленный, и он не может удовлетворять потребностей производителей программного обеспечения, что привело к возникновению альтернативных промышленных стандартов.
С переходом AT&T Unix к компании Nowell название этой ОС изменилось на Unixware, а права на торговую марку Unix перешли к консорциуму X/Open. Этот консорциум (в настоящее время — Open Group) разработал свои (более широкие, чем POSIX) спецификации системы, известные как Single Unix Specification. Недавно вышла вторая редакция этого стандарта, значительно лучше согласованная с POSIX.
Наконец, ряд фирм — производителей собственных версий Unix образовал консорциума Open Software Foundation (OSF), который выпустил собственную версию Unix — OSF/1, сделанную на базе микроядра Mach.
OSF также выпустил спецификации системы OSF/1, на основе которой фирмы-члены OSF стали выпускать собственные Unix-системы.
Среди таких систем: SunOS фирмы Sun Microsystems, AIX фирмы IBM, HP/UX фирмы Hewlett-Packard, DIGITAL UNIX фирмы Compaq и другие.
Поначалу Unix-системы этих фирм в большей степени базировались на BSD Unix, но сейчас большая часть современных промышленных Unix-систем строятся на базе использовании (по лицензии) ядра AT&T Unix System V Release 4 (S5R4), хотя наследуют и некоторые свойства BSD Unix. Мы не берем на себя ответственность сравнивать коммерческие Unix-системы, так как периодически появляющиеся в печати сравнения такого рода зачастую представляют совершенно противоположные результаты.
Компания Nowell продала Unix компании Santa Crouse Operations, которая выпускала собственный Unix-продукт — SCO Open Server.
SCO Open Server [16] базировался на более ранней версии ядра (System V Release 3), но был великолепно отлажен и отличался высокой стабильностью.
Фирма Santa Crouse Operations интегрировала свой продукт с AT&T Unix и выпустила Open Unix 8 [30], однако затем продала Unix фирме Caldera, которая и является владельцем “классической” ОС Unix сегодня (в конце 2001 г).
Фирма Sun Microsystems начала свое представительство в мире Unix системой SunOS, созданной на основе ядра BSD. Однако впоследствии заменила ее системой Solaris на основе S5R4 [34]. В настоящее время распространяется версия 8 этой ОС (существует также v.9-бета). Solaris работает на платформе SPARC (RISC-процессоры, изготовляемые по спецификациям Sun) и Intel-Pentium.
Фирма Hewlett-Packard предлагает ОС HP-UX. v.11 на платформе PA-RISC [22]. HP-UX базируется на S5R4, но содержит много свойств, “выдающих” ее происхождение от BSD Unix. Конечно же, HP-UX будет доступна и на платформе Intel-Itanium.
Фирма IBM выступает с ОС AIX, последняя на сегодняшний день версия — 5L (о ней еще пойдет речь впереди) [12]. IBM не объявляла “родословную” AIX, это в основном оригинальная разработка, но первые версии носили признаки происхождения от FreeBSD Unix. Сейчас, однако, AIX больше похожа на S5R4.
Первоначально ОС AIX была доступна и на платформе Intel-Pentium, но впоследствии (в соответствии с общей политикой IBM) перестала поддерживаться на этой платформе.
В настоящее время AIX работает на серверах IBM RS/6000 и в других вычислительных платформах на базе процессоров PowerPC (в том числе и на суперкомпьютерах IBM).
ОС DIGITAL UNIX фирмы DEC была единственной промышленной реализаций системы OSF/1. ОС DIGITAL UNIX работала на RISC-серверах Alpha фирмы DEC. Когда в 1998 г. фирма DEC была поглощена фирмой Compaq, в фирму Compaq перешли и серверы Alpha, и DIGITAL UNIX.
Фирма Compaq имеет намерение восстановить присутствие на рынке серверов Alpha и в связи с этим интенсивно развивает и ОС для них. Нынешнее название этой ОС — Tru64 Unix (текущая версия — 5.
1A), она продолжает базироваться на ядре OSF/1 и несет в себе много признаков BSD Unix [37].
Несмотря на то, что большинство коммерческих Unix-систем базируется на одном ядре и удовлетворяет требованиям POSIX, каждая из них имеет собственный диалект API, и различия между диалектами накапливаются.
Это приводит к тому, что перенос промышленных приложений с одной Unix-системы на другую затрудняется и требует, как минимум, перекомпиляции, а часто — и корректировки исходного кода. Попытка преодолеть “разброд” и сделать единую для всех ОС Unix была предпринята в 1998 г. альянсом фирм SCO, IBM и Sequent.
Эти фирмы объединились в проекте Monterey с целью создания единой ОС на базе Unixware, владельцем которой в то время была SCO, IBM AIX и ОС DYNIX фирмы Sequent. (Фирма Sequent занимает лидирующие позиции в производстве ЭВМ архитектуры NUMA — несимметричной многопроцессорной — и DYNIX — это Unix для таких ЭВМ).
ОС Monterey должна была работать на 32-разрядной платформе Intel-Pentium, 64-разрядной платформе PowerPC и на новой 64-разрядной платформе Intel-Itanium. О поддержке проекта заявили почти все лидеры производства аппаратных средств и промежуточного программного обеспечения.
Даже фирмы, имеющие собственные клоны Unix (кроме Sun Microsystems), объявили, что на платформах Intel они будут поддерживать только Monterey. Работа над проектом продвигалась, по-видимому, успешно.
ОС Monterey была в числе первых, доказавших свою работоспособность на Intel-Itanium (наряду с Windows NT и Linux) и единственной, которая при этом не прибегала к эмуляции 32-разрядной архитектуры Intel-Pentium. Однако в финальной стадии проекта произошло фатальное событие: SCO продала свое Unix-отделение.
Еще раньше фирма Sequent вошла в состав IBM. “Наследником” всех свойств ОС Monterey стала ОС IBM AIX v.5L. Однако, не совсем всех. Платформа Intel-Pentium не является для IBM стратегическим направлением, и на этой платформе ОС AIX недоступна. А поскольку другие лидеры компьютерной индустрии не разделяют (или не вполне разделяют) такую позицию IBM, идея общей ОС Unix так и не реализовалась.
Источник: http://MirZnanii.com/a/113735/operatsionnaya-sistema-unix
Базовые возможности unix-like систем
В данной статье читателю предлагается окунуться в бескрайнее море возможностей, что предоставляют unix-like системы. Здесь собраны воедино многие понятия и команды, которые полезно было бы знать для повседневной работы с командной строкой.
Разумеется, автор отдаёт себе отчёт в том, что охватить всё в одной заметке невозможно. Тем не менее, было принято решение объединить в ней наиболее употребительные термины и решение некоторых распространённых задач.
Сделано это по соображениям удобства поиска, дабы материал не приходилось искать на разных страницах.
Приведёные ниже команды можно вводить как раздельно, так и в одну строку. Во втором случае следует разделять команды знаком ;. Каждый из разделов только коротко описывает назначение и употребление команд. Для получения более подробной информации по каждой из них предлагается обратиться к справочным руководствам.
Содержание
Базовые команды
Список команд для ежедневного использования.
mv file1 file2 | переместить/переименовать файл |
rm file1 | удалить файл |
rm -rf dir | удалить директорию |
rm -rf dir/* | удалить содержимое директории |
rmdir dir | удалить пустой каталог dir |
touch file1 file2 | создать два файла |
cp file1 file2 | копировать файл |
pwd | отобразить текущий каталог |
cd /home/user/work | перейти в каталог work пользователя user |
echo “hello”> file1 | записать “hello” в файл (сотрёт всё остальное) |
echo “hello” » file1 | дописать “hello” в конец файла |
ctrl-s | приостановить вывод команды |
ctrl-q | возобновить вывод команды |
ctrl-d | выйти из оболочки |
ctrl-c | прервать выполнение |
ls -lt ~/work | сортировать вывод по дате последнего изменения |
ls -lu | по времени последнего использования |
cat hello.c | вывести на экран содержимое файла hello.c |
wc hello.c | подсчитать строки(-l), слова(-w), символы(-m) в файле hello.c |
wc -L hello.c | узнать максимальную длину строки |
df -h | информация о свободном месте на смонтированных устройствах |
du -h | сколько места занимают файлы каталога и подкаталогов |
free -m | использование оперативной памяти (-m мегабайт, -g гигабайт) |
ps -aux | информация о запущенных процессах |
killall PID | снять задачу по её PID (или по имени) |
sleep 1; echo “hello” | вывести ‘hello’ через секунду |
whereis emacs | найти местоположение emacs |
file file.pdf | вывод информации о типе файла |
Поиск по шаблону
Grep просматривает файл в поиске строк, соответствующих шаблону. Можно указать несколько файлов сразу.
$ grep Hello hello.c # найти слово 'Hello' в файле hello.c printf(“Hello, world!
“);
$ grep Hello hello.c hello.cpp hello.c: printf(“Hello, world!
“); hello.cpp: cout lc
$ chmod +x lc
$ sh lc file.txt
Здесь нужные строки записываются в файл lc, которому даются права на исполнение. Впоследующем файл запускается при помощи оболочки. Если поместить каталог, где находится lc в переменную PATH, можно будет опустить sh.
Если подытожить: команда создаётся в пользовательском каталоге. Например, /home/user/usr/bin/mycommand. После чего в файл, который читается оболочкой, добавляется соответствующий путь поиска команд.
Также нужно пояснить значение позиционного параметра $1. Он служит переменной, передающей первый аргумент при вызове команды lc. В нашем случае на это место ставится имя файла. Само имя программы — это $0. Если количество аргументов заранее неизвестно, подставляется шаблонное выражение $*.
Если переменные, содержащиеся в .profile должны быть глобальными, рекомендуется задать их в /etc/profile.
Права доступа и файлы
Запомнить обозначения прав доступа не составит большого труда. По большому счёту они сводятся к чтению (read), записи (write) и исполнению (execute).
$ ls -l sort.py
-rwxr-xr-x 1 mark users 388 ноя 26 2013 sort.py*
Из приведённой выше записи можно понять следующее:
это файл, а не каталог (-); владельцу (пользователю mark) он доступен на запись, чтение и исполнение; группе владельца users и всем остальным на чтение и выполнение.
Весьма демократично, не так ли? Для изменения прав используются две команды: chmod и chown, первая из которых меняет права доступа к файлу, вторая — меняет владельца и/или группу файла.
$ chmod 644 # изменить права доступа
# chown root:adm sort.py # теперь владелец root, группа adm
Как видно из примера, права можно задавать лишь числами. Но разобраться с ними ничуть не сложнее: их тоже три.
Так, чтобы назначить права только на чтение и запись (read — 4, write — 2), нужно к 4 прибавить 2. В итоге мы получаем заветную шестёрку, которая и фигурирует в примере.
Что касается chmod, при необходимости добавить или запретить права доступа, можно использовать + и — соответственно:
$ chmod +x sort.py # дать всем права на выполнение
Помимо этого существует бит SUID, но в данной статье он не рассматривается, ибо применяется достаточно редко и теоретически небезопасен.
если для записи доступен каталог, пользователи могут удалять из него файлы независимо от прав доступа к этим файлам
Дабы проиллюстрировать сказанное выше, создадим каталог и поиграем с правами доступа к нему:
$ mkdir catalog && ls -ld catalog
drwxr-xr-x 2 redvi users
$ chmod 644 catalog && ls -ld catalog
drw-r–r– 2 redvi users
$ touch catalog/sc.css
touch: невозможно выполнить touch для «catalog/sc.css»: Отказано в доступе
$ chmod 744 catalog
$ touch catalog/sc.css
Также у каждого файла имеется служебная информация (время модификации, последнего доступа), которая хранится в индексном дескрипторе (inode).
Интересно, что сам файл скорее представляет собой ссылку — указание на индексный дескриптор: например, при удалении командой rm происходит удаление ссылки, и только если нигде больше не осталось других ссылок на файл удаляется сам индексный дескриптор, а значит и сам файл. Возможно, это звучит немного запутанно, но я не знаю как объяснить лучше.
Создание жёсткой ссылки на файл возможно при использовании команды ln, просмотр всех имеющихся ссылок — ls -li:
$ ln link link2
$ ls -li
5519273 -rw-r–r– 2 link
5519273 -rw-r–r– 2 link2
5256834 -rwxr-xr-x 1 sort.py*
Так, оба файла имеют один и тот же индексный дескриптор (5519273), и по выводу команды ls видно, что у него два счётчика (2). При удалении одного из них, индексный дескриптор (и содержимое файла) никуда не исчезнет.
У читателя может возникнуть вопрос: чем же тогда создание жёсткой ссылки отличается от простого копирования файла? Всё просто: при копировании создаются два разных файла, если внести изменения в один, то они никак не повлияют на другой. Жёсткая ссылка обеспечивает полную идентичность содержимого: при редактировании первого файла все изменения отражаются и во втором.
С другой стороны мы можем создать символическую ссылку, которая всего лишь указывает на местонахождение файла. Если хотите, можете сравнить это с программой и её ярлыком в OS Windows.
При удалении или перемещении файла, символическая ссыка перестаёт работать, ибо ведёт к несуществующему файлу.
Отключение системного звукового сигнала
Если вы не в силах выносить системный звуковой сигнал в linux, что с вероятностью в 100% возникает при неверном вводе, можно воспользоваться нижеизложенными командами.
Консоль:
$ echo 'set bell-style none'>> .inputrc
X11:
$ echo 'xset b off'>> .xinitrc
Те, кто пользуется самосборным ядром, могут отключить досадную особенность в самом ядре:
Device Drivers → Input device support → Miscellaneous devices → PC Speaker support
Работа с архивами
$ tar -zxvf archive.gz # распаковать .gz
$ tar -cf archive.tar folder/ # создать tar-архив
$ unzip archive.zip # распаковать zip-архив
$ zip -r archive folder # создать zip-архив из каталога folder
$ unrar -x # распаковать rar-архив
Возможно, соответствующие программы для работы с архивами придётся предварительно установить.
Полный backup и восстановление (tar)
Полная копия linux-машины, за исключением каталога /backup и служебных каталогов с сохранением прав доступа. Для создания таковой понадобится LiveCD диск, загрузившись с которого можно приступать к задаче.
# tar -cvpf /backup/mybackup.tar –directory=/ –exclude=proc –exclude=dev/pts –exclude=backup –exclude=dev
Копия системы будет создана под именем backup/mybackup.tar. Для сжатия (и экономия места на носителе-приёмнике) к указанной команде можно добавить ключ -z.
Восстановление копии на ту же машину (в случае использования другой машины следует поправить соответствующие строки в /etc/fstab и установить загрузчик):
# tar -xvpf /mybackup.tar
В случае восстановления сжатого архива также добавляется ключ -z.
Инкременальный backup (rsync)
Идеально подходит для периодического создания копии домашнего каталога.
# rsync -PavHx –delete-after /home/* /mnt/backup/
Скачивание файлов/сайтов по сети
Делается это при помощи программы wget, где ключ -c позволит докачать файл при обрыве соединения, а ключ -r используется в случае, если необходимо рекурсивное скачивание:
$ wget -c http://distfiles.gentoo.org/*/install-amd64-minimal-*.iso
Создание загрузочного usb-flash
Предполагается, что лучший способ для этого — использование dd.
Если есть необходимость разметить usb-flash, запустите команду fdisk, вот её флаги:
a | установить/снять флаг загрузочного раздела |
c | переключить флаг совместности с dos |
d | удалить раздел |
l | вывести список известных типов разделов |
m | показать меню |
n | добавить новый раздел |
o | создать новую пустую таблицу разделов в стиле DOS |
p | показать существующею таблицу разделов |
q | выйти без сохранения изменений |
t | изменить метку типа раздела |
v | проверить таблицу разделов |
w | сохранить изменения и выйти |
x | дополнительные возможности (только для экспертов) |
# fdisk -l
Устр-во Загрузочный Start Конец Blocks Id System
/dev/sda1* 1xxx 4xxx 10xxx+ 83 Linux
/dev/sda2 1xxx 1xxx 5xxx 82 Linux swap / Solaris
/dev/sda5 4xxx 6xxx 11xxx+ 83 Linux Устр-во Start Конец Size Тип
/dev/sdb1 2048 15644671 7,5G Microsoft basic data # fdisk /dev/dsb
# dd if=/home/user/ISO/linux.iso of=/dev/sdb
Кто в системе
Кто сейчас находится в системе, когда и кем был выполнен последний вход и прочее. Для получения более подробных сведений используйте ключ -a.
$ who
redvi ~ who
root tty3 2014-07-30 20:43
redvi :0.0 2014-07-30 18:22
Установка даты и времени
Первая из приведённых ниже программ отобразит текущие дату и время. Вторая установит нужные параметры (формат MMDDhhmmCCYY/месяц-день-часы-минуты-год)
$ date
# date 073021502014
⤧ Следующая запись Emacs как IDE для web-разработки
Источник: http://www.unix-lab.org/posts/linux-command/