6.828: Operating System Engineering (67)

よくよく見てみるに

(gdb) x/24x $esp
0xfffffc:       0x0010287b      0x00000000      0x00000000      0x00000000

なソレは stack pointer が指してるアドレス

esp            0xfffffc 0xfffffc

に、0x0010287b という値が入っている、と。
で、この番地ですが、kernel.asm によると

  char *top = kstack + PGSIZE;
  asm volatile("movl %0,%%esp" : : "r" (top));
  10286f:	05 00 10 00 00       	add    $0x1000,%eax
  102874:	89 c4                	mov    %eax,%esp
  asm volatile("call mainc");
  102876:	e8 d5 fe ff ff       	call   102750 <mainc>
  panic("jkstack");
  10287b:	c7 04 24 a1 68 10 00 	movl   $0x1068a1,(%esp)

mainc を呼び出した後の戻り番地になっております。
そりゃ良いのですが

Which part of the stack printout is actually the stack? (Hint: not all of it.) Identify all the non-zero values on the stack.

みたいな記述があるのですが、x/24 な出力は先頭以外全部 0x0 だな。結構遡ってみたのですが 0x0 です。というか見てるポイントが違うような気がするなぁ。
例えば、main 手続きで止めた場合はちょっと違う出力。

(gdb) b * 0x1028a0
Breakpoint 1 at 0x1028a0: file main.c, line 16.
(gdb) c
Continuing.
The target architecture is assumed to be i386
=> 0x1028a0 <main>:     push   %ebp

Breakpoint 1, main () at main.c:16
16      {
(gdb) info reg
eax            0x1028a0 1058976
ecx            0x0      0
edx            0x1f0    496
ebx            0x10094  65684
esp            0x7bbc   0x7bbc
ebp            0x7bf8   0x7bf8
esi            0x0      0
edi            0x10d824 1103908
eip            0x1028a0 0x1028a0 <main>
eflags         0x6      [ PF ]
cs             0x8      8
ss             0x10     16
ds             0x10     16
es             0x10     16
fs             0x0      0
gs             0x0      0
(gdb) x/24x $esp
0x7bbc: 0x00007dd0      0x00000000      0x00000000      0x00000000
0x7bcc: 0x00000000      0x00000000      0x00000000      0x00000000
0x7bdc: 0x00010094      0x00000000      0x00000000      0x00000000
0x7bec: 0x00000000      0x00000000      0x00000000      0x00000000
0x7bfc: 0x00007c4d      0x8ec031fa      0x8ec08ed8      0xa864e4d0
0x7c0c: 0xb0fa7502      0xe464e6d1      0x7502a864      0xe6dfb0fa
(gdb)

ここでもスタックのてっぺんに bootblock なソレへの戻り番地が格納されてますね。あと、eax は main な手続きの先頭番地だな。
とりあえずソースを見つつ mem.pdf を読みます。