UNIX 의 특징
대부분 C 언어로 개발되었음 다중 사용자, 다중 작업을 지원하는 신뢰성 높은 운영체제 뛰어난 이식성, 강력학 네트워킹, 셸 스크립트, 파이프라인, 명령행 기반 인터페이스, 모듈화된 설계
UNIX 와 Linux
리눅스는 유닉스의 무료 공개 버전으로 PC용 운영체제로 개발되었다
UNIX 발전사 1
최초의 UNIX
- Multics: 1969년 어셈블리어로 작성된 최초의 시분할 운영체제
- Unics -> Unix: Multics 를 작고 심플한 운영체제로 다시 작성 (1973년 어셈블리어로 작성된 대부분을 C 언어를 개발하여 다시 작성함)
대표적인 UNIX 시스템
- BSD 계열: Free BSD, SunOS, GNU/Linux (자유롭고 공개된 방식)
- System V 계열: HP-UX, AIX(IBM), Solaris(Oracle) (상용화를 위한 방식)
리누스 토발즈가 리눅스 커널 (리눅스의 코어) 를 만들었고 GNU 프로젝트에서의 소프트웨어들과 합쳐져 Linux 가 완성 됨
리눅스의 등장
1983년 GNU 프로젝트
리처드 스톨만이 UNIX 와 유사한 공개 운영체제를 개발하기 위해 시작 소프트웨어 상업화에 반대하고 소스코드 공유 자유로운 사용과 배포를 주장 1985년 GNU 선언문 발표 1989년 GPL 을 발표 (카피 레프트) 현재 FSF (Free Software Foundation) -> OSS 라는 이름으로 활동
1991년 리눅스 커널
리누스 토발즈가 리눅스 커널을 작성하여 발표 커널은 하드웨어를 제어하고 응용프로그램과의 상호작용을 제공하는 운영체제의 핵심 리누스와 유닉스를 합쳐 Linux 라고 명명
1992 년 최초 리눅스 배포판인 MCC 발표
보통 리눅스라 함은 리눅스 커널을 사용한 운영체제 (리눅스 배포판)를 의미함
1998년
IBM 과 Oracle 이 리눅스 지원을 발표
리눅스 발전상
유수의 도메인중 95% 이상 리눅스 사용 스마트폰 70% 이상 안드로이드에서 동작 수퍼 컴퓨터의 95% 가 리눅스에서 운영됨
리눅스의 특징
다중 사용자, 다중 작업 뛰어난 이식성 모듈화 CUI 와 GUI 모두 지원 공개된 소스코드 여러 종류의 파일 시스템 지원 효율적 하드웨어 활용 다양한 응용 프로그램과 소프트웨어 개발 환경을 제공
오픈소스와 라이선스
OSS (오픈소스 소프트웨어)
개발자가 소스코드를 공개하여 누구나 사용, 수정, 공유할 수 있도록 허가한 소프트웨어 반대 개념은 proprietary(closed) 소프트웨어 라고 함
소프트웨어 라이선스
컴퓨터 프로그램은 지식 재산권으로 보호받는 저작물 원칙적으로 저작자가 공표, 복제, 배포, 개작할 권한을 가짐 (역공학으로 소스코드를 캐내는 것 또한 금지) 타인에게 일정한 대가나 조건을 전제로 권한을 부여할 수 있음 (라이선스) OSS도 보호받는 저작물이며 OSS 라이선스가 있음
오픈소스의 장점
누구나 잘못된 점을 발견, 고칠 수 있음 배울 수 있고, 개발에 효율적 참여 가능 여러 사람에 의해 테스트되어 안전함 오픈소스 운동 철학은 커뮤니티를 통한 협력, 공유, 개방이 발전을 위해 효울적이라는 것
GNU 프로젝트와 자유 소프트웨어 운동
목적에 상관없이 프로그램을 실행할 수 있는 자유 프로그램을 복제하고 공유할 수 있는 자유 소스코드를 개작할 수 있는 자유 개작된 프로그램을 배포할 수 있는 자유 (소스코드 공개)
리눅스의 라이선스
리눅스는 독점되거나 배타되지 않는 자유 소프트웨어 (자유롭개 고치고 배포 가능) 주로 GPL (진정한 의미의 copy left) 을 따름, 일부는 LGPL X Window 는 MIT 라이선스
GNU GPL
자유롭게 사용, 복제, 배포 필요에 따라 자유롭게 수정, 배포 수정하여 배포하는 경우 소스코드를 공개 수정된 소프트웨어에 저작권자 표시 후 똑같이 GPL 조건으로 배포한다
다양한 오픈소스 소프트웨어 라이선스
GPL, LGPL, MPL
소스코드를 공개해야하는 카피레프트 라이선스 (코드를 공개해야 함) LGPL 은 주로 오픈소스 라이브러리에 적용됨 MPL 코드와 결합하여 프로그램 작성 시 MPL 코드를 포함하지 않은 파일은 공개 의무가 없음 소스코드의 공개 범위는 다르게 정의됨 (전체, 파일, 모듈 단위 등)
BSD, Apache, MIT 라이선스
배포 시 소스코드의 비공개가 허용됨 Permissive 라이선스라고 부른다 코드의 재사용을 높이려는 목적
리눅스 배포판
리눅스 배포판의 역사
리눅스 배포판은 리눅스 커널 외 시스템 유틸리티, 응용 프로그램, 설치 프로그램을 포함한 완전한 운영체제 리눅스 커널은 1991년 1992년 최초의 배포판 1993년 부터 주요 배포판이 나왔다
주요 리눅스 배포판
- Debian 계열: Debian, Ubuntu 등
- Slackware 계열: Slackware, SUSE 등
- Red Hat 계열: Redhat, Fedora, ContOS, Rocky Linux 등
Rocky Linux 는 CentOS 의 대안으로 나온 버전 Ubuntu 는 Debian 의 개인용 버전
Debian 리눅스
- Debian 프로젝트 자유 운영체제를 만들어가는 사람들의 독자적 모임 1994년에 비영리 조직으로 설립 GNU 정신에 가장 충실한 배포판 세가지 릴리스를 유지 - stable, testing, unstable 버전 숫자 버전 외 토이스토리 캐릭텇 코드명을 가지며 unstable 버전은 항상 코드명이 sid
Red Hat 리눅스
배포판 가운데 가장 널리 알려진 리눅스 배포판 Read Hat Linux (무료 배포판으로 2003 년 지원 중단) RHEL (유료 버전) Fedora와 CentOS 라는 오픈소스 프로젝트를 지원한다 RPM(Redhat Package Manager) 을 지원하여 더욱 인기를 얻게 되었다
CentOS
Red Hat 리눅로부터 파생되었다 RHEL 기반의 무료 버전 RHEL 은 유로로 기술지원을 제공하는 엔터프라이즈 버전 서버용으로 많이 사용됨 최근에는 개발버전인 CentOS Stream 만 지원된다 (개발용이라 안정화가 아직 안된 버전으로 Fedora 와 비슷해짐)
Rocky 리눅스
기존 CentOS 리눅스의 대체품 그레고리 커처가 Rocky Linux 프로젝트를 시작 RHEL 소스코드 기반의 다운스트림 버전 (RHEL과 실행 코드가 호환됨) 엔터프레이즈 환경에서 안정적이고 신뢰성있는 운영 환경을 제공하는 것이 목표
SuSE 리눅스
Slackware 리눅스로부터 파생 독일에서 만들어 유럽에서 많이 사용된다 Novell 사에 의해 지원
Slackware 리눅스
SLS 리눅스로부터 파생 가장 먼저 대중화된, 현존하는 가장 오래된 배포판 간결함을 철학으로 한다 유닉스 자체 학습에 적합하다
Ubuntu
데비안으로부터 파생 영국 기업 Canonical의 지원 데스크톱 환경 Unity를 제공했으나 최근 GNOME 을 다시 사용 Debian 리눅스에 비해 사용 편의성에 중점을 둠 개인 사용자에게 인기 있는 리눅스 배포판