리눅스커널
Posts
154 posts[임베디드] 소프트웨어의 지배자 - 오픈 소스 프로젝트
제가 개발자로 첫 걸음을 내딛으면서 플래시 엔진을 포팅하는 일을 맡았어요. 조금 전문적으로 말하자면 미들 웨어 계층의 코드를 짰다고 해야 할까요? 플레시 엔진을 포팅하는 소스 코드는 물론 회사의 소유였어요. 물론 제가 작성한 소스 코드는 외부에 공개할 생각도 없었고, 만약 공개한다면 처벌을 받을 것 같았어요. 왜냐면 소스 코드는 회사의 소유물이기 때문이죠. 요즘도 회사의 기밀을 누출했다는 개발자의 뉴스를 보면 '소스 코드를 몰래 들고 튀었다.'란 이야기를 듣곤 하죠. 한 4~5년 개발을 하면서 소프트웨어 개발의 세계에서는 독특한 문화가 있다는 사실을 알게 됐어요. * 가장 먼저 희한하다고 느꼈던 것은 커뮤니티였어요. 웹에는 정말 수많은 개발 관련 커뮤니티가 있어요. 누군가 프로그래밍에 대해 질문을
[리눅스커널] GCC 지시어
[부록-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번 호출되는 함수라고
[임베디드] 뛰어난 임베디드 리눅스 프로그래머가 되기 위한 조건
뛰어난 프로그래머가 되기 위한 가장 중요한 덕목은 뭘까? 개인적으로; * 바로 부지런히 새로운 것을 배우려는 자세라고 생각한다. 일단 난 게으른 편이고 새로운 지식이나 스킬을 배우는 속도도 정말 느리다. 그래서 이런 주제에 대해 이야기하는게 정말 부끄럽다. 그런데 한 가지 내가 잘한다고 느끼는 것을 말해보까? '바로 쪼잔하다는 거다.' * 쪼잔하다? 그게 뭔 소리니? 쪼잔하다는 게 뭔 소리인데 풀어서 설명을 해볼까? 코드를 한 줄 추가할 때나 분석할 때 스스로 나에게 다음과 같은 질문을 던진다. * 배열의 인덱스가 제대로 처리되고 있나? * 배열을 초기화하지 않고 사용하면 문제가 되지 않을까? * 이 코드 구간에서 레이스 컨디션이 발생하면 어떻게 될까? * 지금 보는 코드
[리눅스커널] 크래시 유틸리티: files -p '아이노드 주소' + files -d '덴트리 주소' 디버깅
크래시 유틸리티는 다양한 메모리 및 파일 시스템 디버깅 기능을 제공합니다.그 중에 유용한 기능 중 하나를 소개합니다. * 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


