Programmieren von X11

  • Seit einiger Zeit habe ich mal mit der direkten Programmierung auf der Ebene von X11 begonnen. Dabei ist es recht spannend, was da noch für alte Sachen laufen, welche ich zur Anfangszeit von Linux kennen lernte. Was die fertigen Programme anbelangt ist schon spannend. Der uralte Taschenrechner "xcalc" gibt es immer noch. Oder "xclipboard", welches die Zwischenablage aufzeichnet. Oder das Malprogramm "bitmap". In diese laufen immer noch auf der neusten Ubuntu/Mint -Version.

    Dann gibt es noch die einfachen Konsole-Befehle wie xlsfont, xwininfo, xprog usw.

    Natürlich habe ich mich auch selbst mit der Programmierung von X11 auseinandergesetzt. Dazumal im 386/486er Zeitalter war dies eine recht mühsame Sache, da ich dies schnell wieder aufgegeben habe. Aber mit heutigen Programmiermittel und dem Internet, wird dies auf einmal wieder recht spannend.

    Auch XToolkits und Athena sind recht spannend.


    Nun die Frage an euch.

    Ist X11 für euch schon zu modern, auch wen ich schon vor 30 Jahren das erste mal Kontakt damit habe ?

    Wen man bedenkt unter Windows läuft praktisch nichte mehr altes, vor allem wird es nicht mehr beigepackt.

  • Ich finde spannend, was Du da machst. X11 ist klassisch,darauf habe ich an der Uni FTP Server leergesaugt und Emails mit binärem Anhang manuell mime-codiert und versandt. Programmiert habe ich lieber am NeXT. X11 könnte ich mir heute gerne mal wieder auf SGI o.ä. in meiner Sammlung installieren und alte Momente aufleben lassen.

  • Zitat

    X11 ist klassisch,darauf habe ich an der Uni FTP Server leergesaugt und Emails mit binärem Anhang manuell mime-codiert und versandt.

    Sourcen von X11 Programmen ?

    mime musste ich erst googeln, so wie es scheint, ist dies heutzutage eine Selbstverständlichkeit.

    Wir hatten in der Berufsschule früher auch Programme mitgenommen, aber mit Disketten, dies waren DOS und Win31 Apps.

    Und dies sogar mit Erlaubniss des Lehrers. Der Lehrer sagte immer Software sei keine Ware, und die Urheberrechte waren auch anders als heute.

    Das beste Programm, welches dabei war, war BP70-DE.


    Zitat


    Programmiert habe ich lieber am NeXT. X

    Sagt mir nicht, wird wohl ein Homecomputer Oldie alla C64 sein. Ich habe zuhause erst auf einem 8088er begonnen.

    Zitat


    Ich habe Anfang der 90er viel in X11 programmiert, genauer in C.

    Wie schon gesagt, ich leider nicht, als verwöhnter Turbo-Pascal Programmierer. Und TP gab es leider nur für DOS/Win und der Nachfolger Delphi leider auch. Und Linux stand voll in den Kinderschuhen und mann wusste nicht, ob es Zukunft hat. Und sich an VI und Emacs zu gewöhnen ?

    Heute wo leider X11 am veralten ist, sieht die Situation viel besser aus. Mit FPC und Lazarus hat man eine hervorragendes Gespann um X11 zu coden. Man kann damit fast lückenlos die libs von C ansprechen. Und wie schon gesagt, ist das Internet eine grosse Hilfe.

    Wobei da gibt es auch einen grossen Wermutstropfen, viele Links führen ins tote. Die Ursache, das sind viele Uni-Arbeiten dabei, welche zT. noch auf den Servern veraisen. Hätte man dies dazumal auf sourceforge, github und co. getan, würde es anders aussehen.


    So wie es aussieht, bin ich hier im Forum nicht der einzige, der sich mir X11 abgibt ?

    Mein Problem ist, wen ich in aktuellen Foren Zeugs frage, wird vielfach gesagt, nimm GTK, QT und co. Dabei läuft im Hintergrund noch vieles auf der X11 Ebene ab, man denkt mal an die Atome.

  • Ich hatte damals das Buch Einführung in das X- WINDOW System, das war für das Verstehen des Systems und den Einstieg in die Entwicklung recht gut. Habe das nur bis zu einem Programm vom Typ xclock getrieben und danach nichts weiter damit programmiert. Heute verwende ich X11 nur noch, um gelegentlich Fenster vom entfernt stehenden Linux-Rechner mittels XQuartz auf dem Mac darzustellen.

  • Ich habe die V1.0 Variante von Emulith, meinen ETH Lilith Emulator, auf X11 basis implementiert. Später habe ich dan auf FLTK gewechselt, um auch Apple und Windows zu unterstützen.

  • X11 hat so seine Tücken. Ich erinnere mich an einer unserer Kunden, die hatte im LAN eine Applikation mit blinkendem Cursor in Eingabefeldern.

    Hat ganz gut funktioniert bis die auf die Idee kamen, eine Filiale über ein X.25 Netzwerk anzubinden.Die Folge war eine Monatsrechnung über mehrere Tausend Mark. Da der X-Server von sich aus keinen blinkenden Cursor darstellen konnte wurde das von der Applikation aus gemacht. Cursor einschalten, Cursor ausschalten, Cursor einschalten.....

    und das über eine Verbindung die nach Anzahl übertragener Datenpakete abgerechnet wurde.

    Ganz schnell hat da dann nichts mehr geblinkt :)

  • Nur der Korrektheit halber ein bißchen Terminologie: X11 ist ein Protokoll - damit "programmiert" man nicht. Die niedrigste (sinnvolle) Einstiegsebene in die Programmierung von Grafik auf X-Terminals ist die XLib, das die Primitives, die über das Netzwerk zwischen X-Server und Client ausgetauscht werden, fast direkt zugänglich macht, aber die Netzwerk-Kommunikation versteckt. Darauf setzen auch die meisten portablen Oberflächen-Toolkits wie Qt und das zu X11 gehörende Xt auf.


    Auch wenn X11 heute immer noch sehr verbreitet ist, "versteckt" es sich fast immer unter einer dicken Schicht von GUI-Abstraktions-Libraries. Wer aber klassisch mit z.B. Motif programmiert, passt mit Sicherheit hierher. Ich habe in den Neunzigern massenhaft XLib und Motif programmiert, das war sozusagen der Industriestandard auf Unix-Workstations. Heute ersetzt Wayland ganz langsam X und keiner merkt's, weil die Abstraktionsschichten obendrüber so dick sind.

  • Zitat


    Programmiert habe ich lieber am NeXT. X

    Sagt mir nicht, wird wohl ein Homecomputer Oldie alla C64 sein. Ich habe zuhause erst auf einem 8088er begonnen.

    *Autsch*


    NeXT war die Firma, die Steve Jobs nach seinem Weggang von Apple Ende der 1980er Jahre gegründet hat. Der NeXTcube und die NeXTstation sind Unix-Maschinen auf 68040 Basis. Das Betriebssystem NeXTStep setzt auf einem Mach Microkernel auf und bringt eine objektorientierte Objective C Entwicklungsumgebung mit. Mit einem GUI Builder und anderen Tools war es anderen Entwicklungsumgebungen um Jahre voraus.


    Der Mach Ansatz und auch die Art der Entwicklungsumgebung findet sich in MacOS X wieder, sogar die Namen der Tools sind erhalten geblieben.


    Auf Youtube gibt es eine Präsentation von Steve Jobs, bei der er die Umgebung vorführt. Such bei Gelegenheit mal danach, es lohnt sich.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Zitat

    Ich hatte damals das Buch Einführung in das X- WINDOW System, das war für das Verstehen des Systems und den Einstieg in die Entwicklung recht gut. Habe das nur bis zu einem Programm vom Typ xclock getrieben und danach nichts weiter damit programmiert.

    Meinst du diese Buch würde sich noch lohnen ?

    Hat es dort gute C-Beispiele ?


    Zitat


    X11 hat so seine Tücken. Ich erinnere mich an einer unserer Kunden, die hatte im LAN eine Applikation mit blinkendem Cursor in Eingabefeldern.

    Das kann ich mit vorstellen, wen man den Cursor Softwaremässig mit einem Timer programmieren muss, dann bracht dies ein Datenstrom.

    Ich denke bei Windows ist dies auch nicht viel anders. Wobei bei VGA kann man per Hardware Farben blinken lassen, aber dann hat man nur noch 8 anstelle der 16 Farben.

    Zitat

    NeXT war die Firma, die Steve Jobs nach seinem Weggang von Apple Ende der 1980er Jahre gegründet hat. Der NeXTcube und die NeXTstation sind Unix-Maschinen auf 68040 Basis. Das Betriebssystem NeXTStep setzt auf einem Mach Microkernel auf und bringt eine objektorientierte Objective C Entwicklungsumgebung mit. Mit einem GUI Builder und anderen Tools war es anderen Entwicklungsumgebungen um Jahre voraus.


    Der Mach Ansatz und auch die Art der Entwicklungsumgebung findet sich in MacOS X wieder, sogar die Namen der Tools sind erhalten geblieben.


    Auf Youtube gibt es eine Präsentation von Steve Jobs, bei der er die Umgebung vorführt. Such bei Gelegenheit mal danach, es lohnt sich.

    Sieht echt spannend aus, etwas mehr als nur ein C64er.

    DFies könnte noch von QEMU untertützt sein ?

    Zitat


    Nur der Korrektheit halber ein bißchen Terminologie: X11 ist ein Protokoll - damit "programmiert" man nicht. Die niedrigste (sinnvolle) Einstiegsebene in die Programmierung von Grafik auf X-Terminals ist die XLib, das die Primitives, die über das Netzwerk zwischen X-Server und Client ausgetauscht werden, fast direkt zugänglich macht, aber die Netzwerk-Kommunikation versteckt. Darauf setzen auch die meisten portablen Oberflächen-Toolkits wie Qt und das zu X11 gehörende Xt auf.

    Stimmt, es ist die xlib, nur bei X11 verstehen viele eher was man meint.

    Nur QT und GTK sind ganz anders aufgebaut als die Xt. Bei Xt ist jedes Widget ein eigens Fenster, was bei den anderen beiden nicht der Fall ist.


    Zitat


    Auch wenn X11 heute immer noch sehr verbreitet ist, "versteckt" es sich fast immer unter einer dicken Schicht von GUI-Abstraktions-Libraries. Wer aber klassisch mit z.B. Motif programmiert, passt mit Sicherheit hierher. Ich habe in den Neunzigern massenhaft XLib und Motif programmiert, das war sozusagen der Industriestandard auf Unix-Workstations. Heute ersetzt Wayland ganz langsam X und keiner merkt's, weil die Abstraktionsschichten obendrüber so dick sind.

    Ich denke mit wayland wird es noch ein wenig dauern. Bei meinem aktuellen Linux Mint, kann ich es nicht mal den Wayland-Display öffnen, da läuft alles noch mit dem X11 Unterboden.

    Ich habe die Motif lib für FPC übersetzt, jetzt kann man sie bequem mit Pascal programmieren.

  • Gibt’s hier eigentlich jemand, der mal was mit PEX bzw Phigs gemacht hat? Ist eine ISO standardisierte 3D-Grafiksystem.

    Das Genie beherrscht das Chaos

  • Sieht echt spannend aus, etwas mehr als nur ein C64er.

    DFies könnte noch von QEMU untertützt sein ?

    Das Betriebssystem gibt es auch für Intel-Prozessoren (und HP PA-RISC und SUN Sparc), die Version heißt OpenSTEP. OpenSTEP verwendet auch einen Mach-Kernel. Viele herunterladbare Software-Pakete sind mit NIHS gekennzeichnet und laufen auf allen Architekturen (NeXT, Intel, HP, SUN). Neulich konnte ich einen Laptop mit ATA-Innenleben erstehen und OpenSTEP direkt darauf installieren- macht Spaß!


    EIn paar Tipps zur Installation auf Intel und in VMWare habe ich auf meiner Homepage:

    OpenStep 4.2 (Intel) installieren | Georg@HOME

    OpenStep für Intel in VMWare | Georg@HOME

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Zitat

    Ich hatte damals das Buch Einführung in das X- WINDOW System, das war für das Verstehen des Systems und den Einstieg in die Entwicklung recht gut. Habe das nur bis zu einem Programm vom Typ xclock getrieben und danach nichts weiter damit programmiert.

    Meinst du diese Buch würde sich noch lohnen ?

    Hat es dort gute C-Beispiele ?

    Ich fand es gut und würde es mir wieder beschaffen, wenn ich überraschenderweise noch mal Bedarf oder ein Bedürfnis nach dem Thema hätte. Kannst ja mal reinschauen:

  • Gibt’s hier eigentlich jemand, der mal was mit PEX bzw Phigs gemacht hat? Ist eine ISO standardisierte 3D-Grafiksystem.

    Ja, aber nicht lange (höchstens ein oder zwei Jahre). Die API hatte GL und später OpenGL und allem, was SGI damals obendraufgesetzt hat, nicht lange widerstanden.

  • Das sieht ja aus, wie dazumal eine Installation von Slakware. (Linux)

    das Tool Rarwrite kommt mir noch bekannt vor.


    Wen ich mir so die Screeshoots davon angucke, sieht das ganze recht ähnlich alten Linux Distros aus.


    Läuft das ganze auch in der VirtualBox ?

  • Läuft das ganze auch in der VirtualBox ?

    Ja, das geht... ich muss mal nachsuchen, ich meine das sogar auf einem älteren Laptop so installiert zu haben.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Zitat

    Ich hatte damals das Buch Einführung in das X- WINDOW System, das war für das Verstehen des Systems und den Einstieg in die Entwicklung recht gut. Habe das nur bis zu einem Programm vom Typ xclock getrieben und danach nichts weiter damit programmiert.

    Meinst du diese Buch würde sich noch lohnen ?

    Hat es dort gute C-Beispiele ?

    Ich fand es gut und würde es mir wieder beschaffen, wenn ich überraschenderweise noch mal Bedarf oder ein Bedürfnis nach dem Thema hätte. Kannst ja mal reinschauen:

    Ich habe mir gerade eines bestellt.

    Und das Buch ist erst noch in deutsch, die ist auch eine Seltenheit.

  • Im Studium haben wir teilweise mit PHIGS programmiert. Das war ca. Mitte der 90er Jahre unter Windows mit dem damaligen Visual C/C++ Compiler. Aber das ist lange her. Welche Version von PHIGS das war oder wie überhaupt funktioniert hat, weiß ich heute nicht mehr.

  • Ich habe mal gelesen, daß PHIGS und PEX durchaus ein paar Dinge können, die OpenGL (Iris GL) nicht können/konnten. Insbesondere, daß man die Kamera um die Szene herum drehen (beliebig bewegen) konnte, wird demnächst wahrscheinlich schmerzlich vermißt werden. Sollte nämlich für 3D mit VR / XR ( extended Reality ) was extrem Praktisches sein.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Phigs war für Software-Rendering gemacht und eigentlich für Hardware-Rendering zu CPU-intensiv. Sachen wie Raytracing, Radiosity, Shading, Texture Mapping, Bewegungsunschärfe und Nebeleffekte (die man für CAD, da wo Phigs herkommt, eigentlich meistens auch nicht braucht[e], bzw. Dinge, die man zu der Zeit, als Phigs aufkam, einfach auch nicht in endlicher Zeit rechnen lassen konnte) kann es nicht, die sind aber heute aus der 3D-Grafik nicht mehr wegzudenken.


    Und natürlich kann man mit OpenGL auch ein Objekt von hinten anschauen/drumrumkreisen. Das ist eher eine Einschränkung der modernen Grafikkarten, dass man das Bild neu erstellen muss, wenn die Normalenvektoren umgedreht werden. Was moderne Grafikhardware kann, ist zimlich direkt auch in OpenGL abgebildet. Phigs musste sich nicht dran halten, weil es eben damals nicht viel Grafikhardware gab.