Linux UNIX/Linux 소개 - 리눅스란 - UNIX/Linux 발전과정 - UNIX/Linux 특징 - Linux 시스템구조 Linux 정의 리눅스 : 리눅스커널 (kernel) 에기반한 UNIX 계열운영체제의통칭 운영체제? OS, Operating System 컴퓨팅시스템에서사용자들이편하고효율적으로하드웨어를사용하고응용프로그램을수행할수있도록하는기본환경을제공하는소프트웨어 UNIX 계열? UNIX: 1969년부터작성, 사용되어온운영체제 다양한버전과변종들이존재함 그래도상호호환가능한공통요소를포함 리눅스커널? Recursive definition? 커널 : 운영체제에서가장핵심적인부분 많은다른요소들을덧붙인배포판을주로사용 Red hat, Fedora, Ubuntu, Debian, Knoppix, SuSe,
운영체제종류 범용운영체제 하드웨어발전에따라변화 No OS 배치시스템 다중프로그래밍 시분할시스템 개인용컴퓨터 Unix 특수목적운영체제 병렬 / 분산시스템 실시간시스템 내장형 / 휴대형시스템 UNIX/Linux 역사
UNIX 의태동 UNIX 개발 1969 년 AT&T Bell Labs, Ken Thompson, Dennis Ritchie, Douglas Mcllroy, Brian Kernighan (Unics) Multics (Multiplexed Information and Computing Service) 프로젝트에서파생 Open System: License with source 개발의도 Portable Multi-tasking Multi-user Time-sharing Network 와 Security 개념은없었다. UNIX 발전과정 1970 년대 1971 년 C 언어개발, PDP-11 에포팅 (16-bit machine) 1973 년 C 언어로 UNIX 재코딩 1975 년 Version 6: Bell Lab 외부에서도다양한버전개발 1978 년 BSD 1.0: UC Berkeley 1979 년 Version 7: Xenix (SCO), System V 등의모태 1980 년대 BSD 와 System V 의양대산맥 1983 년 BSD 4.2: 네트워크소프트웨어포함 통합노력 : X/Open, OSF (BSD 계열 ), SVR4 (System V 계열 AT&T, SUN) 1988 년 POSIX: 공통표준 API UNIX-compatible OS 의근거 1987 년 MINIX by Tanenbaum: Linux 로발전
UNIX 발전과정 1990 년대 1990 년 OSF/1: based on Mach and BSD Open Software Foundation: DEC, HP, IBM, Siemens, Philips 등 1991 년 BSDI: 저가컴퓨터용상업용유닉스개발 386BSD: free software 효시 FreeBSD, OpenBSD, NetBSD Linus Tovalds, Linux 개발시작 UNIX trademark 권리이동 AT&T Novell X/Open Consortium Open Group (OSF 와통합 ) 사업권 : AT&T SCO 1997 년 : Apple 사 NEXTSTEP ( Mac OS X) 2000 년대 SCO Group 의 Linux 소송 Linux 는 Unix 저작권을침해했다!? Dot-Com 붕괴후많은버전통합 : Solaris, HP-UX, AIX, IRIX Open Source 추구 : OpenSolaris Linux History Free Software 운동에서영향 1983 GNU project: C compiler, editor, library 등을 80 년대에개발 OS 커널개발은답보상태였음 1991 년 8 월최초커널공개, by Linus Torvalds Freax 라는이름으로시작 Minix 에서 GNU C 로개발 현재커널버전 2.6.30.5 Open source, non-commercial under GPL 다수개발자가참여 http://www.kernel.org 배포판 커널포함, 유용한프로그램들로구성된운영체제 상업용 : Red hat, SuSe, 비상업용 : Debian, Ubuntu, Knoppix, Tux
UNIX 계통도 http://en.wikipedia.org/wiki/image:unix_history.en.svg UNIX 계통도 http://en.wikipedia.org/wiki/image:unix_history-simple.svg
UNIX/Linux의특징 Why UNIX/Linux? 한물간고전적운영체제? 안정성이높다. Ever-changing and ever-evolving 전세계서버 OS 의 50% 이상점유 국내는약 70% 특히 high-end (enterprise) 서버는거의 UNIX IDC, 2007 Linux 는가장빠른속도로성장하는운영체제
UNIX 시스템의특징 UNIX 의특징 다중태스킹 (multitasking) 과다중사용자 (multi user) 지원 Time-sharing 대화형시스템 이식성과확장성이좋다 다중프로세서 (multiprocessor) 지원 강력한네트워킹기능을기본적으로내포 풍부하고강력한유틸리티 풍부한소프트웨어개발환경제공 오픈소스특정집단소유의소프트웨어폐쇄형개발개발자중심소스코드없이사용만가능제품정보는개발업체가제공하는것이전부저작권에대한비용지불 서로다른환경의시스템통합또는이식이어렵고문제발생가능 버그수정은저작권소유자에의해서만가능 소프트웨어의존속이저작권소유자에의존 Linux 의특징 오픈소스소프트웨어 개방형개발사용자중심소스코드가공개되어변형가능개발자및사용자들에의한자발적문서화저작권비용없음 소스코드를이용하여시스템통합과이식이자유로움 버그수정에사용자와개발자모두참여 사용자가있는한소프트웨어존속보장
Linux 의특징 여러시스템에유연하게적용 다양한프로세서아키텍쳐지원 X86, Alpha, SPARC, PowerPC, AVR, ARM, 광범위한하드웨어지원 신뢰성 다수개발자 / 사용자에의한테스트와디버깅 보안기능 커널수준보안 운영자가직접보안사항을설정할수도있다! Linux 의특징 안정성 운영체제의제어를벗어난문제를처리하는능력 실행중인다른프로세스에의한중지나성능저하등 메모리보호기법, 선점형멀티태스킹 효율적인자원관리 저렴한비용 다양한응용프로그램
Linux 시스템구조 운영체제일반구조 계층구조를이룬다. 사용자공간과커널공간의분리 하드웨어와소프트웨어의분리
Linux 커널구조 커널 (kernel) 시스템기능핵심부분 메모리에상주하면서시스템에존재하는자원을관리 디스크에파일로서존재하는프로그램 자원관리 (Resource Management) 하드웨어와사용자프로그램의중간에위치 CPU, 메모리, 하드디스크, 네트워크카드, 그래픽카드등의하드웨어자원을제어 서비스제공 (Service for Users) 응용프로그램실행 ( 프로세스, 메모리관리 ), 파일관리, 시스템호출인터페이스, 입출력서비스, 네트워킹서비스등의기능을사용자에게제공 Linux 커널구조 주요구성요소 Memory Management File Management Process Management/ Inter-Process Communication I/O Management Networking
Linux 커널구조 서비스와유틸리티 일반적으로커널과함께패키지로공급되는실행프로그램 시스템소프트웨어라고도한다. 서비스 운영체제구동과함께시작되어 ( 메모리적재 ) 대기상태에있다가사용요청이올때자신의기능수행 네트워킹, 프린팅, GUI, 안티바이러스, 유틸리티 사용자가별도로실행을명령할때메모리로적재되어실행 시스템기능에가까운응용프로그램 셸, 컴파일러, 링커, 부트로더, 데스크톱, 스토리지관리, 안티바이러스, 네트워크매니저, 텍스트처리기,
서비스와유틸리티 셸 (Shell) 커널과사용자간의인터페이스 운영체제부팅후자동실행되는특수프로그램 사용자가입력한명령을해석하여커널에전달하고, 커널이실행한결과를받아보여주는명령해석기 (Command Interpreter) 명령해석외에입출력방향전환등의일을수행 셸종류는다양하다 sh, csh, ksh, bash, zsh, : 전통적 CLI 모드셸 GNOME, KDE, Xfce, : GUI 모드셸 cf. MS Windows shell (XP Luna, Vista Aero) 서비스와유틸리티 CLI (Command Line Interface) 셸 텍스트로명령입력 여러가지명령변환과조합기능 스크립트프로그래밍기능 GUI (Graphical User Interface) 셸 데스크톱환경 (desktop environment) 이라고도한다. 마우스 click 과 drag&drop 활용 Task bar, 시작메뉴, Look&Feel, 제어센터등으로구성 X-Window (Linux 의그래픽시스템 ) + 그래픽라이브러리로구현 GTK+ 라이브러리 GNOME desktop Qt 라이브러리 KDE desktop
응용소프트웨어 실행프로그램 사용자가직접시스템과접하는수단 실행프로그램을호출함으로써시스템에명령을전달 실행프로그램종류 운영체제에내장된명령 ( 셸명령, 시스템프로그램 ) 실행가능한셸스크립트 ( 텍스트형태 ) 응용소프트웨어 임의의소스를컴파일한바이너리코드 ELF (Executable and Linking Format) UNIX 표준실행파일형식 확장자를별도로붙이지않아도된다. 응용소프트웨어 리눅스의응용소프트웨어는대부분오픈소스 http://www.sourceforge.net 참조 같은기능의 Windows 버전도있음 오피스및개인사무용소프트웨어 오피스 : OpenOffice, KOffice 사무용소프트웨어 그룹웨어 : Kolab, OpenGroupware 재무관리 : GnuCash PDA 동기화 : Kpilot 멀티미디어 이미지, 그래픽 : GIMP, Inkscape, 오디오 : Xmms, Xine, Mplayer, Rsynth, Audacity, Brahms, 비디오 : Freevo