All Projects → karton → Karton

karton / Karton

Licence: other
Karton - Run Linux programs on macOS, a different Linux distro, or a different architecture

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Karton

Atilo
Linux installer for termux
Stars: ✭ 629 (+622.99%)
Mutual labels:  ubuntu, centos, fedora
Fpm Within Docker
Leverage fpm inside pre-baked docker images in order to build and test native DEB and RPM packages.
Stars: ✭ 80 (-8.05%)
Mutual labels:  ubuntu, centos, fedora
Openvpn Install
OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora
Stars: ✭ 14,199 (+16220.69%)
Mutual labels:  ubuntu, centos, fedora
Anlinux App
AnLinux allow you to run Linux on Android without root access.
Stars: ✭ 614 (+605.75%)
Mutual labels:  ubuntu, centos, fedora
Ansible Role Apache
Ansible Role - Apache 2.x.
Stars: ✭ 341 (+291.95%)
Mutual labels:  ubuntu, centos, fedora
Anlinux Resources
Image and Script for LinuxOnAndroid App
Stars: ✭ 135 (+55.17%)
Mutual labels:  ubuntu, centos, fedora
Openvpn Install
Set up your own OpenVPN server on Debian, Ubuntu, Fedora, CentOS or Arch Linux.
Stars: ✭ 7,142 (+8109.2%)
Mutual labels:  ubuntu, centos, fedora
Vagrant Box Templates
Stars: ✭ 100 (+14.94%)
Mutual labels:  ubuntu, centos, fedora
Robox
The tools needed to robotically create/configure/provision a large number of operating systems, for a variety of hypervisors, using packer.
Stars: ✭ 303 (+248.28%)
Mutual labels:  ubuntu, centos, fedora
darknet.py
darknet.py is a network application with no dependencies other than Python and Tor, useful to anonymize the traffic of linux servers and workstations.
Stars: ✭ 71 (-18.39%)
Mutual labels:  ubuntu, fedora, centos
Open Build Service
Build and distribute Linux packages from sources in an automatic, consistent and reproducible way #obs
Stars: ✭ 599 (+588.51%)
Mutual labels:  ubuntu, centos, fedora
Ansible Role Security
Ansible Role - Security
Stars: ✭ 398 (+357.47%)
Mutual labels:  ubuntu, centos, fedora
Anlinux Adfree
AnLinux, Ad free version.
Stars: ✭ 127 (+45.98%)
Mutual labels:  ubuntu, centos, fedora
Wireguard Install
WireGuard road warrior installer for Ubuntu, Debian, CentOS and Fedora
Stars: ✭ 650 (+647.13%)
Mutual labels:  ubuntu, centos, fedora
Postinstall
💻 Bash Script to automate post-installation steps
Stars: ✭ 104 (+19.54%)
Mutual labels:  ubuntu, centos, fedora
Kvm Install Vm
Bash script to build local virtual machines using KVM/libvirt and cloud-init.
Stars: ✭ 248 (+185.06%)
Mutual labels:  ubuntu, centos, fedora
ansible-role-daemonize
Ansible Role - Daemonize.
Stars: ✭ 14 (-83.91%)
Mutual labels:  ubuntu, fedora, centos
Ansible Role Firewall
Ansible Role - iptables Firewall configuration.
Stars: ✭ 343 (+294.25%)
Mutual labels:  ubuntu, centos, fedora
Glim
GRUB Live ISO Multiboot
Stars: ✭ 452 (+419.54%)
Mutual labels:  ubuntu, centos, fedora
Mkosi
Build Legacy-Free OS Images
Stars: ✭ 589 (+577.01%)
Mutual labels:  ubuntu, fedora

[Web site] – [Install] – [How to use] – [FAQ] – [Contribute]

Karton

Karton is a tool to transparently run Linux programs on macOS or on another Linux distro.

$ uname -a # Show we are running on macOS.
Darwin my-hostname 16.4.0 Darwin Kernel Version 16.4.0 [...]

$ # Run the compiler in the Ubuntu image we use for work
$ # (which we called "ubuntu-work"):
$ karton run ubuntu-work gcc -o test_linux test.c

$ # Verify that the program is actually a Linux one.
$ # The files are shared and available both on your
$ # system and in the image:
$ file test_linux
test_linux: ELF 64-bit LSB executable, x86-64, [...]

$ # Same thing but on 32-bit ARMv7 (in the image we
$ # called "ubuntu-work-arm"):
$ karton run ubuntu-work-arm gcc -o test_arm test.c
$ file test_arm
test_arm: ELF 32-bit LSB executable, ARM, EABI5 [...]

$ # We can run the ARM program:
$ karton run ubuntu-work-arm ./test_arm
[... Output of our program ...]

In another terminal you can attach to the running program and debug it.

$ # Find the PID of the test_arm program.
$ karton run ubuntu-work-arm ps aux | grep test_arm
test_arm    42  [...]  test_arm

$ # Debug it!
$ karton run ubuntu-work-arm gdb --pid 42
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
[...]
Attaching to process 11
[...]
0x00007f53430e4740 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:84
84	../sysdeps/unix/syscall-template.S: No such file or directory.
(gdb)

In the example, by prefixing your commands with karton run ubuntu, you can run them on Ubuntu even if you are using macOS (or another Linux distro!). Files are shared across the two operating systems and executing commands like this is very fast, making the whole experience smooth.

Karton uses Docker 🐳 to create a semi-permanent container where all the commands are executed. The management of this container is transparent to the user, who doesn't need to worry about the Docker-related details.
Karton images can also be easily configured to share files or directory with your host system.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].