0

I am a computer science minor and I do appreciate *nix a lot more since i started to delve into computer science. I used to be a windows fan boy and now i own two macs (as well as my PC which has windows and ubuntu on it).

I want to learn more about how linux was developed. I know that linux is only the kernel and the GNU is actually the most of what I am interfacing with. So when I type ls -al on my mac which uses unix how is it different from when I type ls -al on my Ubuntu boot on my PC? Does the difference actually lie in the differences between linux and unix? Or does unix use a non-GNU libraries for stuff like ls and cd?

So what exactly are the difference of linux and unix? Does Unix use GNU libraries for ls, cd, and all those common terminal operations?

HalosGhost
  • 4,790
  • So unix is an entire operating system, Linux isn't? So why does everyone call them linux based operating systems instead of GNU based operating systems. – user3123955 Nov 09 '14 at 21:57
  • 1
    The real name should be GNU/Linux, but many people say Linux to talk about the kernel and the software (faulty) on the top of the kernel. – Gilles Quénot Nov 09 '14 at 22:07
  • 1
    But why does linux get all the credit? Why aren't there OS distros that run GNU without Linux? And does that mean GNU is actually the real clone of Unix? – user3123955 Nov 09 '14 at 22:09
  • 1
    You can use GNU stuff without Linux kernel, think about *BSD – Gilles Quénot Nov 09 '14 at 22:11
  • So BSD based OSs usually use the GNU tools? Does this mean my Macbook using BSD Unix (i think that is what Macbooks run on) and my Ubuntu boot use the exact same tools? – user3123955 Nov 09 '14 at 22:26
  • 1
    @sputnick *BSD don't use GNU tools. I think they've all got their GNU dependencies down to at most GCC, and some have switched or are switching to Clang. There's a system with a BSD kernel and a GNU userland, Debian GNU/kFreeBSD, but it's not very popular. GNU tools with a different kernel would be GNU Hurd, which will be ready any day^Wyear^Wcentury now. – Gilles 'SO- stop being evil' Nov 11 '14 at 03:51

2 Answers2

4

UNIX is an old family of operating systems. There are many different branches in its evolution. Take a look at http://www.levenez.com/unix/ for example.

Linux is a now very common flavor of Unix. It was rewritten from scratch in the '90 and then spread all over the world since. Mainly because it is a kind of free software.

In the past there were two main branches in Unix flavor : ATT/SYS V and BSD. ATT was proprietary and BSD a kind of free software by Berkeley University.

For a user, what makes a system Unix is the set of commands. ls or ps are such commands. You can write your own version of these but you can also use the GNU ones. GNU is an old project about providing free software tools for every one.

In general, on proprietary Unixes the tools are proprietary, under BSD you will have the BSD flavor and in Linux family you'll have GNU. This is why the later is sometimes called GNU/Linux.

The main differences in all these many Unix reside in specific/technical things : the way threads are supported, specific file system or such kind of things. The common part of all these Unixes is called POSIX, an old tentative to standardize the core of the system.

  • so why do people call linux a clone of unix when really GNU is the real clone since it is the thing that copied all of unix's commands? – user3123955 Nov 09 '14 at 22:14
  • Linux is a kernel, GNU is a set of tools (working on top of a kernel). It then depends on what you focus on... If you are a system programmer then you are interested about the kernel, if you are a user then GNU is your realm. – Jean-Baptiste Yunès Nov 09 '14 at 22:17
4

Well "Linux" is mainly the kernel you can download at http://kernel.org, which comes usually bundled with all the GNU utilities. Various distributions like Ubuntu add all kind of software and some packaging tools. - The result is often wrongly called "Linux", too.

Unix at the other hand refers to a whole bunch of different systems: Unix history

Some of them are commercial, others are free. Most of them have a monolithic core containing all the standard tools, but those tools like ls are usually not GNU and slightly different in usage. However they usually follow the same standards like POSIX.

michas
  • 21,510