Download presentation
Presentation is loading. Please wait.
1
GIT Operating System 인천대학교 컴퓨터공학과 성 미 영 (成 美 暎)
2
수업 개요 및 목표 개요 강력하고 안정적인 기능을 제공하는 중요한 운영체제인 Unix/Linux 시스템 및 Unix/Linux 프로그래밍에 대하여 학습한다. Unix/Linux 시스템의 사용법을 익히고 Unix/Linux 환경에서의 다양한 프로그래밍 기법과 Unix/Linux의 내부구조에 대하여 깊이 있게 이해하도록 하여 Unix/Linux 시스템의 개념과 동작 원리를 이해하고 Unix/Linux 시스템을 효과적으로 활용할 수 있는 유능한 인재를 양성한다. 목표 Unix/Linux 시스템에서 실제 코드를 다루기 위한 기본 지식을 습득한다. 명령어 유틸리티 Unix/Linux 시스템에서 다양한 프로그래밍 기법을 익힌다. 셜 프로그래밍 고급 언어 (C 언어) 프로그래밍 시스템 프로그래밍 네트워크 프로그래밍 윈도우 프로그래밍 Unix/Linux 시스템의 기본적인 관리 능력을 기른다. Unix/Linux의 개념과 동작 원리를 이해하고 Unix/Linux을 효과적으로 활용할 수 있는 기초 능력을 배양한다. Unix 시스템
3
Unix 교재 및 참고문헌 교재 참고문헌 조경산 역, 이한출판사, 프로그래머와 사용자를 위한 UNIX 완성, 1998.
UNIX for Programmers and Users, 2nd Ed., Graham Glass, Prentice Hall PTR, 1999. 참고문헌 Unix Network Programming, 2nd Ed., W. Richard Stevens, Prentice Hall PTR, 1999. 한국어 판 Unix Network Programming, Stevens 저, 김치하, 이재용 역, 대영사, 1991. 컴퓨터네트워크 프로그래밍, 개정판, 김화종, 홍릉과학출판사, 2000. K. Havilland, D. Gray, B. Salama, Addison-Wesley, Unix System Programming, 2nd Ed., 1998(99) 한국어판 Unix 시스템 프로그래밍 Second Edition, Keith Haviland, Dina Gray, Ben Salama 저, 조유근 역, 홍릉과학출판사, 1999. The Unix C Shell Field Guide, Gail Anderson and Paul Anderson, Prentice-Hall, 1986. 한국어판 The Unix C Shell Field Guide, Anderson · Anderson 저, 감창룡 역, 홍릉과학출판사, 1997 The X Window System Programming and Application with Xt, 2nd Ed., Douglas A. Young, Prentice Hall PTR, 1994. 한국어판 The X Window System Programming and Application with Xt 제 2판, Young 저, 박승규 외 4인 역, 대영사, 1996. Maurice J. Bach, The Design of the Unix Operating System, Prentice Hall International, Inc., 1986 Unix의 내부구조, 조유근 역편, 홍릉과학출판사, 1991. Evi Nemeth, Garth Snyder, Scott Seebass, Trent R. Hein, Prentice Hall PTR, "Unix System Administration Handbook, 2nd Ed.", 1995. 한국어판, Unix System administration Handbook, 2nd Ed. Nemeth, Snyderm Seebass, Hein 저, 최재영, 김명호, 김영배 역, 홍릉과학출판사, 1998. AEleen Frisch, O'Reilly, Essential System Administration, 2nd Ed.", 1996. 시스템 관리의 핵심, 2nd Ed., AEleen Frusch 저, 장 훈 역, 한빛미디어, 1998. Unix 시스템
4
Linux 참고문헌 참고문헌 예제로 쉽게 작성하는 Linux 네트워크베스트 프로그래밍, 雪田修一 저, 권용진 역, 도서출판 인터비젼, 2000. 리눅스 배움터, 안귀임, 노영욱, 김영주 공저, 정익사, 2001. 와우리눅스 7.0 Kkachi 홈페이지: Linux Kernel Programming, Third Edition, M Beck, H Böhme, M Dziadzka, U Kunitz, R Magnus, C Schröter, D Verworner, Addison Wesley, 2002. Unix 시스템
5
수업진행 방법 및 평가 수업진행방법 주교재 및 부교재 내용을 중심으로 하여 강의와 동시에 Unix 및 Linux 컴퓨터를 이용하는 실습을 병행한다 모든 실습 내용은 과제물로 제출한다. Unix/Linux 환경에서 소프트웨어를 개발하는 단기 프로젝트를 수행한다. 평가 중간 : 30% 기말 : 30% 실습 및 과제 : 20% 출석 및 수업 기여도 : 20% Bonus: 명예의 전당 입성자 Unix 시스템
6
1장 유닉스(Unix)란?
7
오! 유닉스 유닉스는 세련되고 영리한 사람들을 위한 도구의 집합이다. 유닉스는 재미있다.
유닉스는 배우기는 어렵지만 사용하기는 쉽다. 기본을 공부하는 것부터 시작하라. 그런 다음 원하는 것을 순서에 상관없이 공부하라. 유닉스의 모든 것을 배우기는 힘들다. 필요한 것과 재미있을 것 같은 부분에 관심을 쏟는 것이 좋다. Unix 시스템
8
컴퓨터 시스템 하드웨어 소프트웨어 시스템 소프트웨어: 운영체제 응용 소프트웨어: 게임 등
CPU(Central Processing Unit) RAM(Random Access Memory) ROM(Read Only Memory) Disk Monitor Graphic card Keyboard Mouse Printer Ethernet Interface Modem Scanner MIDI(Musical Instrument Digital Interface) Video capture board Voice recognition card Synthesizer 소프트웨어 시스템 소프트웨어: 운영체제 응용 소프트웨어: 게임 등 Unix 시스템
9
Unix 자원 공유 CPU 공유: time slice 메모리 공유: page 디스크 공유: block Unix 시스템
10
Unix 통신 통신의 유형 통신 메커니즘 출력: 그래픽 카드와 대화 입력: 키보드와 대화 네트워크 서비스: 다른 컴퓨터와 대화
공동 작업: 프로세스 사이의 대화 통신 메커니즘 파이프 (pipe): 같은 기계, one-way medium-speed data channel 소켓 (socket): 다른 기계, two-way high-speed data channel Unix 시스템
11
Unix 프로그램, 프로세스, 파일 파일: 디스크에 저장된 자료의 모음
프로그램: 파일에 저장되어 있는 일련의 명령어와 자료를 표현하는 바이트들의 집합, RAM으로 적재되어 실행됨 프로세스: 실행 중인 프로그램 프로그램, 프로세스, 파일 소유자(owner) 가지며 접근이 보호됨 위치를 부여하는 계층적인 디렉토리(directory) 가짐 생성/수정/삭제 서비스 제공 Unix 시스템
12
Unix 특징 동시에 여러 사용자가 사용 (multiuser/multiprocess system)
프로그램, 프로세스, 파일의 생성/수정/삭제 제공 프로세스와 파일의 위치를 부여하는 디렉토리 계층 제공 공정하고 효과적인 프로세서, 메모리, 디스크 공유 주변장치, 다른 기계, 프로세스 사이의 의사 소통 지원 많은 표준 유틸리티(utilities) : GNU (GNU's Not Unix!), 시스템 호출 (system calls)을 통한 Unix 서비스 접근 이식성 우수하여 다양한 기종에서 활용 강력한 shell programming open system : 저렴한 가격으로 소스 제공 Unix 시스템
13
Unix 철학(Philosophies of Unix)
파이프 (pipe) 한 프로세스의 출력이 다른 프로세스의 입력이 됨 파이프 라인 여러 프로세스들이 연결되어 자료가 흐르는 파이프 라인 형성 장점 문제를 프로세스들의 정렬된 구성으로 해결 (예) $ who | sort Unix 환경에서 문제를 해결하는 단계들 파이프와 유틸리티를 이용하여 해결 시도 네트워크 상에 질문하여 해결 시도 유틸리티를 스스로 작성하여 해결 시도 (재사용될 수 있도록 작성) 응용 프로그램 작성 수퍼 유저 (super user) 모든 코드와 자료에 접근할 수 있는 특권을 갖고자 하는 사람들이 설계 특권을 여러 준 수퍼 유저(slightly super user)에게 나누는 시스템도 있음 Unix 시스템
14
Unix 역사 1971 AT&T Bell Lab. Ken Thompson MIT Multics의 영향
PDP-7 어셈블러로 쓰여짐 1973 C 언어로 다시 씀 1970 Ken Thompson이 B 언어, 1973 Dennis Ritchie가 C 언어 만듦 여러 컴퓨터로 이식됨 버전들 AT&T System V(five) 계열 BSD(Berkeley Software Distribution) 계열 Linux ( Linus Torvalds (Finnish student of Computer Science) 1991 PC용 System V + BSD Unix GNU ( : source code is available 표준화 연구 UI (Unix International) : System V 4.1 : AT&T, SUN OSF (Open Software Foundation) : OSF/1 : IBM, DEC, HP POSIX (Portable Operating System Interface) (1986, IEEE1000.3) Unix 시스템
15
Unix 제품들 Solaris 2.X (Sun) : System V + BSD ( HP-UX (HP) : System V + BSD ( IRIS (Silicon Graphics) : System V ( AIX (IBM) : System V+BSD ( OSF/1 (DEC) : BSD + System V, Ultrix는 BSD ( BSD/OS (Berkeley) ( SunOS (Sun) : BSD NextSTEP : Mach의 확장 ( Linux (linux Torvalds) : 내부 BSD, 인터페이스 System V, PC용 ( NetBSD : 4.4BSD Lite 기반 ( FreeBSD : Berkeley Net/2 기반, PC용 ( SCO (Santa Cruz Operation) Unixware: System V, PC 용 ( Unix 시스템
16
Unix의 미래 객체 지향 프로그래밍 (object-oriented programming)
병렬, 분산 처리 (parallel & distributed processing), 멀티프로세서 시스템 지원 병렬 처리 (doing more than one task in parallel) Tightly coupled multiprocessor system Shared-resource architecture Bus, Clock, Memory, 주변기기를 공유 Shared memory 통해 교류 분산 처리 Loosely coupled multiprocessor system Shared-nothing architecture 각 processor 는 자신의 local memory를 가짐 communication line (high-speed bus, telephone line) 통해 교류 멀티프로세서 시스템 Shared-memory or shared resource architecture) (예) Sequent 사의 Unix platform 32비트에서 64비트로 (the move from 32-bit to 64-bit systems) IPv6(128 비트 IP 주소) 지원: IPv4(32 비트 IP 주소)의 수퍼 세트 고속 통신 네트워크 (high-bandwidth network) 지원 결함 허용 Unix 시스템(fault-tolerant systems) : hot backup system Unix 시스템
17
Unix 사용자 비프로그래머 셸 사용자 진보된 비프로그래머 진보된 셸 사용자 프로그래머 시스템 프로그래머 시스템 개발자
시스템 관리자 Unix 시스템
18
실습: 로그인 실습 컴퓨터 Xmanager 실행시키거나 윈도우 ‘시작’ 메뉴에서 ‘실행’ 선택해서
csblade.incheon.ac.kr ( ) cslinux.incheon.ac.kr ( ) Xmanager 실행시키거나 윈도우 ‘시작’ 메뉴에서 ‘실행’ 선택해서 telnet csblade.incheon.ac.kr login: s Passwd: ****** Unix 시스템
19
실습: 명령을 입력해 보세요 date man date date^M (carriage return)
date^J (line feed, new line) echo ^G^G^G (bell) ^S (stop) [Control-S] ^Q (continue) [Contol-Q] stty -a ls ls -l ls -al cal bc … [Control-D] hostname who who am i echo hello echo hello > xx 또는 > xx echo hello ls cat xx cat cat > xx 또는 > xx cat hello 한/영 키 눌러 보세요! Unix 시스템
20
Control Characters ^c Value ^c Value ^c Value
a, A <SOH> l, L <FF> w, W <ETB> b, B <STX> m, M <CR> x, X <CAN> c, C <ETX> n, N <SO> y, Y <EM> d, D <EOT> o, O <SI> z, Z <SUB> e, E <ENQ> p, P <DLE> [ <ESC> f, F <ACK> q, Q <DC1> \ <FS> g, G <BEL> r, R <DC2> ] <GS> h, H <BS> s, S <DC3> ^ <RS> i, I <HT> t, T <DC4> _ <US> j, J <LF> u, U <NAK> ? <DEL> k, K <VT> v, V <SYN> 각 키의 의미는 ASCII Character Set ANSI X3.4 –1968 참조 Unix 시스템
21
잠깐 쉽고 편한 것만 좋다 어렵고 힘들어도 좋다 편안하게 조금만 올라갈래 힘들어도 높이 올라갈래 약해도 좋다 강해지고 싶다
행복 끝 고생 시작할래 고생 끝 행복 시작할래 ? 세련되고 영리한 사람 Unix 시스템
22
해 ? ! 무얼 해? 몸값을 ? ? ? ! 무얼 잘해? ? ? ? 걸 잘해야 해 ! 어떻게 해? ? ? 라고 해야 해 ! Unix 시스템
Similar presentations