기술 관련 글2011. 2. 15. 13:15

Microsoft가 NOKIA를 잡게된건 정말 큰 행운이 아닐까 생각한다.
물론 둘 모두에게 이득이 되지 않았다면, 이러한 파트너십이 이루어질 수는 없을 것이다.
하지만 이미 시장에 출시를 했지만 반응이 시들한 Microsoft Windows Phone 7.
Windows Phone 7이 실패하게 된다면, 더이상의 기회는 없을 것만 같은 Microsoft에게 NOKIA는 千軍萬馬가 아닐까.
과연 NOKIA가 Microsoft에 날개를 달아줄 수 있을지 관심을 가지고 지켜봐야겠다.

P.S. 대략 1년 전 쯤, 적략적 제휴를 선언했던 LG전자... 1년 안에 다수의 모델을 쏟아내겠다고 했었는데-_-;
ANDROID는 삼성에 치이고, Windows Phone 7은 NOKIA에 받치고. 과연 어떻게 해야 살아남을 수 있을 것인지.

여기에서도 언급되는 Windows Phone 7 디바이스는 삼성 focus와 HTC HD 7 Pro 밖에 없군요. -_-;

'기술 관련 글' 카테고리의 다른 글

감독 대 위원회, 애플 대 구글  (0) 2011.08.22
안드로이드와 특허, 구글의 위선  (0) 2011.08.06
SSD의 TRIM이란?  (0) 2011.04.06
[퍼온글] 1997 Boston MacWorld  (0) 2011.02.15
foo & bar의 기원(?)  (0) 2011.02.09
Posted by 세월의돌
리눅스 & 안드로이드2011. 2. 11. 17:03
  • __attribute__((__used__))
    • 컴파일러가 코드를 최적화 할 때, 사용되지 않은 변수라 하더라도 제거하지 않도록 한다
    • "unused variable" 관련 compile warning을 방지
  • __attribute__((__aligned__(x)))
    • 변수가 위치하는 메모리의 주소를 x의 배수로 정렬한다
    • e.g) __attribute__((__aligned__(sizeof(long))))
  • __attribute__((__packed__))
    • 구조체 변수에대한 메모리를 할당 할 때, 기본적인 align 규칙(보통은 word, 4 bytes)을 따르지 않고, 실제 데이터의 크기 만큼만 메모리를 할당 하도록 한다
  • __attribute__((__section__(x)))
    • 변수가 ELF 오브젝트 내부에 x라는 이름을 갖는 특별한 섹션 안에 만들어지도록 한다
    • 주로 kernel 초기화 시에만 필요한 코드들을 .init.xxx section에 위치시키고, 사용 후에는 제거(free)하여 가용 메모리를 늘리는 방법으로 이용된다
    • 또한 이렇게 특정 section에 코드들을 위치시키는 방법은, code의 locality를 높여 instruction cache의 hit rate가 높아질 가능성(pipeline broken rate가 낮아질 가능성)이 있다
    • e.g.) __attribute__((__section__(".init.setup")))

# Practical Example #
(kernel/include/linux/init.h)
/*
 * Only for really core code.  See moduleparam.h for the normal way.
 *
 * Force the alignment so the compiler doesn't space elements of the
 * obs_kernel_param "array" too far apart in .init.setup.
 */
#define __setup_param(str, unique_id, fn, early) \
static const char __setup_str_##unique_id[] __initconst \
__attribute__((__aligned__(1))) = str; \
static struct obs_kernel_param __setup_##unique_id \
__attribute__((__used__)) \
                __attribute__((__section__(.init.setup))) \
__attribute__((aligned((sizeof(long))))) \
= { __setup_str_##unique_id, fn, early }

#define __setup(str, fn) \
__setup_param(str, fn, fn, 0)


Posted by 세월의돌