우선 시스템콜(API)라고 적으셨는데, API란 커널의 호출 인터페이스를 가리키는 용어가 아닙니다.
일반적으로 라이브러리를 사용하기 위한 인터페이스를 가리키는 개념으로 커널에는 커널의 API가 있고, 다른 라이브러리에는 또 그 라이브러리의 API가 있습니다.
커널에만 의존하는 라이브러리라면 커널 버전만 신경써도 되겠지만, 그런 경우는 거의 없습니다.
둘째로 API가 호환되는 것과 바이너리가 호환되는 것은 별개입니다.
API는 소스코드 레벨에서의 호환을 보장하는 것이며 바이너리 레벨에서의 호환을 보장하는 것은 ABI입니다.
마지막으로 설령 ABI가 동일하다고 해도 컴파일 환경(시스템 디렉토리 구조, 라이브러리 이름 등)이 다르면 의존성을 찾지 못하고 아예 동작을 안할수도 있기 때문에 무조건 바이너리 호환을 보장하는 경우는 아예 없다고 보시면됩니다.
그래서 대부분의 리눅스는 의존성 관리가 가능한 패키지 관리자를 탑재하는 거구요.
그리고, API는 넓은 의미로 시스템콜도 포함하는걸로 알고있습니다.
---
POSIX(포직스, /ˈpɒzɪks/)는 이식 가능 운영 체제 인터페이스(移植可能運營體制 interface, portable operating system interface)의 약자로, 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다.
---
An API specification can take many forms, including an International Standard, such as POSIX, vendor documentation, such as the Microsoft Windows API, or the libraries of a programming language, e.g., Standard Template Library in C++ or Java API.
우선 시스템콜(API)라고 적으셨는데, API란
우선 시스템콜(API)라고 적으셨는데, API란 커널의 호출 인터페이스를 가리키는 용어가 아닙니다.
일반적으로 라이브러리를 사용하기 위한 인터페이스를 가리키는 개념으로 커널에는 커널의 API가 있고, 다른 라이브러리에는 또 그 라이브러리의 API가 있습니다.
커널에만 의존하는 라이브러리라면 커널 버전만 신경써도 되겠지만, 그런 경우는 거의 없습니다.
둘째로 API가 호환되는 것과 바이너리가 호환되는 것은 별개입니다.
API는 소스코드 레벨에서의 호환을 보장하는 것이며 바이너리 레벨에서의 호환을 보장하는 것은 ABI입니다.
마지막으로 설령 ABI가 동일하다고 해도 컴파일 환경(시스템 디렉토리 구조, 라이브러리 이름 등)이 다르면 의존성을 찾지 못하고 아예 동작을 안할수도 있기 때문에 무조건 바이너리 호환을 보장하는 경우는 아예 없다고 보시면됩니다.
그래서 대부분의 리눅스는 의존성 관리가 가능한 패키지 관리자를 탑재하는 거구요.
우선 답변 감사드립니다.
그러면 커널 버전이 같다는 것은 소스 코드가 해당 시스템에서 바이너리화 되었을 때,
동일한 동작을 보장한다고 이해해도 될까요?
(간단하게 시스템 콜에만 의존한다고 가정하겠습니다.)
그리고, API는 넓은 의미로 시스템콜도 포함하는걸로 알고있습니다.
---
POSIX(포직스, /ˈpɒzɪks/)는 이식 가능 운영 체제 인터페이스(移植可能運營體制 interface, portable operating system interface)의 약자로, 서로 다른 UNIX OS의 공통 API를 정리하여 이식성이 높은 유닉스 응용 프로그램을 개발하기 위한 목적으로 IEEE가 책정한 애플리케이션 인터페이스 규격이다.
---
An API specification can take many forms, including an International Standard, such as POSIX, vendor documentation, such as the Microsoft Windows API, or the libraries of a programming language, e.g., Standard Template Library in C++ or Java API.
댓글 달기