Представлен релиз операционной системы MINIX 3.2.0, разработку которой курирует известный ученый Эндрю Таненбаум. Новая версия отличается целым рядом значительных улучшений и изменений, позволяющих рассматривать MINIX не только как систему для экспериментов и образовательных нужд, но и как платформу для производителей встраиваемой техники, отличающуюся модульностью, высокой надёжностью и низким потреблением памяти.
ОС MINIX построена на базе микроядерной архитектуры: код работающий на уровне ядра составляет всего несколько тысяч строк, остальное работает на пользовательском уровне. Базовое программное окружение Minix вобрало в себя большое число стандартных для BSD-систем утилит и библиотек, портированных из NetBSD. Дополнительно в репозитории представлено около 650 пакетов с разнообразными приложениями.
Исходные тексты MINIX распространяются под BSD-подобной лицензией, что повышает привлекательность системы компаний, для которых неприемлемы условия GPL. Для загрузки доступен готовый загрузочный iso-образ (366 Мб), который можно использовать в роли Live-окружения или запустить под управлением систем виртуализации VMWare, QEMU или VirtualBox (поддерживается только работа с задействованием механизмов аппаратной виртуализации VT-x или AMD-V). С января началась разработка порта MINIX для архитектуры ARM. В процессе разработки представленной версии был осуществлён переход на систему управления исходными текстами Git.
Ключевые новшества MINIX 3.2.0:
- Использование Clang в качестве компилятора по умолчанию (GCC доступен в виде опции);
- Интеграция новой стандартной библиотеки Си (libc), портированной из NetBSD. Новая библиотека позволила существенно упростить портирование приложений из NetBSD;
- Задействование по умолчанию формата исполняемых файлов ELF;
- Реализован работающий в асинхронном режиме многопоточный модуль с реализацией абстрактной виртуальной файловой системы (VFS), позволяющей унифицировать процесс интеграции поддержки различных ФС;
- Экспериментальная поддержка SMP-режима, дающая возможность задействовать все ресурсы многоядерных CPU;
- Поддержка механизма FUSE, позволяющих обеспечить работу с реализациями файловых систем, работающих в режиме пользователя;
- Переход на использование формата файла с паролями от системы NetBSD;
- Включение в базовую систему новых пользовательских утилит и библиотек, портированных из NetBSD: ext2 fsck и mkfs, gzip, m4, man, mkdep, mkdir, mkfifo, mktemp, rm, rmdir, tic, uniq, libcurses, libcrypt, libprop, libterminfo, libutil, bzip2, date, indent, mdocml (mandoc), sed, zoneinfo;
- Изменения в инфраструктуре файловых систем:
- Задействован файл /etc/fstab;
- Для ФС MFS реализована поддержка флага "грязного" отмонтирования, позволяющего выявить когда файловая система была отмонтирована корректно, а когда нет;
- Полная интеграция в базовую систему ФС ext2 и утилит newfs и fsck. Поддержка установки MINIX на раздел ext2;
- Реализация корректного запуска "fsck -p" в процессе загрузки для всех ФC, отражённых в fstab;
- Интеграция загрузчика из проекта NetBSD;
- Поддержка ProcFS (псевдоФС /proc);
- В драйвер AHCI добавлена поддержка многопоточности и NCQ;
- Улучшение возможностей по отладке: поддержка GDB и core dump, возможность трассировки работы блочных устройтсв;
- Увеличение надёжности:
- Поддержка прозрачного восстановления файловых систем в случае краха драйвера блочного устройства.
- Реализация прозрачного для ФС повтора выполнения драйвером блочных устройств сбойных операций ввода/вывода;
- Новый драйвер Faulty Block Device для симулирования дисковых сбоев в целях тестирования и отладки;
- Серверные модули и драйверы запускаются под непривилегированным пользователем;
- Исправлены все ошибки, выявленные в процессе внедрения Clang;
- Улучшение поддержки виртуализации: добавлена библиотека libvassert для поддержки VMWare VAssert, реализован новый драйвер для синхронизации времени в VirtualBox.