Тема1 Введение в unix
UNIX - это семейство операционных систем, объединенных одной идеологией и очень большой совместимостью на уровне исходных текстов программ. Любая система UNIX является многопользовательской, мультизадачной, многопоточной, сетевой операционной системой. UNIX-системы работают на всех существующих платформах от суперкомпьютеров до устройств, встраиваемых в бытовые приборы. Вы можете построить все, что захотите, от компьютеризированной кофеварки до систем планетарного масштаба. Скорость и производительность этих операционных систем на порядок лучше конкурирующих. За годы существования UNIX-системы приобрели феноменальную устойчивость к сбоям. Многие ОС работают без перезагрузки по несколько лет. Известная шутка по поводу наступления конца света, когда на атомных станциях начнут ставить Windows NT, а не UNIX, по-моему, шуткой не является. Системы на базе UNIX имеют хорошую защищенность от злоумышленников - не даром провайдеры строят свои сервера на нем.
Тема2 Загрузка системы и выход из нее.
Существует несколько способов загрузки системы: либо с дискеты, либо с жесткого диска. 2.1.1 Использование загрузочной дискеты
Многие загружают Linux, используя "загрузочную дискету", которая содержит копию ядра Linux. В ядре есть информация о корневом разделе Linux, так что ядро знает, где искать на жестком диске корневую файловую систему. Это тип дискеты, созданной, например, Slackware в процессе инсталляции.
Для создания своей собственной загрузочной дискеты, сначала разместите образ ядра на своем жестком диске. Оно должно быть в файле /Image или /etc/Image. Некоторые инсталляции используют для формирования ядра файл /vmlinux.
Вместо этого у Вас может быть скомпрессированное ядро, (^компрессированное ядро само раскомпрессируется при загрузке в память и занимает значительно меньше места на диске. Если у Вас есть скомпрессированное ядро, оно находится в файле /zlmage или /etc/zlrnage. Зная, где у Вас находится ядро, установите корневое устройство в образе ядра на имя вашего корневого раздела командой rdev. Формат команды:
rdev <kemel-name> <root-device> где <kernel-name>; это имя образа ядра, a <root-device> - имя корневого раздела Linux. Например, для установки корневого устройства в ядре /etc/Image на /dev/hda2 используется команда
# rdev /etc/Image /dev/hda2
rdev может устанавливать другие опции в ядре, такие как взятый по умолчанию режим SVGA, для использования во время загрузки. Используйте "rdev -h" для получения помощи. После установки корневого устройства Вы можете просто скопировать образ ядра на дискету. При копировании данных на дискету, хорошо бы сначала отформатировать дискету в MS-DOS. При форматировании выдается информация о секторах и треках дискеты, так что можно определить какую плотность записи имеет эта дискета. Например, для копирования файла ядра /etc/Image на дискету в /etc/fdO используйте команду
# ср /etc/Image /dev/fdO
Теперь эта дискета должна загружать Linux. 2.1.2 Использование LILO
Другой метод загрузки - это использование LILO, программы, которая располагается в загрузочном секторе вашего жесткого диска. Эта программа выполняется, когда система загружается с жесткого диска и может автоматически загрузить Linux из образа ядра, хранящегося на жестком диске.
LILO может быть также использована, как начальный загрузчик для нескольких операционных систем, позволяя вам выбирать во время загрузки, какую операционную систему (например, Linux или MS-DOS) загружать. Когда Вы загружаетесь с использованием LILO, то загружается операционная система, установленная по умолчанию, если Вы не нажмете Ctrl, alt или shift во время выполнения загрузочной последовательности. Если Вы нажмете любой из этих ключей, то вам будет выдана подсказка загрузчика, в ответ на которую Вы напечатаете имя операционной системы, которую надо загрузить (например, "iinux" или "msdos"). Если Вы нажмете tab в ответ на подсказку загрузчика, вам будет выдан перечень доступных операционных систем.
Простой способ инсталлировать LILO - отредактировать файл конфигурации /etc/lilo.conf и выполнить команду
# /sbin/lilo
Файл конфигурации LILO содержит "stanza"("cTaHCbin - не пугайтесь, это действительно про поэзию), для каждой операционной системы, которую Вы желаете загрузить. Лучший способ продемонстрировать это на примере конфигурационного файла LILO config. Нижеприведенные установки для системы, которая имеет корневой раздел Linux на /dev/hdal и раздел MS-DOS на/dev/hda2.
Tell LILO to modify the boot record on /dev/hda (the first
non-SCSI hard drive). If you boot from a drive other than /dev/hda,
change the following line, boot = /dev/hda
Name of the boot loader. No reason to modify this
un less you're doing some serious hacking on LILO.
install = /boot/boot.b
Have LILO perform some optimization, compact
Stanza for Linux root partition on /dev/hdal. image = /etc/Image # Location of kernel
label = linux # Name of OS (for the LILO boot menu)
root = /dev/hdal # Location of root partition
vga = ask # Tell kernel to ask for SVGA modes at boot time
# Stanza for MSDOS partition on /dev/hda2. other - /dev/hda2 # Location of partition
table = /dev/hda # Location of partition table for /dev/hda2
label = msdos # Name of OS (for boot menu) Стансы первой операционной системы в файле config - это та ОС, которую LILO загружает по умолчанию. Вы можете выбрать другую ОС во время загрузки в ответ на подсказку LILO, как это уже обсуждалось ранее.
Помните, что каждый раз, когда Вы изменяете, образ ядра на диске, Вы должны заново выполнить /sbin/lilo, чтобы изменения отразились в загрузочном секторе вашего диска. Имейте также в виду, что если Вы используете здесь строку "root -", нет смысла использовать rdev для установки корневого раздела в образе ядра. LILO установит ее во время загрузки.
Регистрация в системе Прежде, чем Вы сможете использовать систему, Вы должны зарегистрировать себя в системе. Это необходимо потому, что неразумно использовать имя суперпользователя (root) для обычных нужд. Пользователь root нужен для выполнения привилегированных команд и сопровождения системы. Есть, однако, еще несколько неперсонируемых регистрационных имён, которые используются для системных целей. Пароли в файле /etc/passwd обычно заменяют звёздочкой, чтобы в их бюджет нельзя было войти. • root- привилегированный пользователь. UNIX позволяет пользователю выполнять над файлом или процессом любую операцию. Кроме того, некоторые системные вызовы может выполнять только привилегированный пользователь. Например:
монтирование и демонтирование файловой системы
изменение корневого каталога
создание файлов устройств
установка системных часов
изменение принадлежности файлов
увеличение лимитов использования ресурсов и назначение приоритетов процессов
задание hoct-имени системы
конфигурирование сетевых интерфейсов
останов системы
daemon- владелец непривилегированного программного обеспечения. Файлы, которые должны принадлежать ОС, а не конкретному пользователю, часто назначаются этому пользователю а не пользователю root, чтобы уменьшить угрозу безопасности.
bin- владелец системных команд. Является владельцем каталогов, которые содержат системные команды, а также большинство выполняемых файлов.
sys- владелец образов ядра и памяти. Владеет специальными файлами, такими как /dev/kmem, /dev/mem и /dev/drum или /dev/swap, которые содержат соответственно ад-
ресное пространство ядра, физическую память системы и образ пространства свопинга системы.
• nobody- владелец ничего. Владелец программного обеспечения, которому не нужны специальные права доступа или который не должен их иметь. Сетевая файловая система использует это средство для защиты файловых серверов в сетях, где бездисковые клиенты могут перегружаться в однопользовательском режиме. Для того, чтобы зарегистрировать себя, вам необходимо зайти в систему под именем root и
использовать команду useradd или adduser.
Вход в систему При входе Вы увидите на экране подсказку, например, такого вида:
mousehouse login: Введите свое имя и нажмите клавишу Return. Нам напечатает следующее:
mousehouse login: larry
Password: Теперь введите ваш пароль (password). При вводе пароль не будет отображаться на экране, так что набирайте внимательнее. Если Вы неправильно набрали пароль, то увидите на экране сообщение
Login incorrect и вам следует попытаться еще раз.
Когда Вы наконец правильно введете имя пользователя и пароль, Вы официально будете допущены в систему и можете в ней свободно путешествовать.
ТемаЗ Работа с файлами и каталогахми
Во многих операционных системах (включая UNIX) существует концепция файла, по которой его можно рассматривать просто, как набор информации, которому дано имя. Примерами файлов будут: программа, которая может выполняться, письмо, полученное по электронной почте, написанная вами статья. Существенно то, что все, что хранится на диске, хранится в отдельных файлах.
Файлы идентифицируются по именам. Эти имена обычно каким-то образом отражают содержание. Не существует стандартного формата имен файлов, как в MS-DOS и других операционных системах; в общем случае имена файлов могут содержать любые символы (кроме / - смотрите ниже обсуждение формирования "путей") и ограничены 256 символами по длине.
Одновременно с концепцией файла рассмотрим и концепцию каталога. Каталог - это совокупность файлов. Его можно рассматривать как "папку", содержащую множество различных файлов. Каталоги сами по себе также получают имена, по которым Вы их различаете. Каталоги организованы в древовидную структуру, т.е. каталоги, могут содержать другие каталоги.
К файлу можно обращаться по пути (pathname), формируемого из имени файла, которому предшествует имя каталога, содержащего файл. Например, скажем, Larry имеет каталог, названный papers, который содержит три файла: history-final, english-lit, и masters-thesis. (Каждый из этих трех файлов содержит информацию о проводимых Larry работах). Для того чтобы обратиться к файлу english-lit, Larry может указать маршрут: papers/english-lit
Как Вы видите, имена каталогов и файлов разделяются единичным слэшем (/). Поэтому имена файлов сами по себе не могут содержать этот символ. Пользователи MS-DOS увидят в этом что-то знакомое, поскольку в MS-DOS для этого используется бэкслэш (\).
Как уже говорилось, каталоги могут быть вставлены друг в друга. Например, пусть Larry в каталоге papers имеет другой каталог с названием notes. Этот каталог содержит файлы с именами math-notes и cheat-sheet. Путь файла cheat-sheet будет
papers/notes/cheat-sheet Поэтому путь - это маршрут, который надо проделать, чтобы добраться до конкретного файла. Каталог выше данного (под)каталога называется родительским каталогом. Здесь каталог papers является родительским для каталога notes.
Дерево каталогов
Большинство систем UNIX имеет стандартную структуру каталогов, что облегчает конкретную установку системы. Структура представляет собой дерево каталогов, начинающееся с каталога л7", известного под названием "корневой каталог". Каталоги ниже / относятся к числу важнейших подкаталогов: среди них /bin, /etc, /dev, и /usr. Эти каталоги в свою очередь содержат другие каталоги, которые содержат системные конфигурационные файлы, программы и т.д.
В частности, каждый пользователь имеет домашний каталог, который выделяется пользователю для хранения его файлов. В вышеприведенном примере все файлы Larry (такие как cheat-sheet и history-final) содержались в домашнем каталоге Larry. Обычно домашний пользовательский каталог находится под каталогом /home и называется именем пользователя. Так домашний каталог Larry будет /home/larry.
На Рис. 1 представлено простое дерево каталогов. Оно даст вам некоторое представление о том, как организуется дерево каталогов в вашей системе.
Текущий рабочий каталог Команды, которые Вы даете shell, выдаются из вашего текущего каталога. Вы можете думать о вашем рабочем каталоге, как о каталоге, в котором Вы находитесь. При начальном входе в систему вашим рабочим каталогом автоматически становится домашний каталог (в нашем случае /home/larry). При обращении к файлу Вы можете обращаться к нему с учетом вашего местоположения, вместо того, чтобы указывать полный путь.
Вот, например, у Larry есть каталог papers, a papers содержит файл history-final. Если Larry хочет посмотреть этот файл, он может использовать команду
/home/larry# more /home/larry/papers/history- final Команда more просто показывает файл на экране порциями. Поскольку текущий рабочий каталог Larry /home/larry, он вместо этого может обратиться к файлу с учетом своего текущего местоположения. Команда будет
/home/larry# more papers/history-final Так что Вы можете начинать имя файла (такого как papers/final) с символа, отличного от "7", система предполагает, что Вы обращаетесь к файлу с учетом вашего текущего рабочего каталога. Это называют относительным именем (а полный маршрут - полное (абсолютное) имя
- т.е. путь от корня до данного имени).