Linux와 호환되는 단순화된 커널인 Tilck Project

진드기

Tilck는 바이너리 수준에서 Linux와 호환되도록 설계된 교육용 모놀리식 x86 커널입니다.

이라는 소식이 전해졌다. 프로젝트 틸크(Project Tilck)라는 새로운 개발, VMware 직원이 개발 중인 Linux와 근본적으로 다르지만 호환되도록 설계된 모놀리식 커널 Linux와 바이너리이며 Linux용으로 구축된 애플리케이션을 실행할 수 있습니다.

개발 요구되는 최소한의 특성을 구현하는 것을 목표로 하며, 기능 과부하 방지, 단순하고 이해하기 쉬운 아키텍처, 최대 코드 단순화, 작은 바이너리 파일 크기, 예측 가능한(결정론적) 동작, 최소 지연 보장, 높은 안정성 달성, 개발 및 테스트 프로세스 단순화.

Tilck는 다중 사용자 서버나 데스크톱 시스템을 대상으로 하지 않는다는 점에서 Linux와 근본적으로 다릅니다. 이는 말이 되지 않기 때문이 아닙니다. 가지고 있는 특징 중. 제안과 그들이 요구하는 본질적인 복잡성. 즉, Linux는 해결하는 문제를 고려할 때 훌륭합니다. Tilck는 다음과 같은 대가로 더 적은 기능을 제공합니다.

더 간단한 코드 (지금까지)
가장 작은 이진 크기
극도로 결정론적인 행동
초저지연
더 쉬운 개발 및 테스트
추가 견고성

프로젝트 다중 사용자 서버 환경에서 사용하기 위한 것이 아닙니다. 또는 데스크탑 시스템. 파일 시스템 중 FAT16 및 FAT32는 ramfs, devfs 및 sysfs와 마찬가지로 읽기 모드에서 지원됩니다. 블록 장치는 아직 구현되지 않았습니다. 모든 것이 기억 속에 있습니다.

VFS는 FS의 동작을 추상화하기 위해 제공됩니다. 현재 개발 단계의 멀티스레딩은 커널 수준에서만 사용할 수 있습니다(아직 사용자 공간에서는 제공되지 않음).

커널은 선점형 멀티태스킹을 지원하고 약 100개의 기본 호출을 구현합니다. fork(), waitpid(), read(), write(), select() 및 poll()과 같은 Linux 시스템에 BusyBox, Vim, TinyCC, Micropython 및 Lua와 같은 콘솔 응용 프로그램을 실행하기에 충분합니다. 뿐만 아니라 게임 fbDOOM과 같은 프레임 버퍼 기반 그래픽 응용 프로그램도 있습니다. Tilck용 프로그램을 만들기 위해 Musl 라이브러리를 기반으로 하는 일련의 도구가 제공됩니다.

언급된다 제안된 드라이버 세트는 QEMU 환경 모두에서 Tilck 실행을 허용합니다. USB 드라이브에서 부팅하는 기존 시스템과 같습니다. 이 외에도 SSE, AVX 및 AVX2 확장 명령어 세트에 대한 지원이 있음을 알 수 있습니다. BIOS 및 UEFI 시스템을 지원하는 자체 대화형 부트로더를 제공하지만 GRUB2와 같은 타사 부트로더를 사용할 수도 있습니다. QEMU에 로드될 때 커널은 3MB RAM이 있는 환경에서 실행될 수 있습니다.

현재, 이 프로젝트는 교육 프로젝트로 자리 잡았습니다.그러나 장기적으로 Tilck는 예측 가능한 동작과 낮은 대기 시간이 필요한 임베디드 시스템의 커널로 사용하기에 적합한 수준으로 성장할 수 있습니다.

Tilck는 내부적으로 스레드 개념을 사용하지만 멀티스레딩은 현재 사용자 공간에 노출되지 않습니다(물론 커널 스레드가 존재함). fork() 및 vfork() 모두 올바르게 구현되었으며 분기 프로세스에 copy-on-write가 사용됩니다. waitpid() 시스템 호출이 완전히 구현되었습니다(프로세스 그룹 등을 의미함).

이 영역에서 한 가지 흥미로운 기능은 특별히 언급할 가치가 있습니다. 사용자 공간 멀티스레딩이 부족함에도 불구하고 Tilck는 TLS를 완벽하게 지원합니다.

이를 것으로 예상 진드기 Linux 커널 기반 솔루션과 전용 실시간 운영 체제 간의 격차를 해소하고, FreeRTOS 및 Zephyr와 같습니다. 계획에는 Tilck를 ARM 및 비메모리 관리 장치(MMU) 프로세서로 마이그레이션, 네트워크 하위 시스템 추가, 블록 장치 지원 및 ext2와 같은 추가 파일 시스템이 포함됩니다.

코드는 C로 작성되었으며 BSD 라이선스에 따라 배포됩니다. 현재 개발 단계에서 커널은 x86 아키텍처만 지원하지만 코드는 다른 아키텍처에 대한 향후 지원을 위해 보편성과 구현을 염두에 두고 설계되었습니다.

마침내 당신이 있다면 그것에 대해 더 알고 싶어, 당신은 세부 사항을 확인할 수 있습니다 다음 링크에서.


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자: AB Internet Networks 2008 SL
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.