Friday, December 22, 2006

BH #2 - Choosing a Shell

So you want a shell account? If you're one of those people, chances are you have a moderate level of computing knowledge. But how do you know which company to choose? What features do you need? How much should you spend? All of these are very important questions.

The first thing you need to ask yourself is, what will I be using this shell account for? Are you just looking for an easy way to learn a Unix like operating system? Or do you want to learn a specific Unix like operating system? Are you looking for a shell for programming/development purposes? Do you want to run eggdrop bots, a MUD, a voice chat server, an IRC server, etc.? This is the first step in deciding which shell you will be looking for. If you just want to learn basic shell commands and functions, an easy way to do this might be to find one of the various free shell providers that are always coming and going across the net. They typically don't allow you to run background processes, and they usually don't give you very much disk space. However, they are great beginner learning tools. You can't beat the price for that purpose either. The toughest thing would be finding one with the OS you want to learn. There are many flavors of Unix like operating systems including, but not limited to: Linux, System V, FreeBSD, Sun Solaris, SCO Unixware (blah), etc. Even among Linux there are various distributions such as Mandrake, RedHat, Debian, Slackware, etc. There aren't too many differences between the Linux distros as far as command line programs go. The biggest difference may be what programs and utilities are included with that distro, but ultimately that is decided by the host you choose. However, for learning purposes, you would be much better off picking up a used cheap computer, and installing Linux yourself if that's the flavor you're after. If you're interested in one of the commercial *nix's, then it's more cost effective to either pay for a shell, or find a free shell provider. There is a moderate difference between Linux, FreeBSD, and commercial *nix's. Thus far I have found the major differences in the command line options for the various programs, as well as the output of those programs. But with a bit of reading into the documentation, these differences aren't great enough to make switching between one or another to be catastrophic.

If you're looking for a shell for programming/development, it gets a little more complicated. You'll need enough disk space for all of your code as well as any data files you're program may require. If you're developing for the X-Window system, you really don't have much of a choice but to do your own local installation. Your own box at your house also gives you complete control over the system. Purchasing a shell account may leave you stuck with a shell that doesn't include the needed libraries for your program. Most shell providers will work with you as far as installing the needed libraries however, as long as there aren't any security issues. If they aren't, then there are a few work arounds to this, but require more disk space. These work arounds are beyond the scope of this article however.

Do you want to run eggdrop bots and/or background processes? Unless you have a static IP and a fast internet connection, you'll need to purchase a shell account then. If you have broadband, you can work around the dynamic IP address issue by using one of the dynamic DNS services available. It's just a little more work. It's far easier just to get a shell account for this purpose. They also tend to have faster uplink speeds than you will have with broadband. Again, disk space is an important factor, especially if you want to offer files from your bot. Also, pay attention to how many bots you can run simultaneously from your shell. How much processing power and RAM are you allowed to use? Keep this in mind when choosing. Typically, you can also run a BNC proxy from eggdrop shells with most providers. However, some providers offer BNC only accounts cheaper than eggdrop accounts.

Do you want to run a MUD (multi-user dungeon), IRC server, voice chat server, etc.? (note: in this article we are using MUD to refer to but not limited to MUD's, MOO's, MUSH's, Talkers, etc.) Most shell providers will offer specific accounts for these. MUD accounts typicly have different plans based on how much disk, RAM, CPU, how many ports, shell log ins, etc. you will need. Multiple log ins provide you with the flexibility to have your trusted MUD admins with shell access so that they may restart the MUD should it crash. This keeps you from having to do dawn patrol 24/7, or giving out your shell password to someone. This also enables you to have a shell login for a development version of your shell. Multiple process MUD shells also lets you have a development version of the MUD running for testing. You will need more than 1 port for this as well. (note: this also depends on the MUD code you are using). Most MUD accounts also provide you with a directory for your MUD to have it's own website as well. IRC server accounts generally cost more, and there is usually a limit on how many global clients you may have. This is usually due to bandwidth limitations. Also, pay attention to any special notices reguarding to any extra services you are/aren't allowed to run on your IRC server. These extra services usually consume extra CPU and RAM. I haven't had any personal experience with voice chat servers, but from what I understand of the technology, they are bandwidth intensive, and there are usually limitations on how many people you can have connected to the server.

Find out what popular software the provider offers with your account. These programs include, but aren't limited to: Compilers, Pine, Elm, lynx, BitchX, ircii, screen, ftp, ssh, scp, etc. Honestly, SSH and scp are a must. Standard telnet and ftp packets are sent in clear text. Passwords can be sniffed. It's only a matter of time before those accounts are hacked. Will it be your account? Don't play Russian Roulette. Make sure they have SSH. If you already have account that doesn't have SSH, politely ask the admin to install it, then insist, and if all else fails, switch. In most cases, you are responsible for what happens with your shell. Do you want to share a jail cell with Bubba because of what someone else did with your account?

In general, it is always important to look at how much disk space you get, any RAM usage limitations, how many background processes you are allowed, how many of those processes may be used for eggdrop or any process that opens a port, if you have a web directory, how much bandwidth you are allowed each month, etc. But most importantly, research before you buy. Some providers out there sell more accounts than the server can handle. Sure you might get 1 gig of disk with your account, but if they server only has a 10 gig drive, and they put 20 accounts on one machine, someone's going to get screwed somewhere. Not to mention, if it's a slow machine, the CPU will take a beating, and your processes will run very slowly. The easiest way to eval. a provider is to either see if you can get a free trial, or only purchase one months worth of service, and see how things are on the machine. Some providers have a good community on their servers, where people regularly nice CPU intensive processes (such as compressing backups), etc. so it doesn't slow down any eggdrop processes in use. Those servers also tend to have people who won't use disk needlessly. Other servers out there may have people who do their best to use up their disk space, run seti@home at nice 0, etc. Do your best to avoid those.

Another must, is to read the providers acceptable use policy. Most of the more stable ones reserve the right to kill any processes that are harming the stability of the server, delete files and suspend accounts that are using excessive amounts of disk space, etc. The more reputable providers won't do this needlessly, or to cover themselves because they oversold. In fact, the reputable guys won't oversell. Typically, you'll see these policy with providers that offer unlimited bandwidth and disk. Be wary of those as well. There are some providers that offer this, and have the bandwidth and the funds to hold up to their word. These are the guys who own their own data centers, multiple OC-3 connections, etc. Resellers who offer these perks are just blowing smoke. Research a potential provider carefully. Usually they try to hide it, but you can still find out if they're reselling. Make use of the whois database. In the U.S. make use of the Better Business Bureau. Ask around in IRC, check website reviews, etc. It's more risky to try a brand new provider. They usually offer awesome deals, but quite a few of them raise their prices later on, once you've gotten your account established, in hopes that you won't want to transfer all your data to another account, and go through the hassle of reconfiguring. These providers are nothing more than scum. Also, beware of paying for six and twelve months of service. While you can usually obtain a nice discount, make sure the provider has the capability to stay in business for that long. Also, keep in mind that if your account is hacked and used for illegal activity, you violate their acceptable use policy, they can terminate your account and not give you a refund. It is a good idea to check various website reviews as far as security reports. There may also be other sources on the net you can consult on the providers security. Usually those sources aren't exactly members of the warm and fuzzy internet society, but most of them will be more than willing to tell you how poor a providers security is. These types of people can't stand companies that sell second rate services.

What about upgradeability? If they don't offer unlimited bandwidth, what's their policy on going over your bandwidth? Do they charge an insane amount for going over? Do they cut your access until the next month? Can you set a limit on how much over you are willing to spend for? The same thing applies to disk, and other resources as well. If someone really doesn't like you, they could repeatedly download files you're offering via your web page using a fast connection to eat up your bandwidth and cost you money. Does the service have technology in place to prevent this? What about domain names? Are you able to upgrade your account so that you can use your own domain name? Can you rent a static IP? Can you upgrade to a better package they offer? What about MySQL? It's always a good idea to choose a provider where you have many affordable upgrade options. Usually, the more you learn about your shell the more you want to learn and experiment. You don't want to get stuck at a dead end where you are unable to upgrade.

Now lets talk price. Depending on the bells and whistles you get with your account, you could spend anywhere from $4 (US Dollars) a month to $40 a month. There are also some places out there that offer Virtual Servers. These usually have monthly bandwidth limitations, and various packages. Your mileage may vary. I have noticed that a lot of the virtual server providers are reseller accounts, or offer reseller programs. Now I'm not knocking reseller programs. However, if you choose to go with one of these guys, make sure you know what might happen if they go out of business. Will the parent company take over your account, etc. I can not stress this enough, research heavily before you buy. There are a lot of scams out there. By staying informed, you can keep from getting screwed. Shell providers are a dime a dozen. Good, reputable providers are worth their weight in gold. Make an informed decision before you whip out your credit card. With the reputable guys, you get what you pay for. With the scam artists, you always get fleeced. Learn the differences, learn to tell the difference. Keep safe out there!

-=databat=-

No comments: