Unix – Linux.

Slides:



Advertisements
Similar presentations
CI(Continuous Integration) 이학성. C ontinuous I ntegration? 2 지속적으로 품질관리 를 적용하는 과정 개발자가 기존 코드의 수정 작업 을 시작할 때, 코드 베이스의복사본을 받아서 작업을 시작하면서 코드의 변경.
Advertisements

프로그램이란 프로그램 생성 과정 프로젝트 생성 프로그램 실행 컴퓨터를 사용하는 이유는 무엇인가 ? – 주어진 문제를 쉽고, 빠르게 해결하기 위해서 사용한다. 컴퓨터를 사용한다는 것은 ? – 컴퓨터에 설치 혹은 저장된 프로그램을 사용하는 것이다. 문제를 해결하기 위한.
숙명여대 창병모 2011 가을 1. Unix/Linux 의 효과적 사용  command, shell programming, X-window,... 시스템 프로그래밍 능력 향상  file, process, network programming 시스템의 체계적 이해 및.
OS 변천사 UNIX-ANDROID OS 의 변천사 From UNIX To Android OS.
1 장. 유닉스 개요 및 기본 사용법. Contents  학습목표  유닉스의 특징과 발전 과정을 이해한다.  유닉스 시스템에 접속하고 해제하는 방법을 익힌다.  유닉스 명령어의 사용법을 익힌다.  내용  유닉스 개요 유닉스의 역사와 특징, 구조  유닉스 시스템.
1 장 유닉스 소개 1. 강의 목적 및 내용 2 강의 목적  유닉스 / 리눅스 시스템의 체계적 이해 및 활용  시스템 프로그래밍 능력 향상 강의 내용  유닉스 / 리눅스의 효과적 사용 명령어, 파일 시스템, 네트워킹, X- 윈도우, 쉘 프로그래밍  유닉스 / 리눅스.
Big Data & Hadoop. 1. Data Type by Sectors Expected Value using Big Data.
2016 유성환 Hybrid MOBILE.
Linux 9.X 기초에서 활용까지 Chapter 01 리눅스의 시작.
1장 유닉스/리눅스 소개.
컴퓨터와 인터넷.
OS 의 역사 서상우.
Deep Learning.
컴퓨터 운영체제의 역사 손용범.
목 차 C# 언어 특징 .NET 프레임워크 C# 콘솔 프로그램 C# 윈도우 프로그램 실습 프로그래밍세미나 2.
정보 보안 개론과 실습 네트워크 해킹과 보안 3부 해킹 전 정보 획득 Chapter 10. 목록화.
Chapter 01 리눅스와 유닉스의 이해 [ Professor : 배 헌 중 ]
OS(Operating System) 양태영.
리눅스 관리의 신개념 Levanta Intrepid M Demo
(1.1 v) 엔트리교육연구소 엔트리 카드게임 설명서.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
Programming in C.
코크파트너 설치 가이드 Window 7.
Power Java 제3장 이클립스 사용하기.
1. Windows Server 2003의 역사 개인용 Windows의 발전 과정
Windows Server 장. Windows Server 2008 개요.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
강 명 수 LINUX 소개 강 명 수
JSP Programming with a Workbook
Linux서버를 이용한 채팅프로그램 지도 교수님 : 이형원 교수님 이 름 : 이 은 영 학 번 :
UNIX 시스템 정보통신공학과 이 우 섭.
Visual Basic .NET 처음 사용하기.
2장. CentOS 리눅스 소개.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
1. C++ 시작하기.
리눅스 운영체제 운영체제 리눅스 소개 임베디드 리눅스 리눅스 명령어 한빛미디어(주).
Cross Compiler 설치.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
건축설계사 임동진.
AVR – ATmega103(ATMEL) Compilers & ISP
김인수 , 김성중 , 김동권 , 김재흠 , 김성태 발표일 : 발표자 : 김인수
Chap 6.Assembler 유건우.
2장. JSP 프로그래밍을 위한 환경구성 제2장.
2015 운영체제 특강 수업 소개 Special Topics on Operating Systems
OS(Operating System) 양태영.
홀인원2.0 설치 메뉴얼.
LIT-GenAppSetup ※ Texting+ 클라이언트 프로그램은 제품 인증을 받은 제품입니다.
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
제1장 Unix란 무엇인가?.
자율주행 차량용 드라이빙 컴퓨팅 하드웨어 플랫폼 05
OS 역사 손병규.
Tiny OS와 NesC Tiny OS Part1. Won Mi Sun – 17 지능제어 연구실.
9강. 클래스 실전 학사 관리 프로그램 만들기 프로그래밍이란 결국 데이터를 효율적으로 관리하기 위한 공구
데이터 베이스 DB2 관계형 데이터 모델 권준영.
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
18강. 인터페이스 – II - 인터페이스와 다중상속 - 인터페이스를 통한 로봇 장남감 만들기 프로그래밍
( Windows Service Application Debugging )
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
뇌를 자극하는 Solaris bible.
AT MEGA 128 기초와 응용 I 기본적인 구조.
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
유닉스 이론과 실습.
프로그래밍 언어 학습을 위한 가상실습환경 창원대학교 이수현.
과제 4: Thread (5월 9일까지) 4장 연습문제 풀이
Installation Guide.
Wake On Lan 발표자: 김 홍 기 김홍기 조성오
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
학부 컴퓨터공학부 교육과정 (학부) 2학년 4학년 3학년 1학년 1학기 2학기 IPP 자격과정 전공트랙
1장. C Language Synopsis.
Presentation transcript:

Unix – Linux

1965년 MIT, AT&T 벨 연구소, General Electric에서는 Multics라는 실험적인 운영체제를 공동으로 개발하는 프로젝트를 진행하였습니다. 이 프로젝트는 멀티태스킹, 멀티유저를 지원하는 초기 형태의 *시분할 운영체제를 만들고자 했던 것이었습니다. 그러나, Multics는 초기의 설계 목표와는 다르게 비대해지고 쓸모없는 운영체제로 개발되어갔고, 프로젝트는 좌초되기에 이르렀다. 그러나, 이 프로젝트에 참여했던, 켄 톰슨과 몇몇 연구원들은 프로그래밍에 관한 연구를 효과적으로 수행하기에 적합한 환경을 만들어 보자는 의도에서 계속하여 운영체계 개발에 몰두 하였고, 그래서 탄생한 것이 초기 형태의 UNIX였습니다. **시분할 운영체제 많은 이용자가 동시에 단말기를 통해서 직접 컴퓨터와 대화하면서 각 이용자의 프로그램을 수행할 수 있게 하는 운영 체제

당시에는 하드웨어를 운영하는 프로그램을 그 하드웨어의 어셈블러로 작성하여 사용했는데, 유닉스 역시 미니 컴퓨터인 PDP-7에서 돌아가도록 만들어진 것이었으며, 어셈블리어로 작성 되어 있었습니다. 그러니 다른 기종에 이식하려면 그 기종에 맞는 어셈블리어로 다시 작성해야만 하는 불편을 겪어야 했죠. 이렇게 초기의 UNIX는 기계 의존적이며, 기종간에 호환성이 없는 그런 운영체제였습니다. 그리고 UNIX를 운영체제로 사용하던 PDP-7 또한, 많은 소프트웨어를 제공하지 못하는 상황이었습니다 최초의 유닉스가 이식되었던 DEC 사의 PDP-7

1973년 이러한 상황에서 데니스 리치(Dennis Ritchie)가 C언어를 개발함으로써, 어셈블리 언어로 되어 있던 UNIX는 C언어로 재 작성 되어 다시 태어나게 되었습니다. 이제 UNIX는 이식성과 호환성있는 시스템으로서 사용자들로부터 큰 반향을 일으켰고, 벨 연구소를 중심으로 유닉스 사용자 그룹이 형성되며 빠르게 버전업 되면서 퍼져 나가게 되었습니다. UNIX는 주로 연구와 학습을 목적으로 대학이나, 연구소등에 무료로 배포되었고, 이를 이용하는 프로그래머들 또한 자연스럽게 서로에게 필요한 프로그램을 공유하는 공동체 분위기가 조성되어 있었습니다. Source 프로그램이 공개되어 있었던 UNIX는 많은 대학들과 연구원들에 의해 연구되어 마침내 상업 시장에 진출하기에 이르렀고, Berkeley Unix(BSD), SYSV와 같은 계열로 분화되고, SunOS, OSF/1,AIX, HP-UX, Solaris, IRIX, SCOUNIX등과 같은 다양한 버전의 유닉스 운영체제들을 탄생시키는 모체가 되었습니다.

1980년 대 초반 UNIX는 당시 가장 인기 있는 기종인 DEC의 PDP-11과 VAX를 주축으로 발전되고 있었습니다. 한편, MIT의 인공지능 연구소에서는 PDP-10에 탑재하기 위한 시분할 운영체제인 ITS를 개발하였는데, 연구내용을 상업화 하려는 움직임이 있었고, 이로 인해 분열의 조짐이 보이면서, 몇몇 핵심 연구원들은 상업적인 것을 목적으로 하는 회사로 떠나 갔습니다. 때마침, DEC이 VAX와 PDP-11을 주력제품으로 삼으면서, PDP-10을 단종시킴으로써 더 이상 ITS의 개발은 이루어질 수 없었습니다.

켄 톰슨과 데니스 리치 & PDP-11 

*GNU 프로젝트의 시작 1984년 1월 MIT 인공지능 연구소의 연구원으로 ITS 프로젝트에 참여하였던 리차드 스톨먼(Richard Stollman)은, 소스를 공개하지 못하도록 하는 분위기와 기술을 상업화 하려는 조류에 반감을 갖게 되었습니다. 그래서, 그는 새로운 시스템을 구상하게 되었습니다. 그 모델이 된 것은 UNIX였습니다. 그는 C로 작성된, 그리고 모두에게 공개된 UNIX 시스템을 위해 GNU(GNU is Not Unix) 프로젝트를 시작하게 되었습니다. 그는 GNU 프로젝트의 결과물들이, 자신이 몸담았던 MIT로부터 저작권과 관련한 어떤 제약을 받게 될 것을 우려하여, MIT 연구원 직을 사직할 만큼, 완전히 자유로운 운영체제를 원하고 있었습니다. *GNU’s Not UNIX [ GNU ] 무료 소프트웨어 재단(FSF)에서 개발하여 무료로 배포하고 있는 유닉스 운영 체계(OS) 호환 컴퓨터 프로그램의 총칭

1985년 GNU 프로젝트로 개발된 에디터인 Emacs에 대한 사용자들의 관심이 높아지면서 , 스톨먼은 GNU프로젝트 운영을 위해 FSF(Free Software Foundation,자유 소프트웨어재단)을 설립하였습니다. 개발이 진행된 프로그램들은 GNU프로그램들의 배포 라이센스인 GPL하에서 판매되었으며, 판매 수익은 프로젝트를 운영하는데 사용되었습니다. 모든 GNU프로젝트는 FSF를 중심으로 진행되어 갔습니다. 1990년 GNU 프로젝트는 거의 완성단계에 이르렀으나, 운영체제에서 핵심이 되는 커널이 빠져 있는 상태였습니다. 스톨먼은 Mach를 기반으로 한 커널인 'Hurd'라는 이름의 커널을 개발하기 시작하였으나, 이미 공개된 프로그램들에 대한 지원 등 여러 가지 이유로 GNU 커널의 개발은 좀처럼 진척되지 않았습니다.

리눅스의 등장 1991년 핀란드의 헬싱키라는 곳에서는 한 대학생에 의해 GNU시스템에 적합한 커널이 개발되고 있었는데, 이것이 바로 리누스 토발즈의 리눅스였습니다. 당시 21살의 대학생이었던 리누스는, 앤디 타넨바움(Andy Tanenbaum)교수가 학생들의 학습을 주 목적으로 개발한 미닉스(MINIX)를 사용하던 중, 유닉스와 호환되는 공개된 운영체제의 개발 계획을 MINIX사용자 모임에 발표하였습니다. 그는 개발 할 운영체제가 "단지 취미이며 GNU처럼 거대하거나 전문적인 것은 아니다"라고 프로젝트 초기의 의도를 밝혔습니다. 그래서, 초기의 리눅스는 이식성이 고려되지 않은, 다만 i386계열에서 운영되는 유닉스 호환 운영체제를 목표로 하는 프로젝트였습니다. 초기 버전 0.01은 가장 기본적인 커널만을 포함하고 있었으며, 실행조차 되지 않는 수준이었습니다. 얼마 후 리눅스 공식 버전인 0.02가 발표 되었는데, bash(GNU Bourne Again Shell)와 gcc(GNU C 컴파일러)정도가 실행될 수 있는 수준이었습니다. Shell - 사용자의 명령을 입력받아서 커널에 알려주는 역할을 수행한다

GNU와 함께 하는 리눅스 1992년 3월 리눅스는 0.95로 버전업 되었고, 인텔 x86칩에서 사용할 수 있었고, 그래픽 사용자 인터페이스가 추가 된 것이었습니다. GNU커널로 개발 중이던 Hurd의 개발이 순조롭지 않았던, 스톨먼과 FSF는 유닉스 커널과 호환 가능한 커널인 리눅스를 GNU시스템의 커널로 채택하기로 하였습니다. 리눅스는 강력한 GNU C 컴파일러인 gcc로 컴파일된 많은 응용프로그램들을 가지게 되었고, 둘의 결합으로 GNU시스템은 완전한 구조를 갖추게 되었습니다. 리눅스의 커널 부분은 리누스 주도 하에 계속 개발되었는데, 리누스는 최대한 확장 가능한, 즉 사용자에게 제어권이 있으며, 어떠한 인터페이스에도 종속되지 않도록 개발을 이끌고자 하는 의지가 있었습니다. 리누스는 그의 글을 통해서 리눅스의 성공의 원인을 다음과 같이 밝히고 있습니다. 리눅스의 성공은 훌륭한 설계 원칙과 좋은 개발 모델 때문이라고…

1994년 1년 6개월여 만에 버전 1.0 이 발표 되었고, 이 버전에는 네트워킹 기능 추가 되어 있었습니다. 이즈음, 리눅스에 확실한 수익모델이 있다고 판단한 밥 영과 마크유잉은 레드햇사를 설립하고, 최초로 자사에서 패키징한 레드햇의 최초 배포본을 발표하게 되었습니다. 1995년 리눅스는 더 이상 i386계열에서 돌아가는 학습용 운영체제가 아닌, 인텔, 디지털, 썬 스팍 프로세스에도 포팅됨으로 그 영역을 넓혔으며, 알파프로세서용의 64비트 리눅스도 등장하였습니다. 1996년 버전 2.0이 발표 되었는데, 여러 프로세서를 한 번에 사용할 수 있는 컴퓨팅 파워가 추가되었습니다.

1998년 1999년 2003년 ~ 현재.. 만여명의 프로그래머가 뉴스그룹에서 코드 향상과 테스팅에 참여하였습니다. SMP 기능의 공식 지원으로 최대 16개까지의 CPU장착 가능해지고, 최대 동시접속 사용자수 2048명까지 지원하는 시스템이 되었습니다. 2003년 ~ 현재.. 다양한 분야에 리눅스가 도입이 되고 있으며, IBM과 SUN이라는 거대 기업을 지원을 받으면서 Unix와 MS의 명성에 도전을 하고 있습니다. 국내 최초로 얼마 전 금융권에 리눅스를 도입하기 시작하는 등 국내에 다시 리눅스 열풍이 일어나지 않을까 하는 생각을 합니다. Smp - 대칭형 다중 처리라는 뜻의 컴퓨터 용어이다

리눅스의 특징 ① 진정한 다중 사용자, 다중 처리 시스템 ② 뛰어난 신뢰성, 동급 최고의 성능 ③ 폭넓은 하드웨어 지원   ① 진정한 다중 사용자, 다중 처리 시스템      ② 뛰어난 신뢰성, 동급 최고의 성능   ③ 폭넓은 하드웨어 지원   ④ 뛰어난 안전성과 보안성   ⑤ 다양한 배포판의 존재   ⑥ 다양한고 완벽한 네트워킹 기능   ⑦ 다양한 파일 시스템 지원   ⑧ 풍부한 응용 프로그램의 제공   ⑨ SMP와 NUMA지원       SMP -  대칭형 다중 처리       NUMA(Non-Uniform Memory Access) - 커널 2.6버전부터        ⑩다양한 사용자 지원 체계 Numa - CPU와 메모리가 한 Set를 이루는 것을 의미합니다