Linux/UNIX Programming

Slides:



Advertisements
Similar presentations
숙명여대 창병모 2011 가을 1. Unix/Linux 의 효과적 사용  command, shell programming, X-window,... 시스템 프로그래밍 능력 향상  file, process, network programming 시스템의 체계적 이해 및.
Advertisements

1 장. 유닉스 개요 및 기본 사용법. Contents  학습목표  유닉스의 특징과 발전 과정을 이해한다.  유닉스 시스템에 접속하고 해제하는 방법을 익힌다.  유닉스 명령어의 사용법을 익힌다.  내용  유닉스 개요 유닉스의 역사와 특징, 구조  유닉스 시스템.
을지대학교 무선 네트워크 사용 방법 2010 년 06 월 01 일. 을지대학교 무선 네트워크 사용 방법 1. PC 무선랜 카드 활성화 및 체크 1 단계 : 시작 -> 설정 -> 네트워크 설정 2 단계 : 무선 네트워크 설정 선택 -> 마우스 버튼 오른쪽 클릭 -> 사용.
1 장 유닉스 소개 1. 강의 목적 및 내용 2 강의 목적  유닉스 / 리눅스 시스템의 체계적 이해 및 활용  시스템 프로그래밍 능력 향상 강의 내용  유닉스 / 리눅스의 효과적 사용 명령어, 파일 시스템, 네트워킹, X- 윈도우, 쉘 프로그래밍  유닉스 / 리눅스.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
Windows Function Windows XP Windows 7 Windows 8 FREE 조장 : 김동환 조원 : 전태우
컴퓨터와 인터넷.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
Linux/UNIX Programming
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Cross Compiler를이용한 커널 컴파일 및 포팅
Cross Compiler를이용한 커널 컴파일 및 포팅 1
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
Helpers ① 오혜성 & 최형석 ② 고의정 & 박소희 ③ 김소연 & 현광식
Unix & Shell 사용법 1 번째주 Dept. of Computer Science & Engineering
Chapter 1 The Unix Operating System
Ch. 1 LINUX SYSTEM.
유닉스 이론과 실습 √ 원리를 알면 IT가 맛있다 컴퓨터정보계열 이광규.
Linux/UNIX Programming
UNIX 시스템 정보통신공학과 이 우 섭.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
1. C++ 시작하기.
FTP 프로그램 채계화 박재은 박수민.
컴퓨터정보공학부 서버 안내 [ IBM x3500 ] it.sangji.ac.kr ict.sangji.ac.kr 혹은
Cross Compiler 설치.
1장 운영체제 2-C반 운영체제 박소라.
Cross Compiler를이용한 커널 컴파일 및 포팅
AVR – ATmega103(ATMEL) Compilers & ISP
시스템 인터페이스 Lab3 Unix 사용법 실습.
Linux/UNIX Programming
Linux/UNIX Programming
Linux/UNIX Programming
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
2015 운영체제 특강 수업 소개 Special Topics on Operating Systems
Device Driver 임베디드 시스템 I.
Linux/UNIX Programming
Linux/UNIX Programming
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
Linux/UNIX Programming
제1장 Unix란 무엇인가?.
유닉스 개요 및 기본 사용법 ㅎㅎ 유닉스 개요 유닉스 시스템 접속 방법과 명령 사용법.
Linux/UNIX Programming
Linux/UNIX Programming
자바 5.0 프로그래밍.
Unix 시스템 인천대학교 전자계산학과 성미영
Linux/UNIX Programming
Linux/UNIX Programming
Linux/UNIX Programming
Linux/UNIX Programming
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
뇌를 자극하는 Solaris bible.
시스템 인터페이스 Lab#5 쉡 실습.
Linux/UNIX Programming
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
Linux/UNIX Programming
4. 셸을 이용한 명령어 입력. Unix 시스템 쉘 간단한 셸 명령 명령 매개변수(Command arguments)
유닉스 이론과 실습.
운영체제 (Operating Systems)
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
채팅 및 파일전송 프로그램 권 경 곤 김 창 년.
Installation Guide.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
Linux/UNIX Programming
Linux/UNIX Programming
Linux/UNIX Programming
Presentation transcript:

Linux/UNIX Programming 문양세 강원대학교 IT대학 컴퓨터과학전공

운영체제 (1/3) 운영체제(Operating System) 이론적으로 상당히 복잡하며, 여러 상용 및 시험 제품들이 존재 Linux/UNIX 시작 운영체제(Operating System) 이론적으로 상당히 복잡하며, 여러 상용 및 시험 제품들이 존재 가장 중요한 제어 프로그램 (아무리 사소한 컴퓨터라도 운영체제는 있어야…) 하드웨어를 가장 효율적으로 제어할 수 있도록 하는 것이 목적 하드웨어와의 중요한 인터페이스로서 동작 (device driver) 사용자의 작업을 도우며, 다른 프로그램이 실행되는 것을 지원 일반 사용자는 운영체제가 있는지조차 의식할 필요가 없음 하지만, 시스템 프로그래머는 운영체제의 이해가 프로그램 작성에 중요한 요소임

운영체제 (2/3) 사용자 1 사용자 2 사용자 n 응용 프로그램 운영체제 컴퓨터 하드웨어 Linux, Windows,…. Linux/UNIX 시작 사용자 1 사용자 2 사용자 n 컴파일러/어셈블러 온라인 게임 문서 편집기 응용 프로그램 운영체제 Linux, Windows,…. 컴퓨터 하드웨어

운영체제 (3/3) Linux/UNIX 시작

UNIX/Linux History (1/4) Linux/UNIX 시작 UNIX? 1969년 AT&T의 벨 연구소(Bell Lab.)에서 Ken Thompson에 의해 개발 운영체제가 곧 UNIX다? (Windows 출현 이전에는 절반 이상 Yes, 현재는 No!) UNIX 운영체제의 쓰임: 중대형 컴퓨터, 산업계(은행, 통신 등) 1969년 – 출생 Bell Lab.의 연구원인 Ken Thompson이 어셈블리 언어로 개발 (위키: http://en.wikipedia.org/wiki/Ken_Thompson) 어원: 기존 운영 체제였던 “MULTICS”는 그 명칭만큼의 원하는 성능을 갖지 못함  한 가지 일이라도 잘한다는 의미를 함축하고 있는 “UNI”라는 부분을 넣어 UNIX라는 운영체제가 개발됨 처음 버전은 단일 사용자 시스템으로서 네트워크 능력이 없고 프로세스간 메모리 능력이 매우 빈약한 메모리 관리 기능을 가지고 있는 원시적 운영체제

UNIX/Linux History (2/4) Linux/UNIX 시작 1972년 – 성장 같은 연구소(Bell Lab.)에서 연구원으로 근무 하고 있던 동료인 Dennis Ritchie 가 C언어 개발  C언어를 이용하여 유닉스를 다시 만들 것을 제안 (위키: http://en.wikipedia.org/wiki/Dennis_Ritchie) 유닉스 시스템은 다른 운영체제에 대해 커다란 장점을 가지게 됨  High Level Language로 작성되어 소스 코드 이해하기가 매우 쉬움 UNIX의 진화 처음의 유닉스는 상업용이 아니었고 연구용으로 개발되었기 때문에 소스 코드와 함께 대학에 무상으로 제공 UC Berkeley 대학의 대학원생들은 이 소스를 연구하여 독자적인 BSD 유닉스라 불리는 독자적인 유닉스 버전을 만들어 일반인에게 공개함 UNIX가 여러 곳에서 연구, 발전하는 반면에 많은 버전의 UNIX가 개발되는 혼란을 초래  표준화의 필요성 대두

UNIX/Linux History (3/4) Linux/UNIX 시작 UNIX의 표준화 (POSIX: Portable Operating System Interface) IEEE(Institute Of Electrical and Electronic Engineer)에서 제안 소스레벨에서 호환성을 보장하는 유닉스 대부분의 단체, 회사들이 POSIX를 지원하며, 현재 사용되는 대부분의 UNIX들도 POSIX를 따르고 있음 위키: http://ko.wikipedia.org/wiki/POSIX UNIX의 두 가지 버전 1. AT&T사가 상품화한 SYSTEM V 계열 2. BSD(Berkeley Software Distribution)사가 만든 BSD 계열 유닉스는 개발 당시부터 다중 사용자와 자원 공유를 큰 목적으로 개발했기 때문에 네트워킹 기능이 강력  인터넷 서버로서 각광 받은 이유 유닉스의 이전 버전들은 System V와 BSD 4.3으로부터 각각 유래, 새로운 버전들은 양쪽 유닉스의 특성들을 대부분 포함

UNIX/Linux History (4/4) Linux/UNIX 시작 UNIX의 대중화 – Linux의 출현 Free software, open source 추구 GNU Project와 더불어 대중성을 가짐 현재 200여 개 넘는 배포판 존재 (software 자체는 무료, maintenance는 유료) 위키(한글): http://ko.wikipedia.org/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4 위키(영문): http://en.wikipedia.org/wiki/Linux Open architecture 추구를 통해 모바일에서 슈퍼컴까지 활용분야 넓어짐

UNIX History Tree Linux/UNIX 시작

Linux History Tree Linux/UNIX 시작

Linux/UNIX 시스템 구조 (1/2) 커널 (Kernel) 쉘 (Shell) Linux/UNIX가 처음 부팅될 때 메모리로 로딩(loading) 컴퓨터 시스템 자원들(디스크, 테이프,프린터 등)을 관리하는 운영체제의 핵심 항상 주기억 장치(main memory)에 상주하면서 프로세스 관리, 네트워크 관리, 프로세스 간 통신 등을 관리함 10,000줄 이상의 C언어와 1000줄 정도의 어셈블리어로 구성  이식성(portability)이 좋음 쉘 (Shell) Linux/UNIX 명령어를 해석하는 명령어 해석기로 사용자와 운영체제 간 인터페이스와 Shell Programming 언어를 해석 단말장치(키보드, 마우스 등)를 통하여 명령을 받고 커널이나 다른 여러 유틸리티 프로그램을 실행 사용자는 Shell을 통하여 컴퓨터와 대화를 나눌 수 있음

Linux/UNIX 시스템 구조 (2/2) Users shell kernel 쉘과 명령어들 컴파일러와 인터프리터들 시스템 라이브러리들 shell 커널에 대한 시스템 호출 인터페이스 신호(signal) 단말기 처리 단말기 구동기 파일 시스템 디스크와 테이프 구동기 CPU 스케쥴링 가상 기억장치 kernel 하드웨어에 대한 커널 인터페이스 단말기 제어기 단말기 장치 제어기 디스크와 테이프 메모리 제어기 실제 메모리

Linux/UNIX 시작 (1/7) 사용자 명과 패스워드 시스템 관리자(System Manager, System Administrator): Linux/UNIX 시스템의 관리와 유지/보수를 수행하는 사람 사용자명(User Id): 사용자를 구분할 수 있는 고유한 이름 계정(Account): 시스템을 사용할 허가 (각 사용자는 계정을 부여 받음) 패스워드(Password)

Linux/UNIX 시작 (2/7) login: 로그인 password: 사용자명(login name)을 입력하고 RETURN 키 패스워드를 입력하고 RETURN 키 login: password:

Linux/UNIX 시작 (3/7) Linux/UNIX 시작 로그인 예제 (실제 수행해 봅시다.)

Linux/UNIX 시작 (4/7) 로그인 후에 일어나는 일은? 시스템을 설명하는 간단한 정보메시지 출력 시스템 관리자가 어떻게 시스템을 설정했는가에 따라 다름

Linux/UNIX 시작 (5/7) Shell Prompt Shell: 사용자의 명령을 읽고 해석하는 프로그램 Default Prompt: C Shell(%, $), Korn Shell($), Bourne Shell, … User Defined Prompt: 사용자가 지정(.cshrc)하여 변경 가능함 끝내고자 할 때는 Shell Prompt 상에서 “logout” 또는 “exit”를 입력

Linux/UNIX 시작 (6/7) Linux/UNIX 시작 Shell Prompt (계속)

Linux/UNIX 시작 (7/7) 로그 아웃 (작업 마치기) Linux/UNIX는 대소문자를 구별한다. 작업을 마치려면 로그 아웃(Log out) 명령으로 세션을 마친다. 로그아웃: 운영체제에게 현재 계정으로 로그인한 사용자가 작업을 마친다고 알리는 것 로그아웃 방법 Shell Prompt 상에서 CTRL-D 키를 누름 logout 명령어를 사용 exit 명령어를 사용 Linux/UNIX는 대소문자를 구별한다. 사용자명, 패스워드 입력 시 대소문자 구별에 유의

간단한 Linux/UNIX 작업 (1/12) 날짜 및 시각 확인하기 (date) 현재 로그인한 사용자 확인하기 (who) 디렉토리/파일 목록 보기 (ls) 파일 내용 보기 (cat, more) 패스워드 변경하기 (passwd) 과거 로그인한 이력 보기 (last) 명령어 매뉴얼 보기 (man) 명령어 정보 보기 (info) 명령어의 간략한 정보 (whatis), 명령어의 위치 (which) 자신의 호스트 이름 보기 (hostname, uname)

간단한 Linux/UNIX 작업 (2/12) Linux/UNIX 시작 날짜 및 시각 확인하기 (date)

간단한 Linux/UNIX 작업 (3/12) Linux/UNIX 시작 현재 로그인한 사용자 확인하기 (who)

간단한 Linux/UNIX 작업 (4/12) Linux/UNIX 시작 디렉토리/파일 목록 보기 (ls)

간단한 Linux/UNIX 작업 (5/12) Linux/UNIX 시작 파일 내용 보기 (cat)

간단한 Linux/UNIX 작업 (6/12) Linux/UNIX 시작 파일 내용 보기 (more)

간단한 Linux/UNIX 작업 (7/12) Linux/UNIX 시작 패스워드 변경하기 (passwd) (Password는 최소 6문자 이상이어야 하며, 사전상의 단어나 고유명사는 피하는 것이 좋음)

간단한 Linux/UNIX 작업 (8/12) Linux/UNIX 시작 과거 로그인한 이력 보기 (last)

간단한 Linux/UNIX 작업 (9/12) 명령어 매뉴얼 보기 (man) -- http://linux.die.net/man/

간단한 Linux/UNIX 작업 (10/12) 명령어 정보 보기 (info) – (명령어 종류에 따라 man과 동일하기도 함)

간단한 Linux/UNIX 작업 (11/12) 명령어의 간단한 정보(whatis) 명령어의 위치(which)

간단한 Linux/UNIX 작업 (12/12) 자신의 호스트 이름 보기 (hostname, uname)

.cshrc 파일 (1/3) Linux/UNIX 시작 로그인(C Shell 가정)할 때 자동적으로 실행되는 파일 -- bash의 경우, .bashrc 파일에 해당함 자신의 환경(Prompt 형식, 명령어 Alias 등)을 설정하기 위해서 사용 Prompt 상에서 .cshrc 파일 실행하는 명령어(source) $ source .cshrc

.cshrc 파일 (2/3) Linux/UNIX 시작

vi 편집기 .cshrc 파일 (3/3) 내 .cshrc 혹은 .bashrc 파일을 어떻게 작성하고 수정하지? Linux/UNIX 시작 내 .cshrc 혹은 .bashrc 파일을 어떻게 작성하고 수정하지? vi 편집기

Homework#1 Linux/UNIX 시작