 3, 1, 2, 3? Oh, yeah. Much better. 1, 2, 3? Yeah. Yeah? Alright. Okay. Alright. Alright. 2 minutes for the wait here. 2 minutes left. Great. That's great. Yeah, don't worry. Any moment? Alright. So good morning, everybody. My name is Philippe Borges, and today I'm going to speak about boxes here. I hope you guys hear me well. So I'm a GNOME developer. I've been working for Red Hat and desktop team for the last one year and a half. But I'm a member of the GNOME community for, well, since I was a teenager, I was like doing translations, and lately I started to code and send patches here and there. I'm an application developer, so I'm pretty much plugging widgets and stuff, and lately I've been started to be interested in boxes. So I don't have actually a virtualization background, and this talk is supposed to be a desktop one, so don't expect much of a technical background into the virtualization stacks. And so my idea is pretty much having a selling speech for boxes. I want you guys to try boxes out and give us the feedback and try to make it your virtual machine and remote management tool. So the motivation for this talk is pretty much introducing boxes and also showing, speaking about the experiments I've been doing with GPU path through. John mentioned in his previous talk that there is this whole thing already with people sharing tutorials and so on and how to game on Linux, actually having a dedicated GPU, a graphic card for your games. And yeah, boxes aims to be this easy to use virtualization to where you actually can set up a machine, a box, with a couple clicks. And yeah, why not setting up a path through with a couple clicks as well. So lately I've been playing with these. I have a bunch of scrapes and so on, but my idea is to glue this in the UI and having like a just working solution for this corner case. But before I'd like to define a little bit of what boxes is. Because I would have to say that there's not much graphic things to show in a talk about this because it's pretty much just experiments I've been doing lately. And so I would like to focus on what boxes is as well in the beginning. And boxes is this virtualization tool for the use case, like for the workstation user. So it's something that you want to test a new thing on the rail. You want to test something on Windows and download machines and manage them easily. So it's definitely for the workstation use case. And boxes is not something for the enterprise or something like this. And later we're going to go to the path through. Here I put a bullet for modern GNOME app because boxes has been like a test bed for the newest stuff on GTK. And yeah, it looks very shiny with all the applications because we have this design oriented approach where the designers are the ones defining how the user experience should be. They are like doing these very good mockups. We have Yakopi here, which is our designer of boxes. And just after this step, we actually implement the stuff and get back to them and they don't like it and they go back and forth and so on. But it's really worth it because boxes looks pretty cool and easy and like well thought. So boxes is for virtual machines. It's on this front end on top of LibVirt. So LibVirt is just like the standard way of managing virtual machines on open source these days and we don't have to worry about all the key moves and KVM stuff because we pretty much use the binings. So boxes is front end. You also support remote machines. So you can actually use VNC and so on in boxes as like a remote accessing viewer and so on. So as I said, boxes is just for the workstation use case and it's not in our plans to actually support a lot of stuff, crowd UI with a lot of stuff. It doesn't mean to replace Virt Manager or any other of these tools. So yeah, it's just like keep this in mind when you're using boxes that we have a very specific use case. I made also a list here of some features I'd like to highlight about boxes which might get you guys interested on try it out. So express installation is pretty cool thing that you can actually feed the installer of the guest with some presets and boxes is able to install already thanks to Libo as info, RAL, Fedora, Windows, I think 6, 7, 8. Actually 10 works as well. So the express installation is really simple process where you just download this ISO and as soon as boxes recognizes that it's a supported express install thing. It's just does the whole installing thing you don't actually need to be doing stuff like an Anaconda in the Fedora case if that's what you want. Download ISIS and images is also really interesting because you can just type the URL there and boxes are going to download it for you and it also comes with this preset of ISIS that you might be interested on. So if you are like testing a lot of stuff in different versions of RAL and Fedora and you just type there like I want to install Fedora 21, Fedora 24 and it shows you, it shows some screenshots and we can see it clearly. Snapshots, yeah, snapshots are another concept which allows you to time travel with your virtual machine. It's really well designed in the sense that interacting with snapshots in boxes is really easy which is something that kind of is annoying in other tools. You can easily clone your snapshots, rename them and organize themselves. USB redirection is also really straightforward. You can use properties dialog where you can toggle the devices you want to map and the ones you're not. And Net Network allows you to make this bridge of communication between host and guest and it's just out of the box. It was really fine. So here's like when you open up boxes. I'm going to go through some screenshots so you guys can actually see what I'm actually talking about. And when you open box for the first time at the empty state and you can up there filter in the stack the locals and the remote machines will see them all. And there's new button which launches the wizard which is the whole good cool thing about boxes which makes your life so much easier. So here when I launch the wizard on my machine boxes use using tracker to be able to find these images I have in my file system and list them there. So the idea is that the GNOME apps they are activity oriented. So you want to manage your boxes, you open boxes, you want to manage your music, you open music and you're not going back and forth between apps. So here these are the images that I had to download it already but you can enter a URL and actually feed with HTTP served file or select a file in a traditional file browser type of thing. So here's the dialogue which has the download of Isos and images as said. You can paste there your URL of the ISO or actually the VNC whole bunch of things. But we came with this preset of common Isos that you might be interested on. So you can just get the version you want and boxes is going to download it. Here it's already downloading the media and you can go out for a coffee and after it gets back you'll get to this page where it's actually when you can toggle the express install I mentioned before. If you do this, boxes is able already to guess from your host operating system which username you are using, you can set a password. If it's a system like Windows, you can actually have an option here to set the serial number. So it's already being pre-fuelled for the installer and you don't actually have to do the installing boring process yourself. Or you can toggle off and go through the installer yourself. So here you can have an overview of what we're going to do. We can still customize the disk, memory and so on but I would stick the standards. And yeah, after you go for create here's how it looks like I was running Fedora 21 Workstation classic mode in a box's window. So it's really like bringing this virtual machine management experience to the easy way of handling the desktop like for desktop users and users. So still in DIY stuff that I'd like to highlight about boxes and try to get you guys to test it is like the properties dialogue is actually which allows you to do some more advanced management on the machine. Here you can use the connection between the host and the guest to actually share a clipboard between them and stuff like this. System tab here, you can set memory, resize disk, you have this cool graphics with the processes and stuff. Here the devices tab is actually like the most interesting. Here you have a list of the USB devices which are mapping and for this release we are already getting some patches through to get sharing folders between host and guest and here you also be able to talk them and let the machine know which files you are actually sharing between them back and forth. Here's the UI for snapshots which is really cool because it's really easy to manage and keep track of all the things it really saves my life sometimes. So what's coming next in these couple months that I started to actually contribute to boxes, we've been working in these new features and the network discovery of machines is also something that my land in this cycle we have GNOME release on the second week of February, something like that. And the network discovery of machines is pretty much that you allow a machine, either virtual or remote, to advertise itself over the network with Avahi and all the machines to discover just like you do with printers on the GNOME desktop. So it's also an easy way to actually add a new box to your GNOME boxes. The shared folders thing as well is like using spicy webdav you can set some public folder to share between the host and the guest. And it's really straightforward, we already have patches for this, I'm going to review them. The whole PCI pass through, you can actually map any PCI device because the backend already allows. These whole experiments we've seen on Reddit and on YouTube are pretty much about doing this with KMU and so on. There's like this famous video on YouTube about this guy paying Assassin's Creed on his Arch Linux and the, yeah, and like the performance is quite good, like it's kind of hard to estimate but it looks very native. I also experienced this, I have us set up with bit manager and a bunch of scripts to run stuff like this and it really runs very well. But we have some challenges still to face. And then RDP support is something that I'm working as well. It might take a little while but it's, RDP is like this most popular protocol for remote machines and unfortunately boxes still doesn't support it and Vinagre does it. And we are having also this initiative of porting Vinagre features into boxes so we can make Vinagre obsolete or something. Because it doesn't have any reason to have just two duplicate apps and boxes looks pretty cool so I would stick to boxes. So the path through the motivation, with path through you could actually run heavyweight applications like 3D modeling, games and games and games. And like with native performance as a guest. So I mean I don't need to go any further with the motivation. It's a very specific use case. I wouldn't expect that there will be a laptop in a marketing with extra graphic card or slot or something like this. So yeah, you actually have to have a case. I'm not aware of any of these things. So as a requirement you actually have to have a machine focus on this thing so it's not a use case which it's going to cover a lot of people but I'm really looking forward to have it. So yeah, you have to have a CPU with supporting virtualization and thanks to LibVirt we can use the KVM support for path through with some set of video cards. There's like some, like there's a list of video cards which are already tested in support. We have Nvidia Grid Quadro. It was just fine in my setup. Yeah, unfortunately I have to handle it with their proprietary drivers. Yeah, you would have to have an additional display adapter so you would have like two screens running one the host and one of the guest. And yeah, we are kind of challenged by this whole thing about managing two screens between the host and the guest in my setup really the resolution is quite not there yet. So, oh thanks. The whole reason we are not having very technical detail things here is that boxes is supposed to set up the thing in a couple clicks. So the whole difference for you guys is going to be that there's going to be a next option there is listing your graphic cards and enable you to toggle. But we're not going to be handling all this like the host will be stealing the graphic card trying to use it for something and you should actually be able to if you actually open your case and include that an extra graphic card I'm assuming that you are able to actually unload the modules of the graphic card on the kernel and let it be free for the guest. So you're going to be running your host in your native one and have the off-board the new one for the graphic card. So this setup is pretty challenging. I have to run a lot of comments that I'm still not sure about what they do specifically but it works and yeah, I have the hardest problems is mouse and resolution because you have to actually map from the host to the guest and I'm using like a 22 screen and like a TV and I'm mapping like the size of the window currently to the external one, like to the secondary one and so everything is kind of, yeah, it's very blurry and also the cursor. I guess virt manager as I read in some bug these days does this mapping for the cursor so you are able to reach the corners of the screen if the resolution is bigger than yours but I'm still not able to do it on boxes but I guess I'll do the same thing as they did or otherwise someone has a better solution. And yeah, I have also this slide here because I really want you guys to reach out for boxes. GNOME is a very welcoming community we are very welcome to new people interested in contributing, not just in code but translation, design, marketing and here we have the week page for boxes but have plenty of other apps which you can check it out we usually hang out on irc.gnome.org have the boxes channel also have the newcomers channel if you're interested in starting coding which you have like people dedicated there to help you out setting up your development environment and so on. All the development of boxes goes through bugzilla so attaching patches, reviewing patches asking for features and so on and yeah, I guess that's it. Thank you. So yeah, we have time for questions I guess like six, seven minutes. Yeah, you would have to have the spies oh, I have to repeat your question so he's asking how the shared folders work and yeah, we have this spicy like when you're running a spice type of machines they have this whole, this guest kit of, I guess it's called agent or something like this yeah, which creates this actually auto publishing with webdav, the public folder and here, right for sure. Yeah, I guess there's like some experiments oh, sorry, I should repeat it again he's asking whether instead of having like additional display adapter you'd have a mapping one and using for the guests and then getting back to the host there are some experiments with VGA assignment which I guess Alex Wilson, he works for Red Hat he's been doing this lately and yeah, I don't think it's supported on QMU and we are not consuming this only weird but yeah, my point of view is an application developer I'm pretty much just plugging the buttons I don't, I actually don't know the state of art on the VGA assignment whole thing So even when you were reattach the garbage to the system, what advice would you give him? Yeah, exactly, he was saying that we have this problem with innovative driver crashing when you get back from the guests to the host but this is something from the point of view of boxes that I don't think should be handling the application side because it would require us to run stuff out of the user land permission whole thing, right? Any, oh, Vladimir Yeah, this stuff I have run it he was asking whether the performance is equivalent to the native one when you are... What was the ratio? Yeah, I haven't used any official benchmark but the stuff I have run it, they run really well and I've seen people gaming and they would say it runs 98% but I don't know actually where they come from this percentage but I really think that we are very far away from doing this very evolved thing so yeah, I hope so Any more questions? Could you just monitor support multiple to avoid having a second monitor? So he's asking me to repeat the question whether you can actually put the two of the cards in the same monitor since some monitors have this ability to escalinate between them Yeah, I'm not sure I would have to dig it through but you have a... Yeah, that's true, like if you'd be able to tell the primary display to blank Yeah, I'm afraid I cannot answer this question I'm not sure about whether this is feasible whether it's done because it's something of a virtualization type of... Yeah, definitely He's asking whether I have done any other experiments other than graphics stuff No, not so far I'm pretty much just trying to actually launch the operating system in a more automatized way So I'm still not in the step where I'll be pushing forward on this but Yeah, what I have running so far is just pretty much trying to get windows to boot Yeah, that's it Well, Boxes is going to be able to recognize any PCI one which you have The thing is whether Q&Mude is going to be able to speak to your graphic card in the way and the list of supported ones is provided by them We just have one of them just to test So, yeah, I guess that's it Oh, question was there in the back I'm sorry, I didn't... Oh, I think there are people doing this with AMD I just think that the whole thing with the drivers is like a blocker on this thing but I think on Reddit to that famous thread that everybody's talking about there's one guy who actually did it and he has this whole work arounds he did it but I actually didn't try myself I don't have this thing and we are out of time Sorry That's it guys, thank you very much No batteries in that Guys, I'm going to ask you if you can please while the session is still running