linuxkit/linuxkit

Description: A toolkit for building secure, portable and lean operating systems for containers

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 11 minutes ago
Added to GitGenius on October 19th, 2024
Created on November 26th, 2015
Open Issues & Pull Requests: 375 (+0)
Number of forks: 1,024
Total Stargazers: 8,633 (+0)
Total Subscribers: 244 (+0)

Issue Activity (beta)

Open issues: 289
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 2,420 days
Stale 30+ days: 289
Stale 90+ days: 288

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • kind/enhancement (85)
  • area/build (64)
  • area/kernel (63)
  • kind/bug (41)
  • area/testing (35)
  • kind/security (25)
  • area/cli (17)
  • area/networking (15)

Most active issues this week

No issue events were indexed in the last 7 days.

Repository Insights (GitGenius)

Median issue/PR response: 18.7 hours
Mean response time: 280.2 days
90th percentile: 1286.0 days
Tracked items: 69

Most active contributors

Detailed Description

LinuxKit is a toolkit for building custom minimal, immutable Linux distributions designed specifically for container workloads. Written in Go, it provides a complete system for creating secure, portable, and lean operating systems that can run on various platforms from local hypervisors to cloud providers and baremetal hardware. The project supports x86_64, arm64, and s390x architectures, making it flexible across different computing environments.

The core philosophy of LinuxKit centers on immutable infrastructure applied to Linux distribution building. Rather than creating traditional mutable systems, LinuxKit enables users to define their entire operating system configuration in YAML files that specify a kernel, init system, system containers for onboot execution, long-running services, and additional files. This approach ensures reproducible builds and makes systems manageable through code, aligning with infrastructure-as-code principles. Everything in LinuxKit is replaceable and customizable, allowing users to swap components while maintaining secure defaults without sacrificing usability.

The toolkit includes the linuxkit command-line tool for building, pushing, and running VM images. Users can build images using make or go install, then customize them by modifying YAML configuration files. The build system supports multiple output formats including raw BIOS images, EFI bootable ISOs, and cloud-specific formats. Once built, images can be executed using linuxkit run with automatic platform detection or explicit backend selection across supported hypervisors like QEMU, HyperKit, Hyper-V, and Virtualization.Framework on macOS, as well as cloud platforms including AWS, Google Cloud, Microsoft Azure, and OpenStack.

LinuxKit maintains several related subprojects that extend its capabilities. LinuxKit Kubernetes focuses on building minimal and immutable Kubernetes images, while LinuxKit LCOW provides images and utilities for Microsoft's Linux Containers on Windows. The project also maintains a Linux kernel repository with LinuxKit-specific branches, a virtsock library for virtio and Hyper-V socket communication, and rtf, a regression test framework used in LinuxKit's CI pipeline. A Homebrew tap provides convenient installation on macOS systems.

According to GitGenius activity tracking, the repository shows median issue and pull request response latency of 18.7 hours across 69 tracked items, though mean latency extends to 6724.6 hours reflecting some longer-running discussions. The most active contributors include deitch with 181 tracked events, followed by Smithx10 and ChrisIgel. The project maintains connections with related repositories including lima-vm/lima, knative/serving, and containerd/containerd through overlapping contributor networks. Most active issue labels tracked include area/networking, status/0-triage, and platform/qemu, indicating ongoing work in networking functionality, issue triage processes, and QEMU platform support.

The project was originally developed from experience building Docker Editions but redesigned as a general-purpose toolkit. It is designed to be managed by external tooling such as Infrakit or similar infrastructure management systems. LinuxKit includes collaborative projects focused on kernel and userspace innovations, particularly around security. The system is completely stateless by default but supports persistent storage attachment when needed. Released under the Apache 2.0 license, LinuxKit maintains an adopters list and publishes monthly development reports documenting ongoing work.

linuxkit
by
linuxkitlinuxkit/linuxkit

Repository Details

Fetching additional details & charts...