Welches ist die beste Leichtgewicht-Distro zum Erlernen der Linux-Kernel-Entwicklung. Es sollte viele Debugging und Profiling-Tools zur Verfügung haben :)Distro für Linux-Kernel-Entwicklung
Antwort
LFS. Dann installieren Sie jeden Debugger und Profiler, den Sie finden können.
Ich habe es genossen, Gentoo für das Herumspielen mit dem Kernel zu verwenden.
Noch eine Abstimmung für Gentoo. –
Ich habe gehört Linus himself uses Fedora. Ich würde empfehlen, Gentoo, die Sie für die Hand ermöglicht, Ihren Kernel anzupassen, es ist die perfekte Einstellung dafür (und ich habe viele Stunden damit verbracht, jedes letzte bisschen Leistung für den Spaß davon auszuquetschen).
Natürlich Ubuntu ist meine bevorzugte Distribution, aber Sie können Probleme haben, wenn Sie mit dem Entführen und Entfernen der erwarteten Kernel-Funktionen beginnen. Gentoo wird sich nicht beschweren und erwartet nicht von Anfang an.
Der Ubuntu-Kernel enthält eine ganze Reihe von Patches für Dinge wie die UUID-Behandlung und andere Magie. Ich laufe ständig Vanillekerne auf meiner Gentoobox ohne Probleme. – stsquad
Fedora ist auch mein Favorit, verdammt stabil. –
Die Distribution macht wahrscheinlich keinen großen Unterschied, da Sie an Ihrem eigenen Kernel arbeiten und nicht an dem "kitchen sink" -Kernel, den die Distributionen in den meisten Fällen mit einer Reihe von Patches versehen.
Wenn Sie Kernel-Entwicklung arbeiten, dann nehme ich an, Sie wollen eine Distribution, die schnell startet, etwas wie Welpen könnte hier ideal sein und Ihre eigentliche Codierung von etwas wie Ubuntu tun.
Die Distribution ist nicht wirklich wichtig. Es ist das, was Sie mit dem Kernel machen wollen und dessen Entwicklung/Test durchführen.
Hier sind einige Dinge zu tun.
a. Schalten Sie das Kernel-Debugging und die Protokollierungsoptionen ein. Diese würden dir definitiv beim Debuggen helfen. siehe useful linux kernel debug options to turn on
b. Getdebuggers-Tool wie Valgrind, das nach Speicherlecks sucht. Siehe Dok. Wie https://www.kernel.org/doc/Documentation/kmemleak.txt
c. Ich habe einen guten Editor zum Bearbeiten gefunden. Ich möchte keinen Vim gegen Emacs Krieg beginnen. Es ist wirklich eine persönliche Vorliebe, stellen Sie sicher, dass Sie die Linux-Kernel-Code-Stil Richtlinien befolgen. https://www.kernel.org/doc/Documentation/CodingStyle
d. Machen Sie sich mit den Log-Systemen und dem proc-System vertraut, da sie wertvolle Informationen liefern.
e. Lesen Sie die Dokumentation im Verzeichnis/usr/src/linux/Dokumentation Sehr guter Ausgangspunkt für den Kernel
Buildroot
Buildroot ist eine Reihe von Skripten zu verstehen, die winzige distros mit rootfs Bilder kleiner als 10MiB erzeugt.
Es lädt alles von der Quelle herunter und kompiliert es, also ist es trivial, Pakete zu packen.
Die erzeugten Bilder sind so winzig, dass es möglich wird, das gesamte Userland-Setup zu verstehen, was es einfacher macht, sich auf den Kernel zu konzentrieren.
Vorteil gegenüber LFS: alles ist voll automatisiert. Aus diesem Grund wird Buildroot professionell in großen Organisationen eingesetzt.
Ich habe dieses Setup erstellt Dinge so weit wie möglich zu automatisieren: https://github.com/cirosantilli/linux-kernel-module-cheat
- 1. Empfohlene Linux Distro für Android Entwicklung Workstation
- 2. Build-Fehler Oozie Distro-Erstellung fehlgeschlagen
- 3. Wie man Distro-spezifische bedingte qmake-Projekt erstellen
- 4. Ist das ein Problem mit meiner Distro oder der Anwendung?
- 5. Schwerwiegender Fehler: Aufruf einer Memberfunktion result() für ein Nicht-Objekt in C: \ xampp \ htdocs \ distro \ application \ views \ baju.php in Zeile 13
- 6. Parameterersetzung für eine SQLite "IN" -Klausel
- 7. Wie installiere ich ein gi-Modul für anaconda python3?
- 8. NodeJS exec funktioniert nicht für "cd" Shell cmd
- 9. LibGdx und Gwt: Kein Quellcode ist für den Typ
- 10. Wenn CLANG ++ und G ++ ABI inkompatibel sind, was wird für Shared Libraries im Binärformat verwendet?
- 11. Wo wird der Quellcode für eine Linux/Unix-Anwendung am besten aufbewahrt?
- 12. Ausgabe von JSON aus Bash-Skript
- 13. Wie konfiguriere ich eine Service Engine für die Verbindung mit dem Controller in Avi Vantage 16.1?
- 14. Wie stm32 mit nur Linux-Terminal zu flashen?
- 15. GWT - Module.gwt.xml - XML-Validierung Warnung
- 16. Scala für() vs für {}
- 17. Verbindungszeichenfolge für Informix für .NET
- 18. Mindestanforderungen für Unity für Android?
- 19. Gruppe für Monat für Anwesenheitsliste
- 20. Modul für OneSignal für Appcelerator
- 21. Vorschlag für Vorlagenbuch für C++?
- 22. Alternative für BtsMSITask für BizTalk
- 23. Elmah für WCF für Ausnahmebehandlung
- 24. Welche Distribution eignet sich am besten für LAMP + memcache? (Antwort bekommt eine Linode oder Slicehost Empfehlung)
- 25. Beispiel für den Domain-Namen für mailgun be für nodejs?
- 26. Einstellung für Ländereinstellung für Java-Überschreibung für bestimmtes Gebietsschema
- 27. Implementieren von Bedingungsvariablen für CRITICAL_SECTIONs für WinThreads für XP
- 28. GO Skript-Laufzeitfehler für Amazon AWS S3
- 29. Linux-Software verpacken und dabei eine vernünftige Dateistruktur beibehalten
- 30. Wie bekomme ich Betriebssystem in Java
ich alle diejenigen nutzen können und sie sind cool, aber es braucht viel Zeit zum Patchen, Tests, usw. – user361697
auch eine haben Schau dir Buildroot an, das alles automatisiert: https://stackoverflow.com/a/44625382/895245 –