Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Программные структуры





 

УСЛОВИЯ ПРОВЕРКИ ФАЙЛОВ:

-f filename файл filename является обычным файлом
-d filename файл filename – каталог
-c filename файл filename – специальный файл
-r filename имеется разрешение на чтение файла filename
-w filename имеется разрешение на запись в файл filename
-s filename файл filename не пустой

Пример: document – имя существующего файла.

[ -f document ]; echo $?
 
[ -d document ]; echo $?
 

Вводя с клавиатуры командные строки, в первом случае получаем подтверждение (код завершения 0), во втором – опровержение (код завершения 1).

УСЛОВИЯ ПРОВЕРКИ СТРОК:

str1 = str2 строки str1 и str2 совпадают
str1!= str2 строки str1 и str2 не совпадают
-n str1 строка str1 существует (непустая)
-z str1 строка str1 не существует (пустая)

Пример:

x="who is who"; export x; [ "who is who" = "$x" ]; echo $?
 
x=""; export x; [ -n "$x" ]; echo $?
 
[ privet ]; echo $?
 

Команда test дает значение “истина” (код завершения 0), если в скобках стоит просто непустое слово. Кроме того, существуют два стандартных значения условия, которые можно использовать без скобок:

true; echo $?
 
false; echo $?
 

УСЛОВИЯ СРАВНЕНИЯ ЦЕЛЫХ ЧИСЕЛ:

x -eq y x равно y
x -ne y x неравно y
x -gt y x больше y
x -ge y x больше или равно y
x -lt y x меньше y
x -le y x меньше или равно y

Пример:

x=321; export x; [ 321 -eq "$x" ]; echo $?
 

СЛОЖНЫЕ УСЛОВИЯ:

! (not) инвертирует значение кода завершения
-o (or) соответствует логическому ИЛИ
-a (and) соответствует логическому И

Пример:

[! privet ]; echo $?
 
x=privet; export x; [ "$x" -a -f document ]; echo $?
 

Рекомендуется не злоупотреблять сложными условиями.

Условный оператор if

В общем случае оператор if имеет структуру:

if условие then список [elif условие then список] [else список] fi Конструкции, заключенные в квадратные скобки, не являются обязательными. Самая усеченная структура этого оператора имеет вид: if условие then список fi  

Пример:

###

# 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 строка in шаблон) список команд;; шаблон) список команд;; ... esac   cтрока (это может быть и один символ) сравнивается с шаблоном, а затем выполняется список команд выбранной строки

Пример:

##

# 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 имеет структуру:

for имя [ in список значений ] do список команд done   фрагмент в квадратных скобках может отсутствовать

Пример: пусть команда 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

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

while условие do список команд done    

Список команд в теле цикла повторяется до тех пор, пока сохраняется истинность условия (код завершения последней команды в теле цикла равен 0) или цикл не будет прерван изнутри специальными командами:

break [n] позволяет выйти из цикла; n – число вложенных циклов, их которых надо выйти;
continue [n] прекращает выполнение текущего цикла и возвращает на начало цикла; n – номер цикла (из глубины), на начало которого нужно выйти;
exit [n] позволяет выйти из процедуры вообще с кодом возврата 0 или n, если n указано.

При первом входе в цикл условие должно выполняться.

Пример:

###

# print-20: печать 50-ти экземпляров файла test

cтруктура while cтруктура while c break
n=0 while [ $n -lt 50 ] # пока n < 50 do n=`expr $n + 1` cat test > /dev/lp done n=0 while true do if [ $n -lt 50 ] # если n < 50 then n=`expr $n + 1` else break fi cat test > /dev/lp done

Оператор цикла с ложным условием until

Оператор цикла until имеет структуру:

until условие do список команд done    

Список команд в теле цикла повторяется до тех пор, пока сохраняется ложность условия или цикл не будет прерван изнутри специальными командами (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:

echo $$ # номер процесса
fn() # описание функции
{  
echo xx=$xx  
echo $# # число позиционных параметров
echo $0: $$ $1 $2  
xx=yy; echo xx=$xx  
return 5  
}  
xx=xx; echo xx=$xx  
fn a b  
echo $? # значение, возвращенное последней командой
echo xx=$xx  

На экране получим:

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 обеспечивает аутентификацию пользователя, которая используется распорядителем локальной безопасности.

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

Date: 2015-07-27; view: 502; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию