[유닉스] 역사와 발전


유닉스와 리눅스의 탄생



  1. 운영체제란

    • 컴퓨터 시스템을 제어하는 프로그램들의 집합
    • 하드웨어와 사용자 또는 응용 프로그램 사이에 위치
    • 하드웨어와 사용자 또는 응용 프로그램이 쉽고 편리하게 컴퓨터 시스템을 이용할 수 있도록 컴퓨터 시스템을 제어하고 관리
    • 초기 운영체제는 단일 사용자 형태
    • 유닉스를 시작으로 다중 사용자, 다중 작업 운영체제로 발전
  2. 유닉스(UNIX)의 탄생

    • 1969년 벨연구소의 켄 톰슨(Ken Thompson)과 데니스 리치(Dennis Ritchie)가 개발
    • 1973년 어셈블리 언어에서 C 언어로 변경
    • 대학을 중심으로 유닉스를 많이 이용하여 무료로 제공
    • AT&T가 벨연구소를 인수하게 되면서 유닉스를 상용으로 공급
    • AT&T 유닉스 버전과 BSD(Berkeley Software Distribution) UNIX 버전 발표
  3. 리눅스(Linux)의 탄생

    • 1991년 핀란드 헬싱키 대학의 리누스 토발즈(Linus Torvalds)가 개발
    • PC에서도 사용할 수 있는 UNIX와 같은 운영체제 개발
    • 뉴스그룹 구성원들과 전세게 네티즌들에게 리눅스 커널(kernel) 부분의 소스 파일을 공개하여 아이디어를 공유, 문제점 개선 등으로 만들어짐



유닉스와 리눅스의 탄생



  1. 유닉스의 발전 과정



  2. 유닉스의 종류

    • 시스템 V

      • AT&T 벨연구소에서 개발한 UNIX
      • 상업 제품으로, IBM의 AIX, Sun(2009년 Oracle에 합병됨)의 Solaris, HP의 HP-UX
    • BSD 유닉스

      • 버클리 대학교에서 발전됨
      • 메모리 관리 기능 향상
      • TCP/IP, 소켓(Socket) 등 네트워킹 기능 추가
      • HP나 Sun Microsystems 같은 회사에서 많이 사용
    • 솔라리스
      • Sun 사에 의해 출시됨
      • Sparc CPU 전용 운영체제에서 인텔용 솔라리스도 출시
    • 리눅스

      • 레드햇(RedHat) 사의 레드햇(RedHat)과 페도라(Fedora), 캐노니컬(Canonical) 사의 우분투(Ubuntu), 그리고, 데비안(Debian), CentOS 등
    • 맥 OS
      • 1984년 애플 컴퓨터의 매킨토시 컴퓨터용 운영체제로 개발
      • NexTSTEP 운영체제와 BSD 유닉스 기반으로 맥 OS X (맥 오에스 텐으로 발음함) 개발
    • 모바일 기기용 운영체제

      • 안드로이드 : 리눅스 기반, 소스 코드 공개
      • iOS : 맥 OS X 기반, 소스 코드 비공개, 애플사의 모바일 기기(iphone, iPad, iPod)에서 사용
  3. 리눅스 커널

    • 커널은 리눅스 운영체제의 핵심이 되는 부분
    • 커널의 버전 – 안정 버전(Stable Version)과 개발 버전(Development Version)으로 구분 – 안정 버전 : 개발 완료된 코드로 구성된 버전 – 개발 버전 : 현재 개발 중인 버전, 상대적으로 불안정
    • 파일 이름에서 커널 표시 – 파일 이름 : linux-3.7.1.tar – ‘3’은 주 버전 (Major Version) – ‘7’은 부 버전 (Minor Version) – ‘1’은 패치 버전 (Patch Version) – ‘linux-3.7.1.xx’의 경우 ‘xx’는 사소한 개정이 있을 경우
  4. 배포판(Distribution)

    • 커널을 기반으로 GNU 프로젝트의 라이브러리와 도구들을 패키지화시킨 것
    • 사용 목적에 따라 무수히 많은 종류의 배포판 존재
    • 국외 리눅스 배포판
    • 국내 리눅스 배포판
  5. 슬랙웨어(Slackware)

    • 1993년 패트릭 폴커딩(Patrick Volkerding)에 의해 처음 릴리즈됨
    • 높은 수준의 안전성과 보안성
    • 사용자 인터페이스 환경이 화려하지 않고 텍스트 기반
    • 리눅스를 좀더 깊이 공부하고 싶은 사람에게 추천
    • 홈페이지 : http://www.slackware.com 미국
  6. 레드햇(RedHat)
    • 가장 인기 있는 배포판
    • RedHat Linux 9 버전까지만 소스 공개
    • RedHat Enterprise Linux는 유료 배포판
    • 홈페이지 : http://www.redhat.com 미국
  7. 페도라(Fedora)

    • 레드햇 회사에서 후원하고 Fedora 커뮤니티에서 개발하는 무료 배포판
    • 국내에서 가장 인기 있는 배포판
    • 빠르고, 안정적이고, 강력한 운영체제
    • 홈페이지 : http://fedoraproject.org 미국
  8. 데비안(Debian GNU/Linux)

    • 자원 봉사 모임인 데비안 프로젝트(Debian Project)에서 만들어 배포하는 공개 운영체제
    • 가장 강력한 패키지 관리 시스템
    • Intel, Alpha, Sparc, PowerPC 등 다양한 아키텍처 지원
    • 100% 자유 소프트웨어를 유지
    • 데비안으로 작성된 프로그램을 무료로 라이선스 공개
    • 홈페이지 : http://www.debian,.org
  9. 우분투(Ubuntu)

    • 데스크탑에서 쉬운 리눅스를 사용하기 위해 만들어짐
    • 데비안 리눅스를 기반으로 사용자가 손쉽게 사용할 수 있도록 함
    • 개인용 컴퓨터 사용자와 개발자에게 가장 인기
    • 우분투 : 남아프리카 줄루족의 말, “네가 있으니 내가 있다”는 뜻
    • 홈페이지 : http://www.ubuntu.com
  10. 수세 리눅스(SuSE-Linux)

    • 독일업체 수세(S.u.S.E)에서 개발된 배포판
    • 레드햇 리눅스와 함께 인기 있는 상용 배포판
    • 2003년 수세는 노벨(Novell)에 인수됨
    • 홈페이지 : http://www.novell.com/linux 독일
  11. CentOS(Community ENTerprise Operating System)

    • 레드햇 엔터프라이즈 배포판을 기반으로 하는 무료 운영체제
    • 웹 서버용으로 가장 많이 사용
    • 홈페이지 : http://www.centos.org
  12. 국내 리눅스 배포판

    • 레드햇 리눅스를 기반으로 한글 인터페이스를 제공한 배포판 – 파워 리눅스, K-리눅스, 알짜 리눅스, 미지 리눅스, 와우 리눅스 등 – 현재는 제공되지 않음
    • 아시아눅스(Asianux) – 한국, 중국, 일본의 아시아 기업들이 협력하여 만들었음 – 한컴 리눅스, 홍기 리눅스(중국), 미라클 리눅스(일본)



유닉스와 리눅스의 탄생



  1. GNU, GNU 프로젝트

    • GNU’s Not Unix, 즉 ‘GNU는 유닉스가 아니다’라는 뜻
    • 1984년 리처드 스톨먼(Richard Matthew Stallman)을 주축으로 유닉스와 호환되면서 더 강력한 운영체제를 만들고자 하는 프로젝트 시작
    • ‘모두가 공유할 수 있는 소프트웨어’를 만드는 것을 모티브로 출발
    • GNU C 컴파일러인 gcc, 문서편집기인 emacs, X 윈도우 데스크탑 환경인 GNOME, tar를 개조한 GNU tar 등 응용 프로그램을 만듦
    • 소프트웨어의 상업화에 반대해 소프트웨어를 자유롭게 사용하도록 하는 것이 목적
  2. 자유 소프트웨어 재단 FSF(Free Software Foundation)

    • 1985년 리처드 스톨먼이 세운 비영리 조직
    • ‘구속되지 않는다‘는 관점에서 프로그램의 변경이나 수정의 자유를 의미
  3. Copyleft와 GNU GPL(General Public License)

    • Copyleft – 저작권(Copyright)의 반대를 뜻하는 의미로 사용 – 프로그램의 제작, 배포에 대한 권리를 모든 사람에게 허용
    • GNU GPL – GNU 소프트웨어에서 Copyleft를 실제로 구현한 라이선스를 의미 – GNU 정신에 입각하여 자유 소프트웨어를 보호, 실제로 Copyleft를 담보할 수 있는 법률적 허가권
  4. 커널(kernel)

    • 운영체제의 핵심으로, 시스템이 부팅될 때 로드
    • 시스템의 하드웨어 제어
    • 자원 스케줄링, 실행중인 프로그램 관리, 자료 관리