Guillermo Austin Kim

Sources

Posts

998 posts

[리눅스 디바이스드라이버] module_init 키워드로 지정한 함수가 호출되는 원리 - sys_init_module()

Guillermo Austin Kim|2020년 6월 9일

리눅스에서 실행 중인 디바이스 드라이버는 2가지 타입 중 하나입니다. ● 모듈 식 디바이스 드라이버 ● 빌트인 식 디바이스 드라이버 모듈식 디바이스 드라이버가 설치 될 때 리눅스 내부에서 어떤 방식으로 동작하는지 살펴보겠습니다. 이 중에 모듈 형태의 디바이스 드라이버는 다음과 같은 명령어를 사용하면 리눅스에 설치할 수 있습니다. 가장 간단한 모듈식 디바이스 드라이버 코드 먼저 가장 간단한 형태의 모듈식 디바이스 드라이버의 소스를 봅시다. #include #include #include MODULE_LICENSE("Dual BSD/GPL"); s

[IT] 리눅스 시스템 개발자가 되려면 디바이스 드라이버를 배워야 하는 이유

Guillermo Austin Kim|2020년 6월 7일

리눅스 세미나를 진행하다 보면 취준생들이 던지는 질문이 있습니다. 구체적인 질문을 소개하자면 다음과 같습니다. ■ 리눅스 시스템 프로그래밍까지 배우면 충분하지 않을까요? ■ 제가 아는 선배가 리눅스 디바이스 드라이버까지는 배울 필요가 없다는데요? 리눅스 시스템 SW 개발자 입장에서 질문에 대해 제 생각을 조금 이야기해보려 하는데요. 디바이스 드라이버를 배우면서 개발하라고 합니다. 취준생 분들은 미래의 신입 SW 개발자라고 볼 수 있는데요. '리눅스 디바이스 드라이버'를 왜 알아야 되는지 말씀드리기 전에 먼저 '신입 리눅스 SW 개발자'들이 처음에 어떻게 개발 업무를 시작하는지 알 필요가 있어요. 처음에 회사에 출근을 하면 신입 SW 개발자들은 해야 할 업무를 배정

[IT] 내가 rousalome 리눅스 커널 블로그를 하는 이유

Guillermo Austin Kim|2020년 6월 6일

제 동료들은 가끔 저에게 이런 질문을 던집니다. * 뭘 그렇게 블로그에 많은 글을 올릴까? 당연히 떠오르는 질문이라 생각됩니다. 글쓰기를 꺼리는 개발자들의 눈에 신기해 보일 수 있죠.저도 국내 최고의 IT 블로그인 '문c 블로그'를 봤을 때도 저도 비슷한 의문이 생겼거든요. 이번에는 제가 블로그를 하는 이유에 대해서 이야기를 해보고자 합니다. 먼저 나 자신을 위해 블로그를 합니다. 작곡가들은 종종 '난 대중이나 나 자신을 위해 작곡을 하지 않는다'라고 말합니다. 조금 다른 소리로 들릴지 모르겠지만 우선 저는 '저를 위해 블로그'를 한다고 말씀드리고 싶네요. 일단 블로그에 제가 분석한 내용을 어느 정도 정리해서 올리고 나면, 뭔가 나만의 데이터 베이스를 구축했다란 생각이 듭니다. 꼭 데이터

『디버깅을 통해 배우는 리눅스 커널의 구조와 원리』 첫 번째 독자 모임

『디버깅을 통해 배우는 리눅스 커널의 구조와 원리』 첫 번째 독자 모임

Guillermo Austin Kim|2020년 6월 5일

『디버깅을 통해 배우는 리눅스 커널의 구조와 원리』 책의 출간 기념으로 첫 번째 독자 모임을 가졌습니다. 몇 명 독자가 모였냐구요? 딱 한명이에요. 1:1 독자 모임이라고 할 수 있겠네요. 독자분은 영어 닉네임으로 'Alexander K'을 사용하시는 2년차 임베디드 개발자(남성분)였습니다.그 동안 제 블로그의 글이 업데이트되면 항상 관심을 갖고 댓글로 응원해주셨던 분이었습니다. 책이 출간되기를 기다렸다가 예약 판매 시기가 되자 정말 고맙게도 책을 구매해주셨다고 합니다.보통 책을 Wish List에 넣고 여유가 있으면 구입하기 마련인데 정말 감동이였습니다. Alexander님, 처음 제 인사글과 제 싸인을 해줄 수 있는 기회를 주셔서 정말 감사합니다. Alexander님과 다음과 같은 주제로

[리눅스커널] 프로세스 스케줄링: struct task_struct 필드 중 누가 컨텍스트 스위칭 횟수를 저장할까?

Guillermo Austin Kim|2020년 6월 5일

블로그 방문자께서 댓글로 다음과 같은 질문을 주셨습니다. * 한 프로세스가 context switching(cpu burst)이 일어난 횟수는 task_struct 구조체에서 어떤 변수로 확인할 수 있나요? 이 질문에 답을 드리면; * task_struct 구조체의 nivcsw 필드가 컨텍스트 스위칭을 한 횟수를 저장합니다. task_struct 구조체의 nivcsw 필드 확인하기 이번에는 task_struct 구조체의 nivcsw 필드를 확인해보겠습니다. struct task_struct {02 #ifdef CONFIG_THREAD_INFO_IN_TASK03 /*04 * For reasons of header soup (see current_thread_info()), this0