Angesichts des neuen 4.17-Kernels mal eine Newbie-Frage: Was heißt es eigentlich, wenn man sagt "Die Kernel-Entwickler haben den Hardware-Support abermals deutlich verbessert, indem sie Dutzende neuer Treiber aufgenommen und viele existierende verbessert haben." ? Was ist der Kernel eigentlich? Ist das eine einzige Datei? Mittlerweile müßte die ja riesengroß sein? Warum ist es so wichtig, daß der Kernel alle möglichen Treiber beinhaltet? Unter Windows kaufe ich z.B. einen Drucker und installiere den notwendigen Treiber halt von CD oder Internet nach, wieso muß der unbedingt im Kernel enthalten sein?
Markus schrieb: > Was ist der Kernel eigentlich? Ist das eine einzige Datei? Mittlerweile > müßte die ja riesengroß sein? Das ist nicht eine Datei sondern viele Zigtausend. Markus schrieb: > Warum ist es so wichtig, daß der Kernel alle möglichen Treiber > beinhaltet? Unter Windows kaufe ich z.B. einen Drucker und installiere > den notwendigen Treiber halt von CD oder Internet nach, wieso muß der > unbedingt im Kernel enthalten sein? Du beantwortest deine Frage selbst. Diese Installation ist umständlich; nur unter Windows muss man nach derart veralteten Methoden vorgehen. Unter Linux schließt man das Gerät an und es funktioniert sofort. Außerdem ändert sich der Linux-Kernel sehr schnell, was "externe" Treiber schnell inkompatibel zu neuen Kernel-Versionen macht; alles was im Kernel enthalten ist wird mit aktualisiert. Das ermöglicht eine schnelle Innovation und Verbesserung des Kernels, während z.B. unter Windows alles abwärtskompatibel zu uralten Treibern sein muss.
>Was ist der Kernel eigentlich? Ist das eine einzige Datei? Mittlerweile >müßte die ja riesengroß sein? "Der Kernel" ist eigentlich eine Datei. Aber dieser Kernel enthält erstmal nur Basistreiber für irgendwelche HW des Mainboards, damit das Ding überhaupt erstmal startfähig ist. Für andere Gerätschaften wie Drucker, Grafik, RAID, ... werden extra Treiber erst während der Laufzeit geladen, und docken damit an den Kernel an, um dessen HW-Verständnis für die aktuelle Situation zu erweitern. Und diese Treiber sind meistens schon beim Linux mit dabei. Zwar nicht direkt im Kernel, aber eben als dazuladbare Module (eben so, wie bei Windows). Und da das Kernelmodule sind, heisen die dazugehörigen Entwickler eben Kernel-Entwickler ;-) >Warum ist es so wichtig, daß der Kernel alle möglichen Treiber >beinhaltet? Unter Windows kaufe ich z.B. einen Drucker und installiere >den notwendigen Treiber halt von CD oder Internet nach, wieso muß der >unbedingt im Kernel enthalten sein? Was heist wichtig: wenn Linux das nicht mitbringt für irgendwelche HW, dann mußt Du Dir den Treiber dann genau wie unter Windows woanders her beziehen. Vielleicht mit dem Gerät mitgeliefert. Aber Linux liefert schon von Haus aus reichlich Treiber mit. Oftmals aber auch nur 0815-Treiber, die oftmals nicht sehr speziell auf eine bestimmte HW abgestimmt ist, bzw. nicht deren speziellen Features unterstützt. Kann also sein, daß manche GraKa ihre Auflösung bzw. Farbtiefe nicht ausspielen kann, weil der Treiber nicht weis, wie man das anspricht, oder manche Drucker können nur als Postscript-Drucker angesprochen werden, ... Kommt halt auf die HW an ...
Dr. Sommer (Gast) schrieb: >Außerdem ändert sich der Linux-Kernel sehr schnell, was "externe" >Treiber schnell inkompatibel zu neuen Kernel-Versionen macht; alles was >im Kernel enthalten ist wird mit aktualisiert. Das ermöglicht eine Ich hoffe, das ist nicht wirklich so, sonst bräuchte man sich nicht zu wundern, wenn HW-Hersteller einen Bogen um Linux machen, sollten sie doch mal gewillt sein, Treiber, die spezieller Features der HW ausnutzen wollen, mit anzubieten. Die wollen ja nicht alle Furz lang ihre Treiber anpassen ... >schnelle Innovation und Verbesserung des Kernels, während z.B. unter >Windows alles abwärtskompatibel zu uralten Treibern sein muss. Was ist denn daran so innovativ, daß die Schnittstellen oder Treibermodelle ständig neu gewürfelt werden (sollen), so daß alte Treiber nicht mehr wollen? Und wie paßt das damit zusammen, daß Linux doch angeblich auch auf jeder uralten HW läuft?
:
Bearbeitet durch User
Markus schrieb: > Was heißt es eigentlich, wenn man sagt "Die Kernel-Entwickler haben den > Hardware-Support abermals deutlich verbessert, indem sie Dutzende neuer > Treiber aufgenommen und viele existierende verbessert haben." ? Jedes OS hat ein Kernel, ich nehme an du meinst den Linux Kernel, da dies meistens gemeint ist wenn läute von "dem Kernel" reden. Hier ist das Repo von Linus: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/ Dort ist der Quellcode der sozusagen offiziellen momentanen Entwicklungsversion. Linus übernimmt aber nur selten direkt Patches (=codeänderungen) von fremden, stattdessen gibt es viele Repos für die diversen Subsysteme: https://git.kernel.org/ (Einige sind auch an anderen orten gehostet, torwald mirrort seinen auch auf github, und Redhat hat den für das DRM Subsystem irgendwo unter freedesktop.org, wenn ich mich recht erinnere) Die Maintainer der Repos für die Subsysteme nehmen Patches von anderen, und diese senden die Patches von ihren Repos dann wieder zu Linus oder einem anderer Subsystem Maintainern. Irgendwann landet es dann in Mainline, wenn alles gut ist. Die Ersteller von Patches müssen ihren Code auch warten und durch ihre Patches ausgelöste Probleme beheben. Wenn man sich nicht um seine Treiber usw. kümmern will, werden sie womöglich wieder entfernt. > Was ist der Kernel eigentlich? Ein Programm. Das Herz des OS. Dieser kümmert sich um die Hardwareinitialisierung, das laden der Treiber, das Laden und Ausführen von Programmen, und das Verwallten wann welcher Prozess läuft (scheduling), das Verwalten von Ressourcen wie z.B. Speicher, und das zur Verfügung stellen von Interfacen, um mit Ressourcen wie Dateien, mit anderen Prozessen, und mit der Hardware über high Level Abstraktionen interagieren zu können, ohne sich um die Details kümmern zu müssen. > Ist das eine einzige Datei? Es gibt Kernel mit Monolitischem Design, und es gibt Microkernel, die fast jede Aufgabe einem anderen Programm überlassen, und nur das nötigste tun. Der Linux kernel ist als Monolithisch aufgebaut. Er kann als einzelne Datei gebaut werden, wenn man alle Module als Builtins verwendet. Meistens baut man aber die meisten Treiber und andere dinge, die nicht immer gebraucht werden, als separate Module, die man nachladen und entladen kann. Es handelt sich dann aber immernoch nicht um ein Microkernel, weil die Module keine eigenstendigen Prozesse bilden. Es gibt auch noch die Problematik von Binaryblobs, aber das ist wieder ein grösseres Thema. > Mittlerweile müßte die ja riesengroß sein? Wenn man wirklich alles einstellt und in eine Datei packt, wird es wirklich relativ gross. Die Repos von Linux sind aber immer noch kleiner als die von Windows. (Was keine positive Sache an Windows ist, im gegenteil.) > Warum ist es so wichtig, daß der Kernel alle möglichen Treiber > beinhaltet? Treiber im Kernel werden in der regel an die Änderungen in neueren Versionen angepasst, und haben Maintainer die Fehler in diesen beheben. Die Interna des Kernels haben keine stabile API, wodurch off-tree Module schnell mit dem momentanen Entwicklungsstand inkompatibel werden. Es gibt jedoch einige Kernelinterfaces und Libraries, die ehemalige Aufgaben des Kernels mit einer stabilen API in den Userspace verlagern. Beispiele dessen wären z.B. libusb zur interaktion mit USB Geräten, und fuse zur Bereitstellung von Dateisystemen. Beide werden von Userspaceprozessen verwendet. > Unter Windows kaufe ich z.B. einen Drucker und installiere > den notwendigen Treiber halt von CD oder Internet nach, wieso muß der > unbedingt im Kernel enthalten sein? Zur Vermeidung von Fragmentierung, um sicherzustellen, dass diese auch in neuen Versionen noch gehen, damit diese alle an einem Ort sind & der Sourcecode gut und immer verfügbar ist, etc. Jens G. schrieb: > Ich hoffe, das ist nicht wirklich so, sonst bräuchte man sich nicht zu > wundern, wenn HW-Hersteller einen Bogen um Linux machen, sollten sie > doch mal gewillt sein, Treiber, die spezieller Features der HW ausnutzen > wollen, mit anzubieten. Die wollen ja nicht alle Furz lang ihre Treiber > anpassen ... Das muss man nur, wenn er eben off-tree ist. Wenn er im Repo ist muss immer der sich um die Regressionen kümmern, der sie verursacht hat. Und wenn man eine Regression verursacht, gibt es eine wütende Nachricht von Linus.
Jens G. schrieb: > Ich hoffe, das ist nicht wirklich so, sonst bräuchte man sich nicht zu > wundern, wenn HW-Hersteller einen Bogen um Linux machen, sollten sie > doch mal gewillt sein, Treiber, die spezieller Features der HW ausnutzen > wollen, mit anzubieten. Die wollen ja nicht alle Furz lang ihre Treiber > anpassen ... Ausgehend von der Roadmap, wird Ubuntu 16.04 LTS mit dem kommenden August-Update auf Kernel v4.15 geupdated. v4.17 ist noch in weiter Ferne. Kaufe ich also jetzt brandneue Hardware, müßte ich u.U. wie in Deinem ersten Posting beschrieben, den zugehörigen Treiber von einer anderen Quelle besorgen. Daher meine Frage, warum die Treiberintegration unter Linux als so wichtig erachtet wird. Bei Motherboards, Grafikkarten u.ä. verstehe ich das noch, aber unter Linux ist selbst der Treiber für eher marginale Dinge wie TV-Karten (Digital Devices) im Kernel enthalten. Und der Aufwand eine CD mitzuliefern, so daß sich der Benutzer den Treiber selbst installiert hält sich in Grenzen.
DPA hat meine restlichen Fragen in der Zwischenzeit beantwortet. Vielen Dank!
Markus schrieb: > Ausgehend von der Roadmap, wird Ubuntu 16.04 LTS mit dem kommenden > August-Update auf Kernel v4.15 geupdated. v4.17 ist noch in weiter > Ferne. Meistens ist es kein Problem, unter Ubuntu einen aktuellen Kernel zu installieren. Ubuntu ist da nur recht konservativ. Ich hab das schon öfter gemacht um aktuelle Treiber zu bekommen...
Markus schrieb: > Warum ist es so wichtig, daß der Kernel alle möglichen Treiber > beinhaltet? Unter Windows kaufe ich z.B. einen Drucker und installiere > den notwendigen Treiber halt von CD oder Internet nach, wieso muß der > unbedingt im Kernel enthalten sein? Weil an den Kernel-Interfaces recht oft rumgefingert wird. Es kann passieren daß die kompillierten Treiber für 4.17 nicht mehr mit 4.19 laufen. Deswegen werden sie mitgepflegt.
@Dr. Sommer, Dr. Sommer schrieb: > Du beantwortest deine Frage selbst. Diese Installation ist umständlich; > nur unter Windows muss man nach derart veralteten Methoden vorgehen. > Unter Linux schließt man das Gerät an und es funktioniert sofort. > Außerdem ändert sich der Linux-Kernel sehr schnell, was "externe" > Treiber schnell inkompatibel zu neuen Kernel-Versionen macht; alles was > im Kernel enthalten ist wird mit aktualisiert. Das ermöglicht eine > schnelle Innovation und Verbesserung des Kernels, während z.B. unter > Windows alles abwärtskompatibel zu uralten Treibern sein muss. Dr. Sommer schrieb: > Markus schrieb: >> Ausgehend von der Roadmap, wird Ubuntu 16.04 LTS mit dem kommenden >> August-Update auf Kernel v4.15 geupdated. v4.17 ist noch in weiter >> Ferne. > > Meistens ist es kein Problem, unter Ubuntu einen aktuellen Kernel zu > installieren. Ubuntu ist da nur recht konservativ. Ich hab das schon > öfter gemacht um aktuelle Treiber zu bekommen... Was nu? Funktioniert es oder muss der Ganze Kernel getauscht werden?
Noob schrieb: > Funktioniert es oder muss der Ganze Kernel getauscht werden? Beides. Das Tauschen des Kernels dauert ca. 3 Minuten. Unter Linux Mint sind das ca 8 Klicks: -> Update Symbol -> View -> Linux Kernels -> Warnmeldung abnicken -> Links Major-Version auswählen -> Rechts Minor Version auswählen -> "Install" anklicken -> root-Passwort eingeben -> Automatischen Download & Installation abwarten, fertig. Wenn man geizig ist kann man nach dem nächsten Reboot auf die gleiche Art und Weise noch den alten Kernel löschen. Wie das ganze bei normalem Ubuntu geht weiß ich nicht. Im Zweifelsfall geht es durch Eingabe von
1 | sudo apt-get install linux-image-4.15.0-22-generic linux-modules-4.15.0-22-generic linux-headers-4.15.0-22-generic |
Version entsprechend anpassen. Das sind dann noch weniger Tastendrücke aus Mausklicks bei der GUI-Version.
Dr. Sommer schrieb: > Wie das ganze bei normalem > Ubuntu geht weiß ich nicht. Im Zweifelsfall geht es durch Eingabe > von > sudo apt-get install linux-image-4.15.0-22-generic > linux-modules-4.15.0-22-generic linux-headers-4.15.0-22-generic > Version entsprechend anpassen. Das sind dann noch weniger Tastendrücke > aus Mausklicks bei der GUI-Version. Debian regelt das über die zusätzlichen Meta-Pakete linux-image-amd64 und linux-headers-amd64, die ihrerseits jeweils von der aktuellen Kernel-Version abhängen und diese somit automatisch installieren beim
1 | apt update; apt upgrade |
Martin H. schrieb: > Debian regelt das über die zusätzlichen Meta-Pakete linux-image-amd64 > und linux-headers-amd64, die ihrerseits jeweils von der aktuellen > Kernel-Version abhängen Ubuntu auch, aber das Ziel war ja gerade, nicht die Standard-Version für die jeweilige Ubuntu/Debian-Version zu erhalten, sondern die aktuellste, die zwar als Paket vorhanden ist aber noch nicht von Ubuntu als "stabil" freigegeben ist und nicht automatisch installiert wird.
Jens G. schrieb: > Was ist denn daran so innovativ, daß die Schnittstellen oder > Treibermodelle ständig neu gewürfelt werden (sollen), Nichts wird gewürfelt, wer hat Dir das erzählt? Hin und wieder ergibt sich vielleicht mal aus einer technischen Notwendigkeit heraus daß an der einen oder anderen API eine Kleinigkeit oder auch was größeres geändert werden muß. Meist wird alles oder fast alles bisherige auch weiterhin mit den neuen Headern immer noch kompilieren und funktionieren ohne daß man irgendwas ändern muss (also Pflegeaufwand == 0), oder meinst Du ernsthaft irgendjemand hat Zeit sich absichtlich unnötige Arbeit zu machen? Und glaubst Du die anderen machen das mit? Das wird ausdiskutiert, solange bis ein tragfähiger Plan existiert wie das API am sinnvollsten zu ändern ist, da wird nichts dem Zufall überlassen, da sind Profis am Werk, die besten der besten!
:
Bearbeitet durch User
Bernd K. schrieb: > Jens G. schrieb: >> Was ist denn daran so innovativ, daß die Schnittstellen oder >> Treibermodelle ständig neu gewürfelt werden (sollen), > > Nichts wird gewürfelt, wer hat Dir das erzählt? > > Hin und wieder ergibt sich vielleicht mal aus einer technischen > Notwendigkeit heraus daß an der einen oder anderen API eine Kleinigkeit > oder auch was größeres geändert werden muß. Meist wird alles oder fast > alles bisherige auch weiterhin mit den neuen Headern immer noch > kompilieren und funktionieren ohne daß man irgendwas ändern muss (also > Pflegeaufwand == 0) Ich weiß ja nicht, hast du das schonmal versucht? Quasi kein nichttrivialer Treiber kompiliert nach 2 Jahren noch, und mit Binärkompatibilität ist direkt bei jedem Patch-Release vorbei. Das ist schon der Grund, warum bei Linux die Treiber alle im Kernel rumliegen; extern ist das nicht wirklich machbar.
@ Bernd K. (prof7bit) >Jens G. schrieb: >> Was ist denn daran so innovativ, daß die Schnittstellen oder >> Treibermodelle ständig neu gewürfelt werden (sollen), >Nichts wird gewürfelt, wer hat Dir das erzählt? >... Nun, daß ich das Wörtchen "würfeln" vielleicht nicht ganz so ernst meinte, wird Dir ja hoffentlich klar sein. Aber wenn Dr. Sommer schreibt: >Außerdem ändert sich der Linux-Kernel sehr schnell, was "externe" >Treiber schnell inkompatibel zu neuen Kernel-Versionen macht; alles was >im Kernel enthalten ist wird mit aktualisiert. Das ermöglicht eine >schnelle Innovation und Verbesserung des Kernels, während z.B. unter >Windows alles abwärtskompatibel zu uralten Treibern sein muss. dann ist Windows doch aus Anwendersicht klar im Vorteil , da es mit alten Treibern noch klarkommt, während bei Linux irgendwelche Hardwäre plötzlich nicht mehr will nach einem Update, wenn man "externe" Treiber installieren musste. Da würden sich normale Anwender bedanken, wenn denen erstmal gesagt wird, man könne sich doch ganz einfach die Quellen holen, und neu kompilieren. So betrachtet ist das nette Feature, daß Linux möglichst alle Treiber mitbringt, nicht nur ein nettes Feature, sondern auch eine Notwendigkeit.
Jens G. schrieb: > dann ist Windows doch aus Anwendersicht klar im Vorteil , da es mit > alten Treibern noch klarkommt, während bei Linux irgendwelche Hardwäre > plötzlich nicht mehr will nach einem Update, wenn man "externe" Treiber > installieren musste. Dem Anwender ist das alles völlig egal, Hauptsache sein komisches Gerät tut. Für die typischen Geräte ist das heutzutage eigentlich bei beiden Systemen ganz gut der Fall. > So betrachtet ist das nette Feature, daß > Linux möglichst alle Treiber mitbringt, nicht nur ein nettes Feature, > sondern auch eine Notwendigkeit. Ist auch so, ja.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.