본문으로 건너뛰기
피드

코넬대가 공개한 정확히 2,000줄짜리 교육용 운영체제

open-source 약 6분
vote
0
댓글
북마크

코넬대 기반 프로젝트인 egos-2000은 학생이 교육용 운영체제 전체 코드를 직접 읽을 수 있게 만드는 걸 목표로 한다. C, 헤더, 어셈블리, make 파일을 합쳐 정확히 2,000줄이며, QEMU와 RISC-V 보드에서 동작하고 9개 코스 프로젝트가 붙어 있다. 운영체제 수업에서 ‘작지만 전체 구조가 보이는 코드베이스’가 필요했던 사람에게 꽤 반가운 자료다.

  • 1

    egos-2000은 정확히 2,000줄 코드로 구성된 교육용 운영체제

  • 2

    QEMU와 RISC-V 보드에서 동작하며, EGOS 책은 이 OS를 바탕으로 9개 코스 프로젝트를 제공

  • 3

    earth, grass, application 3계층 구조로 하드웨어 추상화부터 파일 시스템과 셸까지 다룸

  • 4

    C 코드 1,592줄, 헤더 258줄, 어셈블리 92줄, make 58줄로 구성

  • 5

    Northeastern과 Cornell 수업에서 사용됐고, DOOM 실행 사례까지 있음

  • 코넬대 쪽에서 교육용 운영체제 egos-2000을 공개함. 핵심 컨셉은 아주 명확함

    • ‘학생이 교육용 OS의 모든 코드를 직접 읽을 수 있어야 한다’는 게 프로젝트 비전임
    • 그래서 전체 코드가 정확히 2,000줄로 맞춰져 있음. 이름 그대로임
  • 줄 수 구성이 꽤 흥미로움

    • C 파일 30개가 1,592줄로 대부분을 차지함
    • C/C++ 헤더 9개가 258줄, 어셈블리 3개가 92줄, make 파일 1개가 58줄임
    • blank 545줄, comment 820줄을 제외한 실제 code 합계가 정확히 2,000줄로 계산됨

중요

> 교육용 OS에서 ‘작다’는 건 그냥 미니멀하다는 뜻이 아님. 학생이 커널부터 셸까지 전체 경로를 머릿속에 넣을 수 있느냐가 포인트임.

  • egos-2000은 QEMU와 RISC-V 보드에서 모두 돌아감

    • QEMU로는 실제 보드 없이 노트북에서 실습할 수 있음
    • RISC-V 보드 지원 덕분에 운영체제가 추상 개념이 아니라 실제 하드웨어 위에서 어떻게 움직이는지도 볼 수 있음
  • 구조는 earth, grass, application 3계층으로 나뉨

    • earth 계층은 하드웨어별 추상화를 담당함
    • 여기엔 tty와 disk 장치 인터페이스, timer와 memory management 인터페이스가 포함됨
    • grass 계층은 하드웨어와 무관한 추상화를 담당하고, process control block과 system call interface를 다룸
    • application 계층은 file system, shell, user commands를 구현함
  • 이 3계층 인터페이스는 egos.h의 struct earth와 struct grass 정의에 드러남

    • 교육용 프로젝트에서 이건 꽤 중요함. 학생이 ‘어디까지가 하드웨어 의존 코드고, 어디부터가 OS 공통 로직인지’를 코드 구조로 바로 볼 수 있기 때문임
    • 운영체제 수업에서 제일 헷갈리는 부분 중 하나가 추상화 경계인데, 이 프로젝트는 그 경계를 이름부터 노골적으로 드러냄
  • EGOS 책에는 egos-2000 기반 코스 프로젝트 9개가 포함돼 있음

    • 단순히 GitHub에 작은 OS 코드만 던져둔 게 아니라, 수업에서 단계적으로 확장하거나 분석할 수 있게 구성된 자료에 가까움
    • Northeastern CS4973/6640과 Cornell CS4411/5411에서 사용된 이력이 언급됨
  • 포팅 사례도 꽤 다양함

    • mriscv라는 SystemVerilog 기반 단순 프로세서로 포팅됐음
    • Allwinner D1과 Sipeed Lichee RV64 Nezha compute module로도 포팅됨
    • 심지어 DOOM 비디오 게임을 egos-2000에서 돌린 사례까지 있음. 교육용 OS 치고는 꽤 귀여운 데모임
  • 운영체제 공부하는 개발자에겐 꽤 괜찮은 입구가 될 수 있음

    • Linux 커널은 너무 크고, 추상 강의만 보면 감이 안 오고, xv6도 처음엔 버거운 사람에게 ‘전체를 읽는 경험’을 줄 수 있음
    • 2,000줄 안에 하드웨어 추상화, 프로세스, 시스템 콜, 파일 시스템, 셸이 들어간다는 건 OS의 큰 그림을 잡는 데 도움이 됨

기술 맥락

  • egos-2000의 선택은 기능을 많이 넣는 게 아니라, 전체를 읽을 수 있는 크기로 줄이는 쪽이에요. 운영체제는 커널, 메모리, 프로세스, 파일 시스템이 서로 얽혀 있어서 일부만 보면 감이 잘 안 오거든요. 그래서 2,000줄 제한은 단순한 숫자놀이가 아니라 학습 설계에 가까워요.

  • QEMU와 RISC-V를 같이 지원하는 것도 실용적인 선택이에요. QEMU는 수업 환경을 맞추기 쉽고, RISC-V 보드는 실제 하드웨어 감각을 줄 수 있어요. 같은 OS를 에뮬레이터와 보드에서 모두 돌리면 추상화 계층이 왜 필요한지 자연스럽게 보이죠.

  • earth, grass, application 계층은 OS 수업에서 중요한 경계선을 보여줘요. 하드웨어별 처리는 earth에 두고, 프로세스와 시스템 콜 같은 공통 로직은 grass에 두고, 파일 시스템과 셸은 application에 올리는 식이에요. 학생 입장에선 변경 범위가 어디인지 추적하기 쉬워져요.

  • 이 프로젝트가 흥미로운 이유는 ‘작지만 OS처럼 생긴’ 균형 때문이에요. 너무 작은 예제는 실제 운영체제 감각이 없고, 너무 큰 코드는 읽다 지치는데, egos-2000은 수업 프로젝트 9개를 붙일 만큼의 구조를 유지하면서도 전체 코드를 훑을 수 있게 만든 쪽이에요.

운영체제 학습 자료는 보통 너무 장난감 같거나, 반대로 xv6처럼 읽을 건 많은데 초심자에겐 부담스러운 경우가 많음. egos-2000은 ‘전부 읽을 수 있는 크기’라는 목표를 숫자로 박아둔 게 매력이다.

댓글

댓글

댓글을 불러오는 중...

open-source

차세대 데이터 파일 포맷 F3, 디코더를 Wasm으로 파일 안에 넣자는 실험

F3는 Parquet, ORC 같은 기존 컬럼형 파일 포맷의 한계를 줄이기 위해 제안된 오픈소스 연구 프로토타입이다. 핵심 아이디어는 데이터와 메타데이터뿐 아니라 WebAssembly(Wasm) 디코더까지 파일에 함께 넣어, 새 인코딩 방식이 나와도 플랫폼 호환성을 유지하자는 것이다.

open-source

에코백스, 1,134만원짜리 오픈소스 가정용 로봇 ‘빠졔’ 판매 시작

중국 청소 로봇 기업 에코백스가 첫 오픈소스 로봇 ‘빠졔’를 정식 판매하기 시작했음. 가정용 로봇을 개발자가 직접 조율하고 프로그래밍하고 2차 개발할 수 있게 만든 플랫폼이고, 가격은 4만9990위안, 약 1,134만원 수준임.

open-source

BMW·폭스바겐·스텔란티스, 자동차 소프트웨어 오픈소스 동맹 키운다

BMW, 폭스바겐그룹, 스텔란티스 등 유럽 완성차 업체들이 소프트웨어 정의 자동차(SDV) 경쟁력 강화를 위해 오픈소스 공동 개발에 나서고 있다. 독일자동차산업협회 주도 프로젝트에는 완성차, 부품사, 반도체 기업 등 30개 이상 기업이 참여하며 차량 OS, 미들웨어, 통신 소프트웨어 같은 공통 영역을 함께 만든다. 기대 효과는 개발·유지 비용 최대 40% 절감, 차량 개발 기간 최대 30% 단축이다.

open-source

AI 시대 오픈소스, ‘공개됐으니 막 써도 됨’은 진짜 위험한 착각

생성형 AI 서비스가 오픈소스 코드, 모델, 데이터셋, 외부 API를 섞어 쓰면서 라이선스와 이용 조건 관리가 훨씬 복잡해졌다는 내용이다. 공개된 기술이라도 저작권과 사용 조건은 남아 있고, 기업은 제품 안에 무엇이 들어갔는지 지속적으로 추적해야 한다.

open-source

에코백스, 1,134만원짜리 오픈소스 가정용 로봇 ‘빠졔’ 출시

중국 청소 로봇 기업 에코백스가 첫 오픈소스 로봇 ‘빠졔’를 판매하기 시작했다. 개발자가 로봇의 동작, 조작, 환경 인식 기능을 기반으로 임바디드 인텔리전스 애플리케이션을 만들고 상용화할 수 있게 하겠다는 전략이다.