Amiga.org
Coffee House => Coffee House Boards => CH / General => Topic started by: X-ray on April 05, 2009, 09:16:41 AM
-
Yep, I know nothing about it, but I wanna.
Are there courses that you can recommend for a complete noob? Is there anything I can find out by myself?
My ultimate aim is to be able to handle files and change configs on a Unix server remotely (from a Windows PC).
-
I bought a book called begining Linux Programming 4th Edition (Neil Matthew, Richard Stones) by Wiley Publishing! I can't recommend it more, it covers all the important parts of the POSIX interface and shells.
-
Well, you probably know the online documentation is vast. I think the trick is finding what not to read.*
Have you commenced choosing a distribution? It seems you already have some ideas about what you want to get from it. There are some desktop distributions which are not bad at providing an eased introduction, but I suspect you may be better off just jumping in the deep end. If it is for a work project, it may be worth considering commercial support for the first year.
I used documentation by Machtelt Garrels (http://tille.garrels.be/training/) when getting started. His writing is very easy to take. I think his guides are best used at a terminal, to try things out (typically with BASH). You may like to install a distribution to play with, and take another look at what's available after learning a bit.
Have a look at The Linux Documentation Project (http://tldp.org/guides.html). I think I read Binh Nguyen's Linux Filesystem Hierarchy guide (http://tldp.org/LDP/Linux-Filesystem-Hierarchy/Linux-Filesystem-Hierarchy.pdf) from there, and referred to his Linux Dictionary (http://tldp.org/LDP/Linux-Dictionary/Linux-Dictionary.pdf) as well.
I have found Linux distributions very good for my daily computing, and for software development. BASH is also my favourite shell. I prefer Windows for multimedia and music tasks though. Should be good for your server application, though I haven't had to settup a server for anything I am directly involved in.
Another thing worth thinking about is hardware support. Have you already got your server hardware? Does it require any exotic or unusual peripherals? If so, check which products have good Linux drivers. Linux has come a long way with driver support, but it is still an issue sometimes. I think most servers would be pretty bare bones with peripherals though, so you should be fine.
Linux can be frustrating sometimes, but usually in ways different from other OS's, so a bit of persaverance, and lots of reading is in order.I generally haven't found users in Linux fora to be vey responsive to help requests. That me because I was having uncommon issues though. Many of the common questions will be answered in several places already.
Good luck!
* Somtimes one can go down a long path of fault finding or information gathering, just to find that all your efforts are completely innappropriate to your distribution.
edit - added clarification footnote
-
Thanks both.
The Unix servers are already up and running at the hospital, and I want to learn about the OS in general and file structure / config also.
I'll find out what version it is and get back to you.
-
No probs
Having the servers already running certainly will allow you to direct your efforts.
It shouldn't be too difficult to gain an understanding of the file system, and learn to manipulate files.
Did you want to just operate in text mode?
What level of access do have to the servers?
If the machines are already set up for network shares, you may not need to operate much within the Unix environment.
-
Unix is a fairly generic term, you have Linux, BSD, System IV & V, AIX, HPUX, etc. Fortunately most unixes work pretty much the same and if you are familiar with one version then you can find your way around any.
You will probably control the servers through SSH, but you may also have VNC access. There's really only a few config files you have to touch, perhaps you could tell us more about what you want to control and what kind of access you have.
-
FreeBSD.org (http://www.freebsd.org/)
Then Tcsh.
Unix is built around the idea that the kernel (code) have an api that is called from user software (syscall). The kernel have monopoly on hardware access and presents an restricted api to ensure no software run by a user can compromise the system, only the user "root" can do "everything". Several programs run in parallell (multitasking).
The kernel in turn use drivers to interact with hardware.
Also, unix has a philosophy of modularity and straight forward interfaces without clutter. And as little dependencies as possible.
This means that badly written software that uses the kernel api as normal user will be prevented from crashing the system. And that you can run without any graphical user interface. It's possible to not even have a console. The modularity means it's straightforward for programmers to change the way the system works.
-
Yep, Unix is still the gold standard of operating systems. Has someone just lobbed the first volley in yet another BASH v tsch war?
(http://www.smileyhut.com/silly/horse.gif)(http://www.smileyhut.com/silly/spacecraft.gif)(http://www.smileyhut.com/silly/trek.gif)
-
@X-ray
You probably just want a copy of O'Reilly's UNIX in a Nutshell. As noted, most *nixes are based on BSD or System V. Once you know which one, it's fairly easy to move around.
-
If you don't mind starting from the command line, OpenBSD can be a good and minimalist place to begin. [For instance, when you aren't familiar with the concepts of "package management," diving right into a system that presents you with a package manager is no fun.]
Of course, OpenBSD is also not very "convenient" until you know what you're doing, and these days Ubuntu is very much plug'n'play on most systems. So if you have the equivalent of an old 486 to throw OpenBSD on (really, anything from a 486 on up is more than fine) and a recent machine to poke at Ubuntu, you stand a decent chance of getting quickly up to speed -- and will also be exposed to common differences between "UNIX-like" systems (and BSD vs. the GNU world).
I'm not sure exactly what to suggest as reading material. I'll see if I can dig you up the title of a very straightforward "UNIX" book I have on the shelf, which is nice because it doesn't pretend to be something it's not (and doesn't pretend UNIX is anything it's not). I also seem to remember "Ubuntu For Non-Geeks" being pretty good if you're approaching Linux; it's more technical than the title suggests, but attacks the "things you'd expect from a desktop" rather than the "here's how to start Apache" problem-space. Immersion is useful because once you start trying to accomplish something, you'll actually remember it over time.
The thing is that most daemons and server tasks are pretty straightforward, but people will always make careers out of making software seem big, complex, and important - and some books are authored from that perspective.* Remember that UNIX became the lingua franca because, at heart, it's quite simple and has been easy to keep reimplementing.
*O'Reilly anything is popular and usually splits the difference... they're actually quite variable in quality depending on the author. For example, the first half of their TCP/IP tome was a good introduction ten years ago, but then spent the rest of its pages on BIND, sendmail, and SATAN (anyone remember SATAN?) specifics. It'll take a while to figure out what's a fad because-it's-a-fad vs. what's a fad because it's useful.
-
If you have a low end machine. like a pentium, Puppy's (http://www.puppylinux.org/) your best bet, lean, mean and rock solid.
-
bloodline wrote:
I bought a book called begining Linux Programming 4th Edition (Neil Matthew, Richard Stones) by Wiley Publishing! I can't recommend it more, it covers all the important parts of the POSIX interface and shells.
Hi Bloodline,
Just been reading about this. I think I'll pick it up. I'm starting development on an old Intrinsyc Cerf Board running Linux. Would you say most of the info on programming in C in this book, would also be applicable to C++? I'm thinking the basis for interaction with the OS would still hold.
Cheers,
Oli
P.S. X-Ray, the documents I referenced earlier are mainly for getting started with desktop Linux. They might be a bit too basic to bother with. The BASH and Filesystem items should still be handy, though.
Also, not sure if it's been mentioned here, but having a look at things like Putty and Cygwin would probably be worthwhile.
-
Thanks all, haven't got details yet of what version we have, but putty would be useful because that's what they are using to edit config files on the server.