Bạn đã viết trong một bình luận cho câu trả lời của Foon rằng
Ý tôi là "giống như máy tính cũ" là nó chỉ ở đó
Những người khác đã cung cấp một số đề xuất khác nhau cho các trình thông dịch BASIC mà bạn có thể cài đặt trên hệ thống Linux, vì vậy tôi sẽ không đến đó. Các PC hiện đại thường không đi kèm với các trình thông dịch BASIC tích hợp, do đó bạn bị kẹt khi khởi động một cái gì đó có thể chạy trình thông dịch BASIC được cài đặt.
Thay vào đó, tôi sẽ nói ở trên có nghĩa là bạn muốn một cái gì đó tự động khởi động trình thông dịch BASIC, tương tự nhưng không hoàn toàn giống như các máy vi tính ban đầu (như Apple II, Commodore C-64, Zinclair ZX-81 và ilk của họ ) khởi động vào một trình thông dịch BASIC bản địa.
Về cơ bản có ba cách để làm điều này mà tôi có thể nghĩ ra:
Tạo một trình khởi chạy máy tính để bàn mở một thiết bị đầu cuối
Đây là ít xâm lấn nhất, bởi vì nó hoạt động hoàn toàn trong hệ thống và môi trường mà bạn đã quen.
Về cơ bản, thông qua bất cứ điều gì có nghĩa là môi trường máy tính để bàn của bạn cung cấp, bạn tạo một trình khởi chạy chương trình và thiết lập nó để khởi chạy trình thông dịch BASIC mà bạn chọn trong một thiết bị đầu cuối. Để có thêm hiệu ứng, bạn có thể đặt phông chữ, màu sắc cụ thể, v.v., để mô phỏng môi trường của những ngày đã qua. Chính xác cách bạn sẽ làm điều này phụ thuộc vào môi trường máy tính để bàn bạn đang sử dụng, mà bạn chưa chỉ định, nhưng nhấp chuột phải vào nơi bạn hiện đang nhấp để khởi chạy ứng dụng và tìm kiếm một lựa chọn để tạo một trình khởi chạy mới sẽ là một khởi đầu tốt .
Tạo một tài khoản người dùng riêng với trình thông dịch BASIC làm trình bao
Đây là một chút liên quan nhiều hơn một trình khởi chạy máy tính để bàn đơn giản, nhưng các nhà cung cấp cách ly tốt hơn để bạn không có nguy cơ làm hỏng các tập tin của riêng bạn. Đầu tiên, cài đặt một trình thông dịch BASIC; Tôi sẽ sử dụng bwbasic
ví dụ, nhưng thực sự mọi thứ đều được, miễn là nó chạy tự nhiên trong một thiết bị đầu cuối. Sau đó thêm một người dùng và đặt shell của nó là trình thông dịch bwbasic. Điều này có thể được thực hiện thông qua GUI, nhưng điều đó phụ thuộc vào môi trường máy tính để bàn bạn đang sử dụng; phương pháp di động là làm như vậy trong một thiết bị đầu cuối bằng cách sử dụng useradd
. Đây sẽ là một cái gì đó tương tự như
$ 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
Sau đó, bạn sẽ có thể vào một môi trường BASIC sạch thông qua sudo:
$ sudo -i -u basic
Bạn có thể tạo một launcher (như trên) để thực thi lệnh này trong terminal, nếu bạn muốn.
Cung cấp mật khẩu bình thường của bạn khi được nhắc bởi sudo. Bạn có thể chỉnh sửa cấu hình sudoers để tránh lời nhắc mật khẩu nếu muốn, nhưng lưu ý rằng chỉnh sửa sudoers có phần phức tạp và thậm chí còn nhiều hơn, rất rủi ro; bạn có thể tự khóa tài khoản root, khiến việc sửa cấu hình trở nên khá khó khăn.
Sử dụng trình thông dịch BASIC làm init
Đây là cách tiếp cận xâm lấn nhất, nhưng cũng giúp bạn hiểu rõ nhất về cách thức hoạt động của các máy vi tính ban đầu, bằng cách khởi động trực tiếp vào trình thông dịch BASIC. Tôi không khuyến nghị điều này và sẽ xem xét nó không có khả năng hoạt động nếu không có công việc quan trọng, nhưng bao gồm nó để hoàn thiện.
Hạt nhân Linux chấp nhận một tham số dòng lệnh (vâng, nhân Linux có các tham số dòng lệnh; bạn có thể thấy dòng lệnh hiện được khởi động bằng cách đọc từ / Proc / cmdline) init
, chỉ định chương trình nào sẽ thực thi khi quá trình khởi tạo hạt nhân hoàn tất. Bạn có thể định cấu hình bộ tải khởi động (rất có thể là GRUB) để cho phép bạn khởi động một mục nhân có nghĩa init
là /usr/bin/bwbasic
(hoặc bất kỳ trình thông dịch BASIC nào khác mà bạn đã cài đặt).
Để làm việc này, trình thông dịch BASIC, cũng như tất cả các tệp mà nó yêu cầu, phải được đặt trên /
hệ thống tệp gốc ( ). Điều này là do một trong những nhiệm vụ của init là gắn kết tất cả các hệ thống tệp và vì bạn đang cung cấp một chương trình không phải là init, nên các hệ thống tệp không phải root sẽ không được gắn kết. (Tôi tin rằng một nhiệm vụ khác của init là kết nối lại hệ thống tệp gốc ở chế độ đọc, do đó, bằng cách tiếp cận tầm thường, bạn sẽ không thể lưu bất cứ điều gì. Tuy nhiên, tùy thuộc vào chi tiết triển khai chính xác, có thể hệ thống thực hiện một cái gì đó nhưmount -o remount,rw /
để ghi lại hệ thống tập tin gốc đọc-ghi.) Trình thông dịch BASIC được chọn của bạn cũng không được phụ thuộc vào bất cứ điều gì khác mà init chịu trách nhiệm và bạn sẽ không có quyền truy cập vào bất kỳ cơ sở nào được xử lý bởi init hoặc bởi bất kỳ quy trình nào được sinh ra bởi init (ví dụ , hỗ trợ mạng hoặc nhiều người dùng).
Một dòng lệnh kernel của một cái gì đó giống như ro quiet init=/usr/bin/bwbasic
có thể sẽ giúp bạn khá gần với giao diện của nó ngày xưa.