Tock Logo

Talking Tock

Tock Userland has Graduated

Recently, pull request #987 was merged, moving the Tock C userland into its own repository: libtock-c. This puts the C runtime for userland applications on the same footing as the growing Rust userland, and further emphasizes the kernel-userspace separation present in Tock.

Developing, testing, and using C applications should be the same as before the split. The repository changed, but the build system is the same.

Tock App Repository

The primary concern about splitting C apps into their own repository is it places a new hurdle in front of new Tock users to get code up and running quickly. To try to alleviate this, a new feature was added to Tockloader to allow it to grab a Tock application (.tab file) from the website, and install it to a board. This, for example, allows someone to verify that they can get their board to blink without actually having to compile the blink app.

Doing this is straightforward:

$ tockloader install blink

This is very preliminary support for a remote app repository, but we expect it to expand in the future.

Loose Ends with the Move

The C userland and the kernel have been coupled since Tock was started to be developed, and many references and pointers in the documentation were intertwined between them. We have found and tried to straighten out most of these, but almost certainly there are lingering links or sentences that do not quite fit anymore. If you find one, please let us know through a pull request, issue, or on IRC.

Part of a Larger Push

As Tock matures, certain components have matured to the point where they are useful outside of Tock, are shared with multiple individual projects, or need their own repository and issue tracker. The C userland is one example, but there are others as well: