시스템 해킹 기초 지식

2025. 3. 2. 15:29양대일/시스템

728x90
반응형

운영체제의 이해

운영체제의 개념과 기능

  • 해킹과 보안 다루기 전에 기반이 되는 운영체제의 기본 이론 알기
  • 시스템 이해의 필요한 요소인 운영체제 이해

운영체제의 개념

윌리엄 스탈링스 '운영체제 내부구조 및 설계 원리'에서 운영체제란 사용자가 컴퓨터 시스템을 손쉽게 사용하도록 하고, 시스템 자원을 효율적으로 관리할 수 있도록 하는 프로그램 집합으로 정의 

https://velog.io/@gun_123

 

gun_123 (IMKUNYOUNG) - velog

[Amazon S3 Security] S3 Access Points Amazon S3는 대규모 데이터 저장 및 관리를 가능하게 하는 AWS 서비스로, 여러 사용자가 다양한 데이터에 접근할 수 있도록 설정하는 데 매우 유용합니다. 하지만 여러

velog.io

  • 운영체제 - 응용프로그램 / 엄마 - 아이들
    • 어머니는 아이들이 어떤 일을 잘 할 수 있도록 도와 준다.
    • 운영체제도 프로그램이 프로세스 생성, 메모리 접근 등 서로 충돌 없이 요구를 잘 실행하도록 도와주는 역할 
  • 운영체제의 기능

https://velog.io/@0mi/

  • 사용자 명령 인터페이스 
    • 사용자와 시스템의 대화 수단
    • DOS나 유닉스에서는 검은색 화면에 푸른색 커서가 깜박하는 셸이 대화 수단
    • 요즘은 GUI를 적용한 아이콘, 메뉴, 마우스 인터페이스를 이용
  • 메모리 관리자
    • 프로그램 코드, 데이터를 저장하는 메모리를 관리하는 프로그램
    • 적합성 점검, 메모리 할당
    • 할당된 메모리에 다른 프로그램이 접근하지 못하게 관리하고 보호
    • 프로그램 종료 시 할당된 메모리 회수
  • 프로세서 관리자
    • 프로세서가 프로그램 코드를 구성하는 명령어(인스트럭션)을 하나씩 차례대로 수행할 때 명령어들을 체계적이고 효율적으로 실행할 수 있도록 작업 스케줄링, 사용자의 작업 요청을 수용하거나 거부 실행
  • 장치 관리자
    • 프린터, 디스크 드라이버, 모뎀, 모니터 등 시스템 안의 모든 장치를 프로그램에 할당, 회수 
  • 파일 관리자
    • 시스템 안의 데이터, 응용 프로그램 등 모든 파일에 사용자별로 파일 접근 권한 부여, 저급 권한에 따라 파일을 할당 및 해제
  • 네트워크 관리자
    • 네트워크에 접근 가능한 cpu, 메모리, 프린터, 디스크 드라이버,모뎀, 모니터 같은 자원을 관리

윈도우의 이해

  • 윈도우의 역사

  • 1981년 10월 MS-DOS 1.0으로 시작
  • 1983년 3월 MS-DOS 2.0, 이태부터 하드 디스크를 여러 개 장착할 수 있게 됨
  • 1985년 11월 윈도우 1.0 발표, 다중 처리 환경, 안정성과 성능 문제로 주목은 받지 못함
  • 1987년 윈도우 2.0 발표, DOS에서 설정한 기본 메모리인 640KB 이상의 프로그램이 생겨나기 시작
  • 1987년 윈도우 386버전, 윈도우 3.0의 기초가 됨
  • 윈도우 3.0은 안정성에 조금 문제가 있음에도 인기가 있었음
  • 1992년 윈도우 3.1은 대부분의 PC에 윈도우를 설치하는 분위기 이끔
  • 1993년 DOS에서 시작한 PC용 운영체제인 윈도우를 서버용 운영체제의 개념인 NT 버전으로 출시
  • 1995년 8월 윈도우 95 발표, TCP/IP,전화 접속 네트워킹, 긴 파일 이름 등 새로운 기능 많아 인기
  • 1998년 윈도우 98을 발표, OSR2 버전의 높은 안정성 선보여
  • 1999년 윈도우 ME와 윈도우 서버 2000을 2001년 윈도우 XP, 2003년 윈도우 서버 2003 출시
  • 이후 발전을 계속 서버 2016, 윈도우 10 등 출시 중
  • GUI 최초 개발 Xerox
  • 안드로이드, IOS, 리눅스 등 OS가 점점 다양한 곳에 사용 중

윈도우의 구조

 

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

인터럽트 : 작동 중인 컴퓨터에 예기치 않은 문제가 발생한 경우 CPU가 하드웨어적으로 상태를 체크하여 변화에 대응하는 것. 인터럽트가 발생하면 운영체제의 제어 프로그램에 있는 인터럽트 처리 루틴이 작동하여 인터럽트를 해결하고, 인터럽트가 생기기 이전의 상태로 복귀  

  • 윈도우의 커널 구조
    • 커널을 손상하면 안 되므로 접근 가능한 메모리에 로드하지 않는다.
    • 윈도우 시스템은 보통 링 구조로 도어 있고, 맨 밑에서부터 하드웨어 - 하드웨어를 제어하는 HAL - 마이크로 커널 - 각종 관리자 - 응용프로그램 순으로 위치
    • 링 구조의 계층은 각 보안 요소를 충족하고 개별적으로 운영할 때 시스템 보안 수준이 높은 상태로 유지될 것이라고 생각에서 고안
    • 하드웨어 - HAL - 마이크로 커널 -각종 관리자까지를 커널 모드 
    • 마지막 링은 사용자 모드
    • 커널 모드는 기본적으로 사용자가 접근할 수 없는 영역
    • 윈도우는 사용자가 프로그램을 만들고 실행하는 모든 과정을 사용자 모드에서만 가능하도록 설계
    • 하지만 완벽하게 구현은 못함 - 마이크로 커널이 HAL을 무시하고 하드웨어와 통신할 수도 있는데, 이것이 보안에서 허점을 만들어 낸다. 
    • 1-5 그림은 사용자 모드와 커널 모드를 좀 더 자세히 표현한 것 
    • 드라이버 개발자와 하드웨어 개발자는 윈도우에서 제시한 기본 표준(HAL)을 따르면 하드웨어와 개발된 소프트웨어가 원할히 통신할 수 있도록 도와주는 번역자 역할을 한다. 
    • HAL위에 마이크커널은 하드웨어와 통신만 제어하는 최소한의 커널을 의미하며, 프로세스 스케줄링, 메모리 관리, 데이터 입출력, 하드웨어 제어는 다른 관리자에게 분담시킴
    • system32폴더의 ntoskrnl.exe파일이 그 역할을 한다. 
    • 위도우 관리자
      • 입출력 관리자 : 시스템의 입출력 관리, 장치 드라이버 사이에서 메시지를 전달, 응용 프로그램이 하드웨어와 곧바로 통신할 수 있는 통로 제공
      • 개체 관리자 : 윈도우는 파일, 포트 프로세스, 스레드 등 모든 것을 개체로 정의함, 이러 각 개체 정보를 제공
      • 보안 참조 관리자 : 각 데이터나 시스템 자원의 제어를 허가하거나 거부함으로써 시스템의 강제 보안 설정을 책임진다. 
      • 프로세스 관리자 : 스레드 생성하고 요청에 따라 처리
      • 로컬 프로시저 호출 관리자 : 각 프로세스는 서로의 메모리 공간을 침범하지 못하기 때문에 프로세스 간 통신이 필요할 때는 이를 대신할 수 있는 장치가 필요한데, 그 장치가 로컬 프로시저 호출 관리자
      • 가상 메모리 관리자 : 응용 프로그램의 요청에 따라 RAM 메모리를 할당하고, 가상 메모리의 페이징 제어
      • 그래픽 장치 관리자 : 화면에 선이나 곡선을 그리거나 폰트 등을 관리
      • 기타 관리자 : 캐시 관리자, PNP(Plug and Play)관리자, 전원 관리자 등이 있다. 
      • 윈도우는 여러 응용 프로그램을 실행할 수 있도록 몇 가지 서브시스템을 동작
        • Win32 - 32비트 응용 프로그램이 동작할 수 있게 도와줌 
        • 윈도우 7이나 2008년 부터 64비트 서브시스템 제공
        • 윈도우 10부터 WSL, 리눅스 운영체제 설치하여 리눅스 프로그램도 그 안에서 실행할 수 있게 해줌
        • 서브시스템을 윈도우에서는 컨테이너라고 할 수 있음.

윈도우의 파일 시스템

FAT(File Allocation Table)은 기본적으로 2GB까지를 한 파티션으로 설정할 수 있다. FAT 테이블의 기본 크기는 16비트인데, 이는 하드 디스크에 파일을 담는 최소 단위인 클러스터가 32KB이기 때문이다. 

  • 최소 단위 클러스트 크기가 32kb 2의5승의 크기
  • 이러한 클러스트를 저장할 수 있는 FAT 테이블의 크기는 2의16승 개수
  • 2의16 곱하기 2의5승으니 2의 21승 즉 2GB

FAT32 클러스터를 총 32비트(2의32승)개수를 가질 수 있다. 하지만,

  • FAT32는 클러스터를 관리하기 위해 32비트를 사용합니다. 하지만 실제로는 28비트만 클러스터 주소에 사용되며, 나머지 4비트는 예약되어 있습니다.
  • 따라서 FAT32는 최대 228개의 클러스터를 관리할 수 있습니다.

  • **섹터**는 디스크의 물리적 데이터 저장 단위이고, 클러스터는 파일 시스템이 데이터를 논리적으로 관리하기 위해 섹터를 묶은 단위입니다.
  • 섹터 크기는 보통 고정(512바이트)되지만, 클러스터 크기는 파일 시스템에 따라 다르며 FAT32에서는 최대 32KB까지 설정할 수 있습니다.
  • 논리적 단위 

  • 32kb 논리적 단위는 물리적 단위 1섹터 512바이트 64개필요
  • MBR은 디스크의 논리 섹터 수를 나타내기 위해 32비트 주소 공간을 사용합니다.
  • 섹터 크기가 기본값인 512바이트일 때, MBR이 지원할 수 있는 최대 디스크 용량은 다음과 같습니다
  • 따라서, MBR 기반 시스템에서는 FAT32든 다른 파일 시스템이든 간에 2TB 이상의 디스크는 주소 지정이 불가능합니다.
    • MBR(Master Boot Record) 파티션 체계에서 섹터 주소를 지정할 때, 32비트 주소 공간을 사용하기 때문에 2의32승개의 주소값만 가질 수 밖에 없기때문에 2TB한계가 생김.
    • MBR이 지정한 파티션 범위 내에서 FAT 테이블이 동작하므로 한계를 2TB가질 수 밖에 없지 

NTFS 파일 시스템은 암호화된 폴더나 파일제공하며 복사나 이동을해도 암호화 속성을 잃지 않는다. 

윈도우의 부팅 순서

운영체제의 부팅 순서는 시스템 기본을 이루는 각 요소를 보유 준다. 

  • 윈도우 xp, 윈도우 서버 2000/2003의 부팅 순서
    • POST 실행 : 어떤 운영체제를 설치해도 POST 과정은 필요. 하드웨어 스스로 시스템에 문제가 없는지 기본 사항을 검사하는 과정,BIOS가 POST를 실행하고, 라우터나 스위치 등 장베에서도 처음 스위치를 켤 때 POST를 실행. 
    • 기본 부팅 관련 설정 사항 로드 : CMOS에서 기본 부팅 매체 등 부팅 관련 사항을 설정했던 경험이 있을 것이다. BIOS는 CMOS에 설정된 시스템 설정 사항 및 부팅과 관련된 여러 가지 정보를 읽어 시스템에 적용
    • MBR 로드 : MBR은 저장 매체의 첫 번째 섹터에 위치하는 512바이트 영역으로 부팅 매체의 기본 파일 시스템 정보가 들어 있다. 파티션 테이블에서 부팅 가능한 파티션을 찾아 해당 파티션의 부트 섹터를 호출 하는 것이 주 역할. 
    • NTLDR 실행 
    • NTDETECT.com 실행 : 하드웨어를 검사 

리눅스/유닉스의 이해

유닉스와 리눅스의 간단한 역사

유닉스(UNIX)

  1. 탄생 배경:
    • 1969년, AT&T 벨 연구소의 **켄 톰슨(Ken Thompson)**과 **데니스 리치(Dennis Ritchie)**가 개발.
    • 초기에는 어셈블리 언어로 작성되었으나, 1973년에 C 언어로 재작성되어 이식성이 크게 향상됨.
  2. 주요 특징:
    • 멀티태스킹(Multi-tasking)과 다중 사용자(Multi-user) 지원.
    • 계층적 파일 시스템과 높은 이식성.
    • 초기 소스 코드가 대학과 연구소에 공개되어 널리 확산됨.
  3. 발전 과정:
    • 유닉스는 두 가지 주요 계열로 발전:
      • System V: AT&T의 상업용 유닉스.
      • BSD(Berkeley Software Distribution): 버클리 대학에서 개발된 학문적 연구용 유닉스.
    • 이후 다양한 상용 유닉스(HP-UX, AIX 등)와 오픈소스 유닉스 계열(FreeBSD 등)이 등장.

리눅스(Linux)

  1. 탄생 배경:
    • 1991년, 핀란드의 대학생 **리누스 토발즈(Linus Torvalds)**가 개인 프로젝트로 개발.
    • UNIX를 기반으로 하되, 상업적 제약이 없는 새로운 운영체제를 목표로 함.
    • 처음에는 Minix(간단한 UNIX 계열 OS)를 대체하기 위해 시작됨.
  2. 공개와 확산:
    • 1991년, 리누스가 인터넷에 리눅스 커널을 공개하며 전 세계 개발자들이 참여.
    • GNU 프로젝트의 도구들과 결합하여 GNU/Linux라는 형태로 발전.
  3. 특징:
    • 오픈소스 소프트웨어로 누구나 수정 및 재배포 가능(GPL 라이선스).
    • 다양한 배포판(Fedora, Ubuntu, CentOS 등)으로 확산.
    • 서버, 데스크톱, 임베디드 시스템 등 다양한 플랫폼에서 사용.
  4. 현재 위치:
    • 리눅스는 클라우드 서버, 슈퍼컴퓨터, IoT 기기 등에서 널리 사용되며 성능과 안정성 면에서 UNIX를 능가하는 수준으로 발전.

POSIX는 Portable Operating System Interface의 약자로, 서로 다른 운영체제 간의 호환성을 유지하기 위해 정의된 표준 인터페이스입니다. 주로 유닉스(UNIX) 계열 운영체제를 기반으로 만들어졌지만, 비유닉스 계열 운영체제에서도 적용될 수 있습니다.

POSIX의 주요 목적

  1. 운영체제 간 호환성:
    • POSIX는 서로 다른 운영체제에서 동일한 소스 코드가 동작하도록 하기 위해 공통 API를 정의합니다.
    • 이를 통해 프로그램을 한 운영체제에서 다른 운영체제로 쉽게 이식할 수 있습니다.
  2. 표준화된 인터페이스 제공:
    • 시스템 콜(C 언어 인터페이스), 파일 및 디렉토리 관리, 프로세스 환경 등 다양한 기능에 대해 표준 규격을 제공합니다.
  3. 유닉스 계열의 확장:
    • POSIX는 유닉스를 기반으로 하지만, 유닉스 외의 운영체제에서도 적용 가능하도록 설계되었습니다.

POSIX의 역사

  • 1980년대 초, 유닉스 시스템이 다양한 변종으로 발전하면서 호환성 문제가 발생했습니다.
  • 이를 해결하기 위해 IEEE(전기전자공학자협회)가 POSIX 표준을 개발했습니다.
  • POSIX 표준은 1988년에 처음 발표되었으며, 이후 지속적으로 업데이트되었습니다.

POSIX의 주요 구성

POSIX는 여러 하위 표준으로 나뉘며, 대표적으로 다음과 같은 부분을 포함합니다:

  1. POSIX.1 (C 언어 API):
    • 프로세스 생성 및 종료.
    • 파일 및 디렉토리 관리.
    • 메모리 관리와 동기화.
  2. POSIX.2 (쉘과 유틸리티):
    • 명령어 인터프리터(쉘)와 관련 유틸리티(예: ls, cp 등).
  3. POSIX 확장:
    • 실시간 처리(POSIX.4).
    • 보안 기능(POSIX.6).
    • 기타 언어 지원(Ada 등).

POSIX 준수 운영체제

  1. 완전 준수:
    • macOS, Solaris 등은 POSIX 인증을 받았습니다.
  2. 부분 준수:
    • 대부분의 리눅스 배포판은 POSIX 표준을 따르지만, 완전 준수는 아닙니다.
  3. 비준수:
    • Windows는 기본적으로 POSIX를 따르지 않지만, WSL(Windows Subsystem for Linux)과 Cygwin 등을 통해 일부 POSIX 환경을 제공합니다.

POSIX의 영향

  • POSIX는 현대 운영체제와 소프트웨어 개발에 큰 영향을 미쳤습니다.
  • 이를 기반으로 유닉스 계열 운영체제와 리눅스가 발전했으며, 클라우드 서버와 같은 다양한 환경에서 널리 사용되고 있습니다.

POSIX는 운영체제 간 이식성과 호환성을 높이기 위해 IEEE가 정의한 표준 인터페이스입니다. 유닉스 계열 시스템에서 시작되었지만, 다양한 운영체제에 적용 가능하며, 소프트웨어 개발자에게 공통된 API와 규칙을 제공

POSIX는 개발자가 일관된 인터페이스(API)를 통해 소프트웨어를 작성하고 실행할 수 있도록 보장합니다.

  • 이식성(portability):
    • 이식성은 소스 코드 수준에서의 호환성을 의미합니다.
    • POSIX 표준을 따르면, 한 운영체제에서 작성한 소스 코드를 다른 운영체제로 쉽게 옮길 수 있습니다.
    • 예: POSIX를 준수하는 유닉스 계열 운영체제(Linux, macOS 등) 간에 동일한 소스 코드를 사용하여 프로그램을 빌드할 수 있음.
  • 호환성(compatibility):
    • 호환성은 운영체제 간에 동일한 POSIX API를 제공함으로써, 소프트웨어가 일관된 동작을 보장하도록 하는 것을 의미합니다.
    • 이는 운영체제 간 상호작용을 단순화하고, 개발자가 다양한 환경에서 동일한 방식으로 작업할 수 있도록 합니다.

리눅스/유닉스의 구조

윈도우는 본래 커널이 하던 일을 여러 관리자가 분담한 반면, 유닉스 커널은 윈도우처럼 개별 관리자가 존재하지 않는다. 

 

유닉스는 모놀리식 커널과 개별 모듈로 구성된 마이크로 커널이 있다. 유닉스의 마이크로 커널은 위도우 마이크로 커널과 달리 모듈 여러 개가 모여 커널 하나를 이루는 개념이다. 개별 모듈의 업로드와 언로드가 가능하다.

리눅스/유닉스의 부팅 순서

  • POST 실행
  • 기본 부팅 관련 설정 사항 로드 from CMOS
  • MBR 로드 
  • 부트 로더 실행 - LILO 또는 GRUB 
  • 실행 레벨에 따른 서비스 실행 
    • 부트로더 스와퍼라는 pid 0번 프로세스 실행 -> 스와퍼는 pid 1번 init 프로세스 실행 -> init 프로세스 /etc/inittab 파일을 읽어 부팅할 기본 모드 선택
      • 실행 레벨 
      • 0 : 시스템을 종료할 때 사용
      • 1 : 단일 사용자 모드, 관리자 권한의 셸이이지만 대부분 데몬을 실행하지 않으므로 기능은 제약되어 있음
      • 2 : NFS를 지원하지 않는 다중 사용자 모드 (네트워크 파일 시스템이 없음)
      • 3 : 일반 셸 기반의 인터페이스를 가진 다중 사용자 모드
      • 4 : 기본적으로 미사용, 사용자가 임의로 정의하여 사용 가능
      • 5 : 기본은 실행 레벨 3과 같으나, GUI 환경 지원
      • 6 : 재부팅

https://it-stargazer.com/%EC%BB%B4%ED%93%A8%ED%84%B0%EC%9D%98-%ED%95%B5%EC%8B%AC-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80-%EC%A4%91%EC%9A%94%EC%84%B1-%EB%B0%8F-%ED%8A%B9%EC%A7%95/

 

컴퓨터의 핵심 운영체제가 무엇인가? 중요성 및 특징 그리고 종류와 종류별 특장점까지 IT몽상가

안녕하세요 IT몽상가 입니다. 운영체제 (Operating System, OS)는 컴퓨터 하드웨어와 사용자 간의 인터페이스 역할을 하는 소프트웨어입니다. 이는 시스템의 자원을 관리하고, 사용자의 명령을 효과적

it-stargazer.com

https://slidesplayer.org/slide/14056140/

 

Part01. 시스템 해킹을 위한 기초 지식 Chapter01. 운영체제에 대한 이해 - ppt download

운영체제의 개념과 기능 운영체제 개념 사용자가 컴퓨터 시스템을 손쉽게 사용하도록 하고, 시스템 자원 을 효율적으로 관리할 수 있도록 하는 프로그램 집합 운영체제란 사용자가 컴퓨터 시스

slidesplayer.org

운영체제의 개념과 기능

  • 운영체제의 정의
    컴퓨터 시스템 자원(기억장치, 프로세서, 입출력장치 등)을 효율적으로 관리하고 사용자가 시스템을 쉽게 사용할 수 있도록 돕는 프로그램 집합.
  • 운영체제의 주요 기능
    • 단일 사용자 PC: 메모리 관리자, 프로세서 관리자, 장치 관리자, 파일 관리자.
    • 네트워크 지원 운영체제: 네트워크 관리자 추가.

윈도우에 대한 이해

윈도우 역사

  • 초기 버전: MS-DOS(1981), 윈도우 1.0(1985), 윈도우 2.0(1987).
  • 발전 과정:
    • 윈도우 NT(1993): 프로세스별 고유 권한 부여.
    • 윈도우 95/98: 자원 우선권 미흡.
    • 이후 주요 버전: XP(2001), 서버 2003, 비스타, 윈도우 7 등.

윈도우 구조

  • 커널(Kernel): 운영체제의 핵심으로 인터럽트 처리, 프로세스 관리, 메모리 관리 등을 수행.
  • 링 구조: 하드웨어 → HAL → 마이크로 커널 → 관리자들 →  응용 프로그램.
    • 커널 모드와 사용자 모드로 구분되며, 보안 허점이 존재.

윈도우 파일 시스템

  • FAT: 최대 파티션 크기 2GB, 클러스터 크기 32KB.
  • FAT32: 클러스터 수 증가, 타 OS와 호환성 우수.
  • NTFS: 파일/폴더별 권한 설정 및 암호화 지원.

윈도우 부팅 순서

  1. POST 실행: 하드웨어 상태 점검(BIOS).
  2. CMOS 설정 로드: 부팅 관련 정보 적용.
  3. MBR 로드: 부팅 매체 정보 확인(512바이트 영역).
  4. NT Loader 실행: 파일 시스템 실행 및 boot.ini 읽기.
  5. NTDETECT.com 실행: 하드웨어 검사 및 레지스트리 생성.
  6. ntoskrnl.exe 실행: 커널 로드 및 초기화 → 서비스 로드 → 서브 시스템 시작.

리눅스/유닉스에 대한 이해

유닉스 역사

  • 시초: 멀틱스(Multics) 프로젝트(1963~1966).
  • 발전 과정: 데니스 리치와 켄 톰슨이 유닉스 개발(PDP-7 기반). BSD와 System V로 분화.

리눅스 역사

  • GNU 프로젝트(1983)에서 시작하여 리눅스 커널(1991년) 발표. 'Copy Left' 원칙에 의해 발전.

유닉스 링 구조

  • 구성 요소: 하드웨어 → 커널 → 셸(Shell) → 응용 프로그램.
  • 보안 수준은 링의 개수보다 명확한 구분에 의해 결정됨.

리눅스/유닉스 커널 구조

  • 단순한 구조로 크게 세 가지로 나뉨:
    • 파일 서브 시스템(파일 저장/읽기).
    • 장치 드라이버(하드웨어와 소프트웨어 연결).
    • 프로세스 제어(통신, 스케줄링, 메모리 관리).

셸(Shell)

  • 역할: 명령을 받아 커널에 전달하고 실행 결과를 반환.
  • 주요 기능:
    • 내장 명령어 제공.
    • 입력/출력 방향 변경(redirection).
    • 파이프라인 사용(|).
    • 조건부 명령 작성 및 백그라운드 처리.

리눅스/유닉스 파일 시스템

  1. 일반 파일: 데이터/실행 파일.
  2. 디렉터리 파일: 하위 디렉터리 및 파일 정보 포함.
  3. 특수 파일: 장치 접근용(/dev 경로).
  4. 파이프 파일: 임시 파일 생성 후 명령 수행 완료 시 삭제

\

반응형