 afternoon folks. Hey, my name's Amir and I'm going to talk to you about one of the projects I'm working on relate to Unicernals is Unicernal.org and I'm wearing my Unicernal systems hat today. I work on a number of open source stuff but as some of you may have noticed from the news yesterday that's now also part of Docker. So briefly about myself, I worked mostly with Mirage OS and what I tend to do there is herd cats so I make sure that the community side of things works well that we're having regular chats about the kind of things we're working on. I also started looking at what's going on in the wider Unicernal community as well and just a bit about my background. I used to be a physicist then I was a neuroscientist for a while. I've been in the Cambridge computer laboratory for four years, experienced from startups and big companies as well and this year I hope is going to be the year of Unicernals. Of course, big statements. Clearly, if we look at what happened over the last year though, we've had a lot more people writing about what's going on with Unicernals. Some of these are now interesting to read in hindsight given yesterday's news but lots more people are interested in this technology, what it could mean for them and generally what's happening in this space. As part of this, we've also had new implementations being released so Runtime.js and IncludeOS also came out towards the end of last year and this is really, really exciting. There are now at least 10 or so projects that I know of, implementations, all trying to take this approach of building these systems, thinking from the ground up, either thinking from the ground up or taking existing pieces of software and breaking them up and making them more usable as libraries. We've heard from a number of these today as well. Adam from HLVM and Richard from MirageOS and a number of these are also out there. Some of them weren't able to make it today so I actually asked if they were able to come and talk. It's great that there's so much activity, so many people trying out these ideas and coming up with their own ways of moving forward with this. This is awesome. This is fantastic. It's great to see other people trying to do this. I know there have been conversations between some of the projects about issues with TCP and what have they learned while they've been building their version of the networking stack. There's lots of choice out there and that means there's lots of opportunity for both the people building these things and implementing them but also from learning from each other while building. There's an example of cross-project pollination. Because we're all working in the same kind of area, generally some people are trying things out and it's worth learning from each other the best way to do things, especially when those things are common. For example, MirageOS has some deployments for ET2. They were kind of bashed together. Someone from one of the other projects came along, took a look at these and had a go at making a launch script for Rump Run. They discussed that on the Rump Run mailing list. They took the script from MirageOS, refined it, made it much better. That also got imported into Rump Run. It became part of the Rump Run project. That shows an example of how something that started up in one project helped benefit a different project and ended up being better for everyone. There's also other work going on where MirageOS in this example is trying to run on bare metal and using piece components from Rump Kernel and make great progress is being made. This is a case of two different projects coming together to try and achieve something. From our point of view, this is fantastic because we're all working on these different things. We can all talk to each other and figure out what's going on and then combine things as and when we need them. But there's a downside to this. With great choice comes great discombobulation. People get confused. When someone out there says, what's this uniconal thing? What does it mean for me? Where do I go find out some information? What is it? Then they go and find out there are about 10 projects. They're all having their own way of doing things. There are maybe 10 different ways of building stuff, 10 different environments that you might need. So it gets a bit complicated. Then you end up having discussions like this on the Internet. Essentially, someone saying, well, you just need one of them to win, don't you? I can do this because I know Gareth. I know Gareth very well. We talk a lot. Essentially, his point is it would just be easier for this whole movement to do much better if there was just one of them. If one of them wins out, wouldn't that be better? That question? Oh, I see what you mean. I see, yes. Gareth essentially, the point of this tweet essentially, it would be easier for the whole thing to get forward if there was one that was clearly ahead of the others. But all of those projects are making different trade-offs. For example, we've heard from Mirage OS today, which is taking a clean slate approach to everything. All the libraries are being built from the ground up. That's a principle. There's a lot to be done. There's a lot to learn from that, and a lot of benefits to that. And of course, there are a lot of trade-offs to that. Rumpkernel takes a different approach, which is looking at all the solid components that exist in NetBSD, making them available as libraries. There are trade-offs there as well. And you, as someone writing applications, should be able to choose with your own trade-offs which pieces are going to be most useful to you. So having these multiple projects out there is really important, and it's important to nurture them. And because a bunch of the projects are actually language specific, it will be really sad that this became a proxy language war. That's not really going to benefit anyone. We've been there before. So what do we do about it? We all want to have all our own projects. We all want to work on stuff that we're working on, because we have certain needs. We have certain goals that we're trying to work towards. But Unicernel is our thing. People are asking about them. People want more information about them. We all want to get more users on board. We all want to get users on board and more developers, more contributions on board. So we have to do something about this to help balance both. So this is one approach to taking that. So Unicernel.org is a community website. So it is exist, and it's meant to help all the projects achieve more users, more growth, more contributions, and actually help solve some of the common problems. Develop.Unicernel.org is a place where there's a forum, which works very well with email, before anyone asks me about that, and where you can actually grow your project's communications. So it's community-driven, which means essentially we get to decide what direction it's going to go in. It's just getting started. The aim is it's going to be a single entry point. So when people want to find out what Unicernels are, what's the point, what are the benefits, what are the trade-offs, this is a place we can start pointing them. And it will start to increase in value in terms of helping people understand what's going on in this ecosystem as well. It will provide a window to what's going on with the other projects. It should also ease the process of bringing everyone in, as I just mentioned, across all the open-source projects. And importantly, it's not just a community-facing website, this should also help us start solving common problems around configuration, deployment, and monitoring. All the things that we are all going to have to solve if we want to have deployments of our Unicernel projects. So this is what it looks like. The first thing you'll notice is that I am not a designer. So this is a fairly simple site. There's information on there now. It will go through a redesign. So I'll just quickly show you the site. And if I can find my mouse, great. I'm on the wrong side. So I'll just show you what the site looks like. Let's try that. So it's fairly basic because it's mostly about the content. And so we just have some information so that people can get a quick overview of what's going on. All the projects are listed here. So if you're interested in following any of the projects you've seen today, you can just go to Unicernel.org slash projects. They're all linked from here. And so if you know of one that does not happen to be here, please do send a pull request. There is resources because many of the projects also write papers. So this is one about the Rumpkernel project. Here's one that talks mostly about Mirage OS. So this is also a place to highlight the work that's going on. And we also help highlight the individual projects as well. So yes, that was yesterday's news. But IncludeOS being released also wrote a post for this site, which was shared with a lot of people. Because IncludeOS was newly released and volunteered a post for the site, which was great. So it's a sign that this is working. And this is the forum where essentially we can comment on blog posts and share information. So it's possible to set up categories on this site where essentially IncludeOS is thinking about doing this where a category will just be effectively like a mailing list for them. But it's easy for them to then engage with something across a different project just by looking somewhere else or tagging someone in a certain question. So it's a little bit like mailing lists and get her issues if you're familiar with both of those. OK, let's go back to the slides. If you have questions, please do shout out. So that's essentially the website itself. And this is the developed part of the web forum. And so what happens next? We are getting better designs for this site. And we will have some form of branding for it as well. So I've noticed that people, when journalists like to write articles about this, they would like to have a graphic. So we'll come up with a logo. And I would like all the people who are working on unicolonial implementation to discuss what needs they have. So essentially get involved in the forum and say what there is that they're working on, what things will be useful for them, and we'll see what we can do to help. There's also discussions that we've had. I know that's taken place on the Mirage List and perhaps others about joint unicolonial events. For example, the idea of a unicolonial install party has happened. So this is where people from one project want to find out what it's like. Essentially just get started with tools from another project. So a bunch of the Mirage List people want to try out how VMs sit in a room together and actually get started, or people from different projects gathering together to essentially help each other get started with the projects. And we can also start working towards shared infrastructure. So unicolonial org doesn't have to be just a website. It can also be a bunch of stuff behind the scenes as well, essentially serving things for people. So for example, we could set up some kind of continuous integration system that helps deal with all the packages from all the different projects. And this is a discussion we can have with everyone to see how useful this would be and what shape that should take. And essentially it should grow as the community grows. If more unicolonial implementations arrive, we can work with them to figure out what their needs are, incorporate them into this ecosystem. The idea here is generally, all the projects should do well, and then the whole movement will do well. So here's what I need from all the people working on unicolonial is essentially, we need you. Get involved with the website. Sign up to the forum, raise your questions. And if you have information or content that you think should be on the site that is not there, either send a pull request or comment or send me a note and we'll start working on it. And so back to this tweet that I've pointed out earlier, essentially this idea that there should only be one unicolonial project that should succeed. And essentially it's this site. So if this site works, then essentially all the projects will raise the tide for all the projects. And this movement has a chance to actually start becoming mainstream and helping people write software for software in a different way. Any questions? Go ahead. Yeah, standards, I think I'm talking from a personal viewpoint, is occur from two ways. You either start doing stuff and see what works across projects. Try things. So iterate your way towards something. Or if there are too many multiple things already out there, then you essentially have to get everyone in the room and sit together and talk lots and try to figure it out. What I'm hoping is that since we're all still relatively early, if we can all work together and actually iterate our way to something that was common for everyone, that's going to be a way to achieve something that is like standard without having to have lots and lots of long meetings. We actually produce things that work for each of us. Yeah, and that's the kind of thing we should work towards through the forum, through the forum and meeting each other. Go ahead. Excellent question. At the moment, it's people who are working on those projects. So if someone wants to submit a pull request to the site, then essentially it'll just be looked at and merged. If someone has a suggestion for some infrastructure that they need, then essentially we'll figure out how to make that work. So in terms of governance, right now, a few of us made the site. We came from Unicernal Systems. And now that's part of Docker. So Docker will support this site going forward, but it is still a community-driven site. What does control mean? They'll have some influence because Docker tooling is something that will be useful. The Mirage OS and the Mirage and Rump Run, the demo that we did was useful. So that's something that those two people who are working on those projects will be interested in. But in terms of control and telling this community what's going to happen now, yes. Pretty fairly significant. Well, that depends on what happens with people who are working on the Unicernal implementations right now. So if the community gets involved with this, then it's the community that's driving this. Excellent question, not yet. You'll notice an issue on the GitHub issue tracker. So this is all on GitHub, so this is all available to look at. And yes, we want to run it on a Unicernal, but not just one of them. I want to be able to run it on all of them. So essentially, I would like to be able to load balance across all the different Unicernal implementations. So I know how to turn this into a Mirage OS Unicernal, for example, because I've done that before, but I would also like to be able to run this as a Rump Run Unicernal using Nginx, and perhaps also as a HLVM Unicernal, and essentially have something to load balances across all of them, so when someone visits a site, it serves them one of them. So that would be really cool to get going. But at the moment, no, this is not a Unicernal. So if you want to help me get to this, get this to a Unicernal, that would be great. Oh, of course. Anymore? Yes, I've talked to about half of them now, and they're happy with it. So Include OS, for example, contributes to the blog post to this website, which is fantastic. Mirage OS is obviously keen on this, contributes to the Rump Run Unicernal project, are also keen on this. So there are people who are happy with this, and the forum that I said, for example, I didn't set that up without checking with those people first that they would actually be interested in using it. Yes, people are involved in this. I'm pointing at the tweet, I should also point at this. So I'm also interested in getting feedback from people on this talk, and also the things I've said. So if you go to that URL, you'll see a little form, you can leave me comments there. Anymore questions? So how many of you have come across this website before? Wonderful. How many of you are now gonna go visit this website and sign up for the forum? If there are no further questions, I'm 10 minutes early.