Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Программные структуры
УСЛОВИЯ ПРОВЕРКИ ФАЙЛОВ:
Пример: document – имя существующего файла.
Вводя с клавиатуры командные строки, в первом случае получаем подтверждение (код завершения 0), во втором – опровержение (код завершения 1). УСЛОВИЯ ПРОВЕРКИ СТРОК:
Пример:
Команда test дает значение “истина” (код завершения 0), если в скобках стоит просто непустое слово. Кроме того, существуют два стандартных значения условия, которые можно использовать без скобок:
УСЛОВИЯ СРАВНЕНИЯ ЦЕЛЫХ ЧИСЕЛ:
Пример:
СЛОЖНЫЕ УСЛОВИЯ:
Пример:
Рекомендуется не злоупотреблять сложными условиями. Условный оператор if В общем случае оператор if имеет структуру:
Пример: ### # if-script: Оценка достижений echo –n " Какую оценку получил на экзамене по ОС Linux? " echo read z if [ $z = 5 ] thenecho Не может быть! elif [ $z = 4 ] then echo Тебеповезло! elif [ $z = 3 ] then echo Молодец! elif [ $z = 2 ] thenecho Этого следовало ожидать elseecho! fi Оператор выбора case Оператор выбора case имеет структуру:
Пример: ## # case-script: Оценка достижений echo –n " Какую оценку получил на экзамене по ОС Linux? " readz case $zin 5) echo Не может быть!;; 4) echo Тебе повезло!;; 3) echo Молодец!;; 2) echo Этого следовало ожидать;; *) echo!;; esac Обычно последняя строка выбора имеет шаблон (*), что означает “любое значение”. Еще один пример: ### # case-menu: Реализация меню echo "Назовите файл и через пробел наберите цифру, соответствующую требуемой обработке: 1 – отсортировать 2 – выдать на экран 3 – определить число строк " readxy # x – имя файла, y – что сделать case $y in 1) sort< $x; 2) cat< $x; 3) wc -l < $x; *) echo " Неизвестная команда! ";; esac Оператор цикла с перечислением for Оператор цикла for имеет структуру:
Пример: пусть команда lsort представлена командным файлом: for i in f1 f2 f3 do script-sort $i done Здесь имя "i" – параметр цикла, который можно рассматривать как shell-переменную, принимающую последовательно перечисленные значения (f1, f2, f3). В цикле выполняется команда script-sort. Пусть script-sort представляет собой командный файл, в котором последовательно выполняется сортировка указанных файлов, результаты сортировки выдаются на печать (/dev/lp) и затем записываются в файлы f1_sorted, f2_sorted и f3_sorted: cat $1 | sort | tee /dev/lp > ${1}_sorted Тогда головная программ может иметь вид: for i do script-sort $i done Отсутствие перечисления имен указывает на то, что список поступает через параметры команды: lsortf1f2 f3 Часто используется форма "foriin *", означающая "для всех файлов текущего каталога". Оператор цикла с истинным условием while Структура с истинным условием обеспечивает выполнение расчетов, когда неизвестен точный список значений параметров или этот список должен быть получен в результате вычислений в цикле:
Список команд в теле цикла повторяется до тех пор, пока сохраняется истинность условия (код завершения последней команды в теле цикла равен 0) или цикл не будет прерван изнутри специальными командами:
При первом входе в цикл условие должно выполняться. Пример: ### # print-20: печать 50-ти экземпляров файла test
Оператор цикла с ложным условием until Оператор цикла until имеет структуру:
Список команд в теле цикла повторяется до тех пор, пока сохраняется ложность условия или цикл не будет прерван изнутри специальными командами (break, continue, exit). При первом входе в цикл условие не должно выполняться. Отличие оператора until от оператора while состоит в том, что условие цикла проверяется на ложность (на ненулевой код завершения последней команды тела цикла) проверяется после каждого (в том числе и первого) выполнения команд тела цикла. Пример: # Ожидание полудня untildate | grep 12:00 do sleep 30 done каждые 30 секунд выполняется командная строка условия: команда date выдает текущую дату и время, команда grep, получив эту информацию через конвейер, сравнивает ее с заданным шаблоном "12:00". При несовпадении grep выдает код возврата "1" ("ложь"), и выполняет переход в ожидание на 30 секунд, после чего повторяется проверка условия. В полдень условие станет истинным, работа цикла закончится выведением на экран соответствующей строки. Пустой оператор Пустой оператор ничего не делает, возвращает значение "0" и имеет формат : Пустой оператор используется, например в конструкции "while: " или ставится в начале командного файла, чтобы гарантировать, что файл не будет принят за выполняемый файл для оболочки csh. Функции в shell Функция позволяет подготовить список команд shell для последующего выполнения. Описание функции имеет вид:
Обращение к функции происходит по имени. При выполнении функции не создается нового процесса, она выполняется в среде существующего. Аргументы функции становятся ее позиционными параметрами, имя функции – ее нулевой параметр. Прервать выполнение функции можно оператором return [n], где необязательное n – код возврата. В качестве примера рассмотрим выполнение файла ffnn, содержащего описание и вызов функции fn:
На экране получим: xx=xx xx=xx ffnn: 749 a b xx=yy xx=yy Вопрос Работа с пакетами Все основные дистрибутивы Linux используют идею пакетов. Пакет содержит набор файлов, комментарии, файлы сценариев, информацию о том, какие дополнительные пакеты необходимы для нормальной работы. Если программа доступна в виде пакета в формате, поддерживаемом дистрибутивом, достаточно одной команды для установки этой программы в систему. RedHat Linux и все дистрибутивы на его основе используют систему управления пакетами RPM (RedHatPackageManager). RPM позволяет легко устанавливать и удалять пакеты, выполнять поиск различного вида по своей базе данных. При переинсталляции и обновлении пакетов можно сохранять конфигурационные файлы, так что в дальнейшем пользователь оказывается в знакомом окружении. Систему, основанную на RPM целиком, никогда не придется переустанавливать, так как все переходы от версии к версии можно осуществить с помощью простых обновлений. Работать с RPM можно как и из командной строки, используя команду rpm, так и при помощи Х-программы GnoRPM, предоставляющей удобный графический интерфейс. Программа GnoRPM является приложением для рабочего стола GNOME. Команду rpm можно вызвать в одном из десяти режимов: инсталляция, запрос, проверка, проверка подписи, деинсталляция, создание, перестройка базы данных, исправление прав доступа, исправление владельцев и групп, вывод используемого RC-файла. Р,рассмотрим подробно только три режима - удаление пакета из системы (деинсталляцию), установку в систему (инсталляцию) и создание. Для всех рассматриваемых режимов работы программы грm действительны следующие опции: -v вывод дополнительной информации; -vv вывод дополнительной и отладочной информации; -keep-temps нe удалять временные файлы из /tmp; -quiet нe выводить ничего, кроме сообщении об ошибках; -rcfile файл использовать указанный файл вместо /etc/ rpmгс; -root каталог использовать файловую систему, смонтированную в указанном каталоге для всех операций; -dbpath путь использовать базу данных RPM, расположенную по указанному пути; -help, --version стандартные GNU-опции, подсказка и номер версии. Принятый формат имени пакета в RPM имеет вид: имя-версия-модификация.архитектура.грm Таким образом, если выходит новая версия программы, не нужно ждать создания RPM и включения его в дистрибутив: в большинстве случаев patch-файлы старой версии будут действительны для новой и все конфигурационные настройки по-прежнему будут правильно подобраны.
Вопрос WindowsNTявляется 32разрядной ОС с приоритетной многозадачностью и многопользовательским интерфейсом. Особенности ОС WindowsNT: · совместимость · переносимость · масштабируемость · безопасность · распределенная обработка · надежность и отказоустойчивость · возможности локализации · расширяемость Windows NT представляет собой модульную операционную систему, которая состоит из отдельных взаимосвязанных относительно простых модулей. Структурно архитектуру WindowsNT можно разделить на две части: 1. Первая часть работает в режиме ядра и называется исполнительной системой Windows 2. Вторая часть работает в режиме пользователя. Эту часть составляют защищенные подсистемы ОС. Типы пользовательских процессов: • фиксированные процессы поддержки системы • процессы сервисов • подсистемы окружения • пользовательские приложения Основными модулямиWindowsNT являются: • уровеньаппаратныхабстракций HAL (Hardware Abstraction Layer), • ядро (Kernel), • драйверы устройств; • исполнительная система (Executive), • защищенные подсистемы (Protected subsystems), • подсистемы среды (Environment subsystems).
Уровень аппаратных абстракций (hardwareabstractionlayer, HAL), изолирующий ядро, драйверы и исполнительную систему Windows от специфики оборудования на данной аппаратной платформе. Уровень аппаратных абстракций (HAL) представляет собой создаваемый производителями аппаратных средств слой программного обеспечения, который скрывает (или абстрагирует) особенности и различия аппаратуры от верхних уровней операционной системы. Таким образом, различные аппаратные средства выглядят аналогично с точки зрения операционной системы: снимается необходимость специальной подстройки операционной системы под используемое оборудование. Ядро (kernel) является основой модульного строения системы и координирует выполнение базовых операций WindowsNT. Ядро отвечает за планирование выполнения потоков, синхронизацию работы нескольких процессоров, обработку аппаратных прерываний и исключительных ситуаций. Ядро отделено от остальной части исполнительной системы; оно реализует системные механизмы и не участвует в принятии решений, связанных с системной политикой. Ядро осуществляет диспетчеризацию потоков управления которые являются основными объектами в планируемой системе. Ядро управляет двумя типами объектов: объекты диспетчеризации (dispatcherobjects) характеризуются сигнальным состоянием (signaled или nonsignaled) и управляют диспетчеризацией и синхронизацией системных операций. Эти объекты включают в свой состав события, мутанты, мутэксы (структура данных, обеспечивающая взаимоисключающую блокировку), семафоры, потоки управления и таймеры (events, mutants, mutexes, semaphores, threads, timers). управляющие объекты (controlobjects) используются для операций управления ядра, но не воздействуют на диспетчеризацию или синхронизацию. Управляющие объекты включают в себя асинхронные вызовы процедур, прерывания, уведомления и состояния источника питания, процессы и профили (asynchronousprocedurecalls, interrupts, powernotifies, powerstatuses, processes, profiles). Ядро выполняется полностью в привилегированном режиме и неперемещаемо (nonpageable) в памяти. Программное обеспечение ядра не является выгружаемым (preemptible), для него не может производиться переключение контекста (contextswitch).
Драйверы устройств (device drivers), в состав которых входят драйверы аппаратных устройств, транслирующие пользовательские вызовы функции ввода-вывода в запросы, специфичные для конкретного устройства, сетевые драйверы и драйверы файловых систем. Исполнительная система (executive) Windows, содержащая базовые сервисы ОС, которые обеспечивают управление памятью, процессами и потоками, защиту, ввод-вывод и взаимодействие между процессами. Защищенные подсистемы - это серверные процессы пользовательского режима, создаваемые ОС во время загрузки. После создания они функционируют постоянно, обрабатывая сообщения от прикладных процессов и других подсистем. Подсистемы среды представляют собой защищенные серверы пользовательского режима (user-mode), которые обеспечивают выполнение и поддержку приложений, разработанных для различных операционных систем. Подсистема поддержки окон и графики (windowingandgraphicssystem), реализующая функции графического пользовательского интерфейса (GUI).
Вопрос 16: Модель безопасности WindowsNT Модель безопасности Windows NT представлена монитором безопасности (Security Reference Monitor), а также двумя другими компонентами: процессом входа в систему (Logon Process) и безопасными защищенными подсистемами. Монитор безопасности отвечает за проведение в жизнь политики проверкиправильности доступа и контроля определенной локальной подсистемой безопасности. Монитор безопасности обеспечивает услуги по подтверждению доступа к объектам, проверке привилегий пользователя и генерации сообщений, как для режима ядра, так и для пользовательского режима. Монитор безопасности выполняется в режиме ядра. Процесс входа в систему Windows NT предусматривает обязательный вход в систему для идентификации пользователя, для того чтобы подсистема безопасности могла распознать имя пользователя и пароль. Распорядитель локальной безопасности (Local Security Authority):основа подсистемы безопасности Windows NT; генерирует маркеры доступа; управляет политикой локальной безопасности; обеспечивает интерактивный сервис аутентификации пользователя; управляет политикой контроля; регистрирует контрольные сообщения, сгенерированные монитором безопасности. Диспетчер бюджета безопасности(SAM) Поддерживает базу данных бюджетов пользователя, которая содержит информацию о бюджетах всех пользователей и групп. SAM обеспечивает аутентификацию пользователя, которая используется распорядителем локальной безопасности. Монитор безопасности - отвечает за проведение в жизнь политики проверки правильности доступа и контроля, определенной локальной подсистемой безопасности. Монитор безопасности обеспечивает услуги по подтверждению доступа к объектам, проверке привилегий пользователя и генерации сообщений, как для привилегированного режима, так и для режима пользователя. Монитор безопасности выполняется в режиме ядра.
|