달링 (소프트웨어)

달링(Darling)은 리눅스를 위한 자유-오픈 소스 macOS 호환성 계층이다. MacOS 프로그램이 호출하는 라이브러리 및 프레임워크의 대체 구현을 제공하여 macOS 기능을 복제한다. 이 복제 방식은 MacOS 프로그램이 가상 머신에서 실행되는 다른 에뮬레이션 방법과 다르다. 달링은 MacOS 앱을 실행하기 위한 WINE의 대응물로 불려왔다.

이 프로젝트는 2012년 여름에 시작되었으며, 시간 부족으로 중단된 maloader라는 이전 프로젝트를 기반으로 한다. 이 계층은 미드나이트 커맨더, The Unarchiver, 파이썬 등과 같은 많은 콘솔 애플리케이션에서 작동하는 것으로 나타났지만, 코코아 프레임워크를 기반으로 하는 그래픽 애플리케이션에 대한 기본적인 지원도 제공한다. 달링은 애플 디스크 이미지를 추출할 수 있다.

이 프로젝트는 미래에 iOS 애플리케이션을 지원하는 것을 목표로 한다.

 아키텍처 
달링 시스템의 입구에는 애플의 운영체제 실행 파일 형식인 Mach-O 바이너리를 위한 로더가 있다. 달링의 전신인 maloader는 애플의 동적 라이브러리 로더인 dyld가 하는 모든 것을 복제하려고 시도하여 문제에 대해 극단적인 접근 방식을 제시했다. 이것은 어렵다는 것이 입증되었고, 2017년 "Mach-O 전환" 이후 달링은 오픈 소스 애플 dyld를 시작하기에 충분한 경량 로더를 사용하고 있다.

MacOS 바이너리에 커널을 제공하기 위해 달링은 GPL 라이선스가 있는 리눅스 커널 모듈에 래핑된 수정된 XNU 커널(APSL 라이선스 포함)을 사용한다. 이것은 APSL 소프트웨어에 GPL 코드를 포함하는 것과는 다르며, APSL 라이선스는 다른 라이선스(이 경우 GPL)의 코드로부터 링크를 허용한다. 이 모듈은 주로 포트 IPC 처리를 담당하는 Mach 커널의 일반적인 작업을 처리한다. 팀이 APSL 커널에 GNU GPL 수정 사항을 추가함에 따라 darling-mach 모듈에는 일부 라이선스 문제가 존재한다.

커널보다 상위에는 루트 환경이 있다. 달링은 WINE과 마찬가지로 리눅스 OverlayFS를 사용하여 구현된 Chroot 접두사를 지원한다(WINE의 경로 변환과 반대). PID, IPC 및 UTS 네임스페이스는 내부 Darwin 시스템용 컨테이너 (가상화)를 생성하는 데 사용된다.

달링의 프레임워크와 시스템 라이브러리는 가능한 한 애플에서 공개한 소스 코드를 기반으로 한다. Mach-O 전환을 통해 이러한 프레임워크를 더 쉽게 빌드할 수 있다. 이제 의도된 Mach-O 형식으로 빌드되기 때문이다. 코코아와 같은 많은 상위 수준 프레임워크의 간격을 채우기 위해 달링은 Cocotron, ApportableFoundation 및 그누스텝의 코드를 사용한다.

 라이선스 
더 큰 달링 시스템은 다양한 라이선스를 사용하는 많은 외부 구성 요소를 기반으로 하며, 이 모든 것은 오픈 소스이다. 주요 라이선스는 GPLv3이다.

 각주 

 외부 링크 
 https://www.darlinghq.org/
 https://github.com/darlinghq/darling

분류:리눅스 에뮬레이션 소프트웨어
분류:호환성 계층
분류:자유 시스템 소프트웨어
분류:C로 작성된 자유 소프트웨어
분류:2013년 소프트웨어
분류:GPL 라이선스 소프트웨어