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 이란인터페이스는 없어 ㅎㅎ) 를 써야 하고 그것도 기능이 조금 달라서 , 그거에 맞춰야 한다면...
(짜증나겠지. 운영체제가 몇개인데 그걸 일일이 다 맞추고 있어, 각각의 운영체제별로 체팅 어플리케이션을 다 따로 만들어줘야 한다 )
'소프트웨어 엔지니어 > 일반' 카테고리의 다른 글
| [소프트웨어 엔지니어] 리눅스 루트파일시스템 (5) | 2024.10.16 |
|---|---|
| [소프트웨어 엔지니어] GNU (gcc, gdb, make..) (9) | 2024.10.14 |
| GPU? NVIDIA? 왜 요새 난리인가? (7) | 2024.09.26 |
| [소프트웨어 엔지니어] 에자일 방법론 (1) | 2024.09.19 |
| [소프트웨어 엔지니어] 캡슐화 추상화 (1) | 2024.09.17 |