Você escreveu em um comentário para resposta da Foon que
What I mean by "like old computers" is that its just there
Outros forneceram várias sugestões diferentes para intérpretes do BASIC que você poderia instalar em um sistema Linux, portanto, não irei lá. PCs modernos geralmente não vêm com intérpretes BASIC embutidos, então você está preso inicializando algo que pode executar um interpretador BASIC instalado.
Em vez disso, vou pegar o acima para significar que você quer algo que inicie um interpretador BASIC automaticamente, semelhante, mas não exatamente como os primeiros microcomputadores (como o Apple II, Commodore C-64, Zinclair ZX-81, e seu tipo) inicializado em um intérprete BASIC nativo.
Existem basicamente três maneiras de fazer isso:
Crie um lançador de área de trabalho que abra um terminal
Este é o menos invasivo, porque funciona totalmente dentro do sistema e ambiente ao qual você está acostumado.
Basicamente, por qualquer meio que seu ambiente de desktop forneça, você cria um iniciador de programa e o configura para iniciar o interpretador BASIC de sua escolha em um terminal. Para efeito extra, você pode definir fontes específicas, cores, etc., para simular um ambiente de dias passados. Exatamente como você faria isso depende do ambiente de área de trabalho que você está usando, o que você não especificou, mas clicar com o botão direito do mouse sobre onde você está clicando para iniciar aplicativos e procurar uma opção para criar um novo lançador será um bom começo .
Crie uma conta de usuário separada com um interpretador BASIC como o shell
Isso é um pouco mais complicado do que um simples lançador de área de trabalho, mas os provedores têm melhor isolamento para que você não se arrisque a atrapalhar seus próprios arquivos. Primeiro, instale um interpretador BASIC; Usarei bwbasic
para o exemplo, mas vale tudo, na verdade, desde que seja executado nativamente em um terminal. Em seguida, adicione um usuário e configure seu shell para ser o interpretador bwbasic. Isso pode ser feito através da GUI, mas isso depende do ambiente de área de trabalho que você está usando; a abordagem portátil é fazer isso em um terminal usando useradd
. Isso será algo semelhante a
$ 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
Em seguida, você poderá inserir um ambiente BASIC limpo por meio do sudo:
$ sudo -i -u basic
Você pode criar um lançador (como acima) que execute este comando em um terminal, se você quiser.
Dê sua senha normal quando solicitado pelo sudo. Você pode editar a configuração de sudoers para evitar o prompt de senha, se desejar, mas esteja ciente de que a edição de sudoers é um pouco complicada e, mais ainda, arriscada; você poderia se proteger da conta root, dificultando bastante o reparo da configuração.
Use um interpretador BASIC como init
Esta é a abordagem mais invasiva, mas também o aproxima de como os primeiros microcomputadores funcionavam, inicializando diretamente em um interpretador BASIC. Eu não recomendo isso, e consideraria improvável que ele funcione sem um trabalho significativo, mas estou incluindo-o para ser completo.
O kernel Linux aceita um parâmetro de linha de comando (sim, o kernel Linux tem parâmetros de linha de comando; você pode ver a linha de comando atualmente inicializada lendo / proc / cmdline) chamada init
, que especifica qual programa executar uma vez a inicialização do kernel está completa. Você pode configurar o carregador de boot (provavelmente o GRUB) para permitir que você inicialize uma entrada do kernel que diz que init
deve ser /usr/bin/bwbasic
(ou qualquer outro interpretador BASIC instalado).
Para que isso funcione, o interpretador BASIC, bem como todos os arquivos requeridos, devem estar localizados no sistema de arquivos raiz ( /
). Isso ocorre porque uma das tarefas do init é montar todos os sistemas de arquivos e, como você está fornecendo um programa não-init como init, os sistemas de arquivos não-raiz não serão montados. (Acredito que outra das tarefas do init é remontar o sistema de arquivos raiz no modo de leitura / gravação, portanto, com a abordagem trivial, você não poderá salvar nada. No entanto, você pode depender dos detalhes exatos da implementação. faça com que o sistema execute algo como mount -o remount,rw /
para remontar o sistema de arquivos raiz de leitura / gravação.) O interpretador BASIC escolhido também não deve depender de mais nada pelo qual o init é responsável e você não terá acesso a nenhum recurso manipulado pelo init ou por qualquer processo gerado pelo init (por exemplo, suporte a rede ou multiusuário).
Uma linha de comando do kernel de algo como ro quiet init=/usr/bin/bwbasic
provavelmente te deixará muito parecido com o que era nos velhos tempos.