3

I know there are a lot of questions like this, but I certain this one is rare. I am a computer programmer who wants to take on the challenge of building an operating system. I want to base it on Unix because I know that what I make could never compare. Where can I find Unix? I don't mean things like Mint (that's Linux, I know). I mean the thing they are all based on. Where can I get the main files, like the boot loader and the kernel?

Justin
  • 173
  • 1
    You could get a simulator and start coding in C and assembler (as an example, what I did, years ago). This is a common project found in Computer Science educations around the world; perhaps you could single out that course, and join it. – Emanuel Berg Nov 10 '12 at 03:16

5 Answers5

12

Unix is actually a trademarked name for that operating system and the core specification is here: http://www.unix.org/ . Linux is not Unix but only modeled after it in part. FreeBSD is a direct descendent of Unix though a lot has been changed since its inception.

In order to be called Unix, you must apply for certification. Apple's OSX is certified Unix.

Rob
  • 1,780
8

Linux is the kernel. You can download it at kernel.org.

There are several boot loaders, but the best known one is Grub.

To clarify the confusion, Mint is a Linux-based distribution. It is Linux, plus the GNU Compiler Collection, the X Window System, and 1,000s of other programs all rolled together into an operating system.

Perhaps before developing your own operating system, you should start with Linux from Scratch to better understand the pieces involved.

Mikel
  • 57,299
  • 15
  • 134
  • 153
  • The question seems to be about building an OS from scratch; LFS is about building a (new) Linux distribution from scratch. For example if @Justin wanted a "JustIX" distro of Linux to complete with Mint, rather than actually developing a kernel separate from Unix/Linux, while at the same time building on the knowledgebase and legacy of Un*x. – michael Nov 10 '12 at 12:41
5

If learning, then I wouldn't start with a modern/complete/working/real-world OS like Linux. Bookmark that, though & come back to it in a second pass. To begin with, there's too much going on there to for learning kernel internals. (There's a reason we begin C programming with "helloworld.c" and not "gcc.c").

Rather, start with a for-educational-purposes kernel that demonstrates the key components of a microkernel, e.g., minix . ...And the (intertwined) history of Linux, Minix and Unix is interesting to learn as part of your research project, as no OS lives in a bubble (not even plan9).

michael
  • 842
2

To a newcomer, the tone of some of the answers almost suggests that Linux has nothing to do with Unix.

This is of course not so. Some examples:

The "x" in Linux refers to Unix.

A Linux distribution typically comes with X - developed by MIT, and present all around the Unix world.

It also comes with the zillion GNU tools. Although GNU is not Unix, the ambition was to create an alternative Unix-compatible system (that's why so much look the same).

If you want more handfast evidence, just type ls /!

(You could think of a lot more.)

The reason it is not officially Unix is that it is expensive to acquire that status, and it would require lots of overhead and adaptation to conform to every detail of the standard. Better to focus the money and effort to improve the technology, build the community infrastructure, and so on.

There is not one Unix but many, and in all that matters, Linux is one of them. Computer OS:s grow like a tree with many branches: some are thick, some thin, some fall off, etc., but it is all interconnected in one way or another, and it doesn't evolve along a straight line.

Emanuel Berg
  • 6,903
  • 8
  • 44
  • 65
  • 1
    No. There is only one Unix. Linux is not one of them and there are not many Unixes. There are many Unix-like systems, and Linux is one of them, but just having some of the same tools as Unix does not make one a Unix. – Rob Nov 10 '12 at 19:39
  • @Rob: OK, let's agree to disagree. I think that distinction is silly (Unix-like) and I think it is a great understatement to talk about "some of the same tools". Just pick up any book on Unix and test what you read on your modern Linux distribution. – Emanuel Berg Nov 10 '12 at 19:46
  • Hardly silly at all. Some, today, claim Linux is moving further away from "the Unix way". That it is less Unix-y than before. Was Lindows Windows if you know remember that? Close counts in horseshoes so it's up to the OP to determine if Linux is close enough to what he wants but he wanted Unix and Linux is not Unix. – Rob Nov 10 '12 at 20:40
  • @Rob: "Linux is not Unix" is correct in one sense, but to a newcomer, it sounds like "Mexico is not the USA". And those are not at all analogous. If anything, Linux is all the Latinos, living in Unix-USA! I think this point is much more important to make, than the categorical, "correct should be correct" statement "Linux is not Unix". – Emanuel Berg Nov 10 '12 at 23:40
  • i remember year-long debates on terminology and "unix-ness" (back in comp.unix.)... agreeing to disagree is a good idea. But, Rob is correct :-)) The distaste for the verbosity of "unix-like" led to the moniker "Unx"; plus, "Unix" is a registered trademark, and most of us scruffy-beard types don't care for terms or software that restricts use. So please forgive us (old dogs) our persnickety tendencies. And to all noobs: know what is unix vs linux, just to save yourself the flames in all the forums out there less hospitable than this one. – michael Nov 12 '12 at 12:24
1

Maybe you're interested into xv6; Xv6 is a teaching operating system developed in the summer of 2006 for MIT's operating systems course. There are also many resources on UNIX OS.

If you want to know more about bootloaders, Operating System Development Series is a nice place to start.

b3h3m0th
  • 352