Câu chuyện OpenBSD: Hành trình mang hệ điều hành đến với kiến trúc ARM và thiết bị cầm tay Zaurus

Công nghệ06 tháng 5, 2026·4 phút đọc

Bài viết kể lại lịch sử thú vị của việc chuyển đổi (port) OpenBSD sang kiến trúc ARM, bắt đầu từ những nỗ lực trên máy tính cá nhân thập niên 90, qua nền tảng CATS dùng bộ vi xử lý StrongArm, nhằm mục đích cuối cùng là đưa OpenBSD lên thiết bị cầm tay Sharp Zaurus – giấc mơ của những kỹ sư mạng thời bấy giờ.

Câu chuyện OpenBSD: Hành trình mang hệ điều hành đến với kiến trúc ARM và thiết bị cầm tay Zaurus

Câu chuyện OpenBSD: Hành trình mang hệ điều hành đến với kiến trúc ARM và thiết bị cầm tay Zaurus

Vào thập niên 1990, nhiều người dùng máy tính cá nhân có mong muốn chạy một hệ điều hành kiểu Unix trên máy của mình. Các nhóm lập trình viên đã nỗ lực đưa mã nguồn của BSD lên các máy như Commodore Amiga, Atari Falcon, và tại Anh Quốc, một nhóm khác đang làm việc với Acorn RiscPC. Những nỗ lực này cuối cùng đã hợp nhất vào NetBSD, với bản port cho RiscPC trở thành NetBSD/arm32 vào cuối tháng 1 năm 1996.

Bộ vi xử lý StrongArmBộ vi xử lý StrongArm

Lúc bấy giờ, mã nguồn của OpenBSD được đồng bộ hóa với NetBSD một cách không thường xuyên, và OpenBSD đã có được các phần mã arm32 không lâu sau đó. Tuy nhiên, không có nhà phát triển OpenBSD nào thực sự quan tâm đến việc biến OpenBSD/arm32 thành hiện thực, có lẽ vì không ai sở hữu máy Acorn RiscPC – một thiết bị khá hiếm bên ngoài nước Anh. Cuối cùng, phần mã ARM thừa thãi trong OpenBSD đã bị loại bỏ vào đầu năm 2001.

Giấc mơ của những "chiến binh đường phố"

Mặc dù không có hỗ trợ cho phần cứng dựa trên ARM tại thời điểm đó, nhưng không có lý do gì để không phát triển nó nếu một nền tảng ARM thú vị xuất hiện. Giấc mơ của nhiều người dùng Unix từ thời bong bóng dot-com là sở hữu một thiết bị nhỏ gọn cho phép kết nối Internet và xử lý sự cố mạng từ bất cứ đâu, bất cứ khi nào – trở thành những "road warrior" thực thụ.

Ngày nay, thiết bị đó chính là smartphone của bạn. Nhưng vào đầu những năm 2000, smartphone chưa tồn tại. Các máy tính bỏ túi (Handheld PC) quá lớn để bỏ túi trừ khi bạn là người khổng lồ, và các PDA thì thiếu màn hình tốt, bàn phím tiện dụng hoặc khả năng mở rộng để dùng modem GPRS, hoặc đơn giản là pin không đủ dùng.

Đó chính là lý do dòng Zaurus SL, được phát hành năm 2002, trở thành mục tiêu hấp dẫn. Những máy tính bỏ túi này chạy Linux (vậy tại sao không phải là OpenBSD?), có bàn phím vật lý cùng khe cắm CompactFlash và SD. Tuy nhiên, việc port một hệ điều hành lên máy cầm tay luôn đầy thách thức với mê cung các chân GPIO phức tạp và thiếu công cụ debug dễ dàng.

Nền tảng CATS và bộ vi xử lý StrongArm

Trước khi làm việc với Zaurus, các nhà phát triển cần một nền tảng ARM khác làm bệ phóng vững chắc và dễ tiếp cận. Lựa chọn hiển nhiên là bo mạch CATS của Chalice Technologies. Đây là bo mạch chủ dạng factor ATX, có khe ISA và PCI, sử dụng bộ vi xử lý Intel StrongArm SA-110 233MHz, được phân phối bởi Simtec Electronics.

Bo mạch này đã được NetBSD hỗ trợ từ cuối năm 1998, cho phép các nhà phát triển sử dụng bộ nhớ, ổ cứng và các thẻ mở rộng tiêu chuẩn. Dale Rahn, một nhà phát triển cấp cao của OpenBSD, người đã viết trình giả lập bộ vi xử lý ARM710 tại Motorola, đã bắt đầu chuyển đổi mã nguồn NetBSD/cats sang OpenBSD vào mùa thu năm 2003.

Nỗ lực này đã được công bố vào đầu năm 2004. Simtec, khi biết đến sự quan tâm của dự án OpenBSD, đã cung cấp sự hỗ trợ để giúp hệ điều hành chạy trên bo mạch CATS. Tuy nhiên, quá trình này không thiếu những sự cố phần cứng hài hước.

Sự cố "Overclock" không mong muốn

Vào tháng 2 năm 2004, Gareth Simpson của Simtec đã gửi email xin lỗi về một số lỗi cấu hình bo mạch do chuẩn bị vội vàng. Đáng chú ý, một trong các bo mạch đã được lắp sai dao động xung nhịp (clock oscillator). Một phần của quy trình kiểm tra bao gồm việc chạy bo mạch ở tốc độ xung nhịp cao hơn mức quy định (overclock), sau đó trả về mức chuẩn để vận hành an toàn. Tuy nhiên, người kỹ thuật đã quên thay thế con xung nhịp nhanh này trên một trong số tám bo mạch gửi cho nhóm OpenBSD.

Máy tính bỏ túi Sharp ZaurusMáy tính bỏ túi Sharp Zaurus

Tác giả bài viết, khi phát triển trên bo mạch này, đã gặp phải tình huống khó hiểu: quá trình khởi động đa người dùng bị gián đoạn và các lệnh liên quan đến thư viện mật mã (crypto library) bị treo. Mọi thứ dường như đúng đắn, nhưng vấn đề vẫn persists. Mãi đến khi nhận được con xung nhịp đúng và thay thế nó, vấn đề mới biến mất hoàn toàn. Đó là hệ quả của việc máy bị chạy ở chế độ overclock mà tác giả không hề hay biết.

Với nền tảng CATS đã hoạt động ổn định, con đường để thực hiện mục tiêu thực sự – việc port OpenBSD lên thiết bị cầm tay Zaurus – đã được mở ra.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗