안녕하세요^^ 오늘은 유닉스/리눅스의 구성요소에 대해 알아보겠습니다. 유닉스/리눅스에서 제일 중요한 부분은 커널인데요, 해커들이 주로 공격하는 곳이 커널입니다. 예를 들어서 shell Coding을 통해서 shell 권한 상승 후 exploit을 하거나 BOF(Buffer over Flow)를 통해서 해킹을 합니다. 

 

 

유닉스의 구조

-커널

- 유닉스 운영체제의 핵심입니다. 프로세스 관리 , 메로리 관리, 파일 시스템 관리, 장치 관리 등 컴퓨터의 모든 자원을 초기화하고 제어하는 기능을 수행합니다. 시스템을 최초로 구동할 때 커널은 메모리에 적재되는데, 메모리에 상주하면서 프로세스 스케줄링과 메모리, 디스크 드라이브, 네트워크 인터페이스 등 하드웨어 자원을 모든 사용자에게 할당하고 제어합니다.

-커널은 파일 서브시스템프로세스 제어 서브시스템으로 구성됩니다.

 

파일서브시스템에서는 메모리, 외부장치에 데이터를 전송하거나 블록 단위로 입출력을 실행할 때 메모리의 일부를 버퍼로 할당하고, 이것을 사용자의 주소 공간과 외부장치 사이에 두는 디스크 캐시 방법으로 파일을 관리합니다.

 

 

프로세스 제어 서브시스템에서는 프로세스의 동기화와 프로세스 간 통신, 프로세스 간 메모리 관리, 프로세스 스케줄링과 디스패칭을 담당합니다. (fork, exec, exit, wait, signal 등이 있음)

 

-셸은 사용자와 커널 사이의 중간자 역할을 담당하는 특별한 프로그램이다. 셸을 사용자가 입력을 하게 되면 명령을 해석하여 커널에 넘겨주면 커널이 명령의 수행 결과를 돌려줍니다. 셸은 이것을 다시 사용자가 이해할 수 있는 형태로 바꿔서 출력합니다. ex) C 셸, 콘 셸, 배시 셸, z 셸 등

유틸리티와 파일 시스템 

유닉스는 각종 개발 도구, 문서 편집 도구, 네트워크 관련 도구 등 매우 다양한 유틸리티를 제공합니다. 유틸리티는 사용자에게 편의를 제공하려고 준비한 시스템 프로그램입니다. 유닉스는 계층적으로 구성된 파일 시스템을 사용하여 시스템 파일과 사용자 파일을 체계적으로 관리합니다. 

 

 

이상포스터를 마치겠습니다.

+ Recent posts