Обзор архитектуры и возможностей системы Linux: архитектура, ядро, распространение и лицензирование, принципы проектирования, управление процессами
Презентацию к данной лекции Вы можете скачать здесь.
Введение
Данная и следующая лекции посвящены обзору возможностей одного из самых популярных семейств операционных систем – Linux. В настоящей лекции и «Обзор архитектуры и возможностей системы Linux: управление памятью, ресурсами, файловые системы, драйверы устройств, сети, безопасность» рассмотрены следующие вопросы:
- История Linux
- Принципы проектирования Linux
- Модули ядра Linux
- Управление процессами в Linux
- Планирование в Linux
- Управление памятью в Linux
- Файловые системы в Linux
- Ввод и вывод в Linux
- Взаимодействие процессов в Linux
- Структура сети в Linux
- Безопасность в Linux.
История Linux
Linux – современная, свободно распространяемая ОС, основанная на стандартах и традициях UNIX .
История Linux берет свое начало с 1983 г., когда Ричард Столмен (Richard Stallman) начал проект GNU , а в 1985 г. основал некоммерческую организацию Free Software Foundation . Основная цель – разработка UNIX -подобной системы, которая состояла бы только из свободно распространяемого программного обеспечения .
Впервые Linux разработана как небольшое, но самодостаточное ядро ОС в 1991 Линусом Торвальдсом (Linus Torvalds), с основной целью добиться совместимости с UNIX .
История Linux – это история многолетнего (удаленного) взаимодействия пользователей всего мира, которое осуществляется почти исключительно через Интернет .
Система была cпроектирована с целью эффективного и надежного использования на распространенных персональных компьютерах, но она также используется и на многих других аппаратных платформах.
Основная часть ОС Linux полностью оригинальна, но на ней может также исполняться значительная часть свободно распространяемого программного обеспечения для UNIX , и в результате в распоряжении пользователей имеется оригинальная, свободно распространяемая, совместимая с UNIX система, в которой нет корпоративного конфиденциального кода.
Ядро Linux
Версия 0.01 (май 1991) не содержала сетевых средств, выполнялась только на 80386-совместимых Intel – процессорах, имела очень ограниченный набор драйверов устройств и поддерживала только файловую систему MINIX ( MINIX – операционная система типа UNIX , разработанная Andrew Tannenbaum).
Версия Linux 1.0 (март 1994) включала следующие новые возможности:
- Поддержку стандартных для UNIX сетевых протоколов TCP/IP
- BSD-совместимый интерфейс сокетов для сетевого программирования
- Поддержку драйверов устройств для использования IP в сетях типа Ethernet
- Расширенную файловую систему
- Поддержку большого диапазона SCSI – контроллеров для высокопроизводительного доступа к дискам.
Версия Linux 1.2 (март 1995) была последней версией ядра Linux только для персональных компьютеров.
Версия Linux 2.0 выпущена в июне 1996, со следующими новыми возможностями:
- Поддержкой нескольких аппаратных архитектур, включая полный 64-разрядный перенос на рабочие станции Digital Alpha (первые 64-разрядные рабочие станции в мире)
- Поддержкой многопроцессорной архитектуры
- Улучшенным кодом для управления памятью
- Улучшенной производительностью TCP/IP
- Поддержкой внутренних потоков (threads) ядра ОС, используемых для обработки зависимостей между загрузочными модулями и для автоматической загрузки модулей по требованию.
- Стандартизованным конфигурационным интерфейсом.
Версия Linux 2.0 была доступна на процессорах Motorola 68000, Sun SPARC , PC ( x86 ) и PowerMac.
Современное состояние Linux, дистрибутивы и лицензирование
ОС Linux использует многие инструменты, разработанные как части Berkeley BSD UNIX , системы X Window разработки MIT , а также проекта GNU некоммерческой ассоциации Free Software Foundation ( FSF ).
Минимальный набор системных библиотек был разработан как часть проекта GNU , с улучшениями, разработанными сообществом Linux.
Средства сетевого администрирования Linux были разработаны на основе версии 4.3 Berkeley Software Distribution ( BSD ) UNIX . Недавние производные от BSD (например, UNIX FreeBSD), в свою очередь , заимствовали код из Linux.
Система Linux поддерживается слабо связанной сетью разработчиков, взаимодействующих через Internet . Небольшое число публично доступных ftp-серверов используется как хранилища информации о де-факто стандартах.
Стандартный предварительно откомпилированный набор пакетов, или дистрибутивов, включает базовую систему Linux, утилиты для инсталляции системы и управления системой , а также готовые к инсталляции пакеты инструментов для UNIX .
Ранние дистрибутивы включали диалекты SLS и Slackware. Red Hat и Debian – популярные дистрибутивы, соответственно, основанные на коммерческих и некоммерческих исходных кодах.
Единый формат файла пакета — RPM обеспечивает совместимость между различными дистрибутивами Linux.
Что касается инсталляции Linux, то, по личному опыту автора, при частичных инсталляциях Linux в различных конфигурациях (например, workstation ) и последующих «доинсталляциях» до полной версии возможны проблемы: инсталлятор «путает» фактический состав инсталлируемых пакетов (Linux Red Hat , 2003), по крайней мере, дополнить Linux до полной версии путем итеративных инсталляций не удается, и рекомендуется сразу же инсталлировать полную версию, т.е. явным образом изменить умолчания инсталлятора.
Ядро Linux распространяется на условиях GNU General Public License (GPL),которые установлены организацией Free Software Foundation .
Программист, использующий Linux, либо создающий свои собственные системы на базе Linux, не имеет права превращать свой продукт в коммерческий (ведомственный); программное обеспечение , распространяемое на основе GPL , не может распространяться только в виде двоичного кода (т.е. в поставку Linux должен быть включен исходный код). Это было одной из принципиальных целей проекта .
Linux в основном используется как серверная операционная система , ввиду ее высокой надежности. Что касается использования Linux как клиентской ОС, то доля ее использования очень мала, как показывает приведенная на рис. 25.1 диаграмма использования различных ОС как Web-клиентов.
Источник
Вопросы
В поле PPID (» p arent p rocess id entificator») указан идентификатор родительского процесса , т. е. процесса , породившего данный. Для ps это – bash , а для bash , очевидно, login
А что тогда находится в поле CMD?
В первой лекции ‘Одновременный доступ к системе’
Более того, ничто не препятствует зарегистрироваться в системе несколько раз под одним и тем же входным именем
Имеется ввиду авторнизоваться на месте зарегистрироваться?
Лекция 9, там где говорится «[methody@localhost methody]$ cat | hexdump -C Теперь Ctrl+V, Ctrl+C, enter и Ctrl+D^C»
вывод должен быть таким:
cat | hexdump -C
^C
00000000 03 0a |..|
00000002
Даже в тексте говорится про то, что оборажаются именно коды 03 0a, а скопирован кусок текста описания.
У меня win7x64, для прохождения курса я намерен установить linux в виртуальной машине vmware player 7.0.0. Посоветуйте, пожалуйста, какая сборка подходит.
Mint как самый простой в освоении — для настройки не требует знаний консоли, Ubuntu — так же хороша, но лучше ставить какой-нибудь lUbuntu или xUbuntu — та же убунту, но с рабочим столом LXDE и XFCE.
Источник
Введение в операционную систему Unix
Ход занятия
1. Сегодня мы с вами начинаем изучать Linux, как одну из составных частей мира информационных технологий под названием Unix. Все вы, ну или практически все раньше сталкивались с ОС семейства Windows . Я хочу сделать небольшое примечание – Unix не Windows , он не похож на него (не считая внешнего сходства) и приемы работы в unix отличаются от приемов работы в Windows . Unix – это не только операционная система , это еще и идеология работы с компьютером. Те правила, о которых мы с вами будем говорить сейчас лежат в основе изучения Linux, да и Unix вообще. Общий термин для них – Unix Way:
- одна задача – одна программа . В Unix не принято делать комбайны для выполнения «сразу всего». Программа делается таким образом, чтобы она могла выполнять одно простое действие, но выполняла его хорошо.
- есть множество путей решения.Для решений той или иной комплексной задачи каждый может выбирать свой набор простых компонентов для ее решения.
- все есть файл . Самая замечательная концепция в unix. Действительно, в Unix все представлено в виде файлов – программы, настройки, системные данные и даже устройства. И с устройствами можно работать как с простыми файлами.
Остальную часть Unix way мы с Вами будем изучать в течение этого курса. Будьте готовы к изучению не просто новых программ, а новых методов работы на компьютере.
2. В 1969 году Кен Томпсон и Денис Ритчи, работники корпорации AT&T, создали небольшую операционную систему для компьютера PDP-7. Эта операционная система получила название Unix. Однако в планы компании AT&T не входило распространение этой операционной системы, и она предоставила ее за символическую плату учебным заведениям США, не организовав при этом службы технического сопровождения, исправления ошибок и вообще не дав никаких гарантий.
Вследствие этого пользователи, почти все являвшиеся представителями университетских вычислительных центров, были вынуждены сотрудничать друг с другом. Они сами устраняли ошибки, создавали полезные программы и утилиты и совместно их использовали. Результатом их работы стала целая серия версий Unix, распространяемых под эгидой компании Bell Labs вплоть до 1990 года (Последней версией была Unix System V Release 4 – SVR4 ).
Одна из групп пользователей Unix находилась в калифорнийском университете в Беркли. В 1977 году специалисты этого учебного заведения сделали следующий шаг в истории Unix и приступили к распространению магнитных лент с операционной системой 2BSD (Berkeley Software Distribution ). С тех пор было продано 75 копий.
На основании Unix SVR4 и BSD были созданы все современные разновидности Unix.
3. Существует множество разновидностей Unix и Unix-подобных систем. К наиболее известным из них относятся Solaris (ранее SunOS) корпорации SUN Microsystems, AIX компании IBM , DEC Unix фирмы DEC , SCO UnixWare и прочие. Все вышеназванные системы являются коммерческими, и многие из них имеют высокую цену. Они работают на различных архитектурах (Intel, Sparc, Alpha , PowerPC и т.д.). Однако наибольший интерес сегодня в мире Unix приобрели операционные системы, построенные на модели открытого кода, такие как Linux.
Linux изначально была разработана как свободно распространяемая версия Unix. В 1991 году студент Хельсинского университета Линус Торвальдс выпустил первую версию Linux. Она была основана на операционной системе Minix – ограниченном аналоге Unix для ПК. После выпуска первого «почти безошибочного» релиза в марте 1992 года, многие программисты мира подключились к разработке этой операционной системы, и она стала расти.
На сегодняшний день Linux является полнофункциональным, открытым и, зачастую, бесплатным, аналогом Unix. Но этого бы не произошло, не будь программного обеспечения в рамках проекта GNU ( GNU ’s not Unix, GNU – это не Unix). Linux содержит много утилит GNU , включая трансляторы многих языков программирования ( C , C ++, Fortran, Pascal , LISP , Ada , BASIC, SmallTallk, Perl, PHP , Tcl /Tk и др.), отладчики, текстовые редакторы, утилиты печати и многое другое. Проект GNU развивается под эгидой фонда свободно распространяемого программного обеспечения – Free Software Foundation ( FSF ).
4. Linux является свободно распространяемой многозадачной многопользовательской операционной системой , похожей на Unix. Linux была разработана специально для платформы ПК (с процессором Intel) и благодаря преимуществам архитектуры позволяет достичь производительности, сравнимой с мощными рабочими станциями Unix. Linux также переносилась и на другие платформы, но все эти версии сходны с версией для ПК.
Давайте рассмотрим операционную систему как единый комплекс. Ниже приведен список того, что мы получим, установив ее:
Ядро — это основная часть операционной системы. Оно отвечает за распределение памяти , управление процессами и периферийными устройствами. Для поддержки большего объема оперативной памяти по сравнению с физически установленной на компьютере, ядро позволяет использовать область подкачки, размещая страницы оперативной памяти на жестком диске.
Ядро Linux поддерживает множество файловых систем, включая FAT , FAT32 . Собственные файловые системы Linux (ext2fs и ext3fs) разработаны для оптимального использования дискового пространства.
Linux содержит множество утилит GNU , без которых была бы невозможна работа с операционной системой.
Графический интерфейс пользователя представлен в Linux средой X Window. Различные оконные менеджеры (IceWM, WindowMaker, Fluxbox и прочие) и графические среды такие как KDE и GNOME, обеспечивают удобный интерфейс и работу со средствами мультимедиа .
Интерфейсы DOS и Windows:
Поскольку Linux была создана для компьютеров класса ПК, разработчики посчитали необходимым обеспечить совместимость с программами MS- DOS . В Linux предлагается эмулятор DOS как часть дистрибутива. Он позволяет исполнять DOS -приложения непосредственно из-под Linux. Для запуска программ Microsoft Windows было разработано несколько средств. Наиболее известное из них – WINE – свободная реализация Windows API . Wine также входит в большинство дистрибутивов Linux.
Linux позволяет без проблем переносить файлы между файловыми системами DOS и Windows , напрямую обращаясь к соответствующим разделам на диске, хотя это и требует некоторой настройки.
TCP/IP – основная сетевая система используемая Unix и Linux. TCP/IP – это целый набор протоколов, разработанных для Internet . Однако для объединения в локальные сети машин Unix тоже используется TCP/IP . Также Linux поддерживает другие протоколы, такие как IPX/ SPX , AppleTalk и т.д.
5. Встает вопрос – как же узнать тип операционной системы, установленной у вас на компьютере. Для получения такой информации существует утилита uname (Unix NAME) .
uname , запущенная без параметров, покажет базовое имя системы:
Также она может принимать следующие параметры:
-s – показывает название ядра системы
-r – имя релиза ядра системы
-v – имя версии, а также дату компиляции ядра
-o – операционную систему
-p – тип процессора
-m – тип оборудования (i386, i686, Alpha )
-a – всю информацию сразу
Это не все параметры uname. О справке Linux мы поговорим с вами на «лекции 5» .
Команда free показывает объем памяти и объем ее использования, а также использование swap :
Обратите внимание, что практически вся свободная память резервируется системой под дисковые буферы и дисковый кэш , что позволяет Linux более эффективно работать с дисками.
Состояние системы в данный момент, степень ее загруженности и время без перезагрузок показывает команда uptime :
Первым идет текущее время , потом, после слова up – время, прошедшее с момента включения компьютера, потом показано сколько пользователей зарегистрировано сейчас в системе (это может быть и несколько регистраций одного и того же пользователя) и загрузка системы. Загрузка системы показывается в количестве процессов, одновременно работающих в системе, среднее значение за 1-ну, 5 и 15 минут. Система считается нагруженной, если это значение превышает 1 в расчете на 1 процессор .
Другим средством мониторинга производительности является команда vmstat :
Эта команда выдает за раз достаточно большой объем информации.
r — количество ожидающих процессов
b — количество спящих процессов
swpd — объем используемой виртуальной памяти
free — объем свободной виртуальной памяти
buff — объем памяти, занятой под дисковые буферы
cache — объем памяти, занятой под дисковый кэш
si — объем памяти, подкачанной с диска
so — объем памяти, выгруженной на диск
bi — количество блоков, отправленных на блочное устройство
bo — количество блоков, прочитанных с блочного устройства
in — количество прерываний в секунду
cs — количество переключений контекста в секунду
us — время выполнения кода уровня пользователя (в процентах от общего времени)
sy — время выполнения кода уровня системы (в процентах от общего времени)
id — время простоя процессора (в процентах от общего времени)
wa — время ожидания ввода/вывода
st — время работы виртуальной машины уровня ядра
vmstat показывает при простом запуске усредненные показатели за все время с момента запуска системы. Но можно попросить vmstat вывести показатели за заданное количество времени:
В примере выведена информация за каждую секунду на протяжении 5 секунд. Если второй параметр ( 5 ) не указывать, то vmstat будет выводить информацию каждую секунду до нажатия Ctrl+C :
Для просмотра размеров файловых систем используется команда df :
Без параметров команда выводит данные в виде количества блоков по 1 килобайту. Для человека это не очень удобная подача информации. У df существует ключ — h (или — human ), позволяющий увидеть объемы в привычных нам единицах измерения:
Источник