3.ubuntu_custom.pdf



우분투 한국커뮤니티

국제적으로 승인받은 팀

-런치패드에 주소가 있고

-포럼이 있고

-메일링리스트가 있고 위키가 있으면 우분투 커뮤니티로 승인을 해준다.(2009.2)

 

sudo apt-get install build-essential

터미널에서 이 명령어 하나로 개발환경을 구축가능하다.

 

우분투는 데비안 패키지를 다 가져다 사용한다.

 

 

 

 

 

커스터마이징

배포판으로 인정 받으려면 가장 중요한 것 – 저장소를 따로 운영해야한다.

 

가상환경과 UCK

가상환경과USB메모리는 배포판 테스트가 용이하다.

Chroot, 버추얼 박스, VMware, USB메모리

 

Ubuntu Customization Kit

http://uck.sourceforge.net/

설치 명령어 : sudo apt-get install uck

기본 실행 : uck-gui

*배포판을 만들 때 여유공간이 5기가 이상을 되야한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

UCK 사용법

$./uck-gui

1. 초기환영말

2. 설치 언어 선택

3. 라이브CD 언어선택

4. 부팅언어 선택

5. 테스크탑 환경선택

6. ISO 선택

7. 만드려는 CD 이름 입력

8. 콘솔작업 할지 결정 (chroot 콘솔 )

9. 우비 , 오토런 추가 삭제 여부

10. ISO 풀고 CHROOT 환경 만들고 .. 등등 알아서 ...

11. 항목설정 ( 패키지 매니저 & 콘솔 )

계속 진행 완성으로 가도 되나 여기서 멈추는 이유는 좀더 세밀한 작업을 위해 멈추며 뒤에 가서 추가 설명...

 

 

SQUASHFS : 우분투 CD 700메가를 넘지 않기 위해 SQUASHFS를 이용하여 부팅시 압축을 풀면서 라이브 및 설치환경을 구성한다.

우분투 12.10 700메가를 넘어서 DVD에 담겨있다.(700메가는 의미없음)

 

UCK 주요명령어

uck-gui 정체는 uck 스크립을 순차적으로 실행 해주는 구조 .

uck-remaster-chroot-rootfs

uck-remaster-pack-rootfs

uck-remaster-pack-iso

 

 

 

우분투가 종류가 많은 이유는 여러 사용자를 끌어들이기 위해서이다.

유명환씨가 만든 이분투는 임베디드 개발에 필요한 툴들을 포함되어 있다.

 


2.invehicle_network.pdf



차량에 마이크로 프로세서 100~200여개 탑재

차량은 움직이는 병렬 컴퓨터

 

사람의 목숨이 달려있을수록 보수적인 경향이 크다.

비행기 -> 고속철도 -> 차량

 

기계적인 부품이 없다는 것은 결함이 줄어든다는 것을 의미한다.

유지보수가 줄어든다.

전자, 전기적인 구성요서면 안정선, 부피 등의 모든 면에서 효과를 얻는다.

증기기관에 의해서 인간이 힘을 통제할 수 있게 되었다.

전기의 장점 : 에너지의 생산지와 소비지를 이원화 시켜버렸다.

 

차량의 무게가 줄어들수록 차량의 효효율이 좋아진다. 기계적 부품대신에 전기, 전자적 부품을 사용하면 경량화가 된다.

 

과거의 비행기는 유압식으로 동작했다.

현대의 비행기는 전기, 전자적으로 동작한다.

요즘 차량들은 스캐너장비를 MCU에 연결하여 고장의 원인을 손쉽게 알아낸다.

 

요즘 비행기들은 Power-CPU를 사용한다.

물리적인 장비를 없애고 나서는 선이 문제가 된다.

요즘 비행기와 자동차들의 이슈는 배선의 문제이다.

 

CAN BUS를 쓴다. 비행기용 CAN 규약을 이용한다.

메인 라인을 이용해서 신호를 보낸다. 선의 개수를 줄여 무게를 줄이고 유지보수가 편해진다.

 

1977GM에서 처음으로 ECU(자동차 엔진의 점화시기를 결정)를 도입

트릭컴퓨터로 현재 차량의 상태를 계산한다. 연비를 계산하고 있다가 알려준다.

스캐닝 기능을 이용해서 차량의 고장을 쉽게 진단하게 된다.

 

90년대부터 OBD가 등장한다. 차량의 상태와 연비를 계산해준다.

미국내 차량의 탑재 의무화를 시킨다.

OBD를 연결해서 보면 RPM, 속도, 외부온도, 연비 등이 기록된다.

 

 

 

 

 

 

 

 

 

 

네트워크 아키텍쳐

토플로지 : 네트워크의 형상

실시간 특성 : 이벤트/타임 트리거

물리적 특성 : Connector/Medium의 유형, 최대 전송 길이, 전자파

페이로드 길이 : 전송하는 단위당 패킷의 길이

속력, 가용성, 안정

 

제어정보

LIN : CAN보다 싸게 로컬네트워크를 구성 -> 가격 경쟁력이 없어서 사라지는 중, CAN을 이용하면서 규모의 경제에서 얻어오는 이익을 취하게 됬다.

CAN(high/low) : 차량의 표준, 장비가 늘어나면서 실시간성이 강한 시그널이 문제가 되기 시작했다. 차량의 안정성을 보장하기 위해서 FlexRay를 개발

FlexRay : 이벤트/타임 트리거를 모두 지원한다. 실시간성이 보장되어야 하는 데이터는 타임트리거 방식으로 동작

TTCAN : CAN에서 타임트리거를지우

 

멀티미디어 정보

Bluetooth

MOST : 150Mbps 멀티미디어를 실어나르기 위한 시그널이다.

EatherNet : 100Mbps가 표준

 

 

 

백본을 FlexRay를 설치한다. 비행기를 따라 향후 이더넷으로 설치 추측

제어 정보는 FlexRay, 나머지는 CAN방식으로 구성

 

향후, 가장 높은 가능성은 백본은 이더넷으로 하고 각 부분 모두CAN으로 구성할것으로 추측

 

CAN은 버스구조이므로 라우팅 자체가 어렵지 않다.

 

 

MOST는 링 구조를 사용, 이더넷이 치고 올라올거 같아 MOST는 묻힐것이다.

 

차량내의 각 섹션에 스위치에 장치들이 물리고 스위치들은 백본에 물린다.

하나의 네트워크가 모두를 점유하지는 못할 것이다.

 

CAN은 차량에서 계속해서 살아남을 것이다. 이더넷은 CAN의 백본으로 널리 사용될 가능성이 높다. LINMOST는 향방을 알기 어렵다.

에어백과 ABS 등처럼 안정성과 밀접한 관련성이 있는것은 FlexRay가 쓰일 것이다.

 

 

CAN 구현 방식

Basic CAN

Full CAN

FIFO

FULL CAN w/ Receive FIFO

 

 

 

차량의 시그널 해상도가 더욱 조밀하기 때문에 리눅스를 이용해서 모든 차량의 CAN 시그널을 빼낼 수는 없다.

 

 

고려해야할 점

실시간성

비용

표준과 안전


1.multicore_scheduler.pdf



멀티코어 무어의 법칙

 

ARM – 옥타코어 2015~16

GPGPU롤 활용하려고 한다.

 

클럭 수를 낮추고 분산해서 돌리면 전력면에서 효율적인 효과가 있다.

서버 시장에서도 전력 소모량이 너무 많아서 ARM 서버의 시대가 될거라고 얘기한다.

기존의 서버보다 ARM서버를 사용하게 되면 1/8수준으로 줄일 수 있다.

64비트 우분투도 올려서 ARM 서버를 사용하려고 하고 있다.

 

 

멀티코어의 연구흐름

싱글코어의 시대 ->

멀티코어(호모 지니어스)의 시대 ->

Heterogeneous System

 

 

멀티코어 기술의 한계

새로운 하드웨어가 나와도 소프트웨어 수정없는 성능 개선이 어렵다.

 

주요 연구

전력소모 장벽문제

CPU 3GHz를 넘어서고 전력 소모가 더욱 많아진다.

 

메모리 장벽문제

메모리 처리율 성장속도(매년 10%)CPU 처리율 성장속도(매년 55%)의 차이가 크다.

효율적인 캐시 사용이 중요

 

프로그래밍 장벽문제

멀티코어를 활용한 소프트웨어 개발은 매우 복잡

멀티코어용 프로그래밍 모델의 중요성

 

확장성 문제

멀티코어로 인한 병목현상 : 상호배제와 락킹

                          코어 간 공유캐시 접근 시, 높은 비용

 

Fine-Grained Locking 늘리는 방향

상호배제 락킹 감소

공유 자료구조 줄이는 방향

코어 친화적 스케줄링(Affinity 고려)

효율적인 캐시 활용방향

 

 

 

*암달의 법칙 : 병렬 프로세싱으로 얻어지는 퍼포먼스를 계산하는 공식

멀티코어 구조

 

HomoGeneous

동일한 두개나 그 이상의 코어로 구성

다중 동일코어 사용

코어간의 공유 메모

일반적으로 캐시의 일관성을 위해 하드웨어가 지원해준다

 

 

 

HeteroGeneous

이종의 두개나 그 이상의 코어로 구성

ISA(Instruction Set Architecture)

범용코어와 가속코어를 동시에 사용하는 구조

ASMP

ACMP

 

NVIDIA Tegra

1코어와 쿼드코어간의 전환에서 스레싱 문제가 발생할 여지가 있다.

 

ARM

Big . Little solution System(엑시노스 옥타에 이용)

Cortex-A15(고성능)Cortex-A7(고효율)HeteroGeneous하게 사용하는 구조이다.

Switcher의 소스코드가 공개되어있다.

CCI(Cache Coherent Interconnect)

 

GPGPU System

서로간의 명시적 데이터전송 지원

소프트웨어에 의한 관리

OpenCLGPGPU를 활용한 컴퓨팅 지원(C99과 유사)

작업단위를 분리하면 컴파일러가 CPU GPU에게 작업단위를 할당

 

WebCL을 이용해서 웹에서도 GPGPU를 웹 가속에 이용

NVIDIACUDA

 

 

 

 

 

 

 

 

 

 

 

 

 

리눅스 멀티코어 기술

커널 – Lock Mechanism

       Load Balancing

       CPU Affinity

 

라이브러리 – OpenMP : 병렬 스레드 지원

             OpenGL : GPU를 이용한 렌더링

             WebGL : 웹기반의 3D가속

             OpenCL : GPGPU를 활용한 컴퓨팅

             WebCL : GPGPU를 이용한 웹가속

 

CFS(Completely Fair Scheduler)

 

DWRR(Distributed Weighted Round-Rpbin)

각 코어들의 시간 단위 안에서의 태스크들을 라운드로빈으로 스케줄링해준다.

레드-블랙 트리를 이용해서 쉬는 코어에서 바쁜 코어의 태스크를 가져온다.

 

 

 

*레드-블랙 트리

+ Recent posts