Naja, das Problem mit dem Linux-Drucksystem ist im Prinzip folgendes: Wenn du einen Drucker installierst, z.b. im meinen Fall einen uralten HP 1100 SW-Laser am Parallelport, bekommst du als Auswahl für den Treiber das Modell:
- LaserJet HP1100 CUPS+Gutenprint 0.5.2
- LaserJet HP1100 Foomatic/gutenprint-ijs-simplified (en) 0.5.2.1
- LaserJet HP1100 Foomatic/gutenprint-ijs (en) 0.5.2.1
- LaserJet HP1100 Foomatic/gutenprint (en) 0.5.2
- LaserJet HP1100 hpijs
- LaserJet HP1100 hpcups
Rauszufinden, was man da jetzt nimmt, oder wo da überhaupt der Unterschied ist, ist mangels Doku nicht einfach, bzw. genauergesagt sind das da 4-5 verschiedene Systeme dahinter, siehe z.B.
http://en.wikipedia.org/wiki/Foomatic
Wenn man da rumspielt, stolpert man recht schnell über: PPD, Foomatic, gutenprint, CUPS, HPLIP und div. lpr Varianten. Ich sag jetzt gar nicht, dass das schlecht ist, es is nur hundsmühsam, rauszufinden wofür das alles ist, bzw. ob mans braucht oder nicht und wie das Zeugs zamspielt.
Was allerdings ein Problem damit ist (wie oft bei Architekturen, die einen großen Task auf lauter unabhängige kleine Programme aufteilen; was prinzipiell nicht schlecht ist, aber eben diese große Gefahr birgt), und was speziell durch CUPS nochmal exponentiell schlimmer gemacht wird ist:
Solang alles automatisch funktioniert, ist alles Maiglöckchen und Rosenduft. Sobald was hakt, hat man verloren, weil die Fehlermeldungen und Logs zum vergessen sind. Ich glaub, ich hatte bei CUPS noch nicht ein einziges mal eine Fehlermeldung, die tatsächlich auch nur ansatzweise einen Hinweis auf den tatsächlichen Fehler geliefert hat, z.B:
- Drucker sind über Samba nicht sichtbar -> Samba muss bei der Einstellung für Fehlermeldungen 'UTF8' ausgeben, auch wenn der Server ASCII verwendet, sonst klappt die Kommunikation mit CUPS nicht
- Fehlermeldung 'Drucker nicht gefunden' beim Einrichten/Drucken: Fehler ist, nach update ist das temp-verzeichnis nicht mehr schreibbar, sub-prozess zum neu generieren der PPDs schlägt fehl, CUPS erzeugt irgendeine Standard-Fehlermeldung.
- Update von Version 1.4.2 auf 1.4.6 (so in der Gegend), Cups ist nicht mehr erreichbar, nur irgendeine 'trying to connect to invalid host' oder so was Meldung in den Logs: Config-File-Format hat sich geändert, statt 'Port' und 'Host' muss man 'Listen <host>:<port>' verwenden. Dummerweise falls noch 'Host' in der Config drinsteht, ignoriert das CUPS einfach ohne Kommentar.
- Drucken ist extrem lahm, Samba hängt sich so auf bei jedem Druckvorgang so auf, dass bei Windows 7 sogar 20sec lang der Mauszeiger hängt, in den Samba-Logs steht, wenn man das Loglevel hoch genug dreht nur was von cli_client_connect failed NT_STATUS_UNSUCCESSFUL: Fehler ist, das Windows-Remote-Printing System verwendet beim Drucken einen Rückkanal, den der Server zum Client aufmacht, um Statusmeldungen zurückzuschicken. Wenn der Server den Client nicht erreichen kann (wegen z.b. Netzwerk-Konfigurationsfehler oder weil er hinter ner NAT steht), hängt alles.
Und das sind nur so die Best-Ofs die mir gerade einfallen. Die Liste mit den Treibern oben ist nicht ganz exakt, weil ich nämlich grad nicht mehr ins Admin-Interface reinkomm, nachdem ich den Server neu gestartet hab. Gestern gings noch, hab wo ganz anders was geändert (routing-tables, jetzt geht zwar Drucken wieder ohne aufhängen, dafür komm ich nicht mehr als Admin rein).
Das sind so die Kleinigkeiten, an denen man halt Rückschlüsse über die Code-Qualität und -Stabilität zieht
Hm, und natürlich muss man eigentlich sagen: Bastler-OS und mühsam ist ja jetzt per se kein Zusammenhang
Beispiel: iptables-Firewall und Quality-of-Service in Linux
- iptables hat ne recht brauchbare doku, eine einfach Firewall ist relativ flott konfiguriert. Ein Script, dass ich vor 6-7 Jahren geschrieben hab, funktioniert immer noch genau gleich. Die Optionen und die Ausgabe von iptables ist leicht zu verstehn, und es ist sehr leicht nachzuvollziehen obs funktioniert (zb. mit iptables -A FORWARd -j LOG)
- Für QoS gibts z.B. tcng, und ich weiß bis heute nicht a) was die div. verschiedenen queues genau machen, bzw welche man am besten verwendet b) wie man Queues in Subqueues aufteilt, c) was der mir mit diesen Warnings immer sagen will, oder welcher Zeile das in der Config überhaupt entspricht, oder obs überhaupt funktioniert oder warums nicht funktioniert. Die Ausgabe ist komplett kryptisch.
Es ist leider extrem unterschiedlich. Es gibt einige Programme, die extrem einfach sind, die man einmal einrichtet und nie wieder anschaut, die brauchbare Fehlermeldungen und Logs liefern, und wo die Doku sofort zu verstehen ist, und dann gibts halt den Rest

(wer schon mal ein Programm das mit ~50 undokumentierten perl-script-ähnlichen conf.d dateien konfiguriert wird mit einem ersetzt hat, dass mit einer einzigen 30-Zeilen INI-File-ähnlichen Config auskommt, wird wissen was ich mein

)
I find your lack of platform support disturbing.