cleanUrl: /os/why-applications-are-operating-system-specific

응용 프로그램이 운영체제마다 다른 이유

지금까지의 내용을 정리하며 확인할 수 있다.

각 운영체제는 고유한 system call 집합을 제공한다.

system call 은 응용 프로그램에서 사용할 수 있도록 OS 가 제공하는 서비스 집합이다.

심지어 system call 이 비슷하다 하더라도 내부적인 동작이 달라 응용 프로그램을 다른 OS 에서 사용하진 못했다. 그런데 종종 OS 를 초월하여 사용했던 프로그램은 어떻게 된 것일까? excel, 포토샵 같은건 따로 만들었겠지??

  1. 응용 프로그램이 interperter 언어로 작성되었다.
  2. 가상 머신을 가진 언어로 작성되었다.
  3. 개발자가 운영체제 별 고유의 이진 파일을 생성하는 표준 언어 또는 API를 사용했다.

위의 방법은 어디까지나 이론적이다. 응용프로그램의 이동성이 부족한 데에는 여러가지 원인이 있다.

운영체제와 함께 GUI 인터페이스와 같은 기능을 제공하는 라이브러리가 포함되어 있다.(iOS API로 만들었다면 Android 에선 당연히 동작하지 않는다.)

다음의 경우를 포함해 시스템의 낮은 수준에서 다른 어려운 점이 존재한다.