Sitemap
0xMarik

0xMarik

Cybersecurity expert | Red teaming | Blue Teaming | Systems | Programmer | Critical Thinker | Teaching Methodologies | Educator | Self-Development

Press enter or click to view image in full size
A screen shot of ubuntu terminal with an arrow pointing at a terminal saying “This is NOT a terminal”
Thumbnail image

That’s Not a Terminal — The Truth About Linux Terminals

5 min readDec 17, 2025

--

What if I told you… this is not a terminal?
What you’re looking at is an emulator.
And the real terminal? It used to be a physical machine.

Let me show you the real story behind what we still call ‘the terminal’ today.

A Youtube video that explain Unix-like terminal

let’s go back in time. In 70s,

Computers were massive, expensive mainframes that cost millions of dollars. No one could afford a personal computer, so these mainframes had to be shared between multiple users.

Press enter or click to view image in full size
Two images of old mainframes huge that took space
I photo of two old mainframe that were used in the 70s

The solution? Terminals. A terminal was a simple device — just a keyboard, a monitor, and a serial cable connection. No CPU, no RAM, no motherboard, no hard disk. Nothing.

Just an Input from the keyboard and Output to screen

Press enter or click to view image in full size
An illustration of a terminal with a keyboard that has two arrow one pointing to screen saying that is an output, and the other pointing to the keyboard saying the is Input
Illustration of a terminal

One famous example is the VT-100 terminal

Press enter or click to view image in full size
A photo of an old terminal called VT-100
A photo of VT-100

It would connect via serial cable to a central mainframe computer — like a VAX-11 — and that mainframe would do all the actual computing.

Press enter or click to view image in full size
A schema that represent 6 terminals each linked to a mainframe that connected to a mainframe
Terminals connected to a mainframe VAX-11

These devices were called ‘terminals’ because they were the terminal point — the endpoint — where users interacted with the computer

And something else a ‘TTY’, which you’ll see everywhere in Linux, stands for ‘teletypewriter’ — those were even older machines that literally printed output on paper before monitors existed!

Press enter or click to view image in full size
An old photo of an old teletypewriter machine
A photo of teletypewriter

So the terminal was just your window into the system. As this photo show how they worked.

Press enter or click to view image in full size
I video show two persons using mainframe one using terminals and other fixing something in the mainframe
How it used to work with terminal

Even though physical terminals are obsolete today, the concept of terminals still exists in Linux. The Linux operating system has software that can communicate with terminal devices, and it offers ways to access that functionality both physically and virtually.

Press enter or click to view image in full size
A schema represent show an arrow to a physical console as the old way and the new way is using a software that point to a virtuale console whithin the system
Schema showing changing from physical console to virtual ones

Let me show you what’s actually running on a Linux system right now.

[Let’s press Ctrl + Alt + F3]

This screen is called a virtual console.

I’ll enter my username and password — and this is exactly how Linux systems were used years ago: no windows, no mouse, just pure text.

If I run the command tty, it tells me which terminal I’m connected to.
As you can see, I’m on tty3.

Press enter or click to view image in full size
A black screen showing the virtual console of a Ubuntu system
A black screen showing the virtual console of a Ubuntu system

What’s interesting is that this isn’t a separate physical device.
There’s only one keyboard and one screen —

but Linux virtually splits them into multiple independent consoles.

These virtual consoles are text-mode login sessions built directly into the Linux kernel.

You can switch between them using Ctrl + Alt + F1 through F6, and each one runs independently in the background — even while a graphical desktop is active.

Get 0xMarik’s stories in your inbox

Join Medium for free to get updates from this writer.

Before graphical environments existed, this was Linux and it still applied in version that don’t require a graphical environment like Ubuntu server.

Now let me open what you probably use every day:
a terminal emulator.

Let’s run the same command again: tty.

Press enter or click to view image in full size
Showing screenshot of an Ubuntu desktop with a terminal emulator opened and the command tty with the result /dev/pts/0
A terminal emulator file system

This time, instead of tty3 or tty4, we get something like /dev/pts/0.

This tells us we’re no longer on a virtual console.

What you’re looking at now is a terminal emulator — a graphical application that simulates a terminal in software.

If you check the application menu on some Linux distributions, you’ll literally see it named “Terminal Emulator.”

Press enter or click to view image in full size
A screenshot of Kali desktop menu that shows the naming of terminal is terminal emulator
In Kali a terminal is named as Terminal Emulator

Now you know why.

Press enter or click to view image in full size
A screenshot of several terminal emulators
A screenshot of several terminal emulators

These programs are emulating the behavior of old physical terminals,
but instead of real hardware, they use pseudo-terminals.

That’s what pts stands for: Pseudo-Terminal Slave.

Each terminal window you open gets its own device file:
/dev/pts/0,1,2, and so on.

So while it looks similar to a virtual console, it’s actually a GUI program talking to the kernel through a virtual device.

So what’s the relationship between virtual consoles and terminal emulators?

Press enter or click to view image in full size
A schema that represent where the virutal console are in the system as they are a part of the kernel, and the temrinal emulators as they are app on GUI
Virtual console is a part of the Kernel and the Terminal emulator is a GUI app

They’re actually siblings — two different ways to achieve the same goal: giving you a text interface to communicate with Linux.

Virtual consoles are implemented directly in the kernel. No GUI needed. They’re your emergency backup — if your graphical desktop crashes, you can always press Ctrl+Alt+F2 and still access your system. You can see it a lot in servers version where GUI is not installed. Like Ubuntu server as we said before.

Terminal emulators in the other hand are GUI applications that run inside your desktop environment. They’re more convenient for daily use, but if your GUI crashes, they go away too.

Here’s the beautiful part: from the shell’s perspective, it doesn’t matter! Whether you’re in virtual console or terminal emulator, the shell just sees a terminal device and works exactly the same way.

Press enter or click to view image in full size
A meme showing a astraunat saying earth as a file and saying “Wait it’s all File” and the other astraunaut saying “Always has been” pointing a gun to him
Everything is a file

There’s a well-known concept in Linux: “Everything is a file.”

That doesn’t just apply to regular files like documents or scripts —
it also applies to devices.

Keyboards, disks, screens… and terminals are no exception.

In Linux, terminals are represented as device files.

Virtual consoles appear as: /dev/tty1, /dev/tty2, and so on.

Terminal emulators, on the other hand, use: /dev/pts/0, /dev/pts/1, etc.

This file-based design is what makes Unix-like systems so powerful — programs don’t talk to hardware directly; they just read from and write to files.

Press enter or click to view image in full size
A schema that have two arrow the upper one has the user and an arrow to device and a X beside a Linux logo and the bottom one has an arrow from the user to a file saying read and write and then from file to device saying Kernel-managed and a Checked beside a Linux
The right way to interact with devices

So next time you open a terminal, remember that you’re just interacting with these device files.

If you found this helpful, go subscribe to the channel https://www.youtube.com/@AsgardTech, hit the like button, and drop a comment that you came from medium, see you in the next one.

--

--

0xMarik
0xMarik

Written by 0xMarik

Cybersecurity expert | Red teaming | Blue Teaming | Systems | Programmer | Critical Thinker | Teaching Methodologies | Educator | Self-Development