• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Linux...unix...bsd......where do you actually start when you decide to learn a new OS? (long post)

unholy414

Member
I've been wanting to get into programming for a long long time. Now that time has been freed up somewhat, I want to take advantage of this opportunity.

I've been searching through google alot today and found that to become a programmer it is essential to learn either Linux or Unix. I've been trying to google on the differences between the two to see which one I should take up on....but I can't really seem to get a straight answer, which seems to be quite common on that topic. I think that Linux is a variant of Unix made by Linus Torvalds and that the community contributes to the development of Linux and its variants, while Unix is company based with variants of its own with Theo de Raadt as the main man. Also seems to be some sort of war between Linux and Unix users. Torvalds Vs. Raadt....although I'm pretty much a stupid newbie to anything outside Windows right now that I pretty much can't grasp why there is a war and if what I'm talking about it totally wrong. Some clarification on that would be nice.

Since there's variants of Linux and Unix....do these variants have any huge outstanding differences from eachother that would make it seem as if learning one variant would make learning another one seem like learning a whole new OS?

Upon more searching I found this page, which was a pretty good read and answered alot of questions for me in regards on how to get started, although left some that the page couldn't cover which brings me to my next string of words.....

So with all that said, my post comes down to one question....in the long run what would best serve me as a first timer? Linux or Unix? Which distro would I be best served by?

As for the programming aspect, I've decided to learn Python as my first language due to popular recommendation.


NOTE: Given the link that I posted, my goal is not to become some l33t loling cyberpunk haXor. There was a quote that I read during my search that seems to ring in all computer expert's heads in one form or another. All hackers are programers, but not all programmers are hackers.

Also, I know not if my post is going to spark some flame war between Unix and Linux users or my motives, please keep my thread on topic. I hope to gather a wealth of knowledge when I return.


-thanks
 
Originally posted by: unholy414
I've been searching through google alot today and found that to become a programmer it is essential to learn either Linux or Unix. I've been trying to google on the differences between the two to see which one I should take up on....but I can't really seem to get a straight answer, which seems to be quite common on that topic. I think that Linux is a variant of Unix made by Linus Torvalds and that the community contributes to the development of Linux and its variants, while Unix is company based with variants of its own with Theo de Raadt as the main man. Also seems to be some sort of war between Linux and Unix users. Torvalds Vs. Raadt....although I'm pretty much a stupid newbie to anything outside Windows right now that I pretty much can't grasp why there is a war and if what I'm talking about it totally wrong. Some clarification on that would be nice.

I'm not trying to be mean, but this is one of the funniest things I've read in a long time. :laugh: This can be tough to get a grasp on, so let me ramble for a bit. 🙂

Linux started as a project by Torvalds in Uni, I think. He wanted to make the new Minix, but on an i386. It's since grown quite a bit.

Unix is a philosophy on how OSes and applications should work.

UNIX [TM] is a standard that some companies (Sun, IBM, HP) pay to get their OSes (Solaris, AIX, HP-UX) certified in so they have a shiny sticker on the box. The Open Group (IIRC) owns the trademark, and vertifies some OSes to be considered UNIX.

OpenBSD is a derivative (a couple of generations) of the Berkeley Software Distribution version of Unix run by Theo de Raadt (in Canada, land of the free encryption). It started in UC Berkeley, back before Bill Joy founded Sun Microsystems. Bill actually was a big part of BSD.

Eventually BSD split into a number of different versions, the best of which ended up being the 4.2BSD Lite. It was unencumbered by AT&T copyrights, and FreeBSD and NetBSD based their OSes off of it. In 1995 de Raadt split from NetBSD and founded OpenBSD. Recently (last year or two), DragonflyBSD split off of FreeBSD because Matthew Dillon knew better than the FreeBSD developers. Or at least he thinks he does, which is enough. It's an interesting project, and I try to keep an eye on it, even though I haven't gotten around to playing with it personally. Yet.

The BSDs are considered Unix-like. Linux is kind of Unix-like, without the unix history. Linux is what a lot of people are going to today. It's considered one of the easier unix-like systems to understand, and it's supposed to have the best hardware and software support. No matter how much I gripe about it, it isn't bad.

There is a bit of tension between the BSD (Free, Net, Open, Dragonfly) and Linux camps. de Raadt seems to hate Linux. A lot of linux people (and regular people for that matter) seem to hate de Raadt. He's got a big mouth, but I guess with an OS that has had 1 remote root hole in the past however many years you can be a bit arrogant. Especially if said OS is about to get some MAJOR play. :evil:

Since there's variants of Linux and Unix....do these variants have any huge outstanding differences from eachother that would make it seem as if learning one variant would make learning another one seem like learning a whole new OS?

There are distributions of Linux. They take the Linux kernel (when you say linux it can mean the kernel, called Linux or a distribution containing the linux kernel) and other free software. They put those softwares together, package'em up, and ship'em out to end users.

There are a couple of ways to learn Linux. You can learn your distribution of choice's way to do things, you can learn the way to do things in a lot of distros, or you can learn the traditional way to do things (which I consider the correct way).

If you go distro specific, you may have a tougher time if you end up switching for some reason. Obviously learning multiple distros can be tough and confusing. Knowing the correct way to do things is, IMO, the best way. It's probably also a bit more difficult than learning the distro way.

So with all that said, my post comes down to one question....in the long run what would best serve me as a first timer? Linux or Unix? Which distro would I be best served by?

I'd recommend Ubuntu or Fedora. Ubuntu is supposed to be easy, and Fedora is a lot like RedHat's commercial offerings which may look good on the resume.

Also, I know not if my post is going to spark some flame war between Unix and Linux users or my motives, please keep my thread on topic. I hope to gather a wealth of knowledge when I return.

If I don't start a flame war about all this, you should be fine. 😉

EDIT: I forgot to mention: Both the BSDs and Linux have a community of programmers, users, testers, etc. that contribute back to the project. IBM, HP, and to a lesser(?) extent Sun are less likely to have the community programming stuff for them.

de Raadt is ALL about Free software. Here's a quote by him about Free software in his project:
But software which OpenBSD uses and redistributes must be free to all (be they people or companies), for any purpose they wish to use it, including modification, use, peeing on, or even integration into baby mulching machines or atomic bombs to be dropped on Australia.
 
I grew up on Linux and then tried out Unix (Solaris). I stuck with Linux. It wasn't till I tried out FreeBSD that I started really enjoying Unix. I personally find that they are more folks using Linux, so the help available can be found in greater quanitity.

However, if you know Linux, it is very easy to switch to Unix. It has mostly the same type of file structure. The nice thing that Unix (FreeBSD, NetBSD, OpenBSD) has going for itself that Linux doesn't is the licencsing. The BSD license is completely open, while Linux is licensed under the GPL. You can easily sell a closed-source product in BSD, while if you did so in Linux, you would either have to make sure that 1) You didn't use any software that was GPL (if you don't provide the source), or 2) that you DID provide the source of your code, Intellectual property be damned.

edit: n0c beat me to it. He appears to be a much faster typer lol
 
I would second the Ubuntu (Debian based) or Fedora Core (RedHat community) distro. As far as getting started, I would set up some goals and guidlines. Remember, if your goal is to program in *nix, don't worry so much about being a sysadmin in said OS, as the diverge and you can rathole on either one. After basic system stuff, I would then start with project stuff, to automate things you do. Don't like the useradd tool? Write your own in python, etc.
 
I might give Fedora a try since I see the Redhat logo often...but after looking at the Ubuntu forums, that OS seems very nice. Both these distros look top notch. Although if it were up to you n0cmonkey, which one would you go with? Just to gain some insight from the expert with the insanely high post count. 🙂

There are a couple of ways to learn Linux. You can learn your distribution of choice's way to do things, you can learn the way to do things in a lot of distros, or you can learn the traditional way to do things (which I consider the correct way).

What exactly is the "traditional way"?



 
Originally posted by: unholy414
I might give Fedora a try since I see the Redhat logo often...but after looking at the Ubuntu forums, that OS seems very nice. Both these distros look top notch. Although if it were up to you n0cmonkey, which one would you go with? Just to gain some insight from the expert with the insanely high post count. 🙂

I haven't tried either, but I'd probably go with Fedora.

There are a couple of ways to learn Linux. You can learn your distribution of choice's way to do things, you can learn the way to do things in a lot of distros, or you can learn the traditional way to do things (which I consider the correct way).

What exactly is the "traditional way"?

Editting the configuration files by hand instead of using GUI tools provided by the distro. It's generally a bit more consistant, IMO.
 
Originally posted by: Nothinman
What exactly is the "traditional way"?

Depends on who's tradition you're talking about.

Maybe with things like package management (which I recommend using whatever comes with the OS/distro you choose), but generally things are about the same when it comes to configuring parts of the system.
 
Maybe with things like package management (which I recommend using whatever comes with the OS/distro you choose), but generally things are about the same when it comes to configuring parts of the system.

The real low level parts are almost the same, meaning I can use ifconfig to configure the network on every unix. But the config files that the system uses to configure them on bootup are different in virtually every system.
 
Originally posted by: Nothinman
Maybe with things like package management (which I recommend using whatever comes with the OS/distro you choose), but generally things are about the same when it comes to configuring parts of the system.

The real low level parts are almost the same, meaning I can use ifconfig to configure the network on every unix. But the config files that the system uses to configure them on bootup are different in virtually every system.

But the concept is the same throughout the unix and unix-like world, as opposed to using Redhat's configuration stuff.
 
Well I looked at the screenshots of both distros and I'm just gonna try both and see which one I like.


K, this might be my last question:


When I hear the term "Linux programmer", I think of a command line interface. Is Linux as a whole starting to shift over from a CLI to a GUI?

I remember in the past someone was managing a server of mine, he used the words "Debian" and "Redhat"...so it could've been Debian Redhat? Still a stupid newbie, so I'm not sure if those words belong in the same sentence. It was a CLI, so do hardcore Linux users use CLI or is it a great relief that Linux is adopting a GUI standard? Is the CLI standard starting to phase out?
 
Debian and RedHat are two different distributions.

Linux isn't moving towards a gui, but some distributions are. The CLI will probably be there forever. Thankfully. It's where a lot of real work gets done. 😉
 
I've been searching through google alot today and found that to become a programmer it is essential to learn either Linux or Unix.
Not that I have a problem with the direction you're taking here, but it's perfectly possible to become a programmer withouth ever leaving Windows. Python is fully supported.
 
Distro Watch

I generally find these numbers say something about the sensation of particular distros. There's obviously a reason why ubuntu is so far up there.
 
Well if those numbers are correct then I'm going to give Ubuntu a try first. I think that's about it. Thanks for all of your help guys, I've learned alot today.
 
Originally posted by: unholy414
I've been wanting to get into programming for a long long time. Now that time has been freed up somewhat, I want to take advantage of this opportunity.

I've been searching through google alot today and found that to become a programmer it is essential to learn either Linux or Unix.

Nothing wrong to be a Windows programmer, and there're _a lot_ of them, many are not familiar Unix environment. That doesn't mean they're not good programmer or can't make a good living by programming.

So with all that said, my post comes down to one question....in the long run what would best serve me as a first timer? Linux or Unix? Which distro would I be best served by?

If your goal is to become a programmer, pick a developer-friendly ( not necessarily the most user-friendly ) OS, that is, the one with most complete, standard-compliant, up-to-date developing tools/environments.

For Linux, I'd recommend Fedora.
For Unix, Solaris is the obvious choice today.

Either will serve you well. Better yet, use both, which actually help you understand what are the fundamentals all *nix share, what are just different implementations or flavors, and what it takes to move your program around different platforms.

As for the programming aspect, I've decided to learn Python as my first language due to popular recommendation.

I started with Basic/Fortran/Pascal/C, then Java, then Unix system programming.
I guess you'll do fine, as long as you stay away from OS/Language religions 🙂
 
Nothing wrong to be a Windows programmer, and there're _a lot_ of them, many are not familiar Unix environment. That doesn't mean they're not good programmer or can't make a good living by programming.

No, but Linux just seems a lot more convenient to programmers. And since 99% of the apps are OSS you get a lot more real-world examples.

 
IMHO if you really want to be a complete coder you need to not limit yourself to a single OS.
Personally I've written code for Linux, Solaris, Windows, and OSX.

I have one in-house project that compiles and runs on all of them. It started on OSX because interface builder is incredibly easy to use. Other departments saw it and it snowballed from there. It took longer to port the GUI to all the different systems than it did to write the first release. Now one of the managers wants me to see if I can port it(or a couple parts of it) to something that runs on a handheld device. That's a whole new realm for me, but I think I have enough background to handle it.

If I had my whole life to live over again I would've made it a web application. I might still do that, but I have years invested into it now. Backing out won't be easy.
 
Are there any BSD based "Live" CD's? I downloaded Ubuntu, but I can't get it to work - I think it fails when loading modules. I haven't checked the forums to see where the problem might be yet. Gentoo works. Mepis, I can never get beyond 300K when downloading. Knoppix is downloading as I type. I'll probably give a couple of others a try. I just wanted to download a few distros to check out, before deciding which one(s) I wanted to install.

 
Originally posted by: dlerious
Are there any BSD based "Live" CD's? I downloaded Ubuntu, but I can't get it to work - I think it fails when loading modules. I haven't checked the forums to see where the problem might be yet. Gentoo works. Mepis, I can never get beyond 300K when downloading. Knoppix is downloading as I type. I'll probably give a couple of others a try. I just wanted to download a few distros to check out, before deciding which one(s) I wanted to install.


Did you do an MD5 checksum on your iso?

What particular modules fail to load, and what system specs?
 
Originally posted by: M00T

Did you do an MD5 checksum on your iso?

What particular modules fail to load, and what system specs?

Yeah, the MD5 checksum matches. That's the first thing I checked. I also downloaded
the DVD via bittorrent. Both that and the CD fail. I'm not sure which module - it goes by
pretty fast. If I try and load the modules after that, it says something about not being able
to read the CD - sorry, I can't get the exact message right now, I'm in the middle of a long download.

System:
P4 2.8GHz
Asus P4P800 motherboard
ATI 9600 Pro
pair of WD1200JB and pair of WD2000JB
Pioneer DVR-108
Benq 1640 (boot CD)

 
Originally posted by: dlerious
Originally posted by: M00T

Did you do an MD5 checksum on your iso?

What particular modules fail to load, and what system specs?

Yeah, the MD5 checksum matches. That's the first thing I checked. I also downloaded
the DVD via bittorrent. Both that and the CD fail. I'm not sure which module - it goes by
pretty fast. If I try and load the modules after that, it says something about not being able
to read the CD - sorry, I can't get the exact message right now, I'm in the middle of a long download.

System:
P4 2.8GHz
Asus P4P800 motherboard
ATI 9600 Pro
pair of WD1200JB and pair of WD2000JB
Pioneer DVR-108
Benq 1640 (boot CD)
Search result for Asus P4P800 on Ubuntu's forums

 
Back
Top