반응형
안드로이드 런타임의 Dalvik VM은 무엇일까요??

그림 출처 : http://android-developers.blogspot.com/2010/05/dalvik-jit.html

Dalvik은 Google의 Dan Bornstein이 만든 Virtual Machine 입니다.
우리가 작성한 코드는 Bytecode라는 기계에 독립적인 명령으로 컴파일되고 모바일 장치 안에 있는 Dalvik VM에 의해 실행됩니다.
 
Bytecode의 형식이 조금 다른긴 하기만 Dalvik은 결국 낮은 메모리용으로 최적화된 Java VM 이라 생각 하셔도 될 것 같습니다.

전형적인 Java에 대한 차이는 Dalvik VM은 .dex 파일을 실행 시키는데 이 파일은 표준 .class 와  .jar 파일이 컴파일 시점에서 변환된 것으로 이 .dex 파일은 클래스 파일보다 컴팩트하고 효율성이 높아 적은 메모리와 베터리를 사용하는 환경에 적합하다고 합니다.

그리고 Dalvik 이란 이름은 Bornstein이 그 의 조상이 살던 아이슬란드의 한 물고기 잡는 마을의 이름을 딴 것이라고 합니다.
 
↓↓↓이런 동네레요 ㅋㅋ아 억수로 멋있네


반응형

'컴퓨터&IT > 안드로이드 Android' 카테고리의 다른 글

Android - Activity  (0) 2011.08.24
Android 인터페이스  (0) 2011.08.24
Android application의 구조와 Life cycle  (0) 2011.08.24
Android Application 구성요소(Component)  (2) 2011.08.24
안드로이드 ? (Android)  (1) 2011.08.24
반응형

Google Android 에 대한 첫 번째 글입니다.
저도 이제 막 공부를 시작하려니 설레이네요 ^^

Android리눅스를 모바일 환경에 맞게 개조해서 만든 공개 운영체제입니다.
안드로이드 개발에는 다른 언어도 사용 가능하지만 공식적으로는 Java 언어를 사용하고 있다네요.
다양한 라이브러리를 제공하고, 써드파티 라이브러리까지 내장하고 있어서 어떤 책에서는 '오픈소소 집대성'이라는 표현도 사용하고 있습니다.
               


그리고 내장된 빌트인 프로그램과 사용자가 만든 프로그램이 동일한 API를 사용하기 때문에 모든 프로그램이 평등하다고 합니다.

안드로이드의 아키텍쳐는 아래와 같습니다.

Android System Architecture
그림 출처: http://developer.android.com/guide/basics/what-is-android.html

  먼저 제일 하위에 리눅스 커널(LINUX Kernel)이 있어서 백그라운드 스레드와 메모리를 관리하고, 보안, 디바이스 드라이버 등 저 수준의 관리를 담당합니다.

  다음 커널 위 계층에는 시스템 라이브러리(Libraries)가 있는데 이 라이브러리들의 동작이 장비의 전반적인 속도를 결정하기 때문에  Java가 아닌 C 또는 C++ 로 작성되어 있다고 합니다. 그리고 이 계층에 Android Runtime도 있는데요 Runtime은 자바 코어 라이브러리와 Dalvik 가상 머신(Dalvik VM)으로 구성됩니다. Dalvik 가상 머신은 모바일 디바이스용으로 최적화해 구현된 구글의 Java 격으로 이해 하시면 될것 같습니다. 

  세번째로 프레임워크(Application Framework) 계층에는 안드로이드의 API가 있습니다. Application은 직접 시스템 라이브러리나 하위 커널을 호출할 수 없기 때문에 API를 통해서 이들을 호출합니다.

  마지막 Applications 계층은 우리가 사용하고 보는 '앱'들이 되겠지요^^

여기까지 간단하게 안드로이드가 무엇인지에 대해 알아봤습니다.
혹시나 틀린 정보가 있다면 딴지 걸어주시길..^^
반응형
반응형

SQL injection, 악성 스크립트 등 서버를 공격하는 몇 가지 방법과 그 공격을 방어하는 프로그램 중 하나인 Web Knight에 대해 듣고 난 후 인간의 면역체계와 정말 유사하다는 생각이 들었다. 인간의 면역 체계는 외부에서 들어오는 물질에 대해 피아를 구분하는 기능이 중요하다.  그래서 면역 세포들은 피아 식별을 위해 유전자 재배열 과정을 거치고 흉선에서 선택되는 과정을 거친다. 그 후 외부의 물질을 만나면 체세포 돌연변이를 통해 그 물질과 결합하는 항체를 만들어 내거나 그 물질을 분해할 수 있는 효소나 세포를 활성화시켜 외부로부터의 침입을 방어한다. Web Knight 같은 프로그램 역시 외부에서 들어오는 패킷에 대해서 필터링 룰을 통해 피아를 식별하여 패킷의 통과와 차단 여부를 결정한다. 그리고 새로운 침입에 대해 면역세포가 체세포 돌연변이를 통해 면역 반응을 하는 것처럼 새로운 패턴의 서버 공격이 포착되면 새로운 필터링 룰을 통해 필터링할 수 있다. 물론 이런 비유가 끼워 맞추기 식의 비유일지도 모르지만 Web Knight가 오픈 소스인 것을 생각하면 같은 종이라도 각 개체가 다른 타입의 면역세포를(정확히 면역세포는 아니지만)가지고 있어서 어떤 개체는 특정 질병에 잘 걸리지만 특정 개체는 잘 걸리지 않는 점을 착안하여 개개인이 또는 단체가 가지고 있는 소스를 잘 통합 한다면 좀더 나은 필터링 룰을 제공할 수 있지 않을까 하는 생각이 든다. 물론 이것은 참여하는 모든 사람이 양심적인 경우 이지만 말이다.


반응형
반응형

OSI 7 Layer는 국제표준화기구 ISO가 1977년에 정의한 국제 통신 표준 규약입니다. 통신의 접속에서 완료까지의 과정을 7단계로 구분하여 정의한 것이며 하나의 컴퓨터에서 다른 컴퓨터로 데이터가 전송될 때, 데이터의 생성과정, 데이터의 전송과정을 표준화한 모델이라고 합니다.

이런 표준화 모델의 목적은 네트워크 설계를 간단히 하기 위한 프레임워크를 제공하고, 상호 호환성, 네트워크 문제 해결 시에 체계적으로 접근하기 위함에 있습니다. 그리고 추가 적으로 정보통신기술을 쉽게 학습하기 위한 교육의 목적도 있지요

전체적인 모형은 아래 그림과 같습니다.



■ Application Layer (응용 계층)
사용자가 네트워크를 이용할 수 있게 네트워크 관련 인터페이스를 제공하는 계층입니다. 사용자와 응용프로그램 사이라고 생각하시면 될 것 같습니다. 예로 메일전송(SMTP), 웹서비스(HTTP), 파일송수신(FTP), 호스트연결(Telnet), 네트워크 관리 프로그램 등이 있겠지요.


■ Presentation Layer (표현 계층)
데이터의 표현 방식을 결정하는 계층으로 Application Layer 에서 취급하는 다양한 형식의 표현 양식을 일반적인 전송형식으로 변환하고 암호화 하며, 데이터 압축 등의 기능을 수행합니다. 여러 종류의 파일이 각각 다른 포멧을 가진 것을 생각하면 쉬울 것 같네요


■ Session Layer (세션 계층)
응용프로그램 간의 연결을 수립하고 유지하고 종료하는 계층으로 논리적인 연결 방법을 결정합니다. 포트(port)연결이라고도 할 수 있습니다.


보통 위 세가지 계층은 소프트웨어로 통합 개 합니다.


■ Transport Layer (전송 계층)
통신하는 두 시스템 사이의 데이터 전송을 위한 통로를 제공하는 계층으로 전송 시스템과 수신 시스템 사이에 정확한 데이터 전송이 이루어지는데 필요한 기능을 담당합니다. 흐름을 제어하고 데이터를 정렬 및 확인 하며 재전송 전 오류를 수정합니다.
대표적인 프로토콜로 TCP가 있습니다. 그리고 게이트웨이 같은 장비가 이 계층에 속합니다.

■ Network Layer (네트워크 계층)
네트워크 상에서 패킷 전송에 관한 여러가지 사항들을 규정하는 계층으로 수 많은 시스템들이 연결되어 있는 네트워크 상에서 각 시스템을 구분하는 IP를 인식하여 데이터가 목적지까지 전송되도록하는 기능을 담당합니다. 대표적인 프로토콜은 IP입니다. 장비로는 라우터가 이 계층에 속합니다.


■ DataLink Layer (데이터링크 계층)
물리적으로 접속된 두 시스템간에 데이터 전송을 위한 계층으로 데이터를 Frame으로 Capsule화 하면서 MAC Address를 삽입하고 Frame이 물리적인 네트워크를 지나 오류 없이 전달 될 수 있도록 합니다. 데이터의 흐름을 제어하고 에러를 체크(수정하지는 않습니다.)합니다. 브리지나 스위치가 이 계층에 속합니다.


■ Physical Layer (물리 계층)
실제 bit로 이루어진 데이터가 전송될 전송회선과 전송되는 신호의 형태, 컴퓨터를 통신망에 접속하는 데 필요한 물리적 장비 계층으로 케이블이나 커넥터, 허브 등이 이 계층에 포함됩니다. 다시 말하면 전기적 신호의 형태 등에 대한 규정을 하는 계층입니다.

반응형

'컴퓨터&IT > 네트워크 Network' 카테고리의 다른 글

[5] 프로토콜 (Protocol)  (0) 2011.08.16
[4] Network 데이터 전송 원리  (0) 2011.08.14
[3] Network 구분  (0) 2011.08.12
[2] Network의 발달  (0) 2011.08.09
[1] 네트워크(Network) 란?  (0) 2011.08.09
반응형

프로토콜 (Protocol)은 서로 다른 기종의 컴퓨터 사이에 자료를 주고 받기 위해 약속된 규약으로
무엇을 어떻게 언제 통신할 것인가에 대한 규약이라고 생각하시면 됩니다.

흔히 언어에 많이 비교를 하더군요 서로 의사소통하기 위해서는 같은 언어를 써야하겠죠. (물론 아닌 경우도 있지만요^^)

대표적으로 아래와 같은 프로토콜들이 있습니다.^^

■ TCP/IP (Transmission Control Protocol / Internet Protocol)
 서로 다른 운영체제를 쓰는 컴퓨터 같에서 데이터를 전송할 수 있는 프로토콜로 인터넷에서 정보를 전송하기 위한 표준 프로토콜입니다.
 TCP는 데이터를 일정 단위로 나누고 포장하고 전송 중 일어난 에러를 복구하는 것에 관한 규약이고, IP는 목적지까지 데이터를 주고 받는 것에 관한 규약입니다.

■ ICMP (Internet Control Message Protocol)
 네트워크 컴퓨터 상에서 돌아가는 운영체제에서 오류메세지를 전송받는데 주로 쓰이는 프로토콜로 시스템간에 데이터를 주고 받는 역할을 하지 않습니다.
 ping 명령어가 이 ICMP를 사용해서 인터넷 접속을 테스트 합니다.

■ ARP (Address Resolution Protocol)
 주소 결정 프로토콜로 네트워크 상에서 해당 IP주소에 대응되는 네트워크 인터페이스 카드에 부여된 물리적 네트워크 주소인 MAC주소를 알려 주는 프로토콜입니다. 예를 들면 집주소를 입력하면 GPS 좌표를 알려주는 식이라고 이해하시면 쉬울것 같네요. ARP와 반대로 물리적 주소에 대응되는 IP주소를 알려주는 RARP도 있습니다.

■ SNMP (Simple Network Management Protocol)
 네트워크 장빌르 관리하고 감시하기 위한 목적의 프로토콜로 네트워크 관리자가 네트워크 성능을 관리하고 네트워크문제점을 찾아 수정하는데 도움을 줍니다.

■ SMTP (Simple Mail Transfer Protocol)
 인터넷에서 이메일을 보내고 받기 위해 사용되는 프로토콜로 주로 메일 서버 같의 송수신을 담당하며 메일 클라이언트에서 메일 서버로 메일을 보낼 때에도 사용되는 경우가 있습니다.

■ POP3 (Post Office Protocol version 3)
 인터넷에서 이 메일을 로컬로 가져오기 위한 프로토콜입니다.

■ FTP (File Transfer Protocol)
 TCP/IP 를 통해 서버와 클라이언트 사이의 파일을 전송하기 위한 프로토콜입니다.

■ RPC (Remote Procedure Call)
 TCP/IP 등을 통해 원격 호출에 사용되는 프로토콜로 멀리 떨어져 있는 컴퓨터상의 프로그램이 다른 컴퓨터 내에 있는 서브 프로그램을 불러내는 것을 의미합니다.
반응형

'컴퓨터&IT > 네트워크 Network' 카테고리의 다른 글

[6] OSI 7 Layer (Open System Interconnect 7 layer)  (0) 2011.08.20
[4] Network 데이터 전송 원리  (0) 2011.08.14
[3] Network 구분  (0) 2011.08.12
[2] Network의 발달  (0) 2011.08.09
[1] 네트워크(Network) 란?  (0) 2011.08.09
반응형

네트워크에서 데이터 전송 원리에 대해서 알아볼게요!
크게 동기식(Synchronous), 비동기식(Asynchronous) 전송과
signaling 방식에 브로드밴드(BroadBand), 베이스밴드(BaseBand) 방식이 있습니다.

먼저 동기식과 비동기식 전송에 대해서 알아볼게요! ㅋ

■ 동기식 전송(Synchronous Transmission)
  데이터를  미리 정해진 수 만큰 한 묶음으로 일괄 정송하는 방식입니다. 송신측과 수신측의 시간대를 맞춰 데이터를 전송합니다.



■ 비동기식 전송(Asynchronous Transmission)
  블록의 선두를 간지한 순간을 기준으로 해서 startbit와 stopbit에 의해 송수신 동작을 합치는 방식입니다.




다음은 signaling 방식에 대해 알아보죠.

■ 광대역(Broad Band)
  하나의 전송 매체에 여러 채널의 데이터를 전송하는 방식으로 원거리 통신에 적합합니다. 단일 링크를 통해 복수의 전송 채널을 전송할 수 있는 기술로 각각의 채널은 서로 다른 주파수에서 이루어지기 때문에 다른 네트워크의 방해를 받지 않습니다.음성, 데이터, 영상 등 멀티미디어 서비스를 제공합니다.


■ 기저 대역(Base Band)
  디지털 데이터를 그래도 보내거나 또는 전송로의 특성에 알맞은 부호로 변환시켜 전송하는 방식으로 정보 또는 신호를 이와 동일한 스펙트럼에 해당하는 전자기적 신호로 표현합니다. 같은 주파수 대역을 갖는 여러 개 신호를 하나의 전손매채를 통해서 동시에 전송할 수 없습니다.

두 방식에 대해서 비교해보면 다음과 같습니다^^

   Baseband  Broadand
 채널 상의 신호  디지털 신호  아날로그 신호 
 전송 방향  양방향  단방향 
 토폴로지  Bus, Ring  Bus, Tree
 전송 거리  10km 이내  10km이상(LAN은 그 이하)
 응용 예  데이터, 이더넷, 토큰링, ARCnet  음성, 데이터, 영상, B-ISDN, CableTV
 채널 수  단일 채널  다중 채널
 신호 복원 방법  Repeater  Amplifier
 장점  단순 기술, 저비용, 설치 용이  적은 수의 채널, 원거리 전송 가능
 다기능 동시 전송 가능
 단점  제한된 서비스, 전송거리 제약  복잡한 기술, 고비용의 설치비
반응형

'컴퓨터&IT > 네트워크 Network' 카테고리의 다른 글

[6] OSI 7 Layer (Open System Interconnect 7 layer)  (0) 2011.08.20
[5] 프로토콜 (Protocol)  (0) 2011.08.16
[3] Network 구분  (0) 2011.08.12
[2] Network의 발달  (0) 2011.08.09
[1] 네트워크(Network) 란?  (0) 2011.08.09
반응형

이번 포스트에서는 네트워크를 구분하는 방법 몇가지에 대해서 알아봅니다^^
제가 소개해 드릴 구분 방법은 세 가지!!

동작원리, 망의 크기, 구성형태따른 구분입니다.

차근 차근 살펴볼까요?

■ 동작 원리
 Peer to Peer (P2P, PtoP)
  각 스테이션들이 동등한 권하능로 서로 연결되어 서버와 클라이언트의 역할을 모두 수행하는 동작 방식입니다. 이 방식의 네트워크에서는 전용 서버가 필요없습니다.

 클라이언트/서버 (Client/Server)
  네트워크 상에서 각종 어플리케이션 프로그램과 데이터를 가지고 클라이언트가 요구하는 서비스를 제공해 주는 Server와 서버가 공급하는 데이터를 받아서 사용하는 Client로 나누어 동작하는 방식입니다.


■ 망의 크기
 LAN (Local Area Network)
  약 300m 거리내의 고속 네트워크로 한 건물 또는 캠퍼스 등에 최적인 규모의 네트워크

 MAN (Metropolitan Area Network)
  연관성 있는 LAN 상호간의 접속으로 이루어진 높은 데이터 전송률의 통신 채널로 구성된 네트워크

 WAN (Wide Area Network)
  건물, 기업, 도시 및 국가 간 등을 공중망을 통해 연결한 네트워크로 LAN이나 MAN에 비해 저속

 VAN (Value Added Network)
  WAN이나 MAN에 부가적인 통신 기능이나 응용 소프트웨어를 부가한 통신망으로 사실 망의 크기와 관련이 없는 네트워크이지만 대부분의 책에서 망의 크기에 따른 구분에 포함시킵니다.


■ 구성 형태
 버스 토폴로지 (Bus topology)
  케이블로만 일렬로 연결된 형태로 컴퓨터가 위치한 양쪽으로 데이터를 전달합니다. 트래픽이 증가하면 네트워크 속도가 떨어지고 케이블이 끊어지만 당연히 통신불가 상태가 됩니다. 케이블의 양 끝단에는 terminater가 있어서 여분의 신호를 흡수해서 다른 컴퓨터가 신호를 전송할 수 있도록 해 줍니다.



 링 토폴로지 (Ring topology)
  버스 토폴로지 형태에서 케이블의 양 끝을 연결해 고리 형태로 만든 형태의 네트워크입니다. 메세지 전송 권한을 의미하는 토큰(Token)을 사용해서 모든 컴퓨터에 동등한 액세스 기회를 제공하고 신호가 약해지는 문제가 없다는 장점을 가지고 있지만 연결된 컴퓨터 중 한대가 다운되면 전체 시스템이 다운되는 단점이 있습니다.(이런 문제는 FDDI로 해결할 수 있습니다.)



 FDDI (Fiber Distributed Data Interface)
  광케이블을 이용한 네트워크로 속도는 100Mbps이고 전송거리는 200km입니다.링 토폴로지 형태에서 링 하나를 더 연결한 형태입니다.



















 스타 토폴로지 (Star topology)

  신호를 분배해 주는 허브(Hub)라는 장치를 이용한 구성 형태로 허브가 고장나지 않는 한 어떤 컴퓨터가 다운되더라도 전체 시스템에는 영향을 주지 않습니다.



 스타-버스 토폴로지 (Star Bus topology)
  허브끼리는 버스 형태로 연결되고 각 컴퓨터는 허브에 연결된 형태의 네트워크 입니다.



 스타-링 토폴로지 (Star Ring topology)
  허브끼리는 링 형태로 연결되고 각 컴퓨터는 허브에 연결된 형태의 네트워크 입니다.



 메쉬 토폴로지 (Mesh topology)
  모든 컴퓨터가 거미줄 같이 연결된 구성 형태로 어느 한 연결이 끊어지더라도 전체 시스템은 통신이 가능합니다.

 

 

 

 

 

 


반응형
반응형


Network는 전신을 이용한 통신으로 부터 전화로 발전하여 이후에 최초의 패킷(packet) 교환 방식 네트워크인 ARPANET이 등장했습니다. 그리고 Xerox사의 Ethernet Network가 등장 했으며 현재 네트워크의 대부분은 이 Ethernet 방식으로 이루어져 있습니다.

■ ARPANET
Advanced Research Projects Agency + netowrk의 약어로 미 국방부가 보안 유지를 위해 개발한 이 ARPANET이 최초의 패킷 교환 방식의 네트워크입니다. ARPANET은 이후 인터넷의 모체가 됩니다.

■ 패킷(packet) 교환 방식
1960년대 초 군에서 음성통화의 보안 유지를 위해 음성 대화의 내용을 여러개의 조각(패킷)으로 나눠서 전송하고 수신 측에서 재조립하여 통화가 될 수 있도록 하기 위해 개발한 네트워크 방식입니다.

패킷 교환 방식 네트워크(Packet Switched Network)에는
 - TDMA (시분할 다중화)
 - CSMA/CD
 - Token System
이 있습니다.

각각에 대해서 알아 보겠습니다.


■ TDMA (Time Division Multiple Access )
시분할 다중화 방식은 하나의 중계기에 여러 사용자가 동시에 데이터를 송수신할 수 있게 하는 방식으로 동일한 주파수를 작은 시간으로 나눠서 사용자가 자신에게 주어진 시간에 주파수를 독점하게 합니다.


■ CSMA/CD (Carrier Sense Multiple Access / Collision Detection )
송신을 원하는 호스트는 송신전에 다른 호스트가 채널을 사용하고 있는지를 확인하고 만일 채널이 비어 있으면 전송을 시작하고 채널이 사용 중이면  계속 채널을 감시하다가 빈 채널이 감지되는 즉시 전송을 하는 방식으로 만일 충돌이 감지 되었을 때는 전송을 즉시 중단하고 이를 알린 후 일정 시간 후(수 ms)에 재전송을 시도하도록합니다.
쉽게 말하면 눈치 게임을 하듯이 데이터를 전송한다고 할 수 있습니다.



■ Token System
Token을 소유한 노드만이 데이터 전송을 위해 네트워크에 접근할 수 있는 방식으로 Token은 사용권한 신호를 의미며 이것을 통해 네트워크를 사용하는 노드를 제어합니다. Token은 데이터를 전송해야 되는 노드를 만날 때까지 노드 사이를 이동하고 데이터를 전송할 노드는 자신에게 Token이 올 때까지 대기했다가 토큰이 자신에게 왔을 때 데이터를 전송합니다. 이 방식은 충돌로 인한 지연시간이 없고 각 노드에 대한 네트워크 사용이 동일하게 보장됩니다.
반응형

'컴퓨터&IT > 네트워크 Network' 카테고리의 다른 글

[6] OSI 7 Layer (Open System Interconnect 7 layer)  (0) 2011.08.20
[5] 프로토콜 (Protocol)  (0) 2011.08.16
[4] Network 데이터 전송 원리  (0) 2011.08.14
[3] Network 구분  (0) 2011.08.12
[1] 네트워크(Network) 란?  (0) 2011.08.09
반응형

■ Network란 ?




Network는 고가의 주변 장치나 정보 등 컴퓨터의 자원에 대한 공유를 목적으로 탄생했습니다.
Network 를 정의 하자면
'컴퓨터 자원을 다수의 이용자가 공동으로 이용할 수 있도록 독립된 기능을 갖는 컴퓨터, 단말장치 및 기타 장치들을 서로 연결한 것' 이라고 할 수 있습니다.

대표적인 Network 이용 사례의 하나인 Internet은 전 세계 모든 종류의 컴퓨터와 통신망을 TCP/IP라는 규약을 통해 연결한 범세계적 통신 망입니다.

반응형

'컴퓨터&IT > 네트워크 Network' 카테고리의 다른 글

[6] OSI 7 Layer (Open System Interconnect 7 layer)  (0) 2011.08.20
[5] 프로토콜 (Protocol)  (0) 2011.08.16
[4] Network 데이터 전송 원리  (0) 2011.08.14
[3] Network 구분  (0) 2011.08.12
[2] Network의 발달  (0) 2011.08.09

+ Recent posts