리눅스의 역사

canyi·2023년 5월 22일
0

운영체제

목록 보기
7/15

리눅스의 시작과 발전

  • 핀란드 헬싱키대학교의 학생인 리누스 베네딕트 토르발스 가 처음 개발
  • 미닉스(MINIX)라는 교육용 운영체제를 참조하여 개발
  • 리눅스 개발 소식을 comp.os.minix 뉴스 그룹에 포스팅: 1991년 8월 26일 -> 리눅스 탄생일

1991년 8월에 처음 알려진 이후 핵심 부분인 리눅스 커널이 공개 (0.01 버전)
GNU 프로젝트 : 리눅스 커널에 응용 프로그램 제공 -> GNU/리눅스
2020년 1월 26일 기준, 안정 버전은 5.4.15이고 5.5 버전을 개발 중

리눅스 재단 : 2007년 설립된 비영리 단체

  • 리누스 토르발스 지원
  • 마이크로소프트, 오라클, AT&T, 퀄컴, 시스코, 후지쯔, 화웨이, 인텔, 삼성전자, IBM 등
  • 리눅스 커넝은 두세 달 간격으로 업데이트 버전이 배포
  • 리눅스 커널 아카이브(www.kernel. org)에서 누구나 소스와 패치를 내려 받을 수 있음

리눅스와 GNU 프로젝트

  • 리처드 스톨먼에 의해 리눅스보다 더 이른 시점에 시작
  • 1985년 <GNU 선언문>을 발표, 비영리 기관인 ‘자유 소프트웨어재단 ‘FSF’ 을 설립

GNU

  • 유닉스와 호환되는 자유 소프트웨어를 개발하는 프로젝트
  • ‘GNU is Not Unix’의 약자
  • 모든 소프트웨어를 자유롭게 사용하도록 하는데 목적

다음 4가지 자유를 보장

  • 프로그램을 어떠한 목적으로도 실행할 수 있는 자유
  • 프로그램이 어떻게 동작하는지 학습하고, 자신의 필요에 맞게 개작할 수 있는 자유
  • 이웃을 도울 수 있도록 복제물을 재배포할 수 있는 자유
  • 프로그램을 개선할 수 있는 자유와 개선된 이점을 공동체 전체가 누릴 수 있도록 발표할 자유

GNU 프로젝트는 자체적으로 운영체제(커널)를 개발 중이었으나 완성하지 못함
리누스 토르발스가 개발한 리눅스 커널과 GNU의 각종 응용 프로그램이 결합, 완성된 형태의 운영체제 탄생

GPL

1989년에 제정된 GNU 프로젝트로 배포한 프로그램의 자유 소프트웨어 라이선스

다음 다섯 가지 의무를 저작권의 한 부분으로 강제하고 있음

  • 컴퓨터 프로그램을 어떠한 목적으로든 사용할 수 있다. 다만 법으로 제한하는 행위는 할 수 없다.
  • 컴퓨터 프로그램의 실행 복사본은 언제나 프로그램의 소스 코드와 함께 판매하거나 소스 코드를 무료로 배포해야 한다.
  • 컴퓨터 프로그램의 소스 코드를 용도에 따라 변경할 수 있다.
  • 변경된 컴퓨터 프로그램 역시 프로그램의 소스 코드를 반드시 공개 배포해야 한다.
  • 변경된 컴퓨터 프로그램 역시 반드시 똑같은 라이선스를 취해야 한다. 즉 GPL 라이선스를 적용해야 한다

GPL 버전

GPLv1

  • 1989년 1월에 발표,이에 근거하여 프로그램을 배포할 때는 이해하기 쉬운 소스 코드를 같이 배포해야 한다는 조건
  • GPLv1 프로그램을 수정한 프로그램은 원래 프로그램과 마찬가지로 GPLv1을 따라야 함

GPLv2

  • 1991년 6월에 발표, GPL 라이선스 프로그램을 배포하는 것을 막는 조건

GPLv3

  • 2007년 6월에 발표, 소프트웨어 특허에 대한 대처, 다른 라이선스와의 호환성, 디지털 저작권 관리에 관한 내용이 포함

리눅스의 배포판

  • 일반 사용자들이 리눅스를 쉽게 사용하도록 하는것이 목적
  • 누구나 내려받아 설치하고, 수정하여 다시 자유롭게 배포가능
  • 리눅스 커널 + 응용프로그램으로 구성

리눅스의 특징과 구조

특징

  • 리눅스는 공개 소프트웨어이며 무료로 사용할 수 있음
  • 유닉스와의 완벽한 호환성을 유지
  • 서버용 운영체제로 많이 사용
  • 편리한 GUI 환경을 제공

구조

커널

  • 리눅스의 핵심
  • 프로세스/메모리/파일시스템/장치 관리
  • 컴퓨터의 모든 자원 초기화 및 제어 기능

  • 사용자 인터페이스
  • 명령해석
  • 프로그래밍기능
  • 배시 셸을 기본으로 사용

응용 프로그램

  • 각종 프로그래밍 개발도구
  • 문서 편집 도구
  • 네트워크 관련 도구 등
profile
백엔드 개발 정리

0개의 댓글