Samba-TNG
# Samba-TNG

Samba – The Next Generation, kurz Samba-TNG oder TNG, ist ein Projekt, dessen Ziel es ist, nicht nur ein Dateiserver, sondern auch ein Ersatz für einen Windows NT Primary Domain Controller (PDC) zu sein. TNG war als ein Entwicklungszweig von Samba Classic gedacht. Hier sollten neue Ideen zur Reife gebracht werden, um sie in späteren Entwicklungsstadien erst dann in Samba Classic zu übernehmen.

TNG verwendet das Server-Message-Block- (SMB) bzw. Common-Internet-File-System- (CIFS) und Remote-Procedure-Call-Protokoll (RPC) zum Datenaustausch mit Windowssystemen.

Die Entwicklung von Samba-TNG ist zum Stillstand gekommen. Die letzte Veröffentlichung stammt aus dem Dezember 2009.

## Aufbau

Das Samba-TNG-Projekt setzt sich aus verschiedenen Diensten zusammen, die über Unix Domain Sockets (bzw. Named Pipe unter Windows) miteinander verbunden sind. Der Dienst smbd übernimmt dabei eine besondere Stellung: Er dient einmal als Dateiserver und ebenfalls als Router für die einzelnen RPC basierten Dienste.

### Dienste

**smbd**


    smbd beinhaltet den Dateiserver und den Router für die RPC basierten Dienste.

**nmbd**


    nmbd ist der NetBIOS-Name Server und bietet via Netbios über TCP/IP entsprechende Namensdienste an.

**lsarpcd**


    lsarpcd stellt einen Local-Security-Authority-Dienst (LSA) bereit, der zum Beispiel Informationen über das momentane Benutzerkonto bereithält.

**netlogond**


    netlogond ist für die Authentifizierung in einer Domäne zuständig.

**samrd**


    samrd stellt Funktionen zum Bearbeiten der Security-Accounts-Manager-Datenbank (SAM) zur Verfügung.

**spoolssd**


    spoolssd implementiert den Druckdienst. (Dieser Dienst wird zurzeit nicht aktiv gepflegt)

**srvsvcd**


    srvsvcd stellt Windows-NT-Serverfunktionen bereit.

**svcctld**


    svcctld ist für das Starten und Stoppen der Samba-TNG-Dienste zuständig.

**winregd**


    winregd stellt die remote Registry von Samba-TNG bereit.

**wkssvcd**


    wkssvcd stellt Windows-NT-Workstationfunktionen bereit.

### Programme

**testparm**


    Prüft die Konfigurationsdatei smb.conf auf Korrektheit.

**smbclient**


    Mittels smbclient kann auf einen entfernten Rechner mit einer ftp-ähnlichen Oberfläche zugegriffen werden.

**smbstatus**


    smbstatus ermöglicht es Informationen über bestehende Verbindungen auszugeben.

**nmblookup**


    Durch nmblookup können NetBIOS-Namen mittels NetBIOS über TCP/IP abgefragt werden.

**net**


    Das net-Programm ähnelt dem Windowsprogramm net.

## Unterschiede

Der Hauptunterschied zwischen Samba Classic und Samba-TNG ist die Aufteilung der Dienste. Samba Classic verwendet einen monolithischen Daemon, mit etwa 400.000 Zeilen Code, um die Dienste anzubieten. Samba-TNG verteilt die einzelnen Dienste auf unterschiedliche Daemons, die zwischen 5.000 und 50.000 Zeilen Code haben.

## Geschichte

Das Samba-Classic-Team ist sehr darauf bedacht, zu jeder Zeit eine funktionierende Version in ihrer Versionsverwaltung zu halten. Dadurch werden größere Änderungen am Code, um zum Beispiel neue Funktionen einzubauen, erschwert.

Einige Entwickler, vor allem Luke Leighton, hatten einige neue, unkonventionelle Ideen im Design des Primary Domain Controller (PDC) Codes. Um die Codebasis von Samba Classic nicht zu gefährden, wurde 1999 aus der Version 2.1 Samba-TNG geboren. Es sollte als Spielwiese für neue Entwicklungen dienen und Code, der sich als brauchbar erwiesen hat, sollte in Samba Classic einfließen.

Zwischen den beiden Projekten entwickelte sich ein Disput. Es gab unterschiedliche Meinungen, wie Samba aufgebaut sein sollte.

Im September 2000 erklärten die Samba-TNG-Entwickler ihr Projekt für gescheitert. Sie stellten die Entwicklung an Samba-TNG ein. Im November 2000 wurde auf Bitten von Anwendern, die einen freien PDC benötigen, ein komplett neues, unabhängiges Projekt unter der Domain samba-tng.org initiiert.

Am 14. September 2005 wurde die Version 0.4.99 von Samba-TNG fertiggestellt. Wichtigste Änderungen in dieser Version sind die Unterstützung von Unicode und die Überarbeitung der Manpages.

