[Linux] 어떻게 리눅스 커널 프로그래밍, 코딩 또는 읽기 학습을 시작?


Answers

학습을 시작하기 위해 두 권의 훌륭한 책을 골랐습니다. 우선, 나는 책을 끝내고 가능한 한 가장 좋은 예를 따라 가려고한다.

필자는 개인적으로 임베디드 디바이스 용 Linux 디바이스 드라이버 (많은 아날로그 및 디지털 획득 카드)를 작성한 대학에서 직업을 얻은 후 커널 코드를 깊이 배웠다. 나는 이전에 경험 한 바가 없으며 언급 한 두 권의 책은 저를 올바른 방향으로 시작하게하는데 엄청난 도움을주었습니다.

내 질문에, 왜 리눅스 커널 프로그래밍을 배우고 싶습니까? 이렇게하면 참여할 수있는 오픈 소스 프로젝트를 제안하는 데 도움이 될 수 있습니다.

또한 개발자가 필요한 커널 프로젝트의 좋은 소스를 찾을 수 있습니다. http://kernelnewbies.org/KernelProjects

Question

나는이 목적을 위해 Robert Love의 Linux Kernel Development 와 O'Reilly의 The Linux Kernel Understanding이라는 두 권의 책을 가지고있다. 이 책을 읽기 시작했고 Linux 용 최신 소스 코드를 다운로드했습니다.

자, 여기서부터이 책들을 끝까지 읽어보아야할까요? 아니면 코드를보기 시작해야합니까? 그리고 코딩을 시작해야한다면 어디에서 시작해야할까요? 코드를 이해하기 가장 좋은 곳은 혼란스러워하는 디렉토리와 파일이 너무 많습니다. 나는 또한 내가 Operating Systems에서 강의를했다는 것을 덧붙일 수 있으며, 나는 그 개념에 상당히 익숙하다 ... 더 나아가 나를 도울 수있는 제안을 해주시기 바랍니다. 또한 커널 프로그래밍을 시작한 방법을 알려주십시오. 미리 감사드립니다 ...




이것은 매우 어려운 질문입니다.

코딩 하고자 하는 대상은 무엇입니까 (나중에)? 아마도 우리는 거기에서 갈 수 있습니다.

내 시작과 유일한 경험은 내가 몇 시간 전에 박람회에서 얻은 LED와 버튼이있는 가젯을위한 간단한 USB 드라이버를 작성하는 것이 었습니다.

Linux Magazine이나 이와 비슷한 장치에서 이러한 장치 용 드라이버를 코딩하는 방법에 대한 멋진 기사를 읽었습니다.

http://www.kernel.org/doc/htmldocs/gadget.html 에는 멋진 (구식?) 정보가 있습니다!

불행하게도 나는 코드 (랩탑이 켜져있는)와 깜박 거리는 가제트를 모두 잃어 버렸다.




내가 좋아하는 (온라인) 서점에 가서 Linux 커널 개발에 관한 책을 검색하라는 조언을드립니다. 시작하려면 최신 기술을 설명하는 책을 가지고있는 것이 중요하지 않습니다. 대신 책은 프로그래밍 기술과 일치해야합니다.

기술 기사에서 새로운 기술을 설명하는 Linux (온라인) 잡지를 다시 찾습니다.