달링(소프트웨어)
Darling (software)![]() | |
![]() MacOS(왼쪽)와 Linux(오른쪽)에서 시연된 간단한 'HelloWorld' 코코아 앱 | |
원본 작성자 | 루보시 돌레젤 |
---|---|
리포지토리 | https://github.com/darlinghq/darling |
운영 체제 | 리눅스 |
유형 | 호환성 계층 |
면허증 | 다양하고, 주로 GPLv3[1] |
웹사이트 | darlinghq |
Darling은 Linux를 위한 무료 오픈 소스 MacOS 호환성 계층이다.MacOS 프로그램이 호출하는 라이브러리 및 프레임워크의 대체 구현을 제공함으로써 MacOS의 기능을 복제한다.[2]이 복제 방법은 가상 시스템에서 MacOS 프로그램을 실행하는 에뮬레이션으로 간주될 수 있는 다른 방법과 다르다.달링은 OS X 앱을 실행한 이유로 WEIN의 상대역으로 불려왔다.[3]
이 프로젝트는 2012년 여름부터 시작되었으며, 시간이 부족하여 중단되었던 이전 프로젝트인 '말로이더'를 기반으로 한다.개발자는 Midnight Commander나 The Unarchiver 같은 애플리케이션을 계층에서 테스트하고 있다.지금까지 이 계층은 많은 콘솔 앱과 함께 작동하는 것으로 나타났지만, 현재 그래픽 어플리케이션에 대한 "기본적인 실험 지원"을 가지고 있다.[4][5]달링에게는 애플 디스크 이미지를 추출할 수 있는 능력이 있다.[6]
이 프로젝트는 또한 미래에 iOS 애플리케이션을 지원할 수도 있다.[7]
건축
달링 시스템의 엔트리에는 애플의 운영체제용 실행형 형식인 마하-O 바이너리용 로더가 있다.달링의 전임자인 악성코더는 애플의 동적 도서관 로더인 Dyld가 하는 모든 것을 복제하려고 노력함으로써 이 문제에 대한 최대주의적인 접근법을 제시했다.이는 어려운 것으로 판명되었고, 2017년 "Mach-O 전환" 이후 달링은 오픈소스 애플을 출시할 정도로 가벼운 로더를 사용해 왔다.[8]
MacOS 바이너리에 커널을 제공하기 위해 Darling은 Linux 커널 모듈에 포장된 수정된 XNU 커널을 사용한다.이 모듈은 주로 포트 IPC 처리인 마하 커널의 일반적인 작업을 처리한다.[9]팀이 APSL 커널에 GNU GPL 수정을 추가하고 있기 때문에 달링머치 모듈에는 일부 라이센스 문제가 존재한다.[10]
낟알보다 높은 것이 루트 환경이다.Darling은 WEIN과 마찬가지로 (WEIN의 경로 변환과는 반대로) Linux 오버레이fs를 사용하여 구현된 chroot 접두사를 지원한다.PID, IPC, UTS 네임스페이스를 사용하여 내부에 다윈 시스템을 위한 용기를 만든다.
달링의 프레임워크와 시스템 라이브러리는 애플이 출시한 소스 코드를 기반으로 최대한 활용된다.마하-O 전환은 이러한 프레임워크가 이제 의도된 마하-O 형식으로 구축되기 때문에 더욱 쉽게 구축될 수 있도록 한다.[8]코코아와 같은 많은 상위 레벨의 프레임워크의 공백을 메우기 위해 달링은 코코트론, 어포터블파운데이션, GNUstep의 코드를 사용한다.[11]
참조
- ^ "Darling". 16 October 2021.
- ^ Brodkin, Jon (6 August 2013). "OS X apps run on Linux with Wine-like emulator for Mac software". Ars Technica. Retrieved 23 January 2014.
- ^ Lynch, Jim. "Will we ever be able to run OS X apps in Linux with Darling?". InfoWorld. Retrieved 2018-07-23.
- ^ "Project Darling Is Still Trying To Run macOS/OSX Software On Linux - Phoronix". www.phoronix.com. Retrieved 2018-07-23.
- ^ "Darling". www.darlinghq.com. Retrieved 2022-03-07.
- ^ "Installing software - Darling Docs". docs.darlinghq.org. Retrieved 2022-01-27.
- ^ Heath, Nick (15 July 2013). "OS X apps on their way to Linux courtesy of Darling project". ZDNet. Retrieved 23 January 2014.
- ^ a b Bugaev, Sergey. "Mach-O linking and loading tricks". Retrieved 12 January 2020.
- ^ "Build Instructions". Darling.
Darling uses a kernel module to provide certain OS X specific features, mainly Mach Ports IPC. No OS X application can be run without this module, since Libc requires Mach Ports for its initialization and even for very basic things such as sleep().
- ^ "Issue: Code from Apple under the APSL is incompatible with the GPL". GitHub. Retrieved 12 January 2020.
- ^ "Homepage FAQ". Darling project. Retrieved 12 January 2019.