GUI / batch / command line / user interfaces
운영체제를 다룰 수 있도록 인터페이스 제공
GUI(그래픽 방식으로 제공) CLI(커맨드같은 도스창 방식으로 제공)
system calls
운영체제가 커널모드로 진입하는 시점, 권한이 있어야 실행할 수 있는 기능
프로그램 실행, I/O 기능, 파일 시스템, 메모리 할당관리, 에러탐지, 보안 및 권한관리 등
Command Line Interpreter(CLI)
도스창에서 명령어를 통해 컴퓨터를 사용
ex) 윈도우 명령프롬프트UNIX의 shell, LINUX의 BASH(Born Again SHell: 다시 돌아온 shell)
Graphical User Interface(GUI)
텍스트만 있었던 CLI에서 그래픽을 추가
ex) 윈도우, 맥OS
Touch Screen Interface
화면을 터치하며 상호작용
ex) 아이폰, 갤럭시
- Static Linking
외부 라이브러리에서 함수를 끌어다 쓸 때 호출한 위치에 코드를 복사해서 다 때려박음- Dynamic Linking
호출한 위치에서 외부 라이브러리의 주소로 점프뛰어서 실행 후 다시 복귀윈도우는 Dynamic Linking방식으로
수많은 .dll(Dynamically Linked Library)로 확인 가능Linux는 .sa와 .so(shared library)로 존재
컴파일 시 “-s”를 추가하면 Static Linking 방식으로 변환가능
(Dynamic이 기본)
추신
Android는 사실 OS라기보다는 플랫폼에 가까움.
Linux OS기반으로 위에 라이브러리와 프레임워크들을 사용해 OS만든 것이 아니라 플랫폼(하나의 큰 프로그램)을 만든 것임.