Linux는 XSI 호환으로 간주됩니까, 아니면 대부분 XSI 호환으로 간주됩니까?

Linux는 XSI 호환으로 간주됩니까, 아니면 대부분 XSI 호환으로 간주됩니까?

APUE에서

단일 UNIX 사양은 POSIX.1 사양에서 제공하는 기능을 확장하는 추가 인터페이스를 지정하는 POSIX.1 표준의 상위 집합입니다. POSIX.1은 단일 UNIX 사양의 기본 사양 부분에 해당합니다.

POSIX.1의 X/개방형 시스템 인터페이스(XSI) 옵션은 선택적 인터페이스를 설명하고 구현이 XSI 호환으로 간주되기 위해 지원되어야 하는 POSIX.1의 선택적 부분을 정의합니다. 여기에는 파일 동기화, 스레드 스택 주소 및 크기 속성, 스레드 프로세스 공유 동기화, _XOPEN_UNIX 기호 상수(그림 2.5에서 "SUS 필수"로 표시됨)가 포함됩니다. XSI를 준수하는 구현만이 UNIX 시스템이라고 불릴 수 있습니다.

SUS는 전적으로 POSIX와 XSI로 이루어져 있죠?

Linux(또는 Ubuntu, 특히 Debian)가 POSIX와 호환됩니까?

Linux(또는 Ubuntu, 특히 Debian)가 XSI와 호환되는 것으로 간주됩니까, 아니면 대체로 그렇습니까? XSI라고 표시된 APUE 부분이 Linux(또는 Ubuntu, 특히 Debian)에 적용되는지 알기 위해 이것을 묻습니다.

저는 주로 API에 관심이 있는데, 이것이 Linux 커널이면 충분하다는 뜻인가요?

답변1

Linux는 POSIX와 완전히 호환되지 않습니다. 예를 들어 일부 시스템 호출은 다르게 동작합니다(죄송합니다. 지금은 차이점이 무엇인지 정확히 기억할 수 없습니다. 기억나는 대로 여기서 설명하겠습니다).

한 가지 문제는 예를 들어 Linux에 올바른 waitid()시스템 호출(argument에서 32비트 모두 전달 exit())이 포함되어 있지 않으며 Linux 커널 사용자가 이 문제를 해결하는 것을 좋아하지 않는다는 것입니다. (waitid()AT&T System V Release 4부터 사용되었습니다..)

일부 XSI기능은 Linux에서 구현되지만 전부는 아닙니다.

bash(Linux 배포판용으로 컴파일된 방식) 예를 들어 지원되지 않는 호환되지 않는 XSI내장 echo기능이 함께 제공되었습니다 dash. 이는 POSIX가 채택되고 Linux가 1달러에 2차 인증을 받을 기회를 얻은 지 얼마 후에 발생했습니다.multi byte charsXSI

적절한 개요를 얻으려면 Andrew Josey가 작성한 Linux의 POSIX 비준수에 대한 최종 문서를 웹에서 검색해 보는 것이 좋습니다. 이 문서는 Linux 사람들이 Opengroup에 더 이상 Linux가 되는 데 관심이 없다고 말한 후에 작성되었습니다. . POSIX 표준을 준수합니다.

바라보다:http://www.opengroup.org/personal/ajosey/tr20-08-2005.txt

참고: Red Hat이 최근 POSIX 테스트 스위트 사본을 받았다는 소문이 있어서 숨겨진 진행 중인 인증이 있을 수 있습니다...

답변2

Linux는 XSI와 전혀 호환되지 않습니다. 예를 들어 시스템 헤더를 제공하지 않습니다 <stdio.h>. 이는 Linux가 단지 운영 체제 커널이기 때문입니다. 이 커널에는 추가 사용자 공간 구현이 필요합니다.유능한XSI 표준을 준수합니다.

Linux 커널, C 표준 라이브러리 구현, 셸, 다양한 유틸리티 및 기타 다양한 구성 요소를 포함하는 여러 Linux 배포판이 있습니다.

이 모든 부분이 합쳐져가능 가능XSI와 호환되지만 각 조합에 대해 테스트 및 검증이 필요합니다.

관련 정보