덕 코
그래픽 윈도우 관리자가 장착 된 취미 유닉스와 같은 OS 및 X86 PC 용 응용 프로그램, 진행중인 AARCH64 포트가 포함되어 있습니다.

데모 | 기능 | 앱 | 포트 | 구축 방법
보류 중
Duckos의 개발은 현재 보류 중입니다. 그래도 자유롭게 포기하고 엉망으로 만들어!
Duckos를 사용해보십시오
로컬로 가상화
최근 릴리스는 릴리스 페이지에서 다운로드 할 수 있습니다. 또는 최신 Duckos의 디스크 이미지는 Duckos Github 워크 플로의 아티팩트에서 다운로드 할 수 있습니다. 그런 다음 QEMU 또는 선택한 소프트웨어를 사용하여 가상화 또는 에뮬레이션 할 수 있습니다.
브라우저에서 에뮬레이션하십시오
또는 V86 프로젝트 덕분에 Copy의 V86 프로젝트 덕분에 브라우저에서 Duckos 버전을 시도 할 수 있습니다. 이것은 로컬로 실행하는 훨씬 느리게 진행되며 Doom과 같은 포트 된 소프트웨어 사본이 없습니다 . 여기서 시도해 볼 수 있습니다!
특징
- Window Manager / Compositor와 앱 생성을위한 themsable view 기반 UI 툴킷.
- UNIX 소켓과 E1000 이더넷 드라이버가있는 IP 네트워킹 스택을 통한 기본 TCP/UDP
- AC97 사운드 카드에 대한 사운드 지원
- Doom, GCC와 같은 유틸리티 및 SDL과 같은 라이브러리와 같은 많은 프로그램 포트
- 바이너리의 동적 연결 및 로딩
- Ptrace 및 샘플링 프로파일 러와 같은 온보드 디버깅 기능
- 소프트웨어 3D 렌더링 라이브러리
- 실제 하드웨어에서 실행됩니다
- Raspberry Pi 3b에서 1 단계를 지나서 부팅하는 WIP AARCH64 포트 :)
미래 계획
- Aarch64 포트를 완료하십시오
- 커널 IPC 시스템을보다 효율적으로 개선하십시오
- 더 나은 글꼴 렌더링 (벡터 글꼴, 다양한 크기 등)
- 셀프 호스트
- 더 많은 안정성과 속도
- 필요할 때 메모리를 자유롭게 할 수 있고 주기적으로 플러시하는 더 나은 파일 시스템 캐시 구현
- 더 많은 커널 및 사용자 공간 단위 테스트
- 커널, 라이브러리 및 응용 프로그램에 대한 더 나은 문서화
- 더 많은 커널 및 사용자 공간 디버깅 도구가 있으므로 내 시스템에서 여분의 커피를 피할 수있는 간단한 버그로 인해 Segfault가 발생할 때마다 QEMU 디버거에서 무릎을 꿇을 필요가 없습니다.
- 멀티 프로세서 (멀티 코어) 지원
- 다양한 모듈을 커널에서 사용자 공간으로 천천히 전환합니다 (LA 마이크로 커널)
- 믹스에 녹을 추가하십시오 (?)
서비스
이들에 대한 코드는 서비스에서 찾을 수 있습니다.
- init (/bin/init) : Duckos의 초기 시스템.
- 연못 (/bin/pond) : Duckos의 창 관리자/작곡가.
- quack (/bin/quack) : Duckos 용 사운드 서버.
- DHCP 클라이언트 (/bin/dhcpclient) : IP 주소를 할당하기위한 DHCP 클라이언트.
앱
이에 대한 코드는 프로그램/응용 프로그램에서 찾을 수 있습니다.
- 계산기 (/apps/calculator.app) : 기본 계산기.
- 터미널 (/apps/terminal.app) : libui 기반 터미널 응용 프로그램.
- 시스템 모니터 (/apps/monitor.app) : 메모리 및 CPU 사용을 보여주는 기본 시스템 모니터.
- 4 연속 (/apps/4inarow.app) : 기본 4 인치 게임 게임. 두 명의 플레이어와 또는 컴퓨터에서 플레이하십시오.
- Sandbar (/bin/sandbar) : 화면 하단에 버튼 행을 표시하여 응용 프로그램을 시작하는 기본 "작업 표시 줄".
- 파일 (/apps/files.app) : 기본 파일 탐색기 응용 프로그램.
- Viewer (Apps/Viewer.app) : 이미지를보고 사운드 파일을 재생할 수있는 기본 미디어 뷰어
- lib3d 데모 (apps/3demo.app) : lib3d 라이브러리의 데모. 기본적으로 큐브를 표시합니다. OBJ 파일을 보는 데 사용할 수 있습니다.
- 편집기 (/apps/editor.app) : 텍스트 파일을 편집하는 기본 앱입니다.
- 정보 (/apps/about.app) : 일부 시스템 정보를 보여줍니다.
- Ducksweeper (/apps/ducksweeper.app) : 그리드 기반 오리 회피 게임;)
CLI 프로그램
이에 대한 코드는 프로그램/Coreutils에서 찾을 수 있습니다. 일반적인 용의자와 함께 Duckos는 다음과 같습니다.
- DSH (/bin/dsh) : 배관, 리디렉션 및 명령을 지원하는 기본 쉘.
- Open (/bin/olop) : 적절한 프로그램을 사용하여 명령 줄에서 파일 및 응용 프로그램을 열 수있는 유틸리티.
- 재생 (/bin/play) : 오디오 파일을 재생합니다.
- 날짜 (/bin/date) : 날짜와 시간을 보여줍니다.
- 프로파일 (/bin/profile) : 실행중인 애플리케이션을 프로파일하고 FlameGraph/SpeedScope 호환 파일을 출력합니다.
- 호스트에서
scripts/debugd.py 실행하고 -r 매개 변수를 전달하여 프로파일을 전달하여 네트워킹을 통해 출력을 호스트로 직접 보내고 SpeedScope로 열 수 있습니다.
논쟁을 취하는 프로그램은 논쟁없이 실행할 때 올바른 사용법을 제공합니다.
도서관
- LIBC : 표준 C 라이브러리.
- LIBM : 표준 C 라이브러리의 수학 부분.
- Libpond : 연못 창 관리자 / 작곡가와 인터페이스하는 데 사용되는 라이브러리.
- libgraphics : 이미지 형식 로딩과 같은 그래픽으로 작업하기위한 몇 가지 유틸리티를 제공하는 라이브러리.
- libui : 응용 프로그램을위한 UI 프레임 워크.
- Libtui : 터미널 응용 프로그램을위한 프레임 워크.
- libterm : 터미널 처리를위한 프레임 워크.
- Libduck : 인수 및 구성 파일 구문 분석과 같은 일반적으로 사용되는 클래스 및 유틸리티를 포함하는 라이브러리.
- Libriver : D-BUS와 다르지 않은 IPC 라이브러리는 원격 기능 호출 및 데이터 전달을위한 프레임 워크를 제공합니다.
- Libapp : 설치 및 실행중인 응용 프로그램에 대한 정보를 검색하는 방법을 제공하는 라이브러리.
- LIBSYS : 시스템 정보를 검색하기위한 더 높은 수준의 C ++ 추상화를 제공합니다.
- libsound : 오디오 애플리케이션을위한 프레임 워크를 제공하고 사운드 서버 Quack과 인터페이스합니다.
- LIB3D : 기본 소프트웨어 3D 렌더링 기능을 제공합니다.
- Libmatrix : 매트릭스 수학 유틸리티를 제공합니다.
- libexec : ELF 지원을 제공합니다.
- libdebug : 디버깅 기능을 제공합니다.
포트
포트를 실행하여 포트를 설치할 수 있습니다. 필요한 종속성도 구축 및 설치됩니다.
더 흥미로운 포트 중 일부는 다음과 같습니다.
- 운명
- 자신의 Doom Wadfile을 제공하고 /apps/doom.app/ 디렉토리에 넣어야합니다. 자세한 내용은 빌드 지침을 참조하십시오.)
- binutils
- GCC
- SDL2
- 또한 sdl2_gfx, sdl2_image 및 sdl2_ttf
건물 / 달리기
기여
- Duckos에 기여하는 방법에 대한 정보는 Contributing.md를 참조하십시오.
크레딧
- 커널 힙 할당 구현에 대한 Blanham의 Liballoc 1.1 거울 (오픈 도메인이므로 사용하려면 적극 권장합니다).
- 많은 영감을 얻기위한 세레니티오스
- 글꼴 용 Gohufont (WTFPL에 따라 라이센스)
특허