need Erklärung zum BSD Console Aufbau.

omni

in berlin giebts auch BSD
Also ich zermürb mir den kopf wie das ganze konzept funktioniert mit syscons bis hin zu x/xterm. Ich versuch mal zu schildern was ich mir so erdacht habe und vieleicht kann mich da wer berichtigen.

Also der syscons Treiber ist sozusagen für Text E/A auf der Console von (in meinem Fall Free)BSD also hat eine shell rein programmtechnich damit nix zu tuhn und benuzt nur printf/scanf oder dergleichen da die kompletten fonts vom system gestellt werden. In X oder einem term der in x offen ist da übernimmt der xserver die rollen des syscons. somit werden dan einfach printf/scanf auf X-interne routinen umgeleitet. oder aber X leitet STDIN/STDOUT zu sich um (Da ja x eigene schriften benuzt). Und genau an dieser stelle happerts bei mir,weil in x imo die systemeigenen printf/scanf funktionieren aber der STDIO/OUT auf dem xterm landet und nicht irgendwo dahinter auf der console. imho ist es nicht möglich mit dem STDIN/STDOUT irgendwas zu machen ohne einene eigene Alternative zu syscons zu schreiben oder?


mfg und thx in advance.

omni.
 
Moin,

es gibt nicht nur einen stdin/stdout, sondern mehrere. Nämlich z.B. jede gestartete Shell gibt/nimmt auf einem eigenen stdin/stdout aus/ein. Da ist wohl der Denkfehler?! Siehe auch "man init" und "man getty".

Hängt dies mit einem Problem zusammen oder dient es der Erforschen der Funktionsweise. Bei Ersterem solltest du dein Problem vllt erläutern, es könnte leichter zu lösen sein :)
 
naja es ist nicht eher ein problem. aber es sieht folgendermaßen aus.

Hab mir eine grafik lib geschrieben die ohne x und direct also ohne client server quasi als ganz normale app leuft sehr schön und recht schnell aber würde halt gerne dort sozusagen jezt terminals einbauen so das man quasi ne GUI ohne X hat und dor dan ein paar terminals. ausgangsidee war halt keine eneue shell zu schreiben oder ähnlich sondern halt die gängigen die sowieso sehr gut sind also sh/tcsh/bash darüber aufgesezt laufen zu lassen etwa sycons->gui->sh .dan hat man quasie ausganssituation wie normal das man nen promt hat der auch funzt aber dazu noch ein bischen grafischen zucker^^. also quasi mein prog als host für die shell :o.


bin grad bisl verwirt weil grad vom arzt gekommen und noch beteubt bin. Aber im großem und ganzen sollte das jezt so hinhauen was ich da schreibe.
 
naja es ist nicht eher ein problem. aber es sieht folgendermaßen aus.

Hab mir eine grafik lib geschrieben die ohne x und direct also ohne client server quasi als ganz normale app leuft sehr schön und recht schnell aber würde halt gerne dort sozusagen jezt terminals einbauen so das man quasi ne GUI ohne X hat und dor dan ein paar terminals. ausgangsidee war halt keine eneue shell zu schreiben oder ähnlich sondern halt die gängigen die sowieso sehr gut sind also sh/tcsh/bash darüber aufgesezt laufen zu lassen etwa sycons->gui->sh .dan hat man quasie ausganssituation wie normal das man nen promt hat der auch funzt aber dazu noch ein bischen grafischen zucker^^. also quasi mein prog als host für die shell :o.


bin grad bisl verwirt weil grad vom arzt gekommen und noch beteubt bin. Aber im großem und ganzen sollte das jezt so hinhauen was ich da schreibe.

Hallo mein Lieber :) ,

also ich glaube ich kann das entwirren, also Du möchtest generell auf den XServer verzichten und dennoch Anwendungen starten.

Dazu hast Du Dir eine Lib erstellt gehe mal kackfrech davon aus das es sich um eine (S)VGA-Library handelt das würde gehen, gab ja auch schon Projekte in dieser Richtung.

So hierzu gehen die Meinungen doch sehr auseinander, aber nun gut wie dem auch sei jeder ist seines Glückes Schmied.

Vermute mal stark das Dein Rechner nicht der stärkste ist, das wäre ein Argument für Deine Vorgehensweise, oder Du willst das nur mal ausprobieren.

So meines Wissens gab oder gibt es dazu ein Projekt auf sourceforge die genau das vorhaben/hatten den XServer zu ersetzen.

peace rudy

-- UPDATE --

Also falls ich da richtig liege und Du nen Ersatz für den X-Server suchst wäre directftb nen Blick wert
> zur Projektseite:
http://www.directfb.org/index.php

So allerdings brauchst Du da nicht in die Ferne zu schweifen oder Dir nen Linux installieren, denn directfb gibt es auch in den
> Ports
http://www.freebsd.org/ports/devel.html > Version directfb-0.9.16_7 so jetzt muss ich mal nochmal spekulieren Du verwendest doch FreeBSD ???

so jetzt ist aber gut

gruß................
 
Zuletzt bearbeitet:
Na toll, wenn man etwas sucht findet mans nicht, und wenn mans selber schreibt plups ist es schon da :S. aber thx trotzdem ich werd mir DFB mal anschauen scheint recht interresant zu sein komisch nur das die Api mich sehr an DirectX errinert:rolleyes:.

btw. ja das war so eine SVGA geschichte aber mein rechner ist beiweitem keine alte krücke, isn NB mit centrino 1,6 drin nur die intel grafik macht kein unterschied ob ich alles in software rendere oder über hardware support weil sie so arsch langsam ist. Das macht es ja so reizvoll da das keine alte kiste ist kann man schön schnelle framerates hinkriegen sogar in 1024x768*32.

Und was ich oben wolte war halt, ich habe sone kleine text engine geschrieben damit ich text ausgeben kann. da normales printf usw. nicht funzt in den modi weil man ja den fb übernimmt. und da wolt ich halt sozusagen den stdout auslesen und mittels meiner "bustaben" anzeigen lassen so in etwa.

[Update]
Natürlich FreeBSD ;)
 
Geht ganz einfach:

Code:
 getty:
               - öffnet /dev/tty...
               - Biegt STDIN/STDOUT/STDERR auf den filedeskriptor von /dev/tty...
               - Fragt nach dem Benutzer
               - öffnet mit exec das programm "login" (siehe unten)
login:
               - Fragt nach dem Passwort / setzt umgebungsvariablen
               - öffnet mit exec die "shell"
shell:
               - ....
 
man könnte auch einfach sysutils/screen benutzen.
Das ist ein WM für die Konsole. Da kannst du mehrere Shells aufmachen, und vor allem kannst du die detachen, d.h. du kannst 5 shells starten und in jedem einen dienst im vordergrund laufen lassen, dann die screen-session in den Hintergrund schieben und dich z.B. ausloggen.
Sehr praktisch.
 
Danke schön für die tips, nur mir ist es halt auch wichtig für mein system tools zu schreiben die auf mich angepasst sind :).

@soul_rebel screen kenn ich, an sich hab ich kein problem mit 4 verschiedenen tty's zu arbeiten es ist nur , ich hab lange nit gecoded und wollt mich mal wieder ransetzen.

@xGhost, hum so einfach scheints nicht zu sein, so weit ich das sehe ist das nur über programm aufrufe zu machen nicht aber über funktionsaufrufe aus C zumindest nicht ohne großen aufwand. Aber ich suche weiter.

mfg omni
 
Zurück
Oben