베어메탈

BareMetal
베어메탈
개발자리턴 인피니티
기입처어셈블리
동작 상태현재의
소스 모델오픈 소스
초기 릴리즈2008년, 14년 전(2008년)
최신 릴리즈1.0.0 / 2017년 11월 13일, 4년 전(2017-11-13)[1]
마케팅 대상HPC, HTC, 클라우드 컴퓨팅
이용가능기간:영어
플랫폼x86-64
커널 타입Exokernel, SASOS
유저랜드알 수 없는
체납
사용자 인터페이스
명령줄
면허증.BSD 라이선스[2]
공식 웹사이트www.returninfinity.com

베어메탈Return Infinity에 의해 작성된 외부 커널 기반의 단일 주소 공간 운영 체제(OS)입니다.

「충분한 operating system」(JeOS)의 [5]어프로치로, 설치 공간을[3][4] 최소한으로 억제하면서 하이 퍼포먼스 컴퓨팅을 실현하기 위해서, 어셈블리에 짜여져 있습니다.operating system은 주로 클라우드 컴퓨팅의 가상화 환경, 즉 경량 커널(LWK)로서 설계되어 있기 때문에 HPC를 대상으로 하고 있습니다.유니커널로 사용할 수 있습니다.

어셈블리에서 작성된 다른 OS인 [2]MikeOS에서 영감을 받아 C 또는 C++로 작성되지 않은 운영체제의 최신 예이며 Unix와 유사한 [6]커널을 기반으로 합니다.

개요

하드웨어 요건

  • AMD/Intel 기반의 64비트 컴퓨터
  • 메모리: 4 MB (추가 코어마다 2 MB 추가)
  • 하드 디스크: 32 MB[7]

코어당 1개의 태스크

BareMetal에서의 멀티태스킹은 현대의 운영체제에서는 드문 일입니다.베어메탈은 모든 CPU 코어가 폴링하는 내부 작업 큐를 사용합니다.작업 큐에 추가된 작업은 시스템 내의 사용 가능한 CPU 코어에 의해 처리되며 완료될 때까지 실행되므로 컨텍스트스위치[8]오버헤드는 발생하지 않습니다.

프로그래밍

API

API는 문서화되어[9] 있지만, 그 이념에 따라 OS는 시스템 호출의 진입점을 강제하지 않습니다(예를 들어 콜게이트나 기타 안전 메커니즘 없음).

C

베어메탈 OS에는 최신 코드를 가져와 필요한 변경을 한 다음 Newlib C 표준 [11]라이브러리를 사용하여 C 코드를[10] 컴파일하는 빌드 스크립트가 있습니다.

C++

거의 완전한 C++11 표준 라이브러리는 링 [12]0으로 동작하도록 설계 및 개발되었습니다.이러한 라이브러리의 주된 목적은 라이브러리 차원에서 신중하게 설계된 클래스를 [13]사용하여 기존 OS에서 사용되는 하드웨어 메모리 보호를 대체하는 것입니다.

2014년 11월에 프로그램에 Rust 프로그램 데모가 추가되어 BareMetal [14]OS용 Rust 프로그램 작성 능력을 입증했습니다.

네트워킹

TCP/IP 스택

TCP/IP 스택이 #1 기능 [15]요구였습니다.2014년 [16]10월 C로 표기된 lwIP 포트가 발표되었습니다.

간단한 정적 웹 페이지에 충분한 기능을 제공할 수 있는 ANSI C의 미니멀리즘 IP 스택인 [17]miniIP는 미래에 계획된 x86-64 어셈블리 재작성에 대비하여 기본을 학습하기 위한 개념 증명으로 개발되고 있습니다.

레퍼런스

  1. ^ Seyler, Ian. "kernel.asm". BareMetal OS GitHub repository. Retrieved May 24, 2017.
  2. ^ a b Voorsanger, Conrad (June 2, 2011). "Interview With Baremetal OS' Ian Seyler". OSNews. Retrieved May 26, 2014.
  3. ^ Adams, David (July 14, 2010). "BareMetal OS". OSNews. Retrieved May 26, 2014.
  4. ^ Benchoff, Brian (May 27, 2011). "64-bit OS written entirely in assembly". Hack A Day. Retrieved May 26, 2014.
  5. ^ Seyler, Ian. "Return Infinity (home page), The BareMetal advantage". Return Infinity. Retrieved February 2, 2015.
  6. ^ Smith, Jesse (July 19, 2010). "DistroWatch Weekly, Issue 363". DistroWatch. Retrieved May 26, 2014.
  7. ^ "BareMetal OS Requirements". Return Infinity (archived copy at Wayback Machine). Archived from the original on September 6, 2014. Retrieved September 6, 2014.
  8. ^ "BareMetal OS Queue". Retrieved April 28, 2015.
  9. ^ Seyler, Ian. "API documentation". BareMetal OS GitHub repository. Retrieved June 26, 2015.
  10. ^ Seyler, Ian (January 17, 2014). "Newlib build script". BeareMetal OS Google Group. Retrieved February 2, 2015.
  11. ^ Seyler, Ian. "newlib.sh". Build scripts for BareMetal OS and its related utilities, GitHub repository. Retrieved February 2, 2015.
  12. ^ Lodyagin, Sergei (November 17, 2013). "Bare C++ library". BeareMetal OS Google Group. Retrieved February 2, 2015.
  13. ^ Lodyagin, Sergei. "The Bare C++ library". The Bare C++ library GitHub repository. Retrieved February 2, 2015.
  14. ^ Seyler, Ian. "Add Rust example". BareMetal OS GitHub repository (legacy version). Retrieved March 18, 2018.
  15. ^ Seyler, Ian (August 22, 2013). "TCP/IP". BeareMetal OS Google Group. Retrieved February 2, 2015.
  16. ^ Seyler, Ian (October 31, 2014). "BareMetal and lwIP". BeareMetal OS Google Group. Retrieved February 2, 2015.
  17. ^ Seyler, Ian. "minIP - A minimalist IP stack written in ANSI C". BareMetal OS GitHub repository. Retrieved May 24, 2017.

외부 링크