Linux itself is not a copy of Unix because one can argue it simply conforms to the POSIX standard. However, how about the GNU Coreutils which contains utilities like ls, cd and rm, etc...? Is there any standard defining the names of these basic utilities and their behaviors? If not, can we say it was copied from Unix?

  • 5
    Define “copied” (and “Unix”). For suitable definitions, you could also say POSIX copied from Unix … – chirlu Jul 1 '13 at 9:07
  • Is this a real question? Sorry to be rude if it is, but this really looks like flamebait (intentional or not, I guess). You don't need to use 'code tags' for proper nouns, but you should pick them more carefully. To wit, "Linux" isn't copied because it was written from scratch by Linus and later authors. This is why RMS insists on calling it GNU/Linux; usually that seems pedantic, but really relevant here. There is more than one Linux, and more than one Unix. Linux-based OSs are not 'copied' in any usual sense, but they are certainly designed to be Unix-style. – hunter2 Jul 1 '13 at 10:03
  • Additionally, there are many relevant histories you can read. If you pull up the Wikipedia pages for Linux, GNU, POSIX, and Unix (in that order), and just skim near the top, you'll have this answered thoroughly. @chirlu, You could also say that Unix copied from Multics, or from filing cabinets. Not a very useful definition ... Also, gotta be a dupe ... – hunter2 Jul 1 '13 at 10:06
  • Related: Were all Unix commands re-written in Linux? – a CVn Aug 4 '13 at 11:05

All these utilities and their behaviors are defined in the POSIX standard.

  • However, the GNU Coreutils versions often have non-POSIX extensions. – chirlu Jul 1 '13 at 9:08
  • So? The POSIX standard is exactly the standard you asked for. Unless you're saying that the non-POSIX extensions to GNU Coreutils are close to (~ 'a copy of') some kind of Unix, and that Unix is a different standard ...? – hunter2 Jul 1 '13 at 9:57
  • Some if the members of the Coreutils utilities are independent inventions, and/or not specified in POSIX. For a trivial example, base64 solves a problem which didn't exist when POSIX was specified. – tripleee Jul 1 '13 at 10:23
  • @tripleee The need to transmit binary files over non-binary-safe channels didn't exist in the second half of the 1980s (POSIX dating back to 1988)? What about Usenet in 1980? E-mail even in the early 1970s? While from a quick glance around the web Base64 specifically doesn't seem to have been used until 1993, the problem it solved surely must have existed on an Internet where 8-bit-safe links were anything but guaranteed. – a CVn Jul 1 '13 at 21:34
  • @tripleee The problem did exist when POSIX was specified. uuencoding predates base64, and the uuencode and uudecode utilities are covered by POSIX. – David Baggerman Jul 1 '13 at 22:39

GNU is acronym of GNU's Not UNIX. GNU created to make Unix-compatible system without any use of Unix code, not ideas and command names.

  • POSIX was a standard developed 20 years after UNIX had been around. and the Single Unix Specification came in 1994 which made Unix a concept rather than a stream of source code. – Escoce Dec 14 '17 at 2:55

Coreutils is a consolidation of three utilities that used to be provided separately. Fileutils,textutils and shellutils all of which were provided by GNU. Shellutils provides the commands you cite, ls, cd, though I think rm comes from fileutils iirc. Going back a little further GNU was a project started by Richard Stallman to provide a free alternative to UNIX, and so mostly of the core set of commands you find on all UNICES were also available through GNU. Unfortunately for Richard, the Linux kernel got more attention than his unfinished HURD kernel and so the most popular UNIX or UNIX like system on the planet is a hybrid of the Linux Kernel supported and supporting the GNU set of utilities.

I was around in the linux world when this transition was occuring, and it made life a little difficult at first when one wanted to use different compiletime configurations for each one, but ce le vie. For a while there, my name was part of coreutils. I gave uname the ability to distinguish different Intel and Intel-Compatible processors from one another rather than just an i386. Until then all intel based unix systems were just high speed i386s and didn't take advantage of the different extended instruction sets available. That who CPU recognition block has now been completely replaced with something a lot more elegant and a modern, and you can only find my name as a historical reference in some antiquated patches that are still floating around, but still it was a cool feather in my cap for a few years and helped me land my first real IT job.

We may casually call the operating system Linux, but that's a truncation of what it really is which is GNU Linux or GNU/Linux.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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