Skip to content
  • News
  • Urlaub
  • Bücher
  • Essen
  • Technologie
  • Reviews
  • Galerie
André Sachs's Blog
  • News
  • Urlaub
  • Bücher
  • Essen
  • Technologie
  • Reviews
  • Galerie
HomeTechnologieMinimaler NetBSD-Kernel mit adjustkernel.pl
Technologie

Minimaler NetBSD-Kernel mit adjustkernel.pl

André 29. August 2026 Technologie 3 min read

Liebe NetBSD-Community!

Heute stelle ich euch adjustkernel.pl vor – ein schlankes Perl-Skript, das euren GENERIC-Kernel-Konfig in eine minimale, aber voll funktionsfähige Version umwandelt. Perfekt für Embedded-Systeme, Server mit wenig RAM oder alle, die unnötigen Ballast aus dem Kernel streichen wollen. Basierend auf NetBSD 11.0 (und höher) analysiert es eure aktuelle Konfig, dmesg-Ausgaben und inkludierte Dateien, um nur die tatsächlich genutzten Optionen zu behalten.

Warum minimalisieren?

  • Kleinere Kernel-Größe: Weniger Code = schnellerer Boot, weniger Speicher.
  • Sicherheit: Reduziert Angriffsfläche durch ungenutzte Treiber.
  • Einfach: Kein manuelles Editieren – das Skript macht die Arbeit.

So funktioniert‘s

  1. Aufruf: perl adjustkernel.pl /sys/arch/amd64/conf/GENERIC > MYKERNEL
  2. Analyse:

    • Liest die Haupt-Konfig und alle include-Dateien.
    • Scannt dmesg nach geladenen Modulen.
    • Markiert nur verwendete Optionen (z.B. WSFONT, IPSEC etc.).

  3. Ausgabe: Eine bereinigte Konfig mit Comments, Includes und aktiven Optionen – kompilierbereit!

Das Skript ist robust: Handhabt rekursive Includes, behält leere Zeilen und Comments bei. Hier der vollständige Code (MIT-lizenziert, kopiert und los!):

#!/usr/pkg/bin/perl
#
# adjustkernel.pl – minimal kernel config for NetBSD 11.0
# Author: André <andre@netbsd.nl>
# usage: perl adjustkernel /sys/arch/amd64/conf/GENERIC > MYKERNEL
#

use strict;
use warnings;

my $cfg = shift or die "Usage: $0 <kernel_config>\n";

my %usedopts;
my @incfiles;

# read kernel config and collect option names
sub read_config {
    my $file = shift;
    open(my $fh, '<', $file)
        or die "Cannot open $file: $!\n";
    while (<$fh>) {
        chomp;
        if (/^include\s+"(.*)"$/) {
            push @incfiles, $1;
        } elsif (/^([a-zA-Z0-9_]+)/) {
            $usedopts{$1} = 1;
        }
    }
    close $fh;
}

# read dmesg and mark used options
sub read_dmesg {
    open(my $dmesg, '-|', '/sbin/dmesg') or return;
    while (<$dmesg>) {
        if (/^([a-zA-Z0-9_]+)/) {
            $usedopts{$1} = 1;
        }
    }
    close $dmesg;
}
# recursively process includes sub process_includes { foreach my $inc (@incfiles) { my $incpath = $inc; # try relative to /sys/arch/.../conf if (-f $incpath) { read_config($incpath); } } } # main logic read_config($cfg); read_dmesg(); process_includes(); # print minimal config open(my $cfg_in, '<', $cfg) or die "Cannot reopen $cfg: $!\n"; while (<$cfg_in>) { if (/^$/) { print; # empty line } elsif (/^#/) { print; # comment } elsif (/^include\s+"/) { print; # keep include } elsif (/^([a-zA-Z0-9_]+)/) { print if $usedopts{$1}; } else { print; # keep config lines without leading option name (e.g. options assignments) } } close $cfg_in;

DOWNLOAD [ MD5 (adjustkernel.pl.zip) = eeded7f88d62230e090cb40317cb07e2 ]

Testet es auf eurem System und kompiliert mit cd /sys/arch/amd64/conf && make MYKERNEL – boom, minimaler Kernel! Feedback? Issues? Lasst es mich in den Comments wissen.

Happy hacking! André aus Frankfurt

KernelNetBSDTerminalUnix
Share:

André

Beitrags-Navigation

PreviousKnusprig, fluffig & einfach lecker: Schnelle Quarkbällchen wie vom Bäcker
NextDas freeX-Archiv: 12 Jahre Unix- und Linux-Geschichte jetzt auf GitHub

Related Posts

Technologie

Das freeX-Archiv: 12 Jahre Unix- und Linux-Geschichte jetzt auf GitHub

29. August 2026
Technologie

kFreeBSD – ein kleiner Ausflug in die Unix-Nostalgie

12. September 2026

Neueste Beiträge

  • Naturehike Cloud Up 1 UL – Das perfekte Ultraleicht-Zelt für Einsteiger?
  • kFreeBSD – ein kleiner Ausflug in die Unix-Nostalgie
  • Das freeX-Archiv: 12 Jahre Unix- und Linux-Geschichte jetzt auf GitHub
  • Minimaler NetBSD-Kernel mit adjustkernel.pl
  • Knusprig, fluffig & einfach lecker: Schnelle Quarkbällchen wie vom Bäcker

Neueste Kommentare

    Archive

    • Oktober 2026
    • September 2026
    • August 2026
    • Juli 2026

    Kategorien

    • Bücher
    • Essen
    • News
    • Reviews
    • Technologie
    • Urlaub

    Social Media

    Review

    • Naturehike Cloud Up 1 UL – Das perfekte Ultraleicht-Zelt für Einsteiger?
      3. Oktober 2026 0
    André Sachs's Blog

    © 2026 André Sachs's Blog. All rights reserved.

    {{playListTitle}}
    • {{ index + 1 }}
      {{ track.track_title }} {{ track.track_artist }} {{ track.album_title }} {{ track.length }}
    artwork-hover Player Audio Artwork
    {{list.tracks[currentTrack].track_title}}{{list.tracks[currentTrack].track_artist && typeof sonaar_music.option.show_artist_name != 'undefined' ? ' ' + sonaar_music.option.artist_separator + ' ' + list.tracks[currentTrack].track_artist:''}}
    {{list.tracks[currentTrack].album_title}}
    {{ list.tracks[currentTrack].album_title }}
    Player Audio Artwork
    {{list.tracks[currentTrack].track_title}}
    {{list.tracks[currentTrack].track_artist }}
    {{classes.speedRate}}X
    Player Audio Artwork
    {{list.tracks[currentTrack].track_title}}
    {{list.tracks[currentTrack].track_artist }}
    {{ cta['store-name'] }}