Linux 理解os引导加载-汇编

Linux 理解os引导加载-汇编,linux,assembly,operating-system,Linux,Assembly,Operating System,我试图更深入地理解。因此,linux引导必须处理一个程序集文件。我知道mov、push、pop、,但在这里,我对以下内容感到非常困惑: .globl __start .ent __start __start: br $29,2f 2: ldgp $29,0($29) jsr $26,start_kernel call_pal PAL_halt .end __start switch_to_osf_pal: subq $30

我试图更深入地理解。因此,linux引导必须处理一个程序集文件。我知道mov、push、pop、,但在这里,我对以下内容感到非常困惑:

.globl  __start
    .ent    __start
__start:
    br  $29,2f
2:  ldgp    $29,0($29)
    jsr $26,start_kernel
    call_pal PAL_halt
    .end __start

switch_to_osf_pal:
    subq    $30,128,$30
...
如果我说
\u start
是一个标签,对吗?那么,当它在另一个和平的代码中被调用时,它会被调用吗?我试着用谷歌搜索来理解
ldgp
,或者
call\u-pal
符号,但什么也没找到。最后,我在c文件中发现,
switch_to_osf_pal
是这样调用的
switch_to_osf_pal(2,pcb_va,pcb_pa,VPTB)此函数是否使用此参数调用汇编函数


如果有太多问题,很抱歉,但我没有找到任何明确的文档

\u开始
是一个标签

ldgp
表示加载全局指针

call\u pal
表示调用特权体系结构库。它是到异常处理程序的无条件跳转


中的更多信息这是Alpha架构的代码吗?如果您想探索linux引导加载程序,那么如果您探索更常见的architecture@msam我认为它确实是一个阿尔法架构。我应该探索什么样的体系结构?想到x86和arm。。。