컴퓨터 공학 | 퀴즈 (6)

Faithful Dev·2025년 1월 29일

컴퓨터 공학

목록 보기
69/81

리눅스 및 운영체제 개요

운영체제의 구성 요소

운영체제(OS)는 하드웨어와 소프트웨어를 관리하는 시스템 소프트웨어로, 주요 구성 요소는 다음과 같다.
1. 커널(Kernel): 운영체제의 핵심으로, 프로세스 관리, 메모리 관리, 디바이스 제어 등을 수행한다.
2. 파일 관리(File Manager): 파일 시스템을 관리하며, 데이터 저장과 접근을 조정한다.
3. 셸(Shell): 사용자와 커널 사이의 인터페이스 역할을 하며, 명령어를 해석하고 실행한다.


리눅스 파일 및 프로세스 관리

리눅스 파일 및 디렉토리 삭제 명령어

리눅스에서 파일과 디렉토리를 삭제할 때 rm 명령어를 사용한다.

  • rm -r: 디렉토리와 그 내부의 모든 파일 및 하위 디렉토리를 재귀적으로 삭제한다.
  • rm -f: 강제 삭제 옵션으로, 사용자 확인 없이 파일을 삭제한다.
  • rm -i: 삭제 전에 사용자에게 확인을 요청한다.
  • rm -v: 삭제되는 항목을 상세하게 출력한다.

Soft Link(심볼릭 링크)는 원본 파일을 가리키는 별도의 파일로, 원본 파일이 삭제되면 링크가 깨진다.

  • inode 번호가 다름: Soft Link는 원본 파일과 다른 inode 번호를 가진다.
  • 원본 삭제 시 무효: 원본 파일이 삭제되면 Soft Link는 동작하지 않는다.
  • 원본 수정 반영: 원본 파일이 수정되면 Soft Link를 통해 수정된 내용을 확인할 수 있다.

리눅스 프로세스 및 시스템 제어

리눅스 프로세스 제어

리눅스에서 실행 중인 프로세스는 다양한 단축키로 제어할 수 있다.

  • CTRL + Z: 현재 실행 중인 foreground 프로세스를 일시 정지(Suspend)한다.
  • CTRL + C: 현재 실행 중인 foreground 프로세스를 강제 종료(Terminate)한다.
  • CTRL + X, CTRL + V: 일반적으로 프로세스 제어와 관련이 없다.

소프트웨어 인터럽트 (Software Interrupt)

소프트웨어 인터럽트는 프로그램이 CPU에 특정 작업을 요청할 때 사용된다.

  • x86 아키텍처에서 INT 0x80 명령어는 리눅스 시스템 콜을 호출할 때 사용된다.
  • 소프트웨어 인터럽트는 운영체제 커널이 사용자 프로그램의 요청을 처리하도록 한다.
  • 하드웨어 인터럽트와 달리, 명령어 실행 중 프로세스가 직접 발생시킨다.

시스템 콜(System Call) 구현 방법

시스템 콜은 운영체제 커널이 사용자 프로그램의 요청을 처리하는 인터페이스다.

  • 커널 모드 전환: 시스템 콜을 실행하면 CPU가 사용자 모드에서 커널 모드로 전환된다.
  • 소프트웨어 인터럽트 활용: x86 시스템에서는 INT 0x80 또는 syscall 명령을 사용하여 시스템 콜을 호출한다.
  • 시스템 콜 핸들링: system_call() 함수는 레지스터(예: eax)를 통해 전달된 시스템 콜 번호를 확인하고, 해당하는 시스템 콜을 실행한다.
  • 사용자 모드 복귀: 시스템 콜 실행 후, 커널 모드에서 사용자 모드로 복귀하고 프로세스의 다음 작업을 수행한다.

리눅스 프로그래밍 및 컴파일

리눅스에서 C 프로그램 컴파일

리눅스에서 C 코드를 실행 파일로 만들려면 GCC(GNU Compiler Collection)을 사용한다.

  • 기본 컴파일: gcc test.ca.out 실행 파일 생성
  • 실행 파일명 지정: gcc -o [출력파일명] [소스파일]
  • 개별 객체 파일 생성: gcc -c [소스파일].o(오브젝트 파일)만 생성
profile
Turning Vision into Reality.

0개의 댓글