제 1 장 Unix 입문 1.1 Unix란 1.2 Unix의 구조.

Slides:



Advertisements
Similar presentations
프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
Advertisements

숙명여대 창병모 2011 가을 1. Unix/Linux 의 효과적 사용  command, shell programming, X-window,... 시스템 프로그래밍 능력 향상  file, process, network programming 시스템의 체계적 이해 및.
1 장 유닉스 소개 1. 강의 목적 및 내용 2 강의 목적  유닉스 / 리눅스 시스템의 체계적 이해 및 활용  시스템 프로그래밍 능력 향상 강의 내용  유닉스 / 리눅스의 효과적 사용 명령어, 파일 시스템, 네트워킹, X- 윈도우, 쉘 프로그래밍  유닉스 / 리눅스.
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
2. 파일 시스템 파일 디렉터리와 경로명 파일 시스템의 구조 새로운 파일 생성 소유권과 허가 파일 유형과 일반화.
Power Java 제3장 이클립스 사용하기.
Power Java 제3장 이클립스 사용하기.
MS-Access의 개요 1강 MOS Access 2003 CORE 학습내용 액세스 응용 프로그램은 유용한 데이터를
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Windows Server 장. 사고를 대비한 데이터 백업.
JSP Programming with a Workbook
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
UNIX 시스템 정보통신공학과 이 우 섭.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
Root Filesystem Porting
1. C++ 시작하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
FTP 프로그램 채계화 박재은 박수민.
Root Filesystem Porting
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
WinCE Device Driver 실습 #3
WinCE Device Driver 실습 #2
Cross Compiler 설치.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
AVR – ATmega103(ATMEL) Compilers & ISP
Slice&link.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
27장. 모듈화 프로그래밍.
2015 운영체제 특강 수업 소개 Special Topics on Operating Systems
2장. 데이터베이스 관리 시스템 데이터베이스 관리 시스템의 등장 배경 데이터베이스 관리 시스템의 정의
뇌를 자극하는 Windows Server 2012 R2
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
제1장 Unix란 무엇인가?.
컴퓨터 시스템 하드웨어 컴퓨터 시스템 소프트웨어 C P U Control Unit 입 력 장 치 출 력 장 치 ALU
자바 5.0 프로그래밍.
데이터 베이스 DB2 관계형 데이터 모델 권준영.
1. 스크립트 작성 마법사 2. NSIS 스크립트 컴파일
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
Kernel, Ramdisk, JFFS2 Porting
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
문성우 SQL 실습 Part Ⅰ 문성우.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
뇌를 자극하는 Solaris bible.
시스템 인터페이스 Lab#5 쉡 실습.
AT MEGA 128 기초와 응용 I 기본적인 구조.
Homework #5 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Homework #3 (1/3) 다음을 수행한 후, 결과 파일들을 출력하여 제출한다.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
발표자 : 이지연 Programming Systems Lab.
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
유닉스 이론과 실습.
9 브라우저 객체 모델.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Docker Study 6~7.
6 객체.
시스템 해킹과 보안 permission과 SetUID.
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

제 1 장 Unix 입문 1.1 Unix란 1.2 Unix의 구조

Unix 란? Unix란? 컴퓨터 운영체제, 즉 우리가 많이 접하는 DOS나 윈도우즈처럼 프로그램을 실행시키고 자원을 관리하는 제어 프로그램 DOS나 윈도우즈는 대부분 PC에서 쓰이고 있고, 워크스테이션에서는 Unix를 기본 운영체제로 사용하고 있는 것이 일반적 Unix에는 System V 계열과 BSD 계열이 있고 PC에서 쓰이는 Linux가 있음.

Unix 의 역사(1/5) Unix는 다른 운영체제와는 달리 통신으로 서로 대화하고 싶은 많은 프로그래머들에 의해 개발,발전 1965년 AT&T의 Bell 연구소는 MIT 대학, GE(General Electric) 사와 함께 새로운 운영체제인 Multics를 개발할 목적으로 공동연구에 착수 Multics 운영체제의 개발 목적 다중사용자(multi-user) 멀티프로세서(multi- processor) 계층구조 파일시스템(hierarchical file system)

Unix 의 역사(2/5) 1969년 Bell 연구소- Multics의 성능에 만족하지 못하여 Multics 프로젝트 취소 프로젝트에 참여했던 Bell 연구소의 일부 프로그래머들 중의 한 명인 Thompson은 Ritchie의 도움으로 DEC 사의 PDP-7이라는 시스템에서 프로그래밍 작업하여 파일 유틸리티(cp, mv 등)와 쉘(shell)이란 명령어 해석기를 개발 새로 탄생한 시스템은 Unix라고 명명. 이것은 Multics가 한 가지 일도 제대로 못하면서 많은 일을 수행한다는 느낌을 주는 "multi"라는 의미를 내포하고 있는 점을 비꼬아 어떤 한 가지 일을 잘한다는 의미를 가진 "uni" 라는 의미를 함축하고 있는 Unix라는 이름으로 명명 이 후 Bell 연구소에서는 많은 연구원들이 성능이 뛰어난 Unix 시스템을 사용하기 시작 1971년 Ritchie는 B 언어를 기초로 하여 작성한 C 언어를 개발 이때 Unix 시스템은 PDP-11상에서 실행되었고, 시스템 환경은 8K 바이트의 사용자 메모리를 포함하여 16K 바이트의 메모리에 512 바이트의 디스크를 장착한 상태

Unix의 역사(3/5) Unix 시스템의 첫 번째 용도 Bell 연구소의 특허담당 부서에서 문서처리 도구로 사용 프로그래머 환경 단순한 사용자 인터페이스 강력한 기능을 수행하기 위해 결합해서 사용할 수 있는 단순한 유틸리티 계층적인 파일 시스템 파일 포맷과 일관성을 갖는 단순한 장치 인터페이스 다중사용자, 멀티프로세서 시스템 사용자에게 독립적이고 투명한 시스템 구조

Unix의 역사(4/5) 1973년 모든 Unix 시스템을 이식성과 속도를 높이기 위해 C 언어로 재작성 1970년대에 들어서 AT&T 사에서는 Unix 시스템을 판매하고자 하였 으나 그때 당시의 독점금지법으로 인하여 이를 판매 불가 이로 인하여 Bell 연구소에서는 아주 싼 가격으로 여러 대학에 Unix 시스템을 판매 그 중에 Berkely 대학에서는 이를 꾸준히 발전시켜 BSD 계열의 Unix 시스템을 일반에 배포 1977년 500개의 Unix 사이트 개설 1980년 BSD 4.1 (Berkely Software Development) 1983년 SunOS, BSD 4.2, SysV

Unix의 역사(5/5) 1984년 - 다양한 능력을 가진 수많은 플랫폼에서 100,000 개의 Unix 사이트 운영 1988년 - AT&T와 Sun Microsystems 사가 공동으로 System V Release 4(SVR4)를 개발. 이후 UnixWare와 Solaris 2로 발전 1993년 - Novell 사가 AT&T 사로부터 UNIX를 구매 1994년 - Novell 사는 X/OPEN을 "UNIX"로 명명 1995년 - SCO(Santa Cruz Operations) 사가 Novell로부터 UnixWare를 구매. SCO 사와 HP(Hewlett-Packard) 사는 공동으로 64-비트 Unix 버전을 개발할 것을 발표 1996년 - IDC(International Data Corporation)에서는 1997년에 3백 만 개의 Unix 시스템이 배포될 것이라고 예측

간략한 Unix 계통도

Unix의 구조 운영체제 Unix는 여러 층(layered)으로 구성된 운영체제 사용자 프로그램은 표준 시스템 콜(system calls)의 집합을 포 함하고 있는 커널(kernel)을 통하여 서로 대화 Unix는 다중사용자(multi-user), 멀티프로세서(multi-processor) 운영체제

파일 시스템(1/2) Unix 파일 시스템은 역트리(inverted tree) 구조의 모양 루트(/) 디렉토리로부터 시작하여 위에서 아래로 서브디렉토리들을 따라가면서 작업 가능

파일 시스템(2/2) 노드 디렉토리 경로명: 파일 혹은 디렉토리를 지정 파일 혹은 파일들로 구성된 디렉토리 중의 하나 다른 파일 혹은 다른 디렉토리(서브디렉토리)를 포함 경로명: 파일 혹은 디렉토리를 지정 절대경로명 파일 시스템의 루트(/)부터 출발하여 각 서브디렉토리를 슬래쉬(/)로 분리하면서 원하는 파일에 도달할 때까지 기술 상대경로명 현재의 작업 디렉토리에서 상대적인 경로를 지정하는 것 . 현재의 디렉토리 .. 현재 디렉토리의 부모 디렉토리

Unix 디렉토리, 파일, Inodes(1/2) 커널 inode라고 하는 구조로 각 파일에 관한 정보를 관리 사용자가 이러한 정보를 볼 수 있는 방법은 ls 명령을 이용하는 것 예) "ls -al /bin/csh"라고 입력하면 파일 유형과 접근권한(permissions)을 의미하는 모드(mode), 크기, 최종 갱신 날짜, 소유자, 그룹, 링크 카운트, 유형 등을 보여줌

Unix 디렉토리, 파일, Inodes(2/2) 첫 번째 필드는 파일의 유형과 접근권한 모드를 지정 첫 번째 문자는 하이픈(-)으로 이는 정규 파일을 의미 Unix에서는 파일의 여러 가지 유형을 이처럼 한 문자로 인코딩하여 표시하는데 전체 내용은 <표 1.1>과 동일.

inode inode 번호 모든 디렉토리와 파일은 부모(parent) 디렉토리에서 볼 수 있음 루트(/) 디렉토리의 경우에는 그 자신이 부모 디렉토리이기도 함 디렉토리란 자신이 포함하고 있는 파일들의 목록을 테이블로 가지고 있는 파일 그 목록을 보면 파일명에 inode 번호를 부여 inode는 인덱스 노드(index node)라고 부르며, 각 파일마다 하나의 inode를 부여 inode 번호는 DOS에서의 FAT(File Allocation Table)과 유사 inode 테이블은 커널이 파일에 관한 정보를 알 수 있도록 각 파일의 위치에 관한 자세한 정보를 담고 있는 테이블 inode는 파일에 관한 접근권한, 소유자, 생성된 날짜, 최근 접근 시간, 그 파일을 포함하고 있는 디스크상의 데이터 블럭(data blocks)의 위치 등 파일에 관한 모든 사항을 포함

논리적인 디스크 설계 및 Inode 블록 내용

Unix 파일 시스템의 특징 Unix 시스템은 파일 자체에 데이터를 위한 어떤 특별한 구조도 요구하지 않음 파일은 ASCII 혹은 바이너리(binary)로 구성될 수 있고, 텍스트, 쉘 스크립트, 컴파일된 목적코드, 디렉토리 테이블 등 그 어떤 것도 표현 가능 주의!! Unix는 DOS와 달리 파일의 일부로 헤더(header), 트레일러(trailer), 레이블(label) 정보, EOF(End_Of_File) 문자가 존재하지 않는다는 점

Unix 프로그램 프로그램 혹은 명령(커맨드) 쉘 시스템 프로그램 환경을 제공하기 위해 커널과 대화하며, 사용자가 요청한 기능을 수행 쉘 스크립트라는 실행 가능한 쉘 파일 내장된 쉘 명령 소스를 컴파일한 목적코드 파일 쉘 명령어 해석기 사용자는 쉘을 통하여 커널과 대화하며, 쉘 상에서 ASCII(텍스트) 스크립트를 작성 시스템 프로그램 대개 C 소스 코드를 컴파일한 바이너리 코드 주로 /bin, /usr/bin, /usr/local/bin, /usr/ucb 등에 위치 사용자가 Unix에 대해서 기대하는 대부분의 기능들을 제공