Lecture 01: 유닉스 / 리눅스소개 상지대학교컴퓨터공학과고광만 kkman@sangji.ac.kr http://compiler.sangji.ac.kr 2018
강의목적및내용 l 강의목적 유닉스 / 리눅스시스템의체계적이해 시스템프로그래밍능력향상 l 강의내용 리눅스시스템프로그래밍 시스템호출을이용한 C 프로그래밍 주요프로그래밍주제 파일 프로세스 메모리 프로세스사이의통신 2
강의정보 l 시간및실습실 월요일 2/3/4 교시, 민주관 205 호 l 교재 창병모, 리눅스프로그래밍 ( 원리와실제 ), 생능출판사, 2017. l 강의자료및실습서버 http://compiler.sangji.ac.kr it.sangji.ac.kr ( 220.149.189.75 ) ID, PW 확인 l 성적평가 : 중간 (20%), 기말 (20%), 과제 (50%), 출석 (10%) 3
1.1 왜리눅스 (linux) 인가?
동기 l 유닉스 (UNIX) / 리눅스 (Linux) 운영체제 1970년대초에 AT&T 벨연구소, 이후지속적으로발전 스마트폰, PC, 서버시스템, 슈퍼컴퓨터에까지사용되고있음 소프트웨어경쟁력의핵심 5
l 유닉스 / 리눅스기반운영체제 1. 안드로이드 (Android) OS 2. ios 3. 맥 (Mac) OS X 4. 리눅스 (Linux) 5. BSD 유닉스 (Unix) 6. 시스템 V 7. Sun 솔라리스 (Solaris) 8. IBM AIX 9. HP HP-UX 10. Cray 유니코스 (Unicos) 6
유닉스설계철학 l 단순성 MIT MULTICS에반대해서최소한의기능만제공 자원에대한일관된관점제공 l 이식성 이식성을위해 C 언어로작성 다양한플랫폼에이식가능 스마트폰, PC, 서버, 슈퍼컴퓨터등 l 개방성 소스코드공개와같은개방성 7
유닉스의특징 l 다중사용자, 다중프로세스운영체제 여러사용자가동시사용가능 여러프로그램이동시실행 관리자인슈퍼유저가있음. l 쉘 (shell) 프로그래밍 명령어나유틸리티등을사용하여작성한프로그램 l 훌륭한네트워킹 유닉스에서부터네트워킹이시작 ftp, telnet, WWW, X-window 등 8
1.2 유닉스시스템구조
유닉스운영체제구조 l 운영체제 컴퓨터의하드웨어자원을운영관리 프로그램을실행할수있는환경제공 l 커널 (kernel) 운영체제의핵심으로하드웨어운영및관리 l 시스템호출 (system call) 커널이제공하는서비스에대한프로그래밍인터페이스역할 l 쉘 (shell) 사용자와운영체제사이의인터페이스 사용자로부터명령어를입력받아해석하여수행해주는명령어해석기 10
커널 l 역할 하드웨어운영관리 프로세스, 파일, 메모리, 통신, 주변장치등을관리하는서비스제공 11
커널의역할 l 프로세스관리 (Process management) 여러프로그램이실행 프로세스들을스케줄링하여동시에수행 l 파일관리 (File management) 디스크와같은저장장치상에파일시스템을구성하여파일을관리 l 메모리관리 (Memory management) 메인메모리가효과적으로사용될수있도록관리 12
l 통신관리 (Communication management) 네트워크를통해정보를주고받을수있도록관리 l 주변장치관리 (Device management) 모니터, 키보드, 마우스와같은장치를사용할수있도록관리 13
1.3 유닉스역사및버전
유닉스역사및표준 l AT&T 벨연구소 (Bell Lab) 에서개발됨 Ken Thompson이어셈블리어로개발함 D. Ritchie가 C 언어로다시작성함 C 언어는 Unix를작성하기위한언어로밀접하게관련되어있음 이론적으로 C 컴파일러만있으면이식가능 소스코드를대학에개방함 l 유닉스의큰흐름 시스템 V(System V) BSD(Berkeley Standard Distribution) 유닉스 리눅스 (Linux) 15
유닉스버전트리 [ 위키백과 ] 16
유닉스시스템 V l 벨연구소에서개발된버전이발전하여시스템 V가됨 l 유닉스버전중의최초의대표적인성공사례 여러유틸리티가공개되면서일반사용자들에확산 l 다양한상업용버전으로발전 IBM 의 AIX, Sun 의 Solaris, HP 의 UP-UX 17
BSD 유닉스 l 공개소스코드를기반으로버클리대학교에서개선 지속적으로발전하여 BSD 4.3 버전이개발됨 l 주요기능개선 메모리관리기능향상 네트워킹기능추가 TCP/IP 네트워킹, 소켓 (Socket) 등 l 상업용운영체제의기초 썬 OS(Sun OS), 맥 OS(Mac OS) 등 18
리눅스 l PC 를위한효율적인유닉스시스템 1991 년헬싱키대학의 Linus B. Torvalds 에의해개발됨 l 소스코드가공개 인터넷상에서자원자들에의해서기능추가및확장됨 공용도메인상의무료 OS l 다양한플랫폼에포팅가능 PC, 워크스테이션, 서버등 l GNU 소프트웨어와함께배포 GNU/Linux 운영체제 19
리눅스장점 l 풍부하고다양한하드웨어를효과적으로지원 대부분의하드웨어를지원하는추세임 PC, 워크스테이션, 서버등 l 놀라운성능및안정성 Pentium 으로도충분히빠르며안전하게수행 l 인터넷에맞는강력한네트워크구축 l 다양한응용프로그램개발됨 20
l 무료배포판 레드햇 (RedHat): 상업용 우분투 (Ubuntu) 페도라 (Fedora) CentOS 21
솔라리스 (Solaris) l 썬 (SUN) 에서개발한시스템 V 기반의운영체제 썬워크스테이션에서전문가들이주로사용 22
맥 OS(Mac OS) l 1984년 애플 매킨토시 컴퓨터용 운영체제로 개발 l 개인용 컴퓨터에 GUI를 처음으로 도입 맥 OS X 2002년에 NeXTSTEP 운영체제와 BSD 유닉스를 기반으로 개발 문서편집, 그래픽, 멀티미디어 등의 분야에서 많이 사용됨 23
모바일기기용운영체제 l 안드로이드 (Android) 리눅스기반모바일기기용 주로스마트폰, 태블릿 PC 등 개방형운영체제로소스코드등공개 l ios 맥 OS X 를기반으로개발된모바일기기용운영체제 애플사의 iphone, ipad, ipod 24
1.4 리눅스설치
리눅스설치 l 다양한배포판 커널은공유하고배포판마다조금씩다른데스크톱환경이나응용프로그램제공 레드햇 (RedHat) : 상업용 우분투 (Ubuntu), CentOS, 데비안 (Debian), 페도라 (Fedora) 등 l 데스크톱환경 사용하는데스크톱환경에따라사용방법이나사용가능한응용프로그램이조금씩다르다. GNOME, KDE, Unity 26
리눅스배포판 l 우분투 (Ubuntu) 데스크톱에서쉽게사용할수있는리눅스배포판 MS 윈도우즈상에서인터넷으로쉽게직접설치도가능 http://www.ubuntu.com 27
l CentOS RedHat Enterprise 배포판을 기반으로 하는 무료 운영체제 주로 서버용으로 많이 사용되며 데스크톱용, 워크스테이션용도 제공 http://www.centos.org 28
우분투설치 l 우분투데스크탑다운로드 http://www.ubuntu.com/download/desktop l 디스크굽기 (Burning) 배포판파일을빈 DVD 에복사하는과정 디스크이미지버너 ( 그림 1.10) 이용 배포판파일을다운받아클릭하면시작 l 우분투데스크톱설치 듀얼모드 vs 싱글모드 최신버전은 16.04 LTS 우분투데스크탑설치과정 http://www.ubuntu.com/download/desktop/install-ubuntudesktop 29
Wubi 를이용한우분투설치 l DVD 설치디스크없이설치하는간단한방법 l Wubi 이용하면거의모든설치과정이자동 l Wubi(Window-based Ubuntu Installer) 기존의 MS 윈도우즈운영체제를그대로유지하면서 우분투리눅스를새로설치 배포판의 Wubi를다운로드 http://releases.ubuntu.com 30
레드햇리눅스와 CentOS l 레드햇리눅스 (Red Hat Linux) 레드햇사가개발한리눅스배포판 레드햇엔터프라이즈리눅스 (RHEL) 기업용엔터프라이즈컴퓨팅플랫폼을제공하는유료배포판 l CentOS(Community ENTerprise Operating System) 레드햇엔터프라이즈배포판 (RHEL) 기반의무료운영체제 웹서버용, 데스크톱용, 워크스테이션용등도제공 CentOS 7 31
CentOS 설치 l CentOS 설치 배포판을다운받아 DVD 형태로구운후에설치할수있다. CentOS 홈페이지 http://www.centos.org 국내미러사이트 http://ftp.daumkakao.net/centos/7/isos/x86_64 l 배포판 완전버전 ( 권장 ) CentOS-7-x86_64-DVD-1611.iso 최소버전 CentOS-7-x86_64-Minimal-1611.iso 네트워크설치버전 CentOS-7-x86_64-Netinstall-1611.iso l 완전버전설치할때옵션 서버용, 데스크톱용, 워크스테이션용, 최소용등선택가능 자세한설치과정 : 교재웹페이지 32
1.5 사용환경
직접로그인 l 사용가능한유닉스 / 리눅스시스템이있는경우 X-윈도우 (X-window) 로직접로그인하여 바로 X-윈도우시스템을사용할수있다. l 우분투, CentOS 터미널화면 34
원격로그인 l MS 윈도우에서 telnet 이용 35
원격로그인 l PuTTy 사용 http://www.chiark.greenend.org.uk/~sgtatham/putty telnet, ssh 등이용하여원격로그인 36
1.6 사용자계정관리
시스템관리자 l 슈퍼유저 (superuser) 시스템을관리할수있는사용자 슈퍼유저사용하는계정이 root l 슈퍼유저로그인 직접 root 계정으로로그인 다른계정으로로그인후 $ su [ 사용자명 ] 38
사용자계정추가 l 사용자추가 / 삭제 # useradd [ 옵션 ] 사용자명 # userdel 사용자명 # passwd 사용자명 관련파일 : /etc/passwd, /etc/shadow l 사용자관리자도구 [ 시스템 ] -> [ 관리 ] -> [ 사용자및그룹 ] 39
그룹추가 l 그룹추가 / 삭제 # groupadd [-g gid] 그룹명 # groupdel 그룹명 40
핵심개념 l 유닉스시스템의가장큰특징은단순성, 이식성, 개방성 l 운영체제 컴퓨터하드웨어자원을운영관리, 프로그램을실행할수있는환경제공 l 유닉스, 리눅스 커널 : 하드웨어를운영관리하여프로세스, 파일, 메모리, 통신, 주변장치등을관리하는서비스제공 41
홈워크, 질문. l 홈워크 리눅스실습환경 원격서버접속프로그램설치 : Putty, xterm, xshell l 확인 학과서버계정확인 : 220.149.189.75 42