Hallo,
die Syscalls müsstest du an sich doppelt in der API bereitstellen, einmal in 32- und einmal in 64-Bit-Fassung. Wenn du die Schnittstelle allerdings hinreichend neutral hältst, dürfte das nicht mehr Aufwand sein als ein neuer Funktionskopf. Für die 32-Bit-Anwendungen würdest du dann einen 32-Bit-Task erzeugen (keine Ahnung, ob/wie das im Long Mode geht).
Einmal setzt du damit natürlich voraus, dass das OS in beiden Varianten existiert (was für ein Hobby-OS den Aufwand enorm in die Höhe treibt), andererseits sehe ich ein Problem mit den Libraries: Die müssen in beiden Fassungen vorliegen.
Grundsätzlich könnte es sinnvoll sein (sehr vorsichtig), auf einem 64-Bit-OS native 32-Bit-Anwendungen anzubieten. Die meisten Anwendungen haben keine Vorteile von 64 Bit, wohl aber Nachteile (geringere Cache-Effizienz durch größere Zeiger usw.) - je nach Anwendung kann das enorm sein. Legt man das Gesamtsystem allerdings von vornherein so aus, dürfte der Aufwand sich in Grenzen halten.
Wobei ich sowas eher nicht machen würde.
Gruß,
Svenska