Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MODERN_SOFTWARE_4_kurs_Spets_glavy.doc
Скачиваний:
33
Добавлен:
04.06.2015
Размер:
2.44 Mб
Скачать

MODERN SOFTWARE

What is computer software?

Study different opinions and match them with people who thinks so.

A teacher:

Computer software is a collection of computer programs, procedures and documentation that perform some task on a computer system.

A student:

Computer software – a computer program or piece of software designed to perform a specific task.

A programmer:

Computer software – written programs or procedures or rules and associated documentation pertaining to the operation of a computer system and that are stored in read/write memory.

What is your definition of software?

Unit 1

What is OS? How can you define its place in a computer system?

1. PRE-READING ASSIGNMENT

1.1. Match the labels to the four layers of this diagram with the help of the diagram caption.

  1. application program

  2. user

  3. hardware

  4. operating system

Fig. 1. Conceptual diagram of an operating system

1.2. Study the text title.

Is this problem important and essential nowadays? Why? Is OS performance or reliability more important?

2. READING

Can We Make Operating Systems Reliable and Secure?

2.1. Translate the vocabulary used in the text below:

a flaw – брак

fault isolation – дефект изолияции

to endeavor - пытаться

armored – бронированный

to wrap – завертывать

Sandboxing – игра в песочнице

Entire - целостность

Interrupt - прерывание

to discard - избавляться

type-safe language – безопасный язык

2.2. Look through the text and say:

  • Are unreliability and insecurity the same from the OS point of view?

  • What are the main causes of unreliability and insecurity of operating systems?my name is

  • How many approaches to the problem are discussed in the text? What are their main ideas?

Microkernels – long discarded as unacceptable because of their lower performance compared with monolithic kernels – might be making a comeback in operating systems due to their potentially higher reliability, which many researchers now regard as more important than performance.

The worst offender when it comes to reliability and security is the operating system. Although application programs contain many flaws, if the operating system were bug free, bugs in application programs could do only limited damage.

A few words about the relationship between reliability and security are to be said. Problems with each of these domains often have the same root cause: bugs in the software. A buffer overrun error can cause a system crash (reliability problem), but it can also allow a cleverly written virus or worm to take over the computer (security problem). Although we focus primarily on reliability, improving reliability can also improve security.

Микроядра – считаются неприемлемыми потому что имеют малую производительность по сравнению с монолитным ядрами – могут вернуться в ОС так как многие исследователи считают надежность наиболее важным показателем чем производительность.

Самое плохое когда это угрожает надежности и безопасности ОС. Даже если приложение содержит много «трещин», если в ОС нету неисправностей, то неисправности приложения могут нанести лишь ограниченный ущерб.

Скажем несколько слов об отношениях надежности и безопасности. Проблемы с каждой из этих сфер имеют один корень: ошибки в ПО. Переполнение буфера может вызвать крах систем (проблема надежности), но это может быть использовано для написания вируса или червя для захвата компьютера (проблема безопасности). Хотя в первую очередь мы обращаем внимание на надежность, улучшая надежность можно также улучшить и безопасность.

WHY ARE SYSTEMS UNRELIABLE?

ПОЧЕМУ СИСТЕМЫ НЕНАДЕЖНЫ?

Current operating systems have two characteristics that make them unreliable and insecure: They are huge and they have very poor fault isolation. The Linux kernel has more than 2.5 million lines of code; the Windows XP kernel is more than twice as large.

The large size of current operating systems means that no one person can understand the whole thing. Clearly, it is difficult to engineer a system well when nobody really understands it. Operating systems do not have isolation between components. A modern operating system contains hundreds or thousands of procedures linked together as a single binary program running in kernel mode. Every single one of the millions of lines of kernel code can overwrite key data structures that an unrelated component uses, crashing the system in ways difficult to detect. In addition, if a virus or worm infects one kernel procedure, there is no way to keep it from rapidly spreading to others and taking control of the entire machine. Fortunately, the situation is not hopeless. Researchers are endeavoring to produce more reliable operating systems. There are four different approaches that researchers are using to make future operating systems more reliable and secure.

Нынешние операционные системы имеют 2 характеристики которые делают их ненадежными и небезопасными. Они огромны и имеют очень плохую недостаточную изоляцию. Ядро Линукса имеет более 2.5 миллионов строк кода; ядро ВинХР более чем в два раза больше.

Большой размер нынешних операционных систем означает что ни один человек не может понять все это. Очевдино, сложно спроектировать системы хорошо когда никто не понимает как это сделать.

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

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

ARMORED OPERATING SYSTEMS

БРОНИРОВАННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ

Самый консервативный подход, Nooks, предназначена для повышения надежности существующих операционных систем, таких как Windows, Linux. Nooks поддерживает монолитную структуру ядра, с сотнями или тысячами процедур, связанных между собой в единое адресное пространство в режиме ядра, но она фокусируется на обеспечении драйверов устройств - суть проблемы - менее опасны.

The most conservative approach, Nooks, is designed to improve the reliability of existing operating systems such as Windows and Linux. Nooks maintains the monolithic kernel structure, with hundreds or thousands of procedures linked together in a single address space in kernel mode, but it focuses on making device drivers – the core of the problem – less dangerous.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]