[RFC] First (incomplete) cut of Xen paravirt binding

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"Christian Limpach" <Christian.Limpach at xensource.com> writes:

>> > That's very reasonable, but at the same time:
>> > What we don't want to do is have a lot of variation in our domain
>> > builder for loading different operating systems for no particular
>> > reason.
>> 
>> Sure.  A reasonable concern.  Do you have an ELF format 
>> windows kernel?
>
> Of course not, but we're also not trying to run Windows fully
> paravirtualized.

Ok.  So the concern here is to keep variation limited not to
pick one true standard.

>> My point being this is a fundamental point where variation happens.
>> No boot-loader has been able to see OS vendors on a single format.
>> I don't expect Xen will be able to change this trend.
>
> We've managed to get NetBSD, FreeBSD, Solaris and recently even Plan9 to
> agree on using ELF with our __xen_guest section extension.

Well I'm glad that of the unix variants it is possible to get some
agreement.  I don't know what your arguments passing convention is
for __xen_guest so I don't know if you have solved the truly hard
problem.

However using sections is simply fundamentally broken and against
the ELF spec and wrong.

Below is the output of readelf -a on a bzImage.
Notice no ELF sections.  PhysAddr == VirtAddr.

Unless some major problems show up I will be merging this later this
week.

I suspect the big difference is that I am trying to ensure we can
build a generic kernel that also runs paravirtualized.  Not just
a kernel that can only run paravirtualized.  Handling the general
case always has more constraints.

Adding ELF notes should not be in the same range of complexity
of adding a generic section.

Eric


ELF Header:
  Magic:   7f 45 4c 46 01 01 01 ff eb 3d 00 00 00 00 00 00 
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            Standalone App
  ABI Version:                       235
  Type:                              DYN (Shared object file)
  Machine:                           Intel 80386
  Version:                           0x1
  Entry point address:               0x100000
  Start of program headers:          80 (bytes into file)
  Start of section headers:          0 (bytes into file)
  Flags:                             0x0
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         2
  Size of section headers:           40 (bytes)
  Number of section headers:         0
  Section header string table index: 0

There are no sections in this file.

There are no sections in this file.

Program Headers:
  Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
  LOAD           0x001600 0xc0100000 0x00100000 0x2013f8 0x45e000 RWE 0x400000
  NOTE           0x000090 0x00000000 0x00000000 0x0006c 0x00000     0

There is no dynamic section in this file.

There are no relocations in this file.

There are no unwind sections in this file.

No version information found in this file.


[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux