Toaruos-nih-это распределение Toaruos, которое не содержит сторонних компонентов. Его загрузчик, ядра, модули, библиотека C и пользовательские приложения и библиотеки написаны командой разработчиков Toaruos и прямыми участниками.
Это распределение направлено на то, чтобы в конечном итоге заменить ядро основных тоарус, причем различные сторонние компоненты строят против нашей собственной библиотеки C. Это долгосрочный проект, и разработка библиотеки C до такой степени, что она полезна для этой цели, не будет завершена в течение довольно долгого времени.
Toaruos-nih поставляется с графической средой настольных компьютеров с диспетчере Window Compositing, функциональным эмулятором терминала, оболочкой, несколькими инструментами командной строки, текстовым редактором (с синтаксисом), динамическим погрузчиком и может размещать Python 3.6 (который включен в предварительно построенные выбросы CD). The kernel and included drivers support ATA hard disks and CD drives, ext2 filesystems, ISO 9660 filesystems, PS/2 mice and keyboards, RS232 serial, Intel e1000, RTL8139, and AMD PCNet-series network chipsets, TCP/IPv4, several virtual graphical framebuffers (including Bochs/QEMU and VMware, and support for framebuffers initialized by EFI), advanced VM integration (including absolute pointing devices in VMware, QEMU, and VirtualBox, as well as automatic display resizing, "Seamless Desktop" and hardware cursors in VirtualBox specifically), an implementation of the /proc virtual filesystem, Unix-style pipes and TTYs, shared memory, in-memory read-write temporary filesystem, Intel AC'97 Audio (с микшером) и многое другое.
Выпуски иногда публикуются на GitHub, а ночные улова доступны по адресу toaruos.org.
Рекомендуется запустить Toaruos -nih в эмуляторе - в частности QEMU или VirtualBox, хотя некоторые тестирование было проведено на рабочей станции VMware (разумная, но отсутствует поддержка драйверов) и Bochs (не рекомендуется).
Рекомендуется 1 ГБ оперативной памяти и звуковой чип Intel AC'97:
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
Вы также можете использовать OVMF с соответствующей целью системы QEMU. Наш погрузчик EFI поддерживает как IA32, так и X64 EFIS:
qemu-system-x86_64 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
-bios /usr/share/qemu/OVMF.fd
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
-bios /path/to/OVMFia32.fd
Toaruos должен функционировать либо как «другой/неизвестный» гость или «другой/известный 64-разрядный» гость с EFI.
Все опции сетевого чипсета должны работать, за исключением virtio-net (работа над драйверами Virtio еще не началась).
Настоятельно рекомендуется, что из -за существования драйверов с добавлением гостей вы предоставляете свою виртуальную машину не менее 32 МБ видео памяти для поддержки более крупных разрешений дисплея, особенно если вы используете дисплей 4K.
Убедитесь, что аудио -контроллер устанавливается на ICH AC97 и что аудио выходной сигнал включен (так как он отключен по умолчанию в некоторых версиях VirtualBox).
Держите системный чипсет в PIIX3 для лучшей совместимости. Рекомендуется 1 ГБ ОЗУ.
Поддержка VMware является экспериментальной.
На момент написания, следующая конфигурация была проверена как функционирование:
Использование боч для запуска Toaruos не рекомендуется; Однако следующие параметры конфигурации рекомендуются, если вы хотите попробовать:
pcivga включено или TOARUOS не сможет найти видеокарту через PCI.e1000 , используя бэкэнд slirp .sync=realtime, time0=local, rtc_sync=1 рекомендуется. Весь исходный код для всей операционной системы включен в этот репозиторий.
Ядро NIH по сути такая же, как основное ядро, хотя список поставщиков PCI и идентификатора устройства был заменен нашей собственной тонкой версией. Это был единственный сторонний элемент ядра тоарус. Кроме того, заголовки для ядра были перемещены из их первоначальных каталогов, чтобы облегчить более чистую сборку. Ядро NIH следует считать последней версией ядра Toaruos.
Mainline Toaruos, поставляемые с Grub, который обеспечивал многофункциональный эльфийский погрузчик. С этой целью наш собственный загрузчик также реализует Multiboot. Однако, поскольку написание загрузчика с полной функцией не является целью этого проекта, нативный загрузчик очень ограничен, поддерживая только CD ATAPI в системах с поддержкой El Torito "No-Emulation". Он не гарантированно будет работать над реальным оборудованием, но был протестирован в Qemu, Bochs, Virtualbox и VMware Player.
Пользовательская площадь включает в себя стандартную библиотеку C, не работает, нативные библиотеки Toaruos, композитор (используя только внутреннюю графическую процедуру) и различные другие утилиты и приложения из первых лиц.
Во-первых, убедитесь, что у вас есть необходимые инструменты сборки, которые в основном такие же, как и основные Toaruos: yasm , xorriso , genext2fs (с патчами Debian), python , mtools (для создания жирных полезных нагрузок) и gnu-efi EFI, чтобы создать эфир, (я буду изучать необходимые заголовки и функциональность в будущем, но теперь для того, чтобы просто набрать GNU).
Запустите make , и вам будет предложено построить набор инструментов. Ответьте y и позвольте набору инструментов построить.
Существуют инструкции по строительству Python 3.6, доступных от Gitlab Wiki.
В настоящее время только терминальная поддержка с использованием Freetype в качестве бэкэнда текста, но это будет расширено в будущем.
Freetype в основном должен построить как есть, хотя Libtool нужно научить, как создавать общий объект для топлива, называемых libfreetype.so - это остается в качестве упражнения для читателя, пока у меня не будет времени для формализации процесса.
После того, как Freetype будет построен и установлен в base/usr , make ext-freetype построит библиотеку расширения. Поместите требуемые шрифты, которые вы можете получить из Maineline Toaruos, в base/usr/share/fonts .
Благодаря доступным шрифтам сценарии сборки будут создавать большие рамки для размещения дополнительных файлов. Сервер Font автоматически запускается при запуске, если выбрана целевая задача GUI, а терминал автоматически будет использовать бэкэнд Freetype, если он загружается.
Композитор может использовать Каир для рендеринга, что повышает производительность по сравнению с наивным внутренним Blitter SSE, ускоренным SSE.
Никакая совместимость с ABI или API не гарантируется через разработку Toaruos-nih. До тех пор, пока более крупный корпус стороннего программного обеспечения не перенесен в нашу новую библиотеку C, API могут измениться для улучшения или упрощения использования библиотеки или исправления ошибок. Даже совместимость с ядром ABI не гарантируется, поскольку системные вызовы улучшаются или обеспечивают более совместимые с ожиданиями POSIX или стандарта C.
Ядро Тоаруоса полностью собственная. Его пользовательский пространство, однако, построен на нескольких сторонних библиотеках и инструментах, таких как библиотека Newlib C, Freetype, Cairo, Libpng и, в частности Python. Хотя решение о создании TOARUOS на этих технологиях совсем не считается ошибкой, остается возможность создать пользовательский пространство полностью с нуля.
Многие из наших первоначальных целей были достигнуты, включая достаточную поддержку библиотеки C Port Python 3.6.
Наши нынешние неудовлетворенные цели включают:
base/usr/include , а также графические ресурсы для композитора и декоратора окон.Toaruos-nih регулярно отражается на нескольких сайтах хостинга GIT. Рекомендуемый источник - Gitlab.