มีวิธีรันไบนารี Linux บน macOS หรือไม่?


16

มีวิธีรันไบนารี Linux ใน macOS หรือไม่? ฉันพยายามรันไบนารี แต่มันบอกว่ามันไม่สามารถเรียกใช้งานได้


สิ่งนี้จะไม่ทำงาน เคอร์เนล OSX ค่อนข้างแตกต่างจากเคอร์เนล Linux
ott--

OS X ไม่ได้ใช้ไบนารีของเอลฟ์ดังนั้นมันจึงค่อนข้างเหมือนกับพยายามเรียกใช้ windows .exe อย่างไรก็ตามการค้นหาสั้น ๆ พบสิ่งนี้: osxbook.com/software/xbinaryหากคุณสามารถคอมไพล์รหัสของคุณใหม่ก็ไม่ใช่ปัญหา
orion

XBinary ต้องการโปรแกรมที่รู้วิธีเรียกใช้ไบนารีของคุณ มันในและของตัวเองไม่ทำงานอะไรเลย
saagarjha

คำตอบ:


9

คำตอบเหล่านี้ถูกต้องครึ่งหนึ่งเนื่องจากการจำลองเสมือนเป็นตัวเลือก แต่มีอีกทางเลือกหนึ่ง ฉันขอนำเสนอ ...

ประวัติศาสตร์

  1. ครั้งแรกที่มียูนิกซ์ประมาณปี 1972
  2. จากนั้น Timeline Split
    • ในปี 1977 ราคา $ 90 Bob Fabry และคนอื่น ๆรวบรวม / สร้าง BSD เวอร์ชันแรกซึ่งย่อมาจาก Berkeley Systems Distribution
    • ในปี 1991 Linus Torvalds โพสต์ใน Newsgroupเกี่ยวกับซอฟต์แวร์ที่เขาใช้จาก Richard Stallman ผู้เริ่ม GNU ในปี 1983 และ Linus'es UNIX เกิด
    • Apple ได้รับซอฟต์แวร์ NeXT ในปี 1996 หลังจากที่ Steve Jobs ถูกไล่ออกจาก Apple ในปี 1984 และใช้ซอฟต์แวร์และผู้คนที่นั่นเพื่อสร้าง OS X OS X คือDarwin OS + NeXT Desktop Environment และตอนนี้เรากลับไปที่ Bullet # 1 เนื่องจาก Darwin เป็นแหล่งข้อมูลปิดของ BSD สำหรับโครงการที่มาเปิดดูPureDarwin สำหรับหน้านักพัฒนาแอปเปิ้ลอย่างเป็นทางการดูแอปเปิ้ลที่มาเปิด

เราจะใช้สิ่งนี้ได้อย่างไร

BSD ใช้ระบบพอร์ตในการจัดการแพ็คเกจ ใช้กันอย่างแพร่หลายของเหล่านี้เป็นพอร์ต FreeBSD พอร์ตคือแพ็คเกจที่ติดตั้งโดยตรงจากแหล่งที่มา เนื่องจากแอพพลิเคชั่นลีนุกซ์เดียวกันนั้นมาจากแหล่งเดียวกันคุณสามารถรันแอพพลิเคชั่น Linux ได้หากมีพอร์ตอยู่ อย่าใช้พอร์ตเหล่านี้บน Mac เพราะ ...


เนื่องจาก GUI ของ Apple ทั้งหมดเขียนขึ้นโดยใช้Cocoa API - WikiEntryซึ่งมาพร้อมกับ XCode - OS X สำหรับนักพัฒนาจึงสามารถปรับพอร์ตได้เพื่อใช้ประโยชน์จากสิ่งนี้:

  1. ติดตั้ง XCode สำหรับ OS X เวอร์ชันของคุณ
  2. รวมภายใน XCode เป็น GCC Compiler เวอร์ชันของ Apple และเครื่องมืออื่น ๆ ที่เกี่ยวข้อง การอัปเดตให้ดูโพสต์นี้ใน StackOverflow เครื่องมือนั้นขึ้นอยู่กับเวอร์ชั่นของระบบปฏิบัติการเช่นพวกมันไม่เข้ากันได้กับความรู้ของฉัน (โดยย่ออย่าติดตั้ง XCode สำหรับ 10.8 กับ 10.6 เป็นต้น)
  3. เมื่อติดตั้ง XCode แล้วตอนนี้คุณมีคอมไพเลอร์และสามารถมุ่งหน้าไปยังหน้าMacPortsและเรียกดูพอร์ตที่คุณต้องการติดตั้งหลังจากติดตั้งตัวติดตั้ง MacPorts .pkg

ข้อแม้

ระบบพอร์ตไม่จำเป็นต้องทำการตรวจสอบการพึ่งพาเว้นแต่ว่าพอร์ตจะเขียนได้ดี ฉันสัมผัสกับปัญหาเบา ๆ ในelibc_FreeBSD หมายถึงอะไรในการซ้อนทับ gentoo portage?


18

ฉันเพิ่งเริ่มใช้Noahเพื่อรัน Linux ไบนารีใน macOS คุณสามารถติดตั้งโดยใช้ homebrew ( brew install linux-noah/noah/noah) จากนั้นคุณควรจะสามารถทำสิ่งนี้:

noah linux_binary

จากประสบการณ์ของฉันพฤติกรรมของไบนารีนั้นตรงกับสิ่งที่ฉันเห็นบนเครื่อง Ubuntu ของฉัน


แม้ว่าคำสั่งจะทำงานและไม่มีข้อผิดพลาดเพิ่มขึ้นไบนารีของฉันไม่ทำงานตามที่คาดไว้
techkuz

2

วิธีเดียวที่ฉันรู้ว่านี้สามารถทำได้ผ่านการจัดเรียงของบางvirtualization ตัวอย่างเช่นคุณสามารถใช้คนจรจัดซึ่งเป็นเสื้อคลุมเรียงลำดับรอบ VBox หรือ VMware ของ VMware ของ Oracle สิ่งอื่น ๆ ที่จะทำบางครั้งใส่ในภาชนะเช่นนักเทียบท่า


2

การจำลองฮาร์ดแวร์

ไม่ได้โดยตรง! ใช่อย่างที่บอกว่า rocky คุณต้องจำลองมันด้วยVirtualBox , VMWare Fusionซึ่งจะตรงกับประเภท CPU ของคุณ

นอกจากนี้ยังมีQemuซึ่งจะจำลองประเภท CPU ที่แตกต่างกันเช่น Intel หรือ Power เป็นต้น

การจำลองซอฟต์แวร์

นอกจากนี้ยังมีการจำลองเลเยอร์ซอฟต์แวร์ด้วยโปรแกรมเช่นWiNEและโปรแกรมemulayerของฉัน (WiP) ทั้งสองเลียนแบบ Windows OS บางส่วนโดยการแปลงการเรียกระบบเป็น POSIX

แอปพลิเคชัน Linux ส่วนใหญ่จะทำงานบน OSX โดยมีการคอมไพล์ซอร์สใหม่


ฉันแก้ไขลิงก์ให้คุณแล้ว ยินดีต้อนรับสู่ U & L.SE
eyoung100
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.