Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161783AbbKFRP6 (ORCPT ); Fri, 6 Nov 2015 12:15:58 -0500 Received: from mail-lf0-f42.google.com ([209.85.215.42]:35312 "EHLO mail-lf0-f42.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932992AbbKFRP5 (ORCPT ); Fri, 6 Nov 2015 12:15:57 -0500 MIME-Version: 1.0 Date: Fri, 6 Nov 2015 18:15:55 +0100 X-Google-Sender-Auth: 3Tvc6QceEUGP_-R25iT49b88_DE Message-ID: Subject: Improvement of trails and tutorials to become a kernel developer / maintainer From: Patrick Plattes To: linux-kernel@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2530 Lines: 64 ello, I'm interested since a very long time in kernel development, but I never saw the right path to become familiar with parts of the kernel. I read a bit of ipc code and ext* code, but since I often don't know any possible next steps I moved back to something else in the user space. I really like the tutorial on kernelnewbies.org FirstKernelPatch an I had the idea to create this type of tutorial as a training for specific kernel subsystems eg. ipc, file systems, usb drivers, ... A structure of such a tutorial could look like that: (eg scheduler) 1. Introduction / Goal [5 sentences of the goal - what should be archived by this tutorial] - understand scheduling in the linux kernel - write your own scheduler - ... 2. Preparation 2.1 Understand how to write a kernel patch: http://kernelnewbies.org/FirstKernelPatch 2.2 Understand the goal of Scheduling: https://en.wikipedia.org/wiki/Schedule 3. User space view 3.1 Read and understand: http://man7.org/linux/man-pages/man7/sched.7.html 3.1.1 Questions 3.2 Exercise: Write a program that does A 3.3 Exercise: Write a program that does B 3.4 Exercise: Write a program that does C 4. Kernel 4.1 Read and understand: http://man7.org/linux/man-pages/man7/sched.7.html 4.1.1 Questions 4.2 Read API description: http://... 4.3 Exercise (understanding): Read and understand function xxxx_yyyy() 4.4 Exercise (understanding: Change the implementation of xxxx_yyyy(), so that ... 4.5 Exercise (debugging): checkout version 123456 and fix the following (old) bug 4.6 Final Exercise (developing): Write your own scheduler with the following algorithm... In my opinion that could help a lot of interested people to have a guided tour though the kernel. It could really lower barriers, also in terms of the fear of communication. I am NOT able to to produce it by myself, but I can help to structure it, review it and also answer questions. I would also maintain them in case of changes and test the tutorials on a regular basis to keep them up to date. I also would improve the tutorial from a newbie point of view ;) If there is someone out there that is also interested in doing it please let me know. And if there is something like this out there please let me know, so I can maybe support this project :) Greetings, Patrick -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/