JavaRush /จาวาบล็อก /Random-TH /ตามทฤษฎีเกี่ยวกับ bytecode, JVM และไมโครคอนโทรลเลอร์ | รห...
Gro
ระดับ
Минск

ตามทฤษฎีเกี่ยวกับ bytecode, JVM และไมโครคอนโทรลเลอร์ | รหัส Java สำหรับ MK

เผยแพร่ในกลุ่ม
ร่างบทความ. ในที่สุดฉันจะเขียนบทความที่คล้ายวิกิหลายบทความตามโครงร่างต่อไปนี้:

หัวข้อ: ตำแหน่งและวิธีการทำงานของ Java
- เกี่ยวกับโครงสร้างของ Java
- เกี่ยวกับฮาร์ดแวร์
- ซอฟต์แวร์นี้ทำงานบนฮาร์ดแวร์อย่างไร

บทความนี้เกี่ยวกับปัญหาที่ฉันพบ เมื่อศึกษาข้อมูลแล้วจึงเสริมด้วยคำตอบ
มันเป็นส่วนผสมของหัวข้อข้างต้น

สวัสดี!

คำนำ (นอกหัวข้อ)
ฉันมีและยังคงมีความปรารถนามากขึ้นที่จะสร้างหน่วยทางกายภาพที่สมบูรณ์
หน่วยที่มีพื้นฐานมาจากแนวคิดง่ายๆ เพียงหนึ่งเดียวที่ดูดซับฉันได้อย่างสมบูรณ์
แนวคิดที่กำหนดทิศทางการพัฒนาของฉันในอีกสิบปีข้างหน้า
ตามทฤษฎีแล้ว การออกแบบอุปกรณ์นั้นพร้อมแล้วครึ่งหนึ่ง โดยนำความสามารถเพียงเล็กน้อยของยักษ์ใหญ่ที่วางแผนไว้นั้นไปใช้

ตอนนี้ เมื่อเสร็จสิ้นการออกแบบกึ่งสำเร็จรูป โดยได้หมกมุ่นอยู่กับส่วนประกอบอย่างละเอียดมากขึ้น ฉันต้องเผชิญกับความจำเป็นในการควบคุมเซอร์โวมอเตอร์ และด้วยเหตุนี้ จึงต้องตั้งโปรแกรม "สมอง" บางส่วน

นี่คือที่มาของคำถามต่างๆ มากมาย ซึ่งสามารถสรุปได้ใน “เป็นไปได้หรือไม่ และอย่างไรที่จะบังคับให้ MK รันโค้ด Java”




ร่างกาย. รายละเอียดเกี่ยวกับคำถาม
เราจำได้ว่าโค้ด Java ที่เราเขียนจะถูกแปลงเป็นโค้ดไบต์ ซึ่ง JVM จะถูกตีความไปเป็นโค้ดเครื่อง ซึ่งเป็นโค้ดที่ประกอบด้วยคำสั่งที่ฮาร์ดแวร์เข้าใจ ทุกคนเข้าใจเหตุผลของสถานการณ์เฉพาะนี้ - ความสะดวกในการพกพา/การพกพาควบคู่ไปกับความเร็วที่มากขึ้น (เมื่อเทียบกับภาษาที่ตีความง่ายๆ)

หลังจากที่ฉันพบสิ่งนี้ ฉันมีคำถามที่ยังไม่มีคำตอบ ผุดขึ้นมาและเสริมด้วยคำถามใหม่ในขณะนี้
1. เป็นไปได้ไหมที่ใช้เครื่องมือ JVM มาตรฐานในการแปลงโค้ดไบต์ทั้งหมดให้เป็นโค้ดเครื่องในคราวเดียว / คอมไพล์มัน
ถ้าเป็นเท็จ มีเครื่องมือของบุคคลที่สามหรือไม่ อย่างน้อยก็อย่างใด?

2. JVM รองรับไมโครคอนโทรลเลอร์/คอนโทรลเลอร์หรือไม่ (ผมไม่ค่อยมีความรู้เรื่อง "สมอง" เหล็กมากนัก ใครรู้ช่วยบอกหน่อยนะครับ)
ถ้าเป็นจริง มีความแตกต่าง/คุณสมบัติพิเศษจากการทำงานบนพีซีปกติของเราหรือไม่?




อัปเดต! 09.04
เกี่ยวกับ 1. เป็นไปไม่ได้ที่จะรันโค้ดตามความเร็วของเครื่องโดยใช้เครื่องมือมาตรฐาน (หมายถึง JVM) อย่างน้อยนั่นคือสิ่งที่วิกิ บอกเรา แต่จากตรงนั้นก็ชัดเจนว่ามีเครื่องมือของบุคคลที่สาม- GCJ มันเป็นทางเลือกแทน JVM และมีโบนัสที่ดีในคลังแสง ฉันไม่พบข้อมูลที่แน่นอนเกี่ยวกับแพลตฟอร์ม (ฮาร์ดแวร์) ที่รองรับการคอมไพล์ - "มากมาย"
ความแตกต่างระหว่างไบต์โค้ดและเนทิฟโค้ด:
1) เนทีฟเริ่มต้นเร็วขึ้น
2) ไม่มีการรับประกันว่าเนทิฟจะทำงานเร็วขึ้น
3) อย่างที่ฉันเชื่อว่าเนทีฟจะไม่พกพา OS และ JVM ซึ่งส่งผลกระทบอย่างมากต่อจำนวนที่ต้องการสำหรับ การ ทำงานของ โปรแกรม ROM

บางทีโซลูชันนี้อาจเป็นทางเลือกแทนเวอร์ชัน ME
(คำถามหนักใจ เนื่องจาก:
1) ไม่ทราบว่า GCJ รองรับแพลตฟอร์มฮาร์ดแวร์ประสิทธิภาพต่ำดังกล่าวหรือไม่
2) ไม่มีข้อมูลเกี่ยวกับประสิทธิภาพของรหัสนี้

อัปเดตแล้ว 11.04
ประมาณ 2. ภาษา Java ทุกเวอร์ชัน ไม่ว่าจะเป็น ME, SE หรือ Embedded ทำงานควบคู่กับ JRE ที่กำลังถูกตีความ ยกเว้นกรณีข้างต้นและอีกสองกรณีในอนาคตที่อธิบายไว้ด้านล่าง
ประการแรก มีความพยายามที่จะบีบ OS ออกจากห่วงโซ่ โดยแทนที่ด้วยเครื่องมือที่เน้น Java ของตัวเองโดยเฉพาะ นี่มันเรื่องอะไรกัน..
ประการที่สองปรากฎว่ามีโปรเซสเซอร์ที่ใช้ Java คุณลักษณะของมันคือตัวประมวลผลร่วมในตัวที่ตีความโค้ดไบต์ในฮาร์ดแวร์ (! ไม่ใช่ในซอฟต์แวร์) และส่งไปดำเนินการ
อ่านเพิ่มเติมเกี่ยวกับJazelle ที่นี่
ก็รวย..


Offtopic
แนวคิดที่เป็นปัญหาคือ "ผลตอบรับ" ซึ่งเป็นประเภทที่นำไปใช้โดยเฉพาะในต้นแบบในอนาคต - การต้านทานแรงดัน/แรงดัน
ถือโอกาสนี้ไป. อ่านผู้คนในระดับ 15-25 มาสร้างชุมชนเล็กๆ สำหรับการสื่อสาร/tete-a-tete กันเถอะ สำหรับคนเดียวไม่มีความกล้าเลยและยิ่งกว่านั้นคือความสยองขวัญที่สมบูรณ์

ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION