운영체제의 이해

HoHk☔️🐁·2025년 10월 2일

개요

  • 목적: 운영체제에 대해 이해하자
  • 범위: 운영체제의 개념과 기능 -> 윈도우의 이해 -> 리눅스/유닉스의 이해

🎯 목표 (Milestones)

  • M1: 운영체제의 개념과 기능에 대해 알아보자
  • M2: 윈도우에 대해 알아보자
  • M3: 리눅스/유닉스에 대해 이해하자

아키텍처 & 구성

  • 운영체제의 개념과 기능
  • 윈도우의 이해
  • 리눅스/유닉스의 이해

작업 목록 (Tasks)

운영체제의 개념과 기능

운영체제의 개념

윌리엄 스탈링스는
운영체제란 사용자가 컴퓨터 시스템을 손쉽게 사용하도록 하고, 시스템 자원(기억장치,
프로세서, 입출력 장치, 정보, 네트워크등을) 효율적으로 관리할 수 있도록 하는 프로그램 집합
이라고 정의했다.

운영체제를 엄마, 운영체제에서 실행되는 프로그램등을 아이들로 생각하면 편할듯하다.
곁에서 잘 작동되게 도와주고 그러는 역할이 운영체제이기 때문에

운영체제의 기능

운영체제는 종류가 많은데 일단 PC 구성을 기준으로 기능을 살펴보자
일반 PC는 단일 사용자 운영체제 구성 모델, 즉 사용자 명령 인터페이스를 중심으로
메모리 관리자, 프로세서 관리자, 장치 관리자, 파일 관리자 등 네가지 서브시스템
관리자로 기본 구성된다. 그리고 네트워크를 지원하는 운영체제라면
네트워크 관리자가 추가된다.

사용자 명령 인터페이스

사용자 인터페이스는 사용자와 시스템의 대화수단
DOS나 유닉스에서는 검은색 화면에 푸른색 커서가 깜박깜박하는 셸이 대화 수단이었다.
요즘에는 대부분 GUI를 적용하기에 여러 인터페이스 이용하여 시스템과 대화한다.(예:마우스같은거)

서브시스템 관리자

  • 메모리 관리자
    프로그램이 메모리 요청하면 적합성 점검후 적합하다 판단하면 메모리 할당
    또 할당된 메모리 다른 프로그램이 접근 못하게 관리
  • 프로세서 관리자
    프로그램을 실행하려면 프로세서가 프로그램 코드를 구성하는 명령어를 하나씩 수행해야함
    이때 프로세서 관리자는 명령어들을 체계적이고 효율적으로 실행할 수 있도록 스케줄링 및
    사용자의 작업 요청을 수용하거나 거부함
  • 장치 관리자
    시스템 안의 모든 장치를 프로그램에 할당하거나 회수함
  • 파일 관리자
    시스템 안의 데이터, 모든 파일에 사용자별로 파일 접근 권환 부여하며, 접근 권한에 따라
    파일을 할당하고 해제함
  • 네트워크 관리자
    네트워크에서 접근 가능한 CPU 메모리, 프린터, 디스크 드라이버, 모델, 모니터 같은 자원관리

윈도우의 이해

윈도우의 구조

윈도우의 커널구조와 파일 시스템 구조를 알아본다.

먼저 커널이란 운영체제의 중심에 위치하며, 운영체에서 어떤 작업을 시작하더라도
커널 동작으로 제어한다.
즉, 커널은 인터럽트 처리, 프로세스관리, 메모리 관리, 파일 시스템 관리, 프로그래밍 인터페이스
제공 등 운영체제 기본 기능을 제공하는 핵심이라고 할 수 있다.

참고: 인터럽트란??
작동 중인 컴퓨터에서 예기치 않은 문제가 발생한 경우 CPU가 하드웨어적으로 상태를 체크하여 변화에
대응하는것

윈도우의 커널 구조

커널이 손상되지 않도록 접근 가능한 메모리에 로드하지않음
커널이 손상되면 부팅할때 블루 스크린을 표시함

윈도우 시스템은 보통 링구조로 되어있다.
맨 밑에서 부터 하드웨어 -> 하드웨어 제어하는 HAL -> 마이크로 커널
-> 각종 관리자 -> 운영체제에서 동작하는 갖가지 응용 프로그램 순으로 위치함

커널모드는 기본적으로 사용자가 접근할 수 없는 영역으로, 프로그램을 실행하는 기본관리 시스템이 위치함
윈도우는 사용자가 프로그램을 만들고 실행하는 모든 과정을 사용자 모드에서만 가능하도록 설계했으나,
완벽하게 구현하지 못함
(예를들어 윈도우에서는 마이크로 커널이 HAL을 무시하고 하드웨어와 통신할수있는데 이것에서 보안의 허점이.)

다음으로 마이크로 커널이 있다. 본래 커널은 현재 관리자 들이 하던 일을 도맡아 했는데
이걸 여러 관리자에게 분담시키고 자신은 하드웨어와 하는 통신만 제어함으로써 최소한의 커널이 되었는데
이를 마이크로 커널이라 한다.

다음으로 관리자의 역할을 알아보자

  • 입출력 관리자
    시스템의 입출력 제어
  • 개체 관리자
    각 개체 정보 제공
  • 보안 참조 관리자
    각 데이터나 시스템 자원의 제어 허가및 거부함으로서 보안 설정 책임
  • 프로세스 관리자
    스레드 생성, 요청에 따라 처리
  • 로컬 프로시저 호출 관리자
    각 프로세스는 서로의 메모리 공간 침범하기 때문에 프로세스간 통신이 필요할때는
    이를 대신할 장치가 필요한데 이게 그것이다
  • 가상 메모리 관리자
    요청에 따라 RAM메모리 할당하고 가상 메모리의 페이징을 제어함
  • 그래픽 장치 관리자
    화면에 선이나 곡선 그리거나 폰트등 관리
  • 기타 관리자
    캐시 관리자,PNP관리자, 전원 관리자등이 있다.

리눅스/유닉스의 이해

리눅스/유닉스의 구조

유닉스 커널은 윈도우처럼 개별관리자 존재x

유닉스에는 커널을 거대한 프로그램 덩어리로 만든 모놀리식 커널과 개별 모듈로 구성된 마이크로 커널이 있다.

모놀리식 커널은 거대한 커널이 모든 기능을 수행하도록 만들어졌으며 안정적이지만 문제가 발생하면 부분수정이
어렵다. 모놀리식 커널은 일반 시스템 보다 거대한 슈퍼컴퓨터에 많이 적용된다.

유닉스에서의 마이크로 커널은 모듈 여러 개가 모여 커널 하나를 이루는 개념이다.
개별 모듈의 업로드와 언로드가 가능하다.
그러나 각 모듈 권한이 동일하여 잘못된 모듈을 업로드하면 커널 전체가 망가질수있다.
부분 모듈의 업로드를 이용하여 커널에 백도어를 심을수도 있다.

유닉스 링구조를 살펴보면 하드웨어, 커널, 셸, 응용프로그램 으로 구성되어있다.
링 개수가 많을수록 보안 레벨은 높지만 그렇다고 윈도우가 유닉스 보다 보안 레벨이 높다할수없다.
유닉스 링구조는 윈도우보다더 명확하게 구분되어있기 때문이다.

/ (루트 디렉토리)
  • 모든 디렉토리의 시작점.
  • 유닉스 파일 시스템의 최상위에 해당.

/bin
  • 기본 명령어 바이너리(실행 파일) 저장.
  • 시스템 부팅이나 최소한의 운영에 꼭 필요한 명령어 (ls, cp, mv, rm, cat, echo, bash 등).

/sbin
  • 시스템 관리용 명령어 저장.
  • 보통 루트 사용자만 실행 (shutdown, reboot, mkfs, fsck 등).

/etc
  • 설정 파일 위치.
  • 네트워크, 사용자, 서비스 등 시스템 환경을 제어하는 설정 (passwd, fstab, hosts, ssh/ 등).

/dev
  • 디바이스 파일 저장.
  • 하드웨어 장치를 파일처럼 다룰 수 있도록 한 인터페이스 (/dev/sda, /dev/null, /dev/tty 등).

/proc
  • 커널과 프로세스 정보 제공 (가상 파일 시스템).
  • 실제 디스크에 저장된 게 아니라 메모리 기반.
  • 예: /proc/cpuinfo, /proc/meminfo, /proc/[PID]

/var
  • 가변 데이터 저장.
  • 로그(log/), 메일(mail/), 캐시(cache/), 스풀(spool/) 등 실행하면서 계속 바뀌는 파일들.

/usr
  • 사용자용 프로그램과 라이브러리 저장.
  • /usr/bin → 일반 사용자 실행 명령어
  • /usr/sbin → 시스템 관리용 실행 파일
  • /usr/lib → 라이브러리
  • /usr/share → 매뉴얼, 문서, 공용 데이터

/home
  • 각 사용자들의 홈 디렉토리.
  • 개인 파일, 설정 파일 등이 위치 (/home/junha 같은 느낌).

/root
  • 슈퍼유저(root) 의 홈 디렉토리.
  • 일반 사용자의 /home과 분리되어 있음.

/tmp
  • 임시 파일 저장 공간.
  • 프로그램 실행 중 생성되는 임시 데이터.
  • 재부팅 시 대부분 삭제됨.

/boot
  • 부팅 관련 파일 저장.
  • 커널 이미지(vmlinuz), 초기 램 디스크(initrd), 부트로더 설정 등이 들어있음.

/lib, /lib64
  • 공용 라이브러리 저장.
  • 시스템 부팅 및 기본 프로그램 실행에 필요한 .so 파일들.
  • 커널 모듈(modules/)도 여기 있음.

/opt
  • 추가 애플리케이션 설치 경로.
  • 상용 소프트웨어나 별도로 설치한 프로그램이 들어가는 경우가 많음.

/mnt, /media
  • 외부 장치 마운트 지점.
  • /mnt → 관리자가 임시로 마운트할 때
  • /media → USB, CD-ROM 등 자동 마운트되는 장치

/srv
  • 서비스 데이터 저장소.
  • 웹 서버(/srv/www), FTP 서버(/srv/ftp) 등의 실제 데이터가 위치.

관련 리소스

  • 시스템 해킹과 보안서적 참고

느낀점& 배운점&나아가야할점

  • 느낀점: 이론 배경지식부터 가지고 시스템해킹을 공부했다면 더 수월하지 않았을까 한다.
  • 배운점: 여러 관리자 부터 구조와 링구조및 다양한 것들을 배울수있었다.
  • 나아가야할점: 다음장은 어셈블리어 레지스터 같은것들이다! 힘내자!
profile
nyo님 좋아합니다!

0개의 댓글