MINIX3 операционная система
ФлагСайт русскоязычного сообщества разработчиков и пользователей операционной системы MINIX 3


  Навигация


Комментарии к выпуску MINIX 3.1.3

Комментарии к выпуску MINIX 3.1.3 - промежуточной версии для разработчиков

MINIX 3.1.3 вышла в пятницу, 13 апреля 2007 года. Это не полностью работающая, стабильная версия, а промежуточная рабочая версия ОС. Её выход удобен для тех, кто заинтересован в разработке MINIX, но эта версия имеет ряд известных дефектов и нюансов.

Известные дефекты и нюансы:

Интерфейс между VFS и файловыми системами  немного изменится после окончательной подчистки кода VFS/MFS.

Запускаются 4 процесса MFS (файловых систем), каждый того же размера, что и старая FS, из которых один не используется после начальной загрузки. Поэтому эта версия использует (и засоряет почём зря) гораздо больше памяти, чем предыдущая. В дальнейшем это будет исправлено.

Драйвер AMD LANCE должен загружаться ниже 16 МБ. В настоящее время не способа показать это системе. Единственный способ: иметь достаточно памяти сверх 16 МБ в момент его загрузки. Поэтому при использовании AMD LANCE вам следует выбирать «маленький» MINIX, создавая 2 процесса MFS на 500 КБ вместо 4 МБ.

Пожалуйста, сообщайте о других ошибках

Если вы найдёте любую ещё не описанную ошибку или дефект в этой версии, пожалуйста, напишите об этом в bugs@minix3.org или сохраните ошибку в the MINIX gforge bug tracker.

 
Изменения в MINIX 3.1.3 по сравнению с 3.1.2a

Значительные видимые изменения

64-битные файловые смещения снимают ограничения на 4 ГБ для файловых систем.

Реализация VFS, сделанная Balasz Gerofi.

Профилирование системной статистики и системных вызовов, сделанное Rogier Meurs.

doc/UPDATING в репозитории syn описывает вещи, на которые надо обратить внимание при обновлении из исходников.

Добавлен импорт системы zoneinfo, так что теперь можно использовать сокращения типа TZ=CET и им подобные. Таким образом, устранена ошибка в прежнем коде летнего времени, найденная Элом Вудхаллом ( Al Woodhull).

 Значительные внутренние изменения

 Инфраструктура управления тем, какие драйверы какие вызовы ядра могут делать, какому прерыванию (IRQ) соответствуют и к каким портам ввода/вывода могут иметь доступ. Полная поддержка PCI-сервером для того, чтобы в большой степени автоматизировать это. Частные случаи и остальные детали конфигурирования в /etc/drivers.conf.

Введены «safecopies», ограниченная разновидность функций копирования MINIX, которые требуют явно заданного разрешения от получателя прежде, чем произойдёт копирование. Обычные драйверы устройств теперь более не нуждаются в «physcopies» или «vircopies», так что они могут отказаться от этих вызовов. Изменены также интерфейс fs/driver и интерфейсы inet/driver, которые используют теперь «safecopies».

PM (физическая память), поскольку она сделана не блокируемой, выполняет асинхронные запросы к FS (теперь VFS), когда она должна обновиться по какой-либо причине. Это существенно в основном для восстановления драйверов устройств.

Произведено разделение архитектурно зависимой и независимой частей дерева исходного кода ядра (подстраиваясь под несуществующий в настоящее время порт Ингмара Альтинга на PPC) . Архитектурно-независимый код находится в /usr/src/kernel/*.[ch], а архитектурно-зависимый код - в /usr/src/kernel/ARCH/.

Интерфейс с RS основан теперь на метках, а не на pids.

Новая процедура загрузки. Первая стадия загрузки происходит из образа RAM-диска, который встроен в драйвер памяти. Стартуют драйверы для корневого устройства (root device) и текущее корневое устройство монтируется оттуда. Это позволяет иметь в системе меньше специального загрузочного кода, например, в FS, не нуждающейся в драйверах, встроенных в образ RAM-диска, и делает систему более универсальной.

Разрешено иметь более, чем 32 fd's на процесс (OPEN_MAX).

Все библиотеки ack третьих производителей помещаются в /usr/local/lib/ack, а библиотеки gcc третьих производителей помещаются в /usr/local/lib/gcc.

Новый драйвер CMOS, запускающийся во время загрузки, вместо постоянно активного; позднее он также может быть повторно активизирован для корректировки часов.

off_t теперь со знаком.

Введён макрос  RTS_SET/RTS_UNSET, делающий код ядра проще и сокращающий  (логическое) дублирование кода.

 
Существенные исправленные ошибки

Существует множество мелких ошибок, которые, вероятно, не стоит здесь перечислять. Полный перечень можно увидеть на странице 3.1.2a-3.1.3 changelog

Некоторые драйверы (TTY) продолжали посылать сообщения REVIVE, вызывая зависание FS (REVIVE теперь полностью уничтожено).

Различные ошибки в  at_wini, приводившие к странному поведению на некоторых системах; не инициализирующееся слово 6 в  ATAPI SCSI_READ10, например.

Устранены гонки между  CLOCK и SYSTEM, когда CLOCK устанавливается в состояние «готовность» (по прерыванию) в то время, как  SYSTEM выполняется.

Запускается множество at_wini для систем с более, чем двумя контроллерами  IDE/SATA.

Устранена ошибка «зависания на веки вечные» в wait()/waitpid() на  процессах, уже являющихся зомби.

Устранены гонки при получении сигнала работоспособными процессами; •размещение стека сигнала  может быть ошибочным.

strcasecmp() и strncasecmp() заменены на версию из библиотеки BSD из-за ошибки.

Если вызывался sys_privctl(), то область s_flags для пользовательских процессов могла бы быть затёрта, делая их – процессы - невытесняемыми ( un-PREEMPTIBLE).


www.minix3.ru Copyright © 2006-2009
Сход развал 3д Химки