Is UNIX an open source OS ?


 
Thread Tools Search this Thread
Operating Systems Linux Fedora Is UNIX an open source OS ?
# 8  
Old 07-24-2014
Quote:
Originally Posted by sreyan32
Okay first of a great many thanks for taking the time out to give me such a detailed explanation. I could'nt have got better. But I have a couple of questions.


Are you saying that for example I have a piece of source code like -:
Code:
#include<stdio.h>
main()
{
printf("Hello World"\n");
}

And I compile it on a SCO UNIX machine and take the executable to Solaris Machine the executable won't run. Are you saying that I would need the source of the hello world program and then I would have to build it back on the Solaris Machine ?


I am sorry but could you elaborate what you mean by this. The kernel is at the end responsible for how software interacts with hardware, so it kinda does everything.

One last question it may be off-topic. You said -:


How do I contact someone like Don Cragun ? I am not saying that your answers were wrong or insufficient in any way but if I wanted to contact him then how would I do it ? By private message ?


Yes it did immensely.
I try to read through all posts concerning the shell and the "standard" utilities and will usually comment if I see something that doesn't look right; but I may miss a posting once in a while. If there is something that you think needs my attention and I haven't commented on it, send me a PM with a link to the discussion thread and state what you think needs to be clarified/verified. I won't make any promises about how quickly I'll get to it, but I try to be responsive. Smilie

If you build an application on SCO UNIX and try to run the binary produced on any other operating system (Linux, HP/UX, AIX, Solaris/SunOS, ...) it probably won't work (but some minimal applications like HelloWorld might actually run successfully more often than many of us would expect. You certainly can't run a Solaris/SunOS SPARC or Motorolla chipset binary on an SCO UNIX x86 box, but you can rebuild that program from source on all of those systems and get the same results. (Of course your application source code can't get any guarantees about portability if it uses anything that the standards don't specify; or if it uses what the standards call "implementation-defined", "unspecified", or "undefined" behavior.)

To expand on what bakunin said, the POSIX Standards and the Single UNIX Specifications (which defines part of what is required to be certified by The Open Group as a UNIX System) are API (Application Portability Ineterface) standards; not ABI (Application Binary Ineterface) standards. Some systems also adhere to ABI standards. (For example, the SPARC Compliance Definition standards (SCDs) allowed you to build a binary on certain SPARC based Sun/Oracle Solaris systems and be guaranteed that it would also run correctly on some Fujitsu SPARC systems without rebuilding and vice versa.)

Cheers,
Don
These 4 Users Gave Thanks to Don Cragun For This Post:
# 9  
Old 07-24-2014
It does not really matter these days whether UNIX per-se is completely open sourced or not.
As some versions are, some are not, however the simplicity coupled with power at your fingertips is legendary these days...

As a novice at the *NIX family of OSes the single beauty to me is that everything is a __file__.
These __files__ can technically be read from and written to without much of a fuss.

Take the following, (this assumes /dev/dsp exists and an internal mic on your system)......
Code:
cat < /dev/dsp > /dev/dsp

......records a few seconds of voice then replays that recording from from the same device, continuously.
This could be the basis of a simple baby alarm all with the simplicity of "everything is a file".

So from one line of 25 characters of an open sourced command, cat , you have tremendous power at your fingertips.

This alone is both elegant and beautiful, and 'cat' along with other *NIX commands IS/ARE open source...
# 10  
Old 07-25-2014
Quote:
Originally Posted by Corona688
Do you get disk devices? Yes -- as drive letters, c:\ d:\ etc, not as direct files.
On Windows, if you use '\\.\' you get access to the device namespace. File namespace (the default) is accessed via '\\?\'

WinObj from the Sysinternals suite will allow you to browse the NT device namespace
This User Gave Thanks to fpmurphy For This Post:
# 11  
Old 07-28-2014
Quote:
Originally Posted by fpmurphy
On Windows, if you use '\\.\' you get access to the device namespace. File namespace (the default) is accessed via '\\?\'
Only by certain special means. As usual the user gets none of that.

That's what I see as the big difference between UNIX and Windows... The shell on UNIX is there to help you access what's there, the shell on Windows is there to stop you from accessing what's there.
# 12  
Old 07-30-2014
Quote:
Originally Posted by Corona688
Linux is not UNIX. Linux and the GNU utilities were actually made in a spirit of competition with UNIX.
The thing is, Linux and GNU weren't made to be a UNIX -- they were made in direct competition with it. GNU even stands for "GNU's not UNIX". This stems right from the bad old days when a license for the UNIX source could set you back a cool hundred grand in 1980 dollars...
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. Agreed that some options that are found in Solaris is not present in Debian, but the general working is same for both OSes.

Also since my college syllabus includes the UNIX OS this semester so I have been doing some amount of reading on the subject. And the book that is recommended to engineering students in India (UNIX Concepts and Applications by Sumitabha Das) goes as far to say -:

Quote:
The reason why Linux can't replace UNIX is that Linux uses the same system calls; Linux is UNIX
Now I just want to know how accurate this really is. And if so why do all the experts that Linux is not UNIX. Also as Corona688 mentioned above GNU is not Unix.

Why is it not ? Is it just because it does not have an official certification ? Or are there actual differences at the kernel level ?


---------- Post updated at 06:39 PM ---------- Previous update was at 06:26 PM ----------

Quote:
Originally Posted by Corona688
Do you get terminal devices? Not really, unless you use a com port, and the emulation is still limited.
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 ?

Quote:
Originally Posted by Corona688
Do you get partitions? Yes, each mounted on their own root, not (usually) nested.
What do you mean by nested partitions ? The partitions in Linux/Unix are separate right ? Like I have my /home partition on my Debian system on a separate drive itself. Are you saying that partitions like /dev, etc can be nested under the root partition ? If so why would I want to do that ? What are the advantages of nested partitions ? I mean then if I lose the root partition I lose all the other partitions nested within that.(Assuming my understanding of partition nesting is right)

Quote:
Originally Posted by Corona688
And in the end, Windows' kernel just isn't suited to running UNIX-like things. UNIX can run thousands of tiny, short-lived processes in a few moments without a hiccup, that being one of the things it's designed for. Try and do that on Windows and it lags, hiccups, and kills random ones here.
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.
# 13  
Old 07-30-2014
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.

Last edited by Corona688; 07-30-2014 at 02:00 PM..
# 14  
Old 07-30-2014
Quote:
Originally Posted by Corona688
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.
I am sorry for being blunt first of all. But what you said makes absolutely no sense to me. Why would a terminal need a serial port to function ? Also I have used the terminal in both Debian and Fedora distributions. I have never made any connection to any serial port before using them !
Why would I need to do so ? OSes like Windows also offer ctrl+c combination to kill the program(not that I like comparing Windows and UNIX I am just trying to get my point across). And what do you mean by it does that directly ? How can a serial port send signals to the CPU ?

I am sorry but I don't understand what you are saying probably because I am starting out with UNIX. Do you think I should post a separate thread about this topic dealing with serial ports and terminal devices ? Because its getting off topic here.

Quote:
Originally Posted by Corona688
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.
If I am not mistaken you mean that you can move around partitions right ? For example I can unmount the /home partition and put it in a different hard disk all together and use it from there right ?
But then why would you call it "partition nesting" ? because that sounds a partition within another partition.
Login or Register to Ask a Question

Previous Thread | Next Thread

5 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

UNIX/Linux inventory - Open Source

Hello guys, I need an open source tool that can list all the softwares installed in my unix/linux servers, the tool should list all the softwares installed and the current version, grouped by the hostname, anybody know any solution for this specific problem? Thanks guys, have a good day! (7 Replies)
Discussion started by: denisloide
7 Replies

2. UNIX for Dummies Questions & Answers

Open-source projects to learn concurrency-managed network programming in Unix?

Hi, I am a mid-career programmer with extensive experience in object-oriented design and development in C, C++, and C#. I've written a number of multi-threaded server applications and background services, although my grasp of networking protocols is a bit weak: my current job drifted away from... (2 Replies)
Discussion started by: TheTaoOfPhil
2 Replies

3. UNIX and Linux Applications

need open source KB software for UNIX

Anyone know of a good open source Knowledge Base software for UNIX that can connect to an Oracle back end? (0 Replies)
Discussion started by: RJ45
0 Replies

4. Shell Programming and Scripting

Open Source

Hi Friends I'm new to this UNIX - I'm working on the porting project from Solaris To Linux i just want to map some commands from solaris to Linux so can any one please tell me how to get the source code of the commands like "ls", "cu", "du" Regards sabee (1 Reply)
Discussion started by: sabee.prakash
1 Replies

5. UNIX for Dummies Questions & Answers

open source antivirus

Hello What is the best open source anti virus? Thanks (4 Replies)
Discussion started by: mohammadmahdi
4 Replies
Login or Register to Ask a Question