소프트웨어 엔지니어/일반

POSIX 를 따른다? 따르라?

shroomie 2024. 10. 3. 11:35

POSIX 가 어쩌고 저쩌고 하는데 함알아보자!

Portable Operating System Interface.  , 이식가능한 운영체제 인터페이스??
(참.. 소프트웨어를 잡으로 하면서 느끼는거지만, 내가 영어권이었으면 그냥 저 말만들어도 뭔지 느낌이 올껀데라는 아쉬움이 항상..
영어를 못하는관계로 저렇게 풀어써놔도 느낌이 안옴..;;;;;)

 

* 채팅어플리케이션 엔지니어는 POSIX 규격을 이용애서 어플리케이션 하나만 만들면, 
그 규격을 따르는 어떤 운영체제에서도 채팅어플리케이션이 돌수 있다라는..이게 핵심인기라~~~!!!
근데 POSIX 는  유닉스계열에 한정이라는... (리눅스, 맥 뭐 다 결국은 유닉스 개열이니까. 윈도우.. 얘가 문제인데 ㅋ)

 

 

하드웨어관련된 구현을 운영체제에서 어떤식으로 구현하지에 상관없이 ( 운영체제 마다 렌카드운영 , 네트워크레이어 동작, tcp/ip 구현등등 소프트웨어 구현이 각각 다르겠지만)  

운영체제가 어플리케이션에 제공하는 인터페이스로 POSIX 를 따른다 라고 한다면. ( open, read, write, close , fork , exec, wait, exit, signal, getpid, getuid, time, socket, bind, listen, accept, send ) 
해당운영체제 안에서 어플리케이션은 POSIX를 이용할수 있는거고, 그렇게 작성된 프로그램은, POSIX를 따르는 다른 운영체제 에서는 다시개발할필요없이 기존에 개발한 프로그램을 그대로 이용할수 있다는 말이지. 

 

예를 들어, 내가 socket 을 이용해서 (posix 인터페이스) 채팅 프로그램을 구현했다면,

Linux 건 macOS (맥도 포직스 표준을 준수하니까)이건  POSIX 를 따르는 운영체제에서는 프로그램 수정없이, 내가 만든 채팅프로그램을 사용할수 있다는거야. (물론 컴파일은 다시 해야지.) 

 

만약에 포직스가 없는 운영체제를 쓴다고 하면,

내가 개발해놓은 프로그램(채팅앱이라고 하면) 을 그 운영체제가 제공하는 인터페이스를 사용해서 다시 개발해야되. 

POSIX socket 을 사용해서 프로그램 짜 놨는데 , 윈도우에서는 socket 대신에 pocket 이라는 인터페이스(예를 든거야, pocket 이란인터페이스는 없어 ㅎㅎ) 를 써야 하고 그것도 기능이 조금 달라서 , 그거에 맞춰야 한다면...

(짜증나겠지. 운영체제가 몇개인데 그걸 일일이 다 맞추고 있어, 각각의 운영체제별로 체팅 어플리케이션을 다 따로 만들어줘야 한다 )