Toaruos-Nih는 타사 구성 요소가없는 Toaruos의 분포입니다. 부트 로더, 커널, 모듈, C 라이브러리 및 사용자 공간 애플리케이션 및 라이브러리는 모두 Toaruos Development Team 및 Direct Contributors가 작성합니다.
이 분포는 결국 Mainline Toaruos의 핵심을 다양한 타사 구성 요소 건물로 자체 C 라이브러리로 대체하는 것을 목표로합니다. 이것은 장기 프로젝트이며,이 목적에 유용한 시점까지 C 라이브러리를 개발하는 것은 꽤 오랫동안 완료되지 않을 것으로 예상됩니다.
Toaruos-NIH에는 합성 창 관리자, 기능적 인 터미널 에뮬레이터, 쉘, 여러 명령 줄 도구, 텍스트 편집기 (구문 강조 표시 포함), 동적 로더 및 Python 3.6 (사전 제작 된 CD 릴리스에 포함됨)이 포함 된 그래픽 데스크톱 환경이 제공됩니다. 커널과 포함 드라이버는 ATA 하드 디스크 및 CD 드라이브, EXT2 파일 시스템, ISO 9660 파일 시스템, PS/2 마우스 및 키보드, RS232 Serial, Intel E1000, RTL8139 및 AMD Series 네트워크 칩셋, TCP/IPV4, 및 VM Frombufs를 포함하여 AMD PCNET-SERIES 네트워크 칩셋, AMD PCNET-SERIES 네트워크 칩셋, 및 AMD PCNET-SERIES 네트워크 칩셋 및 AMD PCNET-SERIES 네트워크 칩 세트 및 AMD PCNET-Series 네트워크 칩 세트 및 AMD Framebupers를 포함합니다. FrameBuffers는 EFI에 의해 초기화 된 고급 VM 통합 (VMware, QEMU 및 VirtualBox의 절대 포인팅 장치 포함 및 자동 디스플레이 크기 조정, "Seamless Desktop"및 Hardware Cursors가 특별히 가상 파일 시스템의 구현, /proc -Style Pipes 및 Ttys, Ttys, Ttys를 공유합니다. 인텔 AC'97 오디오 (믹서 포함) 등.
릴리스는 때때로 Github에 게시되며 야간은 Toaruos.org에서 구입할 수 있습니다.
VMware 워크 스테이션 (합리적이지만 드라이버 지원이 없음) 및 Boch (권장되지 않음)에서 일부 테스트가 수행되었지만 에뮬레이터, 특히 QEMU 또는 VirtualBox에서 Toaruos -NIH를 실행하는 것이 좋습니다.
1GB의 RAM 및 Intel AC'97 사운드 칩이 권장됩니다.
qemu-system-i386 -cdrom image.iso -serial mon:stdio -m 1G -soundhw ac97,pcspk -enable-kvm -rtc base=localtime
적절한 QEMU 시스템 대상과 함께 OVMF를 사용할 수도 있습니다. EFI 로더는 IA32 및 X64 EFI를 모두 지원합니다.
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는 "기타/미지의"게스트 또는 EFI가있는 "기타/URKONED 64 비트"게스트로 기능해야합니다.
virtio-net 을 제외한 모든 네트워크 칩셋 옵션은 작동해야합니다 (Virtio 드라이버 작업은 아직 시작되지 않았습니다).
게스트 추가 드라이버가 존재하기 때문에 더 큰 디스플레이 해상도를 지원하기 위해 최소 32MB의 비디오 메모리를 VM에 제공하는 것이 좋습니다. 특히 4K 디스플레이를 사용하는 경우 VM 이상을 제공하는 것이 좋습니다.
오디오 컨트롤러가 ICH AC97로 설정되어 있고 오디오 출력이 활성화되어 있는지 확인하십시오 (일부 버전의 VirtualBox에서는 기본적으로 비활성화되므로).
최상의 호환성을 위해 시스템 칩셋을 PIIX3로 설정하십시오. 1GB의 RAM이 권장됩니다.
VMware 지원은 실험적입니다.
글을 쓰는 시점에서 다음 구성은 기능으로 테스트되었습니다.
Bochs를 사용하여 Toaruos를 운영하는 것은 권장되지 않습니다. 그러나 시도해 보려면 다음 구성 옵션이 권장됩니다.
pcivga 장치가 활성화되어 있는지 확인하거나 Toaruos는 PCI를 통해 비디오 카드를 찾을 수 없습니다.slirp 백엔드를 사용하여 e1000 네트워크 장치를 활성화하십시오.sync=realtime, time0=local, rtc_sync=1 의 클럭 설정을 권장합니다. 전체 운영 체제의 모든 소스 코드는이 저장소에 포함되어 있습니다.
NIH 커널은 기본적으로 메인 라인 커널과 동일하지만 PCI 공급 업체 및 장치 ID 목록이 자체 슬림 한 다운 버전으로 대체되었습니다. 이것은 Toaruos 커널의 유일한 타사 요소였습니다. 또한 커널의 헤더는 클리너 빌드를 용이하게하기 위해 원래 디렉토리에서 이전되었습니다. NIH 커널은 Toaruos 커널의 최신 버전으로 간주되어야합니다.
Mainline Toaruos는 Grub과 함께 배송되어 멀티 무트 호환 ELF 로더를 제공했습니다. 이를 위해, 우리의 기본 부트 로더는 Multiboot도 구현합니다. 그러나 기능이 완성 된 부트 로더를 작성하는 것이이 프로젝트의 목표가 아니기 때문에 기본 부트 로더는 매우 제한되어 있으며 El Torito "No-emulation"지원이 포함 된 시스템에서 ATAPI CD 만 지원합니다. 실제 하드웨어에서 작동하는 것은 보장되지 않지만 QEMU, Bochs, VirtualBox 및 VMware 플레이어에서 테스트되었습니다.
사용자 공간에는 진행중인 C 표준 라이브러리, Toaruos 기본 라이브러리, 작곡가 (사내 그래픽 루틴 만 사용) 및 기타 여러 퍼스트 파티 유틸리티 및 응용 프로그램이 포함됩니다.
첫째, yasm , xorriso , genext2fs (데비안 패치 포함), python , mtools (Fat EFI Payloads를 구축하기 위해) 및 gnu-efi 와 같은 Mainline Toaruos와 같은 필요한 빌드 도구를 갖도록해야합니다.
실행 make 툴체인을 구축하라는 메시지가 표시됩니다. 응답 y 와 도구 체인이 빌드되도록하십시오.
Gitlab Wiki에서 Python 3.6 구축에 대한 지침이 있습니다.
현재 터미널만이 프리 타입을 텍스트 렌더링 백엔드로 사용하는 지원을하지만 이는 향후 확장 될 것입니다.
FreeType는 주로 AS -IS를 구축해야하지만 Libtool은 libfreetype.so 라는 Toaruos의 공유 객체를 구축하는 방법을 가르쳐야합니다. 따라서 프로세스를 공식화 할 시간이있을 때까지 독자에게 연습으로 남아 있습니다.
프리 타입이 구축되어 base/usr 에 설치되면 make ext-freetype Extension 라이브러리를 빌드합니다. 메인 라인 Toaruos에서 얻을 수있는 필수 글꼴을 base/usr/share/fonts 에 배치하십시오.
글꼴을 사용할 수있게되면 빌드 스크립트는 추가 파일을 수용하기 위해 더 큰 램 디스크를 구축합니다. GUI 부팅 대상을 선택하면 글꼴 서버가 시작시 자동으로 실행되며 터미널은로드되면 프리 타입 백엔드를 자동으로 사용합니다.
작곡가는 렌더링을 위해 카이로를 사용할 수 있으며, 이는 순진한 사내 SSE-Accelerated 블리터에 대한 성능을 향상시킵니다.
Toaruos-Nih의 개발을 통해 ABI 또는 API 호환성이 보장되지 않습니다. 타사 소프트웨어의 더 큰 코퍼스가 새로운 C 라이브러리로 포팅 될 때까지 API는 라이브러리 사용을 개선하거나 단순화하거나 버그를 수정하기 위해 변경 될 수 있습니다. 시스템 호출이 개선되거나 POSIX 또는 C 표준에 대한 기대치를 더 많이 준수함에 따라 커널 ABI 호환성조차 보장되지 않습니다.
Toaruos의 커널은 전적으로 사내입니다. 그러나 사용자 공간은 Newlib C Library, Freetype, Cairo, Libpng 및 특히 Python과 같은 여러 타사 라이브러리 및 도구를 기반으로합니다. 이러한 기술에 대해 Toaruos를 구축하기로 한 결정은 전혀 실수로 간주되지는 않지만, 사용자 공간을 완전히 처음부터 구축 할 가능성은 남아 있습니다.
Port Python 3.6에 대한 충분한 C 라이브러리 지원을 포함하여 우리의 초기 목표 중 많은 부분이 충족되었습니다.
현재 충족되지 않은 목표는 다음과 같습니다.
base/usr/include 의 C 헤더를 포함합니다.Toaruos-Nih는 정기적으로 여러 GIT 호스팅 사이트에 반영됩니다. 권장 소스는 gitlab입니다.