warum enthält der linux-kernel mehr als 15 millionen codezeilen?
<p><strong> was ist der inhalt dieser monolithischen codebasis? </strong></p><p>ich verstehe die unterstützung, sicherheit und virtualisierung der prozessorarchitektur, kann mir aber nicht vorstellen, dass dies mehr als 600.000 zeilen sind.</p><p><strong> was sind die historischen und aktuellen gründe, warum treiber in der kernel-codebasis enthalten sind? </strong></p><p>enthalten diese mehr als 15 millionen leitungen jeden einzelnen treiber für jede hardware? wenn ja, stellt sich dann die frage, warum treiber in den kernel eingebettet sind und keine separaten pakete, die automatisch erkannt und von hardware-ids installiert werden.</p><p><strong> ist die größe der codebasis ein problem für geräte mit speicher- oder speicherbeschränkung? </strong></p><p>es scheint, als würde es die kernelgröße für geräte mit eingeschränktem speicherplatz aufblähen arm geräte, wenn alles eingebettet wäre. werden viele zeilen vom präprozessor ausgesondert? nennen sie mich verrückt, aber ich kann mir keine vorstellen maschine, die so viel logik benötigt, um das auszuführen, was ich verstehe, sind die rollen eines kernels.</p><p><strong> gibt es hinweise darauf, dass die größe in mehr als 50 jahren ein problem sein wird, da sie scheinbar ständig wächst? </strong></p><p>das einbeziehen von treibern bedeutet, dass es mit der herstellung der hardware wächst.</p><p><strong> [~ # ~] edit [~ # ~] </strong>: für diejenigen, die denken, dass dies die natur von kerneln ist, wurde mir nach einigen recherchen klar, dass dies nicht immer der fall ist . ein kernel muss nicht so groß sein, da carnegie mellons <a href="https://en.wikipedia.org/wiki/microkernel">mikrokernel</a> mach als beispiel "normalerweise unter 10.000 codezeilen" aufgeführt wurde.</p>
<p>treiber werden im kernel verwaltet. wenn eine kerneländerung ein globales suchen und ersetzen (oder suchen und ändern) für alle benutzer einer funktion erfordert, wird dies von der person durchgeführt, die die änderung vornimmt. es ist ein sehr schöner vorteil, wenn ihr treiber von personen aktualisiert wird, die api-änderungen vornehmen, anstatt dies selbst tun zu müssen, wenn er nicht auf einem neueren kernel kompiliert wird.</p><p>die alternative (was bei treibern der fall ist, die außerhalb des baums gewartet werden) besteht darin, dass der patch von seinen betreuern erneut synchronisiert werden muss, um mit den änderungen schritt zu halten.</p><p>eine schnelle suche ergab sich <a href="http://lwn.net/articles/186854/">eine debatte über in-tree vs. out-of-tree</a> treiberentwicklung.</p><p>die art und weise, wie linux gewartet wird, besteht hauptsächlich darin, alles im mainline-repo zu belassen. das erstellen kleiner abgespeckter kernel wird durch konfigurationsoptionen zur steuerung von <code>#ifdef</code> unterstützt. sie können also absolut winzige, abgespeckte kernel erstellen, die nur einen winzigen teil des codes im gesamten repo kompilieren.</p><p>die weit verbreitete verwendung von linux in eingebetteten systemen hat zu einer <em> besseren </em> unterstützung für das auslassen von dingen geführt als linux jahre zuvor, als der kernel-quellbaum kleiner war. ein super-minimal-4.0-kernel ist wahrscheinlich kleiner als ein super-minimal-2.4.0-kernel.</p>
<p>c hat den vorteil, dass es eine relativ <strong> <em> kleine sprache</em> </strong> ist, was es <strong> macht ) <em> einfach einen c-compiler zu implementieren</em> </strong> (während ein c++ - compiler ein monster zum schreiben ist), und macht es <strong> = <em> leichter die sprache zu lernen</em> </strong>. siehe auch <a href="https://www.tiobe.com/tiobe-index/">tiobe-index</a> , wonach c etwas vor c++ liegt.</p><p>in (imo) abnehmender reihenfolge der rechtfertigung wird c immer noch häufig verwendet</p><ul> <li> <p>eingebettetes zeug<br> es ist viel einfacher, einen c-compiler auf eine kleine plattform zu portieren, als einen c++ - compiler zu portieren. außerdem behaupten c-befürworter, dass c++ "hinter ihrem rücken zu viel tut". allerdings imo das ist fud.</p> </li> <li> <p>systemprogrammierung<br> auch dies ist normalerweise auf die behauptung zurückzuführen, dass es einfacher ist, "zu wissen, was der compiler tut". viele eingebettete programme würden jedoch beispielsweise von vorlagen und anderen c++ - schlüsselfunktionen profitieren.</p> </li> <li> <p>quelloffene software<br> das ist jedoch meistens ein einstellungsproblem: oss hat c immer c++ vorgezogen (während es in großen teilen der branche das gegenteil ist). torvalds irrationaler hass könnte tatsächlich der wichtigste grund dafür sein <em> unter linux</em>.</p> </li> </ul> Es gibt 23 verschiedene Chromosomen, die in allen Zellen vorkommen. In den normalen Körperzellen kommen sie doppelt vor (einmal von der Mutter und einmal vom Vater). Das gilt sowohl für die 22 autosomalen als auch das gonsomale Chromosom (also die Chromsomen 1 bis 22 und das x- bzw. y-Chromosom. Und bei der Meiose geht es darum, von jedem Chromosom nur noch eins in die Keimzelle zu kriegen, damit bei der Befruchtung wieder nur eins vom Vater und eins von der Mutter zusamen kommt (sonst hätte die befruchtete Eizelle ja einen tetraploiden Chromosomensatz). Und das passiert bei der ersten Reifeteilung der Meiose. Warum muss ich für die Basis des Kerns die Zeile mit -1 auf der Diagonalen hinzufügen und warum ist die 3. und 4. Spalte der so entstandenen Matrix dann eine Basis des Kerns ?
  


Der zweite Teil deiner Frage ist einfacher:

Du hattest doch x4 = x4, x2 = -3x3, x1 = x3-x4  bzw. ohne die 3.Zeile,

die ja auch eine 0-Zeile wird x2 = -3x3, x1 = x4-x3 (Da hattest du falsche Vorzeichen.)

und kannst also x4 und x3 frei wählen. Und die beiden Gleichungen

zeigen, dass alle Lösungen so aussehen:

( x4-x3 ; -3x3 ; x3 ; x4 )  = x3*(-1;-3;1;0) + x4(1; 0 ; 0 ; 1 )

oder wenn du als Faktor -x3 und -x4 nimmst

 = -x3*(1;3;-1;0) - x4(-1; 0 ; 0 ; -1 ) .
  


Und du siehst: Man kommt auf diese Basisvektoren, wenn man die

Matrix mit dem "-1-Trick" ergänzt.

Und da man nun weiß, dass der Kern die Dimension 2 hat

( 2 Basisvekt0ren) , weiß man aus dem Dimensionssatz:

dim(Bild) = Spaltenzahl von A  -  dim(Kern)

              =  4  - 2 = 2.

Alsi bilden je zwei lin. unabhängige Spalten von A

eine Basis des Kerns. Und weil die ersten beiden

Spalten von A ( vor der Umformung ) schon lin.

unabhängig sind, kann man diese nehmen.

War es vielleicht

C = Im A = ((1 (-1) 0)T, (0 1 2)T)
  


statt

C = Im A = ((1 (-1) 1)T, (0 1 2)T) ??? Wenn das LAN-Kabel korrekt angeschlossen ist, dafür hat es ja extra einen Clip, hat man weiterhin minimalen Spielraum, dieses am Anschluss zu bewegen, das ist normal. An die volle Bandbreite kommt man meistens nicht, kann an der Auslastung der Leitungen oder im internen Netz, an Router-Einstellungen oder weiterem liegen, siehe Suchmaschine. Kein kurzer Schnitt, sondern kapselt dies in eine Funktion ein, und Ihr Code ist viel lesbarer. da hat dir jemand schauermärchen über externe festplatten aufgetischt. alle kleineren, externen (2,5 zoll) festplatten (egal ob mechanisch oder SSD) werden ausschließlich über den usb-port mit strom versorgt.


große 3,5 zoll platten in großen gehäusen erfordern für ihren betrieb mehr power, als usb liefern kann, daher haben diese eine eigene stromversorgung.


beides hat aber nichts mit der daten-verbindung zu tun. sie ist ständig aktiv, kann sich aber bei "nichtgebrauch" im latenten standby-betrieb befinden, ohne dass es deinen rechner, bzw. die konsole oder ein spiel stört. falls das spiel (oder das programm) das nachladen von daten erfordert, sollte eine leistungsfähige konsole oder ein moderner pc/notebook das ohne unterbrechung der laufenden anwendung im hintergrund erledigen.


bei einem pc ist es sogar empfehlenswert, trotz "plug & play" funktion, die externe festplatte vor dem abstöpseln datenmäßig zu trennen, weil ggf. trotz standby ein paar bytes verloren gehen können. Wieviel Speicherplatz hast Du denn auf C:? Nur durch Windows, Treiber und n paar Programme die Primärpartition voll zu bekommen passiert nicht sooo schnell. Bedenke auch beim Löschen bzw auf exteren kopieren, dass der Desktop und Ordner wie "Eigene Dateien" "Eigene Bilder" "Dokumente" etc auch auf C: liegen und der Speicher auch erst dann frei wird wenn Du die kopierten Daten auch aus dem Papierkorb gelöscht hast. Antriebswellen, Motorlager, Auspuffaufhängung wären denkbare Geräuschquellen.


Etwas Spiel im Antriebsstrang ist normal, d.h. es es gibt Spiel in den Antriebswellen, Getriebe und Kraftübertragung bei der Kupplung Hallo Schadi1988


<http://www.tuning-fibel.de/kolumne/drehmoment-luege.php>


Prinzipiell laufen Motoren mit mehr Zylinder weicher und vibrationsfreier. Trotzdem kommt es sehr auf das Verhältnis Hubraum / PS an. Das nennt man Literleistung. Je höher diese Literleistung ist, umso höhere Drehzahlen benötigst Du. Je geringer umso ruhiger kannst Du fahren, Beispiel dicke Harleys gegen 600er Joghurtbecher.


Es liegt an deiner bevorzugten Art zu fahren und welche Geräuschkulisse Du magst.


Gruß Nachbrenner beim kauf eines starthilfekabels muss grundsätzlich darauf geachtet werden, dass dieses über einen für den eigenen motor ausreichenden kabelquerschnitt verfügt. bei benzinern mit kleinem hubraum sollten mindestens 16 mm2 bei kupferkabeln oder 25 mm2 bei aluminiumkabeln zum einsatz kommen. besitzt man ein fahrzeug mit einem motor ab zwei litern hubraum oder einen diesel, sollte das kabel mindestens einen querschnitt von 40 mm2 bei einem modell aus aluminium oder 25 mm2 bei kupfer aufweisen. beim diesel ist dieser querschnitt erforderlich, da der motor im gegensatz zum benziner mit etwa 20-40 ampere pro vorhandenem zylinder vorgeglüht werden muss. will man einen benziner mit sehr großem hubraum oder einen diesel mit mindestens drei litern hubraum überbrücken, sollte das verwendete kabel einen querschnitt von 55 mm2 bei aluminium und 35 mm2 bei kupfer aufweisen. <br />
<br />
generell kann man zwar auch versuchen, einen motor mit entsprechend kleinerem kabel zu überbrücken, jedoch kann das kabel dabei eine enorme hitze entwickeln und sogar an den kontakten durchschmoren. im zweifelsfall immer auf die angegebene amperezahl achten, die die maximal zulässige stromstärke angibt. allerdings gilt es zu beachten, dass sich die kabellänge auf die maximale amperezahl auswirken kann und bei einer größeren länge im vergleich geringer ist. umgekehrt, also ein fahrzeug mit kleinerem hubraum mit einem entsprechend größeren kabel als erforderlich zu überbrücken, verursacht keinerlei probleme. zudem muss auf die anliegende spannung geachtet werden, welche bei kfz in der regel bei 12v liegt, jedoch bei nutzfahrzeugen und lkw bei 24v. von einer überbrückung ist in solchen fällen abzuraten.