Tôi đã đọc mụC# 6.10 trên http://www.cafeaulait.org/javafaq.html và tôi bắt đầu tự hỏi làm thế nào mà những người chơi lớn đi về việc tạo cài đặt JVM của riêng họ. Một thí nghiệm hay cái gì khác có thể là khả thi (và khả thi) cho một người?Cách tạo JVM tùy chỉnh?
Trả lời
về mặt kỹ thuật, tất cả thông tin mọi người cần để tạo một JVM mới đều nằm trong các đặc tả chung cho ngôn ngữ và nền tảng nhắm mục tiêu. Một JVM sẽ cần phải hành xử khác nhau tùy thuộc vào việc nó có nghĩa là để chạy trên một máy tính để bàn hoặc điện thoại di động, ngay cả khi việc giải thích bytecode sẽ là phần lớn giống hệt nhau.
Một vài nơi để bắt đầu tìm kiếm thông tin:
http://en.wikipedia.org/wiki/List_of_Java_virtual_machines
Reading Các "Java Virtual Machine Đặc điểm kỹ thuật" của Tim Lindholm
http://www.jcp.org/en/jsr/detail?id=30
Từ những gì tôi đã thấy việc triển khai JVM bởi Sun, IBM hoặc các công ty nhỏ hơn như Esmertec, viết một JVM đơn giản là một dự án vài tháng người đàn ông nhưng việc thêm JSR sau JSR để hỗ trợ nhiều chức năng hơn có thể mất nhiều năm sau đó.
Bây giờ, nếu tất cả những gì bạn cần là một trình thông dịch bytecode đơn giản, nó không phải là xấu, nhưng vẫn còn khá nhiều mã để viết.
Có một điều, bạn có thể muốn xem Apache Harmony Họ đã đi một chặng đường dài, vì vậy lịch sử dự án của họ thực sự có thể cung cấp cho bạn ý tưởng tốt về nỗ lực cần thiết. Bản thân tôi sẽ không đặt cược vào nó là khả thi cho một anh chàng
"Apache Harmony đã ngừng hoạt động tại Quỹ Phần mềm Apache kể từ ngày 16 tháng 11 năm 2011." – Raedwald
Tôi hiểu rằng, hiện tại, những người chơi lớn đã cấp phép thư viện Java từ Sun. Sau đó, họ thêm tinh chỉnh của riêng mình. Sự khác biệt chính giữa việc triển khai là trình biên dịch mã bytecode-> máy.
Một JVM thủ công sẽ là một cách tuyệt vời để tìm hiểu về các máy ảo nói chung, các vấn đề về thiết kế ngôn ngữ chương trình (thông qua đặc tả JVM) và mức độ phân tích cú pháp nitty và vv.
Nếu bạn chọn thực hiện theo hướng đó, bạn cũng có thể khám phá các tối ưu hóa, đó là nơi nó có thể trở nên thú vị và bạn có thể lấy các tài liệu nghiên cứu và triển khai thuật toán của chúng.
Điều đó đang được nói, nếu bạn ít quan tâm đến nhiệm vụ dài và gian khổ của việc tạo VM từ đầu, bạn có thể muốn sửa đổi máy ảo nguồn mở hiện có như Kaffe. Nó sẽ cho bạn thấy những gì một máy ảo có, nhưng không nhất thiết phải như thế nào mã Java làm việc trong JVM của Sun:
Kaffe là một việc thực hiện phòng sạch của máy ảo Java, cộng với thư viện lớp liên quan cần thiết để cung cấp một thời gian chạy Java môi trường.
Bằng cách này, bạn có thể nghiên cứu chi tiết, nhưng đi sâu vào để triển khai các tính năng thú vị hơn.
- 1. Cách tạo TextView tùy chỉnh?
- 2. Tạo etag tùy chỉnh
- 3. Cách tạo thành phần Swing tùy chỉnh
- 4. Java - Cách tạo hộp thoại tùy chỉnh?
- 5. Cách tạo điều khiển UIDatePicker tùy chỉnh
- 6. Cách tạo bàn phím tùy chỉnh
- 7. Cách tạo thẻ javadoc tùy chỉnh?
- 8. Cách tạo tiêu đề email tùy chỉnh
- 9. Cách tạo trang tùy chỉnh trong Wordpress?
- 10. Cách tạo băng chuyền jquery tùy chỉnh?
- 11. Tạo thẻ tùy chỉnh
- 12. Tạo JSONEncoder tùy chỉnh
- 13. cách tạo loại tùy chọn tùy chỉnh mới trong Magento?
- 14. Tạo thuộc tính có thể tùy chỉnh tùy chỉnh
- 15. SNMP: Tạo OID tùy chỉnh
- 16. Izpack: Tạo bảng tùy chỉnh
- 17. Tạo một OnClickListener tùy chỉnh
- 18. Tạo chú thích tùy chỉnh
- 19. Tạo chuỗi lớp tùy chỉnh
- 20. Tạo hai nút tùy chỉnh
- 21. Tạo hàm XSLT tùy chỉnh
- 22. Cách tạo ngôn ngữ .Net hoặc JVM?
- 23. Tạo JButton tùy chỉnh trong Java
- 24. Tạo tệp .config tùy chỉnh trong asp.net
- 25. Tạo một nút tùy chỉnh với SWT
- 26. Tùy chọn JVM bằng cách sử dụng Leiningen
- 27. Tạo/điền đối tượng tùy chỉnh Javascript
- 28. cách tạo lịch tùy chỉnh trong ứng dụng android?
- 29. Cách tạo các hàm tùy chỉnh trong SQLite
- 30. Cách tạo thanh tiến trình tùy chỉnh trong Android?
http://www.cafeaulait.org/javafaq.htm: URL yêu cầu /javafaq.htm không được tìm thấy trên máy chủ này. Đó là /javafaq.html, tôi đã sửa nó trong bản chỉnh sửa. –
@Grant: Tôi cũng vậy, nhưng chậm hơn một chút. :) –
"6.10: Java có con trỏ không?"? –