First look: Running full Linux apps on a Chromebook with Project Crostini

If you haven’t heard about Project Crostini yet, you’re missing out on what may be the most exciting new advance coming to Chromebooks. To make a long story short, Crostini allows a full Linux virtual machine environment to run in safe, sandboxed containers within Chrome OS. There’s no need to use the less secure Developer Mode — with Crouton — for this, which makes it an ideal solution to run traditional desktop apps.

Since this solution is in its early stages, I had been holding off on kicking the tires. But after reading this Google+ post from John Bowdre showing how Crosini looks on a Pixelbook, I decided to take the plunge.

Note that to run the Linux VM in a Chrome OS container you have to currently:

  1. Have a Pixelbook
  2. Be on the Dev Channel
  3. Enable the experimental #enable-cros-container flag

The second reason is why I was holding off: Since my Pixelbook is my daily driver, I like to stay on the Stable Channel. Heck, let’s throw caution to the wind!

This site lists the steps on how to get Crostini running on a Pixelbook but basically you just open up a crosh terminal by pressing ctrl+alt+t on your Pixelbook keyboard and run these two lines. Note that for <username>, I entered my first name as the account.

  • Create crostini VM vmc start dev
  • run_container.sh –container_name=stretch –user=<username> –shell

That’s it. You’ll see a standard terminal where you can now download, install and run Linux packages.

Project Crostini package list

I haven’t yet played around with getting a graphical user interface up, but I have installed a few apps I’d consider using for my coding hobby: Eclipse and Sublime Text, in particular.

Project Crostini Eclipse installed

Project Crostini Sublime Text installed

I can use these apps just as I would on any traditional operating system. And anything I store is persistently stored in the VM file system. After shutting down my Pixelbook and powering it back up the next day, I opened the Linux container, ran Sublime Text and was able to retrieve a saved Python script.

I’ll continue to tinker with this but have a few observations based on my limited use:

  1. This opens up Chromebooks to a whole new world of offline desktop application use, of course, and nicely supplements Android app usage. I anticipate that folks will install Steam for gaming as well as programming tools and possibly productivity suites in cases where GSuite doesn’t fully meet needs.
  2. There’s still plenty of work to be done from what I can see. Crostini uses a ton of memory so I don’t know how well optimized it is yet. And my guess is that a Chromebook with 4GB of memory isn’t going to cut it.
  3. It’s not likely going to be for mainstream Chromebook users as it’s a bit complicated for now. There aren’t even any icons in the Chrome OS shelf to indicate you’re running a Linux app in a virtual machine, although it looks like that’s in the works. And we should be able to pin and launch Crostini apps from the shelf at some point too. However, you can use the alt-tab key combo to switch between Chrome OS and the Linux apps. And from what I can see, window resizing is working well.

I strongly suspect that we’ll hear more details of Google’s strategy involving Linux containers at Google I/O next month. That’s really a developer event and right now, this looks to be the missing piece for developers who need to code directly on a Chromebook and not use workarounds like I do.

11 thoughts on “First look: Running full Linux apps on a Chromebook with Project Crostini

  • April 18, 2018 at 1:33 pm
    Permalink

    I’m writing to represent the linux-illiterate segment of the chromeos enthusiast followers! I’ve jus never had a need to learn/use linux for myself and though linux based servers were the backbones of several businesses I ran in the good old days, that was the realm of “the IT people.

    But besides being retired and having time and desire to pick up some new skills, you really piqued my interest mentioning running more robust productivity apps than G-suite – and the Android MS Office apps still leave a lot to be desired. So, a few basic questions:

    1) do many popular productivity applications that run on Windows and MacOS also run well in Linux? I’m especially interested in full-blown Excel and One Note.

    2) Are there distros that run under Crostini that are GUI-driven and somewhat user friendly?

    3) What are some good ways to learn Linux? My strength and weakness here is that I can get almost anything done in Windows; I remember one time years ago needing to learn to get around OSX quickly and there were some good tutorials that were based on teaching the OSX equivalents of pretty much all Windows commands and operations. Anything like that around for Linux?

    4) It seems like Ubuntu is a very popular linux distro. Is it particularly user-friendly? Will a version run under Crostini?

    I’m sure some of my questions reflect my near total ignorance but don’t feel the need to be diplomatic! Just point my way towards developing Linux literacy and I will be very grateful. Thanks

    Reply
    • April 23, 2018 at 12:33 pm
      Permalink

      Consider this a bump of my original set of questions. I’m pretty embarrassed that I know so little about Linux that I asked some really stupid questions. Still, I would be really grateful if someone would just point me in the right direction. Thanks.

      Reply
      • April 28, 2018 at 9:48 am
        Permalink

        Sorry for the delayed response, Jeff, and don’t feel like you’re asking silly questions. 😉

        Couple of thoughts:
        1. Rather than me saying what specific programs do or don’t have a Linux version, my best answer is to do what I do: Search Google “One Note for Linux”, etc… I also recommend this site, which lets you enter an app name and it returns any possible Linux alternatives if there’s not a native version: https://alternativeto.net/platform/linux/
        2. I think it’s a bit too early in the Crosini life-cycle to know what (if any) GUIs will run. Keep in mind though that a Linux terminal and the command line are Linux-mainstays and you can learn a lot without the GUI. (In fact, I recommend it!) I suspect to keep things simple, Google will lean towards keeping Crostini for Linux apps, not a full Linux GUI desktop type of interface because it could confuse some by having two “desktops” if that makes sense.
        3. This list of topics will get you a good basic understanding of how to use Linux: https://www.linux.org/forums/linux-beginner-tutorials.123/ However, if you have about $35, a monitor, keyboard and mouse, I recommend “splurging” on a new Rasperry Pi and using the Raspian distro. It’s pretty straightforward, low-cost and you can learn a ton by tinkering. Plus the Pi community is super helpful IMO.
        4. I think Ubuntu is fairly user friendly among the main distros. Note that although the Raspberry Pi org has it’s own “noobs” distro of Raspian optimized for the Pi hardware, you can put Ubuntu on it if you want to tinker. https://wiki.ubuntu.com/ARM/RaspberryPi The beauty of the Pi is that everything runs off a microSD card so you could have a card for each distro if you want to learn & compare.

        Hope that helps a little!

        Reply
        • May 10, 2018 at 8:18 pm
          Permalink

          Thanks Kevin. I only just noticed your response. I just may acquire a Raspberry Pi and play around with it. The alternative is to wait until Crostini is more advanced and I can do the same things on my Pixelbook. What is most enticing to me is the possibility of ditching my Windows machine in favor of my Pixelbook as my sole daily driver. As it is, I still find I travel with my Surface Book “just in case” and, while it’s a wonderful piece of hardware that shares many attributes with the PB, it’s about 0.7 lbs heavier and doesn’t run Android apps which are approaching being more must-have than the few things I can’t do – or do well – on Chromeos. Plus, I must admit, once you’ve gotten used to both Chromeos and the Pixelbook, you really don’t want to work on another platform – though if I had to pick one, it would be the Surface Book, which I acquired new as a close-out for a song – less than the Pixelbook cost me – once the SB2 became the one everyone wanted. Thanks for the support. Jeff

          Reply
  • April 18, 2018 at 2:25 pm
    Permalink

    Is this definitely just the Pixelbook or might the Chromebook Pixel 2015 also have access?

    Reply
    • April 19, 2018 at 3:13 pm
      Permalink

      For the moment, it’s just Pixelbook. However, there are code commits by the Chromium OS team to indicate they’re working on this for other devices/chipsets, so it’s possible the 2015 CB Pixel could see it. We’ll have to see when Google makes an official announcement. Hopefully, next month at Google I/O!

      Reply
  • April 21, 2018 at 11:54 am
    Permalink

    Is this really using a full blown virtual machine? Sounds like a pretty bloated solution to running user applications. How does this affect power consumption and resource usage?

    Reply
    • April 23, 2018 at 7:03 pm
      Permalink

      The overhead is mainly the memory footprint of running a second Linux Kernel that implements Containers. Indications that I have seen elsewhere suggest that you will take about a 5% hit in performance with crosvm. BTW, no hardware is emulated in crosvm, so you have to stick to applications compiled for the architecture native to you Chrome device.

      Reply
  • April 22, 2018 at 3:06 pm
    Permalink

    The Debian build of Eclipse is a version from late 2012, as they haven’t had volunteers to keep it up to date. If you can, please use something more current like a download (tarball) from download.eclipse.org itself.

    Reply
  • May 29, 2018 at 1:31 am
    Permalink

    First of all,your blog is officially my favorite find on the internet for 2018, I am new to Chormebooks, having bought my first Pixelbook (bottom feeder version-intel i5-$999 version) and it easily the best laptop I have ever owned. As new as I am to Chrombooks, I have been a Linux enthusiast since loading Suse in 2003, so the question about wheter an entire Linux distro could be launched in Crostini peaked my curiousity. I agree, it may not at the outset, but why not offer a dual boot experience without the dual boot for those (like me) who would enjoy that sort of thing? If the hardware is up to the task, it should be an option in my opinion, even if it ‘s a lightweight distro like Xubuntu or Lubuntu. I also think it might be likely down the road, if Fuchsia ever replaces Android and Chrome OS, in that it’s a modular OS. Way far in the future, I think a Chromebook could launch any OS you want or pay for in a Fuchsia world. MS, Mac, Linux, Fuchsia? Take your pick. Ok, Mac might be a hard nut to crack, but if someone is willing to pay to load the Apple OS, Apple still makes money so, why not? I’d be happy if only half of these predictions were right, but I do believe they are possible, if only in theory.

    Reply
    • May 29, 2018 at 11:53 am
      Permalink

      Thanks for the kind words! I hear you on the dual boot scenario and there have been code commits that suggest Google is working on a dual boot situation. As for why it hasn’t yet happened (or even may not happen), it has to do with the three S’s that are Google’s primary pillars for Chrome OS: Speed, Simplicity and Security. Allowing for total user control of a second OS could compromise security, which is why with Project Crostini, Google has implemented the Linux VM in a sandboxed container within Chrome OS. I’m not suggesting that Google won’t allow for dual booting or some other situation where they cede control over to users – after all, you can use Crouton scripts in Developer Mode to install various Linux distros. But even in that case, Google warns you (on every boot up!) that your device is not as secure as it would be in traditional Chrome OS mode.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.