본문 바로가기
IT

운영체제? (with Linux)

by Dyudyu_Data 2026. 4. 8.
반응형

📕 운영체제란?

운영체제(OS, Operating System)는 컴퓨터의 모든 자원을 관리하고, 사용자와 하드웨어 사이를 연결해 주는 핵심 소프트웨어입니다. 쉽게 말해 사용자가 컴퓨터를 쓸 수 있게 만들어 주는 관리자입니다. 만약 운영체제가 없다면 CPU, 메모리, 디스크를 어떻게 써야 할지 알 수 없고 프로그램을 실행할 방법도 없고 키보드와 마우스를 눌러도 아무 반응이 없는 컴퓨터를 바라보게 될 듯합니다.

🛠 컴퓨터 시스템 간략 구조도

사용자(User)
  ↓
응용 프로그램(앱, 브라우저, 게임, 엑셀)
  ↓
운영체제(Windows, Linux, macOS)
  ↓
하드웨어(CPU, 메모리, 디스크)

운영체제가 하는 일은 무엇일까?

  1. 하드웨어 관리
  • CPU 사용 시간 분배
  • 메모리 할당 및 회수
  • 디스크, 키보드, 마우스 제어
  1. 프로그램 실행 관리
  • 여러 프로그램을 동시에 실행
  • 충돌 없이 돌아가게 조정
  1. 파일 시스템 관리
  • 파일 저장, 읽기, 삭제
  • 권한 관리 (읽기/쓰기/실행)
  1. 사용자 인터페이스 제공
  • 우리가 보는 화면(GUI) - 우리가 친숙하게 보는 윈도우
  • 터미널 같은 명령줄(CLI) - cmd.exe

참고 우리 쓰는 아이펠 LMS → CLI 셸

운영체제 중 커널(Kernel)이란?

커널이란 운영체제의 핵심 부분입니다. 시스템의 최상위 권한을 가지고 있어 하드웨어를 직접 제어하고, 시스템 자원을 관리합니다.

운영체제에서 유일하게 하드웨어를 직접 접근하고 응용 프로그램이 원활하게 실행될 수 있도록 관리합니다.

  1. CPU 관리 - 어떤 프로그램이 언제 CPU를 쓸지 결정
  2. 메모리 관리 - 프로그램마다 메모리 할당
  3. 프로세스 관리 - 프로그램 실행 및 종료
  4. 파일 및 디바이스 관리 - 디스크 읽기/쓰기, 디바이스 장치 제어
  5. 보안과 권한 - 사용자 권한 확인, sudo 같은 권리자 권한 통제

운영체제 중 셸(Shell)이란?

셸이란 사용자의 명령을 받아 커널이 이해할 수 있는 형태로 전달합니다. 사용자와 운영체제 간의 인터페이스 역할을 하고 사용자가 셸을 통해 운영체제에게 명령하며 작업을 수행할 수 있습니다.

  1. 명령 해석 - ls, grep, chmod 같은 명력을 해석
  2. 프로그램 실행 - 명령을 프로세스로 실행해 달라고 커널에 요청
  3. 입출력 제어 - 파이프(|), 리다이렉션(>, <) 처리
  4. 환경 관리 - 환경 변수, 스크립트 실행

프로세스(Process)란?

실행 중인 프로그램을 의미합니다. 프로그램을 실행하면 프로세스가 됩니다. 각 프로세스는 자기만의 메모리 공간을 가집니다.

스레드(Thread)란?

프로세스 안에서 실제로 일하는 작업 단위입니다. 하나의 프로세스 안에 여러 개 존개가 가능합니다. 프로세스는 운영체제가 메모리를 할당하는 작업단위라면, 스레드는 프로세스가 할당받은 메모리를 활용하는 실행 단위입니다.

📘 리눅스란?

리눅스(Linux)는 1991년 리누스 토르발즈(Linus Benedict Torvalds)라는 학생에 의해 만들어졌으며, 유닉스(Unix) 철학을 기반으로 만들어진 오픈소스 운영체제입니다.

리눅스의 가장 큰 장점?

리눅스는 누구나 무료로 사용·수정·배포할 수 있는 운영체제이며, 안정성과 확장성이 가장 큰 강점입니다.

리눅스 기반 운영체제

터미널(Terminal)이란?

  • 컴퓨터와 직접 문자로 소통하던 ‘입력·출력 장치’
  • 예전에는 키보드+화면이 붙은 물리장치
  • 서버에 연결해서 문자만 주고받음
  • 계산 능력은 없고 입출력만 담당

터미널 에뮬레이터(Terminal Emulator)이란?

  • 터미널을 소프트웨어로 흉내 낸 프로그램
  • 실제 우리가 LMS에서 쓰고 있는 터미널이 터미널 에뮬레이터
  • 키보드 입력을 받아 화면에 문자 출력을 하는 옛날 터미널 같은 우리가 실제 사용하는 프로그램

❤️ 리눅스 명령어

  • echo: 뒤이어 입력한 내용을 출력합니다.
  • cat: 하나 이상의 텍스트 파일을 순서대로 출력합니다.
  • ls: 현재 디렉터리 내의 파일 및 폴더들을 출력합니다.
  • cd: Change Directory의 약자로, 뒤에 따라오는 폴더로 내가 있는 셸의 현재 위치를 이동시킵니다.
  • cp: 파일을 복사합니다.
  • mv: 파일을 이동합니다.
  • rm: 파일을 삭제합니다. 폴더를 삭제하기 위해서는 -r (recursive) 옵션을, 빈 폴더가 아니더라도 내부까지 삭제하려면 -f (force) 옵션을 함께 사용해야 합니다.
  • sudo: 이어지는 명령을 최고 관리자 권한으로 실행합니다.
  • apt-get: APT 패키지 관리자를 통해 공인 저장소에서 패 키지를 가져다 설치하거나 제거합니다.
  • ssh: 원격으로 셸에 접속합니다.

👍 리눅스 명령어

  • history: 셸 명령어 이력을 출력합니다.
  • man: 프로그램의 매뉴얼 페이지를 출력합니다.
  • sort: 입력된 텍스트를 줄 단위로 정렬합니다.
  • less: 텍스트 파일의 내용을 자유롭게 조회하고 검색합니다.
  • head: 텍스트 파일의 앞 몇 줄만 출력합니다.
  • tail: 텍스트 파일의 마지막 몇 줄만 출력합니다.
  • cut: 텍스트를 구분자(delimiter)에 따라 나눕니다.
  • uniq: 텍스트 중 중복 값들을 제거합니다.
  • grep: 정규식을 활용해 텍스트를 검색합니다.
  • wc: 텍스트를 단어, 줄, 문자 등 단위로 셉니다.
  • chown: 대상 파일의 소유 사용자와 그룹을 변경합니다.
  • chmod: 대상 파일의 권한을 변경합니다.
  • find: 파일을 찾습니다.
  • pwd: Present Working Directory의 약자입니다. 현재 내가 위치한 디렉터리 위치를 출력합니다.
  • ps: 현재 프로세스 목록을 출력합니다.
  • kill: PID에 해당하는 프로세스에 시그널을 보냅니다.
  • tmux: 여러 개의 셸 세션을 관리하고, 터미널 접속이 끊어지더라도 셸 세션을 유지합니다.
  • watch: 이어지는 명령을 주기적으로 실행하여 표시합니다.
  • curl: 주어진 URL과 통신합니다.
  • wget: 네트워크를 통해 파일을 다운로드합니다.
  • scp: SSH를 통해 원격으로 파일을 전송합니다.