Операционни Системи Компютърните Системи Основни елементи



страница8/8
Дата12.06.2017
Размер1.12 Mb.
#23375
1   2   3   4   5   6   7   8

12.1.1. Домени на защита

Елементите на компютърната система, които трябва да се защитават, се наричат обекти. Обектите могат да бъдат както апаратни (като процесор, области на памет, устройства), така и програмни (като програми, файлове, справочници, семафори). Елемент, който желае да получи достъп до обекти, се нарича субект. Типичен субект е процесът или процедурата. Процесът е активен елемент и генерира заявки за извършване на операции над защитените обекти (пасивните елементи). Възможните операции зависят от обекта. Например процесорът може да бъде използван за изпълнение на програми, над файловете се извършват операциите четене, запис, отваряне, затваряне и др., сегмент на паметта може да се чете и записва, над семафорите се изпълняват операциите Р и V. Субект и обект могат да си разменят ролите - например два процеса могат да установят защита един от друг и тогава те действат или като обект, или като субект.

Очевидно е, че трябва механизъм, който да разрешава достъпа на всеки субект само до обекти, за които е упълномощен да има достъп. Понякога различии субекти получават еднакви права на достъп по отношение на различии обекти. Механизмът трябва да дава възможност за ограничаване на операциите, изпълнявани от субекта над обектите. По-нататък, по всяко време той трябва да може да достигне тези обекти (ресурси), които са му текущо необходими за завършване на задачата му. Това изискване, означавано като „трябва-да-знае" (need-to-know), е полезно при ограничаването на размера на повредите, които неизправните процеси могат да причинят в системата. Например, когато процес р стартира процедура А, на процедурата е разрешен достъп до нейните собствени променливи и формалните параметри - тя не може да има достъп до всички променливи на процеса.

За да могат да се обсъдят различните защитни механизми, въведено е понятието домен (област) на защита. Всеки домен дефинира множество от обекти и типовете операции, които могат да се изпълнят над всеки обект. Възможността да се изпълни операция над обект е право на достъп. Така доменът може да се представи като съвкупност от подредени двойки (име на обект, множество от права). Обектите, субектите и домените се идентифицират с уникални имена, което дава възможност за контрол на правата на достъп.

Доменът определя контекста на защитата, в който оперира даден субект. Вместо да се свързват правата за достъп със субектите (процесите), сега те се свързват с домените. Всеки процес оперира в контекста на защитата, определен от някакъв домен (който специфицира обектите, до които има достъп процеса). Други процеси могат да се ползват със същите права, ако се изпълняват в същия домен. По време на изпълнението си процесът може да преминава от един домен в друг, променяйки статуса на защитата си - правилата за превключване зависят в голяма степен от системата. Разделянето на статуса на защита на домени позволява обръщане с права на достъп, независимо от субектите в системата и осигурява гъвкаво средство за съвместно използване на механизмите на защитата.

Домените не е необходимо да бъдат отделени - те могат да споделят права на достъп. Тази възможност е илюстрирана на фиг. 12.1. Правото на достъп Принтер, {запис} е споделяно от домените Домен2 и ДоменЗ, означаващо, че процес, изпълняван в коя да е от двете области, може да извърши печат над този обект. Процесът трябва да се изпълнява в Домен1, за да чете обектите Файл1 и Файл2. От друга страна, само процесите в Домен2 могат да изпълняват ФайлЗ. Също така е възможно обект да бъде в няколко домена, с различии права във всеки домен.

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

се изпълнява в потребителски режим, той изпълнява само непривилегировани инструкции. Следователно, той може да се изпълнява само в предварително дефинирано пространство. Тези два режима защитават ОС (изпълнявана в привилегирован домен) от потребителските процеси (изпълнявани в потребителски домен). В мултипрограмните системи тези два домена са недостатьчни, тъй като потребителите трябва да бъдат защитени и един от друг. Затова е необходим no-сложен механизъм.

Когато процес в UNIX изпълнява ехес (изпълнение) над файл с установен бит setuid или setgid, той иска нов ефективен uid или gid (идентификатор на потребител или на група). Различните комбинации от идентификатори му предоставят различии множества от файлове и разрешени операции. Изпълняването на програма с setuid или setgid e също превключване на домени.

За да стане идеята за областите на защита no-конкретна, читателят може предварително да прочете т. 12.1.6, където е описана реализацията на домените в някои реални системи



Типови атаки на ОС

- Асинхронност. Когато се изпълняват асинхронни процеси, процес може да получи възможност за измени параметри, които друг процес е проверил за коректност, но все още не ги е използвал.

- Преглеждане. Потребител чрез преглеждане се опитва да определи къде в системата се пази привилегирована информация.

- Подвключване към линия. С помощта на специален терминал може да се направи подвключване към линията за връзка на потребител, който е влязъл в системата, но в момента не работи.

- Нелегални команди. В ОС под формата на поправка на грешки се вмъкват допълнителни команди. Те откриват възможност за несанкциониран достъп до ОС.

- Лишаване от достъп. Потребител стартира програма, която разрушава системата, като я въвежда в безкраен цикъл или монополизира системни ресурси. Така останалите потребители не могат да ползват услугите на системата.

- Разпадане на връзката. Вредител може да се опита да получи достъп да процес на потребител след разпадане на връзката, но преди ОС да научи за разпадането.

- Маскиране. Злосторник приема облика на редовен потребител, узнавайки по някакъв начин съответния познавателен знак.

- Атаки от специални клавиши. В много системи потребителят може да прекъсне изпълняван процес чрез натискане на специален клавиш, да изпълни някакви действия и да продължи изпълнението на процеса. В някои случаи вредител може да хване системата в незащитено състояние и лесно да получи управлението в свои ръце.

- Непредвидени параметри. Вредител може да използва системни извиквания с непредвидени параметри, разчитайки на недостатък на системния механизъм за проверка на параметрите. В много системи това води до объркване.

- Измама на оператора. Възможно чрез измама някои да застави оператора да извърши действия, които да водят до нарушаване секретността на системата.

- Прехващаща врата. Тайна, недокументирана входна точка в програма, използвана от някой (например от автора) за получаване на достъп до системата, прескачайки обичайните процедури за безопасен достъп.

-Логически бомба. Процедура, вградена в легитимна програма, която проверява и „избухва" при срещане на определени условия (ден от седмицата, липса или наличие на някакви файлове, определен потребител, стартирал приложението и др.). Спуснатата бомба може да променя или унищожава данни, да спре машината и т.н.

- Троянски кон. Полезна програма или командна процедура, съдържаща скрит, недокументиран код. Изпълнението на програма води до изпълнение на тайна процедура, която извършва нежелани или вредни действия. Тези програми могат да се използват за изпълнение на функции, които неупълномощен потребител не може да изпълни директно. Типичен пример е компилатор, който добавя код в компилирана програма, например системната програма login. Кодът създава прехващаща врата, позволяваща на потребител да влезе в системата със специална парола. Възможно е Троянски кон да се използва за разрушаване на данни или за други вредни действия.



Червей, бактерии и вируси

Заплахи срещу ОС, като логическа бомба, прехващаща врата, Троянски кон, използват уязвимостта на компютърните системи, свързана с приложни и помощни програми, като компилатори и редактори. Друг вид заплаха е злонамереното използване на системните ресурси и потребителските файлове. Методите за това, базиращи се на възможността процесите да създават други процеси, са разгледани по-долу [44, 76, 87, 88, 91, 93]



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

За да се размножава по мрежата, червеят използва някои мрежови възможности: електронната поща (изпраща свое копие на друга система), отдалечено влизане (влиза като потребител в отдалечена система и използва команди да се самокопира), отдалечено изпълнение (изпълнява свое копие в отдалечена система).

Като пример ще бъде разгледан проблемът с Интернет. Най-голямото насилие срещу безопасността на компютърните системи е направено на 2.11.1988 г. от студента R.T. Morris, който пуска по мрежата вредителска програма, която изважда от строя хиляди компютри по целия свят, докато бъде проследена и унищожена.

Тази история започва, когато Морис открива в UNIX/BSD две грешки, които дават възможност за неавторизиран достъп до машини в цялата мрежа. Работейки сам, той написва самокопираща се програма, наречена червей, която използва тези грешки и се самокопира във всяка машина, до която би могла да получи достъп. Той работи над програмата месеци, като грижливо я настройва и тя да прикрива своя път.

Не е известно дали освобождаването и е замислено като тест или е било действителна работа. Във вески случай за няколко часа тя изважда от строя повечето системи VAX и SUN. Мотивацията на Морис е неизвестна.

Технически програмата съдържа две програми - самозареждаща се и същинския червей. Първата има 99 реда на С и се нарича l1.с. Тя се компилира и изпълнява на атакуваната система. След като тръгне, тя се свързва с машината, откъдето идва, зарежда главния червей и го изпълнява. След като преодолее известии трудности да скрие съществуването си, червеят преглежда маршрутизиращата таблица на новия възел-главен компютър, за да види с какви компютри той е свързан и се опитва да разпространи самозареждащата програма в тях.

Приложени са три метода за инфектиране на нови възли. Първият опитва да стартира отдалечена обвивка, използвайки команда rsh. Някои компютри се доверяват на други и с готовност изпълняват rsh, без по-нататъшна идентификация. Ако това работи, отдалечената обвивка зарежда програмата-червей и продължава да заразява нови машини оттам.

Вторият метод използва nporpaма finger, която е на разположение във всички BSD-системи и която позволява на потребител, където и да е в Интернет, да въведе finger name@site за извеждане на дисплей информация за лицето в съответния възел. Информацията обикновено включва името на лицето, login, домашен и служебен телефон, име и телефон на секретарката, номер на факс и т.н.

Програмата finger работи така. Във вески BSD-възел фонов процес finger daemon се изпълнява през цялото време, записвайки и отговаряйки на запитвания от цялата мрежа. Програмата-червей извиква finger със специално ръчно оформен 536-байтов низ като параметър. Този дълъг низ препълва буфера на процеса и презаписва неговия стек. Използваната грешка тук е в процеса при проверка за препълване. Когато процесът се върне от процедурата, в която е бил по време на получаването на заявката, той се връща не в main, но към процедура в 536 байтовия низ в стека. Тази процедура се опитва да изпълни /bin/sh. Ако това успее, червеят има обвивка shell, изпълнявана в атакуваната машина.

Третият метод зависи от грешка в системата за поща (sendmail), която позволява на червеят да изпрати копие от самозареждащата програма и да я изпълни.

След като е установен, червеят се опитва да разруши потребителските пароли. Морис не е трябвало да изследва как да го направи. Това, което е направил, е било да помоли баща си, експерт по безопасността в National Security Agency в САЩ, за препечатка на класическата статия на тема, която Морис и Томпсън са написали преди десетилетие в Bell Labs (1979г.). Всяка повредена парола позволява на червея да влиза в коя да е машина, където притежателят на паролата е включен.

По всяко време, когато червеят предприеме достьп до нова машина, той проверява дали други негови копия не са вече активни там. Ако е така, новото копие напуска, с изключение веднаж на седем, когато то продължава, вероятно да поддържа разпространението на червея, дори ако администрацията там е стартирала собствена версия на червея, за да измами действителния червей. Използването на 1 от 7 създава много червей и причинява всички заразени машини да спрат. Ако Морис е бил изоставил това и е излизал, когато друг червей е бил забелязан, червеят вероятно е щял да продължава, без да бъде детектиран.

Морис е бил хванат, когато един от неговите приятели е говорил с компютърния репортер Дж. Марков на New York Times и се е опитвал да го убеди, че инцидентът си е инцидент, червеят е безвреден и че авторът съжалява. Приятелят се изпуска, че входното име (login id) на виновника е rtm. Конвертиране в име на притежател е било лесно - трябвало е само да се пусне finger. На следващия ден историята е на първата страница на вестника.

Бактерии. Бактерията е програма, която се самокопира (обикновено се възпроизвежда експоненциално). Нейната задача е да консумира системните ресурси (процесор, памет, дисково пространство), не позволявайки на потребителите достъп до тях.

Вируси. Вирусите са специална категория атака над системата, която понякога става главен проблем за потребителите. Вирусът е програмен сегмент, който е прикрепен към легитимна програма с цел да зарази други програми. Типичният вирус работи така. Авторът на вируса най-напред разработва полезна нова програма, която съдържа скрит код на вируса. Съставянето на вируси изисква голяма опитност и умение, и затова обикновено предлаганата програма има отлични качества.

Когато програмата се стартира, тя започва да преглежда двоичните програми дали вече са заразени. Когато се открие здрава програма, тя се инфектира чрез добавяне на вирусния код накрая на файла, а в началото се записва преход към него. Когато вирусният код се изпълни, започва изпълнението на първата команда от нормалната програма. По този начин, при всяко изпълнение на заразената програма, се инфектират нови програми.

Възможно е вирусът, освен заразяването на други програми, да върши и други повреди, като изтриване, модифициране и т.н. на файлове. Например вирус може да инфектира зареждащия сектор на твърдия диск, като направи невъзможно пускането на компютъра, или да пита за парола, известна само на автора на вируса.

В [91] се прави следното категоризиране на вирусите:

Паразитни вирусы. Традиционните и най-разпространените вируси, които се прилепват към изпълнимите файлове.

Резидентны вируси. Разполагат се в основната памет, като част от резидентните системни програми. Оттук те могат да инфектират всяка изпълнявана програма.

Вируси в зареждащия сектор. Инфектират главния зареждащ запис или други зареждащи записи, когато системата се зарежда от инфектиран диск.

Невидими вируси. Форма на вирусите, които явно са разработени да се крият от антивирусните програми. Например, те могат да компресират файла, така че инфектираната и оригиналната програма имат еднаква дължина.

Полиморфни вирусы. Те мутират с всяка инфекция, правейки невъзможно разпознаването им чрез сигнатура.

По-лесно е да се предотвратят вирусите, отколкото да се лекуват. Затова трябва да се купуват само гарантирано фирмени продукти или да се използват антивирусни програми, но те проверяват само за известии вируси с известно закъснение.

Също така, справочникът с двоичните файлове може да се забрани за запис от обикновените потребители, с което вирусът ще бъде затруднен да модифицира други двоични програми. Това може да се направи в UNIX, но не може да се приложи в MS-DOS, защото справочниците и не могат да се направят незаписваеми въобще.

По-общо решение е да се преформатира диска (заедно със зареждащия сектор) и след това да се инсталират всички проверени незаразени файлове. Изчислява се сумата по четност (нечетност) за всеки файл и се прави списък от двойките (файл, сума), който се съхранява на сигурно място (възможно в кодиран вид). При всяко зареждане на системата всички суми се изчисляват отново и се сравняват с тези от списъка. Файл с несъответстваща сума се отхвърля. Този начин позволява ранна детекция на вируси, но не може да предотврати заразяването.



12.2.5. Безопасността в Windows NT

Някои основни компонента на системата за безопасност на Windows NT (2000) са описани в гл. V: Монитор за наблюдение на безопасността (SRM), Сървър на локалната безопасност (LSA), процесът WinLogon, услуга за мрежово влизане.

Процесът-сървър на LSA отговаря за стратегията за безопасност в локалната система (кои потрбители могат да влизат, управление на паролите, списък на привилегиите на потребителите и групите и др.), идентификация на потребителите и изпращане на съобщения за отчитане на достъп към модула за отчитане на събития.

Системните настройки за стратегията на безопасност се пазят в база от данни за стратегията на LSA. SRM и LSA комуникират чрез метода LPC.

Друг сървър — мениджър на безопасните сметки (SAM) управлява база от данни, съдържаща имената на потребителите и групите (заедно с паролите и другите атрибути), дефинирани за определена система или домен (ако системата управлява домен).

Динамична библиотека за идентификация извършва проверка на автентичността на потребителите чрез базата от данни на SAM и връща информация за потребителите.

NT (2000) предоставя единен механизъм за контролиране на достъпа до обектите - процеси, потоци, файлове, семафорите, събития и други [20, 65, 73, 74, 88]. Контролът над достъпа се управлява от два елемента: признак за безопасен достъп и дескриптор на безопасността (вж. гл. II).



12.3. КРИПТОГРАФИЯ

Широкото приложение на мрежите за предаване на данни води до опасност за тяхното прихващане и използване. Някои данни представляват тайна - банкови сметки, военни или полицейски сведения, медицинска информация и т.н., и са необходими механизми за тяхната защита при прехвърлянето по мрежата.

Криптографията [85, 89] е общ метод за защита на информация при прехвърлянето и по ненадеждни линии в мрежата. Предмет на криптографията е преобразуване на данните, така че да станат неразбираеми за всички, освен за когото са предназначени. Основният проблем е запазване на тайната, да бъде избягнато получаването на информация от неавторизирани лица. Друг проблем е достоверността на предаваните данни, което е свързано със защита против изкривяване на данни или прибавяне на фалшиви. И накрая стои проблемът с потвърждаване на самоличността на подателя на съобщението, в което трябва да се убеди получателя, т.е. създаване на аналог на подписа.

Криптографските секретн системи работят по следния начин. Данните, които иска да изпрати подателят, се шифроват (кодират) от тяхната първоначална текстова форма (открит, чист текст) в зашифрован текст (или криптограма). Криптограмата, въпреки че е четлива, не дава никакъв смисъл. Зашифрованият текст може да се записва във файлове или да се изпраща по незащитени линии. За да стане разбираем шифрованият текст, той трябва да се разшифрова (декодира) обратно в чист текст. Тази схема предполага алгоритми за шифроване и разшифроване (обикновено реализирани апаратно) и секретен ключ за всяко приложение, чието предаване трябва да става по особено секретни канали. Безопасността на системата зависи само от секретността на ключа, но не и от секретността на алгоритмите.

Криптоанализът (анализ на шифъра) се състои във възстановяване на открития текст, без да се познава ключа за разшифроване. Ако криптоаналитикът не може да възстанови текста, криптографската система е безопасна.

Системите с открити ключове избягват проблема с предаването на ключа в традиционните криптографски системи. В системите с открити ключове функциите шифроване и разшифроване са разделени - използва се ключ Е при шифроване и ключ D при разшифроване, при което по Е е невъзможно да се определи D (за разумно време).

Ключ Е може да се направи открит и с това не се нарушава секретността на D. Всеки потребител създава два ключа –Е е общоизвестен, a D е секретен. Така на даден потребител всеки може да изпрати шифровано съобщение, но да го разшифрова може само този потребител (секретният ключ за дешифроване е известен само на него).



Цыфровите подписи са електронен аналог на личния подпис. Да създаде и постави подпис може само един човек - авторът, а да разпознаят подписа, че принадлежи на даден автор, могат много хора, Системите с открити ключове предоставят възможност за реализация на цифровите подписи. Подателят „подписва" съобщението си, шифровайки го със своя секретен ключ. Получателят с помощта на открития ключ на подателя разшифрова съобщението.

Сериозен недостатък на този подход е, че съобщението може да се прихване и разшифрова, ако се знае открития ключ на подателя. Това може да се избегне, ако подателят към вече зашифрования текст добави още едно ниво на шифроване по открития ключ на получателя. Последният, от своя страна, ще възстанови подписаното съобщение със секретния си ключ, а след това и открития текст, с помощта на открития ключ на подателя.

Като примери за реализация са интересни две схеми. Едната схема DES (Data Ecryption Standart) е развита от Националното бюро за стандарти на САЩ. Тя е симетрична - използва се един ключ за шифроване и разшифроване. Тази схема страда от проблема за разпространението на ключа - преди началото на комуникацията секретният ключ трябва безопасно да се изпрати на подателя и получателя. Задачата не може ефективно да се извърши в среда на комуни-кационна мрежа. Асиметрично решение на проблема е предложено Дифи и Хелман. Всеки потребител има публичен (открит) и частен (секретен) ключ и двама потребители могат да комуникират, знаейки само откритите си ключове.

Алгоритьм RSA, базиращ се на тази концепция, е предложен от Ривест и др. [85]. Предполага се, че този алгоритъм е почти неразгадаем. Откритият ключ е двойката (е, n), а секретният ключ е двойката (d, п), където е, d, n са положителни цели числа. Всяко съобщение е представено като цяло между 0 и n-1 (дългите съобщение се нацепват на серия от по-къси, всяко от които може да се представи като цяло). Функциите за шифроване и разшифроване Е и D на съобщение т са дефинирани като:



Е(т) = we mod n = С

D(C) = Cdmod n.

Главният проблем е в избирането на ключове за шифроване и разшифроване. Цялото п се изчислява като резултат от две големи (100 цифри и повече), случайно подбрани прости числа р и q, с n=pxq.

Цялото d е избрано да бъде голямо, случайно избрано взаимно просто на (р-1)х(q-1), т.е. d удовлетворява:



най-големият общ делител на [d, (р-1) х (q-1)] = 1.

Накрая цялото е се изчислява (от р, q, d) да бъде мултипликативно обратно от d по модул (p-l)x(q-l), т.е. е удовлетворява:

е х d mod (р-1) х (q-1) = 1.

Трябва да се отбележи, че въпреки п да е публично известно, р и q не са. Това се дължи благодарение на добре известния факт, че е много трудно да се разложи п на множители. Следователно, целите d и е не могат лесно да се отгатнат.

Схемата се илюстрира от следния пример. Нека p=5 и q=7. Тогава n=35 и (p-l)x(q-l)=24. Тъй като 11 е взаимно просто 24, d може да се избере (d=11, и тъй като 11x11 mod 24= 121 mod 24= 1, то е= 11. Сега предполагаме, че m=3. Тогава С=me mod n=311mod 35=12 и Cdmod n=1211mod 35=3=m. Така, ако m може да се кодира чрез е, също така т може да се декодира чрез d.

Приложението на криптографията най-често е в многопотребителските системи с времеделене и в мрежите от компютри. Най-широко се прилага за съхраняване на паролите. Също така потвърждаването на паролата може да бъде зашифровано, като например се приложи процедурата „въпрос-отговор". Потребителят дава заявка за вход и системата му изпраща открит въпрос (въпросите не се повтарят, например могат да се използват датите и времето). Потребителският терминал зашифрова въпроса с помощта на ключ, въведен от потребителя и известен на ОС. Тя се уверява в самоличността на потребителя, сравнявайки приетия ключ с това, което се е получило от собственото и шифроване. Всички следващи съобщения в този сеанс се шифроват с ключа на потребителя. Тъй като ключът не се предава, вредителят трябва да анализира шифъра, за да разбере съобщенията или да подмени потребителя.

Възможно е да се шифрова цялата информация в системата, но това е свързано с големи разходи. Апаратните средства правят метода приемлив. Шифроването на файловете решава проблема за опазване на тайната на собствениците на данните в разпределените системи, където достьп до всички файлове има поне администраторът на системата.

При мрежите се появяват нови уязвими места. Протоколите в мрежите са на много нива и допускат шифроването да се извършва на различии нива, като отговорността за това носи вески възел (данните се предават между възлите в кодиран вид, във всеки възел те се разкодират, за да се определи местона-значението им, и отново се кодират при изпращане).

При метода с прозрачно шифроване съобщението се зашифрова в подателя и разшифрова само веднъж в получателя. Данните са защитени по целия път, даже защитата на някой възел да е нарушена. В мрежите с комутация на пакетите и междинно съхранение, снабдени със средства за подобно шифроване, адресът на получателя на пакета не може да е зашифрован - във всеки възел трябва да има възможност за неговото прочитане, за да се определи маршрутът.


Виртуални ОС.

5.4.3. Виртуални машини

К
онцепцията на виртуалните машини представлява разширено приложение на разгледания йерархичен подход. Системата VM на IBM e най-добрият пример за тази концепция. Използването на принципа на виртуалните машини прави възможна оаботата едновременно на различни ОС на една реална машина. По-такъв начин виртуалните машини могат да се разглеждат като пренасяне на принципите на мултипрограмирането на най-ниското ниво на ОС [2, 7, 10, 13, 43].



Фиг. 5.2. Обща структура на ОС
На фиг.5.2 е показана общата структура на ОС. Всички четири ОС (последната програма не е под управлението на ОС, а работи самостоятелно в супервайзорен режим) работят на една реална машина, благодарение на монитора на виртуалната машина. Всеки потребител има впечатлението, че разполага със собствена машина и се обслужва по традиционния начин.

Концепцията на виртуалната машина е много полезна и популярна, но нейната реализация не е лека. Програмите на най-ниското ниво на ОС (ядрото) работят фактически с монитора на виртуалната машина, който предоставя същите ресурси, обслужване и функции като реалната машина (без да е видим за ОС или за потребителя). Трудностите произтичат при точно дублиране на реалната машина. Всеки процесор има поне два режима: супервайзорен и потребителски. Мониторът може да работи в супервайзорен режим, защото тук той всъщност е ОС. Потребителите на отделните виртуални машини (в случая ОС 1, ОС2 и т.н.) трябва да работят в потребителски режим. Следователно, трябва да се организира виртуален супервайзорен и виртуален потребителски режим, всеки от които работи при физически потребителски режим. Действията на потребителя (ОС), които изискват превключване в супервайзорен режим (използване на привилегировани команди или системни извиквания), трябва да предизвикат превключване във виртуалните режими на виртуалната машина.

Когато ОС се опита да изпълни например привилегирована команда, настъпва прекъсване, тьй като тя работи при потребителски режим на процесора. Вследствие на това управлението се предава на монитора на виртуалната машина, който симулира изпълнението на командата и накрая връща управлението на ОС. Мониторът се активизира и при прекъсване на процесора. Той определя коя виртуална машина е свързана с него и прави съответните изменения в състоянието и.

Фактически мониторът трябва да извърши всички съществени функции на ОС. Използвайки принципите за планиране на процесите, той разпределя процесора между отделяйте виртуални машини и пази информация за състоянието им. Използвайки техниката на виртуалната памет (гл.VIII), мониторът отделя за всяка виртуална машина собствена виртуална памет. Чрез спулинга и файловата система могат да се предоставят виртуални устройства.



Концепцията на виртуалните машини дава няколко предимства. Тук има комплектна защита, тъй като виртуалните машини са изолирани една от друга. Ако някой потребител разруши система, това се отразява само на собствената му машина.

Подобна ОС е перфектно средство за създаване и развитие на операционни системи. ОС може да се настройва преди да бъде изградена апаратната част. От друга страна, промени в съществуващи ОС се правят изключително трудно поради големината и сложността на програмите. Промяна в една част на ОС може да доведе до грешки в други части. Затова се изисква грижливо тестване, по време на което машината е недостъпна на потребителите. Много от тези проблеми се отстраняват от системите с виртуални машини
Каталог: 2015
2015 -> Висше военноморско училище „Н. Й. Вапцаров“
2015 -> Правила за изменение и допълнение на Правила за търговия с електрическа енергия Съществуващ текст
2015 -> Наредба за изменение и допълнение на наредба №36 от 2005 Г. За изискванията към козметичните продукти
2015 -> М и н и с т е р с т в о н а з д р а в е о п а з в а н е т о н а р е д б а
2015 -> Примерна тема за IV клас за „преглед на знанията по математика“
2015 -> Наредба №25 от 10 ноември 2008 Г. За условията и реда за пускане в действие на медицински изделия без наличие на условията по чл. 8 От закона за медицинските изделия
2015 -> 10 ноември демократичното начало тогава и сега


Сподели с приятели:
1   2   3   4   5   6   7   8




©obuch.info 2024
отнасят до администрацията

    Начална страница