Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Apr 2011 00:28:51 -0700
From:      Devin Teske <dteske@vicor.com>
To:        Julian Elischer <julian@freebsd.org>
Cc:        "freebsd-hackers@freebsd.org" <freebsd-hackers@freebsd.org>, Chris Richardson <chris.richardson.bsd@gmail.com>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>, "freebsd-emulation@freebsd.org" <freebsd-emulation@freebsd.org>
Subject:   Re: Kernel Tracking Question.. regarding kernel and boot files
Message-ID:  <D43F8AD2-197E-48D2-A1F5-DED05BA9D137@vicor.com>
In-Reply-To: <4DA13620.7060407@freebsd.org>
References:  <BANLkTik8KZ0wO2gq8E%2B2pCQVD399McbJ0g@mail.gmail.com> <F81598D9-D664-4B3E-AAD9-6BA8445EE748@mac.com> <BANLkTinrWWwx7HeMQZjnmGhux27W9Rztzg@mail.gmail.com> <4DA13620.7060407@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Apr 9, 2011, at 9:46 PM, Julian Elischer <julian@freebsd.org> wrote:

> On 4/9/11 2:51 PM, Chris Richardson wrote:
>> On Sat, Apr 9, 2011 at 10:34 PM, Chuck Swiger<cswiger@mac.com>  wrote:
>>=20
>>> Hi, Chris--
>>>=20
>>> [ ...Reply-to: set to direct towards the most appropriate list... ]
>>>=20
>>> On Apr 9, 2011, at 8:31 AM, Chris Richardson wrote:
>>>>   I am totally new to FreeBSD. I was involved within project which will
>>>> trace the kernel. I used ktrace but I could not get appropriate results
>>>> about the files being opened. I don't see any of the boot files boot0-1
>>> or 2
>>>> in the ktrace.out file. Where did they go?
>>> The bootstrap loader stages are what loads and runs the kernel.
>>> ktrace isn't available until afterwards, when the kernel is running.
>>>=20
>>>> Is ktrace the best "trace suite" for freebsd kernel?
>>> Kinda depends on what you are doing.  Setting up good logging and making
>>> userland
>>> interfaces for getting to useful information (cf vmstat, ps, iostat, et=
c)
>>> is
>>> more likely to be useful over the longer run.
>>>=20
>>>=20
>> What about if I wanna see the interaction between boot process and kernel
>> loading.
>=20
> either you run it under an emulator that allows you to single step it.
> or you just add a lot of printf() to the boot loader.
> (some parts are required to fit in small code sizes to adding prints will=
 cause overflow..)
> best to read the docs and then the sources. then it wil become apparent t=
o you
> what you want to find out.

You also have the option of writing Forth modules for the boot-loader. Even=
 dropping to the "ok" prompt is enough to give you full access to the built=
-in Forth interpreter. You can query the variables that are set in the "env=
ironment" (which are different depending whether you've booted via pxeboot,=
 cdboot, or other method). You can even do some limited device poking and f=
ile-io (both read and write).

The benefit of the forth modules is that you can use it to produce the nece=
ssary debug output whilst avoiding the overflow issue. That is to say, that=
 one technique I've used is to add code to the loader to export some string=
 or value of interest to a variable in the environment that I would then ad=
d something like 'echo "debug =3D=3D $debug"' to loader.rc. Keeps the loade=
r small and the human fluff off to the interpreter.

>=20
>>=20
>>>> What about going through source code .. Is it better to
>>>> use Combination of Ecllipse/Qemu and FreeBSD Source tree?
>>> Eclipse is an editor.  If you like it in particular, free free to use i=
t,
>>> otherwise pick something else you'd prefer to use for C code.

I use a combination of vim (as my editor) and CVSweb (URL is in the handboo=
k) for historical research as necessary.

Just my "tuppence."
--=20
Devin

>>>=20
>>>> Does this method will provide us with someway to see how booting proce=
ss
>>> invokes
>>>> the kernel to memory ? Any help will be appreciated.
>>> You're asking about the process here:
>>>=20
>>>=20
>>> http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/boot-blocks.h=
tml
>>>=20
>>> ...?  Frankly, none of these are especially big, start by reviewing the
>>> source
>>> code for 'em.
>>>=20
>>>=20
>> Yeah. this file provides me with the stages in theoretical way. How about
>> implementing it using qemu to emulate livecd to see what is going on boo=
t0.
>> Do you have an idea about that ?
>>=20
>> Good Luck,
>>=20
>>=20
>>> Regards,
>>> --
>>> -Chuck
>>>=20
>>>=20
>>>=20
>> _______________________________________________
>> freebsd-current@freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-current
>> To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.or=
g"
>>=20
>=20
> _______________________________________________
> freebsd-hackers@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
> To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org"

_____________

The information contained in this message is proprietary and/or confidentia=
l. If you are not the intended recipient, please: (i) delete the message an=
d all copies; (ii) do not disclose, distribute or use the message in any ma=
nner; and (iii) notify the sender immediately. In addition, please be aware=
 that any message addressed to our domain is subject to archiving and revie=
w by persons other than the intended recipient. Thank you.
_____________



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?D43F8AD2-197E-48D2-A1F5-DED05BA9D137>