เคยได้ยินว่าระบบปฏิบัติการแอนดรอยด์ทำงานกับซีพียู ARM ครับ
แต่โทรศัพท์ Asus Zenfone 5 ที่ผมซื้อมามันใช้ Intel Atom นี่ก็รันแอนดรอยด์
อินเทลอะตอมมันเป็นซีพียู x86 x64 ไม่ใช่หรือครับ ?
ถ้าอย่างงั้นแอนดรอยด์มันรู้จักและทำงานได้อย่างไรครับ ?
แล้วแบบนี้ผมจะเอาวินโดว์ XP วินโดว์ 7 มาติดตั้งทำงานบนโทรศัพท์เซนโฟน 5 ได้ไหมนี่ เพราะมันใช้อะตอมซึ่งเป็น x86 นี่นา ?
ทั้งหมดที่พิมพ์มานี่ ถ้าผิดก็แก้ได้นะครับ
Android ไม่ได้จำกัดเฉพาะซีพียู ARM ครับ มันทำให้รันกับซีพียูอื่นได้
Windows เองก็เหมือนกันครับ อย่าง Windows 8 ที่ปกติรันกับ x86, x64 แต่มันก็ทำให้รันกับ ARM ได้
ส่วนเรื่องจะเอาวินโดวส์ไปติดตั้งกับโทรศัพท์ได้มั้ย ผมเข้าใจว่าถ้าแก้พวก BIOS,UEFI อะไรพวกนั้นได้ครบก็น่าจะพอรันได้มั้งครับ ไม่แน่ใจว่าพวกบัสพวกอะไรมันต่างกันแค่ไหน
เสริมให้ว่า นอกจาก x86 กับ ARM แล้วมันยังรันบน MIPS ได้ด้วย
Install Windows 8 on Android Intel Tablet
Teclast X89 win8.1 32GB
สามารถรันได้ 2 OS ทั้ง Win8.1 และ Android 4.4.4 kitkat
น่าสนใจนะครับตัวนี้ เปิด computerโชว์ไดรฟ์ C ให้ดูจะๆเลย
เข้าใจว่า CPU ฝั่ง X86 กับ ARM มันวาง Memory กลับข้างกัน โดย X86 จะเริ่มจากล่างขึ้นบน ส่วน ARM จะเป็นบนลงล่าง (หรือผมจำผิดไม่แน่ใจ) ถ้า hardware มันเข้าใจความแตกต่าง ก็ไม่น่ามีปัญหาครับ
ทำไมแอนดรอยด์รันได้
หน้าที่ของระบบปฎิบัติการ คือ รองรับความแตกต่างของฮาร์ดแวร์อยู่แล้วครับ ทุกวันนี้แอพถ่ายภาพอย่าง Instagram ก็รันได้ ทั้งๆ ที่ชิปกล้องบนแอนดรอยด์มีนับสิบนับร้อยรุ่น แต่ Instagram ก็รันได้หมด นี่คือระบบปฎิบัติการไปรองรับความแตกต่างระกับล่างไว้ให้
เรื่องซีพียูมีความแตกต่างมากกว่าปกติ แต่ API ของแอนดรอยด์โดยตัวมันเองก็แปลงโค้ดก่อนรันอยู่แล้ว แอพพลิเคชั่นบนแอนดรอยด์ไม่จำเป็นต้องเขียนโค้ดอะไรที่ลงไประดับซีพียูโดยตรง ถ้าตัวแปลงโค้ดของแอนดรอยด์รู้วิธีแปลงโค้ดให้รันบนซีพียูรุ่นที่เราใช้งานได้ มันก็รันได้
ประเด็นซีพียูนี่จริงๆ มีเพิ่มเติมคือในกรณีที่โค้ดระบุว่าต้องเป็น ARM เท่านั้น อินเทลก็เพิ่มตัวแปลงเข้าไปอีกตัว เพื่อแปลงโค้ด ARM เป็น x86 อยู่ดี อันนี้เป็นส่วนที่อินเทลทำเพิ่มเหนือจากแอนดรอยด์มาตรฐาน
รันวินโดวส์ได้ไหม
ตอบแบบขวานฝ่าซากคือ ถ้าเอาโค้ดไปรันได้ ก็รันได้ครับ
ซีพียูเหมือนกันไม่ได้แปลว่าทุกอย่างเหมือนกัน ซีพียูบนโทรศัพท์มือถือเป็นสถาปัตยกรรม x86 เหมือนพีซีแต่มีความแตกต่างอีกหลายอย่าง โดยเฉพาะระบบการบูตเครื่อง บนพีซีระบบการบูตจะออกแบบรองรับให้ผู้ใช้ติดตั้งระบบปฎิบัติการด้วยตัวเองตั้งแต่แรก เราจึงติดตั้งลินุกซ์ หรือลงวินโดวส์ใหม่กันเองได้เรื่อยๆ
ส่วนบนโทรศัพท์มือถือส่วนมากมักล็อกว่าระบบปฎิบัติการที่จะนำมารันได้ ต้องเป็นของผู้ผลิตโดยตรงเท่านั้น ทำให้เราไม่สามารถติดตั้งระบบปฎิบัติการตามใจชอบเองได้ ยกเว้นว่าระบบป้องกันมีช่องโหว่ (ในโทรศัพท์หลายๆ รุ่นที่เราสามารถลงรอมได้เอง) หรือโทรศัพท์บางรุ่นก็ไม่ล็อกเอาไว้ เช่น ตระกูล Nexus
ปัญหาต่อมาคือวินโดวส์เองต้องการเรียกฟังก์ชั่นบางอย่างจากระบบบูตเพื่อบูตตัวเองขึ้นมา อย่างที่เราเห็นบนพีซีจะมี BIOS หรือ UEFI ระบบบูตแบบนี้จะต่างไปบนโทรศัพท์
ถ้าเราปลดล็อกโทรศัพท์ให้รองรับระบบปฎิบัติการที่เราอยากลงได้ และแก้ไขให้วินโดวส์รองรับระบบบูตของโทรศัพท์ได้ มันก็น่าจะรันได้ครับ
ในโลกความเป้นจริง ชิปพวก Atom ก็มีแท็บเล็ตวินโดวส์รันอยู่แล้ว พวกนี้ไมโครซอฟท์ไปตกลงกับผู้ผลิตเครื่องให้รองรับวินโดวส์ และฝั่งไมโครซอฟท์เองก็แก้ไขระบบบูตของตัวเองให้เข้ากันไปแล้ว
lewcpe.com, @wasonliw
ขอบคุณมากครับ ละเอียดดีครับ
แต่ผมต้องอ่านหลายๆรอบแล้วล่ะ (555) แต่พอเข้าใจแล้ว ขอบคุณมากครับ
x86 ทำอะไรไม่ได้ครับ แม้กระทั่งแอพเป๋าตังก็ไม่รองรับ ส่วนใหญ่ใช้armv7a,v8a