# Nim으로 구현된 취미용 운영체제 Fusion

> Clean Markdown view of GeekNews topic #15852. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15852](https://news.hada.io/topic?id=15852)
- GeekNews Markdown: [https://news.hada.io/topic/15852.md](https://news.hada.io/topic/15852.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-07-15T22:35:11+09:00
- Updated: 2024-07-15T22:35:11+09:00
- Original source: [github.com/khaledh](https://github.com/khaledh/fusion)
- Points: 1
- Comments: 1

## Topic Body

### Fusion OS

Fusion은 Nim으로 구현된 x86-64용 취미 운영체제임. 개발 과정은 https://0xc0ffee.netlify.app에서 문서화되고 있음.

#### 스크린샷

- **UEFI 부트로더**
- **GUI** ( _참고: 이 스크린샷은 아직 작업 중인 `graphics` 브랜치에서 가져온 것임._)
- **Fusion 커널 부팅**

#### 기능

현재 구현된 기능:
- UEFI 부트로더
- 물리 메모리 관리자
- 가상 메모리 관리자
- 단일 주소 공간
- 사용자 모드
- 선점형 멀티태스킹
- 시스템 호출
- ELF 로더
- 타이머 인터럽트

계획된 기능:
- 수요 페이징
- 프로세스 간 통신
- 디스크 I/O
- 파일 시스템
- 키보드/마우스 입력
- 쉘
- GUI
- 네트워킹

#### 빌드

Fusion을 빌드하려면 다음 종속성을 설치해야 함:
- Nim
- LLVM (clang 및 lld)
- Just

다음 명령어로 Fusion을 빌드:
```bash
just build
```

#### 실행

Fusion은 현재 QEMU에서 실행되므로 먼저 QEMU를 설치해야 함. 다음 명령어로 Fusion을 실행:
```bash
just run
```

#### 라이선스

MIT

### GN⁺의 정리

Fusion OS는 Nim으로 구현된 x86-64용 취미 운영체제로, 운영체제 개발 과정을 배우고자 하는 사람들에게 유용함. 현재 UEFI 부트로더, 물리 및 가상 메모리 관리자, 사용자 모드 등 기본적인 기능이 구현되어 있음. 앞으로 수요 페이징, 프로세스 간 통신, 파일 시스템 등 다양한 기능이 추가될 예정임. QEMU를 통해 쉽게 테스트할 수 있어 개발 및 학습에 적합함. 비슷한 프로젝트로는 xv6, OSDev 등이 있음.

## Comments



### Comment 27281

- Author: neo
- Created: 2024-07-15T22:35:12+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40962767) 
- **Author here.** 질문에 답변할 준비가 되어 있음
- **Your blog/docs are excellent.** 블로그와 문서가 훌륭함. 보여주기와 설명의 균형이 완벽함
- **Nice, I love to see stuff like this.** 이런 프로젝트를 보는 것이 좋음. 몇 년 동안 Nim 생태계에 간헐적으로 참여해왔음. 이 작은 프로젝트가 계속 진행되는 것을 보는 것이 기쁨
- **Nifty!** ELF 모듈을 쉽게 읽을 수 있어서 재미있음. 언젠가 Nim으로 RTOS를 작성하고 싶음. Nim으로 임베디드 프로그램을 작성하는 것을 즐기며, RTOS를 만드는 것도 재미있을 것 같음
- **What is Nim, and what is the overarching design goal for Fusion?** Nim이 무엇인지, 그리고 Fusion의 전체적인 디자인 목표가 무엇인지 궁금함. 너무 기본적인 질문이 아니길 바라며, 이 주제에 대한 배경 지식이 전혀 없어서 누군가 설명해주길 바람
- **Development journal of Fusion’s author:** Fusion의 저자의 개발 일지 링크를 공유함
  - [https://0xc0ffee.netlify.app/osdev/01-intro.html](https://0xc0ffee.netlify.app/osdev/01-intro.html)
- **How does this compare with TempleOS?** TempleOS와 비교했을 때 어떤 점이 다른지 궁금함. 단일 주소 공간을 사용하는 점에서 비슷하게 들림
- **The problem that Nim have and many afraid to go Nim is case and style insensitivity.** Nim의 문제점은 대소문자와 스타일에 민감하지 않다는 것임
  - 예: Is_land == island == IsLaND == is-land
  - 팀 환경이나 실제 프로젝트에서 문제가 됨
  - 현재 상황이 어떻게 진행되고 있는지 궁금함. 마지막으로 확인했을 때, 주요 개발자가 GitHub에서 인기 투표에 반대하는 조치를 취하지 않기로 했음
  - 그 외에는 Fusion OS 프로젝트와 문서가 훌륭함
