как она устроена и почему работает так, а не иначе. То же желание движет хакером, изучающим код неизвестной системы, ученым, пытающимся понять окружающий мир, или писателем, рассказывающим о переживаниях людей. Наверное, это один из основных инстинктов мыслящего существа.
Один из девизов OLPC - 'низкие полы и никаких потолков'. С одной стороны, система должна быть максимально простой, чтобы быть доступной для полностью самостоятельного освоения ребенком с нуля, а с другой - эта простота не должна служить препятствием для раскрытия возможностей устройства и талантов ее владельца. Пятилетнему пользователю вряд ли захочется учить три тысячи команд Unix и читать многие страницы документации, но уже десятилетнему, возможно, захочется разобраться в том, как работает эта система и чего он может достичь с ее помощью.
'Прозрачность' системы - еще один ключевой пункт философии всего проекта. Конечно, открытые исходные коды - необходимое условие, однако одного лишь open source здесь мало. Требуется создать инфраструктуру, максимально упрощающую изучение и модификацию кода.
Такую инфраструктуру обеспечивает специальная Developer-activity, представляющая собой полноценную среду разработки новых видов деятельности. Большинство компонентов XO написаны на языке Python, по мнению многих экспертов являющемся одним из лучших кандидатов на роль первого 'серьезного' языка программирования. Юный хакер может модифицировать любую готовую 'активность' или даже организовать совместную разработку по всем правилам open source (с патчами, контролем версий и т. д.), а также использовать приемы экстремального программирования благодаря функциям совместного редактирования кода в реальном времени (эта возможность присутствует и в обычном текстовом редакторе, основанном на AbiWord).
Впрочем, вся эта деятельность доступна скорее достаточно продвинутым пользователям, нежели начинающим - разбираться в реальном коде реальных приложений - нетривиальная задача даже для людей, уже владеющих базовыми навыками программирования.
Получить же их можно с помощью 'активности' eToys - визуальной среды разработки мультимедийных приложений. Основанная на языке Squeak (вариации легендарного Smalltalk) и созданная специально для обучения программированию, эта система позволяет максимально интуитивным способом создавать и модифицировать интерактивные 'книги', объединяя и настраивая различные объекты, управляемые скриптами.
Многие вещи, о которых я рассказал выше (и те, которые не поместились в формат этого краткого обзора), пока не реализованы в коде и остаются скорее концепциями, либо реализованы не до конца (трехсоткилобайтный документ, описывающий пользовательский интерфейс системы, доступен на wiki.laptop.org). Посмотреть 'вживую' мне удалось только на eToys и, отчасти, на зуммируемый рабочий стол (не слишком функциональный на одиночном компьютере, не включенном в беспроводную сеть с другими подобными устройствами). Однако это не самое главное. Как писал Джереми Эллисон (Jeremy Allison) в статье для ZDnet, 'даже если OLPC потерпит неудачу, он существенно повлияет на компьютерный