1 / 56

리눅스 신기술

2006 Fall. 리눅스 신기술. 주 홍 택 컴퓨터공학과 계명대학교. 실시간 운영체계 (1). 실시간 시스템 (Real-time system) 제한된 시간 내에 작업이 이루어져야 하는 시스템 논리적 정확성 뿐만 아니라 시간적 정확성까지 요구되는 시스템 (Deadline ) Hard Real-time system( 경성 실시간 시스템 ) 시간의 제약이 위배되는 경우 치명적인 결과 를 초래하는 시스템 (Mission-critical) 미사일 제어 시스템 , 공장제어 시스템

Download Presentation

리눅스 신기술

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 2006 Fall 리눅스 신기술 주 홍 택 컴퓨터공학과 계명대학교

  2. 실시간 운영체계(1) • 실시간 시스템(Real-time system) • 제한된 시간내에 작업이 이루어져야 하는 시스템 • 논리적 정확성 뿐만 아니라 시간적 정확성까지 요구되는 시스템 (Deadline ) • Hard Real-time system(경성 실시간 시스템) • 시간의 제약이 위배되는 경우 치명적인 결과를 초래하는 시스템(Mission-critical) • 미사일 제어 시스템, 공장제어 시스템 • Soft Real-time system(연성 실시간 시스템) • 시간적 제약 위배되는 경우 성능이 저하되는 시스템(다소 관용적임) • 동화상 재생 시스템 , 원격회의 등 • Firm Real-time system(준경성(firm) • 경성과 연성의 중간 형태로 종료시한을 넘겨 수행을 마치는 것은 무의미한 결과를 만드는 시스템(손실이 치명적이지 않음)

  3. 실시간 운영체계 (2) • 개발방법 • 실시간성 만족하기 위해Linux를 보완하여 기능을 향상시킴 • Ada를 이용, data flow 모델에 기초한 방법, OO(Object Oriented) 방법 • 프로그래밍 언어는 Ada, C, C++ 등을 사용 • 특 징 • 오픈소스: 상용의 RTOS에 비하여 비용이 절대적으로 절감됨 • 다양한 플랫폼에 적용 가능하여 유연성이 탁월함 • POSIX 표준 서비스 제공(GUI, 네트워크, 개발도구, 인터넷 서비스) • 필요한 H/W & S/W • 하드웨어는 고신뢰성을 제공하기 위해 결함 허용성을 지원해야 하고 확장성과 유연성, 코드의 ROM화, 그리고 기존의 일반 부품을 사용 • 소프트웨어 부분은 실시간 운영체제 또는 실시간 실행체제 등이 요구되며 이들은 태스크의 스케쥴링, 태스크간 통신 및 동기화, 인터럽트 처리, 프로세서 관리 등의 기능을 수행 • 주요 연구분야 • 명세와 검증, 설계방법론, 프로그래밍 언어, 스케쥴링 알고리즘, 자원관리를 위한 운영체제의 기능, 실시간 통신 구조, 결함 허용성

  4. 실시간 운영체계 (3) • 실시간 시스템 선택기준 Source :1997년도 Embedded System Programming 7월호 • 상용 실시간 운영체계 • LynxOS, OS-9, QNX, VRTX, VxWorks, 솔내시스템

  5. 클러스터링 • 인터넷의 폭발적 성장과 인터넷이 우리 생활에서 차지하는 중요도가 커짐에 따라 인터넷 정보 전송량도 극적으로 증가와 더불어 서비스를 제공하는 서부의 부하(load) 또한 증가하고 있는 실정 • 서버의 성능상 병목 문제와 직면하고 있지만 서버의 액세스(access) 용량을 늘려도 얼마 지나지 않아 쉽게 과부하가 되어 버림 • 서버들의 높은 가용성(availability)은 점점 더 중요해지고 있음 • 저비용, 고가용성에 대한 연구가 지속적으로 연구되고 있음 • 낮은 가격과 높은 가용성을 가지면서 증가하는 네트워크 요청에 효과적으로 대응하기 위한 해결책으로 여러 대의 호스트로 구성되는 클러스터링 기술이 각광을 받고 있음

  6. 클러스터링 개념과 종류 • 클러스터링 기술이란 여러대의 컴퓨터를 네트워크로 연결하여 사용자에게 하나의 대형 컴퓨터 시스템을 사용하는 것과 같은 기능을 제공하는 기술 • 리눅스 클러스터링 방법 • 연결망 : Fast Ethernet, Gigabit Ethernet, Myrinet • API : MPI(Message Passing Interface) PVM(Parallel Virtual Machine ) • Networking: NAT, Tunneling, etc. • 리눅스 클러스터링 목적 • 다수의 저가 시스템을 이용하여 고성능 시스템 구현 • 과학 계산과 같은 특수 목적의 응용 프로그램을 수행하기 위해 구현 • 규모(Node 수) • 2-수십노드 : 고성능 서버 수준 • 수십-수백(or 수천) 노드 : 슈퍼 컴퓨터 수준

  7. 클러스터링 기술 동향 • 국내외 리눅스 클러스터 관련 기술 현황 • 대부분 대학 및 연구소에서 특수 목적으로 개발 • 클러스터 시스템 관리 도구 부족 • 기존 Unix용 관리 도구를 리눅스로 이식 • 간단한 모니터링 도구 제공 • 고 가용성 기술 부족 • 동적 재구성 기술, 부하 균형 기술 부족 • 국내 리눅스 클러스터링 연구 동향 • 기 개발되어 있거나 개발 중인 요소 기술을 통합하여 시스템 구성 • 클러스터 전용 Ethernet 구동기 개발, 관리 소프트웨어 개발, 고가용성 클러스터링 기술 개발 등 미개척 분야가 산재해 있음

  8. Clustering 일반적인 구조

  9. Load Balancing 방법 • 부하조정 (Load Balancing) - NAT - IP Tunneling - Direct Routing - HTTP, FTP, SMTP, POP3, NNTP 등를 각기 다른 서버에 두는 방법, - 같은 기능을 하는 동급 수준의 서버를여러 대 두어 전체 트래픽의 일부분만을 담당하게 하는 방법

  10. 고 가용성 (High Availability) 부하조정의 경우에는 모든 노드가 한꺼번에 동작을 하는 것이고, Fail-Over의 경우에는 평소엔 동작을 하지 않고 프라이머리 서버가 문제가 발생했을 시에 백업 서버로써 가동을 함

  11. 고 가용성 (High Availability) • 고 가용성 기술이란 클러스터 환경에서 하나의 컴퓨터가 고장이 나더라도 다른 컴퓨터가 업무를 이어받아 수행함으로서 시스템 전체는 중단없이 서비스가 가능하도록 하는 기술 • 고 가용성 주요 구성 요소 • Diagnostics Configuration • 상호 의존적인 HA 구성에 대한 구조적인 기술 • Recovery Actions • 서비스를 보호하고 복구할 수 있는 동작 • State Management • 다양한 시스템 구성 요소의 상태를 감시하고 관리

  12. 고장 허용 수준 Fault Tolerance Fault Resilience High Availability Conventional Servers

  13. 고 가용성 기술 개발 분야 • 입출력 분야 • 디스크나 파일 시스템 손상시 데이터 복구 목적 • RAID • 파일 시스템(File System) • 네트워크 주소 변환 (NAT) • 노드 에러로 인한 IP 주소 자동 복구 • 모니터링 • 부하균형 • Dynamic load balancing vs. Static load balancing

  14. 임베디드 시스템 • 임베디드 시스템이란 프로세서와 메모리들이 들어가서 동작하는 소형 제어 시스템을 일컫음 • 현재에 와서는 보통 임베디스 시스템을 내장형 시스템이라고 부르기도 함 • 보통 임베디드 시스템의 경우 전체 시스템 가격이나 소비전력을 낮추기 위해 시스템에 많은 제한을 가하는 특성이 있음 • 범용 운영체제를 사용하기 보다는 특화된 실시간 운영체제를 사용하거나 혹은 운영체제없이 모니터 프로그램에 의해 로드돼 필요한 기능만을 수행하는 단일 프로그램으로 소프트웨어가 구성됨 • 기존의 시스템으로는 하기 힘든 것을 마이크로프로세서와 그에 따른 제어 프로그램이 내장된 임베디드 시스템이 수행함

  15. 임베디드 시스템의 발전과 적용 통신 스마트 폰, 네트워크 컴퓨터(NC), 네트워크 프린터, 케이블 모뎀, 셋톱박스, 허브, 스위치, 라우터, 무선 통신 단말, ATM 교환기용 가입자 장치, 광통신 장비, 공중망 교환기 제어, 통신위성, 위성제어 기지국 Automative Control : Electronic Control Unix(ECUs) Braking system, power train, automatic stability control, air bags,Window lifters, climate control, driver information system Digital imaging 프린터, 스캐너, 복사기, 팩스, 디지털 카메라 첨단특수분야 Simulation, RTOS 개발 킷, 항공, 우주, 국방, 의료, 멀티미디어 통신, 에너지 개발 등 첨단 임베디드 초소형 웹서버

  16. 보안 운영체제(Secure OS) • 리눅스가 보안상 문제가 되는 이유 • OS내부 구조가 완전히 공개되어 있음 • 리눅스 커널은 누구나 소스를 구해서 분석을 할 수 있음 • 리눅스 사용자의 급속한 증가 • 가격이 저렴함 • 성능이 뛰어남 • 사용방법이 쉬어짐 • 보안 구멍이 발견되면 그것을 이용한 공격도구는 리눅스용이 가장 먼저 만들어짐

  17. 보안 운영 체제 • 운영체제(OS) 레벨에서 파일시스템 위/변조 방지를 위한 접근제어 기능을 적용한Security Kernel Module • 보안 커널은 전자서명 인증방식을 적용한 접근제어 수행으로안전한 운영체제(OS)를 운영할 수 있음 • 보안 커널 설치 시 외부에서 해킹으로 인해 시스템 관리자(root) 권한을 획득하더라도 사용자 인증을 거치지 않은 불법사용자는 시스템관리자(root)라도 파일시스템 접근 이불가능함. 즉, 전자서명을 통한 사용자 인증 없이는 해킹자체가불가능함 • 시스템 접속 이후 사용자의 Log-in시점부터 Log-out까지 모든 Operation을관리,통제함

  18. 보안운영체제의 위치 • 와 기존 보안 제품과의 비교

  19. 보안 운영체제 주요 기능 • 운영체제(OS) 레벨에서 파일시스템 위/변조 방지를 위한 접근제어 기능을 적용한 Security Kernel Module을 사용한다. • 전자서명 인증방식을 적용한 접근제어 수행으로 안전한 운영체제(OS)를 운영할 수 있다 • 보안 커널 설치 시 외부에서 해킹으로 인해 시스템 관리자(root) 권한을 획득 하더 라도 사용자 인증을 거치지 않은 불법사용자는 시스템관리자(root)라도 파일 시스템 접근 이 불가능하다. 즉, 전자서명을 통한 사용자 인증없이는 해킹자체가 불가능하다. • 시스템 접속이후 사용자의 Log-in시점부터 Log-out까지 모든 Operation을 관리,통제할 수 있다.

  20. 리눅스 보안 제품들 보안커널 (Securiy Kernel) 가상 사설망 (VPN) 침입차단 시스템 (Firewall) System & Network Security 전자서명 인증기술 (PKI Solution) 침입탐지시스템 (Intrusion Dectection) 바이러스 백신 (Anti-Virus Vaccine)

  21. 보안 관리자 • 항상 최신의 프로그램을 사용 • 보안상 문제가 있는 프로그램 패치 및 업데이트 • 필요없는 프로그램은 사용하지 않음 • 보안상 문제가 되는 프로그램과 사용하지 않는 프로그램은 시스템에서 제거 • 시스템 관련 공지를 자주 확인 • 시스템 관련 감시툴 이용 • 많은 오픈소스 감시툴이 존재함 • 자신의 컴퓨터를 해킹해도 해커가 얻을 것이 없다는 생각을 하지 않음 • 리눅스 관리자의 mind가 가장 중요 CSO (Chief Security Officer)

  22. 국내 리눅스 시장

  23. 리눅스 업계 시장 현황

  24. 질의 및 토의

  25. 임베디드 리눅스 Hong-Taek Ju Computer Network Lab. Keimyung University Juht@kmu.ac.kr

  26. 임베디드 시스템이란? 1. 정의 - 정해진 특정 기능을 수행하기 위해 하드웨어와 소프트웨어가 내장된 전자 제어 시스템 - 마이크로프로세서를 운용하여 원하는 작업을 수행 및 관리하는 프로그램이 포함된 시스템 2. 현황 및 추세 - 산업용(자동차, 항공, 군사, 의료등)에서 가전, 정보 통신 용으로 주요 시장이 바뀌고 있음 - Post PC시대 : 사용 용이, 소형경량화 가속화 - 개인 사용자의 다양한 요구 발생

  27. 상업용 운영체제의 한계 • 불완전성 • 복잡한 응용프로그램의 기능 요구 수용에 한계 • 범용성 한계 • 특정 회사나 요구로 개발 → 다양한 요구 수용 한계 • 소스의 비공개 • 속도 향상, 안정성 검증, App개발등 Synergy 기대 난망 • 높은 비용 • 고가의 개발 도구 구입 및 기술 지원 → 상품의 경쟁력 약화

  28. 임베디드 리눅스 • 리눅스를 임베디드 시스템에서 사용할 수 있도록 소형화 시킨 것 • 불필요한 기능 삭제: 시스템 자원(메모리, CPU) • H/W 규격(특히 CPU)에 맞게 포팅 • 주목 받는 이유 • Source 공개 : 변경, 수정, 재구성 및 성능개선 최적화용이 • 안정 및 검증 : 리눅스 서버가 검증 • 개발 비용 및 사용료 저렴 • 개발환경 및 개발도구의 기본적 제공 • 완전한 운영체제 : 다양한 파일 시스템 제공(Ex. 메모리 보호) • Module단위의 설계 : 메모리 최소화 및 확장성 용이 • 다양한 CPU, System 이식 : 새로운 CPU, System 이식 용이 • 다양한 장치 Driver 제공 : 임베디드 시스템 업체에 영향력 • 사용자 및 개발자 수 : 기술 개발 및 초기 시장 점유에 유리

  29. 임베디드 리눅스의 문제점 • 윈도우 환경의 데스크 탑 환경 극복 • 표준 Graphic Library가 없음 • GUI 기반의 응용 프로그램 개발의 어려움 • 연구 개발 인력 확보 어려움 • 커널, 디바이스 드라이버, 응용 프로그램 • 다양한 언어의 지원 어려움 • 익스프로러에 필적할 웹 브라우져의 부재 • 많은 웹 문서가 익스플로러에 최적화되어 있음

  30. 임베디드 리눅스 솔루션 Browser E-Mail PIMS MP3 H.32x Game Word Excel PowerPoint Wireless Network MemoryManagement Java Security ... Applications PowerManagement LINUX Flash/ROMFile System GUI Libraries Kernel GNU Tool Chain Dev. Tools

  31. 개발 도구 • SDK의 사용 • S/W Emulator (MS-Windows 상에서 개발 장치처럼 동작) • Resource Editor (화면 설계) • Event Generator (가상적인 이벤트 발생기) • Window Based Cross Compiling Tool • Cygwin 사용 • No need for Linux machine • Click to Build Target Image on Visual Studio • Debugging and Logging • Emulator를 이용한 디버깅 • 실제 장치와 연결한 원격 디버깅 • 모든 이벤트에 대한 Trace와 Log

  32. Qt/Embedded (Trolltech) 거의 완벽한 GUI Shared Library : 700K–4M Compatible: Qt/X,Qt/Windows Unicode support X-windows System FREE ! Tiny-X Server + X-lib Qt/X, GTK+, Motif XIM, Font Server Desktop Linux Compatible 임베디드 리눅스: GUI • Micro-windows • FREE! • 500KB (per Application) • On-going GPL project • Win32 like, X-Lib like API • FLTK • Pico GUI, … • Other 3rd Party GUIs

  33. 응용 프로그램 • 시스템 제어 프로그램 (Control-Panel) • 입출력 장치, 네트워크, 시간 등 설정, 제어 • 기본 응용 프로그램 • PIMS, WEB- WAP browser, e-mail • Office 프로그램 • Thin client • Officeware (Microsoft 호환이면 좋은) • 멀티미디어 응용 프로그램 • MP3, MPEG4, VoIP, video conferencing • Flash Player

  34. 리눅스 커널 • File System • Power Management • Memory Management • … • The Real Embedded Linux Projects

  35. Visual Studio Based SDK

  36. GUI/SDK on Real-Product • ReFLEX 2way Pager forWebLink, Arch, Skytel,MetroCall • ARM720T, 8MB/8MB, 16Gray 240x160

  37. PalmPalm / SK-Telecom Hardware Intel SA1110 206Mhz (230 Mips) 4” 640x480 TFT 64K Color (rotated) Camera, H/W Voice Codec 32M Flash/32M SDRAM Bluetooth (230Kbps TCP/IP) Qualcomm MSM3000 (Serial I/F to SA1110) Software Tynux (PalmPalm의 Linux) Qt/Embedded for GUI Video Conference (H.323) Internet Browser, Game, PIMS, … IMT-2000 Phone

  38. 개발 환경의 이해

  39. 개발 환경의 이해

  40. 개발 환경의 이해

  41. 개발 환경의 이해

  42. 개발 환경의 이해

  43. 개발 환경의 이해

  44. 개발 환경의 이해

  45. 개발 환경의 이해

  46. 개발 환경의 이해

  47. 개발 환경의 이해

  48. 개발 환경의 이해

  49. 개발 환경의 이해

  50. 개발 환경의 이해

More Related