Toro kernel

A dedicated kernel for multi-threading applications.

Friday, May 17, 2019

Supports to virtiofs: almost done!

Hello folks! last two weeks I have been working on a virtio-fs driver for Toro. If you want to know more about this virtio device please see Roughly speaking, virtiofs is a virtio device that allows guest to access files in the host. This virtio device is based on FUSE. The host is the server whereas the guest is the client. The main motivation to add support to this device is to reduce the number of layer between the user and the access to disk. In a typical path, you have at least three layers: the vfs, the block buffer and disk driver. With this new driver we reduce the number of copies for every disk block to one, which is in the user space. Some tests shows me an speed up of 50% in comparison with virtio-blk/fat. If you want to see the code please check This is going to hit master in some weeks so stay tuned!


Tuesday, April 30, 2019

Toro boots on Firecracker

Hello folks! this time I want to talk about Firecraker and the possibility to boot Toro on it. I have presented some of this work at FOSDEM'19. You can find the slides here. Roughly speaking, Firecracker is a simple Virtual Machine Monitor (VMM) for KVM which is develop by Amazon and the goal is to boot light Linux VMs on x86-64 processors. It proposes a simple device model based on virtIO. The interest to allow Toro to boot on Firecraker is twofold:
1. To speed up the booting time. For example, after I worked on the bootloader, it was posible to boot up the kernel in about 20ms.
2. To reduce the footprint of the VMM thus allowing to run more toro's instances.
There is however a lot of remained work. For example, Firecraker is based on the new version of virtIO which is not supported by Toro. It is thus mandatory to work on the current virtIO drivers to support such a version.


Monday, April 22, 2019

New website and more!

Hello folks! I want to summarize the features/improvements in Toro in the last four months.

New Website 

I worked to change the website as you can see at I added a button where you can try the same website on a Toro server. This feature is still beta but I plan to host the whole site on such a webserver. This is the very first time that Toro is in production!

Support to AWS and Google Cloud Engine

I successfully tried Toro examples in AWS and Google Cloud Engine. If you want to try, you can find a tutorial at the website.   

Unit Testing

I added tests that run when a change is integrated into master branch. The tests run as a VM launched by travis.  Tests allow to prevent regressions.


I launched a new project named Tachyon which is a webserver based on the Static WebServer example. You can learn about this project at


Tuesday, March 12, 2019

Toro supports VirtIO block disks and Berkeley sockets

Hello folks! I am glad to announce that Toro supports virtio block devices (issue #158) and berkeley sockets (issue #268). I worked on these issues the last two months and they are already in master. To tests these new features, I modified the StaticWebServer example. You can see that the ata driver has been replaced by the virtio disk driver. Also, you can see that the non-blocking webservice has been replaced for the classical berkeley sockets.