I2C protocol

전에 유영창님이 마소에 쓴 칼럼을 포스팅하긴 했는데 내용이 리눅스 디바이스 드라이버 쪽이라 이번에는 protocol관점에서 간단하게 포스팅 하기로 했다.

I2C는 일종의 protocol이라 디바이스마다 동작이 상이할 수도 있지만 기본 개념만 알고있으면 스펙을 보고 쉽게 제어할 수 있을 것이다. 이제 부터 시작~!

I²C 는 필립스에서 개발한 직렬 컴퓨터 버스이며 마더보드, 임베디드 시스템, 휴대폰등에 저속의 주변 기기를 연결하기 위해 사용된다. I²C 라는 이름은 Inter-Integrated Circuit의 약자이며 "eye-squared-see[아이-스퀘어-씨]" 라고 발음한다.

I2C의 장점은 단지 2개의 wire로만 통신이 가능하다는데 있다.
1개의 wire는 SCL로 uni-direction이며 Master에서만 출력한다.
나머지 하나의 wire는 SDA로 bi-direction이며 Master와 Slave에서 In/out으로 동작한다.
(물론 Multi-master환경에서는 SCL역시 bi-direction으로 동작하나 여기서는 Single-master임을 가정한다.)

DIAGRAM


위의 그림과 같이 Master에는 여러개의 Slave가 SDA, SCL의 wire로 연결되어 있으며,
SDA, SCL에는 pull-up register가 달려있다.
각 Slave마다 Slave address가 존재하며 Slave에 따라 10bit또는 7bit으로 이루어져있다.
Slave Bit수에 의해 동일한 버스에 1024개 또는 128개의 Slave가 존재할 수 있으나 이중 16개는 예약되어있다.
(즉, 1008개와 112개가 최대이나 프로토콜일 뿐이므로 굳이 예약된 것에 대한 것이 잊어버리자-_ -b)

WAVEFORM


신호는 크게 START bit , DATA bits, STOP bit의 3가지로 나뉜다.

START와 STOP은 SCL이 HIGH일 때 변하며, DATA는 SCL이 LOW일 때 변한다.
(protocol이 진행 중이지 않을 경우에는 pull-up register에 의해 SDA, SCL모두 HIGH상태이다.)

START는 위의 파형과 같이 SCL이 HIGH일 때 SDA가 Falling하는 경우로 slave에게 protocol이 시작됨을 알린다.

STOP은 SCL이 HIGH일 때 SDA가 Rising하는 경우로 slave에게 protocol이 종료 됨을 알린다.

DATA는 SCL이 LOW일 때 SDA가 변하며 SCL이 HIGH일 때 SDA값이 valid하다.
또한 DATA bits는 ACK와 R/W신호를 포함한다.(R/W신호는 HIGH일 경우 READ, LOW일 경우 WRITE이다.)

I2C 전송은 마스터 입장에서 크게 2가지 경우로 나뉘다. Slave에 data를 write하는 Transfer와 Slave로 부터 read하는 receive의 경우이다.

START와 STOP, R/W 신호는 무조건 Master에서 생성하는 것이나 data와 ack는 Transfer인지 Receive인지에 따라 Master 혹은 Slave에서 생성한다.

I2C Transfer
다음은 0x33의 Slave address를 가지는 장치의 0x12번 register에 data 0x21를 write하는 예이다.
(노란색 부분은 Master가 발생시킨 신호이며 푸른색은 Slave가 발생시킨 신호임에 유의한다.)

  • Start+Slave Address :
    Master에서 start signal을 발생시킨 후 slave address를 버스에 던져 준다.
    각 slave device는 master가 던진 address를 자신의 address와 비교하여 맞지 않으면 아무 동작도 하지 않고(SDA는 pull-up에 의해 HIGH상태유지), 맞으면 ACK타이밍에 SDA를 LOW로 만들어 준다.
    (R/W signal은 write인 '0'임에 유의한다.)
  • Register Address :
    Master는 Slave address단계에서 ACK를 확인한 후 해당하는 register address를 다시 버스에 던지고 ACK신호를 기다린다.
  • DATA+Stop :
    Register Address단계에서 ACK가 발생했으면 Master는 다시 쓰고자 하는 Data값을 bus로 던지면 Slave는 ACK신호를 발생시키게 되고, Master는 그 후 Stop signal을 발생시켜 통신을 종료한다.

I2C Receive
다음은 0x33 Slave address의 0x12번 register를 read하는 예이다.

  • Start+Slave Address+Register Address :
    이 구간의 동작은 앞서의 Transger동작과 같다. R/W sinal이 우선 write인 '0'임에 유의한다.
  • Restart+Slave Address :
    Master는 Re-start signal을 발생 시키고 다시 Slave address를 READ signal('HIGH')와 함께 발생시키고,
    Slave는 ACK signal을 발생시킨다.
  • DATA + Stop :
    Slave는 해당하는 register의 값을 SDA를 통해 발생시키게 되고 Master는 ACK를 날린 후 Stop signal과 함께 통신을 종료한다.

위의 Transfer와 Receive의 예는 Texas Instruments의 TPS65010이라는 칩을 예로 든 것이다.
I2C를 사용하는 Slave device마다 대동소이한 형태의 통신을 하기때문에 I2C의 기본 개념과 해당 장치의 Spec만 잘 보면 I2C를 통하여 쉽게 장치를 컨트롤할 수 있을 것이다.

<참고자료 : wikipedia i2c, 유영창님의 "임베디드 리눅스로 I2C버스에 접근하자", tps65010.pdf>

사용자 삽입 이미지

최근 하는 삽질입니다. 아직 진행중이구요.
오늘 너무 달렸나 뒷골이 땡기네요. 날씨가 많이 쌀쌀해졌지요? ^^;


경로는 Adium.app/Contents/Resources/ko.lproj 이런식으로 넣어 주시고 아디움을 재시작 하시면 한글로 적용됩니다.
아직 다소 한글화 덜 되어 있는 부분과 어색한 부분 등이나 추가할 부분은 댓글로 알려 주시기 바라며 많은 테스트를 부탁드립니다.

추가: 캐티탈님이 알려 주신 몇가지에 대해 수정되었습니다.
+설치전 안내
아래의 포스팅을 보시고 osx 이미지까지 받으셨다면.. 이제 슬슬 달려 보겠습니다.
md5 체크를 해야 하나-_- 일단 달립니다.
빈 dvd를 한장 준비하시고 네로(nero 6이상)에서 가장 느린 속도로 레코딩을 해주세요.
보통 4기가 이상이라면 20분 이상 걸립니다. 만약 dvd-rw가 없다면.. 다음으로 패쓰!
dvd-r보다는 dvd-rw로 레코딩을 권장합니다. 행여 이미지가 잘못된 경우 설치중에 멈추는 증상이 발생하니까요.
레코딩이 완료되면 이미지 osx를 설치할 파티션을 만들어 줍니다.

미리 준비한 하드를 fat32로 포맷합니다. 포맷이 완료 되면 이제 레코딩한 dvd를 넣고 윈도우를 재시작 합니다.
단, 주의할점은 하드가 하나있고 파티션을 만들어서 하는경우라면 각별한 주위를 요구합니다. 또한 마우스와 키보드가 둘 다 usb여야 설치가 원할합니다.
먼저 xp가 설치되어 있고 백업 하드가 하나 있을경우 남은 파티션에 osx를 설치하면 되나, 파티션이 3개라면 문제는 달라집니다.
파티션의 순서에 따라 나중에 듀얼부팅이 되기도 하고 안되기도 합니다. 파티션이 3개인 경우 첫번째 파티션에 xp, 두번째 파티션에 osx, 마지막 파티션에 백업하드가 적당합니다. 또 파티션의 순서에 해당 문자열이 맞나 확인하세요. 현재 d드라이브지만 매일 나중에 만든 파티션이라면.. d드라이브가 백업 파티션이 되고 e드라이브가 osx파티션이 되야 합니다.
이 부분에서 꼭 신중을 기해 주세요. 잘못하면-_- xp까지 날리게 됩니다. 자신의 하드의 파티션 정보를 분명히 알고 가셔야 합니다. 또한 만약을 위해 xp를 ghost나 true imaes로 백업해 두세요.
물론 다른 하드에 설치하는경우라면 크게 걱정할 필요없습니다.
저는 다른 하드에 설치하는걸 권장하고 싶습니다-_-;;

-듀얼 부팅을 위한 작업?;;
우선 레코딩 씨디를 읽으면 chain0 이라는 파일이 있습니다. 이 파일을 C:\로 카피합니다. 그리고 C:\boot.ini 파일을 열어 주세요.
그리고 맨 아랫줄에 아래와 같이 추가해 주세요.
c:\chain0="Mac OS X 10.4.7(여기는 마음데로 적으시면 됩니다.)"
그리고 저장합니다. 0은 숫자영입니다.


-하드개 2개 이상인 경우
osx설치전에 메인 하드 즉(xp가 설치된 하드)를 제거합니다. 케이블을 빼어 두세요. 그리고 설치할 하드만 연결합니다. 설치가 완료 된 후에 다시 케이블을 연결하면 됩니다. 여기서 2하드의 마스터와 슬래이브 설정을 잘 해두세요. 만약 나중에 연결시에 osx하드가 마스터로 된다면-_-;; 컴퓨터를 끄고 xp가 설치된 하드만 연결하셔서 부팅하셨다가 다시 끄고 나중에 osx하드를 연결하시면 내츄럴하게 슬래이브로 연결되겠습니다.

-하드가 1개인 경우(각별히 주의를 요망) 만약을 대비해 위에서 말했듯이 acronis ture images 같은 녀석과 acronis disk suit 이라는 2개 유틸을 설치해 두세요. 첫번째 녀석은 백업을 하는 녀석이구요. 2번째 디스크를 관리/포맷/삭제 등을 합니다. 물론 2번째 유틸을 설치하시고 부팅가능한 CD를 만들어 주세요. 만드는 방법은 유틸을 실행하시고 공 CD한장을 넣고 bootable media? 던가 하는 메뉴를 누르면 만들어 줍니다. 물론 트루 이미지도 나중에 백업한걸 복원하기 위해서 한장 만들어 두세요.

+설치 시작

부팅하면 cmos설정에서 dvd을 첫번째로 부팅되게 지정하고 저장한 뒤에 나오세요.
그리고 dvd로 부팅이 시작 된다면.. 처음 다윈?이라 부르는 도스처럼 생긴 녀석이 등장합니다.
(8)부터 숫자를 카운트 다운합니다. 긴장하지 마시고 esc를 누르시면 구워둔 dvd 이름(jas 10.4.10 os x 어쩌고 이런식)과 하드가 보일겁니다. 여기서 dvd를 선택하시고 -v를 입력 후에 엔터를 눌러 주세요.
그럼 한참 영어가 올라오다가 mac의 기초 화면이 나올겁니다. 만약 나오지 않는다면 첫번째 포스팅에서 강조한 wiki 리스트에서 자신의 컴퓨터 사양을 확인하세요-ㅅ-;;


설치 언어를 고르는 부분이 나왔다면 한국어를 선택합니다. 그리고 설치를 진행하시고 하드를 선택하는 부분이 나옵니다. 물론 하드나 파티션이 보이지 않을 수 있습니다. 윈도우에서 작업 표시줄이라 부르는곳에서 디스크 유틸리티를 선택합니다.

사용자 삽입 이미지


사용자 삽입 이미지


파티션이나 혹은 하드의 이름을 입력하시고 지우기를 클릭하세요. 확장 저글링으로 포맷이 제대로 됬다면 디스크 유틸리티를 닫아 주세요. 그럼 설치화면 설치가능한 디스크,파티션이 보입니다. 그 뒤 설치 옵션에서 바로 뒤로 하지 마시고 자세히 보셔서 자신의 시스템에 맞게 패치를 선택해야 합니다. intel cpu이면 인텔 패치를, amd cpu면 amd cpu를 선택하시고, 그래픽 카드의 경우 역시 자신에 딱 맞는 드라이버가 있을 경우에만 선택하세요. ati라던지 nati, titan등 잘 보르시면 해당 패치를 누르면 아래 설명이 나오니 참고하시기 바랍니다. 프린터 드라이버는 자신의 보유 기종만을 선택하시고 랭귀지는 한국어만 선택합니다. 또 x11은 나중에 설치해도 되니 설치하지 마세요.

그럼 계속 설치합니다. 설치가 다 되셨으면 재시작을 하시면 xp부팅화면에서 아까 추가한 mac osx항목이 있을꺼에요. 만약 이 화면이 나오지 않고 mac 설치시에 나온 부트로더가 나온다면 esc를 누르시고 xp를 고르시면 기존 윈도우xp로 가실 수 있습니다. 허나 설치후에 재시작이 되지 않으면-_- 삽질을 시작해야 합니다. 오늘은 여기까지만 달립니다 :)
안녕하세요. 블로그에 이렇게 긴 글을 쓴적이 없는데;; 어쩌다 보니.. 어쨋든 시작합니다!!
우선 가장 먼저 자신의 시피유에 대해 sse 지원 여부를 확인합니다.
cpu-z라는 프로그램으로 아래와 같이 확인 하시면 됩니다.
첨부된 위 파일을 압축을 푸시고 실행하셔서 첫 화면에서 보입니다.

사용자 삽입 이미지

저 부분에서 sse3까지 지원하는걸 확인했습니다. 여기서 살짝 희비가 교체하게 됩니다.
sse2까지만 지원한다면 osx 10.4.6 버전까지만 설치 하실 수 있습니다. 따라서 처음부터 잘 결정해야겠지요.
sse3까지 지원되면 버전에 상관없습니다. 여기까지는 되셨겠죠?

그럼 다음 사항으로 자신의 시피유, 메인보드, dvd-rw, 하드 디스크, 그래픽 카드에 대해 충분히 알아 두셔야 합니다. 모델명이 뭔지 사용된 칩셋이 뭔지 등을 알아 두세요.

제 사양은 아래와 같습니다.
시피유: amd 베니스 3000+
보드: abit kn8 ultra(칩셋은 nforce4)
하드: 사타 160기가하드, ide 80기가 하드(이 하드에 osx를 설치하였습니다.)
그래픽 카드: pci-e 지포스 6600 노멀

하드디스크의 연결 케이블이 40핀인지 80핀지 구별하세요. 사진이 없어서 설명이 힘들지만 40핀의 경우 일반 시디롬 연결하는 케이블입니다. 80핀 케이블은 더 얇고 구리선과 같은 모양입니다. 40핀? 이렇게 읽는게 맞는지 잘 모르겟네요.

이제 자신의 시스템을 지원하는 osx 버전의 이미지를 구해봐야겠지요. 지원 사항은 아래 링크에서 확인해 주세요.
10.4.6은 http://wiki.osx86project.org/wiki/index.php/HCL_10.4.6
10.4.7은 http://wiki.osx86project.org/wiki/index.php/HCL_10.4.7
10.4.8은 http://wiki.osx86project.org/wiki/index.php/HCL_10.4.8
10.4.9은 http://wiki.osx86project.org/wiki/index.php/HCL_10.4.9

아직 10.4.10까지는 그다지 아직 큰 메리트가.. 설치도 힘들고.. 바로 설치되는 버전이 없이 버전을 해야 하므로..
위 버전만 테스트 하시면 됩니다. 위의 위키를 어떻게 보느냐.. 그리 어렵지 않습니다.
시피유는 위에서 체크했으니 넘어가시면 되고 가장 중요한건 메인보드와 그래픽 카드의 지원 여부입니다.
또 만약 dvd-rw가 없다면 가상으로 설치해야 하므로 vmware를 이용합니다. 이부분은 나중에^^;

자신의 컴퓨터에 맞는 버전을 우선 선택합니다. 사운드 카드는 내장(ac97 보통 많이 쓰는)인데 대부분 지원합니다. 랜카드의 인식이 안될경우라면 리얼텍 8139나 8시리즈중 아무거나 준비해 주시면 됩니다.(미리 준비 하지 마시고 나중에 안될 경우 5000원도 안하니-_-;; 가볍게 사 버리자라는 의미입니다.)


이제 흔히 많이 쓰는 osx시리즈 이미지들로는 myzar 10.4.6, jas 10.4.6, jas 10.4.8+ppf1 or ppf2, jas10.4.9, tubgirl10.4.9 등이 있습니다.
아래 몇개의 토렌트를 링크해 드리겠지만 속도는 보장 못하니-_-;; 큰 기대는 마시고.. 어차피 용량이 다 기가라..보통 하루는 달려야 하니 차분하게 기다려 주세요^^;

Mac OS X 10.4.9 Intel SSE3 [JaS 10.4.8 AMD-Intel-SSE2-SSE3 w
이게 가장 받기 쉬운것 같아요. 속도도 어느정도 보장 되겠구요.
뒤에 파일명이 긴거는 다 설명입니다. 무슨 패치를 했고.. 지원되는 시피유 이름이나 이런걸 나타냅니다.


JaS.Mac.OS.X.10.4.8.AMD.Intel.SSE2.SSE3.PPF.1.Defiant.diskut
전 이녀석을 이용한듯 보입니다.


Mac OS X 10.4.7 AMD/Intel (JaS) ISO Repack

myzar의 10.4.6이 좋은데 토렌트 이미지를 찾지 못하겠네요. 찾으면 첨부하겠습니다.
이번에는 여기까지.. 토렌트 이미지를 다 받으면 댓글로 알려주시면 다음을 달려 보겠습니다.
두서없이 쓴 글이라 용어나 내용이 부실한면이 있으나 끝까지 읽어 주셔서 감사합니다^^;
리눅스 명령어 정리 (Ver 2.26)

# centos5 기준

# 경로가 빈칸인 명령어는 어디서나 실행가능

# 사용유형이 빈칸인 명령어는 '실행'을 뜻함

명령어경로사용유형설명
.bash_history각 계정의 홈 디렉터리편집사용자가 적었던 명령어 기록
.bash_logout각 계정의 홈 디렉터리편집로그아웃시 실행되는 배치파일
.bash_profile각 계정의 홈 디렉터리편집로그인시 실행될 항목
.bashrc각 계정의 홈 디렉터리편집단축키 설정
.vimrc각 계정의 홈 디렉터리생성->편집vi편집기 설정
at  예약작업
at.allow/etc편집특정 계정 at 허용
at.deny/etc편집특정 계정 at 거부
atd/etc/init.d at 데몬
atq  예약 작업 보기
atrm  예약 작업 지우기
bc  계산기
cal  달력
cat  파일 생성, 내용 보기
cd  디렉터리 이동
chage  계정, 암호 만료일자 설정
chattr  속성 변경
chgrp  파일의 그룹 변경
chkconfig  데몬 설정
chmod  파일의 퍼미션 변경
chown  파일의 사용자, 그룹 변경
clear  화면 청소
clock  시각, 날짜 보기.
cp  복사
cron.allow/etc편집특정 계정 cron 허용
cron.deny/etc편집특정 계정 cron 거부
crond/etc/init.d 예약작업 데몬
crontab 편집, 실행예약작업
date  날짜, 시각 보기
df  전체 용량 보기
dhcpd/sbin dhcp데몬(tar.gz의 경우)
dhcpd.conf/etc편집dhcp설정 파일
dhcpd.leases/var/db생성->편집dhcp로그 파일(tar.gz의 경우)
dhcpd.leases/var/lib/dhcp편집dhcp로그 파일(rpm의 경우)
du  디렉터리별 용량 보기
exit  로그아웃
fdisk  파티션 설정
fg  포그라운드로 불러내기
find  찾기
free  메모리 사용량 확인
fsck.ext3  수동 시스템 검사(꼭 싱글모드에서 해야함)
fstab/etc편집마운트 설정
ftp  파일 서버
gcc  컴파일
grep  내용 찾기
group/etc편집그룹 확인
groupadd  그룹 생성
groupdel  그룹 삭제
groupmod  그룹 수정
groups  유저가 속한 그룹 보기
grub.conf/boot/grub편집부팅 설정
gzip  압축
halt  컴 수동 종료
head  파일내용 앞부분 출력
history  사용 명령어 목록 출력
host.allow/etc편집ip 허용
host.deny/etc편집ip 차단
httpd/etc/init.d 웹서버 데몬
id  계정 정보 보기
ifcfg-eth0/etc/sysconfig/network-scripts편집eth0의 네트워크 설정 보기
ifconfig  ip보기, 설정
init  부팅 모드 실행
inittab 편집init 설정
issue/etc편집로그인전 출력할 내용
jobs  작업 보기
kill  프로세스 종료
last  부팅 로그 보기
lastlog  마지막 접속로그 보기
ln  링크하기
login.defs/etc편집계정 번호 설정
logout  로그아웃
ls  파일의 목록 보기
lsattr  속성 보기
man  매뉴얼 보기
mc  탐색기
messages/var/log편집로그인 로그 파일
mkdir  디렉터리 생성
motd/etc생성->편집로그인후 출력할 내용
mount  장치 연결하기
mv  이동, 이름 변경
network/etc/init.d 네트워크 데몬
ntsysv  데몬 사용, 사용안함
passwd/etc편집계정 목록
passwd  암호 설정
patch  패치하기
ping  핑 보내기
profile/etc편집로그인시 실행될 항목
proftpd  pro ftp 데몬
ps aux  프로세스 보기
pwconv  쉐도우 패스워드 설정
pwunconv  쉐도우 패스워드 해제
python  파이썬(프로그래밍 언어) 실행
reboot  재부팅
rm  파일, 디렉터리 삭제
rmdir  디렉터리 삭제
rpm  rpm 설치, 제거, 검색
scp  파일 주고받기
service  데몬을 시작시키거나 중지시킨다
setup  여러가지 시스템 설정
shadow/etc편집계정 목록(컨버전 안된 암호가 표시됨)
shutdown  컴 끄기
shutdown.allow/etc편집셧다운 명령을 허용할 유저목록
squid/etc/init.d 프록시 서버 데몬
ssh  암호화 지원하는 원격접속 프로그램
su/etc/pam.d편집su 설정
su  사용자 변경
tail  파일내용 뒷부분 출력
tar  파일 묶기, 압축
tee  파일로 출력
telnet/etc/xinetd.d편집텔넷 설정
telnet  원격접속 프로그램
touch  파일 생성
tty  터미널 번호 보기
tune2fs  자동 시스템 검사
umount  마운트 해제
uname -r  커널 버전 보기
useradd  계정 생성
userdel  계정 삭제
usermod  계정 수정
vi  편집기
vim  vi편집기 향상판
vipw  vi /etc/passwd
w  시스템에 접속한 사용자 상황 표시
wall  메시지 보내기
who am I  자세한 자신의 정보 보기
whoami  자신의 정보 보기
xinetd/etc/init.d 수퍼 데몬
yum  인터넷을 통한 rpm 설치

이번에 델파이 2007 출시와 동시에 같이 출시한 Delphi For Php 프로그램이 있습니다.

이 프로그램을 사용해서 php를 사용하시는 분들을 위해 그냥 참고 하시라고 끄적이고 갑니다.

이 툴을 사용해서 한글을 사용하시려면 다음과 같이 해보세요..

그러면 한글 출력이 잘 되네요.. ㅎㅎㅎ

Delphi php를 실행하면 메뉴의

1) tools->Options->Editor Opions에서 UseUTF-8 to create new units and forms 선택한다

2) tools->Options->PHP에서 default Charset를 euc-kr이나 utf-8로 설정하세요..

그러면 한글이 정상적으로 표시됩니다.

웹서핑하다 보이길래 작성해서 올립니다.






불황시대 '클라이언트 가상화' 뜬다

PC 유지비용 대폭 줄여…HP 기업용 솔루션 '관심'

강은성기자 esther@inews24.com
"무조건 비용을 줄여라!"

불황 한파가 매섭게 몰아치면서 기업들이 저마다 '절약'을 외치고 있다. 이에 따라 2009년 정보기술(IT) 시장에서는 비용 절감을 극대화할 수 있는 기술들이 집중 조명을 받을 전망이다.

이런 상황에서 구세주로 떠오른 것이 바로 '클라이언트 가상화 기술'이다. 도입 비용은 물론 관리, 운영, 유지보수 비용까지 모두 줄여줄 수 있기 때문이다.

◆PC 관리, 기업 입장에선 '새는 비용'

'클라이언트'란 기업의 직원 개개인이 사용하는 다양한 단말기, 즉 PC와 노트북 PDA 등을 의미한다. 더 넓게는 프린터나 서버까지 사용자가 직접 관리하는 하드웨어 단말기도 클라이언트 범주에 포함시킬 수 있다.

기업에서는 직원들이 한 대 이상씩 사용하고 있는 PC로 인해 적지 않은 비용부담에 관리까지 신경써야 한다.

기업의 필수품으로 꼽히는 PC는 초기 도입 비용도 만만치 않을 뿐 아니라 소프트웨어 업그레이드나 각종 보안 패치, 하드웨어 유지보수 등 관리 비용도 만만치 않다.

이처럼 조금씩 새는 비용도 수 년간 누적되면 적지 않은 부담으로 돌아온다.

결국 PC를 효율적으로 관리하기만 해도 기업들에겐 큰 도움이 될 수 있다. 당장 업무 효율성을 높일 수 있을 뿐 아니라 '비용 절감'도 간으하기 때문이다. 이에 따라 PC에 클라이언트 가상화 기술을 접목하는 것이 관심의 대상으로 떠오르고 있다.

시장조사업체 IDC와 가트너도 각각 2009년 주목받는 10대 기술 중 첫번째로 가상화 및 클라우드 컴퓨팅 등을 꼽았다.

한국IDC 백인형 부사장은 2009년 국내 IT 시장 예측 보고서를 내면서 "2009년에는 '코스트세이빙 이즈 킹', 즉 비용절감이 최대 화두가 되는 시기가 될 것"이라며 "IT 투자 역시 비용 절감을 위해 표준화, 자동화하는 방향으로 이뤄질 것"이라고 내다봤다.

이를 위해 각 시스템에 가상화 기술을 도입, 놀고 있는 자원을 최대한 활용하고, 중앙집중 방식의 관리나 운영으로 인력과 비용은 줄일 수 있는 클라이언트 가상화 기술이 그 첫 화두가 될 것이라는 설명이다.

◆가상화 모델 개발 분주

다소 모호해 보이는 '클라이언트 가상화' 기술을 위해 구체적인 솔루션을 내 놓고, 실제 기업에 구현하기 위한 모델을 제시하기 위해 관련 업계도 발빠르게 움직이고 있다.

특히 한국HP가 최근 선보인 기업용 PC 솔루션을 눈여겨 볼만하다. 이 회사는 최근 PC를 얇은 보드 형태로 세워서 데이터센터에 직접 보관할 수 있도록 '블레이드'모듈로 만든 블레이드 PC에 씨트릭스의 '젠데스크톱'을 내장한 기업용 PC 솔루션을 시장에 내 놨다.



이 솔루션은 PC에 연결된 네트워크 전송 대역폭의 한계를 뛰어넘은 것은 물론, 가상화 기술을 적용해 사양이 낮은 PC라도 워크스테이션급의 성능을 낼 수 있다는 게 회사측 설명이다.

기업 입장에서는 혹시라도 유출될까 전전긍긍했던 기밀 데이터를 중앙에서 손쉽게 관리할 수 있고, 개별 PC나 워크스테이션 업그레이드에 투입됐던 비용이나 운영 및 관리 비용을 줄일 수 있어 편리하다.

무엇보다 젠데스크톱 가상화 기술인 '젠앱'을 활용, 애플리케이션 가상화를 구현해 실제 내 PC에 마이크로소프트의 오피스 프로그램 등의 응용 프로그램을 일일이 설치하지 않더라도 중앙 컴퓨터에서 직접 이용할 수 있다.

이를 통해 애플리케이션 라이선스 비용도 줄이고 관리자는 소프트웨어 관리 효율성도 대폭 높일 수 있어 운영비를 줄일 수 있다는 설명이다.

HP 아태지역 PSG 기업시스템 총괄 데니스 마크 부사장은 "한국의 경우 블레이드 기술이나 가상화 기술, 씬클라이언트 기술이 모두 더디게 적용되고 있는 상황이지만, 오히려 소비자들의 요구는 매우 높다"며 "그동안 각각의 기술이 개별 제공되면서 소비자들의 복잡한 요구사항을 정확하게 맞춰주지 못했기 때문으로 풀이된다"고 분석했다.

아울러 "시장이 열리는 것은 결국 기술을 얼마나 시의적절한 타이밍에 공급하고, 이를 수요자들이 받아들이느냐의 문제"라며 "이번 HP와 씨트릭스의 원격 클라이언트 솔루션을 통해 한국의 기업 고객들 역시 그동안 고민했던 PC 관리의 모든 문제를 한번에 해결할 수 있게 될 것"이라고 자신감을 보였다.

Google Calendar Sync - 구글 캘린더와 아웃룩을 싱크하자

구글 캘린더를 쓰게 되면서부터 이걸 Microsoft Outlook(이하 아웃룩)과 연동해서 사용할 순 없을까라는 생각을 많이 했었습니다. 그런데, 구글에서 직접 만들어서 배포하는 싱크 프로그램 Google Calendar Sync가 있네요.

지원되는 아웃룩 버전은 2003 과 2007 이고, OS는 Windows XP와 Windows Vista 입니다.

Google Calendar Sync - 다운로드

설치도 간단하여 다운로드 후 실행하게 되면 바로 설치가 완료되고, 다음과 같은 설정화면이 나타나게 되고,

Google Calendar Sync 설정화면

Google Calendar Sync 설정화면

설정화면에서 구글 계정을 설정하고 옵션을 선택해주면 설정 끝~ 아주 간단하게 완료됩니다. 옵션은 다음과 같습니다.

  • 2-way
    아웃룩에서 바꾸는 내용은 구글 캘린더에도 반영되고, 마찬가지로 구글 캘린더에서 바꾸는 내용도 아웃룩에 반영됩니다.

  • 1-way: Google Calendar to Microsoft Outlook calendar
    구글 캘린더의 내용이 아웃룩을 바꾸게 되고, 아웃룩에서 바꾸는 것은 구글 캘린더에 영향을 끼치지 않습니다.

  • 1-way: Microsoft Outlook calendar to Google Calendar
    위와 반대로 아웃룩의 내용이 구글 캘린더로 복사되고 구글 캘린더에서 추가,삭제,변경하는 것은 아웃룩을 바꾸지 않습니다.

  • Sync every [ ] minutes
    싱크를 몇 분마다 할 것인지 설정합니다.

설정을 완료하게 되면 트레이에 다음과 같은 아이콘이 상주하게 됩니다.

기본 트레이 아이콘

기본 트레이 아이콘

싱크 중의 트레이 아이콘

싱크 중의 트레이 아이콘


설정화면에서 설정한 간격마다 싱크를 실시하여 연동하게 됩니다.

실제로 싱크되는 화면을 살펴보면 다음과 같습니다.

바로 싱크 하기

바로 싱크 하기


아이콘을 오른쪽 클릭하여 싱크를 실시하게 되면 다음과 같이 구글 캘린더와 아웃룩이 싱크가 되게 됩니다.

( 현재 주 캘린더(첫번째 캘린더)만 싱크가 되는 것 같습니다. )

구글 캘린더

구글 캘린더


싱크된 아웃룩 일정

싱크된 아웃룩 일정


Google Calender Help Center > Sync with Microsoft Outlook - 바로가기
Official Gmail Blog - 바로가기
Google Calendar Sync - 다운로드

PS.
저는 Windows 2003 을 쓰는데, 설치할 때 지원하지 않는 OS라며 설치 자체가 되지 않더군요. 그래서 다음과 같이 설치파일의 호환성을 XP 로 설정하여 설치를 했습니다. 설치 이후에 아무런 이상없이 잘 동작합니다. Windows 2003 쓰시는 분들은 참고하세요.

호환성 설정

호환성 설정

CPU 성능분석

Com.Scie/CA 2008/04/15 03:10

CPU 성능(performance)은 임의의 application의 수행시간에 반비례한다.
cpu excution time은 곧 명령어의 개수를 의미하며, 이는 순수하게 임의의 application이 cpu를 사용한 시간을 뜻한다.


CPU time을 결정하는 세 개의 요소로는 instruction의 개수, CPI, Period가 있으며 다음과 같이 계산한다.
CPU time = 초/program = instructions/program * clocks/instruction * seconds/clock
     = # of instruction * CPI * Clock rate(Period)

  • instruction의 개수: 프로그램의 크기와는 관계가 없으며 순수하게 수행되는 명령어의 개수이다.
  • CPI: 명령어마다 다르므로 대개는 average로 한다.
  • Clock rate: cycle하나당 걸리는 시간


성능을 좋게 하기 위해서는 CPU time을 줄여야 하는데, 이는 곧 위의 식에서 보는 바와 같이 # of instruction이나 CPI, Clock rate를 줄이면 된다. 이러한 요인들로 하여금 CPU time을 줄이는 방법은 다음과 같다.

  • 동작 clock을 빠르게 한다. (Clock rate를 줄인다)
  • 성능 좋은 컴파일러를 사용하거나 좋은 알고리즘을 이용하여 프로그래밍한다. (# of instruction을 줄인다)
  • pipelining등의 기법을 사용한다.(CPI를 줄인다)

또한, CPU 성능을 높이기 위한 것으로 다음과 같은 기법들을 사용할 수 있다.
  • Pilelining
    • 한국어로 하면 '분업'을 뜻한다.
    • 5단계 pilelining은 Instruction Fetch - Decode - Operand Fetch - Excute - Write Back 의 단계로 이루어진다.
    • 각 단계에 필요한 resource가 따로있다.
    • resource를 효율적으로 사용하기 위한 방법으로 놀고있는 resource를 방지한다.
    • 모두 clock에 동기화 되어 있어서 clock이 튈 때마다 다음 단계로 옮겨진다.
  • Super scalar
    • 명령어 처리하는 모듈이 여러 개 있는 것으로, 모듈이 2개일 경우 2-way super scalar라고 한다.
    • dependency가 없는 여러 개의 명령어를 동시해 수행할 수 있게 한다. (2-way일 경우 2개 동시에 수행 가능)
    • dependency가 없는 명령어 set은 하드웨어가 찾아낸다.
    • 3-way, 4-way, 5-way 등등으로 사용할 수 있다.
    • pilelining과 함께 사용하면 더더욱 성능이 증가된다.
  • VLIM(Very Long Instruction Word)
    • dependency가 없는 명령어를 하나의 명령어로 만들어 parellel하게 실행될 수 있는 것 끼리 묶는다.
    • super scalar와 비슷하게 보이지만 dependency가 없는 명령어 set을 compiler가 찾아내므로 소프트웨어적으로 체크한다는 점이 다르다.


CPU 성능을 측정하는 방법으로 두 가지 기준이 있다. 그 하나가 Response Time이고 나머지 하나가 Throughput이다.
  • Response Time: 프로그램 하나가 시작하면서부터 끝날 때까지의 시간
  • Througput: 단위시간 당 처리하는 일의 양
    예를 들어서, CPU를 두 개로 늘린다면 Response Time에는 변화가 없으나 Througput은 증가할 것이다.
ErWin에서도 MySQL 리버스엔지니어링이 가능합니다.

connection 부분에서 odbc로 설정을 하면 되지요

[메뉴] - [Tools] - [Reverse Engineer...]

1. Select Templete

1) ODBC/Generic 선택

2) Ver : 3.0

[Next]

2. Set Options

: 별 작업없이 [Next]

3. Connection

1) 사용자명 입력

2) 비번 입력

3) Database 에서

myodbc3-test 선택 (물론 이전 mysql odbc 가 설치되어야 겠지요)

[Connect]

4) 접속실패후

5) 컴퓨터 데이터 원본에서 myodbc 선택

===============================================================================
MySQL 사이트에서 MyODBC를 다운로드 받아서 설치하시면
ODBC관리자에서 MySQL용 ODBC 드라이버가 올라와 있는것을 확인하실수 있습니다.
http://www.mysql.com/downloads/api-myodbc.html
3.51을 윈도플랫폼 용을 다운로드 받으셔서 설치하시면 됩니다.
두가지가 있는데, Driver DLLs onl y 는 DLL파일만 있는것입니다.
어느것을 깔든 상관없습니다만, 풀배포본에 들어있는 몇가지의 문서파일들을 읽어보시는게 좋을껍니다.
===============================================================================
mysql OLEDB 가능합니다.
ODBC 에서 사용할수 있는건 모두 OLEDB 가 가능하지요..
일단 mysql 홈페이지 들어가셔서 ODBC Driver for Windows 를 다운로드 받습니다.

그리고 설치하면 DB Connection Driver 중에 Mysql 이 포함되어 있는걸
확인하실수 있습니다.

OLEDB 연결 문자열 만드는 방법은 아시지요??
바탕화면에 빈 텍스트 파일 하나 만들고 확장자를 udl 로 바꾸고
더블클릭하면 설정할수 있습니다.

그 파일을 메모장에서 열면 dbConnection 문자열을 볼수 있습니다.
http://www.mysql.com/Downloads/Win32/MyOLEDB3.exe <- 요걸 설치하시면
OLEDB Driver 가 등록됩니다.
====================================================================

How to Send SMS Messages from a Computer / PC?

In general, there are two ways to send SMS messages from a computer / PC to a mobile phone:

  1. Connect a mobile phone or GSM/GPRS modem to a computer / PC. Then use the computer / PC and AT commands to instruct the mobile phone or GSM/GPRS modem to send SMS messages.

  2. Connect the computer / PC to the SMS center (SMSC) or SMS gateway of a wireless carrier or SMS service provider. Then send SMS messages using a protocol / interface supported by the SMSC or SMS gateway.

If you do not want to develop SMS software or applications but just want to use your computer / PC to send text messages, you may want to read our Quick Guide for Non-Developers.


10.1. The 1st Way: Sending SMS Messages from a Computer Using a Mobile Phone or GSM/GPRS Modem

The SMS specification has defined a way for a computer to send SMS messages through a mobile phone or GSM/GPRS modem. A GSM/GPRS modem is a wireless modem that works with GSM/GPRS wireless networks. A wireless modem is similar to a dial-up modem. The main difference is that a wireless modem transmits data through a wireless network whereas a dial-up modem transmits data through a copper telephone line. More information about GSM/GPRS modems will be provided in the section "Introduction to GSM / GPRS Wireless Modems". Most mobile phones can be used as a wireless modem. However, some mobile phones have certain limitations comparing to GSM/GPRS modems. This will be discussed in the section "Which is Better: Mobile Phone or GSM / GPRS Modem" later.

To send SMS messages, first place a valid SIM card from a wireless carrier into a mobile phone or GSM/GPRS modem, which is then connected to a computer. There are several ways to connect a mobile phone or GSM/GPRS modem to a computer. For example, they can be connected through a serial cable, a USB cable, a Bluetooth link or an infrared link. The actual way to use depends on the capability of the mobile phone or GSM/GPRS modem. For example, if a mobile phone does not support Bluetooth, it cannot connect to the computer through a Bluetooth link.

After connecting a mobile phone or GSM/GPRS modem to a computer, you can control the mobile phone or GSM/GPRS modem by sending instructions to it. The instructions used for controlling the mobile phone or GSM/GPRS modem are called AT commands. (AT commands are also used to control dial-up modems for wired telephone system.) Dial-up modems, mobile phones and GSM/GPRS modems support a common set of standard AT commands. In addition to this common set of standard AT commands, mobile phones and GSM/GPRS modems support an extended set of AT commands. One use of the extended AT commands is to control the sending and receiving of SMS messages.

The following table lists the AT commands that are related to the writing and sending of SMS messages:


AT command

Meaning

+CMGS

Send message

+CMSS

Send message from storage

+CMGW

Write message to memory

+CMGD

Delete message

+CMGC

Send command

+CMMS

More messages to send


One way to send AT commands to a mobile phone or GSM/GPRS modem is to use a terminal program. A terminal program's function is like this: It sends the characters you typed to the mobile phone or GSM/GPRS modem. It then displays the response it receives from the mobile phone or GSM/GPRS modem on the screen. The terminal program on Microsoft Windows is called HyperTerminal. More details about the use of Microsoft HyperTerminal can be found in the "How to Use Microsoft HyperTerminal to Send AT Commands to a Mobile Phone or GSM/GPRS Modem" section of this SMS tutorial.

Below shows a simple example that demonstrates how to use AT commands and the HyperTerminal program of Microsoft Windows to send an SMS text message. The lines in bold type are the command lines that should be entered in HyperTerminal. The other lines are responses returned from the GSM / GPRS modem or mobile phone.


AT
OK
AT+CMGF=1
OK
AT+CMGW="+85291234567"
> A simple demo of SMS text messaging.
+CMGW: 1

OK
AT+CMSS=1
+CMSS: 20

OK


Here is a description of what is done in the above example:

  • Line 1: "AT" is sent to the GSM / GPRS modem to test the connection. The GSM / GPRS modem sends back the result code "OK" (line 2), which means the connection between the HyperTerminal program and the GSM / GPRS modem works fine.

  • Line 3: The AT command +CMGF is used to instruct the GSM / GPRS modem to operate in SMS text mode. The result code "OK" is returned (line 4), which indicates the command line "AT+CMGF=1" has been executed successfully. If the result code "ERROR" is returned, it is likely that the GSM / GPRS modem does not support the SMS text mode. To confirm, type "AT+CMGF=?" in the HyperTerminal program. If the response is "+CMGF: (0,1)" (0=PDU mode and 1=text mode), then SMS text mode is supported. If the response is "+CMGF: (0)", then SMS text mode is not supported.

  • Line 5 and 6: The AT command +CMGW is used to write an SMS text message to the message storage of the GSM / GPRS modem. "+85291234567" is the recipient mobile phone number. After typing the recipient mobile phone number, you should press the Enter button of the keyboard. The GSM / GPRS modem will then return a prompt "> " and you can start typing the SMS text message "A simple demo of SMS text messaging.". When finished, press Ctrl+z of the keyboard.

  • Line 7: "+CMGW: 1" tells us that the index assigned to the SMS text message is 1. It indicates the location of the SMS text message in the message storage.

  • Line 9: The result code "OK" indicates the execution of the AT command +CMGW is successful.

  • Line 10: The AT command +CMSS is used to send the SMS text message from the message storage of the GSM / GPRS modem. "1" is the index of the SMS text message obtained from line 7.

  • Line 11: "+CMSS: 20" tells us that the reference number assigned to the SMS text message is 20.

  • Line 13: The result code "OK" indicates the execution of the AT command +CMSS is successful.

To send SMS messages from an application, you have to write the source code for connecting to and sending AT commands to the mobile phone or GSM/GPRS modem, just like what a terminal program does. You can write the source code in C, C++, Java, Visual Basic, Delphi or other programming languages you like. However, writing your own code has a few disadvantages:

  • You have to learn how to use AT commands.

  • You have to learn how to compose the bits and bytes of an SMS message. For example, to specify the character encoding (e.g. 7-bit encoding and 16-bit Unicode encoding) of an SMS message, you need to know which bits in the message header should be modified and what value should be assigned.

  • Sending SMS messages with a mobile phone or GSM/GPRS modem has a drawback -- the SMS transmission speed is low. As your SMS messaging application becomes more popular, it has to handle a larger amount of SMS traffic and finally the mobile phone or GSM/GPRS modem will not be able to take the load. To obtain a high SMS transmission speed, a direct connection to an SMSC or SMS gateway of a wireless carrier or SMS service provider is needed. However, AT commands are not used for communicating with an SMS center or SMS gateway. This means your have to make a big change to your SMS messaging application in order to move from a wireless-modem-based solution to a SMSC-based solution.

In most cases, instead of writing your own code for interacting with the mobile phone or GSM/GPRS modem via AT commands, a better solution is to use a high-level SMS messaging API (Application programming interface) / SDK (Software development kit) / library. The API / SDK / library encapsulates the low-level details. So, an SMS application developer does not need to know AT commands and the composition of SMS messages in the bit-level. Some SMS messaging APIs / SDKs / libraries support SMSC protocols in addition to AT commands. To move from a wireless-modem-based SMS solution to a SMSC-based SMS solution, usually you just need to modify a configuration file / property file or make a few changes to your SMS messaging application's source code.

The links to some open source and free SMS messaging libraries can be found in the article "Free Libraries/Tools for Sending/Receiving SMS with a Computer".

Another way to hide the low-level AT command layer is to place an SMS gateway between the SMS messaging application and the mobile phone or GSM/GPRS modem. (This has been described in the section "What is an SMS Gateway?" earlier.) Simple protocols such as HTTP / HTTPS can then be used for sending SMS messages in the application. If an SMSC protocol (e.g. SMPP, CIMD, etc) is used for communicating with the SMS gateway instead of HTTP / HTTPS, an SMS messaging API / SDK / library can be very helpful to you since it encapsulates the SMSC protocol's details.

Usually a list of supported / unsupported mobile phones or wireless modems is provided on the web site of an SMS messaging API / SDK / library or an SMS gateway software package. Remember to check the list if you are going to use an SMS messaging API / SDK / library or an SMS gateway software package.


10.1.1. Major Drawback of Sending SMS Messages through a Mobile Phone or GSM/GPRS Modem -- Low SMS Sending Rate

Using a mobile phone or GSM/GPRS modem to send SMS messages has a major drawback, that is the SMS sending rate is too low. Only 6-10 SMS messages can be sent per minute (when the "SMS over GSM" mode is used). The performance is not affected by the connection between the computer and the mobile phone or GSM/GPRS modem (i.e. the SMS sending rate is about the same no matter the mobile phone or GSM/GPRS modem is connected to the computer through a serial cable, USB cable, Bluetooth link or infrared link) and does not depend on whether a mobile phone or GSM/GPRS modem is used (i.e. the SMS sending rate is about the same no matter a mobile phone or a GSM/GPRS modem is used). The determining factor for the SMS sending rate is the wireless network.

+ Recent posts