정리나 좀 해보자-_- 후...

클라우드 컴퓨팅이라는건 결국 그리드 컴퓨팅과 분산 컴퓨팅을 어떻게 잘 섞어서 만들어낸 녀석이다

기본적으로 클라우드 컴퓨팅이라는 것은 클라우드, 즉 구름안에 존재한다.

구름 안에 있다는 말이 무슨 말이냐면, 그것을 사용하는 사람들에겐 최소한의 인터페이스만을 제공하고 안의 구조에 대해서는 몰라도 된다는 뜻이다.

또한 클라우드 컴퓨팅은 서비스의 형태로 제공이 된다.

크게 세가지 Paas, Iaas, Saas로 나눌 수 있다는건 일단 여기선 넘어가고

가장 기본적인 기능에 대해서만 한번 생각해보면

일단 내가 알고 있는 전 세계로 퍼져있는 데이터센터의 컴퓨팅 파워를 한데 모은다.

고객의 필요에 따라 가상화 솔루션을 사용해서 고객이 원하는 환경을 만들어주게 되는것이다.

때문에 모든 환경, 즉 자원들이 원하는 형태로 배치되어야 한다. (여기서 환경, 자원이란 단순히 메모리를 말하는게 아니라 좀 더 포괄적으로 컴퓨터를 사용하는데 필요한 네트워크, 저장장치, 메모리, CPU, OS등과 같은 모든 하드웨어, 소프트웨어적인 것들을 말한다.)

그디고 당연히 사용한 만큼, 구성된 크기에 따라 금액을 청구한다.

다시 말하자면, 전 세계의 데이터 센터에서 전 세계의 고객에게 컴퓨팅 파워를 제공하는 것이 클라우드 컴퓨팅이 되시겠다.

술 마시고 주저리 쓴 글이라 나중에 보고 쪽팔리면 펑-


1) Kernel.org에서 최신 커널소스를 다운로드

2) 소스 압축해제

#tar -xvjf linux-/*version*/.tar.bz2

3) 개발용 필수 패키지 설치

#apt-get install build-essential bin86 kernel-package wget libncurses5

libncurses5-dev

4) 현재 사용중인 커널의 옵션설정을 가져옴

#cp /boot/config-/*version*/ ./.config

5) 커널 옵션 설정

#make menuconfig


6)
시스템 콜 등록 (다운받은 소스파일이 /usr/src 안에 있다고 가정)

#vi /usr/src/linux-/*version*//arch/x86/include/asm/unistd_32.h

7) 시스템 콜 테이블에 위에서 추가한 시스템 콜을 추가한다.

#vi /usr/src/linux-/*version*//arch/x86/kernel/syscall_table_32.s

8) 새로 추가되는 시스템 콜 함수를 만들어준다.

#vi /usr/src/linux-/*version*//arch/x86/kernel/custom_read.c

9) MakefileObject파일을 추가한다.

#vi /usr/src/linux-/*version*//arch/x86/kernel/Makefile

10) 시스템 콜 함수를 선언해준다.

#vi /usr/src/linux-/*version*//arch/x86/include/asm/syscalls.h

11) 새로운 커널을 컴파일한다.

#cd /usr/src/linux-/*version*/

#make-kpkg clean

#make-kpkg --initrd --revision=/*version*/ kernel_image

12) 새로운 커널을 적용한다.

#dpkg -i linux-image-/*version*/.deb

13) 재부팅한다.

#init 6


 
I. LOOSE COUPLING

  A real dependency is a state of affairs in which one system depends on the functionality provided by another. ⇔ artificial dependency
We cannot remove artificial dependencies, but if the artificial dependencies among systems have been reduced, ideally, to their minimum, we have achieved loose coupling.

II. SOA DEFINED AND EXPLAINED

  SOA is an architectural style whose goal is to achieve loose coupling among interacting software agents.
  The results of a service are usually the change of state for the consumer but can also be a change of state for the provider or for both

  A. A small set of simple and ubiquitous interfaces to all participating software agents. Only generic semantics are encoded at the interfaces. The Interfaces should be universally available for all providers and consumer
  B. Descriptive messages constrained by an extensible schema delivered through the interfaces. No, or only minimal, system behavior is prescribed by messages. A schema limits the vocabulary and structure of messages. An extensible schema allows new versions of services

  A few rules to call that architecture is service oriented
A. The messages must be descriptive, rather than instructive
B. Service providers will be unable to understand your request if your messages are not written in a format, structure, and vocabulary that is understood by all parties.
C. Extensibility is vitally important
D. An SOA must have a mechanism that enables a consumer to discover a service provider under the contest of a service sought by the consumer.

III. ADDITIONAL CONSTRAINTS

  There are a number of additional constraints one can apply on SOA

A. Stateless Service : improve scalability
B. Stateful Servce : improve performance
C. Idempotent Request : improve reliability

IV. DERIVING WEB SERVICES FROM SOA

A. Interfaces must be based on Internet protocols such as HTTP, FTP, and SMTP.
B. Except for binary data attachment, messages must be in XML

  There are two main styles of Web services : SOAP web services and REST web services

V. SOAP WEB SERVICES

A. Except for binary data attachment, messages must be carried by SOAP
B. The description of a service must be in WSDL

VI. SOAP RPCWEB SERVICES

  SOAP RPC “tennels” new application-specific RPC interfaces though an underlying generic interface.

VII. REST WEB SERVICES

A. Interfaces are limited to HTTP. The following semantics are defined
  1) GET is used for obtaining a representation of a resource.
  2) DELETE is used for removing representations of a resource.
  3) POST is used for updating or creating the representations of a resource.
  4) PUT is used for creating representations of a resource.
B. Most messages are in XML, confined by a schema written in a schema language such as XML Schema from W3C or RELAX NG.
C. Simple messages can be encoded with URL encoding.
D. Service and service providers must be resources while a consumer can be a resource.

Atrix 스펙
 
형 태
크 기

117.75 x 63.50 x 10.95 mm

무 게 135g
색 상 Black
디스플레이 4.0inch qHD(Quarter High Definition, 960x540) 16M COLOR TFT LCD
CPU NVIDIA Tegra2 1GHz Dual-Core processor
메모리 1GB DDR2 RAM, 16GB Storage
운영체제 Android Platform ver 2.2 (Froyo)
GPS 지원함
Browser 크롬 모바일, 크래들 장착시 (파이어 폭스)
Wi-Fi 802.11 b/g/n
터치 방식 정전식
카메라 화소 500만화소, LED플래시
촬영 모드 사진, 동영상
동영상 HD720(1280X720)
외부단자 3.5mm 외부단자, mini USB 5핀 단자, mini HDMI 단자
배터리 구분 표준형(1930mAh)
연속통화시간 약 540분
연속대기시간 약 250시간
블루투스 지원함(ver. 2.1)
외장 메모리 지원여부 측정 기준 최대 지원 용량
지원함 제조사 Micro SDHC 32GB
세티즌 테스트 Micro SDHC 32GB
통신 규격 HSPDA 14.4Mbps
멀티테스킹 안드로이드 기본 지원
기본 구성품 사용설명서, 대용량 베터리 2개, 3.5mm스테레오 이어셋, usb전용 충전기, 데이터 케이블, 베터리 충전기
 



설정 후 저장해놓고 사용
한글사용 : Window->Translation -> UTF-8 로 변경

Windows 환경에서 Linux서버에 존재하는 파일을 업로드하거나 다운로드하기 위해 사용하는 프로그램.
상당히 편리하다.


Installation 파일을 설치하여 사용할 수도 있고 Portable 파일로 받아서 압축을 풀어서 바로 사용할 수도 있다.


간단하게 호스트 이름과 포트번호, 사용자 계정을 입력하여 사용할 수 있다.

우분투에서는 처음에 root 비밀번호를 물어보지 않기 때문에 root 비밀번호가 설정되지 않아 su 명령을 사용해도 root권한을 얻을 수 없다. 따라서 처음에

sudo passwd root

라고 친 뒤 비밀번호를 입력하여 root비밀번호를 설정할 수 있다.
mksdcard [-l 레이블] SD카드의 사이즈(K를 붙이면 킬로바이트, M을 붙이면 메가바이트) 파일 이름


C 드라이브에 sdcard01.img파일 생성


AVD로 새로운 test emulator 생성
SD카드 부분에 생성한 sdcard 이미지 삽입


에뮬레이터에서 확인~


 


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="패키지"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
     <activity android:name="액티비티">                             <!-- MapActivity -->
   
<intent-filter>
          <category android:name="android.intent.action.MAP"></category>
   </intent-filter>
  </activity>
  <activity android:name=".main" android:label="@string/app_name">
      <intent-filter>
             <action android:name="android.intent.action.MAIN" />
             <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
  </activity>
 <uses-library android:name="com.google.android.maps"></uses-library>   
<!-- you must add this library -->

</application>

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>

; haribote-ipl
; TAB=4

CYLS EQU  10   
ORG  0x7c00   

; 이하는 표준적인 FAT12 디스크를 위한 기술

  JMP  entry
  DB  0x90
  DB  "CARDIABS"  ; Bootsector name (8바이트)
  DW  512   ; 1섹터 크기(512로 해야 함)
  DB  1   ; 클러스터 크기(1섹터로 해야 함)
  DW  1   ; FAT시작(보통은 1섹터부터)
  DB  2   ; FAT 개수(2로 해야 함)
  DW  224   ; 루트 디렉토리 영역의 크기(보통은 224엔트리로 한다)
  DW  2880   ; 드라이브 크기(2880섹터로 해야 함)
  DB  0xf0   ; 미디어 타입(0xf0로 해야 함)
  DW  9   ; FAT영역의 길이(9섹터로 해야 함)
  DW  18   ; 섹터(18로 해야 함)
  DW  2   ; 헤드 수(2로 해야 함)
  DD  0   ; 파티션을 사용하지 않기 때문에 여기는 반드시 0
  DD  2880 
  DB  0,0,0x29 
  DD  0xffffffff 
  DB  "CARDIAOS " 
  DB  "FAT12   "  
  RESB 18    

; 프로그램 본체

entry:
  MOV  AX, 0   ; 레지스터 초기화
  MOV  SS,AX
  MOV  SP,0x7c00
  MOV  DS,AX

; 디스크를 읽는다

  MOV  AX,0x0820
  MOV  ES,AX
  MOV  CH, 0   ; 실린더 0
  MOV  DH, 0   ; 헤드 0
  MOV  CL, 2   ; 섹터 2
readloop:
  MOV  SI, 0  
retry:
  MOV  AH, 0x02  ; AH=0x02 : 디스크 read
  MOV  AL, 1   ; 1섹터
  MOV  BX,0
  MOV  DL, 0x00  ; A드라이브
  INT  0x13   
  JNC  next   
  ADD  SI, 1   
  CMP  SI, 5   
  JAE  error   
  MOV  AH,0x00
  MOV  DL, 0x00  ; A드라이브
  INT  0x13  
  JMP  retry
next:
  MOV  AX, ES   
  ADD  AX,0x0020
  MOV  ES, AX  
  ADD  CL, 1   ; CL에 1을 더한다
  CMP  CL, 18   ; CL와 18을 비교
  JBE  readloop  ; CL <= 18 이라면 readloop에
  MOV  CL,1
  ADD  DH,1
  CMP  DH,2
  JB  readloop  ; DH < 2 라면 readloop에
  MOV  DH,0
  ADD  CH,1
  CMP  CH,CYLS
  JB  readloop  ; CH < CYLS 라면 readloop에

; 다 읽었지만 우선 할일이 없기 때문에 sleeve

fin:
  HLT     
  JMP  fin   ; Endless Loop

error:
  MOV  AX,0
  MOV  ES,AX
  MOV  SI,msg
putloop:
  MOV  AL,[SI]
  ADD  SI, 1 
  CMP  AL,0
  JE  fin
  MOV  AH, 0x0e 
  MOV  BX, 15 
  INT  0x10   
  JMP  putloop
msg:
  DB  0x0a, 0x0a 
  DB  "load error"
  DB  0x0a   
  DB  0

  RESB 0x7dfe-$ 
  DB  0x55, 0xaa


이것으로 기본적인 부팅이 가능 - _-)

+ Recent posts