hoon's bLog

리눅스 실무의 이해 | 리눅스의 개요 2 본문

IT/Linux Master 1급

리눅스 실무의 이해 | 리눅스의 개요 2

개발한기발자 2021. 8. 9. 00:27
반응형

1. 리눅스의 철학

 1). 리눅스의 철학

  • 처음 개발자인 리누스 토발즈의 주도하에 개발이 진행됨.

 

 2). GNU

  • GNU's Not Unix
  • 리처드 스톨먼을 주축으로 자유로운 스프트웨어를 희망하던 공동체들이 가장 먼저 유닉스를 모태로 개발을 시작.
  • gcc, emacs, GNOME, GNU tar, bash, GRUB 등과 같은 다양한 분야의 응용 프로그램 만듬
  • FSF(Free Software Foundation) : 자유소프트웨어의 생산, 보급, 발전시키기 위해 리처드 스톨만이 세운 비영리 조직

 

 3). 자유 소프트웨어

  • 프로그램을 실행시킬 수 있는 자유
  • 프로그램이 어떻게 동작하는 지 학습하고, 필요에 따라서 프로그램을 개작할 수 있는 자유
  • 무료 또는 유로로 프로그램을 재배포할 수 있는 자유
  • 프로그램을 개선시킬 수 있는 자유와 개선된 이점을 공동체 전체가 누릴 수 있도록 발표할 수 있는 자유

 

2. 주요 라이선스

 1). 카피레프트(Copyleft)와 GNU GPL(General Public License)

  • Copyright 반대를 뜻함
  • 소프트웨어를 개인의 소유로 사유화시키는 대신 자유로운 상태로 유지시키는 수단으로 삼는 것
  • 개작과 배포에 대한 권리 또한 모든 사람에게 허용
  • GNU GPL은 GNU 소프트웨어에서 가피레프트를 실제로 구현한 라이선스

 

 2). GPL(General Public License)

  • 프로그램을 어떠한 목적으로든지 사용 가증 다만 법으로 제한하는 행위는 할 수 없다.
  • 프로그램의 소스 코드와 함께 발매하거나 소스 코드를 무료로 배포해야 함
  • 소스 코드를 용도에 따라 변경 가능
  • 변경된 소스 코드를 반드 시 공개 배포
  • 변경된 프로그갬 역시 반드시 똑같은 라이선스인 GPL 적용

 

 3). LGPL(Library/Lesser General Public License)

  • 소프트웨어 라이브러리에 주로 쓰임
  • GPL과 다른점은 LGPL이 적용된 라이브러리는 자유 소프트웨어뿐만 아니라 독점 소프트웨어에서도 사용 가능하다는 점.
  • LGPL에서 GPL 변경 가능. 반대는 안됨.

 

 4). BSD(Berkeley SOftware Distribution) 라이선스

  • 버클리의 캘리포니아 대학에서 배포하는 공개소프트웨어 라이선스
  • 누구나 개작가능, 수정한 것을 제한 없이 배포 가능
  • 2차적 파생물에 대한 원시 소스 코드의 비공개를 허용. 즉, 소스 코드를 공개하지 않는 상용 소프트웨어에서 사용 가능

 

 5). 아파치 라이선스

  • 아파치 소프트웨어 재단
  • 부분 혹은 전체를 개인적 또는 상업적 목적으로 이용할 수 있음
  • 재배포 시에도 소스 코드 또는 수정한 소스 코드를 포함하여 반드시 공개할 필요 없음
  • 재배포할 경우 아파치 라이선스 2.0을 포함, 아파치 소프트웨어 재단에서 개발된 소프트웨어임을 명확히 밝혀야 함.
  • Apache HTTP Server, Hadoop, Hbase, Tomcat

 

 6). MPL(Mozilla Public License) 라이선스

  • 모질라 재단에서 규정한 라이선스
  • 수정 시 소스 코드 공개 필수, 다른 코드 결합해서 만든 프로그램의 경우에는 MPL 코드를 제외한 다른 소스 코드는 공개하지 않아도 됨.
  • Firefox, 스위트, 선더버드

 7). MIT(Massachusetts Instfitute of Technology) 라이선스

  • BSD 라이선스를 기초로 작성
  • 해당 소프트웨어를 누구나 개작할 수 있고, 수정본의 재배포 시에 소스 코드 비공개가 가능.
  • X Window System, JQuery, Node.js, Ruby on Rails

 

3. 리눅스의 역사

 1). 리눅스의 계보

  • 최초의 리눅스 배포판, 피터 맥도널드에 의해 만들어진 소프트랜딩 리눅스(SLS) 시스템
  • 버그를 잡아서 패트릭 볼커딩이 슬랙웨어
  • 이안 머독에 의해 데비안 프로젝트 등장

 

 2). 리눅스 배포판의 분류(패키지 관리 기법에 따라 밑의 3개로 나뉨)

슬랙웨어

  • 최상단에서 최대한 수정되어 배포되는 형식
  • 프로그램 사용하기는 편리하나 패키지를 새롭게 적용하거나 수정하기는 힘듬
  • SuSE, Porteus, Vector Linux, Salix OS 등

데비안

  • dpkg, apt라는 독자적인 패키지 관리 도구를 사용
  • Knoppix, Corel, Lindows, Ubuntu, Linux Mint, Elementary OS 등
  • 해킹과 관련된 도구와 설명서 등을 내장한 백트랙과 칼리도 이 계열

레드헷

  • RPM, YUMdlfksms vozlwl rhksfl ehrnfmf wprhd.
  • RHEL, CentOS, Fedora, Oracle Linux, Scientific Linux, Asianux, Mandriva Linux, Mandrake 등

새로운 계파의 리더

  • 수세와 우분투가 리더 역할
  • 수세는 YaST, ZYpp이라는 독자적인 패키지 관리 도구를 사용.
  • 우분투는 dpkg, apt 사용
  • GNOME 기반의 그래픽 셸인 유니티를 제공

 

 3). 주요 리눅스 배포판의 특징

슬랙웨어

  • 패트릭 볼커딩에 의해 만들어진 리눅스 배포판
  • 사용자가 패키지를 새롭게 적용하거나 수정하기 힘듬
  • 그래픽 기반의 설치 절차가 없고, 소프트웨어 패키지의 의존성도 자동으로 해결해주지 않음

데비안

  • GNU GPL 라이선스 기반하에 있음.
  • 이안 머독이 설립
  • 패키지 설치 및 업그레이드 등 패키지 관리가 매우 편리
  • dpkg, apt 패키지 관리 도구를 사용

레드헷

  • 마크 유잉이 만들고 밥 영이 인수
  • 쉬운 설치와 독자적인 패키지 관리
  • RPM, YUM 패키지 관리 도구
  • RHEL이라느 유로 배포판과 fedora라는 오픈 소스 프로젝트
  • 클라우드 컴퓨팅 및 빅데이터의 인프라 전역으로 사업 영역을 넓힘

수세

  • 소프트웨어 및 시스템 개발이라는 뜻의 독일어
  • 대부분은 Jurix 배포판을 기반으로 만듬
  • YaST라는 유틸리티를 제공

우분투

  • 영국 회사인 캐노니컬의 CEO 마크 셔틀워스가 시작
  • 네가 있으니 내가 있다라는 의미. 다른 사람을 위한 인간애로 해석
  • GNOME 데스크토 ㅂ환경 기반의 그래픽 셸인 유니티를 사용

 

 4). 리눅스 활용 분야

리눅스 클러스터링

  • 사전적인 의미는 무리, 송이 또는 한 덩어리라는 뜻
  • 데이터 통신 분야에서는 단말 제어 장치와 그에 접속된 복수 단말의 총칭
  • 서버 분야에서의 클러스터는 여러 대의 컴퓨터를 연결하여 하나의 컴퓨터를 사용하는 것처럼 구성된 시스템을 말함

고계산용 클러스터(HPC)

  • 고성능의 계산 능력을 제공하기 위한 목적. 주로 과학계산용. 슈퍼컴퓨터
  • 베어울프 클러스터

부하분산 클러스터(LVS; Linux Virtual Server Cluster)

  • 대규모의 서비스를 제공하기 위한 목적
  • 웹서비스에서 활용
  • 로드 밸런서를 두고 운영

고가용성 클러스터(High Availability Cluster)

  • 지속적인 서비스 제공을 목적으로 하는 클러스터
  • 하나의 Primary Node가 부하분산의 처리를 수행하고 다른 하나의 Backup Node가 Primary Node의 상태를 체크하고 있다가 이상이 발생하면 서비스를 이어 받도록 구성하는 방법

 

 5). 임베디드 시스템

  • 마이크로컨트롤러, 마이크로프로세서, DSP(Digital Signal Processor) 등을 내장하여 특정한 기능을 반복적으로 수행하기 위해 하드웨어와 소프트웨어를 결합하여 만든 전자 제어 시스템
  • 규모가 작고 단순한 시스템에 사용되어 보통 운영체제를 포함하지 않음
  • 임베디드 리눅스란 임베디드 컴퓨터 시스템에서 리눅스를 이용하는 것

 

 6). 클라우드 컴퓨팅

클라우드 컴퓨팅의 정의

  • 사용자가 필요한 작업을 제시하면, 여기에 필요한 컴퓨팅 자원이 할당되어 작업하고 결과를 얻도록 해주는 것.
  • 기존의 그리드 컴퓨팅, 분산 컴퓨팅, 유틸리티 컴퓨팅, 웹 서비스, 서버 및 스토리지 가상화 기술과 소프트웨어 등 기존의 기반 기술들을 융합하여 하나의 커다란 구름과 같은 컴퓨팅 환경을 만드는 기술.

 

클라우드 컴퓨팅에서 제공하는 서비스

  • IaaS : 업무 처리에 필요한 서버, 데스크톱 컴퓨터, 스토리지 같은 IT 하드웨어 자원을 클라우드 서비스로 빌려 쓰는 형태
  • PaaS : 업무에 필요한 소프트웨어를 개발할 수 있는 환경을 클라우드에서 제공
  • SaaS : 기업에서 사용하는 소프트웨어를 통째로 클라우드 서비스 사업자에게 빌려 쓰는 개념

 

 7). 빅데이터

빅 데이터의 정의

기존의 데이터베이스 관리도구로 데이터를 수집, 저장, 관리, 분석할 수 있는 역량을 넘어서 대량의 정형 또는 비정형 데이터 집합 및 이러한 데이터로부터 가치를 추출하고 결과를 분석하는 기술

빅 데이터의 관련 기술

  • 인프라는 하둡
  • NoSQL 기술 활용
  • R

 

 8). 사물 인터넷(IoT: Internet of Things)

사물 인터넷의 정의 : 생활 속 사물들을 유무선 네트워크로 연결해 정보를 공유하는 환경, 사물 인터넷 플랫폼

  • 사물 간에 인터넷을 할 수 있는 물적 기반인 통신 네트워크가 원활하게 작동하도록 하는 운영체제
  • 디바이스 운영체제 : 디바이스가 제공한느 하드웨어 자원과 하드웨어 자원 기능을 이용하는 디바이스 응용 간의 운용 플랫폼
  • 아두이노, 라즈베리파이와 같은 오픈소스 하드웨어 플랫폼
  • 사물들 간 연결을 지원하고, 사물을 검색하고, 접근하여 응용 서비스가 필요로 하는 서비스를 제공하는 사물 연결 플랫폼(MQTT, ETSI M2M, oneM2M, AllJoyn)
  • 대규모 분산 데이터 저장/검색/분석 플랫폼
  • 다양한 매시업을 지원하는 플랫폼
  • 서비스 배포를 지원함으로써 사물인터넷 응용 서비스 개발자와 응용 서비스 사용자 간에 존재하는 앱스토어와 같은 응용 서비스 생태계 플랫폼
728x90
반응형