본문 바로가기
시큐리티 아카데미

리눅스 1

by christmas mushroom 2024. 7. 17.

리눅스의 역할

하드웨어 자원관리

어플리케이션 관리

 

하드웨어(컴퓨터)의 구성

- CPU, memory(RAM)m 디스크(DISK), 네트워크(NET)

 

Core 관리

     ■ Process Management(PM)

        ○ task_struct 단위로 관리

        ○ CFS 스케줄러: 한 프로세스가 CPU를 독점하지 않도록 한다

            - vruntime(통계값) 최소값으로 선택함 => 우선순위 고려, starvation 방지

     ■ Memory Management(MM)

        ○ page 조각 단위(paging) // 4kb = 4096 = 0x1000 = 2^12 = 12bit

        ○ 가상메모리 메커니즘 / 버디시스템(기준으로 페이지를 할당 받음), 슬랩(커널전용, 4kb 한 조각을 밀도있게 사용하기 위해)

            ● mm_struct

               : 중간관리 메커니즘으로 물리메모리를 직접적으로 사용하지 않고 가상메모리를 통해서 사용한다

                 사용시마다 매핑한다(후매핑, page fault 발생 시 매핑) → vma(stack), vma(heap), vma(text), ... // proc 밑에 maps 파일로 확인이 가능하다

            ● page table = VA-PA 변환(매핑) 테이블 : 후매핑 방식을 사용한다

**rss: 매핑된 양

     ■ 인터럽트: 네트워크, USB... (신호 보내서 처리시킴)

        ○ 타이머 인터럽트, 네트워크 인터럽트

           → 전반부(TH: Top Half, hard irq(hi)): 1~3개, 약 0.1% / 전반부에서는 굉장히 작은 역할을 한다

           → 후반부(BH: Bottom Half, soft irq(si)): 99.9% / 나중에 처리해도되는 커널함수를 뒤로 미루는 매커니즘 / 어플리케이션이 더 중요하기 때문에 나중에 처리해도 ㅇㅋ (workqueue → 전용프로세스 kworker / softirq, tasklet → ksoftirq)

     ■ 예외처리

        ○ syscall, pagefault 두 가지가 가장 대표적

            ● syscall: open, read, write

     ■ Locking 락

      **위의 인터럽트와 예외처리를 묶어서 커널 진입점(entry)이라고 한다

         : 이벤트 핸들링 방식// 평소 작동하지 않다가 인터럽트, 예외처리 발생시 작동함

 

I/O 관리

     ■ 네트워크

        ○ L4(TCP: 출발지포트, 목적지포트 번호), L3(IP, netfilter: iptables라는 명령어로 실행), L2(Device Drive: mac 주소 출발지, 목적지 / BPF, XDP) // OSI 7 Layer

        ○ 80(http), 443(https), 22(ssh) → nmap

     ■ 디스크

        ○ Virtual File System: cat /proc/version ← 명령어

        ○ File System: ext4(우분투, 데비안 계열), xfs(레드햇 계열), zfs, btrfs, f2fs(모바일), ...

            ● 역할: 어떤 파일 시스템 포맷을 사용하냐에 따라 디스크의 물리적인 블록을 어떻게 read, write 할지에 대한 규칙이나 전략(이러한 규칙이나 전략이 없으면 마운트가 불가능함)

        ○ Block: 몇 개의 블럭을 read, write 할건지 선택함

            ● 슈퍼블록(파일시스템 포맷에 대한 정보가 들어있음), inode블록, 데이터블록(가장 많이 차지)

     ■ 디바이스 드라이버: 센서, 블루투스, usb, 디스크 등 → 모듈  → insmod, rmmod, lsmod

 

기타: 보안, 도구(tracing tool), 사운드, ...

 

'시큐리티 아카데미' 카테고리의 다른 글

리눅스 6  (0) 2024.07.19
리눅스 5  (0) 2024.07.18
리눅스 4  (0) 2024.07.18
리눅스 3  (0) 2024.07.18
리눅스 2  (0) 2024.07.17