리눅스는 대개 IEEE Std 1003.1-1988 (POSIX.1)에서 잘 수행지만, 실제로 그와같이 보증되지는 않았다. 똑같이 리눅스 또한 UNIX에서 걸러진 SVID와 BSD에서 발견되는 많은 특징들을 구현하지만, 모든 경우에 있어서 그것들에 집착할 필요는 없다. 대개, 리눅스는 다른 리눅스 구현들과 양립할 수 있고 응용프로그램의 포팅을 쉽게 할 수 있도록 고안되어왔고, 많은 예에서 그러한 구현들 안에서 발경할 수 있는 동작(behavior)을 수정하고 향상시켜왔다.
예제처럼, select 시스템 호출에 넘겨지는 timeout 아규먼트(argument)는 실제로 리눅스에 의해 poll operation을 수행하는 동안 감소되어진다. 다른 구현들은 이값을 전혀 수정하지 않고 이것을 기대하지 않고 있는 응용프로그램들은 리눅스에서 컴파일될 때 부서질 수 있다.select에 대한 BSD와 SunOS man 페이지는 "미래 구현(future implemetation)"에서 시스템 호출이 timeout 포인터를 수정할지 모른다고 경고하고 있다. 불행스럽게도, 많은 응용프로그램들은 여전히 그값이 변하지 않는다고 생각한다.
이글의 목표는 리눅스에 응용프로그램 포팅하기와 연관된 주요 이슈(issue)의 개요(overview)를 제공하는 것이다. 다음의 영역에서 리눅스,POSIX.1,SVID와 BSD간의 뚜렷한 차이를 보인다.: 신호처리(signal handling), 단말기 입출력(terminal I/O), 프로세스 통제(process control), 정보수집(information gathering), portable conditional compilation.
Copyright (c) 1996,1997 by Euibeom.Hwang & SangEun.Oh All Rights Reserved
Email To:Webmaster ,
Another address
LAST UPDATE Dec 17,1997
Created Dec 17,1997