2009-02-04 4 views
9

In meiner Betriebssystem-Klasse wollen wir einen Linux-Kernel mit einigen einfachen Systemaufrufen in C ändern.Was ist eine gute Barebones-Linux-Distribution für Anfänger Kernel-Entwicklung?

Was wäre eine gute Distribution, die für diesen Zweck geeignet ist? Wir brauchen keinen Schnickschnack, keine GUI, einen Vanilla-Kernel usw. Je einfacher, desto besser.

+1

Was ist "ein einfacher Kernel"? –

+0

@Torsten Marek, Eine Distribution, die einen unmodifizierten Kernel von Vanille verwendet, möglicherweise eine ältere Version, die weniger komplex ist als> 2.6 Linux-Kernel. – mmcdole

Antwort

9

Ich konnte den Kernel ziemlich einfach mit einer minimalen Gentoo-Installation ändern. installieren Nur gentoo, folgen Sie den Installationsanweisungen, dann:

$ emerge gentoo-sources 
$ emerge emacs 
$ cd /usr/src/linux 
+0

+1 für die Befehle, die es braucht, um "gerade genug, um einen Kernel zu bearbeiten/kompilieren", fantastisch – dlamotte

+0

+1 ich glaube, genkernel ist die beste Werkzeugkette zu verwenden, viel einfacher als jede DEB/RPM-basierte Distribution. – daisy

1

würde ich nicht unbedingt sagen, eine bestimmte Distribution auf Kernel-Entwicklung als solche ausgerichtet ist, aber wenn Sie eine traditionelle Linux-Distribution wollen, die doesn Wenn Sie nicht zu viel Konfigurationsmaterial zwischen sich und dem Kernel packen, ist Slackware eine gute Wahl.

2

Auf allen Distributionen können Sie die villa kernel.org-Quellen anstelle der vertriebsbezogenen Kernel-Pakete installieren, was wahrscheinlich eine gute Idee ist, wenn Sie die Kernel-Entwicklung machen wollen.

Sie werden jedoch in Schwierigkeiten geraten, wenn Sie eine aktuelle Distribution mit Nicht-2.6-Kernel verwenden möchten, da sie libc6 oft so erstellen, dass sie nicht mit 2.4 ausgeführt werden kann. Darüber hinaus erfordern viele der Eingeweide der Hardware-Verwaltung (wie udev) ziemlich neue Kernel.

Abgesehen davon, die Verwendung von Debian gibt Ihnen ein Barebone-System, und die Installation Ihrer eigenen Kernel ist ein Kinderspiel mit kernel-package.

5

archlinux ++

aber wirklich .. gentoo, schlaff, und Bogen sind alle mehr oder weniger gute Wahl

1

Mein Vorschlag ist es, die neuesten Kernel zu greifen. Es wird mehr Debugging-Funktionen als in einem älteren Kernel geben. Auch ältere Kernel würden für den Neuling fast genauso komplex aussehen wie die neuesten.

Wie für die Verteilung selbst, können Sie nicht wirklich falsch liegen. Wenn Sie nur einige benutzerdefinierte Systemaufrufe versuchen möchten, greifen Sie auf die Mainstream-Distribution zurück, die Ihnen eine schöne Entwicklungsumgebung bietet. Dann kompiliere und probiere dein angepasstes glibc, ohne es über die Distributionen zu installieren.

6

In meinem Betriebssystem Kurs letzten Semester verwendeten wir User Mode Linux, der große Vorteil ist, dass, wenn Sie das System schleppen, können Sie einfach den Prozess ohne Risiko für die Host-Umgebung zu töten.

Hinzufügen/Ändern von Systemaufrufen ist mühsam, aber trivial, unabhängig vom verwendeten Kernel. Allerdings ist der Kernel 2.6 wesentlich massiver und komplexer. Wenn Sie also den Code wesentlich modifizieren, sind die älteren Kernel einfacher zu handhaben und viel besser dokumentiert. (Dh: einfache Bücher und Referenzen zu finden)

Happy Hacking :)

+0

+1 für UML. Wenn nur HURD das könnte - es ist ein kleinerer, unreiferer Kernel mit mehr Stellen, die verbessert werden können. – new123456

0

Wenn eine Distribution für die Kernel-Entwicklung entschieden hat, denken Sie daran, dass es die Kernel Sie hacken wollen, nicht die Distribution selbst. Sie werden daher eine einfache Distribution wünschen, die so weit wie möglich nicht im Weg ist. Ubuntu sagt ziemlich schön aus dem Weg.

IANAKH

+0

Wie bist du zu dieser Schlussfolgerung gekommen? Ubuntu-Kernel sind ein PITA zum Anpassen. –

3

Arch Linux bietet eine große Plattform für die Kernel-Entwicklung, die auch sehr funktionell ist. Wenn Sie lernen, pacman zu benutzen, wird es tatsächlich das Testen Ihrer Kernmodifikationen ziemlich leicht machen und die Quellen und Werkzeuge in einer vernünftigen Weise zur Verfügung stellen.

Ich denke, wenn Sie ernsthaft Linux und Kernel Hacking lernen, sollte eine Linux From Scratch Installation auf Ihrer Liste sein. Es ist eine großartige Distro/Buch und Sie können die Plattform für die Entwicklung selbst bauen.

0

Eine nicht-linux Alternative ist Geek OS, aber dies ist sehr auf das Bildungsniveau ausgerichtet, und ist kein praktischer Kernel. Es ist jedoch sehr einfach.

0

Nun, ich habe eine namens "Minix" gefunden es ist nicht wirklich eine Linux-Distribution, aber es wurde speziell für den Unterricht gemacht, aber wenn Sie nur eine Linux-Distribution verwenden können, dann sollte es egal sein, ich bin hübsch sicher, dass alle Distributionen den gleichen Kernel haben

0

Gentoo, wenn es Ihnen nichts ausmacht automatische Kompilierung (die meisten Leute denken, dass Gentoo Linux From Scratch ist => Sie müssen alles alleine machen).

Arch, wenn Sie einen langsameren Computer (Laptop) haben.

Der größte Vorteil dieser beiden ist, dass sie sehr, sehr gute Dokumentation haben und nur Gentoo f.E. gibt Ihnen grundlegende Kenntnisse über das init-System und welche Dienste ausgeführt werden müssen. Wenn eine Kopie & Befehle aus der Anleitung einfügen ist es wertlos (zum Glück Handbuch macht die Leute ein wenig denken, so verhindert, dass Kinder installieren gentoo und übernehmen unsere ordentlich #irc): D

Verwandte Themen