Einbettbare Linux-Kernel-Untermenge - Embeddable Linux Kernel Subset

ELKS
Betriebssystemfamilie Unix-ähnlich
Erstveröffentlichung 0.0.76 (20. Mai 1999 ; vor 22 Jahren ) ( 1999-05-20 )
Neueste Erscheinung 0.4.0 / 20. November 2020 ; vor 10 Monaten ( 2020-11-20 )
Repository
Verfügbar in Englisch
Kernel- Typ Monolithisch
Lizenz GPL v2
Offizielle Website github .com /jbruchon / elks

Die Fähiges Linux Kernel Subset (ELKS) , früher bekannt als Linux-8086 , ist ein Linux-ähnlichen Betriebssystem - Kernel . Es ist eine Teilmenge des Linux-Kernels , die für 16-Bit- Computer mit begrenzten Prozessor- und Speicherressourcen wie Maschinen mit Intel 8086 und kompatiblen Mikroprozessoren gedacht ist, die von 32-Bit- Linux nicht unterstützt werden .

Funktionen und Kompatibilität

ELKS ist freie Software und steht unter der GNU General Public License (GPL). Es kann mit frühen 16-Bit- und vielen 32-Bit- x86-Computern (8088, 8086) wie IBM PC-kompatiblen Systemen und späteren x86-Modellen im Realmodus arbeiten . Ein weiterer nützlicher Bereich sind Einplatinen-Mikrocomputer, die als Lehrmittel für „ Homebrew “-Projekte (Hardware- Hacking ) gedacht sind , sowie eingebettete Controller-Systeme (zB Automation ).

Frühe Versionen von ELKS liefen auch auf Psion 3a und 3aR SIBO (SIxteen Bit Organiser) PDAs mit NEC V30 CPUs und boten ein weiteres mögliches Einsatzgebiet ( Gadget- Hardware), wenn sie auf eine solche Plattform portiert wurden. Dieser Versuch wurde ELKSibo genannt . Aus Mangel an Interesse wurde die SIBO-Unterstützung aus Version 0.4.0 entfernt.

Native ELKS-Programme können mit Elksemu emuliert werden , wodurch 8086-Code unter Linux-i386 verwendet werden kann. Es gibt auch Bestrebungen, ELKS mit einer Eiffel- kompatiblen Bibliothek auszustatten.

Geschichte

Die Entwicklung von Linux-8086 begann 1995 von den Linux-Kernel-Entwicklern Alan Cox und Chad Page als Ableger des Standard-Linux. Anfang 1996 wurde das Projekt in ELKS (Embeddable Linux Kernel Subset) umbenannt und 1997 wurde die erste Website www.elks.ecs.soton.ac.uk/ (offline, archiviert am 24. September 2001, an der Wayback Machine ) erstellt. ELKS Version 0.0.63 folgte am 8. August desselben Jahres. Am 22. Juni 1999 war ELKS Release 0.0.77 verfügbar, die erste Version, die eine grafische Benutzeroberfläche (das Nano-X Window System ) ausführen konnte . Am 21. Juli bootete ELKS auf einem Psion PDA mit SIBO Architektur. ELKS 0.0.82 kam am 10. Januar 2000 heraus. Durch die Integration des SIBO- Ports wurde es die erste offizielle Version, die auf anderer Computerhardware als der ursprünglichen 8086-Basis lief. Am 3. März dieses Jahres wurde das Projekt bei SourceForge registriert , die neue Website heißt elks.sourceforge.net .

Am 6. Januar 2001 erklärte Cox ELKS für "im Grunde tot". Nichtsdestotrotz erschien am 17. Juni 2001 die Version 0.0.84, Charilaos (Harry) Kalogirou fügte sieben Tage später die Unterstützung für TCP/IP-Netzwerke hinzu und im selben Jahr erreichte ELKS am 17. November 0.0.90. Am 20. April 2002 erreichte Kalogirou Speicherverwaltung mit Disk-Swapping-Funktion hinzugefügt, neun Tage später folgte die ELKS-Version 0.1.0, die als erste Beta-Version gilt . Bis Ende des Jahres, am 18. Dezember, wird die EDE (Elks Distribution Edition, eine auf dem ELKS-Kernel basierende Distribution) selbst in der Version 0.0.5 veröffentlicht. 6. Januar 2003 brachte ELKS 0.1.2, ein Update auf 0.1.3 folgte am 3. Mai 2006, die erste offizielle Veröffentlichung nach langer Entwicklungspause.

Eine Entwicklung zu FlightLinux , einem Echtzeit- Betriebssystem für Raumfahrzeuge , war geplant, aber das Projekt, für das es gedacht war ( UoSAT-12 ), entschied sich schließlich stattdessen für das qCF- Betriebssystem der Quadron Corporation.

Aktueller Status und Nutzung

Seit Januar 2012 befindet sich ELKS wieder in Entwicklung. Das CVS-Repository wurde im Februar 2012 auf Git migriert , und zahlreiche Patches aus der Linux-8086-Mailingliste wurden in das neue Repository übertragen. Version 0.1.4 erschien am 19. Februar 2012, veröffentlicht von Jody Bruchon in Erinnerung an Riley Williams, einen ehemaligen Mitentwickler. Es enthielt aktualisierte Disketten-Images, das Beheben von Kompilierungsfehlern der vorherigen Version und das Entfernen nicht verwendeter Codes. Am 10. Mai 2012 wurde BusyELKS dem Repository von Jody Bruchon hinzugefügt, um eigenständige Binärdateien zu ersetzen und gemeinsam genutzten Code zu nutzen (ELKS unterstützt keine gemeinsamen Bibliotheken ). BusyBox- ähnliche Binärdateien versuchen, mit symbolischen Links Platz zu sparen, redundante Codeblöcke zu eliminieren und separate Programme zu einer größeren Binärdatei zu kombinieren. Am 14. November 2013 ist die Projektentwicklung auf GitHub umgezogen . Rudimentäre Ethernet- und FAT-Unterstützung wurden 2017 hinzugefügt.

Mehr als 35 Entwickler haben seit dem Fork im Jahr 1995 an diesem Projekt mitgewirkt. Ab März 2015 war die Entwicklung des ELKS-Projekts wieder aktiv und erreichte am 8. März 2015 einen Meilenstein von 1.000 Quellcode-Commits. Stand Juni 2018 viele Fehlerkorrekturen und Verbesserungen wurden mit 583 weiteren Commits durchgeführt, was zur Version 0.2.1 führte. Im März 2019 schloss das Projekt den Übergang vom veralteten BCC-Compiler zum neueren GCC-IA16 ab, und die Entwicklungsaktivitäten nahmen zu, da Gregory Haerr als leitender Entwickler das Ruder übernahm. In den Jahren 2019 und 2020 ist ELKS von einem "bootfähigen, instabilen" Status zu einem stabilen Linux-ähnlichen System für kleine Maschinen mit Ethernet, TCP/IP, FAT16/32, serieller Mehrbenutzerfunktion und vielen weiteren Funktionen übergegangen. Als ELKS 0.4.0 im November 2020 veröffentlicht wurde, hatte die Zahl der Commits 3.000 überschritten.

Version 0.4.0

Version 0.4.0 stellte einen wichtigen Meilenstein für ELKS dar, indem sie das System von experimentell zu nützlich für Nicht-Entwickler machte und die folgenden wichtigen Verbesserungen beinhaltete:

  • Dokumentations-Wiki
  • Wichtige Kernel-Verbesserungen – Größe, Stabilität, Robustheit, Geschwindigkeit, Systemaufrufe und Debugging-Funktionen.
  • Zuverlässiger TCP/IP- Stack, der als Benutzermodusprozess implementiert ist und TCP, ICMP , ARP unterstützt.
  • Netzwerkunterstützung auf Benutzerebene für telnet /telnetd und Dateiübertragung.
  • Unterstützung für serielle IP und Ethernet (NE1K/ NE2K /WD8003).
  • Viele neue und aktualisierte Befehle auf Benutzerebene, einschließlich Asche und Flügelschalen.
  • Viele Verbesserungen der entwicklungsübergreifenden Toolchain unterstützen mehr Speichermodelle und erleichtern die Portierung von mehr Anwendungen.
  • Robuste Unterstützung für FAT16 /32- und Minix1- Dateisysteme, einschließlich Booten von /root auf FAT-Dateisystemen.
  • Verbesserte Konsolen- und serielle Unterstützung: Serielle Konsole, mehrere serielle Hochgeschwindigkeits-E/A.
  • MBR- Unterstützung, Boot-Optionen über /bootopts.
  • Aktualisiertes Menüsystem zur Konfiguration und Erstellung auf Linux und MacOS, das es Nicht-Entwicklern ermöglicht, benutzerdefinierte Images für Disketten von 360 KB bis 2,88 MB zu erstellen.


Die Entwicklung von ELKS wird 2021 fortgesetzt und fügt (bis April 2021) Exomizer- ähnliche binäre Komprimierung und neue Speichermodelle zur Werkzeugkette hinzu.

Siehe auch

Verweise

Externe Links