Re: 32Bit Jail in einer 64Bit Umgebung

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Fri, 20 Apr 2007 08:56:01 +0200 (CEST)

Michael Gusek wrote:
> Oliver Fromme wrote:
> > Alle Tools, die z.B. per KVM auf den Kernel zugreifen
> > wollen, werden nicht funktionieren; dazu gehören z.B.
> > ps, top, dmesg, uptime, vmstat u.ä. Aber auch andere
> > Programme, die direkt auf Kernelstrukturen zugreifen.
>
> Hmm ok, verstehe ich, bezieht sich das auch auf die Funktion getpid() ?
> Einige Programme schreiben ja ihre pid nach /var/run.

Nein, das funktioniert problemlos. getpid(2) ist ein
»offizieller« Syscall, der das Ergebnis als Return-Wert
liefert. Sowas funktioniert grundsätzlich immer.

Das Problem mit KVM und direktem Zugriff auf struct proc
ist halt, das direkt aus Kernelstrukturen gelesen wird,
ohne dass diese durch eine plattformunabhängige API um-
gesetzt werden. Im Falle von killall wird zwar die Stan-
dard-API »sysctl« verwendet, um an die process-table zu
kommen, allerdings ist diese in Binärform im »native«
Format des (64bit-) Kernels hinterlegt. Nützt in diesem
Fall also auch nichts.

Das ist zugegebenermassen nicht ganz sauber, aber es ist
sehr effizient, und in der Regel passen ja Kernel und
Userland (insbes. auch die Libraries) unter BSD-Systemen
zueinander. Ich sehe auch keinen Grund, warum man inner-
halb eines Kompatibilitäts-Chroots oder -Jails Dinge wie
killall bräuchte (ich persönlich verwende killall sowieso
nie, aber das ist eine andere Geschichte).

> > > Also Postgres geht, aber leider
> > > nicht das 32Bit java 1.4. nicht:
> > > /usr/local/bin/java -v: Could not create the Java virtual machine.
> >
> > Keine Ahnung, was Java da Dreckiges macht. Da braucht
> > man schon etwas mehr Infos, um das zu untersuchen. Wenn
> > es kein verboseres Log gibt, muss man das z.B. mal tracen,
> > um dahinterzukommen.
> >
> Das war leider ein Fehler meinerseits. Richtig wäre java -version. Diese
> Aufgabe scheint für java so schwer zu sein, dass der Prozess dauerhaft
> auf 100% geht.

Das kann sonstwelche Ursachen haben; das muss keineswegs
mit der 32bit-Umgebung zusammenhängen. Man müsste das
natürlich näher untersuchen; für eine Ferndiagnose sind
die vorhandenen Informationen zu dürftig. strace ist
im Falle von Java nicht unbedingt hilfreich, aber wie
gesagt, in solchen Fällen sind Ferndiagnosen schwierig.
Das muss man schon vor Ort debuggen.

(Java ist aus Admin-Sicht eh 'ne Krankheit und sollte ver-
mieden werden wie die Pest. Aber ich nehme an, dass Du
keine andere Wahl hast, weil Du irgendeine Software benö-
tigst, die auf Java aufsetzt.)

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606,  Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758,  Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr:  http://www.secnetix.de/bsd
PI:
int f[9814],b,c=9814,g,i;long a=1e4,d,e,h;
main(){for(;b=c,c-=14;i=printf("%04d",e+d/a),e=d%a)
while(g=--b*2)d=h*b+a*(i?f[b]:a/5),h=d/--g,f[b]=d%g;}
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 20 Apr 2007 - 08:57:33 CEST

search this site