공부용/Kernel Exploit Study

[Kernel Exploit] Basic Operating Systems (3)

Operating System Services

 - Operating Systems는 사용자에게 프로그램이 돌아가는 환경을 제공해준다.

 - Operating Systems는 User Interface(CLI, GUI, touch-screen and Batch), Program execution, I/O operations의 기능을 제공한다.

 - Operating Systems는 파일을 관리하기 위한 File-system manipulation, 프로세스가 많은 정보를 공유하는 Communications, 에러를 감지하는 Error detection 기능을 제공한다. 

 - 많은 작업을 처리하기 위해 자원(CPU, main memory, file storage, I/O devices)을 할당하는 Resource allocation, 다양한 이벤트 트래킹을 제공하는 Logging, 누가 어떠한 자원에 관해 어떤 유저가 권한이 있는지(인증)에 대한 Protection and security 기능을 제공한다.

 

User Operating System Interface - CLI

 - CLI는 가상 터미널 또는[텍스트 터미널]을 통해 사용자와 컴퓨터가 상호 작용하는 방식이다. (Wikipedia)

 - Shell은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다.

 - Unix, Linux와 같은 OS가 CLI에 속한다.

 

User Operating System Interface - GUI

 - GUI는 사용자 친화적으로 만들어진 desktop형 Interface다. 

 - Windows, Mac OS X와 같은 OS가 GUI에 속한다.

 

System Calls

 - System Calls는 다양한 어플리케이션, 소프트웨어가 필요한 기능을 Operating Systems에서 미리 구현한 것을 의미한다.

 - System Calls에서 개념을 확장시킨 게 Application Programming Interface(API)이다.

 

System Call Implementation

 - Index table로 System Call을 구분한다. 

 

System Call Parameter Passing

 - SImplest: Parameter를 레지스터를 통해 넘겨준다. 만약 사이즈가 모자르면 block, table, memory에 넣고 그 주소값을 넘겨준다.

 - 레지스터에 값을 넘기지 않는 경우에는 스택에 값을 push, pop하는 방식으로 Parameter를 넘겨준다.