Linux Command Line 부트캠프 - 섹션 2

59INU·2022년 12월 1일
post-thumbnail

운영체제

현존하는 운영체제들 중 다수는 크게 두 종류로 구분할 수 있다.

  • Microsoft NT 에서 시작된 마이크로소프트 계열
    : Windows, Xbox OS, Windows Phone/Mobile...
  • 유닉스 혹은 유닉스 계열(ex.리눅스)
    : Mac OS X(true Unix!), Ubuntu, Android, Chrome OS, PS4 OS ...

유닉스 계열의 운영체제들은 명령어 체계를 대부분 공유한다.

유닉스

  • 벨 연구소에서 1960년 중반 개발된 운영체제

유닉스 철학 (Unix Philosophy)

  • 초기 컴퓨터에서 운영체제는 특정 하드웨어에 강하게 묶여있었다.
  • 유닉스는 여러 하드웨어에 유연하게 대응할 수 있도록 하드웨어에서 운영체제를 분리하여 추상화했다.
  • 작은 단위의 모듈들을 조립해 복잡한 구성을 만들어 나가는 방식을 강조한다.
  • 유니스 철학의 규칙
    - 하나의 일을 잘 수행하는 프로그램들을 작성하라
    • 여러 프로그램들이 상호 협력하도록 만들어라
    • 프로그램들은 범용 인터페이스인 텍스트 스트림을 처리하도록 만들어라

리눅스, GNU, 커널

GNU

  • 리눅스와 리눅스 배포판들은 법적으로 공식 유닉스는 아니지만, 모두 유닉스 계역에 속하는 운영체제들이다.
  • 1980년대, free software 운동은 컴퓨터와 사용자간 상호 협력을 차단하지 말아야한다는 철학을 내세운 운동이다.

    "사용자에게 소프트웨어를 사용,복사,배포,연구,수정,개선할 권리가 있어야한다."

  • free software 운동을 이끈 Richard Stallman은 유닉스를 대체할 자유 소프트웨어를 개발할 개발자 그룹의 리더였으며, 1984년, 유닉스 시스템과 완전히 호환되는 자유 소프웨어 운영체제를 만들기 위한 GNU 프로젝트에 착수했다.

Linux Kernel

  • 커널이란 운영체제의 구성 요소로서 하드웨어와 어플리케이션 사이의 레이어에 존재하며 하드웨어와 소프웨어의 상호 작용을 가능하게 한다.
  • GNU 프로젝트가 진행중이던 시점, Linux Torvalds 라는 또 다른 개발자가 Linux라는 이름으로 알려진 커널을 자체 개발하고 있었다.
  • GNU의 운영체제를 위한 많은 부분들이 완성되어가고 있었지만 커널은 없는 상태였고 Tovalds가 Linux 커널을 GNU 프로젝트에 결합시키면서 온전한 운영체제가 완성되었다.
  • 커널은 운영체제의 핵심 요소이지만 어디까지나 부분이다. 운영체제와 온전히 치환되는 개념이 아니다. 리눅스 운영체제들이 리눅스 커널 뿐만 아니라 GNU 프로젝트의 결과물의 결합을 이어받은 것을 고려한다면 이 모든것을 리눅스라고 부르는 것은 프로젝트의 역사와 시발점을 오해할 여지가 있다.

터미널, 쉘, Bash

  • 운영체제를 위한 컴퓨터 인터페이스
  • 명령줄 해석기로서 명령어를 해석하여 운영체제에 전달하고, 처리 결과를 출력한다.
  • 운영체제의 외부를 감싸고 있는 외피층이라는 점을 조개 속살을 감싼 껍질에 비유하여 쉘이라는 이름이 유래했다.
  • examples
    • bash
    • zsh
    • powershell
    • cmd

터미널

  • 쉘을 실행하기위한 어플리케이션 프로그램이자 텍스트 입출력 환경
  • 쉘에 명령어를 입력하거나 쉘이 반환한 처리 결과를 표시하는 역할이다.
  • 과거 대학에서 방 하나를 차지하는 컴퓨터와 이에 연결된 단말기(터미널)를 도서관에 운영하던 시절 이 물리적 실체에서 유래한 명칭이나 현재는 소프트웨어적인 의미로 쓰인다.
  • examples
profile
개랑 사는 개발자

0개의 댓글