일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- kernel img
- cwe-506
- Kernel
- xz-utils
- liblzma
- newbie
- rootfs
- kernel image
- CVE-2024-3094
- kernel build
- 백도어
- Today
- Total
ZZoMb1E
[KERNEL] Linux Structure 본문
※ 잘못된 부분이 있으면 알려주세요. 확인 후 수정하도록 하겠습니다. ※
Kernel 영역의 Exploit을 학습하기 위해서는 Kernel이 어떤 것인지를 인지하고 있어야 한다.
기본적인 Linux의 구조는 위 그림과 같다.
우리가 Linux를 다루는데 있어서 각종 명령을 입력하는 작업을 수행한다. 이때 우리는 Shell이라는 부분을 다루게 된다. 이후 우리가 입력한 명령을 하드웨어에서 작동할 수 있도록 관리 및 통역해주는 역할을 해주는 것이 Kernel이다.
Shell
기본적인 Shell은 사용자와 커널 사이의 인터페이스 역할을 수행한다.
• 명령어 해석: 사용자가 입력한 명령을 해석하여 커널로 전달
사용자가 입력한 명령어는 셸이 해석하여 커널로 전달되며, 커널은 이를 처리한 후 결과를 다시 셸에 반환
• 스크립트 작성: 셸 스크립트를 통해 복잡한 작업의 자동화 가능
• 사용자 환경 관리: 환경 변수 및 설정들 관리
Kernel
커널은 운영 체제의 핵심이라 볼 수 있다. 하드웨어와 Shell에서 전달받은 명령을 중개하는 역할을 수행한다. 이외에도 시스템 자원을 관리 및 효율적으로 분배를 담당한다.
• 메모리 관리: 가상 메모리 및 물리 메모리 관리 (할당/해제/교체 등의 기능)
• 프로세스 관리: 프로세스 생성, 종료, 스케줄링 등의 생명 주기를 관리
• 보안: 메모리와 프로세스 등의 시스템적인 부분들을 관리하기 때문에 다른 프로세스 공간으로의 간섭 방지 및 커널 공간으로의 접속을 차단
Context switch
컨텍스트 스위칭은 스레드나 프로세스가 실행 상태를 저장하고 다른 프로세스나 스레드로 전환하는 작업이다. 이는 멀티태스킹을 가능하게 하고 시스템의 효율적인 자원 사용을 보장한다.
각 스레드를 실행하다가 해당 영역에서 수행하지 못하는 명령의 경우 다른 공간에서 실행하거나, 인터럽트가 발생하는 경우 다른 스레드와 일시적으로 실행 교환이 발생한다. 이때 기존의 상태 정보를 저장하고, 다른 프로세스를 실행 후 다시 복구하는 과정을 가진다.
'STUDY > KERNEL' 카테고리의 다른 글
[KERNEL] KBOF (0) | 2024.06.27 |
---|---|
[KERNEL] Holstein Module (0) | 2024.06.20 |
[KERNEL] 보호 기법 (0) | 2024.06.13 |
[KERNEL] Environment Setting (0) | 2024.06.05 |
[KERNEL] Kernel Exploit? (0) | 2024.06.05 |