dfkdream’s blog

공부한 내용 정리

2024년 회고

안녕하세요. 참 오랜만입니다. 다사다난했던 2024년을 보내며 회고를 작성해 보기로 했습니다. 감성적인 글을 쓰는 건 제 전문이 아니라 담담하게, 작더라도 관심을 가지고 했던 일들만 적어 보려 합니다. ...

2025년 1월 2일  · 3 분 · 1363 단어 · dfkdream

리눅스 태스크가 대기하고 깨어나는 방법

태스크는 파일 처리 등 IO 작업을 요청한 다음 대기 상태에 들어가고, 처리가 완료되면 깨어나 남은 작업을 수행한다. 너무나 당연한 과정이라 인식하고 있지도 않았지만, 리눅스 커널은 이 작업을 여러 가지 단계들로 나누어 수행하고 있다. ...

2023년 10월 23일  · 5 분 · 2131 단어 · dfkdream

리눅스 커널의 연결 리스트

리눅스 커널에서는 태스크 목록 등을 관리하기 위해 이중 연결 리스트가 사용되는데, 이 이중 연결 리스트는 중복 코드를 최대한 줄이기 위해 독특한 형태로 구성되어 있다. 일반적인 이중 연결 리스트 struct list_head{ data_t payload; struct list_head *next, *prev; }; 이중 연결 리스트는 일반적으로 payload와 이전, 이후 노드를 가리키는 포인터들로 구성되어 있다. 이러한 구조체가 몇 개 밖에 없다면 큰 문제가 되지 않는다. 하지만 리눅스 커널처럼 복잡한 코드의 경우 여러 타입의 이중 연결 리스트가 매우 많이 필요하고 타입의 개수 만큼의 insert, delete, 순회 함수 등을 구현해야 한다. ...

2023년 10월 18일  · 2 분 · 879 단어 · dfkdream

객체 지향 토스터

옛날 옛적, 여기서 멀지 않은 왕국에서 왕은 두 명의 보좌관을 시험하기로 했다. 왕은 두 개의 기다란 구멍이 위에 나 있고, 조절 노브와 레버가 달린 반짝이는 금속 상자를 보여주며 “이것이 무엇이라고 생각하는가?” 라고 물었다. ...

2023년 8월 16일  · 3 분 · 1475 단어 · dfkdream

리눅스에서 마우스 버튼 리매핑하기

얼마 전에 MS Sculpt Ergonomic 마우스를 구입했고, 정말 잘 사용하고 있습니다. 하지만 이 마우스는 특이하게 앞으로 가기 버튼이 없고 Windows 키가 기본으로 할당되어 있습니다. 리눅스에서 이 키를 매핑할 수 있는 유틸리티가 제공되지 않아 다른 방법을 찾아 보았습니다. ...

2023년 8월 11일  · 2 분 · 505 단어 · dfkdream