Введение

Sprite — экспериментальная распределённая операционная система, подобная Unix, разработанная в Калифорнийском университете в Беркли исследовательской группой Джона Остерхаута в период с 1984 по 1992 год. Её отличительными особенностями являются поддержка концепции единого системного образа для компьютерных кластеров и внедрение файловой системы, структурированной по журналу. Язык сценариев Tcl также был разработан в рамках этого проекта.

Ранние работы

Ранние работы над Sprite были основаны на идее сделать операционную систему более "сетевой", и одновременно сделать её невидимой для пользователя. Основной областью работы было создание новой сетевой файловой системы, активно использующей локальное кэширование на стороне клиента для повышения производительности. После открытия файла и нескольких первоначальных чтений сеть используется только по запросу, а большинство действий пользователя выполняются с кэшем. Аналогичные утилиты позволяют отображать удалённые устройства в адресном пространстве локального компьютера, обеспечивая сетевую печать и подобные функции. Многие ключевые файлы Unix основаны на сети, включая файл паролей. Все машины в сети совместно используют корневой каталог. Другие распространённые утилиты Unix, такие как finger, были переписаны для поддержки сетевого взаимодействия, отображая список всех пользователей, вошедших в сеть. Это создаёт впечатление, что сеть Sprite – это единая многопользовательская система или единое системное представление. Важным дополнением к Sprite является миграция процессов, позволяющая перемещать программы между машинами в любое время. Система ведёт список машин и их состояния, автоматически перемещая процессы на свободные машины для повышения локальной производительности. Процессы также могут быть "вытеснены" с машин для улучшения их работы, что приводит к перемещению процесса исходным запускающим процессом на другую машину в сети или к повторному локальному управлению им. Длительные задачи (например, компиляция системы Sprite) могут выполняться очень быстро.

Дальнейшее развитие

Работа над "ранним" Sprite, описанным выше, завершилась примерно в 1987 году, но продолжала совершенствоваться в течение следующего года. С 1990 года Sprite стал основой для разработки первой файловой системы с лог-структурой (LFS), разработка которой продолжалась до 1992 года. LFS значительно повышает производительность записи файлов, но снижает производительность чтения. В системе Sprite этот компромисс особенно выгоден, поскольку большая часть операций чтения все равно кэшируется – то есть, системы Sprite обычно выполняют меньше операций чтения, чем типичная Unix-система. Системы, подобные LFS, также значительно упрощают восстановление после сбоев, что стало одним из основных направлений проекта в этот период. Дополнительные эксперименты с полосатыми файловыми системами, как с распределением по разным машинам, так и с использованием кластеров дисков, продолжались примерно до 1994 года.

Прекращение

Sprite не была системой на микроядре и испытывала те же проблемы, что и другие Unix-подобные системы, с точки зрения сложности разработки, становясь всё более трудной для развития по мере добавления новых функций. К 1990-м годам проект находился в упадке, и небольшой коллектив разработчиков просто не успевал за стремительными изменениями, происходившими в мире Unix в то время. Проект был постепенно закрыт к 1994 году.