Video: How Project Crostini works to run Linux apps on Chrome OS

The New York Linux User Group recently had a pair of special guests: Googlers David Reveman and Zach Reizner. Reveman and Reizner presented all of the nuts and bolts put together for Project Crostini, which is the containerized method Google is using to support Linux apps on Chrome OS. Reddit user apsted pointed out the video, which I watched in its entirety this afternoon.

I’ll warn you in advance, the first half of this 85 minute video is very much down in the weeds from a technical perspective, but if you want to understand Google’s approach for supporting Linux apps on Chrome OS, it’s worth it.

And if you’d rather just see a demo of Linux apps running on a Chromebook, you can skip to 49 minutes in.

Some of the key takeaways I heard and saw include:

  • There are 13 steps behind the scenes if you double-click a Linux app icon in your Chrome OS launcher to get to the actually running of that app in a terminal; assuming that you don’t already have a terminal running. This is why it takes about 6 seconds (at least on my Pixelbook) before you see the app.
  • Many of those steps required Google to engineer custom solutions or services to manage the entire process and still reduce “attack vectors” from a security standpoint. After viewing this presentation, I’m confident that Crostini’s security is on par with that of Chrome OS.
  • All of the services Google created are named after French hospitality roles, such as concierge and maitre d. That I knew. But how Googlers pronounce them — intentionally wrong — is new to me and quite comical!
  • You can have multiple containers running at the same time; something else I knew but haven’t tried until this I watched the video.

  • During the Q&A period, a NYLUG member asked if this was meant to compete against Windows since Microsoft recently added a Linux subsystem option. That wouldn’t surprise me but being an engineers, Reizner joyously says, “We’re Linux hackers; we just want to code on our devices!”
  • While the default environment for Crostini is Debian Stretch, you can use it various other distros (think Ubuntu or Arch Linux) or containers.
  • Yes, the team is working to bring GPU hardware acceleration support to Crostini; Reizner himself is involved. Gamers, rejoice!
  • Project Crostini was first envisioned when ARC++ — the mechanism used to run Android apps on Chromebooks — was introduced in 2016.
  • Like everyone else (including me) who has Project Crostini running, the audience enjoyed seeing the Chrome browsing running in Linux within Chrome OS. It’s a geek thing.

There’s plenty more that I learned, but rather than spoil all of the fun stuff, tune in to the video when you have time.

4 thoughts on “Video: How Project Crostini works to run Linux apps on Chrome OS

  • July 27, 2018 at 6:27 pm
    Permalink

    How did you create that test container? With lxc?

    Reply
    • July 27, 2018 at 6:32 pm
      Permalink

      Yup, with LXC. Easy process. I’ll get a link for help if you need it.

      Reply
      • July 27, 2018 at 8:52 pm
        Permalink

        I was able to create a new container but can’t figure out how to log in with my gmail user id, the way Terminal logs you into penguin.

        Reply
        • July 28, 2018 at 9:02 am
          Permalink

          Yup, the way Google currently has this set up, it will always log into the pengiun container in the Terminal app. You’d have to go into Crosh and use that as your terminal for other containers (unless I’m missing something). This link is helpful for setup: https://www.reddit.com/r/Crostini/wiki/howto/uselxd#wiki_generic_containers

          Also, any new containers with distros other than Debian Stretch use the default root login; once logged in you can add users (your Gmail ID like in penguin, for example) and mod passwords using useradd / passwd Linux commands (if you want to).

          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.