본문 바로가기

xv6-book

xv6-book (1.5 Real world)

Real world

 

유닉스의 "표준" 파일 디스크립터, 파이프 및 이러한 작업에 대한 편리한 쉘 구문의 결합은 일반적으로 재사용 가능한 프로그램을 작성하는 데 큰 발전을 가져왔습니다. 이 아이디어는 유닉스의 많은 기능과 인기를 책임지는 "소프트웨어 도구" 문화를 촉발시켰으며, 쉘이 최초의 "스크립팅 언어"로 알려지게 되었습니다. 유닉스 시스템 호출 인터페이스는 오늘날에도 BSD, Linux 및 Mac OS X와 같은 시스템에서 계속 사용되고 있습니다.

 

유닉스 시스템 콜 인터페이스는 휴대용 운영 체제 인터페이스 (POSIX) 표준을 통해 표준화되었습니다. Xv6는 POSIX 호환성이 없습니다. lseek와 같은 기본 시스템 호출을 포함하여 많은 시스템 호출이 누락되어 있으며, 제공되는 시스템 호출 중 많은 것이 표준과 다릅니다. Xv6의 주요 목표는 단순성과 명확성을 유지하면서 간단한 유닉스와 유사한 시스템 호출 인터페이스를 제공하는 것입니다. 몇 명의 사람들이 몇 가지 더 많은 시스템 호출과 간단한 C 라이브러리를 추가하여 기본적인 유닉스 프로그램을 실행할 수 있도록 xv6를 확장했습니다. 그러나 현대의 커널은 xv6보다 훨씬 더 많은 시스템 호출과 커널 서비스를 제공합니다. 예를 들어, 네트워킹, 윈도우 시스템, 사용자 수준 스레드, 많은 장치용 드라이버 등을 지원합니다. 현대의 커널은 지속적으로 빠르게 진화하며 POSIX를 초과하는 많은 기능을 제공합니다.

 

유닉스는 파일, 디렉토리, 장치와 같은 다양한 유형의 리소스에 대한 통합된 액세스를 단일 파일 이름 및 파일 디스크립터 인터페이스를 사용하여 제공했습니다. 이 아이디어는 다양한 유형의 리소스에 확장될 수 있습니다. 좋은 예로는 Plan 9가 있습니다. Plan 9는 "리소스는 파일" 개념을 네트워크, 그래픽 등에 적용했습니다. 그러나 대부분의 유닉스 계열 운영 체제는 이 경로를 따르지 않았습니다.

 

Xv6에는 사용자 또는 한 사용자를 다른 사용자로부터 보호하는 개념이 없습니다. 유닉스 용어로 말하자면, 모든 xv6 프로세스가 root로 실행됩니다. 본 책은 xv6가 Unix와 유사한 인터페이스를 어떻게 구현하는지를 살펴보지만, 이러한 아이디어와 개념은 유닉스에만 해당하지 않습니다. 어떤 운영 체제든지 프로세스를 기본 하드웨어에 다중화하고, 프로세스를 서로 격리하고, 제어된 프로세스간 통신 메커니즘을 제공해야 합니다.

 

 

 

 

더보기

combination of : ~의 조합

standardized : 표준화된

unified : 통일된

predecessor of : 전임자

complexity : 복잡성

'xv6-book' 카테고리의 다른 글

xv6-book (Ch2-Operating system organization)  (1) 2024.02.13
xv6-book (Ch1-과제)  (1) 2024.02.09
xv6-book (1.4 File system)  (1) 2024.02.05
xv6-book (1.3 Pipes)  (0) 2024.02.04
xv6-book (1.2 I/O and File descriptors)  (0) 2024.02.04