Zig 프로그래밍 언어로 작성된 오픈 소스 운영 체제 프로젝트입니다.
BAMOS는 새로운 표준을 도입하지 않지만 기존 표준의 최상의 구현을 위해 노력합니다.
이 프로젝트의 주요 기능과 목표는 가능한 한 잘 문서화 되고 간결하며 간단한 코드베이스를 갖춘 가볍고 매우 빠른 운영 체제를 개발하는 것입니다.
커널과 사용자 공간 (GNU/Linux, Windows NT 등) 사이의 여러 시스템 ABI에 대한 기본 지원을 동시에 포함하는 것을 목표로합니다. 이를 통해 사용자 경험을 크게 향상시키고 소프트웨어 개발자의 작업을 단순화해야합니다.

C/C ++ 또는 아마도 안전한 녹과 같은 친숙하고 확립 된 언어에도 불구하고, 우리의 선택은 Zig입니다.
Zig는 C/C ++에 대한 더 안전하고 기능적인 대안을 제공하면서 Rust보다 더 관리하기에 충분히 간단합니다. Zig를 사용하면 고속 및 최적화 된 기계 코드를 생성 할 수 있으며 주요 장점 중 하나는 빌드 시스템으로 컴파일 프로세스가 매끄럽고 엄청나게 단순하게 만듭니다.
커널 실행 파일을 만들려면 소스 코드, ZIG 컴파일러 및 zig build kernel 만 있으면됩니다.
일반 OS 문서는이 페이지에서 사용할 수 있습니다.
코드 문서는이 페이지에서 사용할 수 있습니다. 문서를 로컬로 생성하려면 다음 명령을 실행하십시오.
zig build docs 정적 사이트는 docs 디렉토리에 배치되며 다음을 사용하여 시작할 수 있습니다.
cd docs
python -m http.server표준 라이브러리에 대한 ZIG 언어 설명 및 문서는 공식 웹 사이트에서 찾을 수 있습니다.
바모스는 여전히 작지만 성장하는 프로젝트입니다.
우리는 모든 기여를 환영하고 프로젝트의 발전과 진화에 참여하도록 초대합니다.
기여에 관한 정보를 참조하십시오.
빌드 프로세스는 매우 간단합니다.
git clone https://github.com/bagggage/bamos.git
cd bamos
zig build kernel --release=[small | safe | fast] 기본적으로 빌드 결과는 .zig-out 디렉토리에 있습니다. 다른 경로를 지정하려면 빌드 중에 --prefix=[path] 옵션을 사용하십시오.
현재 OS는 타사 부트 부츠 부트 로더에 의존하며 bootboot/mkbootimg 유틸리티는 이미지를 만드는 데 사용됩니다. 앞으로이 단계는 단순화되고 더 많은 교차 플랫폼을 만들 계획입니다. 그러나 지금은 이미지를 만들려면 다음을 수행해야합니다.
mkbootimg 압축합니다.env.sh 에서 BOOTBOOT 변수를 설정하여 bootboot-bin 디렉토리의 경로를 지정하십시오.iso.sh 실행하십시오. 기본적으로 이미지는 dist 디렉토리에 배치됩니다.
빠른 OS 테스트 및 시작을 위해 QEMU 에뮬레이터를 사용하는 것이 좋습니다.
Windows 에서는 PATH 환경 변수에 미리 qemu 디렉토리를 추가해야합니다.
프로젝트의 루트 디렉토리에는 qemu.sh 및 debug.sh 스크립트가 있습니다.
qemu.sh 에뮬레이터에서 사전 구축 된 시스템 이미지 (기본적으로 dist/bamos.iso )를 실행합니다.debug.sh 는 컴파일하고 이미지를 생성하고 에뮬레이터에서 시스템을 실행합니다. BAMOS는 개발의 초기 단계에 있으며 많은 것들이 아직 구현되지 않았습니다. 또한 구현을 작성하고 운영 체제 아키텍처를 개발하려면 최상의 솔루션을 찾기 위해 반복적 인 접근 방식이 필요하므로 일부 세부 사항은 변경 될 수 있지만 이는 더 나은 것입니다.
프로젝트에서 이미 구현 된 내용과 현재 어떤 단계에 있는지 추적하려면 이 페이지를 확인하십시오.