CS/Linux

리눅스

멍쟈뽀쨕 2024. 12. 16. 02:11

리눅스

리눅스의 역사

유닉스

  • 개발자들이 유닉스라는 운영체제를 기계어로 만듦
  • 기계어로 만들었던 유닉스를 C언어로 개발하였고 완성된 유닉스의 소스코드를 무료로 대학기관이나 연구소에 배포
  • 배포된 유닉스를 여러 기관에서 개발
  • 유료인 유닉스에 반발하여 무료로 배포하려는 기관들이 등장

리눅스

  • 리누스 토발즈라는 대학생이 GNU시스템에 적합한 커널을 개발
  • 이후 계속해서 발전해가며 여러 리눅스 종류 탄생

리눅스의 종류

  • 안녕 리눅스: 우리나라에서 개발중
  • 우분투: 개발자 또는 일반 유저가 사용하기 좋음
  • CentOS: 서버로 사용하기 알맞음~~(지금은 망했다고 들었다..)~~

리눅스의 특징

  • 높은 이식성과 확장성(C언어 기반이기 때문!!)
  • 안전성과 신뢰성(국제적이고 개방적으로 개발되었기 때문에 문제점에 대한 대처가 빠름)
  • 계층적 파일 시스템 (최상위 디렉토리가 존재하고 모든 것들은 해당 디렉토리 하부에 존재)

리눅스의 기본 구성요소

리눅스는

HW>커널>쉘>명령어 이렇게 크게 4가지 요소로 분류되어있다.

리눅스로 국한하지말고 그냥 운영체제의 기본 구성이라고 생각하고 예시를 들어보자면

H/W: cpu, ram, hdd, I/O

커널(kernel): linux, window

쉘(shell): 파일탐색기, cmd, powershell, bash, zsh

명령어: 프로그램

출처: 따라학잇 리눅스의 기본 구성요소

 

근데 사실 처음에 이거 보고 좀 으잉? 했다

리눅스 구성요소라고 생각하면 그냥 리눅스 내부의 구성요소를 생각했는데,

이 기본구성 요소는 리눅스를 포함한 구성요소인게 의아했다.

아마도 이는 리눅스 운영체제를 전체 시스템 관점에서 설명하기 위함인듯 싶다

엄밀히 말하면 리눅스는 커널만을 지칭하는 것이지만,

운영체제(Linux) 전체를 지칭할때는 하드웨어 커널 셸 사용자 프로그램 모두 포함하는 개념으로 확장이 되는 것 같다.

리눅스 기본환경

  1. 프롬프트
  • 컴퓨터가 입력을 기다리고 있음을 가리키기 위해 화면에 나타나는 표시
  • 일반적으로 리눅스의 프롬프트는 현재 작업 디렉토리, 현재 로그인 한 사용자 등에 대한 정보를 표시
  1. CLI 인터페이스(명령줄 인터페이스)
  • 텍스트 터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식
  • 즉, 작업 명령은 사용자가 컴퓨터 키보드 등을 통해 문자열의 형태로 입력
  • 컴퓨터로부터의 출력 역시 문자열 형태
  • 명령어 구조
    • 명령어: 시스템에서 특정 작업을 하기 위해 실행하는 실행파일, 프로그램
    • 옵션: 명령어를 어떻게 실행할 것인지 지정 (일반적으로 대시 문자 뒤에 옵션을 지정)
    • 아규먼트(Argument): 명령어에 의해서 영향을 받는 파일 or 디렉토리 등 특정 대상
    • ex) netstat -anp, ifconfig -a, ls -al

참고) 인터페이스는 크게 GUI와 CLI(CUI)가 있다.

Windows와 macOS의 경우 GUI 환경이 시스템에 고정으로 포함되어 있으며 분리할 수 없다.

반면, Linux에서는 커널과 GUI환경이 분리되어 GUI 환경이 별도로 관리되고 있어 필요에 따라 선택하여 사용할 수 있다.

출처 : 따라학잇, 나무위키