
Im Im Verlauf des Kurses âEinfĂŒhrung in SSDâ haben wir die Geschichte der Entstehung von Festplatten behandelt. Der zweite Teil wird sich mit den Schnittstellen zur Interaktion mit den Speichermedien beschĂ€ftigen.
Die Kommunikation zwischen dem Prozessor und den PeripheriegerÀten erfolgt gemÀà vordefinierten Vereinbarungen, die als Schnittstellen bezeichnet werden. Diese Vereinbarungen regeln die physikalische und die softwareseitige Ebene der Interaktion.
Die Schnittstelle ist die Gesamtheit der Mittel, Methoden und Regeln fĂŒr die Interaktion zwischen den Elementen des Systems.
Die physikalische Realisierung der Schnittstelle beeinflusst die folgenden Parameter:
- die Bandbreite des Kommunikationskanals;
- die maximale Anzahl gleichzeitig angeschlossener GerÀte;
- die Anzahl der auftretenden Fehler.
Festplattenschnittstellen basieren auf Ein- und Ausgabepunkten, was das Gegenteil der Ein- und Ausgabe ĂŒber den Speicher ist und keinen Platz im Adressraum des Prozessors beansprucht.
Parallele und serielle AnschlĂŒsse
Nach der Art des Datenaustauschs werden die Ein- und Ausgabepunkte in zwei Typen unterteilt:
- parallele;
- serielle.
Wie der Name schon sagt, sendet ein paralleler Anschluss ein Maschinenwort, das aus mehreren Bits besteht, auf einmal. Der parallele Anschluss ist der einfachste Weg des Datenaustauschs, da er keine komplexen Schaltkreise erfordert. Im einfachsten Fall wird jedes Bit des Maschinenwortes ĂŒber seine eigene Signalleitung gesendet, wĂ€hrend fĂŒr die RĂŒckmeldung zwei Steuerleitungsleitungen verwendet werden: Daten bereit und Daten empfangen.
Parallele AnschlĂŒsse erscheinen auf den ersten Blick sehr skalierbar: mehr Signalleitungen â mehr Bits werden gleichzeitig ĂŒbertragen und somit auch eine höhere Bandbreite. Dennoch fĂŒhrt die Zunahme der Signalleitungen zu Interferenzen, die zu Verzerrungen der ĂŒbertragenen Nachrichten fĂŒhren.
Serielle AnschlĂŒsse sind das Gegenteil von parallelen. Der Versand von Daten erfolgt jeweils nur bitweise, was die Gesamtanzahl der Signalleitungen reduziert, aber den Eingabe-/Ausgangscontroller komplexer macht. Der Sendekontroller empfĂ€ngt das Maschinenwort auf einmal und muss es bitweise ĂŒbertragen, wĂ€hrend der Empfangskontroller seinerseits die Bits in der gleichen Reihenfolge empfangen und speichern muss.
Eine geringe Anzahl von Signalleitungen ermöglicht es, die Ăbertragungsfrequenz der Nachricht störungsfrei zu erhöhen.
SCSI

Die Small Computer Systems Interface (SCSI) wurde 1978 eingefĂŒhrt und ursprĂŒnglich entwickelt, um GerĂ€te verschiedener Profile in einem einzigen System zu verbinden. Die Spezifikation SCSI-1 sah die Verbindung von bis zu 8 GerĂ€ten (einschlieĂlich des Controllers) vor, wie zum Beispiel:
- Scanner;
- Bandlaufwerke (Streamer);
- optische Laufwerke;
- Festplatten und andere GerÀte.
UrsprĂŒnglich trug SCSI den Namen Shugart Associates System Interface (SASI), aber das Normungskomitee lehnte den Namen zu Ehren des Unternehmens ab, und nach einem Brainstorming-Tag entstand der Name Small Computer Systems Interface (SCSI). Der 'Vater' von SCSI, Larry Boucher, meinte, dass die AbkĂŒrzung ausgesprochen werden sollte wie 'sexy', aber las es als 'sŃuzzy' ('sŃazi'). In der Folge hat sich die Aussprache 'sŃazi' fest mit diesem Standard verbunden.
In der SCSI-Terminologie werden die angeschlossenen GerÀte in zwei Typen unterteilt:
- Initiatoren;
- ZielgerÀte.
Der Initiator sendet einen Befehl an das ZielgerÀt, das dann eine Antwort an den Initiator sendet. Initiatoren und ZielgerÀte sind an einem gemeinsamen SCSI-Bus angeschlossen, dessen Bandbreite im SCSI-1 Standard 5 MB/s betrÀgt.
Die verwendete Topologie 'gemeinsamer Bus' bringt eine Reihe von EinschrÀnkungen mit sich:
- am Ende des Busses sind spezielle GerĂ€te erforderlich â Terminatoren;
- die Bandbreite des Busses wird unter allen GerÀten aufgeteilt;
- die maximale Anzahl von gleichzeitig angeschlossenen GerÀten ist begrenzt.
GerÀte am Bus werden durch eine eindeutige Nummer identifiziert, die als SCSI Target IDbezeichnet wird. Jedes SCSI-GerÀt im System wird durch mindestens ein logisches GerÀt reprÀsentiert, dessen Adressierung durch eine eindeutige Nummer, die innerhalb des physischen GerÀts vergeben wird, erfolgt. Logical Unit Number (LUN).

Befehle in SCSI werden in Form von Befehlsbeschreibungsblöcken (Command Descriptor Block, CDB) gesendet, die aus einem Operationscode und Parametern des Befehls bestehen. Im Standard sind mehr als 200 Befehle beschrieben, die in vier Kategorien unterteilt sind:
- Obligatorisch â mĂŒssen vom GerĂ€t unterstĂŒtzt werden;
- Optional â können implementiert werden;
- Herstellerspezifisch â werden von bestimmten Herstellern verwendet;
- Veraltet â veraltete Befehle.
Unter den vielen Befehlen sind nur drei davon fĂŒr GerĂ€te obligatorisch:
- TEST UNIT READY â ĂberprĂŒfung, ob das GerĂ€t bereit ist;
- REQUEST SENSE â fragt den Fehlercode des vorherigen Befehls ab;
- INQUIRY â Abfrage der grundlegenden Eigenschaften des GerĂ€ts.
Nach Erhalt und Verarbeitung des Befehls sendet das ZielgerĂ€t einen Statuscode an den Initiator, der das Ergebnis der AusfĂŒhrung beschreibt.
Die weitere Verbesserung von SCSI (SCSI-2- und Ultra-SCSI-Spezifikationen) erweiterte die Liste der verwendeten Befehle und erhöhte die Anzahl der anschlieĂbaren GerĂ€te auf 16 sowie die DatenĂŒbertragungsrate ĂŒber den Bus auf 640 MB/s. Da SCSI eine parallele Schnittstelle ist, war die Erhöhung der DatenĂŒbertragungsfrequenz mit einer VerkĂŒrzung der maximalen KabellĂ€nge verbunden, was zu einer Unannehmlichkeit in der Nutzung fĂŒhrte.
Mit dem Ultra-3-SCSI-Standard wurde die UnterstĂŒtzung fĂŒr "Hot Plugging" eingefĂŒhrt â das AnschlieĂen von GerĂ€ten im eingeschalteten Zustand.
Die erste bekannte SSD mit SCSI-Schnittstelle kann als M-Systems FFD-350 angesehen werden, die 1995 veröffentlicht wurde. Die Festplatte hatte hohe Kosten und war nicht weit verbreitet.
Derzeit ist paralleles SCSI nicht mehr eine beliebte Schnittstelle fĂŒr den Anschluss von Festplatten, aber der Befehlssatz wird nach wie vor aktiv in USB- und SAS-Schnittstellen verwendet.
ATA / PATA

BenutzeroberflĂ€che ATA (Advanced Technology Attachment), auch bekannt als PATA (Parallel ATA) wurde 1986 von Western Digital entwickelt. Der Marketingname des Standards IDE (Integrated Drive Electronics â "Elektronik, die in das Laufwerk eingebaut ist") unterstrich die wichtige Neuerung: Der Laufwerkscontroller war in das Laufwerk integriert und nicht auf einer separaten Erweiterungskarte.
Die Entscheidung, den Controller im Laufwerk zu platzieren, löste mehrere Probleme auf einmal. Erstens verringerte sich der Abstand vom Speicher zum Controller, was sich positiv auf die Leistung des Speichers auswirkte. Zweitens war der integrierte Controller nur auf einen bestimmten Typ von Laufwerk optimiert und somit gĂŒnstiger.

ATA verwendet, wie SCSI, einen parallelen Eingabe-Ausgabe-Modus, was sich in den verwendeten Kabeln widerspiegelt. FĂŒr den Anschluss von Festplatten mit der IDE-Schnittstelle sind 40-polige Kabel erforderlich, die auch als Flachbandkabel bezeichnet werden. In den neueren Spezifikationen werden 80-polige Flachbandkabel verwendet, von denen mehr als die HĂ€lfte zur Erdung dient, um Interferenzen bei hohen Frequenzen zu reduzieren.
An dem ATA-Flachbandkabel gibt es zwei bis vier AnschlĂŒsse, von denen einer an das Motherboard angeschlossen wird und die anderen an die Speicherlaufwerke. Wenn zwei GerĂ€te mit einem Kabel angeschlossen werden, muss eines von ihnen als Master, und das andere als Slave. Das dritte GerĂ€t kann ausschlieĂlich im Modus âNur Lesenâ angeschlossen werden.
Die Position des Jumpers bestimmt die Rolle des jeweiligen GerÀts. Die Begriffe Master und Slave sind im Hinblick auf die GerÀte nicht ganz korrekt, da alle angeschlossenen GerÀte relativ zum Controller Slaves sind.
Eine besondere Neuerung in ATA-3 ist das Erscheinen Self-Monitoring, Analysis and Reporting Technology (S.M.A.R.T.). FĂŒnf Unternehmen (IBM, Seagate, Quantum, Conner und Western Digital) haben ihre KrĂ€fte gebĂŒndelt und die Technologie zur Bewertung des Zustands von Speichermedien standardisiert.
Die UnterstĂŒtzung fĂŒr Solid-State-Laufwerke kam mit der vierten Version des Standards, die 1998 veröffentlicht wurde. Diese Version des Standards gewĂ€hrleistete eine DatenĂŒbertragungsrate von bis zu 33,3 MB/s.
Der Standard stellt strenge Anforderungen an die ATA-Kabel:
- Das Kabel muss unbedingt flach sein;
- Die maximale KabellÀnge betrÀgt 18 Zoll (45,7 Zentimeter).
Ein kurzes und breites Kabel war unpraktisch und störte die KĂŒhlung. Es wurde zunehmend schwieriger, die Ăbertragungsfrequenz mit jeder neuen Version des Standards zu steigern, und ATA-7 entschloss sich zu einer radikalen Lösung: Die parallele Schnittstelle wurde durch eine serielle ersetzt. Danach erhielt ATA das Wort Parallel und wurde PATA genannt, wĂ€hrend die siebte Version des Standards einen anderen Namen erhielt â Serial ATA. Die Nummerierung der SATA-Versionen begann bei eins.
SATA

Der Serial ATA-Standard (SATA) wurde am 7. Januar 2003 vorgestellt und löste die Probleme seines VorgĂ€ngers durch folgende Ănderungen:
- Der parallele Port wurde durch einen seriellen ersetzt;
- Das breite 80-adrige Kabel wurde durch ein 7-adriges ersetzt;
- Die Topologie âgemeinsame Busâ wurde durch eine Punkt-zu-Punkt-Verbindung ersetzt.
Obwohl der SATA 1.0-Standard (SATA/150, 150 MB/s) nur geringfĂŒgig schneller war als ATA-6 (UltraDMA/130, 130 MB/s), war der Ăbergang zur seriellen DatenĂŒbertragung eine âVorbereitung des Bodensâ fĂŒr höhere Geschwindigkeiten.
Die sechzehn Signalleitungen fĂŒr die DatenĂŒbertragung in ATA wurden durch zwei verdrillte Paare ersetzt: eines fĂŒr die Ăbertragung, das andere fĂŒr den Empfang. Die SATA-Stecker sind so konstruiert, dass sie gegenĂŒber mehrfachen Wiederverbindungen widerstandsfĂ€higer sind, und die Spezifikation SATA 1.0 ermöglichte das âHot Pluggingâ.
Einige Pins an den Laufwerken sind kĂŒrzer als alle anderen. Dies wurde zur UnterstĂŒtzung des âHot Swappingâ (Hot Swap) gemacht. Beim Austausch âverliertâ das GerĂ€t die Leitungen und âfindetâ sie in einer festgelegten Reihenfolge wieder.
Etwas mehr als ein Jahr spĂ€ter, im April 2004, wurde die zweite Version der SATA-Spezifikation veröffentlicht. Neben der Erhöhung auf 3 Gbit/s fĂŒhrte SATA 2.0 die Technologie Native Command Queuing (NCQ) ein. GerĂ€te, die NCQ unterstĂŒtzen, sind in der Lage, die Reihenfolge der auszufĂŒhrenden Befehle selbststĂ€ndig zu organisieren, um die maximale Leistung zu erreichen.
In den folgenden drei Jahren arbeitete die SATA Working Group daran, die bestehende Spezifikation zu verbessern, und in Version 2.6 wurden kompakte AnschlĂŒsse wie Slimline und micro SATA (uSATA) eingefĂŒhrt. Diese AnschlĂŒsse sind verkleinerte Kopien des originalen SATA-Anschlusses und wurden fĂŒr optische Laufwerke und kleine Festplatten in Laptops entwickelt.
Trotz der ausreichenden Bandbreite der zweiten Generation von SATA fĂŒr Festplatten benötigten Solid-State-Laufwerke mehr. Im Mai 2009 wurde die dritte Version der SATA-Spezifikation mit einer erhöhten Bandbreite von 6 Gbit/s veröffentlicht.
Besonderes Augenmerk wurde den Solid-State-Laufwerken in der Revision SATA 3.1 gewidmet. Ein Mini-SATA-Anschluss (mSATA) wurde eingefĂŒhrt, der fĂŒr den Anschluss von Solid-State-Laufwerken in Laptops vorgesehen ist. Im Gegensatz zu Slimline und uSATA war der neue Anschluss dem PCIe Mini Ă€hnlich, jedoch nicht elektrisch mit PCIe kompatibel. Neben dem neuen Anschluss konnte SATA 3.1 mit der Möglichkeit prahlen, TRIM-Befehle zusammen mit Lese- und Schreibbefehlen in die Warteschlange einzureihen.
Der TRIM-Befehl benachrichtigt das Solid-State-Laufwerk ĂŒber Datenblöcke, die keine nĂŒtzlichen Informationen enthalten. Bis SATA 3.1 fĂŒhrte die AusfĂŒhrung dieses Befehls zu einem RĂŒcksetzen der Caches und einer Unterbrechung der E/A-VorgĂ€nge, gefolgt von der AusfĂŒhrung des TRIM-Befehls. Dieser Ansatz beeintrĂ€chtigte die Leistung der Festplatte bei LöschvorgĂ€ngen.
Die SATA-Spezifikation konnte mit dem rasanten Anstieg der Zugriffszeiten bei Solid-State-Laufwerken nicht Schritt halten, was 2013 zur EinfĂŒhrung eines Kompromisses namens SATA Express im Standard SATA 3.2 fĂŒhrte. Anstatt die Bandbreite von SATA erneut zu verdoppeln, setzten die Entwickler auf den weit verbreiteten PCIe-Bus, dessen Geschwindigkeit 6 Gbit/s ĂŒbersteigt. Laufwerke mit UnterstĂŒtzung fĂŒr SATA Express erhielten einen eigenen Formfaktor namens M.2.
SAS

Der "konkurrierende" Standard SCSI stand ebenfalls nicht still und entwickelte sich nur ein Jahr nach dem Erscheinen von Serial ATA, im Jahr 2004, zu einer seriellen Schnittstelle weiter. Der neuen Schnittstelle wurde der Name Serial Attached SCSI (SAS) zugewiesen.
Trotz der Tatsache, dass SAS ein Set von SCSI-Befehlen ĂŒbernommen hat, waren die Ănderungen erheblich:
- serielle Schnittstelle;
- 29-adriges Kabel mit Stromversorgung;
- Punkt-zu-Punkt-Verbindung
Die Terminologie von SCSI wurde ebenfalls ĂŒbernommen. Der Controller wird nach wie vor als Initiator bezeichnet, wĂ€hrend die angeschlossenen GerĂ€te als Ziele bezeichnet werden. Alle ZielgerĂ€te und der Initiator bilden eine SAS-DomĂ€ne. Bei SAS hĂ€ngt die Bandbreite der Verbindung nicht von der Anzahl der GerĂ€te in der DomĂ€ne ab, da jedes GerĂ€t seinen eigenen dedizierten Kanal nutzt.
Die maximale Anzahl gleichzeitig angeschlossener GerĂ€te in einer SAS-DomĂ€ne ĂŒberschreitet laut Spezifikation 16.000, und anstelle von SCSI-ID zur Adressierung wird eine Identifikation verwendet. World-Wide Name (WWN).
WWN ist eine eindeutige Identifizierung mit einer LĂ€nge von 16 Byte, die dem MAC-Adresse fĂŒr SAS-GerĂ€te Ă€hnelt.
Trotz der Ăhnlichkeit der AnschlĂŒsse von SAS und SATA sind diese Standards nicht vollstĂ€ndig kompatibel. Dennoch kann eine SATA-Festplatte an einen SAS-Anschluss angeschlossen werden, jedoch nicht umgekehrt. Die KompatibilitĂ€t zwischen SATA-Festplatten und der SAS-DomĂ€ne wird durch das SATA Tunneling Protocol (STP) gewĂ€hrleistet.
Die erste Version des Standards SAS-1 hat eine Bandbreite von 3 Gbit/s, wÀhrend die modernste Version, SAS-4, diesen Wert um das Siebenfache auf 22,5 Gbit/s erhöht hat.
PCIe

Peripheral Component Interconnect Express (PCI Express, PCIe) ist eine serielle Schnittstelle zur Ăbertragung von Daten, die 2002 eingefĂŒhrt wurde. Die Entwicklung wurde von Intel begonnen und spĂ€ter an eine spezielle Organisation, die PCI Special Interest Group, ĂŒbergeben.
Die serielle Schnittstelle PCIe ist keine Ausnahme und stellt eine logische Fortsetzung des parallelen PCI dar, das fĂŒr den Anschluss von Erweiterungskarten gedacht ist.
PCI Express unterscheidet sich erheblich von SATA und SAS. Die PCIe-Schnittstelle hat eine variable Anzahl von Leitungen. Die Anzahl der Leitungen entspricht den Potenzen von zwei und variiert im Bereich von 1 bis 16.
Der Begriff âLeitungâ in PCIe bezieht sich nicht auf eine spezifische Signalleitung, sondern auf einen separaten vollduplexen Kommunikationskanal, der aus folgenden Signalleitungen besteht:
- Empfang+ und Empfang-;
- Ăbertragung+ und Ăbertragung-;
- vier Erdleitungen.
Die Anzahl der PCIe-Leitungen beeinflusst direkt die maximale Bandbreite der Verbindung. Der moderne Standard PCI Express 4.0 ermöglicht eine Ăbertragungsrate von 1,9 GByte/s pro Leitung und 31,5 GByte/s bei Verwendung von 16 Leitungen.

Die âAppetitenâ der Solid-State-Laufwerke wachsen sehr schnell. Weder SATA noch SAS schaffen es, ihre Bandbreite zu erhöhen, um mit SSDs Schritt zu halten, was zur Entwicklung von SSD-Laufwerken mit PCIe-Anschluss fĂŒhrte.
Obwohl PCIe Add-In-Karten mit Schrauben befestigt werden, unterstĂŒtzt PCIe âHot-Swapâ. Kurze Pins PRSNT (engl. present â anwesend) gewĂ€hrleisten, dass die Karte vollstĂ€ndig im Slot installiert ist.
Solid-State-Laufwerke, die ĂŒber PCIe angeschlossen werden, werden durch einen speziellen Standard geregelt. Spezifikation fĂŒr die Host-Controller-Schnittstelle fĂŒr nichtflĂŒchtige Speicher. Sie sind in einer Vielzahl von Formfaktoren implementiert, ĂŒber die wir im nĂ€chsten Teil berichten werden.
Entfernte Speicher
Mit der Schaffung groĂer Datenspeicher entstand die Notwendigkeit fĂŒr Protokolle, die es ermöglichen, SpeichergerĂ€te auĂerhalb des Servers zu verbinden. Die erste Lösung in diesem Bereich war Internet SCSI (iSCSI), entwickelt von IBM und Cisco im Jahr 1998.
Die Idee des iSCSI-Protokolls ist einfach: SCSI-Befehle werden in TCP/IP-Pakete âverpacktâ und ĂŒber das Netzwerk ĂŒbertragen. Trotz der Remote-Verbindung entsteht fĂŒr die Kunden die Illusion, dass das SpeichergerĂ€t lokal angeschlossen ist. Ein Storage Area Network (SAN), das auf iSCSI basiert, kann auf der bestehenden Netzwerk-Infrastruktur aufgebaut werden. Der Einsatz von iSCSI senkt die Kosten erheblich fĂŒr die Einrichtung von SAN.
Es gibt eine âPremiumâ-Version von iSCSI â Fibre Channel Protocol (FCP). Ein SAN, das FCP verwendet, wird ĂŒber dedizierte Glasfaserverbindungen aufgebaut. Dieser Ansatz erfordert zusĂ€tzliches optisches Netzwerk-Equipment, bietet jedoch StabilitĂ€t und hohe Bandbreite.
Es gibt viele Protokolle zum Senden von SCSI-Befehlen ĂŒber Computernetzwerke. Es gibt jedoch nur einen Standard, der das entgegengesetzte Szenario löst und es ermöglicht, IP-Pakete ĂŒber den SCSI-Bus zu senden â .
Die meisten Protokolle zur Einrichtung von SAN verwenden den SCSI-Befehlssatz zur Verwaltung von Speichermedien, es gibt jedoch Ausnahmen, wie beispielsweise das einfache ATA over Ethernet (AoE). Das AoE-Protokoll sendet ATA-Befehle in Ethernet-Paketen, aber im System werden die SpeichergerÀte als SCSI angezeigt.
Mit dem Aufkommen von NVM Express sind die Protokolle iSCSI und FCP nicht mehr in der Lage, den schnell wachsenden Anforderungen an Solid-State-Laufwerke gerecht zu werden. Es wurden zwei Lösungen entwickelt:
- das Auslagern des PCI Express-Busses auĂerhalb des Servers;
- die Schaffung des Protokolls NVMe over Fabrics.
Die Verwendung von PCIe ist mit der Schaffung komplexer Switching-Hardware verbunden, Àndert jedoch das Protokoll nicht.
Das NVMe over Fabrics-Protokoll stellt eine gute Alternative zu iSCSI und FCP dar. Bei NVMe-oF werden Glasfaserverbindungen und der NVM Express-Befehlssatz verwendet.
DDR-T

Die Standards iSCSI und NVMe-oF lösen das Problem der Verbindung von Remote-Disks als lokale, wĂ€hrend Intel einen anderen Weg einschlug und das lokale Laufwerk so nah wie möglich an die CPU brachte. Die Wahl fiel auf DIMM-SteckplĂ€tze, in die der Arbeitsspeicher eingesteckt wird. Die maximale Bandbreite des DDR4-Kanals betrĂ€gt 25 GB/s, was die Geschwindigkeit des PCIe-Busses erheblich ĂŒbersteigt. So entstand der IntelÂź Optaneâą DC Persistent Memory-Speicher.
Um das Laufwerk in DIMM-SteckplĂ€tze einzuschlieĂen, wurde ein Protokoll erfunden DDR-T, das physisch und elektrisch mit DDR4 kompatibel ist, jedoch einen speziellen Controller benötigt, der den Unterschied zwischen einem Speicher-Riegel und einem Laufwerk erkennt. Der Zugriff auf das Laufwerk ist langsamer als auf den Arbeitsspeicher, aber schneller als auf NVMe.
Das DDR-T-Protokoll ist nur mit IntelÂź Prozessoren der Cascade Lake-Generation oder neuer verfĂŒgbar.
Fazit
Fast alle Schnittstellen haben einen langen Entwicklungsweg vom seriellen zum parallelen Datentransfer zurĂŒckgelegt. Die Geschwindigkeiten von Solid State Drives wachsen rasant; noch gestern waren SSDs eine Neuheit, heute sorgt NVMe nicht mehr fĂŒr groĂes Staunen.
In unserem Labor Sie können SSDs und NVMe-Laufwerke selbst testen.
Nur registrierte Benutzer können an der Umfrage teilnehmen. .
Werden die NVMe-Laufwerke klassisches SSD in naher Zukunft verdrÀngen?
55.5%Ja100
44.4%Nein80
180 Benutzer haben abgestimmt. 28 Benutzer haben sich enthalten.
Quelle: habr.com
