You are currently browsing the tag archive for the 'API' tag.

Мы живём в post/информационном, глобализированном мире, где компьютеры управляют атомными станциями, военными объектами стратегического назначенияи т.д. И при этом в современных операционных системах (ОС) имеются две характеристики, делающие их ненадежными и небезопасными: они огромны и обладают очень плохой изоляцией сбоев. В ядре ОС Linux содержится более 2,5 миллионов строк кода, а в ядре Windows XP более 5 миллионов строк кода. По данным исследователей университета Carnegie-Mellon, на 1000 строк кода приходится от 5 до 15 ошибок. При таких оценках ядро Linux содержит около 15000 ошибок, а в ядре Windows XP – больше 30000 ошибок. Еще хуже то, что около 70% кода ОС занимает код драйверов устройств, в которых ошибки встречаются в 3-7 раз чаще, чем в обычном коде. Понятно, что просто невозможно найти и исправить все ошибки; более того, при исправлении ошибок часто привносятся новые.

Большой размер современных операционных систем означает, что ни один человек не может понимать систему целиком, в результате чего управление системой становится очень трудным делом. Но то же можно сказать, например, и про авианосец. Ни один отдельный человек не знает, как работает авианосец, но все его подсистемы хорошо изолированы. Проблема засоренного туалета не влияет на подсистему запуска ракет. У операционных систем отсутствует подобная изоляция компонентов. Современная операционная система содержит сотни и тысячи связанных вместе процедур, которые образуют единую бинарную программу, выполняемую в ядре. Каждая из миллионов строк кода ядра имеет возможность записи в ключевые структуры данных, используемые несвязанным с ней компонентом, что может привести к краху системы. [см.: «Эндрю Таненбаума, Джоррита Хердера и Херберта Боса "Можем ли мы сделать операционные системы надежными и безопасными»] Read the rest of this entry »

 

Ноябрь 2009
Пн Вт Ср Чт Пт Сб Вс
« Окт    
 1
2345678
9101112131415
16171819202122
23242526272829
30  

my tweets