![]() без тайни |
Андрей ГазибаровЗащо е нужна защитаОсновната задача на защитения режим е да се улесни търсенето и отстраняването на програмни грешки. Статистически изследвания показват, че написването на една програма отнема само 20% от общото време за цялостната ѝ разработка. Грешките са вездесъщи и от тях няма спасение, както и няма универсална рецепта за предпазване от грешки. Случвало ми се е да загубя пет дни в уморително трасиране в търсене на един-единствен неправилно установен указател (или още по-зле: на един неправилно установен бит!). Със средствата на защитения режим същият този указател или бит се откриват в момента на появяването им, а полученото изключение не само дава информация за мястото на грешката, но и за нейния характер (това ми показва кое е грешно – указателят или битът).
На второ място целта е да се защитят данните от неправилно работещи програми. Това осигурява една значителна стабилност на системата. Факт е, че под OS/2 никога, ама никога не се налага да се престартира компютърът, докато грешна програма под DOS или Windows доста често предизвиква зависване, при което страда някое невинно приложение или потребителят е принуден да въвежда наново голямо количество информация. Вярно, Windows (вкл. 95) работи в защитен режим, но е написана доста калпаво; Windows 95 пък използва плоския модел на паметта, с което изключва почти всички средства на иначе много мощната и надеждна защита на процесора. Поради един неправилен указател не веднъж ми се е налагало да преформатирам диска си, защото грешният указател води до грешно извикване към ОС и понеже тя не може да провери указателя, се стига до запис на произволно място по диска, което за зла беда нерядко се пада върху най-важните му части. Със средствата на защитения режим всички тези загуби се предотвратяват много ефикасно и лесно. А иначе колко му е да престартираш компютъра!? Но унищоженият твърд диск трудно се възстановява и носи невъзвратими загуби.
Е, добре де, ще каже някой, какво толкова, нали все пак си свършил работата? Е, загубил си малко повечко време, но какво от това? Защо ти е да даваш пари за скъпи операционни системи и още по-скъпи процесори, като и с прост се постига същият ефект. Да, вярно е. Обаче положените на вятъра усилия удължават времето за разработка на продукта. Удълженото време за разработка го оскъпява и го прави по-трудно продаваем. А за какво ни е да пишем програми, ако не можем да ги продаваме? Кой ще ни храни? Загубите работодателят ти ги покрива от твоя джоб, а не от своя (независимо дали си програмист, или просто използваш компютъра за работа). В крайна сметка по-добре е да се инвестират малко пари и малко време в началото, за да се осигури добра и надеждна среда, за да се спестят големите загуби после. Калпаво написаните операционни системи и калпаво дефинираните езици за програмиране продължават да късат нервите на програмисти и потребители вече трето десетилетие и като че ли вече е късно нещата да се променят – някой все пак печели от това и то не малко!
|