제노드

Genode
제노드
Genode logo text.png
2018-09-21-sculpt-vc.png
데스크톱 시스템 Genode 기반 조각
개발자제노드 랩
기입처C++
동작 상태현재의
소스 모델오픈 소스
초기 릴리즈2008년, 14년 전(2008년)
최신 릴리즈2022년[1] 5월 31일, 56일 전(2022년 5월 31일)
저장소github.com/genodelabs/genode
마케팅 대상데스크톱 컴퓨터
임베디드 시스템
이용가능기간:영어
플랫폼ARM, RISC-V,[2] x86, x86-64[3]
커널 타입마이크로커널
유저랜드Genode, POSIX
면허증.AGPL-3.0 전용 및 상용
공식 웹사이트genode.org

Genode마이크로커널 추상화 레이어와 사용자 공간 [4][5][6]컴포넌트 세트로 구성된 오픈소스 소프트웨어 운영체제(OS) 프레임워크입니다.이 프레임워크는 Unix와 같은 독자 OS에서 파생되지 않은 몇 안 되는 오픈 소스 운영 체제 중 하나입니다.특징적인 설계 이념은 보안 지향 OS에서는 신뢰할 수 있는 컴퓨팅 기반이 가장 중요하다는 것입니다.

Genode는 데스크톱[7][8] 컴퓨터 또는[9] 태블릿 OS의 기반으로 사용하거나 게스트 운영 체제의 가상 시스템 모니터로 사용할 수 있습니다.이 프레임워크는 x86[10] [11]ARM 모두에서 안전한 가상화 시스템의 신뢰할 수 있는 컴포넌트로 사용되고 있습니다.

Genode의 코드 베이스가 작기 때문에, 보다 복잡한 Unix 유래의 operating system에 대한 유연한 대안이 됩니다.이러한 이유로 가상화,[12] 프로세스통신,[13] IP 스택 분리,[14][15] 모니터링 [16]소프트웨어 [17][18]개발 등의 분야에서 이 프레임워크는 연구의 기반 시스템으로 사용되어 왔습니다.

역사

Genode는 드레스덴 공과대학(TU Dresden)의 Bastei OS[19] Architecture 연구 보고서로 처음 구상되었습니다.이 보고서의 초점은 기능 기반 보안을 사용하여 컴포넌트 기반 OS의 실용성을 확인하는 것이었습니다.이 보고서는 같은 시기에 실시된 L4 마이크로하이퍼바이저에[20] 대한 조사에 의해 부분적으로 동기 부여되었습니다.초기 프로토타입의 성공에 이어 보고서 작성자들은 Genode Labs를 설립하여 Genode OS Framework로서 Bastei를 개발했습니다.

릴리스

이 프로젝트는 GNU Affero General Public License의 조건에 따라 공개된 오픈 소스 프로젝트로 대체 라이선스를 제공하는 상업적 실체와 함께 공개적으로 개발됩니다.릴리스는 시스템어플리케이션바이너리 인터페이스(ABI), 애플리케이션프로그래밍 인터페이스(API) 및 발행 문서를 변경하기 위해 3개월 간격으로 스케줄 됩니다.OS 프레임워크는 소스 코드 형식으로 제공되며, 18.02 릴리즈 이후 Sculpt라는 이름의 범용 파생상품이 온타겟 바이너리 배치와 함께 제공됩니다.

아키텍처의 특징

Genode는 microkernels의 일반적인 철학을 기반으로 구축되어 있습니다.코드가 작고 단순할수록 신뢰성과 정확성을 검증하기가 쉬워집니다.Genode는 작은 컴포넌트에서 복잡한 애플리케이션을 구성함으로써 이 철학을 사용자 공간으로 확장합니다.각 컴포넌트는 부모-자녀 관계의 엄격한 계층 구조로 존재합니다.부모로서 기능하는 컴포넌트는, 그 자녀에게 자원 및 프로세스간 통신(IPC) 액세스정책을 적용할 수 있습니다.이 계층형 시스템 레이아웃을 통해 특수한 서브시스템이 보다 일반적인 서브시스템 내에 네스트되므로 직관적인 파티셔닝과 특권 축소가 가능해져 중앙 집중형 또는 슈퍼유저 시스템 정책 특유의 혼란스러운 부차적인 문제가 완화됩니다.

이 프레임워크는 microkernel에 의해 호스트되도록 설계되어 있지만, 특정 마이크로커널의 기능은 대부분 공통 세트에 포함되며, 모노리식 커널은 이러한 기능의 슈퍼셋을 구현합니다.이러한 기능을 추상화함으로써 Genode는 다양한 L4 마이크로커널 [21][22]및 Linux의 사용자 공간 역할을 할 수 있습니다.

비판

C++

Genode는 구현 언어인 C++의 선택으로 인해 종종 비판을 받습니다(C++로 구현된 다른 운영 체제로는 BeOS, Fuchsia, Ghost, 하이쿠, IncludeOS, OSv, Palm OS, ReactOS, 음절, 심비안 및 모든 주요 브라우저 엔진이 있습니다).이 비판은 보통 C++의 고유한 복잡성과 올바른 동작을 위한 코드 분석이 어렵기 때문에 C++는 시스템 라이브러리와 API를 구현하는 데 좋지 않은 선택이라고 주장한다.Genode는 시스템 라이브러리에서 여러 상속 및 템플릿을 사용하지만 C++ 표준 라이브러리는 사용할 수 없으며 스레드 로컬 스토리지 및 글로벌 할당자 등 암묵적인 글로벌 상태에 의존하는 언어 기능은 언어 [23]런타임에서 삭제되었습니다.C++의 포괄적인 정적 분석은 불가능합니다.그러나 Genode 프로젝트는 경험적 분석을 위한 단위 검정을 게시합니다.

XML

Unix 파생 모델의 일반 텍스트 모델과 달리 Genode 구성 요소는 XML로 직렬화된 구조화된 데이터를 사용하여 상태를 소비하고 게시합니다.Genode 프레임워크는 XML을 모든 컴포넌트에서 효과적으로 사용합니다.이는 XML을 쉽게 해석하고 프로그래밍 방식으로 생성하면서도 수동으로 이해하고 편집할 수 있기 때문입니다.

로컬 네임스페이스

Genode에는 실용적인 글로벌 네임스페이스가 없습니다.글로벌 파일 시스템이나 프로세스 또는 IPC 엔드포인트 레지스트리가 없습니다.이는 유비쿼터스 파일 시스템을 갖추고 슈퍼 유저 컨텍스트가 시스템 내의 모든 프로세스를 임의로 관리할 수 있도록 하는 Unix와 같은 시스템과 대조됩니다.컴포넌트의 권한과 루팅을 명시적으로 선언하는 것은 Unix에 비해 노동 집약적인 것으로 인식될 수 있습니다.그러나 구획 관리를 통해 공통 격리 방법인 가상화에 의존하지 않고 서로 신뢰할 수 없는 시스템 관리자가 같은 머신 상에서 서브시스템을 관리할 수 있습니다.

조각

Genode 프로젝트는 최신 소비자용 [24]노트북을 대상으로 한 Sculpt라는 데스크톱 운영 체제를 공개하고 있습니다.Scrapt는 자동 디바이스 검출 및 설정, Genode 패키지 매니저에 대한 일부 GUI 제어 인터페이스 및 프런트엔드를 갖춘 소규모 기반 시스템입니다.이 시스템은 완전한 데스크톱 환경을 갖추고 있지 않지만 사용자가 기존 OS를 호스팅하는 가상 머신을 도입하여 완전한 기능을 갖춘 데스크톱을 구현해야 합니다.스컬프는 정적 정책을 사용하는 특수 시스템과 대조적으로 특권 제어 컴포넌트를 사용한 동적 재구성에 크게 의존하고 있다는 점에서 Genode 운영체제 프레임워크와 구별됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "Genode OS Framework release 22.05". 31 May 2022. Retrieved 10 June 2022.
  2. ^ "Genode OS adds RISC-V support".
  3. ^ Larabel, Michael. "Genode Is Developing A GPU Multiplexer For Intel Graphics Hardware". Phoronix.
  4. ^ "Introduction of the Genode OS Framework". archive.fosdem.org/2012.
  5. ^ "L4 Based Operating Systems". L4hq.org. Archived from the original on 2018-06-14. Retrieved 2018-06-01.
  6. ^ Larabel, Michael. "Redox OS, MINIX, Hurd & Genode Had Their Time at FOSDEM Too". Phoronix.
  7. ^ Baader, Hans-Joachim. "Genode 2018.2 mit Sculpt OS". pro-linux.de.
  8. ^ Larabel, Michael. "Sculpt Aims to Be a General-Purpose OS Built Atop Genode".
  9. ^ Tarasikov, Alexander (2013-05-11). "Porting Genode to commercial hardware". I hate software. Blogger.
  10. ^ "Muen: An x86/64 Separation Kernel for High Assurance".
  11. ^ Williams, John. "Inspecting data from the safety of your trusted execution environment" (PDF).
  12. ^ "Embassies: Radically Refactoring the Web" (PDF). USENIX.
  13. ^ Wegner, Martin; Holthusen, Sönke (2014-12-11). "Contract Specification and language". ccc-project.org. Archived from the original on 2019-03-27. Retrieved 2018-06-01.
  14. ^ Hamad, Mohammad (2016-01-06). "The Secure Communication Module of CCC". ccc-project.org. Archived from the original on 2019-01-23. Retrieved 2018-06-01.
  15. ^ Hamad, Mohammad. "A communication framework for distributed access control in microkernel-based systems" (PDF).
  16. ^ Pruthiviraj, B.; Madhusuthun, G.S.; Vijayasarathy, S.; Chakrapani, K. "A Microkernel Based Secure Operating System Using Genode Framework" (PDF). JATIT.
  17. ^ Hähne, Ludwig. "Empirical Comparison of SCons and GNU Make" (PDF).
  18. ^ Millo-Sánchez, Reinier; Paz Rodríguez, Waldo; Fajardo-Moya, Alexis. "Genode OS Framework, un framework para el desarrollo de sistemas embebidos". ResearchGate.
  19. ^ "TU Dresden technical report TUD-FI06-07" (PDF).
  20. ^ "NOVA Microhypervisor".
  21. ^ "L4 Based Operating Systems". L4hq.org. Archived from the original on 2018-06-14. Retrieved 2018-06-01.
  22. ^ "SeL4 Community Projects". sel4.systems.
  23. ^ "Genode's Conscious C++ dialect". genodians.org. Retrieved 2019-11-29.
  24. ^ "Release notes 18.02".

외부 링크

공식 웹사이트

공식 웹사이트

연구 프로젝트