0부터 시작하는 Linux 공부 - Linux의 시작

Jaehong Lee·2022년 7월 18일
1
post-thumbnail

1. Linux의 시작

  • Linux는 리누스 토발쯔가 개발한 커널
  • UNIX ( 기업용 ) -> Multi User , Multi Tasking 환경 제공
    • Multi User : 여러 사용자가 동시에 하나의 시스템 접근
    • Multi Tasking : 여러 개의 태스크를 동시에 실행하고, 교대로 컴퓨터의 자원을 사용할 수 있는 기능 (가상 터미널 지원)
  • KVM은 범용 CPU를 사용하며, IBM PowerKVM의 경우 범용 CPU가 아닌 POWER 칩셋을 사용한다
  • 리누스 토발쯔는 리눅스 커널 0.1을 만들고, 0.2 버전을 인터넷에 공개했다
    • 커널은 코드로 구현되어 있다. 사용자가 커널을 직접 제어하는 것은 쉽지 않은 일이다. 따라서, 사용자는 SHELL을 통해 명령어로 커널을 제어한다
      • SHELL 이란? 리눅스의 핵심인 커널과 사용자를 연결해주는 인터페이스

    • 애플리케이션을 통해 SHELL에 명령어가 실행되면, 커널은 해당 명령어를 통해 요청한 기능에 대한 코드가 자신에게 존재하는지 확인한다. 만약, 기능에 대한 코드가 없다면, 없다고 알려주고, 있다면, 물리자원에 접근하여 요청한 기능을 실행한다
    • 이처럼, OS 에서 사용하는 애플리케이션, 툴, 서비스 등은 커널의 허락이 있어야 물리자원에 접근이 가능하고, 해당 서비스를 실행, 중지 시킬 수 있다

  • uname -a로 시스템에 대한 상세 정보를 출력한다
    • 우리가 사용하는 Linux의 이름은 websrv이며, 커널 버전은 3.10.0 이다. 만약, 커널이 다수 설치되 있다면, 부팅시 사용할 커널을 선택할 수 있다
    • x86 은 일반적인 범용 CPU ( x86 칩셋 )

엄밀한 의미에서의 리눅스는 커널이다. 허나, 보편적인 의미에서의 리눅스는 배포판 리눅스다

  • 배포판 리눅스는 리눅스 커널을 중심으로 여러 시스템 소프트웨어 및 응용 소프트웨어를 같이 묶어서 구성한 운영 체제 ( 커널 + SHELL + APP )
  • 이러한 배포판 리눅스를 수정 및 발전시켜 새로운 배포판 리눅스를 만들기도 한다
  • 배포판 리눅스 계열
    • Debian 계열 -> Ubuntu ( 컨테이너 / K8S )
    • Red Hat 계열 -> RHEL ( 기업용, 패치/기술지원/업데이트 등에 대한 비용을 과금 )
    • Red Hat 계열 -> CentOS ( Red Hat 계열의 리눅스로 Red Hat의 특징을 상속받고 있으며, RHEL과 비슷한 환경을 구성할 수 있다. 단, RHEL은 유료, CentOS는 무료로 RHEL과 비교했을때, 안되는 기능들이 있다 ) ( 클라우드 / 관리 IaC )
    • 정부에서는 Red Hat 계열을 주로 사용하고 있다

2. 클라우드에서의 Linux

2.1 플로피 디스크에서 데이터 센터 까지

  • 과거에는 플로피 디스크와 같은 저장 매체로 DATA를 옮겼다
  • 허나, 컴퓨터가 늘어날 수록 이 방식에는 한계가 있다. 그 다음에는 랜카드를 추가하여, 컴퓨터 간 통신으로 서로 DATA를 공유했다. 이는 Point to Point 네트워크로 두개의 단말을 1:1로 연결한 형태다
  • 후에, HUB / BRIDGE를 통해 MULTI-ACCESS를 가능하게 했다. 이는 허브를 이용하여 여러개의 단말을 연결하는 형태다
  • 다음에는, 서버를 추가해서 DATA를 클라이언트가 가지고 있는 것이 아닌, 서버에 저장해서 공유하게 했고, 이를 이용해 인터넷이 등장했다
  • 사용자가 서버를 두고 사용하기에는 공간, 전기, 관리의 문제가 있었다. 이를 해결하기 위해, 서버를 대신 관리해주는 데이터 센터가 등장했다

2.2 데이터 센터의 등장

  • UNIX를 사용한다
  • 데이터 센터에서는 가상화 기술을 이용해 공간을 절약하는 기능이 있는 가상화가 가능한 UNIX 칩셋이 들어있는 고가의 서버가 필요하다. 따라서 x86과 같은 칩셋은 외면을 받았다. 이러한 x86 칩셋은 BareMetal을 통해 가상화를 지원했다
    • BareMetal이란 ? 하드웨어 상에 어떤 소프트웨어도 설치되어 있지 않은 상태를 뜻한다. 즉, BareMetal 서버는 가상화를 위한 하이퍼바이저 OS ( 호스트 OS ) 없이 하이퍼 바이저 ( 가상화 관리 소프트웨어 ) 를 물리 서버 위에 직접 설치하여 제공하는 기술로, 호스트 OS를 거치지 않고 물리 자원과 직접 통신하는 가상화를 구성하는 운영체제를 설치하는 기술이다. 따라서 하드웨어에 대한 직접 제어 및 OS 설정까지 가능
  • 이처럼 UNIX는 오래전부터 가상화를 지원했다

2.3 VMware 등장

  • AMD와 INTEL과 같은 x86 칩셋에서 가상화가 쉽게 가능한 VMware가 등장했다
  • 이를 통해 x86 칩셋들도 클라우드 시장에 들어가기 시작했다

2.4 가상화와 클라우드의 시작

  • 데이터 센터에서 공간, 전기 문제를 해결하기 위해 사용한다
  • 하이퍼 바이저를 통해 다수의 가상 머신을 만들어, 하나의 물리 서버에 다수의 가상 서버를 둘 수 있게 하였고, 가상 서버 끼리 Migration도 가능하게 했다
  • 이때, 이 물리 서버의 남는 공간을 외부에 판매한다는 개념에서 클라우드가 시작됬다

2.5 클라우드에서의 리눅스

  • 클라우드 환경을 위한 다양한 도구들은 독립적으로 동작해서는 큰 효과를 볼 수 없다. 다른 도구들과의 연계를 통해 효과를 극대화할 수 있다. 이를 위해서는 서로간의 호환 문제가 해결되어야 하는데, 이를 리눅스 상에서 해결할 수 있다. 리눅스는 오픈소스이기 때문이다

2.6 배포판 리눅스

  • 배포판 리눅스는 모두 다른가? 대부분 비슷하나 파일 시스템의 구조는 다르다
    • ONOS : 클라우드 및 5G 환경에서의 SDN ( Software Defined Network ) 를 위한 리눅스
    • 칼리 리눅스 : Debian 계열의 모의 침투 테스트를 위한 리눅스
  • 대부분의 리눅스에서는 현재 BASH와 같은 SHELL을 사용하고 있으므로, 명령어는 큰 틀에서 비슷하다
profile
멋진 엔지니어가 될 때까지

0개의 댓글