Computerworld, Австралия

Легендарный Эндрю Таненбаум считает, что необходимо сосредоточиться на создании технологий самокорректирующихся программных систем
Эндрю Таненбаум не видит рациональных причин, почему пользователи персональных компьютеров должны заранее быть готовы к тому, что операционная система будет плохо работать, ведь, к примеру, «у телевизора нет кнопки перезагрузки»

«Важно ли, чтобы программное обеспечение было надежным? Спросите об этом у своей бабушки», — советует легендарный специалист по операционным системам Эндрю Таненбаум, автор целого ряда монографий и профессор голландского университета Vrije Universiteit.

Когда вы отправляетесь за покупкой какого-нибудь электронного устройства, будь то телевизор или DVD-проигрыватель, вы уверены, что принесете его домой, включите в розетку, и оно будет работать. Так именно и происходит, причем годами. Но с компьютерами почему-то дела обстоят иначе.

Недавняя конференция lin?ux.conf.au в Австралии послужила для Таненбаума трибуной для анонса нового показателя — Lifetime Failure (LF). Этот показатель определяет, сколько раз за все время эксплуатации программного обеспечения (в частности, операционной системы), в нем возникает сбой.

Таненбаум не видит рациональных причин, почему пользователи персональных компьютеров должны заранее быть готовы к тому, что операционная система будет плохо работать. «У телевизора нет кнопки перезагрузки», — заметил он.

Но как же добиться такого уже уровня надежности?

«Я думаю, настало время пересмотреть подход к операционным системам, — подчеркнул Таненбаум. — По существу, мы располагаем замечательным оборудованием, и есть только одна причина, объясняющая, почему оно работает медленно, — все дело в плохом программном коде».

Для того чтобы проиллюстрировать сложность операционной системы, он показал, как увеличился объем кода программного обеспечения Windows за последние десять лет. Windows NT 3.5 в 1993 году содержала 6 млн. строк кода, NT 4 в 1996-м — 16 млн., Windows 2000 — 29 млн., а XP в 2003-м — 50 млн.

Естественно, что при средней частоте ошибок 10-75 на 1000 строк кода вероятность возникновения ошибок и сбоев системы резко возрастает.

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

«Я думаю, что направление эволюции программных систем выбрано неверно», — заметил он.

В качестве примера аппаратных решений, которые в случае выявления ошибок могут «на лету» их исправлять, Таненбаум приводит дисковые массивы RAID и оперативную память, защищенную кодами ECC.

«Исправить ?на лету? плохие программы должно быть проще, чем исправлять плохое оборудование. Поэтому я считаю, что нам необходимо заниматься самокорректирующимися программными системами», — сказал он. Для того чтобы минимизировать показатель Lifetime Failure, программные системы, по его словам, должны быть небольшими. Необходимо начать с миниатюризации кода в ядре операционной системы, которое обязательно должно быть модульным.

Следующий шаг — изолировать компоненты, такие как драйверы и файловые системы, чтобы проблемы, если они возникнут, не распространялись на другие составляющие программного обеспечения.

В связи с этим Таненбаум сослался на принцип Principle of Least Authority — «нельзя предоставлять больше прав, чем необходимо». В данном случае речь идет о том, что ошибка в одном компоненте не должна приводить к сбою в других компонентах операционной системы.

Возможность самовосстановления в RAID — прекрасная тому иллюстрация.

«Если один диск выходит из строя, это не сказывается на работе других дисков», — подчеркнул он.

По словам Таненбаума, MINIX 3, наиболее развитая версия операционной системы, которую он создал 20 лет назад и которая вдохновила Линуса Торвальдса на написание Linux, обладает многими качествами, о которых он говорил в своей лекции. Сейчас MINIX в основном применяется как средство обучения студентов компьютерных специальностей во всем мире.

«Возможно, выбранное направление развития Linux приведет к тому, что эта система будет сверхнадежной, способной работать постоянно и избавленной от всех тех проблем, которые принято связывать с поведением Windows», — предположил он.