2009. 4. 7. 00:39
        Mac Journal 입니다.
원래는 일기를 써볼까 여러가지를 끄적여 볼까 하는 용도로 구했는데 블로그 글 포스팅도 가능하다니.. 나름 유용할것도 같다.

올려보니 잘 올라가기는 한데. 태그 설정은 전혀 안된다는...

세팅은 http://twiny.tistory.com/97 여기서 참고했다.

태그 세팅이 안된다는게 아쉽긴 하지만, 그래도 웹하고 연동되는 부분은 꽤 인상적이다.




2009. 3. 25. 12:33
얼마전 맥 카페에서 본 영상입니다. 정말 신기하더군요.

사실인지 아닌지는 잘 모르겠습니다.


일단 흥미롭고 재밌습니다.ㅋㅋ



2009. 3. 7. 13:36

ARM에서의 Veneer, Veneer code

Veneer 사전적인 의미는 합판 이라는 의미입니다.
(어릴때 가끔씩 베니어 합판이라는 용어를 들은 적도 있는 것 같습니다.)

처음 ARM에서 veneer 란 용어를 접했을때 제일 먼저 찾아본것이 사전인데
ARM에서 의도하는 바와는 좀 다르더군요.

사실 veneer에 대해서 몰라도 동작자체가 잘 안되고 하는 것은 아니지만,
아마도 ARM을 공부하는 사람이라면 기본적으로 알아야 겠지요. 더구나 디버깅을 잘하려면 말이죠.
인터넷에서는 위에서 말한 합판이라는 용어가 같은 단어라 참 찾기도 애매합니다.
그래서 ARM Manual을 뒤져서 정리했습니다.


Veneer에 대해서 ADS(Arm Development Suite) 에서는 다음과 같이 설명하고 있습니다.

Veneer
A small block of code used with subroutine calls when there is a requirement to change processor state or branch to an address that cannot be reached in the current processor state.

Veneer generation
armlink must generate veneers when:
  ● branch involves change of state between ARM state and Thumb state
  ● branch involves a destination beyond the branching range of the current state.
A veneer can extend the range of branch and change processor state. armlink combines long branch capability into the state change capability. All interworking veneers are also long branch veneers.
The following veneer types handle different branching requirements. The linker generates position-independent versions of the veneers if required:

ARM to ARM
    Long branch capability.
ARM to Thumb
    Long branch capability and interworking capability.
Thumb to ARM
    Long branch capability and interworking capability.
Thumb to Thumb
    Long branch capability.

armlink creates one input section called Veneer$$Code for each veneer. A veneer is generated only if no other existing veneer can satisfy the requirements. If two input sections contain a long branch to the same destination, only one veneer is generated if the veneer can be reached by both sections.
All veneers cannot be collected into one input section because the resulting veneer input section might not to be within range of other input sections. If the sections are not within addressing range, long branching is not possible.


결국 가장 veneer code를 사용하는 목적은 두가지로 정리됩니다.
  1. branch 시에 ARM mode와 Thumb mode 간의 상태변환이 필요할때.
  2. branch 시에 branch 하는 대상 address가 access 가능한 range를 벗어나 확장이 필요할때(if long branch is needed)
** 참고로 이 두가지에 모두 해당하는 상황도 있습니다.

이제 위의 두가지 경우에 대해서 좀더 자세히 살펴보면

1. ARM Thumb state transition
ARM instruction은 32bit 이고 Thumb instruction은 16bit입니다. 그래서 ARM instruction으로 작성된 함수에서 Thumb instruction으로 작성된 함수를 호출할 경우에는 반드시 상태 변환이 필요합니다.
다음에 좋은 예가 있습니다.
아래를 보면, $Ven$AT$$ThumbFunc 를 호출하는 부분이 있습니다. 이것을 쫓아가 보면
0x0A001028 에 있는 값을 r12에 저장하고, bx 를 사용하여 r12에 저장된 주소를 분기하고 있습니다.
bx 는 branch 후 state를 바꾸게 되는데, address가 홀수이면 ARM->Thumb으로 짝수이면, Thumb->ARM으로 변경합니다.
결국 아래 부분은 0x0A00101D가 홀수 address이므로 branch 후 ARM->Thumb으로 state를 바꾸게 됩니다.

여담으로 linker가 생성하는 심볼인 $Ven$AT$$ThumbFunc 는 AT가 ARM->Thumb으로 변환함을 의미합니다.
그밖에 AA,TA,TT 가 있습니다. 지금 아래 예제에는 없지만, long branch 를 나타내는 부분도 있습니다.
참고로 ARM에서의 veneer 관련 symbol naming및 의미입니다.
    ${Ven|other}${AA|AT|TA|TT}${I|L|S}[$PI]$$symbol_name
    AA : ARM to ARM
    AT : ARM to Thumb
    TA : Thumb to ARM
    TT : Thumb to Thumb
     I : Inline
    L : Long branch
    S : Short reach
    PI : Position Independent

	   ARMFunc
0x0A001000:	mov	r0,#1
0x0A001004:	bl	$Ven$AT$$ThumbFunc
0x0A001008:	mov	r2,#3
0x0A00100C:	mov	r0,#0x18
0x0A001010:	ldr	r1,0x0A001018 ; =#0x0A020013
0x0A001014:	mov	r0,#0
0x0A001018:	dcd	0x0A020013
	   ThumbFunc
0x0A00101C:	mov	r0,#1
0x0A00101E:	bx	r14	
	   $Ven$AT$$ThumbFunc
0x0A001020:	ldr	r12,0x0A001028 ; = #0x0A00101D
0x0A001024:	bx	r12
0x0A001028:	dcd	0x0A00101D
0x0A00102C:	dcd	0x0A00331F
0x0A001030:	dcd	0x007F2E00
0x0A001034:	dcd	0xA703031F
0x0A001038:	dcd	0xA703032E



2.Long branch out of range
다음을 보면 range를 벗어나 확장이 필요한 경우(out of range)에 대한 적절한 설명이 있습니다. 역시 ARM manual입니다.

Machine-level B and BL instructions have a range of ± 32Mb from the address of the current instruction. However, you can use these instructions even if label is out of range. Often you do not know where label is placed by the linker. When necessary, the ARM linker adds code to allow longer branches (see The ARM linker chapter in Linker and Utilities Guide). The added code is called a veneer.

address range가 32Mb 정도이고 이것을 벗어나는 address일경우에는 veneer를 쓴다는 이야기입니다.
(이것은 register의 크기가 4byte, 즉 32bit 이기 때문입니다.)
하지만 이것도 ARM mode에서의 이야기이고, Thumb mode에서는 16bit입니다.
간단한 내용으로 따로 예제는 들지 않지만, 위와 비슷합니다.

출처 : 직접 작성
References
  http://www.arm.com
  ADS Manual
  Elf for ARM architecture

2009. 3. 3. 23:58
이번에 소개할 것은 아이팟 터치에서 동작하는 구글 어스입니다. 물론 무료입니다.

일반 피시에서 볼때도 편했지만, 아이팟 터치에서는 더욱 놀랍습니다~~

멀티터치로 화면확대, 화면돌리기 등은 마치 영화에서만 보던 걸 해보는 느낌입니다.

실제로 마이너리티 리포트에서 비슷한게 나옵니다. 같지는 않지만, 똑같은 경험을 하는것 같고 상당히 편리하고 놀랍습니다.

게다가 기울이면 지평선이 보이게 됩니다. 단점은 인터넷이 안되면,  Wireless LAN 이 안되면 안된다는것.

그래도 이것만큼 설치해서 한번은 경험해보시기를 강추합니다. 멀티터치를 정말 유용하게 써볼 수 있는 좋은 기회라고 봅니다.

무료 어플이니 iTunes의 AppStore에서 받을 수 있습니다. 단 미국 계정으로 로긴해야 합니다.
미국 계정 만드는 법은 이글에 연결된 트랙백을 참조하세요~



2009. 3. 3. 00:23
iPod Touch에서 그래도 나름 유용하다고 생각하는 어플입니다.

탁상위에 시계 용도로도 아주 이쁘다는~..

미국  iTunes AppStore에서 무료로 구입 가능합니다.
(트랙백을 참조하세요)




2009. 3. 2. 09:36
뉴스를 보니 3월부터 기름값이 또 오른다고 한다..

좀 떨어지는 듯 하더니.. 금새 또 오르는 기름값.

유류세를 다시 올린다고 하던가....

기름값 벌려면...돈 많이 벌어야 되는데~ 흑.

그래도 지금 얹혀 살고 있는 부모님 집 근처에는 다른데 비해서 그나마 좀 싼편

그래도 비싼 건 비싼건데...ㅜㅠ.

다시 경제운전으로 돌아가야 하나.. 다리 아픈데..
(사실 경제 운전하면, 의식적으로 해서 그런지 몰라도, 다리가 많이 저린다.....;;;;)

그래도 연비 좋은 내차 니까.. 위안으로...
2009. 2. 28. 09:59
얼마전 후지쯔 노트북이 부품을 새것이 아닌 중고/재생품을 사용하여 신품으로 팔아서
큰 이슈가 된적이 있다. 일본에서 사용하던 하드를 사용해서 신제품으로 판것이다.
소비자로서는 참 어이없고 황당하고 화나는 일이다. 후지쯔 노트북을 사서 쓰고 있는 한 유저로서 황당할 뿐이었다.

그런데 사실 이렇게 재생품을 사용해서 제품을 파는 것은 이미 있어왔다.다만 신제품과는 구분할 뿐이다.
Refurbished Product 가 바로 그것이다. 흔히들 리퍼 제품이라고 부르는 것이 바로 그것이다.
이것은 분명 신제품은 아니다. 그렇다고 중고라고 할 순 없다.
중고는 제품을 누군가가 일정 기간 정도 사용하던 것이다. 당연히 신품과는 구별된다.
Refurbished 는 엄밀히 말하면 재생신품이라고 본다.. 재생 신품이라는 용어를 쓰는 것은 신품에 준하는 수준으로
재조립 재생산 과정을 거치기 때문이다. 여기에 쓰는 부품은 반품된 제품의 부품이거나 이상이 있어 반품된 제품의 이상없는 부분의 부품인 것으로 알고 있다.
어쨌든 한번 팔렸던 제품이기 때문에 중고 부품이긴 하나, 그중 이상없는 부분을 추려내어 재사용 하되
이를 신품에 준하는 수준으로 확인하고 테스트하여 파는 것이 Refubished Product, 리퍼제품이다.
사실 직접 확인할 수는 없어서 이 내용이 정확하지 않을 수도 있다.

하지만 한가지 분명한 것은 신품과 재생신품, 중고는 엄연히 차이가 있다는 것이다.
사실 일전에 논란이 되었던 것은  Refurbished Product, 소위 리퍼 제품을 신품으로 팔았기 때문이다.
신품과 Refurbished Product는 몇가지 면에서 다를수 밖에 없게 된다.
 첫째로, Refurbished Product는 일단 사용하는 부품이 적절한 확인을 거친 재생부품이라는 것이다.
 둘째로, 이렇다 보니, 기존에 판매하는 신품과 동일한 사양으로 재조립 될 수도 있고, 일부 업그레이드가 될 수도 있다.
              그래서 보통 사양이 기존에 판매하는 신품과 같은 경우도 있지만, 다른경우도 있다.
 셋째로, 가격면에서 일단 신품이 아닌 부품을 사용했다는 면에서 분명히 신품과는 다를수 밖에 없다. 그래서 보통
              Refurbished Product 의 경우 가격이 신품에 비해 싸다.(사양이 신품보다 좀더 좋다고 해도 말이다.)

중고제품과  Refurbished Product, 리퍼제품이라는 것은 얼핏 보면 말만 조금 틀리지 같아 보이기도 한다.
어쨋든 신품은 아니며 신품 부품을 사용한 것도 아니지 않은가?!
리퍼 제품은 대개가 완전 중고가 아니라, 일부 부품만 재생품으로 교체한 제품이다.
중고가 전체적으로 사용하던 제품이라고 한다면, 리퍼 제품은 대개가 반품된 제품을 수리 재조립하여 파는 것이기때문에
일부 수리한 부품만 재생부품을 사용한 것이고, 신품에 준하는 수준으로 확인을 거칠 것이라고 본다.
이런 부분에서 중고와 리퍼 제품은 다르게 된다. 어떤 경우에는 신품과 거의 동일한 수준일수도 있는 것이다.
다만 우리 입장에서는 어느 부품이 재생 부품을 쓴것인지는 알 수가 없다.
그렇다고 리퍼 제품은 가격적인 측면에서 크게 매력적으로 다가온다. 보통 반에서 2/3 수준의 가격으로 나오기 때문에
신품과 동일하다고 할 순 없다고 거의 같은 성능의 싼 가격으로 구입할 수 있다는 것은 참 매력적이다.
2009. 2. 25. 15:50
처음에 소녀시대의 Gee 노래를 불러서 알게 됐는데,

그것 말고도 많은 한국 노래를 불렀더군요.

그중 이효리의 유고걸을 R&B 버젼으로 부른 노래입니다.

대단합니다~~, 다른 한국 노래들도 찾아봐겠습니다.

즐감하세요~


2009. 2. 23. 12:51
오늘 뉴스를 보다 보니 "꿈의 직장" 이라는 문구에 눈에 확 들어왔습니다.

누구나 그렇듯 꿈의 직장이라는 말에 솔깃안할 수가 없겠죠.




http://www.islandreefjob.com/ko/about-the-job

하는 일 : 섬관리자(Island Caretaker)
             하는 일은 산호초로 유명한 그레이트 베리어 리프에 위치한 해밀톤 아일랜드의 6성급 리조트에서 고급 스파를 받고
            스노클링을 하고, 등산을 해야 하며 섬주변에 사는 동물들에게 먹이를 주고, 수영장을 관리하고, 세스나기를 타고
             우편배달을 해야한다. 
             그리고 이러한 경험들을 블로그에 사진이나 비디오 등과 함께 올린다.

계약기간은 6개월, 제반시설과 인터넷이 모두 갖추어진 방 3개가 있는 집도 제공된다.
가장 놀라운 것은 6개월동안 15만 달러를 받는 다는 것.우리나라돈 1억 4천만원정도된다.
2주에 한번씩 지급된다. 월급쟁이 로서 생각해보면 월 2300만원!!!!!!!

그리고 가족이나 친구중 1명 동반도 가능하다.
응모 자격은 18세 이상 남녀 누구나 !! 1분 분량의 자기를 소개하는 동영상을 업로드하면 된다.



오늘까지네요. 지금도 사이트에 사람이 몰리는 듯 들어가기가 힘드네요.

 완전 놀면서 돈버는 이야기 같습니다. 우리나라 사람들도 현재 80명 정도 지원했다고 하네요.
(이미 거의 지원은 종료된거 같습니다.. 솔직히 눈길이 가긴 하지만 6개월 밖에 못하는거 봐서는 아쉽죠)

아마! 지금 직장인이 아니고 백수이거나, 학생이라면 한번 도전해봤을지도 모르겠습니다.

저정도 보수에 저정도 일이라면 즐길수 있지 않을까요?

직장을 이미 가진 사람들에게는 사실 그냥 환상적인 이야기 같습니다.(될지 안될지도 모르는 판에..)
(혹시 직장 그만두고 갈 사람들도 있을까요? 없진 않을거 같은.....)


여하튼 오늘 눈에 확확 띄네요.
2009. 2. 22. 12:42
맥쓰사에서 퍼왔습니다.

사실 퀵실버 퀵실버 이야기는 많이 들었는데, 사실 사용할 줄을 몰라 제대로 사용못하고 있었습니다.

아래 동영상이 좋은 가이드가 되는 것 같습니다. KUG 에서 만든 동영상이더군요.