프로젝트 소개

Unikraft는 개발자가 클라우드 및 엣지 환경을 위한 고도로 맞춤화된 단일 목적 가상 머신(유니커널)을 구축할 수 있게 해주는 오픈소스 유니커널 개발 키트입니다. Linux Foundation 회원 프로젝트이자 Xen Project 인큐베이터 프로젝트로, BSD-3-Clause 라이선스로 배포됩니다. README에 설명된 주요 특징은 다음과 같습니다: - 즉각적인 콜드 부팅: 유니커널은 Linux 기반 시스템의 일반적인 수십 초 대신 밀리초 단위로 시작할 수 있습니다. - 모듈식 설계: 개발자는 필요한 구성 요소만 포함하여 더 가벼운 OS 구성을 만들 수 있습니다. - 성능 중심: 오버헤드를 최소화하고 플랫폼별 최적화를 사용합니다. - 아키텍처 지원: x86 및 ARM을 지원하며, RISC-V는 계획 중으로 명시되어 있습니다. - 언어 및 애플리케이션 지원: C, C++, Rust, Node.js, Go, Python(Flask 및 http.server) 예제를 포함합니다. - 클라우드 및 엣지 호환성: 선택적 구성 요소 포함과 추가 보안 기능을 통해 공격 표면을 줄입니다. - 효율적인 리소스 활용: 더 작은 설치 공간과 더 높은 서버 포화도를 제공합니다. - 100명 이상의 기여자가 참여하는 커뮤니티 주도 개발. 시작하기: 권장 경로는 셸 설치 프로그램 또는 Homebrew를 통해 설치되는 동반 명령줄 도구인 kraft를 사용하는 것입니다. 사용자는 `kraft run unikraft.org/helloworld:latest`로 첫 번째 유니커널을 실행하고, `kraft ps --all`로 인스턴스를 확인하며, `kraft pkg ls --update --apps`로 커뮤니티 이미지 카탈로그를 탐색할 수 있습니다. GNU Make 기반 워크플로우도 고급 사용을 위해 문서화되어 있습니다. 사전 구축된 개발 컨테이너 이미지(kraftkit.sh/base)는 에뮬레이션 모드에서 빌드 및 테스트에 사용할 수 있으며, 예제는 GitHub Codespaces에서 시도할 수 있습니다. 맞춤형 유니커널을 빌드하려면 기존 Dockerfile을 가리키는 Kraftfile을 추가하고 런타임, 루트 파일 시스템 및 명령을 지정한 다음 작업 디렉터리에서 `kraft run .`을 실행합니다. 예제 프로젝트에는 C, C++, Rust의 hello-world 애플리케이션과 Node.js 18, Go 1.21, Flask 3.0, Python 3.10의 HTTP 웹 서버가 포함됩니다. 이 저장소는 Unikraft 유니커널 프로젝트 자체이며, 별도의 플랫폼으로 자체 CLI와 문서를 가진 Unikraft Cloud와는 다릅니다. 기여는 Developer Certificate of Origin 프로세스와 프로젝트의 코딩 규칙을 따릅니다.