From owner-freebsd-hackers@FreeBSD.ORG Fri Jun 28 13:04:59 2013 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 57224BBF for ; Fri, 28 Jun 2013 13:04:59 +0000 (UTC) (envelope-from david.i.noel@gmail.com) Received: from mail-pb0-x234.google.com (mail-pb0-x234.google.com [IPv6:2607:f8b0:400e:c01::234]) by mx1.freebsd.org (Postfix) with ESMTP id 383561897 for ; Fri, 28 Jun 2013 13:04:59 +0000 (UTC) Received: by mail-pb0-f52.google.com with SMTP id xa12so2237152pbc.11 for ; Fri, 28 Jun 2013 06:04:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:in-reply-to:references:date:message-id :subject:from:to:cc:content-type; bh=y0kMIwktXZpKt7vLTZfIJejrH5QiOVHd857ch8U2TIE=; b=sPMiN9Hdw2RUFmzcbqMj+jixvJppdRBYpVK7/T0SD8BNl/6teqo02wdZ+Yto97AKZV QTVQDGW9R7bPqdWBP5GPp6mMiEZmzxsn5N61FLuVhAfLHE2ngjaE9+Kx9z0/NqIC6bQE l1AgZk34HcpsmT7bwh5EPbTwpdSRZqvPBjHJG7FozqngDAqf4FWaqQKoAIDfDYVOGuLC 2DLBV0bnqIYW4YVrj43lZGGv4+r8FIpuptKuHhG4GSixrRkRiICuGSR2NEXb3fepx5gg 906v5usIgasE2BOGey2PwyZIOYb/7NrGBaft3WweEHh7B+F/miqEOf7Fl4vh6tGXCfQ5 BL3Q== MIME-Version: 1.0 X-Received: by 10.68.254.74 with SMTP id ag10mr11360647pbd.81.1372424698856; Fri, 28 Jun 2013 06:04:58 -0700 (PDT) Received: by 10.68.201.201 with HTTP; Fri, 28 Jun 2013 06:04:57 -0700 (PDT) In-Reply-To: References: Date: Fri, 28 Jun 2013 08:04:57 -0500 Message-ID: Subject: Re: bsd boot sequence From: David Noel To: Brian Kim Content-Type: text/plain; charset=ISO-8859-1 Cc: freebsd-hackers@freebsd.org X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: David.I.Noel@gmail.com List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 28 Jun 2013 13:04:59 -0000 On 6/27/13, Brian Kim wrote: > howdy all, > > As a junior computer engineering major who has dreams of developing an > operating system more ubiquitous than ms windows, I have come to appreciate > the complexity and elegance of both the freebsd os and community. While > achieving proficiency in C programming yet lacking in both UNIX utility > know-how and shell scripting, I would rate my hacker savvy to be on an > intermediate level. By the time I graduate from college, I hope to have a > thorough understanding of the bsd kernel on the lowest level. > > Don't get me wrong though: while my end-game may be to develop my own > operating system, I will forever be a contributor to freebsd. As my > understanding of computers develops, you will undoubtedly see my name > appear more frequently on the freebsd-hacker emails. Unfortunately, I am > just not at the level of understanding just yet. > > To start, I was wondering if someone could briefly explain the operations > and function calls that occur at boot time. I wish to thoroughly examine > the freebsd source code but I'm afraid the sheer volume of code that exists > leaves me with no real starting point for my research. > > Thank you all for your time. > > -- > Best Wishes, > Brian Kim Boot's probably not as bad as it seems. There's boot0, boot1, boot2, loader, and kernel. So those would probably be the best places to start digging. A few hundred k of code if I'm not mistaken. Not entirely unmanageable. Some ideas that might help: - Scan source for comments and function/method names - Use doxygen to generate high-level source documentation - Generate UML diagrams from source (class and sequence diagrams would probably be most useful) - As Warren suggested, read all the documentation you can find - Google - Take notes as you go, publish them on a blog, and share the URL with us! -David