Skip navigation

Linux User Group Oldenburg [Tux]

Linux und Kernel 2.0.x

Von Torsten Neumann

Hier also wie versprochen das was ich am letzten Montag vorgetragen hab. Damit jeder auch ein wenig zum lesen hat. Ist alles ein wenig quick and dirty aber vielleicht kann ja jemand was damit anfangen.

Insbesondere waere es schoen wenn jemand ein paar Anmerkungen zu den ganzen IP Aenderungen machen wuerde.

Die Zitate von Kristian Koehntopp sind alle aus DqCs7C.30H@white.schulung.netuse.de

LINUX 2.0

  1. Konfiguration
    1. make config
    2. make menuconfig
    3. make xconfig
  2. Documentation Directory
  3. allgemeine neue Eigenschaften
  4. neue Features
    1. Modules
    2. neue Treiber
  5. upzudatende Programme
  1. Konfiguration

    1. make config Es wird bei allen Fragen ausgegeben welche Antworten moeglich sind. Dies ist eine Auswahl aus 'y','n','m' und '?' Die 'alte' Antwort wird durch einen Grossbuchstaben hervorgehoben. Und '?' gibt einen kurzen Hilfstext.

      Ausnahme ist der sound-Treiber, bei diesem hat man aber die Moeglichkeit die Konfiguration unter /etc/soundconf abzuspeichern, und dann immer wieder die gleiche Konf. zu benutzen.

    2. make menuconfig graphische Oberflaeche zur Konf. mit Hilfe von dialog. (hab ich nicht getestet)

    3. make xconfig tcl/tk Oberflaeche zur Kernel Konfiguration. Gleiche Moeglichkeiten wie bei make config. Probleme gibt es dann wohl noch beim einbinden des sound-Treibers. Bei meinem letzten Test liess sich der dann nicht konfigurieren.

  2. Documentation Directory

    Es gibt jetzt ein Verzeichniss /usr/src/linux/Documentation. (Inzwischen schon 795 KB gross) Dort stehen weitere Informationen (ueber '?') hinausgehend was einzelne Treiber betrifft, bzw. welche Zusatztools benoetigt werden um Features zu benutzen. Fuer ein Update von 1.2 -> 2.0 ist dadrin insbesondere die Datei Changes intressant.

  3. Allgemeine neue Eigenschaften

    "1.3 eine deutliche Performanceverbesserung gegenueber 1.2.13. Der Scheduler wurde komplett ueberarbeitet und schaltet nicht nur schneller zwischen den Prozessen um, sondern die Umschaltzeit bleibt auch bei steigender Laenge der Ready-Queue annaehernd konstant. (Kristian Koehntopp)"

    Ersetzung von bdflush durch kflushd. (Kernel Thread). Das Programm update muss aber dennoch gestartet werden.

    Dann wurde auch noch der swap Code gruendlich ueberarbeitet. (Es gibt dann auch noch einen kswapd Kernel Thread). So dass das auslagern von pages schneller wird. (In der Anfangszeit soll es dabei noch Probleme gegeben haben bei High-Memory-Systemen (>64 MB ), da ich in letzter Zeit davon aber nichts mehr gehoert hab wird sich das wohl auch gebessert haben)

    Der nfs Code wurde gruendlich ueberarbeitet. (Noch 4 nfsiod Prozesse dazu) Inzwischen ist zumindest das lesen ueber nfs schneller als ftp. (N.B. in 1.2.x konnten hoechstens 50 KB/sec gelesen werden)

    "Der neue Kern ist portabel und enthaelt Hardwareverzeichnisse fuer Intel x86, DEC Alpha, MIPS MIPS, Motorola Power PC, Motorola M68k und SUN Sparc. Es sind Geraetetreiber fuer Nicht-PC-Devices dazugekommen, etwa SPARC Sbus-Karten oder fuer Amiga- und Atari-SCSI-Hardware, -Framebuffer und Maeuse." (Kristian Koehntopp)

    Es gibt dann auch noch ein paar neue Devices

            /dev/random
            /dev/urandom
    

    welche standardmaessig unterstuetzt werden.

    SMP Boards werden unterstuezt.

    einige Eigenschaften des Kernels sind nun laufzeit konfigurierbar. (z.B ein externes scsi-lw/tape braucht beim Rechner anschalten nicht eingeschaltet zu sein)

  4. neue Features

    1. Modules Der neue Kernel ist mehr oder weniger modularisiert, fast alle Treiber lassen sich auch als module compilieren. Besondere Bedeutung erlangen dabei

      "Der neue Kernel hat eine Initramdisk. Diese Ramdisk wird zusammen mit dem Kernel im Image auf der Platte gestartet und steht sofort nach dem Booten zur Verfuegung. Nach dem Systemstart kann sie optional geloescht werden.

      Zusammen mit dem Modulkonzept kann man so eine Bootdiskette bauen, die weitgehend hardwareunabhaengig ist. Dazu wird ein Kernel gebaut, der nur im wesentlichen nur noch Minix-FS und initrd enthaelt und der alle anderen Treiber soweit moeglich als Module enthaelt. Nach dem Booten wird die Hardware gescannt bzw. die Module anhand einer voreingestellten Liste geladen und damit ist ein fuer die Hardware optimaler (d.h. keine ueberfluessigen Treiber im Speicher) Kernel geladen. Die Kernelgroesse kann durch erstellen einer customized initrd leicht rediziert werden - Kernelkompilieren entfaellt. Das ist ein sehr wesentlicher Punkt, denn in einem reinen Anwenderlinux ist man moeglicherweise nicht bereit." (Kristian Koehntopp)

      Sowie kerneld. Mit kerneld ist es moeglich das ein Treiber nur bei Bedarf geladen wird. So macht dann der Benutzer ein mdir a: , und dann wird automatisch der floppy-Treiber und das msdos-fs geladen, und nach kurzer Zeit wieder automatisch entladen.

      Mit kerneld ist es dann moeglich auf 2 verschiedenen Rechner den gleichen Kernel zu benutzen, und ueberhaupt nichts davon zu merken.

      Na ja ein paar Probleme mit kerneld hab ich noch.

      • Probleme mit dem scsi-Treiber und dem filesystem check beim booten.
      • Es dauert manchmal doch so seine Zeit bis ein Treiber geladen ist. Macht sich bei mir beim cdrom arg bemerkbar. (Die Cdrom LW werden ueber den amd-Automounter automatisch gemountet sobald ich versuch darauf zuzugreifen, dann erst wird der request gemacht auch das isofs, und den Device Treiber zu laden *gaehn*)
      • Probleme gibt es (bei mir) auch noch wenn Module eine Initialisierung brauchen. z.B. wenn der Drucker ueber IRQs betrieben werden soll, oder beim ncpfs Treiber. Das soll aber mit der neuesten Version behoben sein (modules-1.3.69f); die erlauben dann auch sowas wie post-install oder pre-remove in /etc/conf.modules.
      • nfsiod macht bei mir auch noch Probleme wenn nfs als Module eingebunden wird. (funktioniert ab 1.3.97 hier)
    2. Neue Treiber
      • PCI bios support

        Support fuer PCI Rechner, und dann kommen noch ein paar Fragen nach Bugfix Support fuer einige Boards.

      • EIDE Support

        inklusive CDROM/TAPE; bis zu 8 Devices werden unterstuetzt

      • Loopback device support

        Erlaubt es Dateien zu mounten sowie verschluesselte Dateisysteme zu benutzen

      • Multiple device support

        Mehrere Platten als ein device ansprechen. Append mode sowie RAID0; RAID 1 (mirroring) und RAID 5 werden (noch) nicht unterstuetzt.

      • Network firewalls
      • Network aliasing
      • IP forwarding/gatewaying
      • IP multicasting
      • IP accounting
      • IP masquerading
      • Optimize as Router not Host
      • Bridging
      • Kernel/User network link driver
      • IPX Support fuer IPX
      • Appletalk DDP Support fuer Appletalk
      • Amateur Radio Support Packet Radio
      • Update von SCSI Treibern (und ein paar neue) Speziell IOMEGA-ZIP Drive parallel port
      • Update von Ethernet Treibern ( + neue )
      • ISDN for Linux schon im Kernel drin.
      • Update von (non-Atapi) CDROM Treibern. ( + neue )
      • Filesysteme
        • Quota Support (nur ext2)
        • VFAT Support (Windows 95)
        • Root FS ueber NFS
        • SMB FS zum mounten von Win 3.11/ Windows 95 FS uebers Netz
        • NCP Fs zum mounten von Novell FS
        • AFFS Amiga Filesystem (read-only)
        • UFS (SunOS,FreeBSD,NetBSD,NeXTstep)
      • Character Devices
        • ein paar Multiport Karten werden unterstueztz
        • ftape support
        • Watchdog Timer
        • Enhanced Realtime Clock
      • Sound

        es werden viel mehr Karten unterstuezt. und die Treiber wurden stark ueberarbeitet.

  • Upzudatende Programme

    Generell ist zu sagen das bei allen Programmen welche direkt auf das proc-fs zugreifen eine Aenderung notwendig sein koennte. Dazu zaehlen dann solche Programme wie ps,top,free,arp,netstat,...

    Wenn mensch nicht von Warnungen erschlagen werden will (`fcntl_setlk() called by process 123 with broken flock() emulation') gibt es die zwei folgenden Moeglichkeiten

    Ansonsten braucht mensch wohl :

    desweiteren koennte folgendes notwendig sein