Samba (software)
Samba is een opensourcesoftwarepakket dat bestaat uit verschillende applicaties. Samba maakt gebruik van het SMB-protocol.

Door ondersteuning voor dit protocol te bieden, kunnen machines die dit protocol ondersteunen met elkaar communiceren over het netwerk, zowel intern als over het internet. Deze technologie wordt vooral gebruikt om Unixmachines te laten communiceren met Windowsmachines.

Geschiedenis 
Andrew Tridgell ontwikkelde de eerste versie van wat uiteindelijk Samba zou gaan worden vanaf december 1991. In januari 1992 publiceerde hij de eerste versie als „Server 0.1”.

Na enkele bugfixes liet Tridgell het project bijna 2 jaar rusten, ook al kreeg hij verschillende mails met vragen over zijn project.
Pas toen hij zijn Unix-systeem wilde verbinden met het Windows-systeem van zijn vrouw, haalde hij zijn project weer boven en doopte het om tot smbserver. Aangezien dit handelsmerk problemen gaf, zocht Tridgell naar een andere naam. Die naam werd uiteindelijk Samba.

Ondertussen was het reeds 1995 en begon het project meer en meer te groeien en later kwam er ook meer invloed van buitenaf. Ontwikkelaars die Samba mee wilden ontwikkelen en uitbreiden, schreven hun eigen stukken code en al snel ontstond er een team achter Samba.

Functionaliteit 
Samba zorgt ervoor dat gebruikers van een Windows-systeem toegang krijgen tot gedeelde bestanden en printers van een Unix-systeem en andersom. Uiteraard is er ook een authenticatiesysteem ingebouwd waardoor ongewilde gebruikers geen toegang krijgen. Dit was eerder niet mogelijk omdat Unix en Windows andere protocollen gebruikten om bestanden te delen in een lokaal netwerk (LAN). Samba vertaalt simpelweg het ene protocol zodat het verstaanbaar is voor het andere.

In een Windowsnetwerk krijgt elk systeem ook een NetBIOS-naam. Deze zorgt voor een alternatief voor het IP-adres. Samba zorgt er ook voor dat namen van de systemen in het netwerk worden opgehaald en geïdentificeerd.

De laatste stabiele versie van Samba is 4.0, al blijft het team achter Samba werk uitvoeren om de code te optimaliseren en eventuele nieuwe technologieën/protocols te ondersteunen.

Samba 4.0 
Volgende implementaties en verbeteringen zijn aanwezig in Samba 4.0:
 Ondersteuning voor de logon- en administratieprotocols van Active Directory
 Nieuwe testsuites
 Volledige NTFS-semantics voor delende back-ends
 Interne LDAP-server met AD-semantics
 Interne Kerberos-server met PAC-ondersteuning
 Flexibele procesmodellen
 Betere schaalbaarheid van kleine tot zeer grote installaties
 Nieuwe RPC-infrastructuur (PIDL)
 Flexibele database-architectuur (LDB)
 Embedded codetaal (ejs)
 Generic-veiligheidssysteem (GENSEC)
 Meer dan 50% automatisch gegenereerde code

In Samba 4.1 werd ondersteuning voor btrfs en versleuteld transport voor SMB3 toegevoegd.

Versies 
Het Samba-project onderhoudt meerdere uitgaveseries naast elkaar (zie onderhoudsversie). Momenteel zijn dit 3.0.x, 3.2.x, 3.3.x, 3.4.x en 4.0.x.

Enkele belangrijke versies in de geschiedenis van Samba:

Samba TNG 

Samba TNG (The Next Generation) werd geforkt eind 1999, na onenigheid tussen de Samba-ontwikkelaars en Luke Leighton over de richting van het Samba-project. Zij slaagden er niet in overeenstemming te bereiken over een ontwikkelingstransitiepad waardoor de onderzoeksversie van Samba die hij ontwikkelde (destijds bekend als Samba-NTDOM) langzaam kon worden geïntegreerd in Samba.

Sinds de start van het project is de ontwikkeling minimaal geweest door een gebrek aan ontwikkelaars. Als zodanig adviseerde het Samba TNG team regelmatig Samba te proberen omdat ze meer ontwikkelaars hebben en in staat zijn om meer platformen en situaties te ondersteunen.

Een van de belangrijkste doelstellingen van het Samba TNG project is het herschrijven van alle NT-domeinservices als FreeDCE-projecten.

Dit doel van herschrijven wordt bemoeilijkt door het feit dat alle netwerkdiensten handmatig zijn ontwikkeld via reverse engineering, met beperkte of geen verwijzing naar DCE/RPC-documentatie.

De belangrijkste verschillen tussen de twee programma's zijn de implementatie van de NT Domains suite van protocollen en MSRPC-diensten. Samba stelt alle NT Domains services beschikbaar vanaf één plaats, terwijl Samba TNG elke service in zijn eigen programma heeft gescheiden.

ReactOS begon met het gebruik van Samba TNG-diensten voor de implementatie van SMB. ReactOS-ontwikkelaars waren geïnteresseerd in het Samba TNG-ontwerp om ReactOS te laten communiceren met Windows-netwerken. De ontwikkelaars van beide projecten hebben samengewerkt om de netwerkcode aan te passen en het systeem te bouwen. De meerlagige en modulaire aanpak maakte het gemakkelijk om elke dienst over te zetten naar ReactOS.

Gezien de minimale ontwikkeling van Samba TNG is ReactOS in februari 2017 overgestapt op Samba zelf.

Gerelateerde software en protocollen 
 SMB
 Kerberos
 LinNeighborhood
 LDAP Account Manager

Externe link 
 Projectpagina

Netwerksoftware
Opensourcesoftware en vrije software
Linux
Software geschreven in C
Software geschreven in C++
Software geschreven in Python