Администрирование ОС Linux

Введение в операционную систему Unix

Показывать лекцию целиком

Ход занятия

1. Сегодня мы с вами начинаем изучать Linux, как одну из составных частей мира информационных технологий под названием Unix. Все вы, ну или практически все раньше сталкивались с ОС семейства Windows. Я хочу сделать небольшое примечание – Unix не Windows, он не похож на него (не считая внешнего сходства) и приемы работы в unix отличаются от приемов работы в Windows. Unix – это не только операционная система, это еще и идеология работы с компьютером. Те правила, о которых мы с вами будем говорить сейчас лежат в основе изучения Linux, да и Unix вообще. Общий термин для них – Unix Way:

  • одна задача – одна программа . В Unix не принято делать комбайны для выполнения "сразу всего". Программа делается таким образом, чтобы она могла выполнять одно простое действие, но выполняла его хорошо.
  • есть множество путей решения.Для решений той или иной комплексной задачи каждый может выбирать свой набор простых компонентов для ее решения.
  • все есть файл . Самая замечательная концепция в unix. Действительно, в Unix все представлено в виде файлов – программы, настройки, системные данные и даже устройства. И с устройствами можно работать как с простыми файлами.
  • Остальную часть Unix way мы с Вами будем изучать в течение этого курса. Будьте готовы к изучению не просто новых программ, а новых методов работы на компьютере.

    2. В 1969 году Кен Томпсон и Денис Ритчи, работники корпорации ATT, создали небольшую операционную систему для компьютера PDP-7. Эта операционная система получила название Unix. Однако в планы компании ATT не входило распространение этой операционной системы, и она предоставила ее за символическую плату учебным заведениям США, не организовав при этом службы технического сопровождения, исправления ошибок и вообще не дав никаких гарантий.

    Вследствие этого пользователи, почти все являвшиеся представителями университетских вычислительных центров, были вынуждены сотрудничать друг с другом. Они сами устраняли ошибки, создавали полезные программы и утилиты и совместно их использовали. Результатом их работы стала целая серия версий 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:

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

    Ядро Linux поддерживает множество файловых систем, включая FAT, FAT32. Собственные файловые системы Linux (ext2fs и ext3fs) разработаны для оптимального использования дискового пространства.

    Утилиты GNU:

    Linux содержит множество утилит GNU, без которых была бы невозможна работа с операционной системой.

    X Window:

    Графический интерфейс пользователя представлен в 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 , запущенная без параметров, покажет базовое имя системы:

    gserg@ADM:~$ uname 
      Linux

    Также она может принимать следующие параметры:

    -s – показывает название ядра системы

    -r – имя релиза ядра системы

    -v – имя версии, а также дату компиляции ядра

    -o – операционную систему

    -p – тип процессора

    -m – тип оборудования (i386, i686, Alpha)

    -a – всю информацию сразу

    Это не все параметры uname. О справке Linux мы поговорим с вами на лекции 5.

    Команда free показывает объем памяти и объем ее использования, а также использование swap :

    gserg@ADM:~$ free 
                 total       used       free     shared    buffers     cached 
     Mem:       498916     483332      15584          0       4392     112924 
     -/+ buffers/cache:    366016      132900 
     Swap:     1453840     412532      1041308

    Обратите внимание, что практически вся свободная память резервируется системой под дисковые буферы и дисковый кэш, что позволяет Linux более эффективно работать с дисками.

    Состояние системы в данный момент, степень ее загруженности и время без перезагрузок показывает команда uptime :

    gserg@ADM:~$ uptime 
      14:24:08 up 1 day,  6:01,  2 users,  load average: 0.08, 0.19, 0.16

    Первым идет текущее время, потом, после слова up – время, прошедшее с момента включения компьютера, потом показано сколько пользователей зарегистрировано сейчас в системе (это может быть и несколько регистраций одного и того же пользователя) и загрузка системы. Загрузка системы показывается в количестве процессов, одновременно работающих в системе, среднее значение за 1-ну, 5 и 15 минут. Система считается нагруженной, если это значение превышает 1 в расчете на 1 процессор.

    Другим средством мониторинга производительности является команда vmstat :

    [gserg@admin ~]$ vmstat  
     procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
      r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
      0  0 268928 776168  15072 203316    1    2    10    14  207  225 13  3 84  0  0

    Эта команда выдает за раз достаточно большой объем информации.

    Раздел procs :

    r — количество ожидающих процессов

    b — количество спящих процессов

    Раздел memory :

    swpd — объем используемой виртуальной памяти

    free — объем свободной виртуальной памяти

    buff — объем памяти, занятой под дисковые буферы

    cache - объем памяти, занятой под дисковый кэш

    Раздел swap :

    si — объем памяти, подкачанной с диска

    so — объем памяти, выгруженной на диск

    Раздел io :

    bi — количество блоков, отправленных на блочное устройство

    bo — количество блоков, прочитанных с блочного устройства

    Раздел system :

    in — количество прерываний в секунду

    cs — количество переключений контекста в секунду

    Раздел cpu :

    us — время выполнения кода уровня пользователя (в процентах от общего времени)

    sy — время выполнения кода уровня системы (в процентах от общего времени)

    id — время простоя процессора (в процентах от общего времени)

    wa — время ожидания ввода/вывода

    st — время работы виртуальной машины уровня ядра

    vmstat показывает при простом запуске усредненные показатели за все время с момента запуска системы. Но можно попросить vmstat вывести показатели за заданное количество времени:

    [gserg@admin ~]$ vmstat 1 5 
     procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
      r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
      1  0 268844 742148  16620 212452    1    2    10    14  216  230 13  3 84  0  0  
      0  0 268844 742140  16628 212436    0    0     0    48 1097  414  6  2 92  0  0  
      0  0 268844 742140  16628 212436    0    0     0     0 1105  392  5  1 94  0  0  
      0  0 268844 742172  16628 212436    0    0     0     0 1090  345  4  1 95  0  0  
      0  0 268844 742172  16628 212436    0    0     0     0 1107  403  6  1 93  0  0

    В примере выведена информация за каждую секунду на протяжении 5 секунд. Если второй параметр ( 5 ) не указывать, то vmstat будет выводить информацию каждую секунду до нажатия Ctrl+C :

    [gserg@admin ~]$ vmstat 1  
     procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------  
      r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st  
      0  0 268844 740824  16824 212720    1    2    10    14  217  230 13  3 84  0  0  
      0  0 268844 740856  16824 212720    0    0     0     0 1088  488  8  2 90  0  0  
      0  0 268844 740856  16824 212720    0    0     0     0 1392  873 14  4 82  0  0  
     ^C

    Для просмотра размеров файловых систем используется команда df:

    [gserg@admin ~]$ df  
     Файловая система     1K-блоков      Исп  Доступно  Исп% смонтирована на  
     /dev/hdb2             36733400  10074596  24762736  29% /  
     /dev/hdb1               101086     16228     79639  17% /boot  
     tmpfs                   647688         0    647688   0% /dev/shm

    Без параметров команда выводит данные в виде количества блоков по 1 килобайту. Для человека это не очень удобная подача информации. У df существует ключ - h (или -- human ), позволяющий увидеть объемы в привычных нам единицах измерения:

    [gserg@admin ~]$ df --human  
     Файловая система      Разм  Исп  Дост  Исп% смонтирована на  
     /dev/hdb2              36G  9,7G   24G  29% /  
     /dev/hdb1              99M   16M   78M  17% /boot  
     tmpfs                 633M     0  633M   0% /dev/shm
    Вернуться к учебному плану