소개: Unix란 무엇인가? 숙명여대 창병모 2009/09
강의 목적 Unix/Linux의 효과적 사용 Unix 시스템 프로그래밍 시스템의 체계적 이해 및 활용 능력 배양 command, shell programming, X-window, ... Unix 시스템 프로그래밍 file, process, network programming 시스템의 체계적 이해 및 활용 능력 배양
동기 Unix는 인기 있는 운영체제 시스템 프로그래밍 서버 시스템(웹 서버, 데이터베이스 서버, …) 공학 및 상업용으로 응용되고 있음. 연구 개발 용으로 많이 사용됨. Linux : PC를 위한 무료 OS 시스템 프로그래밍 OS 지원을 이용한 프로그래밍 Unix 시스템 호출 사용 file, process, IPC, networking, … DBMS, compiler, groupware, debugger, …
역사와 표준 AT&T 벨 연구소(Bell Lab)에서 개발됨 BSD UNIX Ken Thompson이 어셈블리어로 개발함 D. Ritchie가 C 언어로 다시 작성함 C 언어는 Unix를 작성하기 위한 언어로 개발되었으며 매우 밀접하게 관련되어 있다. C 컴파일러만 있으면 이식 가능 소스 코드를 이해할 수 있으며 대학에 개방됨 BSD UNIX U.C. Berkeley에서 개선함 메모리 관리 기능 향상 네트워킹 기능 추가
Linux Linux GNU 소프트웨어와 함께 배포 헬싱키 대학의 Linus B. Torvalds에 의해 개발됨 PC를 위한 효율적인 Unix 시스템 Internet 상에서 자원자들에 의해서 확장됨 공용 도메인 상의 무료 OS 다양한 플랫폼 상에서 지원됨 Intel PC, DEC Alpha, Sun SPARC, ... GNU 소프트웨어와 함께 배포 RedHat Linux
Linus Torvalds/ Linux Logo
왜 리눅스를 사용하는가 ? 풍부하고 다양한 하드웨어를 효과적으로 지원 인터넷에 맞는 강력한 네트워크 구축 대부분의 하드웨어를 지원하는 추세임 인터넷에 맞는 강력한 네트워크 구축 윈도우와 통신 가능 (삼바) 놀라운 성능 및 안정성 Pentium으로도 충분히 빠르며 안전하게 수행 다양한 응용 프로그램 개발 중 무료이기 때문 배포판 : RedHat 9.0, …
Unix의 버전 현재 UNIX Linux for PC Mac OS X Redhat Linux UNIX System V at AT&T Bell Lab. BSD UNIX at U.C. Berkeley Sun OS, Sun Solaris System V와 BSD 통합 IBM AIX, HP UX, Cray Unicos, … Linux for PC Redhat Linux Mac OS X Unix-based operating system for Mac
Unix 버전 트리
Unix의 특징 단순하고 이식성이 좋다 다중 사용자 다중 프로세스 운영체제 쉘 프로그래밍(Shell programming) MIT MULTICS에 반대해서 C 언어로 작성 다중 사용자 다중 프로세스 운영체제 여러 사용자가 동시에 사용할 수 있다. 여러 프로그램이 동시에 실행될 수 있다. 관리자 super-user가 있다. 쉘 프로그래밍(Shell programming) 유틸리티 프로그램과 파이프라인 메커니즘 이용 % who | sort MS-DOS의 batch file과 비슷하다.
Unix의 특징 다양한 플랫폼에 이식 가능 자원에 대한 일관성 있는 관점 제공 훌륭한 네트워킹 LINUX on PC Sun OS on Sun Workstation AIX on IBM RS Workstation Unicos on Cray 자원에 대한 일관성 있는 관점 제공 directory hierarchy, files, devices, … 훌륭한 네트워킹 ftp, web, X-window, client/server computing, many open software on internet,
이 강의에서 무엇을 할 것인가? Unix/Linux 사용 X-window 시스템의 이해 및 사용 C 프로그래밍 명령어, 파일 시스템, 네트워킹, … X-window 시스템의 이해 및 사용 쉘 프로그래밍(Shell Programming) C 프로그래밍 시스템 호출(System calls) 시스템 프로그래밍(System programming) 파일 프로세스 프로세스간 통신
실습 Linux 설치 계정 만들기 로그인/로그 아웃 X-window 사용