Was bedeutet 'A should be equal B, modulo C.' ?



  • Hallo zusammen,

    beim Lesen der ELF-Spezifikation (Linux Format für ausführbare Dateien) verstehe ich den letzten Satz des folgenden Abschnittes nicht:

    p_align

    As ``Program Loading'' describes in this chapter of the processor supplement, loadable process segments must have congruent values for p_vaddr and p_offset, modulo the page size. This member gives the value to which the segments are aligned in memory and in the file. Values 0 and 1 mean no alignment is required. Otherwise, p_align should be a positive, integral power of 2, and p_vaddr should equal p_offset, modulo p_align

    Quelle: http://www.sco.com/developers/gabi/latest/ch5.pheader.html

    Beschrieben wird ein Feld, die Bedeutung seiner Werte und welche Werte zulässig sind. Mir geht es um den letzten Teil des letzten Satzes:

    p_vaddr should equal p_offset, modulo p_align

    Ich frage mich nun welche der folgenden Bedeutungen der Satz hat:

    (1) p_vaddr = (p_offset % p_align)

    Das war mein erster Gedanke. Allerdings macht das im Kontext der Bedeutung der Werte keinen Sinn.

    (2) (p_vaddr % p_align) = p_offset

    Gleiches gilt für diese Variante.

    (3) (p_vaddr % p_align) = (p_offset % p_align)

    Diese Variante würde Sinn machen. Aber ich weiß nicht ob man den englischen Satz so verstehen kann. Außerdem wäre die Information redundant zum im ersten Satz gesagten.

    (4) p_vaddr ≡ p_offset (mod p_align)

    Das entspricht genau dem im ersten Satz Gesagten und macht Sinn, steht aber eben nicht im letzten Satz.

    Ich frage mich nun ob es sich um einen Fehler in der Spezifikation handelt oder ob ich etwas (womöglich wichtiges) nicht verstanden habe.

    Vielen Dank schon mal für eure Antworten 🙂

    Mfg Tobi.



  • Ich verstehe das als (4). Das liegt zum einen an dem mit Komma angehängten "modulo p_align", welches sich dann imo auf das "equals" bezieht. Zum anderen verstehe ich die letzten drei Sätze einfach als eine detailliertere Erklärung des ersten Satzes, da dieser ja für Werte 0 und 1 nur bedingt ne sinnvolle Aussage darstellt.

    Allerdings hab ich keine Ahnung von ELF. 🙂



  • Ich hätte jetzt 4) herausgelesen, aber 3) entspricht doch 4), weshalb würde 3 keinen Sinn ergeben aber 4 schon? Oder bin ich jetzt total kirre?



  • Oh, ich glaube, ich habe Deinen Kommentare den falschen Zeilen zugeordnet, sorry.


Anmelden zum Antworten