As of Chrome OS 69, support for Linux applications is a baked in part of the operating system. Once enabled, this installs the Terminal on your Chrome OS system, but what is it and how does it compare to Crosh?
Don’t worry if all that sounds like gibberish to you—if you’ve never spent any time poking around in your Chromebook’s guts, then you’ve likely never used (or even heard of) Crosh. And if you’ve never used Linux before, well, then you’ve never had to bother with the Terminal. The good news is that we’re going to make sense of both things today.
First Off, What is Crosh?
Simply put, Crosh stands for “Chrome Shell,” and it lets you run commands that usually don’t have graphical tools. You can do things like installing Crouton for a full Linux OS on your Chromebook or checking the device’s battery health—more “advanced” stuff, to put it crudely. If you’ve ever used the Command Prompt or PowerShell on Windows, Crosh is Chrome OS’ version of that tool.
You can access Crosh on your Chromebook by hitting Ctrl+Alt+T to open a new Chrome tab with a black screen and an input prompt. Pretty simple.
The nice thing about Crosh is that if you never have to use it, you’ll never know it was there. You can’t accidentally stumble into Crosh and mess something up, in other words. It stays out of the way—there for the power users, and hidden for everyone else.
Okay, So What is the Terminal?
In short, the Terminal is the Linux version of Crosh or the Windows Command Prompt/PowerShell. It’s used to execute text commands, install applications and a lot more. On a full Linux system, the Terminal is one of the most used, most powerful tools people have at their disposal.
By comparison, the Linux Terminal is quite a bit more powerful than its Chrome OS counterpart, because you can use it to control the entire system. It’s also a crucial part of how Linux apps work on Chrome OS.
Why ChromeOS Needs Both Crosh and the Linux Terminal
The Terminal and Crosh are similar tools—in fact, they’re the same basic concept, but the Terminal is specifically for the Linux aspect of Chrome OS, where Crosh is for the Chrome OS side.
You’d be forgiven if that doesn’t make a lot of sense right out of the gate—they’re both running on the same machine, at the same time after all. But they’re not connected.
One of the biggest benefits of Chrome OS is its enhanced security. As a result, most things on the operating system run in an independent sandbox. That means that most elements don’t really interact with each other—for example, if a single tab suffers a failure and crashes, the other tabs in the browser window aren’t affected.
Linux apps (and Android apps for that matter) work in a very similar fashion. They run in a secure sandbox inside of a virtualized environment. In other words, they aren’t running natively on the machine—they’re being virtualized and run separately from the rest of the OS. Again, if something happens within this secure container, the rest of the OS will be unaffected. This also is why Linux and Android apps take a bit of time to launch for the first time after a reboot—the system has to get the virtual machines up and running.
You can think of Chrome OS in its current state as three operating systems in one: Chrome OS, Linux, and Android. The latter two are stripped down versions compared to their full OSes, and all three operating systems share the same kernel, which is what makes all this possible in the first place.