mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-22 02:21:34 +00:00
A toolkit for building secure, portable and lean operating systems for containers
This adds a new notify channel to the transfuse protocol. It is not optional yet but could be made to be optional. A notify protocol and notify channel are required because writing FUSE response messages to the FUSE device has different semantics from writing asynchronous notifications. In particular, response message writes only error on malformed messages, do not take locks, and do not block. In contrast, asynchronous notifications can error under normal conditions (e.g. invalidating a cache entry that doesn't exist), can take locks during the write call, and can block. If responses and notifications occur in the same thread, the file system can become deadlocked when syscalls lock resources waiting for a response and a notification is written that blocks attempting to acquire those same locks. The response that would unlock the contended lock could be queued behind the notification write but the notification write can't unblock until the response is written in the future. This patch enables file systems to avoid that fate by offering a secondary channel on which to send notifications. Signed-off-by: David Sheets <dsheets@docker.com> |
||
---|---|---|
alpine | ||
docs | ||
licensing | ||
requirements | ||
scripts | ||
xhyve | ||
.dockerignore | ||
.gitignore | ||
Dockerfile.qemu | ||
Dockerfile.qemu.armhf | ||
Dockerfile.qemuiso | ||
Dockerfile.test | ||
Makefile | ||
README.md |
Base repo for Moby, codename for the Docker Linux distro
Initial requirements are being driven by the very minimal goal of replacing boot2docker for the new Mac app.
However these requirements are fairly small and the scope is intended to be much broader.
Simple build instructions: use make
to build. make xhyve
will boot it up on a Mac; unless you run with sudo
you will not get any networking.
make qemu
will boot up in qemu in a container.
You can build for arm, some parts still under development, make clean
first, then make qemu-arm
will run in qemu.