From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754252AbcAOQet (ORCPT ); Fri, 15 Jan 2016 11:34:49 -0500 Received: from mail-io0-f175.google.com ([209.85.223.175]:36829 "EHLO mail-io0-f175.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754182AbcAOQeq (ORCPT ); Fri, 15 Jan 2016 11:34:46 -0500 MIME-Version: 1.0 In-Reply-To: References: Date: Fri, 15 Jan 2016 09:34:45 -0700 Message-ID: Subject: Re: Understanding IO architecture From: Jeff Merkey To: Mahmood Naderan Cc: 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 On 1/15/16, Mahmood Naderan wrote: > What is the good starting point to understand linux kernel? I know you > are going to say Understanding the Linux Kernel, but that is for 2005! > and kernel 2.6. > > We know that currently, the latest version is 4.4 and the version > number updates quickly. So, where can I find the core of IO > architecture, page cache, block layer and ... for the most stable > architecture and not the version number? > > > Regards, > Mahmood > Man, it's huge and linux has evolved into a giant jump table these days. I started programming on it in the 2.2 days and it was fairly sophisticated them. You could start with reviewing what's in the /kernel directory. For I/O study the bio architecture. FOr block layer start in drivers/block. Your best bet is to clone it, get yourself a good kernel debugger to step through code and explore how things work. start by cloning it so you have your own copy. Download and install git then clone Linus' tree. git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git Then you can also get the linux-stable tree which has all the stable versions of Linux git clone https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git if you need a good kernel debugger, try this one http://jeffmerkey.github.io Jeff