Unix Questions....

Discussion in 'Mac Programming' started by Snowmann, May 13, 2009.

  1. Snowmann macrumors newbie

    Snowmann

    Joined:
    Apr 21, 2009
    Location:
    Tennessee
    #1
    I have two Unix questions that I really need answer too, see if you can help answer them.

    The first question is what is Unix exactly and how does it work?

    The second question is..... was Mac Os X the first series of Mac Os's to include Unix as the Os's makeup?
     
  2. NRose8989 macrumors 6502a

    Joined:
    Feb 6, 2008
    #2
    Please correct me if I'm wring but UNIX itself is a operating system i.e. it's architecture, commands etc. and OSX is built on top of UNIX like Linux

    and by "first Mac OS's" do you mean OSX vs OS9? either I really don't know, but I'm sure someone will come around to answer your second question.
     
  3. Guiyon macrumors 6502a

    Joined:
    Mar 19, 2008
    Location:
    North Shore, MA
    #3
    Mac OS X was the first consumer OS that Apple released which had a UNIX-like architecture, called Mach, which descended from 4.4BSD and implemented the POSIX standard, like Linux and the other BSDs (POSIX and UNIX are two similar, but different things, Mac OS X wasn't actually certified UNIX until 10.5 server). It wasn't Apple first release using the new Mach architecture, though. After Apple acquired NeXT they began work on a system called "Rhapsody", which would be released as Mac OS X Server 1.x (I was introduction to the terminal thanks to this OS). The system was like a bastard child of Mac OS 8 and Mac OS X; it had the Mach underpinnings of Mac OS X but the UI was a hybrid of Mac OS 8/OPENSTEP. That branch pretty much sputtered out and died but a lot of the work made it into Mac OS X 10.0 and, well, here we are now.
     
  4. lee1210 macrumors 68040

    lee1210

    Joined:
    Jan 10, 2005
    Location:
    Dallas, TX
    #4
    The wikipedia article on Unix is decent. It includes this image:
    http://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg

    It shows the unix "heritage", including OS X by way of BSD.

    In short, it's an operating system. It has inspired a number of progeny. There is a trademark UNIX that is owned by the Open Group. So there are systems that are Unix/Unix-like, and then there are systems that are UNIX(tm) as determined by the testing and certification methodologies of the open group (and also, you probably pay them a fair amount of money).
    http://www.unix.org/trademark.html

    It works by means of a number of gnomes, which shift things about in ways that are pleasing to the user. =) J/k, it's sort of hard to answer how it works. There is a lot of code, a lot written in C, that interacts with the hardware and presents a set of APIs to be used to interact with the system. There are a number of tools that are considered standard on a Unix system, but these aren't part of the OS itself.

    As for your second question... OS X isn't the first Unix based system released by apple. A/UX has that honor (as far as i know):
    http://en.wikipedia.org/wiki/A/UX

    A/UX certainly didn't have the popularity that OS X has, and it wasn't really meant for "every" Mac. It could run OS 7 programs as well as UNIX programs, but it was pretty niche as far as I understand it.

    Is there some particular details you're looking for that aren't covered in the answers so far?

    -Lee
     
  5. Guiyon macrumors 6502a

    Joined:
    Mar 19, 2008
    Location:
    North Shore, MA
    #5
    I knew I was forgetting something there, A/UX completely slipped my mind...
     
  6. Snowmann thread starter macrumors newbie

    Snowmann

    Joined:
    Apr 21, 2009
    Location:
    Tennessee
    #6
    So I got some more questions so what does the words BSD, API and POISX mean?

    So what do you guys mean when you say Os X was simply built on top of Unix, because I thought that the Unix was the operating system and the form of Unix is called Os X?

    So also when you guys say there are systems that are Unix/Unix like there can be an Os that fits or comes close to the Unix specs. and considered to be Unix like?

    Also who truly owns Unix right now is it the Open Group, Novell, etc. or is it a group of companies that own it or parts of it?

    And Lee what did you mean when you said "There are a number of tools that are considered standard on a Unix system, but these aren't part of the OS itself"?

    Thanks guys so much for all your help I am a very curious person and a noob when it comes to computers.
     
  7. lee1210 macrumors 68040

    lee1210

    Joined:
    Jan 10, 2005
    Location:
    Dallas, TX
    #7
    BSD = Berkley Software Distribution, a Unix operating system developed at UC Berkley
    http://en.wikipedia.org/wiki/BSD

    API = Application Programming Interface, this defines structures, functions, etc. to be used to interact with a piece of software, oftentimes an OS or a subsystem of an OS. It defines the way in which other programmers can exploit the functionality provided by the OS.
    http://en.wikipedia.org/wiki/API

    POSIX = Portable Operating System Interface for Unix, a bit broader than this, but basically a blanket/standard API for programming on Unix-like systems.
    http://en.wikipedia.org/wiki/POSIX

    The basis for OS X was a combination of the NeXTStep operating system (for high-level APIs, etc.) and BSD(for most of the OS underpinings), with a kernel called XNU that was also developed for NeXTStep. It is a hybrid between the BSD kernel and the Mach microkernel. OS X is Unix and is UNIX(tm) (for limited versions on limited hardware). When people say it is built "on top", this is because there's a lot of high-level functionality added in OS X to provide a user-friendly windowing system, a number of programmer-friendly APIs for programming the system that are not standard and not present on other Unix systems,etc.

    Linux means "Linux is not Unix". It is not a traditional Unix, but is Unix-like in my opinion because it implements much of POSIX (all? not really sure), it uses similar permissions structures, "traditions", etc. If someone was familiar with Unix, Linux would not be a totally different world. This is the reason I say Unix-like. There's also confusion with the trademark UNIX, so saying "-like" can help curb that. There are many systems that one might not readily identify as Unix (OS X is one), so using Unix-like as a blanket for OSs that are Unix or are built on it, etc. seems best.

    The link i posted last was on a site that has all sorts of information about this. Here's the membership list:
    http://www.opengroup.org/overview/members/membership_list.htm

    For example, grep is not part of Unix. It's just a tool. I would be very sad if i logged on to a system and didn't have it or one of its offspring available. There are "things" that people just expect to be there. head, tail, awk, vi(m), cat, ls, wc, od, etc. are things that tend to be on a Unix-like system, but these are tools. They happen to run on Unix systems, but a system would still work without them. I guess i could equate it to calc.exe on Windows. Is a system still Windows without it? Sure, but it's a tool people assume "comes with" the OS.

    -Lee
     
  8. nick9191 macrumors 68040

    Joined:
    Feb 17, 2008
    Location:
    Britain
    #8
    The Open Group owns the trademark to Unix. For an OS to be called Unix, it must pass the Open Group's specifications. OS X Leopard was the first release of OS X to pass this. If it does not, then it is Unix-like, which is what every release of OS X was until Leopard. Unix in it's current form today, is really just a name and a set of specifications for an OS developer to abide by for it to be called Unix. There is no one Unix operating system today, at least in the sense you are thinking.
     
  9. Snowmann thread starter macrumors newbie

    Snowmann

    Joined:
    Apr 21, 2009
    Location:
    Tennessee
    #9
    Lee what do these words mean? I underlined them for you.

    with a kernel called XNU that was also developed for NeXTStep. It is a hybrid between the BSD kernel and the Mach microkernel.
     
  10. lee1210 macrumors 68040

    lee1210

    Joined:
    Jan 10, 2005
    Location:
    Dallas, TX
    #10
    In computing, the kernel is the central part of an operating system, generally responsible for resource management, hardware access, etc. The layers above the kernel rely on information from the kernel to perform their tasks.
    The wikipedia article has much more discussion:
    http://en.wikipedia.org/wiki/Kernel_(computing)

    I don't know that providing the dictionary definition in English for hybrid is strictly necessary. It means the same thing here as it would anywhere else. It is a combination of two things.

    Mach is a type of microkernel, that was developed at CMU. It is part of what the XNU kernel is based on.

    A microkernel provides more minimal services than a "regular" kernel, pushing "non-essential" services such as network stacks and device drivers into user space.
    http://en.wikipedia.org/wiki/Microkernel

    I hate linking wikipedia so much, but the information there on these topics is pretty good, and it's certainly the easiest to find.

    -Lee
     
  11. Snowmann thread starter macrumors newbie

    Snowmann

    Joined:
    Apr 21, 2009
    Location:
    Tennessee
    #11
    So Lee I have got a couple of last question for you I think? lol So I noticed you worked in the software engineering field and I was wondering how you much you like your job and I was also wondering what kind of computer do you use for your job? Do you have to use a PC, or can you actually use a Mac? :apple: I am about ready to start college and I am thinking about going into the Computer Information Systems (CIS) field of study do you know if this a good field of study to go into or not? Thanks for all your help to you have given me too!!!!
     
  12. lee1210 macrumors 68040

    lee1210

    Joined:
    Jan 10, 2005
    Location:
    Dallas, TX
    #12
    I like my job because I love to program. I program when i am not working, too. At work my machine is basically a dumb terminal for a lot of linux boxes. It's not really up to me, so it's a Windows machine. My primary needs from it are:
    Xterms
    Screen real estate
    Outlook (for calendaring, mostly)

    The xterms are provided by way of cygwin, the screen real estate via a pair of 19" LCDs (going from one 17" CRT to these was one of the biggest increases in productivity I've had), and Outlook is self-explanatory.

    I could very easily do my job on a mac, though. The client for our software is windows, so i'd need remote desktop somewhere or vmware fusion, etc. but 99% of the time i am working on the server side. If I have to support something from home I have no problem doing so from my macbook pro.

    I don't think they are, in general, good fields of study. What is good for you depends on your aptitude for a particular subject and your interest in it. Are you interested in CIS? I am not familiar with that particular area... i don't know if that's another name for Computer Science, if it's more geared towards Computer Engineering, more geared towards IT tasks than programming, etc. Is it something you already love? If so, hopefully it will be a good field of study for you.

    For reference, I studied Computer Science, and learned very little about programming. It taught me a lot about how to solve problems, how to reason about algorithms, how to learn, etc. I picked up programming on my own, and a bit on the job. Maybe CIS is more "practical" and focuses less on theory and more on nuts and bolts of programming? What school(s) are you considering?

    -Lee
     

Share This Page