Was sind einige Ressourcen für den Einstieg in die Betriebssystementwicklung? [geschlossen]


589

Eine Sache, die ich schon immer machen wollte, ist mein eigenes Betriebssystem zu entwickeln (nicht unbedingt schick wie Linux oder Windows, aber besser als ein einfacher Bootloader, den ich bereits gemacht habe).

Es fällt mir schwer, Ressourcen / Anleitungen zu finden, die Sie daran hindern, ein einfaches "Hello World" -Betriebssystem zu schreiben.

Ich weiß, dass viele Leute wahrscheinlich empfehlen werden, sich Linux oder BSD anzuschauen. Aber die Codebasis für solche Systeme ist (vermutlich) so groß, dass ich nicht wissen würde, wo ich anfangen soll.

Irgendwelche Vorschläge?

Update: Um es den Nutzern zu erleichtern, die über Google auf diesem Beitrag landen, finden Sie hier einige Ressourcen zur Betriebssystementwicklung:

Andere Ressourcen:

Ich fand eine nette Ressource namens MikeOS : "MikeOS ist ein Lernwerkzeug, um zu demonstrieren, wie einfache Betriebssysteme funktionieren. Es verwendet den 16-Bit-Real-Modus für den BIOS-Zugriff, sodass keine komplexen Treiber benötigt werden."

Aktualisiert am 14.11.08

Ich habe einige Ressourcen in Freebyte's Guide to ... Free und non-free Operating Systems gefunden , die auf Kits wie OSKit und ExOS Library verweisen. Diese scheinen sehr nützlich für den Einstieg in die Betriebssystementwicklung zu sein.

Aktualisiert am 23.02.09

Ric Tokyo hat in dieser Frage Nanoos empfohlen . Nanoos ist ein in C ++ geschriebenes Betriebssystem.

Aktualisiert am 09.03.09

Dinah lieferte einige nützliche Stack Overflow-Diskussionen über aufstrebende Betriebssystementwickler: Roadblocks beim Erstellen eines benutzerdefinierten Betriebssystems erläutern, auf welche Fallstricke Sie beim Entwickeln eines Betriebssystems stoßen können, und die Betriebssystementwicklung ist eine allgemeinere Diskussion.

Aktualisiert am 09.07.09

LB stellte einen Link zum Pintos-Projekt bereit , einem Bildungsbetriebssystem, das für Schüler entwickelt wurde, die die Entwicklung von Betriebssystemen lernen.

Aktualisiert 27.07.09 (Immer noch stark!)

Ich bin auf einen Online-OS-Kurs von Berkley mit 23 Vorträgen gestoßen .

TomOS ist eine Abzweigung von MikeOS , die einen kleinen Speichermanager und Mausunterstützung enthält. Als MikeOS ist es als Bildungsprojekt konzipiert. Es ist in NASM Assembler geschrieben.

Aktualisiert am 04.08.09

Ich fand die Folien und andere Materialien , die zu den oben aufgeführten Online-Vorlesungen in Berkeley passen.

Aktualisiert am 23.08.09

Alle Fragen mit dem Tag osdev on stackoverflow

OS / 161 ist ein in c geschriebenes akademisches Betriebssystem, das auf einer simulierten Hardware ausgeführt wird. Dieses Betriebssystem ist in Nachos ähnlich. Danke Novelocrat!

tangurena empfiehlt http://en.wikipedia.org/wiki/MicroC/OS-II , ein Betriebssystem für eingebettete Systeme. Es gibt auch ein Begleitbuch .

Die Linux-Kernel-Entwicklung von Robert Love wird von Anders vorgeschlagen. Es ist ein "weithin anerkannter Insider-Blick auf den Linux-Kernel".

Aktualisiert am 18.09.2009

Vielen Dank an Tim S. Van Haren, der uns von Cosmos erzählt hat , einem Betriebssystem, das vollständig in c # geschrieben wurde.

tgiphil berichtet über das MOSA-Framework (Managed Operating System Alliance) , "eine Reihe von Tools, Spezifikationen und Quellcode zur Förderung der Entwicklung verwalteter Betriebssysteme auf der Basis der Common Intermediate Language".

Update 24.09.2009

Steve hat einige Ressourcen für die Entwicklung unter Windows mit Visual Studio gefunden. Lesen Sie das Setup des BrokenThorn-Handbuchs mit VS 2005 oder den VS-Abschnitt von OSDev .

Aktualisiert am 05.09.2012

kerneltrap.org ist nicht mehr verfügbar. Das Linux - Kernel v0.01 ist von kernel.org

Aktualisiert 21.12.2012 Ein grundlegendes Tutorial zur Betriebssystementwicklung , das als Semesterprojekt konzipiert wurde. Es führt Sie durch die Erstellung eines Betriebssystems mit grundlegenden Komponenten. Sehr guter Start für Anfänger. Verwandte Artikel . Danke Srujan!

Aktualisiert am 15.11.2013

Ein einfaches Betriebssystem von Grund auf neu schreiben . Danke James Moore!

Aktualisiert am 08.12.2013

Wie erstelle ich ein Computer-Betriebssystem ? Danke ddtoni!

Aktualisiert am 18.03.2014

ToAruOS ist ein Betriebssystem, das größtenteils von Grund auf neu erstellt wurde, einschließlich der grafischen Benutzeroberfläche

Aktualisiert am 12. September 2016

Schreiben Sie Ihr eigenes Spielzeug-Betriebssystem

Aktualisiert am 10. Dezember 2016

Schreiben eines einfachen Betriebssystems - von Grund auf neu (danke @Tyler C)


5
Vergessen Sie nicht forums.osdever.net
Brenden

15
Warum sind diese Art von guten allgemeinen Fragen bei SO immer geschlossen?
Pratik Singhal

30
Diese Frage hat 370 Upvotes, wurde 422 Mal upvoted und gibt es seit dem ersten Start von StackOverflow. Die Community scheint es gemocht zu haben, aber aus irgendeinem Grund müssen eine Handvoll Leute es für alle ruinieren. Deshalb
fange

1
Es gibt einen sehr interessanten Trend bei Unikernels (machen Sie nur eines und machen Sie es gut), wo diese Bemühungen sehr relevant sind. Normalerweise können Sie einen Unikernel in einer virtuellen Maschine kalt starten und den Benutzercode in weniger als einer Sekunde ausführen. Ich habe eine Lösung gesehen, bei der nur die DNS-Suche nach einem solchen Dienst den DNS-Server dazu veranlasst, eine "virtuelle Startmaschine" auszulösen, damit er bereit ist, wenn die eigentliche Anforderung für den Dienst eingeht.
Thorbjørn Ravn Andersen

Antworten:


95

Nach dieser kurzen Übersicht über das Schreiben eines Betriebssystems für die X86-Plattform gibt es viele Links .

Der vielversprechendste Link (www.nondot.org/sabre/os/articles) ist nicht mehr verfügbar. Sie müssen daher die Archive.org-Version durchsehen , um ihn zu lesen.

Am Ende des Tages nimmt der Bootloader den Maschinencode des Kernels, speichert ihn und springt dorthin. Sie können jeden gewünschten Maschinencode in den Kernel einfügen, aber die meisten C-Programme erwarten ein Betriebssystem. Daher müssen Sie Ihrem Compiler mitteilen, dass er nicht über all das verfügt, oder der Bootloader muss einen Teil davon erstellen.

Der Kernel erledigt dann das ganze schwere Heben, und ich vermute, es ist der Beispielkernel, den Sie wollen. Es ist jedoch ein langer Weg zwischen einem Kernel mit der Aufschrift "Hallo Welt" und einem Kernel, der einen Befehlsinterpreter lädt, Festplattendienste bereitstellt und Programme lädt und verwaltet.

Vielleicht möchten Sie ACM abonnieren, um Zugang zu älterer Literatur zu erhalten. In den frühen 80er und frühen 90er Jahren finden Sie in frühen Computermagazinen zahlreiche Artikel zum Erstellen alternativer Betriebssysteme . Es gibt wahrscheinlich auch Bücher, die aus dieser Zeit vergriffen sind. Möglicherweise können Sie dieselben Informationen kostenlos abrufen, indem Sie die Indexe dieser Magazine (die auf dieser Website verfügbar sind - klicken Sie auf "Index" neben dem Namen des Magazins) nachschlagen und dann nach Personen mit einer Kopie fragen.

Schließlich weiß ich, dass Usenet tot ist (so sagen die Propheten des Internet-Untergangs), aber Sie werden feststellen, dass viele der schroffen alten Experten aus dieser Zeit immer noch dort leben. Sie sollten nach Google-Gruppen suchen (sie haben das alte Repository von dejanews), und ich gehe davon aus, dass Sie vor einem Jahrzehnt oder vor 1,5 Jahren viele Leute finden werden, die dieselben Fragen stellen wie jetzt. Sie können sogar auf Linus Torvalds 'viele Fragen zur Hilfe stoßen, als er ursprünglich Linux entwickelte. Wenn bei Suchvorgängen nichts angezeigt wird, fragen Sie in der entsprechenden Newsgroup nach (beginnt wahrscheinlich mit comp.arch, sucht aber nach Suchanfragen mit Betriebssystem im Namen).


Hey Sir, ist COSMOS ein gutes Werkzeug, um ein Betriebssystem zu entwickeln?
Vikas Verma

@ VikasVerma Ich habe es nicht benutzt, also weiß ich es nicht.
Adam Davis

@AdamDavis Der erste Link ist unterbrochen (und die anderen scheinen es auch zu sein). Bitte reparieren Sie sie!
nbro

35

Minix ist viel kleiner und für Lernzwecke konzipiert, und das dazugehörige Buch ist auch gut.

Update: Ich denke, Minix 3 ist ein etwas anderes Ziel, aber Minix 2 (und natürlich die erste Version) waren für Unterrichtszwecke.


Ich habe das neueste Tanenbaum-Buch, aber der Minix3-Quellcode sieht verdammt groß aus! Ich habe ein ähnliches Ziel wie das OP, obwohl ich keinen Kernel von Grund auf neu erstellen möchte, möchte ich wirklich verstehen, wie ein Kernel funktioniert und was er tut. Wird es Tanenbaum book and minix3mir irgendwann helfen, zum Linux-Kernel beizutragen, wenn ich genug Änderungen an minix3 vornehme?
Gideon

32

Als jemand, der ein Echtzeit-Multitasking-Betriebssystem von Grund auf neu geschrieben hat ...

Tastaturentprellungsroutine, Tastaturtreiber, Festplattentreiber, Videotreiber, Dateisystem und schließlich ein Bootloader - und das nur, um es zum ersten Mal zu starten, ohne etwas zu tun!

... Ich kann gar nicht genug betonen, wie wichtig es ist, sich mit der Hardware vertraut zu machen! Dies gilt insbesondere dann, wenn Sie wirklich alles selbst erledigen möchten, anstatt nur ein primitives System aufzunehmen, das bereits jemand anderes für Sie ausgelegt hat. Wenden Sie sich beispielsweise an Intel und fragen Sie nach einer CPU-Karte für Ihren CPU-Typ! Dies wird es für Sie auslegen - die "Pin-Outs", Interrupts, Opcodes, Sie nennen es!

Denken Sie daran, dass die Hardware alles möglich macht. Studieren Sie die Hardware. Du wirst es nicht bereuen.

.


18

Schreiben Sie ein Mikrocontroller-Betriebssystem. Ich empfehle einen x86-basierten Mikrocontroller. Ein modernes Betriebssystem ist einfach riesig . Lerne zuerst die Grundlagen.


2
Irgendwelche Ideen, wo ich mit diesem anfangen soll? Ich bin sehr interessiert? Welches Kit zu kaufen ... Bücher, um Sie zu starten usw.
Julio

@ Onkel: Ich habe bisher kein erstklassiges Buch über eingebettete Systeme gefunden. Entweder sind sie zu hoch und setzen ein Betriebssystem voraus, oder sie richten sich an einen Elektrotechniker und ignorieren den Code. Bei Kits findet ein Google eine " bifferos.bizhat.com ". Es gibt auch ARM-Kits. Ich persönlich mag Harvard-Architekturen nicht, daher interessiere ich mich nicht für Arduino, aber es ist das beliebteste. Für exotischere Arbeiten ist der XC-1A auch schön.
Paul Nathan

@Paul würde sich freuen, wenn Sie Ihre Antwort erweitern könnten. Ich habe mir AVR und Arduino angesehen, aber kürzlich .NET Micro gesehen. Ich bin zu sehr ein LOB-Typ mit höherer Abstraktion, aber ich möchte anfangen, den Stapel hinunterzugehen. Wo empfehlen Sie den Start?
Gideon

@giddy: Die AVRs sind die aktuelle Modeerscheinung. Sie sind klein und billig, aber ich mag die Architektur nicht wirklich. Ich würde empfehlen, ein ARM-Entwicklungskit zu kaufen (Kosten ca. 100). Sie sind in kommerziellen Anwendungen beliebt.
Paul Nathan

@ Paul danke! Ich habe nicht viel über ARM gehört. Was ist mit .net micro? Ich mache mir ein bisschen Sorgen, etwas zu verbrennen. Die meisten Kits werden mit einer Anleitung geliefert, oder? Danke noch einmal.
Gideon

16

Ich wünschte, es gäbe einen Ort, an dem Sie alle Informationen zur Entwicklung Ihres eigenen Betriebssystems erhalten könnten. Am nächsten dran sind OS Dev Wiki und Foren . Sie bieten eine Menge guter Informationen zu Setup, Entwicklung und Gerätehardware.

Außerdem gibt es bei BoneFide einige großartige Tutorials . Ich habe das Tutorial für den Einstieg von Bran verwendet und schaue mir jetzt ein neueres an, das auf seinem UNIX-Klon-Betriebssystem Roll your own toy basiert .

Ich checkte zum zweiten Mal aus: "Betriebssysteme: Design und Implementierung"

Und wenn Sie unter Windows entwickeln möchten, lesen Sie den Blog-Beitrag von jolson .

Bearbeiten: Informationen zur Entwicklung unter Windows mit Visual Studio finden Sie im BrokenThorn-Handbuch oder im OSDev-Wiki .


1
Verwandte: SOs x86-Tag-Wiki enthält Links zu Intel / AMD-Handbüchern und viele gute Dinge.
Peter Cordes

15

Eine hervorragende Ressource ist das Material des MIT-Kurses 6.828: Operating System Engineering.

XV6 - einfaches Unix-ähnliches Lernbetriebssystem, geschrieben in ANSI C für x86 http://pdos.csail.mit.edu/6.828/2012/xv6.html

XV6-Quelle - als gedruckte Broschüre mit Zeilennummern http://pdos.csail.mit.edu/6.828/2012/xv6/xv6-rev7.pdf

XV6 Buch - erklärt die Hauptideen von OS Design http://pdos.csail.mit.edu/6.828/2012/xv6/book-rev7.pdf

Das Material ist kompakt: 92 Seiten Quelle und 96 Seiten Kommentar.

Ich mag es mehr als das Minix-Buch! Es ist ein wahres Juwel!



9

Es gibt gute Ressourcen für die Grundlagen des Betriebssystems in Büchern. Da es nicht viel Zeit gibt, neue Betriebssysteme von Grund auf neu zu erstellen, finden Sie im Internet nicht viele Informationen vom Typ Hobbyist.

Ich empfehle das Standardlehrbuch "Modern Operating Systems" von Tanenbaum. Möglicherweise finden Sie auch "Betriebssystemelemente" von Calingaert nützlich - es ist eine dünne Übersicht über ein Buch, die eine grobe Skizze darüber gibt, was ein Betriebssystem aus der Sicht eines Designers ist.

Wenn Sie Interesse an Echtzeitsystemen haben (und zumindest die Unterschiede und Gründe für Echtzeitbetriebssysteme verstehen sollten), würde ich auch "MicroC / OS-II" von Labrosse empfehlen.

Bearbeiten:

Können Sie angeben, was Sie unter "technischer" verstehen? Diese Bücher enthalten Details zur Implementierung von Pseudocode. Suchen Sie jedoch nach einem Beispielbetriebssystem oder nach Codefragmenten für eine bestimmte Maschine / Sprache?

-Adam


7

Ich komme nur von einer anderen Frage. Ich möchte Pintos erwähnen ... Ich erinnerte mich, dass mein Betriebssystemkurs mit Nachos und Pintos die gleiche Art von Dingen zu sein scheint, die auf x86 ausgeführt werden können.


7

Ich fand die Linux-Kernel-Entwicklung von Robert Love ziemlich interessant. Hier erfahren Sie, wie die verschiedenen Subsysteme im Linux-Kernel sehr bodenständig funktionieren. Da die Quelle verfügbar ist, ist Linux ein Hauptkandidat für etwas, auf das man sich hacken kann.



6

In meinem Bachelor-Studiengang für Betriebssysteme haben wir eine Reihe von Subsystemen für OS / 161 erstellt , einen einfachen, BSD-ähnlichen Kernel, der einige der Grundlagen bietet und gleichzeitig die Freiheit lässt, verschiedene Entscheidungen zum Entwurfsraum bei der Implementierung übergeordneter Dienste zu untersuchen.


6

Fangen Sie an, sich bei Minix zu hacken. Es ist viel kleiner als Linux (offensichtlich) und wurde für Unterrichtszwecke entwickelt (zumindest einige). Nicht Minix 3, das ist eine ganz andere Geschichte.


5

Ich antworte bereits, aber als ich im College Betriebssysteme studierte, begannen wir mit einem frühen Linux-Kernel und fügten vereinfachte moderne Funktionen hinzu (grundlegende Dateisysteme, virtueller Speicher, Multitasking, Mutexe). Viel Spaß. Sie können einige der WIRKLICH verrückten Low-Level-Assembly-Dinge überspringen, die nur zum Mucking mit geschütztem Modus und Seitentabellen gedacht sind, während Sie noch einige der Eingeweide gelernt haben.

http://kerneltrap.org/node/14002 http://kerneltrap.org/files/linux-0.01.tar.bz2


4

Vielleicht möchten Sie sich linuxfromscratch ansehen .

Linux From Scratch (LFS) ist ein Projekt, das Ihnen schrittweise Anweisungen zum Erstellen Ihres eigenen benutzerdefinierten Linux-Systems vollständig aus dem Quellcode bietet.


32
Das Kompilieren eines Betriebssystems ist weit davon entfernt, eines zu schreiben.
Abenddämmerung -inaktiv-

7
@duskwuff Du hast recht, aber du wirst viel daraus lernen. Dann können Sie fortfahren und Ihre eigenen schreiben.
JFS

4

Ein einfaches und grundlegendes Tutorial zur Betriebssystementwicklung , das als Semesterprojekt konzipiert wurde. Es führt Sie durch die Erstellung eines Betriebssystems mit grundlegenden Komponenten. Sehr guter Start für Anfänger. Zugehöriges Papier ist hier .


Großartige Ressourcen. Das Papier bezieht sich auf Nachos (2500 Codezeilen), OS / 161 (11000), MINIX (30000), GeekOS. Gehen Sie zu jeder offiziellen Seite der Universität und Sie finden Quellcode, Simulator und Tools sowie die Aufgaben pro Jahr.
Limitcracker



3

Schauen Sie sich das MOSA-Projekt (Managed Operating System Alliance) unter www.mosa-project.org an . Sie entwerfen einen AOT / JIT-Compiler und ein vollständig verwaltetes Betriebssystem in C #. Einige der Entwickler stammen aus dem inaktiven SharpOS-Projekt.


3

Ich habe mit Cosmos gespielt , einem "Betriebssystemprojekt, das vollständig in CIL-kompatiblen Sprachen implementiert ist". Es ist in C # geschrieben, also war das genau das Richtige für mich. Für jemanden wie mich, der noch nie versucht hat, ein Betriebssystem zu erstellen, war es eigentlich ziemlich cool, ein "Hello World" -Betriebssystem in kürzester Zeit zum Laufen zu bringen.



3

Wie oben erwähnt, ist das OSDev-Wiki (bei weitem) die beste Quelle für die Betriebssystementwicklung. Für diejenigen unter Ihnen, die Deutsch sprechen, ist das lowlevel.eu Wiki auch großartig. Etwas relativ unbekanntes Incitatus-Betriebssystem , ein einfacher Kernel mit einer winzigen Anzahl von Userspace-Apps. Es ist großartig, um in das komplizierte Thema der Betriebssystementwicklung einzusteigen.


2

Movitz ist eine Lisp-Umgebung, die in Common Lisp geschrieben ist und "on the metal" läuft. Leider verweigern einige Links auf der Movitz-Hauptseite den Zugriff, aber Sie finden Anweisungen zum Herunterladen und Kompilieren des Quellcodes von der Trac-Seite . Ein fertiges Bild finden Sie auch im Archiv dieser Seite .

IMHO ist dies äußerst interessant, da es das Lisp-Maschinenkonzept auf der derzeit verfügbaren Hardware zurückbringt . Es ist kommerziell gescheitert, aber das beweist mir nicht, dass die Idee schlecht war.

Das Unix -Hasserhandbuch ist ein unterhaltsames Buch, das das Konzept von Unix und seinen Derivaten halb ernsthaft kritisiert. In vielen Abschnitten wird darüber gestritten, wie besser das Lisp-Maschinenkonzept war.


2

Hier ist ein Artikel mit dem Titel " Ein einfaches Betriebssystem von Grund auf neu schreiben ". Es behandelt das Schreiben eines Bootloaders, das Aufrufen des x86-32-geschützten Modus und das Schreiben eines grundlegenden Kernels in C. Es scheint gute Arbeit darin zu leisten, alles im Detail zu erklären.


Ich folgte diesem Buch und entwickelte es basierend auf seinem Code. Es ist großartig, mit einem solchen Buch zu beginnen.
user3405291

2

Der x86 JS-Simulator und der ARM-Simulator können auch sehr nützlich sein, um zu verstehen, wie verschiedene Teile der Hardware funktionieren, und um Tests durchzuführen, ohne Ihren bevorzugten Browser zu verlassen.


1

Interessante Frage an die Programmierer. Es wird lange dauern, bis ein Betriebssystem wie Windows oder Mac erstellt ist. Wenn Sie jedoch ein einfaches Betriebssystem erstellen möchten, können Sie Ihr Bestes geben

  1. Sie müssen sich auf Assemblersprache, C und C ++ konzentrieren. Sie sollten Experten in diesen Sprachen sein.
  2. Lesen Sie zuerst ein gutes Buch über die Funktionsweise des Betriebssystems [Google it] und dann alle Informationen aus dem Wiki-Betriebssystem
  3. Suche in youtube "So erstellen Sie Ihr eigenes Betriebssystem in Assemblersprache" Sehen Sie sich das Video an, z. Video
  4. Laden Sie den Linux OS-Quellcode herunter, kompilieren Sie ihn selbst und versuchen Sie, den Code selbst zu ändern
  5. Jetzt sind Sie ein erfahrener Betriebssystem-Editor. Laden Sie jetzt Minix und QNX herunter und beginnen Sie mit der Entwicklung. Hier erhalten Sie Minix Doc und QNX Doc

Jetzt haben Sie den Master-Abschluss (nicht nur noch ein bisschen mehr) in der Erstellung von Betriebssystemen erworben. Verteilen Sie dieses Wissen nun an Ihre Freunde und versuchen Sie mit deren Hilfe, ein Betriebssystem zu erstellen, das so leistungsfähig ist wie Mac, Linux oder Windows


Redakteure bitte bearbeiten Sie meine Antwort und entfernen Sie Leerzeichen zwischen http: und www, da ich ein Neuling bin, also habe ich nicht so viel Repu, bitte tun Sie das Zeug für mich
BharatKhanna

1

Wenn Sie ein Basisbetriebssystem erstellt haben, ist es tatsächlich schwierig, fortzufahren, da es nicht viele Ressourcen zum Erstellen von GUIs oder zum Portieren von Bibliotheken gibt. Aber ich denke, ein Blick auf ToAruOS würde viel helfen!

Der Code unter der Oberfläche dieses Betriebssystems ist so verdammt einfach! Gleichzeitig hat er Dinge wie cairo, python (noch nicht aber bald) sdl portiert, Speicher freigegeben und sein eigenes Widget-Toolkit erstellt. Es ist alles in C geschrieben.

Ein weiteres interessantes Betriebssystem wäre pedigreeOS . Es wurde von JamesM erstellt (dem Mann hinter dem Kernel-Tutorial von jamesM . Es hat zwar mehr Funktionen als ToaruOS, ist aber auch größer und verwirrender.

Aber trotzdem werden diese 2 Betriebssysteme Ihnen sehr helfen, besonders ToAruOS.


1

Als ich anfing, an meinen grundlegenden Betriebssystemen zu arbeiten, brauchte ich eine grundlegende Anleitung wie Sprungbrett für ein grundlegendes Betriebssystem . Es half mir, meinen Kopf nicht zu verlieren.

Das, wenn Sie es aus absolut nichts machen wollen (reiner Assembler-Code)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.