Bạn đã bao giờ nghĩ về giới hạn trên của trình duyệt chưa? Hơn hai mươi năm trước, thật tuyệt nếu có một trình duyệt có thể chơi một trò chơi web nhỏ. Sau này nó có thể phát video, nghe bài hát và viết tài liệu. Giờ đây, nó có thể cắt video, vẽ bản phác thảo thiết kế và chạy trò chơi AAA phát trực tuyến trên đám mây. Nhưng một số người vẫn cảm thấy như vậy vẫn chưa đủ... Có một nhà phát triển tên là copy đã nhồi hơn 100 hệ điều hành vào trình duyệt.
Từ Windows 1.01 năm 1985 đến Windows 2000, từ Linux, FreeBSD đến Android, đến Haiku, KolibriOS, SerenityOS mà có thể bạn chưa từng nghe đến, hơn 100 hệ điều hành được liệt kê trên trang, giống như một cuốn biên niên sử máy tính cô đọng, để bạn lựa chọn và trải nghiệm.

Đó không phải là vấn đề.
Điểm mấu chốt là các hệ thống này không được mô phỏng và khôi phục mà là hệ thống gốc thực sự chạy trên trang web...
Nếu bạn không hiểu rõ ý nghĩa của nó, đừng lo lắng, bạn sẽ sớm biết thôi.
Dự án này có tên là v86 và URL là copy.sh/v86. Nó là nguồn mở và miễn phí. Nó có hơn 20.000 sao trên GitHub. Nó đã được cập nhật từ năm 2012 và được duy trì cho đến nay.
Shichao đã rất sốc khi nhìn thấy nó nên tôi quyết định dùng thử và chọn Windows 98. Suy cho cùng, đây là thứ mà thế hệ chúng tôi đã chạm đến khi còn trẻ.
Sau khi nhấp vào, màn hình sẽ xuất hiện trong vòng vài giây.
Thành thật mà nói, tôi vẫn chưa quên hoạt động khắc sâu trong DNA của mình. Trong tiềm thức tôi "Bắt đầu" - "Chương trình" - "Trò chơi" để khởi động Minesweeper...
Hình ảnh thực sự giống hệt như khi tôi còn nhỏ. World Super League cũng giống hệt như khi tôi còn nhỏ. Tôi quá lười tính toán và trông cậy vào may mắn. Nó phát nổ sau ba cú nhấp chuột.

Những người bạn tinh mắt sẽ nhìn thấy một con cừu trong hoạt hình trên. Nó sẽ nhảy lên thanh tác vụ và cửa sổ và chạy xung quanh. Thứ này được gọi là lamb.exe, một phần mềm dành cho thú cưng trên máy tính để bàn.
Sau khi khởi động sẽ có một con cừu trắng chạy quanh màn hình. Nếu bạn nhặt nó bằng chuột, nó sẽ gặp khó khăn vài lần.

Sau đó tôi đã thử Solitaire và Vẽ, và thành thật mà nói, tất cả chúng đều rất nguyên bản.
Nhưng lúc này, Shichao vẫn có chút nghi ngờ:
Đây có thực sự là một hệ điều hành hoàn chỉnh đang chạy không? Có thể nào họ vừa viết lại một vài chương trình cổ điển bằng cách sử dụng các trang web và phủ chúng lên bằng giao diện Windows 98?
Vì vậy, tôi bắt đầu xác minh từng cái một.
Nhấp vào bảng điều khiển, trong đó có hàng chục mục cài đặt. Thêm/Xóa Chương trình, Hiển thị, Mạng, Modem, Nguồn dữ liệu ODBC, Shichao nhấp vào từng cái một và tất cả đều mở...

Chỉ cần nói tùy chọn Chủ đề màn hình, nhấp vào và chọn một chủ đề chuyển, hình nền thay đổi, biểu tượng thay đổi và màu cửa sổ thay đổi.

Ngay cả khi nhấp vào IE, vào Baidu và vẫn truy cập được Internet.
Mặc dù quá trình tải gặp khó khăn do vấn đề tương thích và nhiều ký tự không thể hiển thị nhưng trang vẫn xuất hiện.

Có thể sử dụng bảng điều khiển, có thể thay đổi chủ đề và trình duyệt có thể kết nối Internet. Với ba điều này, Shichao tin chắc -
Sẽ không ai tạo ra một bộ giao diện hoàn chỉnh có thể thay đổi chủ đề, kết nối Internet và có bảng điều khiển cho một trang web hoài cổ, phải không?
Vì vậy về cơ bản chắc chắn rằng trang web đang chạy trên phiên bản Windows 98.
Nhưng có hơn 100 hệ thống như vậy trên trang web này.
Ví dụ: bạn có thể xem Windows 1.01. Desktop cực kỳ đơn giản, chỉ có cửa sổ và không có biểu tượng, bạn có thể ngửi thấy mùi cổ xưa khắp màn hình.
Có nên nói không, tính thẩm mỹ khá tốt, cách phối màu cũng rất đẹp.

Bạn cũng có thể trải nghiệm Windows 2000, được kẹp giữa 98 và phần mềm cũ như vậy.

Bạn thậm chí có thể chơi trên hệ thống DOS được cài đặt sẵn các trò chơi cổ điển như DOOM, Duke Nukem và SimCity.
Nhập một vài dòng lệnh và cánh cửa địa ngục năm 1993 sẽ mở ra trên trình duyệt.

Việc này vẫn chưa kết thúc...
v86 Bạn cũng có thể trải nghiệm trên Android-x86, thông tin, quay số, danh bạ, trình duyệt đều có sẵn và chương trình danh sách cũng có thể được mở bằng cách vuốt sang một bên.
Bạn có thể thắc mắc, Android không phải là hệ thống điện thoại di động sao? Tại sao nó lại ở đây?
Bởi vì Android-x86 là một dự án cộng đồng chuyên chuyển Android sang kiến trúc x86. Bây giờ Android đã chuyển sang lãnh thổ x86, v86 Bạn có thể chạy nó một cách dễ dàng...

TA GPH44Bây giờ, trong đầu Shichao chỉ còn một câu hỏi:
Nhà phát triển này đã làm điều đó như thế nào? Tại sao tôi có thể trải nghiệm nhiều hệ thống trên trang web như vậy?
Sau đó, tôi xem mô tả dự án trên GitHub và tôi đại khái hiểu nó.
Bản sao của nhà phát triển thực sự đã sử dụng mã để tạo PC ảo? ? ?
CPU, card đồ họa, card âm thanh và card mạng đều được sao chép và ngụy trang bằng mã. Những hệ thống Windows đó thậm chí còn không biết chúng đang chạy trên trang web và nghĩ rằng chúng là máy thật...
Nhưng để đánh lừa hệ điều hành không phải là điều dễ dàng.
Khi hệ thống khởi động, nó sẽ điên cuồng kiểm tra phần cứng: đọc trạng thái của bộ điều khiển ngắt, kiểm tra tần số của bộ hẹn giờ và ghi các giá trị vào thanh ghi card đồ họa để xem phản hồi. Nếu hoạt động của bất kỳ phần cứng nào không nhất quán với máy thật, hệ thống sẽ báo lỗi hoặc trực tiếp màn hình đen.

Vì vậy, bản sao cần sử dụng mã để giả mạo hành vi vật lý của một bộ phần cứng hoàn chỉnh, chính xác với mọi thanh ghi, mọi thời gian và mọi điều kiện biên.
Bạn phải biết rằng khối lượng công việc chỉ mô phỏng CPU x86 đã bùng nổ rồi.
Hướng dẫn sử dụng chính thức của Intel, tập lệnh có hơn 2.000 trang. Công việc của bản sao là dịch mọi quy tắc trong hơn hai nghìn trang hướng dẫn sang mã JavaScript và Rust. Mọi quy tắc được Windows sử dụng không được bỏ qua, nếu không hệ thống sẽ gặp sự cố.
CPU chỉ là một trong hơn chục phần cứng trên máy tính ảo này. Còn những người khác thì sao?
Tôi chỉ có thể nói là chỉ nghĩ đến thôi là da đầu tôi tê dại.

Chỉ phần cứng ảo là không đủ. Hệ điều hành chạy mã máy x86 và trình duyệt có thể thực thi WebAssembly. Hai ngôn ngữ này hoàn toàn khác nhau nên bạn cần dịch chúng để chạy chúng.
Nhưng việc dịch thuật cũng mất thời gian nên V86 sử dụng trình biên dịch JIT (biên dịch đúng lúc).
Khi chương trình mới bắt đầu chạy, v86 đã dịch từng hướng dẫn một, dịch từng câu và thực thi từng câu. Việc này diễn ra rất chậm và "máy tính" bị kẹt rất nhiều.
Nhưng đồng thời, v86 bí mật ghi lại những mã nào được thực thi lặp đi lặp lại trong nền. Sau khi phát hiện thấy số lần một đoạn mã nhất định được gọi vượt quá ngưỡng, toàn bộ đoạn mã đó sẽ được dịch sang phiên bản đã biên dịch của WebAssembly và được lưu trữ. Lần tới khi bạn gặp nó, việc chạy trực tiếp phiên bản đã biên dịch sẽ nhanh hơn nhiều.
Dự án có lẽ là như thế này. Shichao chỉ có thể nói là tuyệt vời...
Nếu quan tâm, bạn có thể tự mình ghé thăm. Nhưng Shichao tò mò: Tại sao anh chàng này lại muốn thực hiện dự án này?
Sau khi thực hiện một tìm kiếm đơn giản, tôi thấy rằng người này rất kín tiếng, không có mạng xã hội hay blog công cộng và chỉ được biết đến với cái tên Fabian Hemmer.

Shichao nhìn xuống danh sách dự án của mình, càng xem càng thấy thú vị: Anh chàng này rất thích những điều nhỏ nhặt.
Ví dụ: anh ấy đã tạo Tetris chỉ với 652 byte, Snake với 456 byte và hình xoắn ốc Ulam được vẽ với 159 byte. Anh cũng đã sử dụng ngôn ngữ K để thực hiện thử thách lập trình Advent of Code trong sáu năm liên tiếp (K là ngôn ngữ lập trình mảng cực kỳ tinh gọn thường được sử dụng trong lĩnh vực định lượng tài chính).
Vậy những gì anh chàng này làm đi làm lại đều có cùng một chủ đề: Đóng gói mọi thứ vào không gian nhỏ nhất và đẩy một thứ đến giới hạn.
Một số người có thể hỏi, chạy Windows 98 trên trình duyệt, công dụng của tất cả những chiếc chuông và còi này là gì?
Nhưng Fabian thực sự đã biến nỗi ám ảnh này thành công việc. Ông thành lập một công ty tên là Droplet Computing, chuyên bán các ứng dụng máy tính để bàn chạy trực tiếp trên trình duyệt. Lớp dưới cùng sử dụng WebAssembly, tương tự như v86.
Người khác cài đặt phần mềm trên máy tính, nhưng anh chàng này đã chế tạo một chiếc máy tính có phần mềm, sau đó cài đặt phần mềm vào máy tính và cuối cùng biến nó thành một công việc kinh doanh.
Có lẽ những người đam mê công nghệ sẽ thích điều này. Viết code không hẳn là để giải quyết vấn đề, đôi khi chỉ để xem con đường này có thể đi được bao xa.
Khi bạn bước đi, con đường sẽ thực sự hiện ra.
Viết bởi:Hedgehog
Người biên tập:Mì hàn Mangshan chủ đề
Biên tập viên người Mỹ: Huân Yan
Hình ảnh và dữ liệu nguồn:
copy.sh/v86