Sie haben in einem Kommentar zu Foons Antwort geschrieben, dass
Was ich mit "wie alte Computer" meine, ist, dass es einfach da ist
Andere haben verschiedene Vorschläge für BASIC-Interpreter gemacht, die Sie auf einem Linux-System installieren können. Moderne PCs verfügen im Allgemeinen nicht über integrierte BASIC-Interpreter, sodass Sie nicht mehr mit etwas booten können, auf dem ein installierter BASIC-Interpreter ausgeführt werden kann.
Ich werde das Obige eher so verstehen, dass Sie etwas wollen, das einen BASIC-Interpreter automatisch startet, ähnlich wie die frühen Mikrocomputer (z. B. Apple II, Commodore C-64, Zinclair ZX-81 und andere) ) in einen nativen BASIC-Interpreter gebootet.
Grundsätzlich gibt es drei Möglichkeiten, dies zu tun:
Erstellen Sie einen Desktop-Starter, der ein Terminal öffnet
Dies ist die am wenigsten invasive Methode, da sie vollständig in dem System und der Umgebung funktioniert, an die Sie gewöhnt sind.
Grundsätzlich erstellen Sie mit den Mitteln, die Ihre Desktop-Umgebung bietet, einen Programmstarter und richten ihn so ein, dass der BASIC-Interpreter Ihrer Wahl in einem Terminal gestartet wird. Für zusätzlichen Effekt können Sie bestimmte Schriftarten, Farben usw. einstellen, um eine Umgebung vergangener Tage zu simulieren. Wie Sie dies genau tun, hängt von der verwendeten Desktop-Umgebung ab, die Sie nicht angegeben haben. Wenn Sie jedoch mit der rechten Maustaste auf die Stelle klicken, auf die Sie gerade klicken, um Anwendungen zu starten, und nach einer Auswahl zum Erstellen eines neuen Startprogramms suchen, ist dies ein guter Anfang .
Erstellen Sie ein separates Benutzerkonto mit einem BASIC-Interpreter als Shell
Dies ist etwas aufwändiger als ein einfacher Desktop-Launcher, bietet jedoch eine bessere Isolation, sodass Sie nicht riskieren, Ihre eigenen Dateien durcheinander zu bringen. Installieren Sie zunächst einen BASIC-Interpreter. Ich werde bwbasic
für das Beispiel verwenden, aber alles geht, wirklich, solange es nativ in einem Terminal läuft. Fügen Sie dann einen Benutzer hinzu und legen Sie dessen Shell als bwbasic-Interpreter fest. Dies kann über die grafische Benutzeroberfläche erfolgen. Dies hängt jedoch von der verwendeten Desktop-Umgebung ab. Der tragbare Ansatz besteht darin, dies in einem Terminal unter Verwendung von useradd
. Dies wird etwas ähnliches sein
$ sudo -i
# grep -q "$(type -pP bwbasic)" /etc/shells || echo "$(type -pP bwbasic)" >>/etc/shells
# useradd --home /home/basic --create-home --shell "$(type -pP bwbasic)" basic
Dann sollten Sie in der Lage sein, über sudo eine saubere BASIC-Umgebung aufzurufen:
$ sudo -i -u basic
Sie können einen Starter (wie oben) erstellen, der diesen Befehl in einem Terminal ausführt, wenn Sie möchten.
Geben Sie Ihr normales Passwort ein, wenn Sie von sudo dazu aufgefordert werden. Sie können die sudoers-Konfiguration bearbeiten, um die Kennworteingabeaufforderung bei Bedarf zu vermeiden. Beachten Sie jedoch, dass das Bearbeiten von sudoers etwas kompliziert und vor allem riskant ist. Sie könnten sich aus dem Root-Konto ausschließen, was die Reparatur der Konfiguration ziemlich schwierig macht.
Verwenden Sie einen BASIC-Interpreter als Init
Dies ist der invasivste Ansatz, bringt Sie aber auch der Funktionsweise früherer Mikrocomputer am nächsten, indem Sie direkt in einen BASIC-Interpreter booten. Ich empfehle dies nicht und halte es für unwahrscheinlich, dass es ohne nennenswerte Arbeit funktioniert, schließe es jedoch der Vollständigkeit halber ein.
Der Linux-Kernel akzeptiert einen Befehlszeilenparameter (ja, der Linux-Kernel verfügt über Befehlszeilenparameter; Sie können die aktuell gebootete Befehlszeile durch Lesen von / proc / cmdline anzeigen) init
, der angibt, welches Programm ausgeführt werden soll, sobald die Kernel-Initialisierung abgeschlossen ist. Sie können den Bootloader (höchstwahrscheinlich GRUB) so konfigurieren, dass Sie einen Kerneleintrag booten können, der angibt, dass dies der init
Fall sein soll /usr/bin/bwbasic
(oder welcher andere installierte BASIC-Interpreter auch immer).
Damit dies funktioniert, müssen sich der BASIC-Interpreter sowie alle erforderlichen Dateien im root ( /
) -Dateisystem befinden. Dies liegt daran, dass eine der Aufgaben von init darin besteht, alle Dateisysteme bereitzustellen, und dass die Nicht-Root-Dateisysteme nicht bereitgestellt wurden, weil Sie ein Nicht-Init-Programm als Init bereitstellen. (Ich glaube, eine weitere Aufgabe von init besteht darin, das Root-Dateisystem im Lese- / Schreibmodus erneut bereitzustellen, sodass Sie aufgrund des trivialen Ansatzes nichts speichern können. Abhängig von den genauen Implementierungsdetails ist dies jedoch möglich lass das system sowas ausführenmount -o remount,rw /
Zum erneuten Einhängen des Root-Dateisystems mit Lese- und Schreibzugriff.) Der von Ihnen gewählte BASIC-Interpreter darf auch nicht von etwas anderem abhängig sein, für das init verantwortlich ist, und Sie haben keinen Zugriff auf Funktionen, die von init oder von init (z. B.) hervorgerufenen Prozessen ausgeführt werden , Netzwerk- oder Mehrbenutzerunterstützung).
Eine Kernel-Kommandozeile von so etwas ro quiet init=/usr/bin/bwbasic
wird Sie wahrscheinlich in die Nähe bringen, wie es früher ausgesehen hat.