Guillermo Austin Kim
Posts
998 posts[SW] 늙은이 꼰대 개발자는 왜 짜르면 안될까?
많은 늙은이 꼰대 개발자들은 회사에서 짤릴 까봐 걱정을 한다. 처자식은 먹여 살리느라 돈이 가장 많이 들어갈 시기라 그런지 총각 개발자들 보다 더 스트레스를 받는 것 같다. 난 이런 늙은이 개발자들은 회사에서 반드시 짤라야 한다고 생각한다. 물론 나도 늙은이 개발자가 되면 짤리겠지만. 내가 말하는 늙은이 개발자는 나이가 많은 개발자를 의미하지는 않는다. 다음과 같은 부류 개발자를 의미한다.- 자기 개발을 전혀 하지 않고 후배들에게 군림하려고 하는 꼰대 개발자- 맨 먼쓰(Man Month)가 0.3인데 전혀 개선을 하려는 의지가 없는 개발자- 허구헛날 잔기술에만 몰두하는 퇴물 개발자- 일을 안하려는 수 백 가지 명분과 이유를 만들어내는 개발자 소프트웨어 개발자들은 회사가 제대로 자신을 보상해주지 않으면
[SW] 리눅스 커널은 왜 알아야 할까? 코드 몽키가 되어야 하나?
많은 사람들이 리눅스 커널, 리눅스 커널하는데 왜 리눅스 커널을 잘 알아야 할까?이번에는 리눅스 커널을 왜 공부해야 하는지 알아보자. 문제 해결 능력리눅스 커널을 알아야 하는 이유는 정말 간단하다. 디바이스 드라이버 담당자로써 문제 해결 능력을 키울 수 있기 때문이다. 처음 임베디드 임베디드 리눅스 개발자로 일을 시작하면 보통 어떤 개발 업무를 맡을까?대부분 드라이버를 맡는 경우가 많다. 예를 들어 스토리지, 네트워크, 모뎀 등등 디바이스 종류는 무궁무진하다. 그런데 디바이스 드라이버 코드는 누구나 작성할 수 있다. 리눅스 커널에 얼마나 많은 디바이스 드라이버 예제 코드가 많은가? 예제 코드를 활용해서 해당 디바이스에 대한 데이터 시트만 있으면 그리 어렵지 않게 드라이버를 구현할 수 있다. 그럼 리
[라즈베리파이] 프로세스: do_exit() 함수 분석
do_exit() 함수로 커널이 프로세스를 종료 시키는 세부 동작 못지 않게 프로세스가 종료되는 흐름을 파악하는 것이 중요합니다. 그 이유는 무엇일까요? 유저 어플리케이션 프로세스나 커널 프로세스가 예외 상황에서 의도하지 않게 종료해서 문제가 발생하는 경우가 있습니다. 이런 문제를 만났을 때 커널 어느 함수부터 분석을 해야할 지 결정할 수 있습니다. 이번에는 do_exit() 함수가 어떻게 실행되는지 알아봅시다. - exit() 시스템 콜 실행유저 어플리케이션 프로세스가 자신을 종료하려면 리눅스 저수준 함수로 exit() 함수를 호출합니다. 이 때 시스템 콜을 발생시킨 다음 sys_group_exit() 시스템콜 핸들러를 실행합니다. - 다른 프로세스가 프로세스 종료 시그널을 전달했을 경우프로세스
[라즈베리파이] 프로세스 생성: _do_fork() copy_process() 함수 분석
이전 시간까지 유저 프로세스와 커널 프로세스가 어떤 흐름으로 생성되는지 살펴봤습니다.둘 다 _do_fork() 함수를 호출한다는 사실을 알 수 있습니다. 프로세스 생성 시 공통으로 실행하는 _do_fork() 함수 코드를 분석하면서 커널이 어떻게 프로세스를 생성하는지 살펴봅니다. _do_fork() 함수_do_fork() 함수을 분석하기 앞서 이 함수 동작을 분류해봅시다. 1단계: 프로세스 생성copy_process() 함수를 호출해서 프로세스를 생성합니다. 프로세스를 생성하는 세부 동작을 파악하려면 copy_process() 함수를 분석할 필요가 있습니다. 2단계: 생성한 프로세스 실행 요청copy_process() 함수를 호출해서 프로세스 생성을 마쳤으면 wake_up_new_task() 함수를
[라즈베리파이] 프로세스: 커널 스레드는 어떻게 생성하나?
이번에는 커널 스레드 생성 요청과 커널 스레드를 생성하는 코드 흐름을 살펴봅시다. 커널 스레드를 생성하려면 다음과 같이 kthread_create() 함수를 호출해야 합니다.1 #define kthread_create(threadfn, data, namefmt, arg...) \2 kthread_create_on_node(threadfn, data, NUMA_NO_NODE, namefmt, ##arg)34 struct task_struct *kthread_create_on_node(int (*threadfn)(void *data),5 void *data, int node,6 const char namefmt[],7 ...) 먼저 이 함수에 전달하는 인자부터 살펴봅시다.


![[웹툰단행본] 『통제구역관리부』 1권 후기 : 이상한 변칙과 기이한 일들이 일어나는 공간에 대하여](https://img.zoomtrend.com/2026/06/09/1780996474-SE-5eda86fa-0d63-4afd-b8dd-b801879fed52.jpg)
