Giter Club home page Giter Club logo

wang-bin / darling Goto Github PK

View Code? Open in Web Editor NEW

This project forked from darlinghq/darling

0.0 2.0 0.0 22.25 MB

Darwin/macOS emulation layer for Linux

Home Page: http://www.darlinghq.org

License: GNU General Public License v3.0

GDB 0.01% CMake 0.38% C 68.13% C++ 13.58% Makefile 0.22% Objective-C 4.55% Shell 0.63% Objective-C++ 0.07% Assembly 5.43% HTML 0.01% Lex 0.02% Groff 6.60% Awk 0.16% Yacc 0.04% Perl 0.09% DTrace 0.01% Python 0.08% M4 0.02% XSLT 0.01%

darling's Introduction

Darling

Darling is a runtime environment for OS X applications.

Please note that no GUI applications are supported at the moment.

Download

Darling uses many Git submodules, so a plain clone will not do.

git clone --recurse-submodules https://github.com/darlinghq/darling.git

Updating sources:

git pull
git submodule init
git submodule update

Build Instructions

For complete instructions, visit DarlingHQ.org.

For running x86-64 OS X binaries

cd darling
mkdir -p build/x86-64
cd build/x86-64
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86_64.cmake
make
make install

# Now we go into src/lkm to build the kernel module
cd ../../src/lkm
make
make install

For running i386 OS X binaries

cd darling
mkdir -p build/i386
cd build/i386
cmake ../.. -DCMAKE_TOOLCHAIN_FILE=../../Toolchain-x86.cmake
make
make install

Loading the kernel module:

modprobe darling-mach

# ATTENTION: The kernel module is likely unstable,
# full of vulnerabilities, etc.
# You SHOULD restrict access to /dev/mach to trusted
# users only and be prepared to the eventuality of
# kernel hangups (and related data loss).

chmod a+rw /dev/mach

Hello world

Let's start with a Hello world:

$ darling shell echo Hello world
Hello world

Congratulations, you have printed Hello world through Darling's OS X system call emulation and runtime libraries.

Installing software

You can install .pkg packages with the installer tool available inside shell. It is a somewhat limited cousin of OS X's installer:

$ darling shell
Darling [~]$ installer -pkg mc-4.8.7-0.pkg -target /

If you have previously downloaded the Midnight Commander package from Rudix, you can now run mc to start MC for OS X. For easier installation, install the Rudix Package Manager. Note that not all Rudix packages may work under Darling.

You can uninstall and list packages with the uninstaller command.

Working with DMG images

DMG images can be attached and deattached from inside darling shell with hdiutil. This is how you can install Xcode along with its toolchain and SDKs (note that Xcode itself doesn't run yet):

Darling [~]$ hdiutil attach Xcode_7.2.dmg
/Volumes/Xcode_7.2
Darling [~]$ cp -r /Volumes/Xcode_7.2/Xcode.app /Applications
Darling [~]$ export SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
Darling [~]$ echo 'void main() { puts("Hello world"); }' > helloworld.c
Darling [~]$ /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang helloworld.c -o helloworld
Darling [~]$ ./helloworld
Hello world

Congratulations, you have just compiled and run your own Hello world application with Apple's toolchain.

darling's People

Contributors

akovalyov avatar btaczala avatar crwulff avatar jcoffland avatar lubosd avatar mmueller2012 avatar patriotyk avatar samhocevar avatar sbinet avatar shinh avatar thetumultuousunicornofdarkness avatar thopiekar avatar thorsummoner avatar whereswaldon avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.