Guillermo Austin Kim

Sources

Posts

998 posts

[리눅스커널] 커널 동기화를 배운 후 고찰 - 하드웨어만큼 소프트웨어가 중요하다

Guillermo Austin Kim|2020년 6월 28일

'CPU와 같은' 하드웨어 성능이 업그레이드가 되면 소프트웨어가 더 빨리 동작한다고 믿는 분들이 있습니다.최대 200 킬로의 시속을 낼 수 있는 자동차의 엔진을 300킬로로 달리도록 바꾸는 것을 예로 들 수 있죠. 그런데 '디버깅을 통해 배우는 리눅스 커널의 구조와 원리'란 책의 9장을 읽고 나면 이런 편견을 버릴 수 있어요.하드웨어 성능이 아무리 업그레이드되도 이를 뒷받침해주는 소프트웨어가 부실하면 성능 향상을 기대할 수 없다고 말하고 싶네요. 조금 더 구체적으로, 9장에서 다룬 스핀락과 뮤텍스를 예를 들어 제 생각을 뒷받침해 보겠습니다. 스핀락 어떤 프로세스가 스핀락을 획득하고 임계 영역을 실행 중에, 다른 프로세스가 임계 영역에 접근하면 스핀락을 획득할 수 없습니다.다른 일을 못하고 계속 기다리

[리눅스] insmod 명령어로 드라이버 설치 시 커널 내부 동작 디버깅해보기(ftrace)

Guillermo Austin Kim|2020년 6월 28일

이전에 다음 글에서 insmod 명령어를 통해 모듈 타입 디바이스 드라이버가 설치될 때,커널 내부 함수가 어떤 흐름으로 작동하는지 코드를 리뷰했습니다. [리눅스] 드라이버: module_init 키워드로 지정한 함수가 호출되는 원리 - sys_finit_module()http://rousalome.egloos.com/10016090 이어서 이번 시간에는 ftrace를 통해 hello_module_init() 함수가 어떻게 호출되는지 살펴보겠습니다. insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름 먼저 다음 그림은 insmod 명령어로 디바이스 드라이버를 설치할 때의 전체 흐름을 나타냅니다. 그림의 윗 부분에서 '유저 공간'으로 표기된 부분을 봅시다. insmod가 실행되어 시

[펌][유튜브] 초보 개발자, 이것만 안 해도 평균 이상 갑니다

Guillermo Austin Kim|2020년 6월 27일

유튜브에 좋은 컨텐츠를 올리는 개발자들이 늘어났으면 좋겠다.초보 개발자만 아니라 다른 개발자도 귀 담아 들으면 좋은 내용이 많은 것 같네. 출처: 초보 개발자, 이것만 안 해도 평균 이상 갑니다 (흔히 하는 실수 공개)https://www.youtube.com/watch?v=NHuxGa8dL1s&t=656s 1. 최소한의 노력도 없이 구글링 하듯이 질문하기 ● 고민을 하나도 하지 않고 자주 질문을 하면 다른 개발자에게 인터럽트를 유발하게 된다. ● 팀 동료의 생산성에 악영향을 끼친다. ● 동료 개발자에게 배려를 못한다는 느낌을 준다. 2. 반대로 너무 오래 침묵을 하기 ● 질문을 하지 않고 혼자 끙끙 고민만 하다가 일정을

[6장] 인터럽트 후반부 처리: 오타 공지(468페이지)

Guillermo Austin Kim|2020년 6월 27일

『디버깅을 통해 배우는 리눅스 커널의 구조와 원리』 책의 저자 김동현입니다.『6장』 '인터럽트 후반부 처리'에서 오타가 확인돼 공지드립니다. 오타를 잡기 위해 최선을 다했으나 미비한 점이 보여 죄송합니다. 오타를 제보해주신 독자님께 정말 감사드리며, 이 내용을 포함해, 오타나 오류로 확인된 부분은 2판과 출간될 이북(Ebook)에 꼭 반영토록 하겠습니다. 이제부터 오타에 대해 설명드리겠습니다. 468 페이지 468 페이지를 보면 다음과 같은 문장이 보입니다. 01~05번째 줄을 분석해 보면 or_softirq_pending() 매크로 함수의 실체는 다음과 같습니다.irq_stat[cpu].__softirq_pending =| x; 위에서 보이는 '=|' 구문이 오타입니다. irq_stat[cpu]

[6장] 인터럽트 후반부 처리: 오타 공지(427페이지)

Guillermo Austin Kim|2020년 6월 24일

『디버깅을 통해 배우는 리눅스 커널의 구조와 원리』 책의 저자 김동현입니다.『6장』 '인터럽트 후반부 처리'에서 오타가 확인돼 공지드립니다. 오타를 제보해주신 독자님께 정말 감사드리며, 이 내용을 포함해, 오타나 오류로 확인된 부분은 2판과 출간될 이북(Ebook)에 꼭 반영토록 하겠습니다. 수정된 irq_thread_trace.sh 파일은 아래 GitHub 링크에서 내려받아 확인하실 수 있습니다. wikibook/linux-kernel github 링크 수정 내용 427 페이지의 가운데 부분에 다음과 같이 ftrace를 설정하는 명령어가 있습니다. 01 echo bcm2835_mbox_threaded_irq bcm2835_mbox_irq > /sys/kernel/debug/tracing/