1. 리눅스의 철학

1. GNU(GNU’s Not Unix)

-유닉스와 호환이 되도록 만든 OS이지만 유닉스와는 다른 OS

-SW를 자유롭게 사용하는 것이 목적

 

2.FSF(Free Software Foundation)와 자유 소프트웨어

-자유 소프트웨어 : 사용자가 소프트웨어르 실행, 학습,개작프로그램재배포, 향상시킬 자유가 보장되어야함

 

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

 

4. 주요라이센스

(1) GPL(General Public License)(GNU GPL에서 다섯가지의 의무를 저작권의 한 부분으로 강제함)

-컴퓨터 프로그램은 법으로 제한하지 않는 한 어떤 목적으로든지 사용할 수 있다

-컴퓨터 프로그램의실행 복사본은 언제나 프로그램 소스코드와 함께 배포해야 한다.

-컴퓨터 프로그램의 소스코드를 용도에 따라 변경 가능하다

-변경된 컴퓨터 프로그램도 소스코드를 공개해야 한다

-변경된 컴퓨터 프로그램 역시 똑 같은 라이선스인 GPL라이선스를 적용해야한다

 

(2)LGPL(Library/ Lesser General Public License)

-SW라이브러리에 관한 라이선스

-소스 코드 수정시 2차적 파생물 저작권에 해당되므로 라이브러리의 소스코드 또한 제공해야한다

-LGPLGPL로 변경 가능 하지만 역은 불가능 하다

 

(3)BSD(Berkely Software Distribution)

-2차 파생물 원시 소스코드 비공개 가능

-소스코드를 공개하지 않는 상용 sw에서 사용

 

(4)아파치 라이선스

-수정된 소스코드 비공개 가능 하지만 재배포시 아파치 sw재단에서 개발된 것을 발혀야함

 

(5)MPL(Mozilla Public License)라이선스

-MPL소스코드 수정시 코드 공개 필수 이지만 MPL+다른 소스코드일 경우 다른 소스코드를 공개 안해도된다

 

(6)MIT라이센스

-저작권 관련명시 하면 소스코드 비공개 가능

라이선스명

무료이용

배포

소스코드

취득 및 수정

2차 저작물

소스코드공개

특정 SW

와 결합

GPL

O

O

O

공개

X

LGPL

O

O

O

공개

O

BSD

O

O

O

비공개가능

O

Apache

O

O

O

비공개가능

O

MPL

O

O

O

공개

O

MIT

O

O

O

비공개가능

O

 

2.리눅스의 역사

1. 커널

-운영체제의 핵심

-시스템이 부팅될 때 로드되는데, 주된 역할은 시스템의 하드웨어 제어

Ex) 3.8.10

ð  3 -> 주버전: 커널의 큰변화시 증가

ð  8-> 부버전:작은 기능상의 변화나 추가된경우(짝수 : 안정 버전/ 홀수: 개발버전)

ð  10 -> 패치레벨: 버그가 수정되고 새로운 기능의 계획 추가 시 증가

 

2. 리눅스 배포판

-리눅스 커널 이외의 핵심적인 부분을 GNU정신을 바탕으로 만들어진 다양한 자유 소프트웨어와 공개 프로그램을 모아 하나의 운영체제로 만든 것이다

-패키지 관리 기법의 종류

-> 슬랙웨어 : 소프트웨어를 최상단에서 최대한 수정되어 배포되는 형식으로 사용자들이 내장된 프로그램을 사용하기에는 편리하나 패키지를 새롭게 적용하거나 수정하기는 힘들다.

                      그래픽 기반의 설치 절차가 없고, 소프트웨어 패키지의 의존성도 자동으로 해결해주지 않는다, 또한 모둔 설정이나 관리를 편집기를 이용해 텍스트 파일을 직접 수정하는 형태로 이루어 져있다

->데미안 : 데미안과 슬릭웨어는 sls기반으로 만들어 졌으나, 이 배포판의 차이점은 패키지에 있다 슬랙웨어는 사용자가 패키지를 새롭게 추가하거나 수정하기 어려운반면 데비안은 ㅍㅐ키지 설치 및 업그레이드 등 패키지 관리가 매우편하다

-> 레드햇: 현재 가장 인기 있는 리눅스 배포한이다.

           쉬운 설치와 독자적인 패키지 관리가 있다. 레드햇 리눅스의 설치과정은 텍스트 기반의 이넡페이스 뿐만 아니라 그래픽 사용자 인터페이스를 제공하여 초보자들도 쉽게 설치할수 있다. 또한 RPM(Red hat Package Management)YUM(YYellowdog Updater, Modified)라는 패키지 관리 도구를 제공해 손쉽게 설치, 관리, 업그레이드를 할수 있다.

-수세

-우분투

 

3. 리눅스 클러스터링(Linux Clustering)

-클러스터: 무리, 송이 또는 한 덩어리 라는 뜻으로 컴퓨터 데이터 통신 분야에서는 단말 제어 장치와 그에 접속된 복수 단말의 총칭을 말한다.

           여러대의 컴퓨터를 연결하여 하나의 컴퓨터를 사용하는 것처럼 구성된 시스템을 말한다.

-사용목적

(1)고계산용 클러스터(HPC)

-> 고성능의 계산 능력을 제공하기 위한 목적으로 제작되는데 주로 과학계산용으로 활용된다(슈퍼컴퓨터)

-> 병렬처리용 슈퍼컴퓨터의 개발에서 시작됨

->  switch/hub =>node1

                      =>node2

                      =>node3

-> 하나의 작업을 3개의 노드를 이동하여 수행

(2)부하분산 클러스터

-> 대규모의 서비스를 제공하기 위한 목적으로 사용되는 클러스터 기법(이용자가 많은 웹서비스이용시 활용가치가 높다)

-> 여러대의 리얼 서버에 부하를 분산해 주는 로드 밸런서를 두고 운영하는 방법

-> user => load balancer =>real server

                                 =>real server

                                 =>real server

(3)고가용성 클러스터(HA)

-> 지속적인 서비스 제공을 목적으로 하는 클러스터로 위에 열거된 부하분산클러스터와 연동하여 많이 사용된다

-> 부하분산 클러스터에서 로드 밸런서에 오류가 발생해 동작하지 않으면 리얼 서버가 정상적인 동작을 하더라도 서비스를 제공하지 못한다. 이를 해결하기위해 primary node가 부하분산의 처리를 수행하고 다른 하나의 backup nodeprimary node의 상태를 체크하고 있다가 이상이 발생하면 서비스를 이어받도록 구상됨

-> user => primary => backup node

           =>=>=>=>=> backup node

(backup nodeprimary node상태를 체크하다가 primary node 이상시 서비스를 이어받음)

 

4. 임베디드 시스템

-마이크로컨트롤러, 마이크로프로세서, DSP(Digital Signal Processor)등을 내장하여 특정 기능을 반복적으로 수행하기 위해 하드웨어와 소프트웨어를 결합하여 만든 전자제어 시스템

-장점

-> 별도의  로열티나 라이선스 비용이없다

-> 리눅스를 사용한지 오래되었고, 커널이 안정적이다

-> 관련 소프트웨어 개발 및 지운하는 업체가 많이 존재한다

-> 소스가 공개되어 있어, 변경하고 재배포가 용이하다

-단점

->커널과 루트 파일 시스템등에 상대적으로 많은 메모리를 차지한다

-> 사용자 모드와 커널 모드 메모리 접근이 복잡하다

-> 디바이스 드라이버 프레임 워크가 복잡하다   

  

5. 클라우드 컴퓨팅

-사용자가 필요한 작업을 제시하면, 여기에 필요한 컴퓨팅 자원이 할당되어 작업하고 결과를 얻도록 해주는 것

-서로 다른 물리적인 위치에 존재하는 컴퓨팅 자원을 가상화 기술로 통합하여 제공하는 기술 개념을 말하낟

- 인터넷을 이용한 IT자원의 주문형 아웃소싱 서비스로 서버에 개별적으로 저장해 둔 프로그램이나 문서를 인터넷 접속이 가능한 곳이라면 다양한 단말을 통해 웹 브라우저등 필요한 응용 소프트웨어를 구동하여 작업을 가능케 하는 이용자 중심의 컴퓨팅 환경을 말한다

-서비스 종류

(1) Iaas(Infrastructure as a Service) : 업무처리에 필요한 서버, 데스크톱 컴퓨터, 스토리지 같은 IT하드웨어 자원을 클라우드 서비스로 빌려 쓰는 형태

(2)PaaS(Platform as a Service): 업무에 필요한 소프트웨어를 개발할수 있는 환경을 클라우드에서 제공받는다

(3)Saas(Software as a Service): 기업에서 사용하는 소프트웨어를 통째로 클라우드 서비스 사업자에게 빌려 쓰는 개념

 

6. 빅데이터

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

-빅데이터 분석기술: 데이터마이닝, 기계학습, 자연어 처리, 패턴인식

 

7. 사물인터넷

- 생활속 사물들을 유무선 네트워크로 연결해 정보를 공유하는 환경

- 사물인터넷 플랫폼

-> 사물간에 인터넷을 할 수 있는 물적 기반인 통신네트워크가 원활하게 작동하도록 하는 운영체제를 말함

(플랫폼 : 서로 이해관계와 관점이 다른 이들 간에 복잡도를 추상화하고, 일관된 인터페이스를 제공함으로써 서비스제공이용이하고, 서비스 활용이 용이하도록 기능을 제공하는 것)

->운용플랫폼 : 디바이스가 제공하는 HW자원과 HW자원기능을 이용하는 디바이스 응용간의 플랫폼 ex) iOS, Windows, Linux, Android

->독립적 사물인터넷 플랫폼: 사용자가 센서 혹은 구동기 등을 추가하여 새로은 사물 프로토타입을 만들수 있는 HWSW를 제공하는 오픈소스 하드웨어 플랫폼 ex)라즈베리파이, 아두이노

->사물 연결 플랫폼: 디바이스와 디바이스 간 연결을 통한 서비스 제공 측면에서 디바이스들이 서비스제공자들이고 다른 디바이스의 기능을 이용하는 디바이스 응용이 사용자가 된다,

-> 다양한 응용 서비스의 용이한 생성 및 실행을 지원하는 플랫폼

-> 디바이스로부터 획득되는 엄청난 양의 데이터를 수집/저장/분석한 결과를 이용하는 응용 서비스 입장에서는 다양한 정보가 데이터 제공자가되며, 분석 결과를 이용하는 응용 서비스가 사용자가됨

1.운영체제

-컴퓨터 HW와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 SW로 사용자가 프로그램을 수행할 수있는 환경을 제공

-좁은의미: HW와 응용 프로그램간의 다리역할을 하는 커널

-넓은의미: 커널, 미들웨어, 응용프로그램 실행환경과 사용자 인터페이스 프레임 워크를 포괄하여 정의

-역할

-> 컴퓨터 HW제어

->작업순서결정 및 입출력제어

-> 프로그램 실행제어 및 데이터와 파일의 저장을 관리,

->사용자들 간의 HW자원을 공유할 수 있도록한다

->시스템자원을 시케줄링하여 효율적으로 활용할수 있게함

->입출력을 쉽게하는 기능을 제공

->응용프로그램 작성 및 실행을 편리하게 제공

->오류 발생을 막고 복구를 지원

->데이터의 조직화 및 네트워크 통신 처리기능 수행

->편리한 사용자 인터페이스를 제공

-특징

->다중사용자 시스템

->다중작업 시스템

->강력한 네트워크 지원

-> 편리한 사용자 인터페이스 지원

->계층적파일 시스템 지원

-> 가상메모리 지원

-> 고성능 프로세스의 최적화

-> 개방형 운영체제화

->뛰어난 이식성지원

-> 가상화지원

2.운영체제의 종류

1.서버 및 데스크톱 OS

-유닉스 : 다중사용자, 다중작업 지원, 강력한 네트워크 지원, 뛰어난 이식성과 확장성지원, 계층적 파일구조, 가상메모리 및 공유 라이브러리 지원

-윈도 : 멀티테스킹을 지원하는 GUI기반 OS

-Max OS X : BSD유닉스 기반으로 만든 넥스트스텝을 확장하여 만듦

2.리눅스 기반 모바일 OS

-타이젠, 모블린, 미고, 라모, 구글의 안드로이드, 바다 OS, 마에오, 모블린

3.스마트 TV

-TV와 인터넷을 연결하는 일종의 인터페이스 허브

4.IVI(In-Vehicle Infotainment =ICE(In-Car Entertainment))

-자동차내에서 CD,DVD등 재생과 오디오,비디오등을 제공하는 HW장치의 모음

-종류와 특징

(1)MSWindows Imbedded Automotive

           Windows CE r기반으로 만든 것으로 자동차에 내장되어 있는 컴퓨터 System을 위한 OS

(2)QNS

유닉스형태의 RTOX(Real-Time Operation System)으로 임베디드 시스템에 내장되어있는 OS

(3)GENIVI

           공개형 리눅스 OS기반의 표준화된 자동차형 IVI플랫폼을 만들기위해 설립한 비영리조직

(4)안드로이드

           모바일기기에 탑재되어 있는 안드로이드가 IVI에 진출

(5)MeeGo/ TizenIVI

5. 웹운영체제

-웹브라우저를 기반으로 동작하는 가상의 운영체제

-사용자는 별도의 OS설치과정없이 최소크기의 커널 위에서 동작하는 웹브라우저를 통해 서비스제공자 웹사이트에 접속하여 다양한 서비스를 이용하는 형태

-EX) 크롬 OS

           ->동일한 작업현경을 어디에서나 사용가능(모든 데이터가 구글 서버에 저장됨)

-> 네트워크가 지원되는 환경에서 빠르게 이용가능(부팅 프로세스의 불필요한 부팅은 버리고 빠른 부팅시간 제공)

->크롭웹스토어로 일부만 다운 받아 사용가능

-> 높은 보안성 제공

6. 리눅스의 특징

(1)다중사용자 및 다중 처리 시스템

-하나의 시스템에 다수의 사용자들이 동시에 접속하여 사용가능

-각 접속자들은 다수의 응용프로그램을 실행할 수있다

(2) 완전히 공개된 시스템

-커널 뿐만 아니라 같이 내장되어 배포되는 응용 프로그램 소스 공개됨

(3) 뛰어난 네트워크 환경

-다양한  네트워크와 네트워크 프로토콜 지원

(4) 다양한 파일 시스템 지원

(5) 뛰어난 이식성

- 어셈블러와 C언어로 작성되어 C컴파일 가능하면 어셈블러 부분만 새롭게 만들고 C를 다시 컴파일하여 이식

(6) 유연성과 확장성

- 리눅스는 커널소스가 공개되어 다양한 채널을 통해 다양한 하드웨어 관련 지원을 받을 수 있다

(7) 뛰어난 안정성과 보안성

-오류 수정 과 보안 관련 패치가 다양하다

(8) 우수한 가격대 성능비

(9) 다양한 배포판이 존재

7. 리눅스의 기술형 특징

(1)계층적인 파일 구조

(2)장치의 파일화

-특정 하드웨어에게 명령을 수행하려면 해당하는 장치 파일에 명령을 내리면됨

(3)가상메모리 사용(=swap영역사용)

-하드디스크의 일부를 메모리 처럼 사용

-swap “free”-스왑확인

(4) 동적라이브러리 지원

(5) 가상콘솔

-하나의 모니터에 장착한 시스템에 여러 가상화면제공

-“CTRL+ALT+F1~6“

-“[SHIFT]+[PAGEUP]”,[SHIFT]+[PAGEUP]” : 가상 콘솔 사용시 지나간 작업 보기

(6) 파이프

-어떤 프로세스의 표준 출력이 다른 프로세스의 표준 입력으로 쓰이게 하는 것

(7)라다이렉션

-어떤 프로세스의 입/출력을 표준 입출력이 아닌 다른 입출력으로 변경시 사용

+ Recent posts