I get the feeling from other posts on the subject that this might be a delicate topic for hardcore Linux/Unix users, so apologies for any issues there, I'm honestly completely ignorant...

I only recently started using Linux (or maybe it's Unix, I don't know) for my PhD. Please could someone "explain-like-I'm-5" what Unix & Linux each are?

  • Why are they both a thing?
  • How are they fundamentally different?
  • How are they fundamentally the same?
  • And, importantly, how do I know which one I'm using?

I'm from a Windows background, although I can't say I know a lot of technical stuff about Windows either...

  • Welcome to the site. In order to help contributors point you to the right direction, please describe the working environment you are using. Are you querying about a desktop PC system, or about one you connect to only remotely. Is it only text console, or graphical? If you open a text console and type uname, what is being displayed?
    – AdminBee
    May 29, 2020 at 8:23
  • 1
    Hello JonnyBolton. There are myriad articles "out there" - and also here on unix.SE that cover the "What" of this question. Examples 1, 2, 3, 4. As for the "Which", please update your question with the output of uname -a.
    – roaima
    May 29, 2020 at 8:24
  • @roaima Thanks for the links. Silly me, not thinking of looking "out there". uname -a returns Linux comp-pc-210134.leeds.ac.uk 3.10.0-957.27.2.el7.x86_64 #1 SMP Mon Jul 29 17:46:05 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux for my University PC, and Linux DESKTOP-4JPTMUR 4.4.0-17763-Microsoft #1217-Microsoft Mon May 05 16:09:00 PST 2020 x86_64 x86_64 x86_64 GNU/Linux for the Windows machine which I'm currently using to remotey access my University PC. So I'm guessing I'm using Linux May 29, 2020 at 8:28
  • I'm running Windows Subsystem for Linux, to access a Linux PC? May 29, 2020 at 8:30
  • 1
    It's only obvious when you know where to look. If you don't know about uname it's kinda tricky. I'll write you an answer
    – roaima
    May 29, 2020 at 8:44

1 Answer 1


There are two parts to this question. The "What" has been answered many times and is arguably a duplicate

Suggested articles here on unix.SE

Suggested articles "out there" include

Now as to the "Which", one command to use is uname -a. (You can read up on this with man uname.) For example,

  • Linux on a Pi - Linux pi 4.9.35-v7+ #1014 SMP Fri Jun 30 14:47:43 BST 2017 armv7l GNU/Linux
  • Cygwin (not a Linux) - CYGWIN_NT-10.0 MYPC 3.1.4(0.340/5/3) 2020-02-19 08:49 x86_64 Cygwin
  • OpenBSD (not a Linux) - OpenBSD localhost.localdomain 6.7 GENERIC#1 amd64
  • NetBSD (not a Linux) - NetBSD localhost.localdomain 9.0 NetBSD 9.0 (GENERIC) #0: Fri Feb 14 00:06:28 UTC 2020 mkrepro@mkrepro.NetBSD.org:/usr/src/sys/arch/amd64/compile/GENERIC amd64
  • macOS (not a Linux) - Darwin localhost.localdomain 19.4.0 Darwin Kernel Version 19.4.0: Wed Mar 4 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64 x86_64

Not the answer you're looking for? Browse other questions tagged or ask your own question.