Download It
Upcoming SlideShare
Loading in...5
×
 

Download It

on

  • 1,057 views

 

Statistics

Views

Total Views
1,057
Views on SlideShare
1,057
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Download It through DIRECT link
    COPY & PASTE the LINK
    ---> http://po.st/EVlmKp
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Common Differences Between Unix And Windows -Registry Unix programs keep track of their own files -GUI Built on top of Unix Built in the middle of Windows (recently) -Command line In Unix, the main interface with a program In Windows, barely supported if at all
  • 1981  4.1BSD 1983  4.2BSD 1986  4.3BSD

Download It Download It Presentation Transcript

  • OS 개관 서울대학교 컴퓨터공학과 ssrlab
  • 기종별 운영체제
    • IBM-PC Windows Vista, Windows XP
    • IBM MVS, VM, AIX
    • HP HP-UX
    • SUN Solaris
    • 기타 Linux, FreeBSD, …
  • DOS 의 발전
      • 1981 DOS 1.0
        • CP/M,MP/M
        • $ 40
        • 96% 차지
      • 1983 DOS 2.0
      • 1984 DOS 3.0
        • AT 발표
  • Windows 의 발전 Source : Wikipedia
  • Windows 7 – 2010(?)
    • Windows 7 (formerly codenamed Blackcomb, then Vienna) is a future version of Microsoft Windows .
    • It will include a new version of Windows Explorer that is being built by the same team that designed the Ribbon user interface in Office 2007.
    • It will likely include some form of the "Hypervisor" (Windows Virtualization) technologies that will ship shortly after Windows Server 2008.
    • It will also likely include the WinFS (Windows Future Storage) technologies, though they won't be packaged or branded as WinFS.
    • Microsoft says it might also make a subscription-based version of the OS available to consumers, but that's still in flux
    Source : Wikipedia, Paul Thurrott’s web site
  • History Of Unix
    • Unix has been around in one form or another since 1969 (probably before any of us were born)
    • Why is it important to know the history?
    • Why hasn’t it disappeared?
    • What has fueled its growth?
  • History Of Unix
    • 1965 :Bell Lab + GE + MIT (project MAC) MULTICS 개발 착수 .
    • 1969 :Bell Lab team quit. Thompson 과 Ritchie 가 PDP-7 에 초기 시스템 구현 . ( 어셈블리 어 )
    • 1971 : PDP-11 에 이식 , C 언어 개발
    • 1973 : C 로 다시 작성 . ( 크기가 1/3 증가 )
    • 대학에 보급 시작
    • 1974 : CACM 에 발표
    • 1977 : Interdata 8/32 에 이식 , 1BSD
    • 1979 : Version 7 UNIX, 3BSD
    • 1980 : XENIX (microsoft), 4.0BSD
    • 1982 : UNIX 시스템 III
    • 1983 : UNIX 시스템 V 지원 개시 , 4.2 BSD, 4.2 on SUN
    • 1984 : System V Release 2
    • 1986 : 4.3 BSD
    • 1987 : SVR 3
    • 1988 : OSF, UI
    • 1989 : SVR 4.0
    • 1990 : Solaris 1(SunOS 4.1.1)
    • 1991 : SVR 4.0 MP, Univel 설립 , Linux 0.01
    • 1992 : SVR 4.0 ES/MP, UNIXWARE 1(Univel), Solaris 2.0
    • 1993 : SVR 4.2, Novell 사가 USL 인수
    • 1994 : Mach 4, Linux 1.0
    • 1995 : SCO 사가 Unix 권리 인수
    • 1996 : NetBSD1.2, FreeBSD2.1.5
    • 1998 : Solaris 7, UnixWare 7(SVR5)
    • 2000 : Linux 2.2, UnixWare 7.1.1
    • 2001 : OpenUNIX 8
    • 2002 : NetBSD 1.6, FreeBSD4.7, OpenBSD 3.1
      • QNX 6.2, SCO UnixWare 7.1.3
    • 2004 : FreeBSD 5.2, Solsris 9 OE(2003)
      • Linux 2.6.3
  • Today, Two Major Divisions Linux Mac OS X (Darwin) FreeBSD Solaris Unix (1969) System V systems (1983) BSD systems (1978) IRIX Hurd HP-UX
  •  
  •  
  • System V Versus BSD
    • If you know one, you can learn the other fairly quickly
      • Some programs have different flags and run in different ways
      • Some files are located in different areas
    • We will cover System V in this class (Linux in lab)
  • 1969 – The Origin of Unix
    • Multics – a timesharing operating system that grew too complex for its own good
      • Timesharing was novel, as batch processing was the accepted norm
    • Ken Thompson of Bell Labs
      • Bell Labs withdrew from Multics support, and Ken lost a system to play “Space Travel,” a game he wrote
      • He wrote the first version of UNIX (UNICS) on a PDP-7
      • Soon joined by Dennis Ritchie
  • Computers of that age
    • No such thing as a video display
    • No keyboard as we know it
      • A teletype was used to communicate with the computer
        • Basically a glorified electronic typewriter
  • PDP-7
  • Unix features
    • From the very beginning, this was a programmer’s environment
      • Ability to code and test in one session
    • Interactive computing was stressed over batch processing
      • Batch processing involved coming up with a large volume of work that needed to be computed and feeding that work to the computer during your assigned time
      • Timesharing allows several programs to be run at once, although each takes a little more time
  • 1970’s
    • 1971-1973: In order to have this OS on other systems, Thompson and Ritchie create C and rewrite the OS in C
    • Unix use slowly spreads among academic circles
    • 1977: First BSD release (source code included!)
    • SCO created in 1978
  • The C Connection
    • From the early 1970’s, C and Unix have gone together
    • C was designed as a sort of “portable assembler”
      • Low level enough to do things fast
      • High level enough to be human readable
    • C remains the language of choice
  • 1980’s – The Unix Wars
    • 1983 – Networking gets added to BSD
    • Sun Microsystems gets founded
      • Early idea was to create a perfect Unix system with networking built in and sell it
    • Department of Justice breaks up AT&T
      • AT&T rushed to commercialize System V
    • Source code was no longer free
    • Error 2: Focus on the wrong market
      • Every version of Unix started competing with every other version, and Microsoft took over
  • 1985-93’s – FSF and Gnu
    • Once you give people something for free, they don’t want to have to pay for it
    • The Free Software Foundation (1985)
      • Gnu (Gnu’s not Unix)
      • Create free versions of popular tools (1986 – gcc, 1987 – most tools)
      • Overall goal was to develop a free kernel (It hadn’t happened by 1993)
    • Squabbling continued and Unix suffered
  • Linux
    • In 1991, Linus Torvalds announced the Linux project
      • A free Unix kernel for x86 systems
      • Used Gnu tools from the very beginning
    • By 1993, Linux had both internet capability and X capability
      • Just in time for the big internet boom
  • Linux’s Success
    • Internet culture and newsgroup postings caused a group of similar minded people to contribute and create a worthwhile kernel
    • A competing free attempt had problems
      • The free BSD attempt was mired in a lawsuit (3 files were copied illegally)
      • The Berkeley development group disbanded
  • Free Software Foundation
    • Founded by Richard Stallman
      • Wrote original version of gcc and gdb
      • Software should be free, because it should be free
        • As in “free speech, not free beer”
      • Wrote the General Public License (GPL)
        • You are free to do whatever you want as long as the source code goes with it no matter what
        • Controversy: Anything derived from a GPL’d work must itself be GPL’d
  • Open Source Movement
    • Software should be free just because – FSF viewpoint
    • Software should be free because free software is better – Open Source Movement viewpoint
      • Every problem can be eliminated if more people look at it
  • The Hacker Connection
    • The entire history of Unix has been co-mingled with the history of hackers
    • The hacker mentality continues to drive the use and progress of Unix
    • Groups of people create and maintain Linux and BSD systems for fun (and to better their resume)
  • Where Are We Today, And Where Are We Going?
    • The Single Unix Specification have been approved as an international standard
      • If a system wants to be called Unix, it has to conform to the guidelines in this standard
    • The open source movement continues to thrive and shows no slowing down
      • As anger and resentment for Microsoft continues (some unwarranted), people continue to look for a better alternative
  • Mentality Of Unix
    • Unix was designed with the K.I.S.S. principle
      • Keep It Simple, Stupid!
    • Why do something repetitive when you can automate?
      • Write scripts and programs for simple or commonly used tasks
    • Don’t overly complicate matters
  • “Third System Effect”
    • First system: a simple prototype that is missing needed functionality
    • Second system: overly complex system that throws everything in
      • Multics was a second system
      • Collapses under its own weight
    • Third system: simple system with improved functionality
  • Analogy
    • Do one thing, but do it well
    • Hidden menu is like command line options
      • Still getting a burger, just different
    Cf: http://www.in-n-out.com/history.asp = Unix Commands ??
  • Unix Versus Windows
    • Is Unix purposefully anti-GUI?
      • Not really…
      • Several window managers exist for X-windows
      • Basing an OS on a GUI makes it more complicated than it needs to be
    • Simple interfaces allow for different programs to easily communicate
      • Counterexample: How many different formats does Microsoft Word save as? How many of those can WordPad read correctly?
  • Multitasking/Multiuser (Multichoice)
    • Unix was always designed as a multiuser/multitasking system
      • More than one user can be logged on one machine at a time
      • More than one process can be running at one time (time sharing)
    • Many different ways exist to do things in Unix
      • Different graphical interfaces, different commands, etc.
  • For more information
    • Read chapter 1 in the book
    • Read “In the Beginning was the Command Line” by Neal Stephenson
      • joesacher.com/documents/commandline.php
    • Visit www.faqs.org/docs/artu/
      • Don’t worry about most of the book, but look at the philosophy and history sections
  • BSD(1)
    • 1974  U.C.Berkeley license 획득
    • 1978  BSD 판매개시 ($50)
      • ex editor, Pascal 컴파일러등 유틸리티만 포함
    • 1979  3BSD( 첫 OS 개선판 )
      • 페이지 기반의 가상기억 장치 채택
      • DARPA 지원 개시 (TCP/IP 개발 목표 )
    • 1980  4.0BSD
    • 1993  4.4BSD, FreeBSD 1.0
    • 1994  BSD/OS 2.0, NetBSD 1.0
    • 1995  FreeBSD 2.0, OpenBSD
    • 1998  4.4BSD Lite 2, BSD/OS 4.0, OpenBSD 2.4
    • 2000  BSD/OS 4.2, FreeBSD 4.2, NetBSD 1.5, OpenBSD 2.8
    • 2003  BSD/OS 5.0, FreeBSD 4.8, NetBSD 1.6.1, OpenBSD 3.3
  • BSD(2)
    • BSD UNIX
      • FAST File System 채택
      • socket 채택
      • reliable signal
    • 4.4 BSD
      • MACH의 메모리 관리 기법 채택
      • log-structured file system 채택
  • UNIX의 상업화
      • 1977 년   Interactive System 가 첫 UNIX 사업 개시 (PDP-11 용 )
      • 1982 년   Bill Joy (BSD 개발자 ) 가 Sun 을 공동 설립
        • Sun OS(4.2 BSD 기반 )( 후에 Solaris(SVR4 기반 ))
      • Microsoft 와 SCO 가 XENIX 개발
      • SCO 는 SCO UNIX 개발 (386 用 )
      • IBM AIX
      • HP HP-UX
      • DEC ULTRIX -> OSF/1 -> Digital UNIX
      • Sun OS 의 부가 기능
        • NFS (Network File System)
        • Vnode/Vfs interface
      • AIX 는 처음으로 journaling file system 도입
  • UNIX의 성공이유
      • 고급 언어로 작성
      • 간단한 유저 인터페이스
      • 단순한 프로그램으로부터 복잡한 프로그램 구성
      • 계층적 파일 시스템
      • 파일과 바이트 스트림에대해 일관된 포맷 사용
      • 주변장치에 대해 단순하고 일과된 인터페이스 제공
      • 멀티 유저 , 멀티 프로세스 시스템
      • 기계 구조를 은폐시킴
      • 유닉스는 처음 프로그램 개발을 지원하기 위한 편리한 시스템으로 설계됨
  • Mach
    • 1985 CMU 서 개발
    • micro kernel 기반
      • UNIX 의 커널이 너무 커짐
    • UNIX 프로그래밍 인터페이스 지원 (UNIX personality 지원 )
    • 다중 처리기서도 수행
    • 분산환경에 적합
    • 마이크로커널의 몇개의 단순한 abstraction 만 지원
    • OS 기능은 유저 레벨의 서버가 지원
    • OSF/1(1992) 과 NextStep(1989) 은 Mach 2.5 에 기반
    • Mach 의 초기 버전들은 모노리딕 커널과 4BSD 인터페이스를 제공하는 고위층으로 구성
    • Mach 3.0(1990) 이 첫 마이크로 커널 구현
  • Standards(1)
    • 초기의 System V 와 BSD 는 서로 비호환
      • 물리 파일 시스템이 서로 비호환
      • 네트워킹도 상이
      • 가상메모리 구조도 상이
    • 다수의 표준안 존재
      • System V Interface Definition (SVID) by AT&T
      • IEEE POSIX
      • X/Open Portability by X/Open Consortium
    • 각 표준안은 프로그래머와 OS 의 인터페이스를 정의 (function 과 자세한 semantics 를 정의 )
    • SVID 는 자세한 systemV 프로그래밍 인터페이스임
      • SVID : SVR2 용 , SVID2 : SVR3 용 , SVID3 : SVR4 용
  • Standards(2)
    • AT&T 는 SVVS(SystemV Verification Suites) 도 발간
    • 1986 년 IEEE 가 OS 표준 위원회 구성
      • POSIX(Portable OS based on UNIX)
    • POSIX 1003.1 (=POSIX.1(1990 년 발표 )) 은 SVR3 와 4.3BSD 합성
    • X/Open 은 1984 년 구성
      • 새로운 표준안 생성기구가 아님
      • 기존 de facto 표준안에 기반하여 개방형 CAE(Common Application Environment) 개발
      • X/Open Portability Guide (XPG) Issue4 를 1993 년 발간
    • XPG Issue4
      • POSIX.1 에 기반
      • 국제화 , 윈도우 인터페이스 , 데이터 관리 등을 포함
  • DOS 1.0(81) Windows 1.0(85) Windows XP (01) Windows XP 64-bit(03) Windows Auto- Motive .NET Connected car (03) SVR 4.0 (89) SunOS 1.0(82) Mach(82) 1970- 1980- UnixWare 1(92) 4.0BSD(90) Solaris1(90) OSF/1(90) Linux 1.0(94) NetBSD 1.0(94) FreeBSD 1.0(93) 1990- 2000- PDP 버전 (69) UNIX V1 (71) 3BSD(79) Windows 3.0 (90) Windows NT (91) Windows CE 1.0(96) OpenUnix 8(01) Solaris 9 OE(03) Linux 2.6.3(04) NetBSD 1.6(02) FreeBSD 3.1(02)
  • 1.2 필수적인 변화
    • 소규모 , 내장 컨트롤러 부터 MPP 까지 활용
    • 다양한 응용 (office, 대규모 DB, 입자 물리학 )
    • 원래의 설계가 단순 , 점진적 확장가능한 구조
  • 1.2.1 기능
    • IPC
    • 다중 스레드 응용지원
    • 위의 두 기능은 클라이언트 - 서버 모델에 유용 ( 서버가 클라이언트 당 하나의 스레드 생성 )
    • 화일 시스템 기능
    • FIFO files
    • 심볼릭 링크
    • 디스크 파티션보다 큰 파일
  • 1.2.2 네트워킹
    • BSD 의 TCP/IP 통합
    • 다수의 네트워크 인터페이스 ( 이더넷 , FDDI, ATM) 지원
    • 소켓 , 스트림즈 지원
    • 분산화일 시스템 -NFS, AFS, DFS(Transarc 社 )
    • 분산 서비스 (NIS, DCE)
    • 분산 OS(Mach, Chorus, Sprite)
  • 1.2.3 성능
    • 버클리 Fast file system
    • extent-based 할당
    • journaling기법
  • 1.2.4 하드웨어 변화
    • HW 의존 코드를 독립모듈로 분리 ( 이식성 향상 )
      • 예 , 인터럽트 취급 , 가상 메모리 변환 , 문맥 교환 , 디바이스 드라이버 등
    • 다중처리기 시스템
    • 1970 년대는 성능이 처리기 속도와 메모리 크기에 좌우 ( 스와핑 , 페이징 활용 )
    • 최근에는 I/O 병목화 -RAID
  • 1.2.5 질적 향상
    • 시스템을 보다 robust, 보다 reliable
    • 초기의 시그널은 unreliable
    • 시스템 크래쉬에 취약 ( 캐쉬 버퍼 )
      • fsck 로 복구 , 최근에는 journaling
  • 1.2.6 패러다임 전환
    • 1970 년대는 중앙집중형 ( 타임쉐어링 )
    • 1980 년대는 워크스테이션 등장
    • 이어 클라이언트 - 서버 컴퓨팅
    • 파일 서버 , 계산 서버 , DB 서버
    • 최근에는 분산 계산으로 전환
  • UNIX System Differences
    • Version 6 and 7 (1976, 1978)
    • System III (1982)
      • Named Pipes
      • The Run Queue
    • System V (1983)
      • Hash Tables
      • Buffer and Inode Caches
      • Semaphores, Shared Memory, Message Queues
    • System V Release 2 (1984)
      • Record /File Locking
      • Demand Paging
    • System V Release 3 (1987)
      • Remote File Sharing
      • I/O STREAMS
      • Enhanced Signal Operations
      • File System Switch
      • Shared Libraries
  • 1.2.7 여타 응용 영역
    • 초기의 단순한 시분할 응용
    • 근래에는 실시간 , 멀티미디어 응용에 이용
      • 예 . 자원 가용성에 대한 보장 , 정해진 응답시간 , 다수 처리기 사용보장등
  • 1.2.8 Small is Beautiful
    • 초기 유닉스는 small, simple
    • 초기 유닉스는 monolithic, 쉽게 확장 불가
    • 기능이 추가될 때마다 커널 크기 증가
    • 초기의 유닉스 철학 + 확장성 + 모듈성
    • Mach(OSF/1 과 NesxtStep 의 기반 )
    • 마이크로 커널은 성능이 다소 떨어짐
  • 1.2.9 신축성
    • 1980 년대 중반 원격 화일 지원 필요 대두 (DFS)
    • 타임쉐어링 클래스 , 실시간 클래스 지원
    • 동일한 작업을 수행하는 다수의 다른 방법 지원
      • 예 . vnode/vfs, exec switch, 스케줄링 클래스등
  • Traditional UNIX Kernel File system (s5fs) Block driver switch character driver switch Disk driver tape driver printer driver Network driver tty driver Virtual memory loader (a.out) Kernel
  • Modern UNIX Kernel
  • 1.3 과거와 미래
    • 대단히 대중화됨
    • 최근 윈도우 XP, Linux등이 위협
  • 1.3.1유닉스의 장점
    • 초기에 실비로 배급
    • 초기에는 small, simple
    • pipe 기법
    • 단순한 파일 시스템
    • 대부분의 시스템 응용이 데이터를 텍스트로 표시
      • ( 예 . /etc/passwd, /etc/tty 등 )- 쉽게 조작 가능
    • simple, uniform I/O interface
    • 이식성이 큼
  • 1.3.2 유닉스의 단점
    • 초기는 단순 , 후에 성능향상 등 이유로 기능 추가
    • 단순하고 유니폼한 유저 인터페이스 결여
    • ( 빌딩 블록 방법은 초심자에게는 부적합 )
    • victim of its own growth
  • References
    • Jason Villarreal, Introduction To Unix- CS 21