Quote:
Originally Posted by
sreyan32
Okay I am making this post to clarify one of the most confusing topics that I have had about Unix and Linux.
Why do you say that Linux is not Unix ? I mean they are both POSIX compliant and they use the same commands.
Well, for starters, because they say so. GNU is short for "GNU's not UNIX".
Second, because nobody's bothered to certify it. They
say they implement POSIX commands portably, but haven't actually been through the UNIX group's rigorous battery of tests. Testing isn't free AFAIK, and Linux changes very fast, so I can understand not bothering.
Quote:
Why is it not ? Is it just because it does not have an official certification ? Or are there actual differences at the kernel level ?
It hasn't undergone certification. Just implementing the right system calls isn't enough, an OS has to go through a rigorous battery of tests.
How the kernel works inside matters less, to a degree. There's only one obvious way to do some things, but others, there's lots of choices.
Quote:
Okay once again another ultra noobish question. What is a terminal device that you are referring to above. I know its not the terminal in Linux or the command-prompt in Windows. What exactly are they?
The terminal device is a serial port -- either a real, physical serial port, or an emulated one(i.e, a vterm). Any proper terminal in UNIX, even a graphical one, will use one.
This is because UNIX serial devices come with lots and lots and
lots of built-in software features. Have you ever hit ctrl-C to kill a stuck program? The serial port, even an emulated one in a GUI, does that directly. It has a "send SIGINT when you hit this key" setting.
Quote:
What do you mean by nested partitions ? The partitions in Linux/Unix are separate right?
Imagine you're running out of space on drive C in Windows, and add another hard drive to deal with it. Now you have a drive D with lots of space -- which is no help at all since C is where you need it.
In UNIX, you could attach the new drive's partitions wherever you wanted -- /home/ for example, if that particular folder is very big. The new partition would be empty, though -- you'd have to copy the old contents into it before it could be used.
That's all I mean.
Quote:
Please don't misunderstand when I say - Are you sure about the Windows kernel not being able to run numerous processes simultaneously ? It may have been true for older Windows like XP, but from Windows 7, Windows is pretty good at multitasking.
This isn't about multitasking, it's more like a memory leak. Running many tiny processes -- even in a row, load/run/quit/load/run/quit -- fills up some queue or table inside the Windows kernel. Eventually it tells you "can't do that, out of room". It's not quite a leak since it's temporary.
In UNIX, once you've
wait()ed for a program it's gone -- all its memory returned, its slot in the process table free, etc, etc. But Windows seems to give the "all clear" the instant the program you're waiting for
wants to quit. This might be higher-performance -- you can do things instead of waiting while it cleans up -- but means that, under certain kinds of loads, resources can be used faster than Windows cleans them up.
I have seen this happen here on unix.com with many different versions of Windows, when people use things like Cygwin or Busybox to run UNIX shell scripts under Windows. Things which are merely inefficient in UNIX -- running
awk 100,000 times to process 100,000 lines -- actually break down randomly in Windows.