내가 할 수 있기 때문에.
좋은 시간을 보내는 것은이 프로젝트를위한 나의 드라이브입니다 + 나는 그것과 함께 멋진 낮은 레벨을 많이 배웁니다!
Cavos 커널은 여기 저기 몇 비트의 인텔 어셈블리가있는 비교적 간단한 C로 작성된 모 놀리 식 x86_64입니다. Limine Bootloader를 사용하고 Root 파티션의 ext2와 함께 부팅을 위해 FAT32 파일 시스템을 활용합니다. 너무 많은 추상화를 피하면서 코드 구조를 깨끗하고 이해하기 쉽게 이해하기 쉽습니다. 따라서 코드 품질과 선명도는 때때로 성능 이득보다 우선 순위가 결정됩니다.
사용자 공간은 당시의 주요 초점이며 커널은 매우 안정적입니다. 나는이 OS를 가능한 한 Linux에 가깝게 만들려고 노력하고 있습니다. 이것은 Linux와 똑같은 시스템 호출로 볼 수 있습니다. 그것은 무작위가 아닙니다. 나는 Cavos가 가능한 한 바이너리 호환이되기를 원합니다!
아니요! Cavos 커널은 Linux와 소스 코드 또는 헤더를 공유하지 않습니다. Linux 소스 코드는 사용자 공간 어셈블리 중에 가져 오지만 일부 제 3 자 (PORTED) 프로그램은 헤더에 의존하기 때문입니다. 그럼에도 불구하고 실제 코드는 공유되지 않습니다.
이러한 목표는 결코 만족되지 않을 수도 있고, 완료하는 데 오랜 시간이 걸리거나 (우리는 도로에서 몇 년 동안 이야기하고 있습니다) 전혀 수행되지 않을 수도 있습니다. 또한이 목록은 구현 또는 계획된 모든 기능을 포함하지 않으며 언제든지 변경할 수 있습니다 ...
systemcall 이것에 대한 모든 것은 install.md에서 찾을 수 있습니다. OS를 올바르게 구축하고 사용하지 않는 이진 및 기타 물건을 청소하는 방법에 대한 자세한 정보를 보려면 거기로 이동하십시오.
2024 년 3 월 2 일 토요일. 많은 해결 방법을 통해 "나쁜"결정과 압도적 인 "Just-Works"정신을 통해, 나는 사용자 공간 애플리케이션을 끊임없이 연료 공간에 연료 할 수있는 순수한 x86 (32 비트) 커널을 함께 만들었습니다. 여전히 오래된 코드 (페이징과 같은 간단한 개념을 거의 이해하지 못했을 때), 구식 라이브러리 및 기타 많은 것들을 여전히 보유하고 있습니다. 때로는 효과가 있었지만 나는 만족하지 못했습니다.
오후 5시; 그날 오후에 나는 모든 것을 X86_64 아키텍처로 마이그레이션하는 긴 과정을 시작하고 실제 악몽이 디버그하기 위해 많은 신뢰성 문제를 해결하기로 결정했습니다. 나는 기본적으로 Quick & Dity 솔루션이 완전히 피할 수있는 실수로 이어진다는 것을 이해하기 위해 특정 지점에 도달했으며, 이는 엄청난 양의 추상화가 추가 된 후에 정확히 찾아 내기가 매우 어려웠습니다.
이 프로젝트는 GPL V3 (GNU General Public License v3.0)에 따라 라이센스가 부여됩니다. 자세한 내용은 라이센스 파일을 방문하십시오.