[Linux:Kernel] Documentation/printk-formats.txt
변수가 아래 타입이라면, printk형식 지시자를 사용하세요:
가공되지 않은 포인터 값은 %p로 출력되는 것이 ‘좋습니다’. 커널은 포인터
심볼/함수 포인터:
%pF versatile_init+0x0/0x110
심볼과 함수 포인터를 출력하기 위해서, (‘S’)로 오프셋과 함께, 혹은 (‘s’)로
‘B’ 지시자는 오프셋과 함께 심볼 이름을 나타내고, 스택 트레이스를 출력할
ia64, ppc64, 그리고 parisc64 아키텍처에서 함수 포인터들은 실제로는
커널 포인터:
%pK 0x01234567 나 0x0123456789abcdef
권한이 없는 사용자에게 가려져야 할 커널 포인터를 출력하기 위해서 사용.
구조체 자원:
%pr [mem 0x60000000-0x6fffffff flags 0x2200] or
구조체 자원을 출력하기 위해 사용. ‘R’과 ‘r’ 지시자는 디코딩된 플래그
phys_addr_t 타입의 물리 주소:
%pa[p] 0x01234567 나 0x0123456789abcdef
CPU 데이터 경로의 너비와 상관없이, 빌드 옵션에 의해서 다양하게 될 수 있는
dma_addr_t 타입의 DMA 주소:
%pad 0x01234567 나 0x0123456789abcdef
CPU 데이터 경로의 너비와 상관없이, 빌드 옵션에 의해서 다양하게 될 수 있는
16진수 문자열의 비가공 버퍼:
명확한 구분자로 된 16진수 문자열로 작은 버퍼(64 바이트 길이까지의)를
MAC/FDDI 주소:
%pM 00:01:02:03:04:05
16진수 표기로 된 6바이트 MAC/FDDI 주소를 출력할 때 사용. ‘M’과
FDDI 주소들이 쓰이는 곳에서 ‘F’ 지시자는 기본 구분자 대신에 대시(‘-‘)
블루투스 주소를 위해서 리틀 엔디언으로 된 블루투스 주소의 보이는 형태의
IPv4 주소:
%pI4 1.2.3.4
IPv4의 점으로 구분된 10진수 주소를 출력할 때 사용. ‘I4’와 ‘i4’ 지시자는
덧붙는 ‘h’, ‘n’, ‘b’, 그리고 ‘l’ 지사자들은 각각 호스트, 네트워크,
IPv6 주소:
%pI6 0001:0002:0003:0004:0005:0006:0007:0008
IPv6 네트워크-오더 16비트 16진수 주소를 출력할 때 사용. ‘I6’와 ‘i6’
IPv4/IPv6 주소 (일반적인, 포트와 함께, flowinfo, 범위):
%pIS 1.2.3.4 나 0001:0002:0003:0004:0005:0006:0007:0008
그 타입이 AF_INET인지 AF_INET6인지 구분할 필요 없이 IP 주소를 줄력할 때
덧붙는 ‘p’, ‘f’, 그리고 ‘s’ 지시자는 포트(IPv4, IPv6), flowinfo(IPv6),
IPv6 주소의 경우에 http://tools.ietf.org/html/rfc5952에서 기술된
IPv4 주소의 경우, 덧붙는 ‘h’, ‘n’, ‘b’, 그리고 ‘l’ 지시자가 잘 사용될 수
더 많은 예제:
%pISfc 1.2.3.4 나 [1:2:3:4:5:6:7:8]/123456789
UUID/GUID 주소:
%pUb 00010203-0405-0607-0809-0a0b0c0d0e0f
16바이트 UUID/GUID 주소를 출력하기 위해 사용. 덧붙는 ‘l’, ‘L’, ‘b’,
아무 추가 지시자도 붙지 않으면 기본으로 리틀 엔디언 오더에 소문자로
dentry 이름:
dentry 이름을 출력하는데 사용; 만약 우리가 d_move()로 경쟁 상태를 만들면,
struct va_format:
%pV
struct va_fotmat 구조체를 출력하는데 사용. 이들은 다음과 같은 va_list와
struct va_format {
형식 문자열이나 va_list 인자들의 정확성을 확인하기 위한 어떤 메카니즘 없이
u64는 %llu/&llx로 ‘출력해야’ 합니다:
printk(“%llu”, u64_var);
s64는 %lld/%llx로 ‘출력해야’ 합니다:
printk(“%lld”, s64_var);
Example:
printk(“test: sector number/total blocks: %llu/%llu\n”,
다시 알림: sizeof() 결과는 size_t 타입입니다.
여러분의 협력과 주의에 감사합니다.
[Ubuntu] root 인증서 설치
프록시를 사용하는 환경에서 https 프로토콜을 사용할 때 인증 오류가 나는 경우, ca-certificate 인증 문제일 경우가 많다. 프록시 사용에 따른 인증서를 제공한다면 이걸 시스템 전역적으로 설치해주면 해결된다. 절차는 간단하다.
$ sudo mkdir /usr/share/ca-certificates/extra
$ sudo cp foo.crt /usr/share/ca-certificates/extra/
$ sudo dpkg-reconfigure ca-certificates
하고나서 껐다켜야 잘 되던데? 왜그런거지..
출처: http://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate
발생한 문제를 둘 모두가 긍정적이고 적극적인 자세로 풀어가라. 인내하지 마라.
“나는 죽을 때까지 재미있게 살고 싶다” 290p.
어찌 부부 관계만 이러랴.
말을 할 때 명심할 열가지 조언
첫째, 상스러운 말은 하지 마라. 욕이나 비하하는 말은 말 가운데 가장 낮은 하수다.
둘째, 상대가 제일 싫어하는 말은 절대 하지 마라. 누구나 정말 듣기 싫은 말이 있다. 그 말은 뇌관이다. 건드리면 폭발한다.
셋째, 남과 비교하는 말은 피하자. 세 살 먹은 아이부터 팔십 살 먹은 노인까지, 남과 비교하면 정말 기분 나쁘다.
넷째, 인격을 무시하는 말로 공격하지 마라. 자존심을 건드리면 관계를 회복하기 어렵다. 두고두고 원망만 들을 뿐이다.
다섯째, 상대 가족을 헐뜯지 마라. 본질과는 아무 상관도 없는 상대의 가족은 어떤 상황에서도 건드리지 마라.
여섯째, 폭탄선언은 제발 참아라. ‘우리 헤어져’, ‘이혼하자’, ‘사표내야지’ 등 이런 이야기는 정말 마지막에 하는 말이다.
일곱째, 유머 있는 대화의 기술이 필요하다. 무슨 이야기든 심각할 필요는 없다.
여덟째, 분명한 말은 오해를 남기지 않는다. 확실한 ‘예스’와 확실한 ‘노’는 연습해야 잘할 수 있다.
아홉째, 비비 꼬는 꽈배기 말은 하지 마라. 마음이 꼬여 있을 때는 침묵하는 게 낫다.
열째, 사람을 죽이는 독 있는 말도 있다. 말은 세상에서 가장 무서운 독이 되기도 하고 명약이 되기도 한다.’
“나는 죽을 때까지 재미있게 살고 싶다” 안의 “말실수를 하고 후회한 적이 많은 사람들에게” 222~223p.
나도 경험으로 얻었던 몇가지 조언에 더해서 구구절절 맞는 조언들. 뼈저리다.
상대의 특별한 점을 기억하라
‘자, 50여 년 경력의 정신과 의사가 일러 주는 인간관계의 비결은 상대의 특별한 점을 기억하라는 것이다.’
“나는 죽을 때까지 재미있게 살고 싶다” 220~221p.
좋은 질문이다. 답하는 사람이 흥이 나는 질문이니까. 질문자에게 호감이 생기는 것이 당연하다.
좋은 질문 하니까 생각나는데, 얼마 전 누군가가 지인들에게 “너는 내가 왜 좋아?”라고 자주 묻는단 이야기를 들었다. 이 또한 좋은 질문이다.
답변자는 일단 질문자를 내가 좋아하는가-질문자에 대해서- 생각할테고, 질문자를 좋아한다면, 그 이유에 대해 생각해 볼 것이고, 이를 말로 할테니까.
좋아하지는 않더라도 그와의 관계를 해치기 싫은 사람이라면 이유는 어찌됐던 이래서 좋다고 말로 할테니까.
그를 싫어하는 사람이라면, 그리고 질문자가 답변자가 자신을 좋아한다고 오해하고 있었다면 그게 아님을 알 수 있을테니까.
그를 싫어하는 사람에게, 그리고 질문자가 그 사실을 알고 있다면 저 질문이 나오지 않겠지.
어떠한 것을 밖으로 꺼내어 말로 하는 것은 큰 차이를 일으킨다. 사실일 경우, 생각이 더 확고해지고, 사실이 아닐 경우는 자기합리화의 과정을 거치기 때문이다. 그래서 말이 결국 사실-여기선 질문자를 좋아한다는 사실-이 된다.
상대의 특별한 점을 기억하라는 건 디테일의 힘과도 상통한다. 상세하게 나를 기억하는 사람이 어찌 싫을까.
이러나 저러나, 호감의 이야기를 보고 예전의 내가 생각나서 적는다. 난 오래전 아마 모두의 사랑을 받고 싶었던 것 같다. 나를 싫어하는 사람도 나를 좋아하게 하고 싶었던 것 같다. 그래서 내가 먼저 내민 손을 받아주지 않는 상대를 서운해하고, 원망했고, 이해할 수 없었다. 나중에서야 내 욕심임을 알았지만.
요즘은 나를 싫어해도, 내가 먼저 내민 손을 치워도 그냥 그러려니 한다. 그럴 수 있음이다. 사람 맘은 내 맘대로 되는 것이 아니다. 그저 조용히 손을 다시 거둘 뿐이다.
최선을 다하지 말고, 여력을 남겨라
‘이 많은 일을 할 수 있었던 것은 늘 나의 능력을 30퍼센트 가량 아껴 두었기 때문이다.’
“나는 죽을 때까지 재미있게 살고 싶다” 안의 “내가 ‘최선을 다하라’라는 말을 싫어하는 이유”
난 이 깨달음이 늦었다. 입사하고 한창 의욕이 과해 잠도 안자고, 몸 깎아가며 일하던, 내가 맡지 않아도 될 몫까지 끌어 안고, ‘책임감’이란 단어에 취해서 나를 태우던 그 때, 지친 나를 다른 부서의 한 선임님은 ‘기름을 채워야 또 달리지. 기름도 안채우고 계속 달리면 멈춰요’라며 반강제로 스타벅스로 데려가 한가로이 라떼를 먹였다.
여력을 남겨라. 남는 힘이 없으면 모든 일이 귀찮아진다. 그 일 외에 아무 것도 할 수 없게 된다. 그리고 그 남는 일들이 점점 쌓인다. 정말 돌이킬 수 없게 된다. 건강을 해치는건 덤이다. 그런데 그 덤을 얻으면, 네 인생 전체가 사라진다.
타인의 관심 부재를 당연시 하고, 외로움에 적응하기
‘노후 대비로 외로움에 대비하는 일도 잊어서는 안된다. 살다 보면 아무도 나에게 관심을 갖지 않는 시기가 꼭 온다. 그 상태를 당연하게 받아들이고 그에 적응하는 법은 스스로 찾아내야 한다.’
“나는 죽을 때까지 재미있게 살고 싶다.” 30p.
[ARM] Cortex-A 페이징
ARM Cortex-A 페이징에 대해서 잘 적혀있는 글 발견!
설명하면서 쓴 단어의 정의들도 정확하다. 설명도 간략하면서 쉽게 되어 있다.
http://kth3321.blogspot.kr/search?q=ARM+Cortex-A+%ED%8E%98%EC%9D%B4%EC%A7%95
아참, 본문의 내용 중 예제에 Offset에 따른 물리 주소를 그저 Offset을 더하는 것으로 설명되어져 있는데, 이 부분은 잘못된 것으로 보인다. 실제로는 32비트 주소 값 혹은 pgd/pte 의 주소+a를 갖고 있으므로 Base + Offset * 4(=32 bits) 의 물리 주소를 참조한다.