Guillermo Austin Kim

Sources

Posts

998 posts

[리눅스커널] GCC 지시어

Guillermo Austin Kim|2019년 12월 21일

[부록-A] GCC 지시어 리눅스 커널 코드를 읽다 보면 낯선 구문을 만날 가능성이 높습니다. 이 중 하나가 GCC 컴파일러 지시어입니다. 이번 시간에는 리눅스 커널에서 자주 쓰는 GCC 지시어를 소개합니다. 1. __init과 __section() __init 키워드가 함수 선언부에 있으면 해당 함수는 init.text 섹션에 위치합니다. 이해를 돕기 위해 __init 키워드로 선언된 함수를 봅시다. void __init lockup_detector_init(void)02 {03 set_sample_period(); 01번째 줄과 같이 lockup_detector_init() 함수 옆에 보이는 __init 구문입니다. 함수 선언부에 __init 키워드가 보이면 부팅 과정에서 1번 호출되는 함수라고

[임베디드] 뛰어난 임베디드 리눅스 프로그래머가 되기 위한 조건

Guillermo Austin Kim|2019년 12월 19일

뛰어난 프로그래머가 되기 위한 가장 중요한 덕목은 뭘까? 개인적으로; * 바로 부지런히 새로운 것을 배우려는 자세라고 생각한다. 일단 난 게으른 편이고 새로운 지식이나 스킬을 배우는 속도도 정말 느리다. 그래서 이런 주제에 대해 이야기하는게 정말 부끄럽다. 그런데 한 가지 내가 잘한다고 느끼는 것을 말해보까? '바로 쪼잔하다는 거다.' * 쪼잔하다? 그게 뭔 소리니? 쪼잔하다는 게 뭔 소리인데 풀어서 설명을 해볼까? 코드를 한 줄 추가할 때나 분석할 때 스스로 나에게 다음과 같은 질문을 던진다. * 배열의 인덱스가 제대로 처리되고 있나? * 배열을 초기화하지 않고 사용하면 문제가 되지 않을까? * 이 코드 구간에서 레이스 컨디션이 발생하면 어떻게 될까? * 지금 보는 코드

[임베디드] 6~12 개월만 학원에 다니면 리눅스 프로그래머가 될 수 있을까?

Guillermo Austin Kim|2019년 12월 18일

예전에 다른 회사에서 일하는 친구가 이런 말을 했어요. * 리눅스 프로그래밍(시스템 프로그래밍 + 디바이스 드라이버)은 뭐~ 6개월만 학원에서 공부하면 할 수 있어! 물론 전 그 자리에서 반박은 하지 않았어요. 그런데 이런 생각을 프로그래머 스스로 자신에 대해 이렇게 생각하는 것은 슬픈 것 같군요. * 자신이 하고 있는 일이 6개월 동안 학원 강의만 들으면 되나? 예전부터 지금까지 청년 실업을 해소하려고 정부가 종종 내놓는 대책이 있는데요. 그게 뭘까요? * 바로 IT 인력 몇 만 명 양성 프로젝트였어요. 출처가 어디냐고요? 다음 신문 기사를 볼까요? 출처:국내에서도 다양한 4차 산업혁명 교육 지원 프로그램이 쏟아져 나온다. 그러나 단순히 교육하는 데만 그쳐서는 의미를 갖기 어

[ARM] ARM 프로세서를 배워야 하는 이유

Guillermo Austin Kim|2019년 12월 17일

이번 시간에는 ARM 프로세스를 왜 배워야하는지 이야기를 해보겠습니다. 우리가 어떤 것을 처음 배울 때는 그것을 왜 배워야 하는지 알면 좋습니다. 왜냐면, 무엇을 공부하기 전에 왜 배워야 하는지 알면 더 동기 부여가 되기 때문이죠. 다른 동료들이나 친구들이 ARM 프로세서는 잘 배워야 한다고 해서 등떠밀려 공부하면 잘 집중이 안되는 거 같습니다. 그렇지 않나요? 무엇보다 배운 내용이 어떻게 활용되는지 알면 공부할 때 더 힘이 날 겁니다. 소형 기기에서 ARM 프로세서를 많이 탑재 ARM 프로세스를 배우는 가장 큰 이유는 ARM 프로세서를 많이 쓰기 때문이에요. 대부분 휴대 기기에는 ARM 프로세서가 많이 탑재돼 있어요. 여러분들, 모두 휴대폰 1개는 다 들고 다니죠? 안드로이드 스마트폰에 탑재된 CPU

[리눅스커널] 크래시 유틸리티: files -p '아이노드 주소' + files -d '덴트리 주소' 디버깅

Guillermo Austin Kim|2019년 12월 17일

크래시 유틸리티는 다양한 메모리 및 파일 시스템 디버깅 기능을 제공합니다.그 중에 유용한 기능 중 하나를 소개합니다. * files -p '아이노드 주소' 먼저 다음 명령어를 입력해 오픈된 파일에 대한 파일 디스크립터, 아이노드 그리고 덴트리를 확인 합니다. * files crash> files 1664PID: 1664 TASK: dc270000 CPU: 1 COMMAND: "Chrome-proc.anim"ROOT: / CWD: / FD FILE DENTRY INODE TYPE PATH 0 de4d8200 e1a33ab0 e0ce8dd8 CHR /dev/null 1 de4d8200 e1a33ab0 e0ce