Red Hat Linux 7 Unleashed

Red Hat Linux 7 Unleashed

By William Ball

IRC—Internet Relay Chat

Internet Relay Chat, or as it is more commonly known, IRC, is one of the most popular ways to chat with other groups of people from around the world. From the beginning it was designed as an enhanced replacement for the talk program. Its main purpose is to enable users to participate in real-time, simultaneous discussions with many other users. However, during its lifetime of more than a decade, IRC has evolved into much more.

Much like Linux, IRC has its roots in Finland. It was created by Jarkko Oikarinen in 1988. At that time he was working at the Department of Information Processing Science at the University of Oulu. It was there, on tolsun.oulu.fi, that the world's first IRC server was set up in August 1988. IRC did not really take off with ordinary Internet users until early in 1991, when the Gulf War began. People in the west were desperate for timely, inside information about the war and Operation Desert Storm, whereas Kuwaitis and Saudi Arabians wanted to inform the world about what was happening to them. Several IRC channels specializing in war news and discussions sprang up on the IRC networks. People flocked to these IRC channels for live, uncensored, first-hand information and eyewitness accounts. Remember, this was before the proliferation of the World Wide Web!

The IRC protocol was originally documented in RFC 1459. This RFC was written in 1993 by Jarkko Oikarinen. The IRC specifications were recently updated in a number of RFCs. The updates were all written by Christophe Kalt. A list of the new RFCs can be found in Table 7.2. These new RFCs describe all of the important changes and addenda that have been done to the IRC protocol over the years. Most likely, these documents will only be of interest to you if you plan to implement your own IRC client or server. But it could also be of interest if you want a fuller understanding of the inner workings of IRC.

Table 7.2. RFC Specifications for the IRC Protocol

RFC Title
2813 Internet Relay Chat: Server Protocol
2812 Internet Relay Chat: Client Protocol
2811 Internet Relay Chat: Channel Management
2810 Internet Relay Chat: Architecture

Today there are several different IRC nets, with servers located all over the world. The IRC nets are a collection of servers that share information. All user and channel data are propagated between all servers within the net. Every message that is sent in a conversation is mirrored to all other servers within the net. Depending on the size of the net, a server may be connected to dozens of other servers as well as being connected to several hundreds of clients. Some of the nets have tens of thousands of users. All of these servers are very busy and often under quite a heavy load.

There are thousands of different channels on the IRC nets. These channels cover very diverse subjects, from the extremely obscure to the utterly mundane. You will probably be able to find a channel covering just about every topic you can imagine—and probably several that you cannot imagine. If you can't find what you are looking for, there is no reason you can't start your own channel.

Basically, IRC is a multiuser chat system. People gather to chat in discussion forums called channels. Channels are usually created for a special-interest group and their names are mostly self-explanatory. Apart from a name, each channel can also be assigned a topic. This can be used to describe the purpose of the channel or it can be set to describe the current topic of conversation. There is practically no limit to the number of channels that may exist on any given IRC net.

Discussions are either held privately between two users or, more commonly, shared between all users in the channel. It can be quite bewildering the first few times you come into a busy channel with many users sending messages all at the same time. It might look quite chaotic, but you are likely to get used to it in no time. When you join a new channel, it might be a good idea to sit around for a while and observe how others behave on the channel. Sitting around doing nothing but reading the conversations is often referred to as lurking. Try to be polite and do not do anything to irritate other users. But most of all, try to enjoy yourself.

You need a client in order to access IRC. It is up to the client to interpret incoming information from the server and present it to the user in a workable fashion. The client will also need to interpret the user's actions and respond to them in some way, usually by sending them to the IRC server.

The first IRC clients were text-only. They were most often written with the use of the curses library, which is used to program terminal-independent, text-only user interfaces. The most popular of these text-based IRC clients is probably the ircII client, especially if you count the numerous spin-offs and clones of it that are available.

Later on several IRC clients with graphical user interfaces appeared on the Internet scene. The introduction of these clients has certainly helped to increase the popularity of IRC among less computer literate users. One of the most popular GUI clients is undoubtedly mIRC, which is only available for the Windows operating system. There are several very good GUI IRC clients available for Linux.

This chapter will look at both a GUI and a non-GUI IRC client that are included with the Red Hat 7 distribution. It will examine the non-GUI IRC client first because many of the commands that are used with it can also be used in the GUI client. You will get a much better understanding of how IRC works by seeing what commands are available and how they are used.

Using a Non-GUI IRC Client—ircII

The ircII client sprang from the original irc client created by Jarkko Oikarinen. It is widely used and most likely one of the most popular non-GUI IRC clients ever. There are several IRC clients that are either based on the ircII source or that clone the behavior of ircII. The command setup used in ircII has become so popular that the same, or very similar, commands are now widely used in several other UNIX programs, especially in other IRC clients. However, this might not be so strange since the commands are very similar to the actual commands used within the IRC protocol, which is used for the communication between the client and the server.

GUI clients try to shield the user from having to use the sometimes obscure commands of text-only clients. Even so, most GUI clients also support the use of /-like commands. Since IRC to a large extent is about constantly typing, it can be much faster to actually type the IRC commands as well, rather than fumble for the mouse and find a button or a menu each time you want to do something. So, even if you use a GUI IRC Client, it can be useful to know the text versions of the basic commands because you will be able to use most of them even though you are running a GUI client.

Installing ircII

First check to see whether ircII is already installed on your system by typing


   rpm -q ircii

If ircII is installed, the system will print the full package name of the ircII package.

If the RPM is not installed, you will need to get a copy of it and install it. Look at the resource list at the end of the chapter for places where you might find the RPM. To install ircII from an RPM you will need to type the following (the version number might be different from the one in this example):


   rpm -Uvh ircii-4.4M-4.i386.rpm

You should now be able to use ircII on your system.

Starting ircII

The easiest way to start ircII is by issuing the following command:


   irc

This will start the client, which will then try to connect to one of the predefined IRC servers. It will try to log in to that IRC server, using the name of your UNIX account as your nickname. See the section on using ircII for more about nicknames. The IRC client will not join any channels for you. Finally, the client will be waiting for you to type some commands.

There are several switches available for the irc command. The built-in help will display the following information:

$ irc --help
Usage: irc [switches] [nickname] [server list]
  The [nickname] can be at most 9 characters long on some server
  The [server list] is a whitespace separated list of server names
  The [switches] may be any or all of the following
   -c <channel> joins <channel> o startup
   -p <port>    default IRC server connection port (usually 6667)
   -P <port>    default ICB server connection port (usually 7326)
   -f           your terminal uses flow controls (^S/^Q), so IRCII shouldn't
   -F           your terminal doesn't use flow control (default)
   -s           don't use separate server processes (ircio)
   -S           use separate server processes (ircio)
   -h <host>    source host, for multihomed machines
   -d           runs IRCII in "dumb" terminal mode
   -q           does not load .ircrc and not .ircquick
   -a           adds default servers and command line servers to server list
   -b           load .ircrc before connecting to a server
   -l <file>    loads <file> in place of your .ircrc
   -I <file>    loads <file> in place of your .ircquick
   -icb         use ICB connections by default
   -irc         use IRC connections by default
                icb [same switches]  (default to -icb)

The most important option to the client is the one that allows you to supply an IRC nickname at startup. Also, the -c switch is useful if you want to join a channel straight away. However, the best way to provide these options is to make your own ircII configuration file, which is covered in the section "Customizing ircII with a .ircrc File," later in the chapter.

Using ircII

There is not enough room to cover all commands that are available in ircII, especially not in any great depth. There are scores of commands and options available. However, the ones that are covered in this section should be more than enough to get you started on your way to becoming an IRC wizard.

All commands have a leading / character. This tells the client that it is a command and as such needs further processing before taking any action with it. Anything else will be sent straight away to the channel you are currently in.

All ircII commands can be abbreviated to their shortest possible unique and unambiguous forms. For example, the /connect command can be abbreviated as /con, but not as /co since that would be ambiguous, because there is also a /comment command. Do note that it is also possible to abbreviate the name of options and control switches.

There is an excellent, built-in help command. This can be accessed by typing /help, followed by the name of the command you want further help with. There you will find all the possible options and switches that can be specified for a command, as well as brief but explanatory text describing the usage of the command.

The following sections are an alphabetized list of some of the most common commands. For those commands that have them, there is a list of options and switches that you may use to change their behavior. For some commands there are more options available than the ones described here. Those options that are included are the most common and most useful ones and they should provide a good basis for your IRC usage.

alias

Syntax:

/alias name commands

This allows you to create an alias, or a macro, for commonly used commands. This is most useful in your ircII startup and configuration file. However, it can also be used within the client at runtime.

The commands part can consist of just about any ircII command. If you want to string together several commands, you separate them with a semicolon (;).

You can also insert special character sequences, such as ircII variables in the commands part. Such sequences are prefixed with a $. To see the built-in variables that are available in ircII you can use the /help alias special command. There are also special variables for macros that you can use to let the user specify options when running your macros. These option variables are called $0, $1, and so on. Each occurrence of one of these numbered variables will be expanded into the corresponding option that the user supplied with the macro. In some situations you will want the last variable to be set to all the remaining parts of the user input. This can, for example, be useful for a macro where the last part is a message. To accomplish this you will need to add a hyphen (-) after the variable name.

Here is a short example of how to define an alias:

/alias reply msg $, $0-

The special variable $ expands to the nickname of the user who last sent a message to you. You would then use the alias like this:

/reply Hi there!

This would then be expanded, internally, into the following by ircII (if WSB was the user who last sent a message to you):

/msg WSB Hi there!

Finally, if you want to remove an alias, you can prefix the name parameter with a hyphen (-).

away

Syntax:

/away message

This will mark your status as being "away." If someone sends you a message or does a /whois on you, he will receive your message in reply.

To remove your away status, simply use the /away command once again, this time without supplying a message.

bye, exit, signoff, and quit

Syntax:

/bye reason

/exit reason

/signoff reason

/quit reason

All of these commands will terminate your current IRC session. There is no difference between the commands; they are different aliases for the same command. It is possible to supply a sign off reason as a parameter to the commands. For example:

/bye Time to rejoin my real life...

The previous example would result in the following output to the channel you where in (assuming your nickname on the server was set to WSB):

*** Signoff: WSB (Time to rejoin my real life...)

channel and join

Syntax:

/channel channels

/join channels

The /channel command is used to join channels on the IRC net you are currently connected to. This command can either be specified as /channel or as /join. If no channels are specified you will get a list of those channels that you are currently in.

Channel names can begin with a # or a &. The former are channels that are available on all servers within the IRC net to which you are currently connected. The latter type of channel is only available locally on the server you are connected to. Local channels are not very common. The channel name can consist of any character except space, carriage return, null, and line feed.

If you specify a channel that does not exist, it will be created and you will become the operator for that channel. Being an operator goes outside the scope of this section. However, you can refer to /help to find out more about the commands that are available for a channel operator.

disconnect

Syntax:

/disconnect

This command will disconnect you from the server specified. If you don't specify a server, the command will default to the current server.

dmsg and msg

Syntax:

/dmsg nickname message

/msg nickname message

This command is used to send a private message to the user with the specified nickname. Only the user with the specified nickname will be shown the message. If you specify . as the nickname, the message will be sent to the user to whom you last sent a message.

help

Syntax:

/help command

This will show a help section about the given command. The command should be specified without prefixing it with a /. At any given moment when using the help command you can issue a ? to be given a list of available topics and sub-topics.

leave or part

Syntax:

/leave channel

/part channel

Use this to leave a channel. If you do not specify a channel name, the client will assume that you want to leave the currently active channel.

list

Syntax:

/list expression

The /list command will present you with a list containing various information about the specified channels. In this list you will find channel name, how many users there are in the channel at the moment, and the topic of the channel (if one is set).

If you are in a channel and set the expression to a * character, you will only be shown information about the channel you are currently in. If you are not in a channel when you use a * character as an expression, then all available channels will be listed.

There are several options available for the /list command. These options are enabled by specifying one or several of the various switches together with the command. See Table 7.3 for a summary of the control switches that are available. Using the /list command without any expression or switches can produce quite a lot of output.

If the server you are connected to is under a high load you may not be allowed to run the /list command. If this occurs, you can usually retry the /list command again after a little while.

Table 7.3. Control Switches for the /list Command

Switch Description
-ALL Overrides previous -PUBLIC and -PRIVATE control switches.
-MAX n Lists only those channels that currently have more than n users.
-MIN n Lists only those channels that currently have fewer than n users.
-PRIVATE Lists only channels that are marked as private.
-PUBLIC Lists only channels that are open for everyone.
-TOPIC Lists only channels that have a topic set.
-WIDE Lists channel information in as little space as possible. This switch may take the following argument to change the sorting order of the list:
-NAME Orders the list by the name of the channels.
-USERS Orders the list by the number of users in each channel.

names

Syntax:

/names switches channel

This command will list the nicknames of all the users in the specified channel. If you do not specify a channel, information for all channels will be listed. To get information only about the channel you currently are in, use a * for channel name. See Table 7.4 for a list of available switches.

Table 7.4. Control Switches for the /names Command

Switch Description
-ALL Overrides any previous -PUBLIC and/or -PRIVATE switches.
-MAX n Channels with more than n users will not be shown.
-MIN n Channels with fewer than n users will not be shown.
-PRIVATE Only shows channels marked as private.
-PUBLIC Only shows channels that are public.

nick

Syntax:

/nick nickname

This command is used to set your nickname, or nick as it is often abbreviated. If someone else is using the nick you requested, you will be prompted for a new nickname. When you start the ircII client it will use your Linux login name as the default nickname. You can modify this behavior by creating an .ircrc configuration file for ircII.

On some IRC nets it is possible to register and reserve your nickname. Doing this makes sure that you are the only one that can use that nick on that net. This might be a good idea if you are going to use that IRC net a lot. Furthermore, your chat buddies can be reasonably sure that it is really you with whom they are chatting if you have a registered nick.

The behavior of nick registration can be different on different IRC nets. The most common method goes something like this: If you try to set your nickname to one that is already registered by someone else then you will be given 60 seconds to specify another nickname. If you do not change the name within the allotted 60 seconds, the server will change your nickname for you. It will set a nick patterned along the lines of guest<number>. Many IRC channels will not allow people with such a nickname to join them. Therefore, it is always best to change to a proper nickname as quickly as possible.

server

Syntax:

/server servername:port

/server number

This command allows you to connect to an IRC server. If you already are connected to a server, you will be disconnected from that one and the newly specified server will become your primary server. As long as you remain on the same IRC net, you should retain your nickname and stay within the channels. However, sometimes a server change is not performed fast enough. In such a case the new server will think that someone else is already using your nickname and that this user is logged in on the previous server. You will therefore be refused to use the same nick again. When this happens you will either need to wait a short while before setting your nick again and rejoining the channels you want, or you can specify a new nickname instead.

At the same time that you supply a server name you can also specify which port number the IRC server is to be contacted on. If you do not specify a port number, the default IRC port number will be used. The default port number for IRC traffic is 6667.

The ircII client has a built-in list of servers that you have visited. If you enter the /server command without any parameters, you will be shown a list of these servers. If you start the ircII client without naming a specific server, one will be picked from the built-in list.

version

Syntax:

/version server

This shows version information about your IRC client. You will also be shown information about the server you specified. If you do not supply a server parameter, the command defaults to the server you are currently connected to. If you are not connected to a server, there will be no output about any server.

who

Syntax:

/who expression

This will produce a list of users on the IRC server you are on. If you specify an * as the expression, only users on the current channel will be listed. If you specify a 0 as an expression, all users on the whole IRC net will be shown. Apart from these two special cases you can supply any valid string containing regular expressions and the command will try to list only those users who match this expression. See Table 7.5 for more information of switches that are available for the /who command.

Table 7.5. Control Switches for the /who Command

Switch Description
-away Lists only users who are marked away.
-chops Lists only channel operators.
-file filename Lists only people who are listed in the file.
-here Lists only users who are marked as here.
-host Lists only users from the specified host.
-lusers Lists only non-operators.
-name username Lists only the users who have user ids that match the username argument.
-nick Lists only users with matching nicknames.
-operators Lists only operators.
-server Lists only users from the specified server.

whois

Syntax:

/whois nicknames

This is used to get detailed information about users with the specified nicknames. You will get the following information about each user: user name, host, server, real name, and their away message. The real name has to be taken with a grain of salt because the user can set this to whatever he wants.

For example, you might get the following output if you try the following command: /whois wsb.

*** wsb is wsb@test.gnulix.org (William B.)
*** on channels: @#gnulix
*** on irc via server irc-2.mit.edu (Massachusetts Institute of Technology)
*** wsb has been idle 27 seconds

whowas

Syntax:

/whowas nickname

This shows detailed information about the user who last used the specified nickname. This will be shown even if the user is not logged in. You will be shown the same information as the /whois command outputs.

Customizing ircII with a .ircrc File

When ircII starts up it will try to access its local configuration file. This file is named .ircrc and simply contains ordinary ircII commands, just as those you use during your ircII sessions. By putting the commands you often use, especially during start up, in a file you can save a lot of typing and start up IRC sessions much faster.

Listing 7.1 is a sample .ircrc script that is distributed in the ircII package. You can find this sample file at /usr/share/irc/script/ircprimer. Notice that it defines many powerful macros and aliases. This could probably serve as a good basis for your own .ircrc file.

Example 7.1. A Sample .ircrc File

# Sample .ircrc script, from the IRCprimer v1.1
# -------------------------------------------------------------------
#    IRCII sample configuration file  (~/.ircrc)  (Nicolas Pioch)
# -------------------------------------------------------------------
# The aim of this file is to shorten all useful commands to 1 letter.

^set DISPLAY off
set NOVICE off
set INPUT_ALIASES off
set AUTO_WHOWAS on
set SHOW_CHANNEL_NAMES on
set SHOW_AWAY_ONCE on

# Speeds up ircII display 2 times
set SCROLL_LINES 2

# Put Hack notices down under
# Get rid of stupid 2.6 server messages "*** Nick: Channel not found"
on ^SERVER_NOTICE "% \*\*\* Notice -- Hack: *" set status_user Hack: $5-
on ^403 *

# Modified killpath script from YeggMan
ALIAS kpath ECHO ### Last received KILL for $nkp.path
ASSIGN nkp.path <empty>
ALIAS nkp.msg ECHO ### $Z -- KILL by $1 for $0 $2-
ALIAS nkp.idx ^ASSIGN FUNCTION_RETURN $({ [$RINDEX(! $0)] + 1} )
ALIAS nkp.srv ^ASSIGN FUNCTION_RETURN $INDEX(. $MID($nkp.idx($0) 512 $0))

ON ^SERVER_NOTICE "% \*\*\* Notice -- Received KILL*" {
        IF ( nkp.srv($12) > -1 )
            {  nkp.msg $8 $10 }
            {  nkp.msg $8 $10 $13- }
        ^ASSIGN nkp.path $8-
}

# Function to strip the less significant part of an internet hostname
alias userdomain {
  @ function_return = LEFT($INDEX(@ $0) $0)##[@]##MID(${ 1+INDEX(. $0)}  99 $0)
}

# Who is that ?
on ^msg * echo *$0!$userdomain($userhost())* $1-

# /w [<nickname>]                        get info on someone
# /q [<nickname>]                        query someone
# /m  <nickname> <text>                  send a message
# /n  <nickname> <text>                  send a notice
# /r <text>                              reply to last message I got
# /a <text>                              followup on my last message

alias w whois
alias q query
alias m msg
alias n notice
alias r msg $,
alias a msg $.

# /j <channel>                           join a channel
# /l <channel>                           list people in a channel
# /ll                                    list in the current channel
# /i <nickname> [<channel>]              invite someone
# /hop                                   leave the current channel

alias j join
alias l who
alias ll who *
alias i invite
alias hop part $C

# /o <nickname> [<nickname> <nickname>]  give channel op status
# /d <nickname> [<nickname> <nickname>]  remove channel op status
# /k <nickname>                          kick someone
# /mo [+|-]<modechars>                   change current channel mode

alias o mode $C +ooo
alias d mode $C -ooo
alias k kick $C
alias mo mode $C

# the "wrong person" alias! /oops <nickname> to resend message to
alias oops {
        ^assign _whoops $B
        msg $. Whooops ! Please ignore, that wasn't meant for you.
        msg $0 $_whoops
}

alias unset set -$*
alias unalias alias -$*
alias NickServ msg NickServ@Service.de
alias NoteServ msg NoteServ@Service.de

^set DISPLAY on

# -------------------------------------------------------------------

xchat

One of the most polished and feature-filled GUI IRC clients for Linux is xchat. It uses the GTK+ toolkit for its GUI and has a couple of extra features available if you run it with the Gnome Desktop. However, you can run it with any desktop or window manager and still have an excellent IRC client. The xchat client supports scripting in both Perl and Python, it supports dcc download/uploads of files, it has mIRC resumes for file transfers, and it also supports mIRC style color. It has all the features you can expect from a modern IRC client, and then some.

Starting xchat

Upon starting xchat you will be presented with a server list dialog, as shown in Figure 7.1.

07fig01.gif

Figure 7.1 The server list dialog of xchat.

In this dialog you can specify your nickname and a couple of fallback nicknames in case your first choice is taken. You can also set a real name and username to be presented instead of those that are set in your Linux account. All of these options are preset to names taken from the information available in your Linux account. You will probably want to set these to something better.

You can also toggle some options in the dialog. For example, you can tell the client to skip the Message of The Day, or MOTD, when logging in to a server. You can also tell the server dialog not to pop up each time you start xchat.

The most important use for this dialog is of course to maintain groups and lists of IRC servers. This is where you maintain your list of servers. From here you can add, edit, and delete servers. You can then use the list widget to connect to the servers that you have defined. To get a better overview of the servers it is possible to arrange them into groups. For example, you might want to collect all servers from a specific IRC net into a group named after the net. The xchat client comes with a large collection of predefined servers. These servers should probably last you quite a while.

Using xchat

Once you have connected to a server you will be presented with the main window of xchat. See Figure 7.2 for a typical IRC session using xchat. This is the screen where you will be spending most of your time when you are using xchat.

07fig02.jpg

Figure 7.2 A typical xchat session.

The tab buttons at the bottom of xchat's screen show you which servers you are connected to and which channels you have currently joined. Clicking on one of the tabs will change the view to the chosen channel or server so that you can see what is going on. Above the tab buttons is a text input field where you can type messages or IRC commands. The majority of the screen is taken up by the chat traffic from the current IRC channel. On the left part of this you will see the nickname of the person chatting and on the right you will see what he is writing. The look and feel of this widget can be configured in many ways.

On the right-hand side of the screen is a list box that displays all the users who are currently online in the channel. By performing a right-clicking on one of the users you will be presented with a menu filled with options. The top option will show information about the chosen user. You will also be able to initiate private conversations with the user and so on. Most of the options on this menu are pretty self-explanatory. However, should you feel inclined to experiment with the various user commands on the menu, be sure to choose a user who will not be offended if you happen to do something stupid…

Finally, at the top of the screen, just below the menus, are various informational widgets. At the left are buttons that will allow you to rearrange the window and the tab buttons. In the middle is a string widget that shows the topic of the current channel. Toggle buttons that show which flags are in effect for the channel takes up the rest of this row. If you are the operator of the channel you can use these buttons to change the flags of the channel.

Joining Channels with xchat

Connecting to a channel is easy with xchat. Simply choose the Channel List Window menu option from the Windows menu and you will be presented with the dialog seen in Figure 7.3. There are a couple of options that let you customize the channel listings to some extent. You can specify a wildcard expression to list only channels that match this pattern. It is also possible to specify that only channels with a minimum number of users should be shown. When you are satisfied with your choices, click the Refresh button to get a channel list from the IRC server. Once the list is finished, you only have to double-click on a channel to join it. Of course, should you choose to, you can always use the /join command to join a channel.

07fig03.gif

Figure 7.3 The Channel List Window from xchat.

Configuring xchat

Using the setup option from the Settings menu will present you with a dialog with a score of options. These can be used to configure xchat to suit your personal preferences. As already noted it is very important that you change the download directory to something other than the default setting. See Figure 7.4 for an example of how the File Transfer Settings dialog might look.

07fig04.gif

Figure 7.4 The File Transfer Settings dialog of xchat.

The most important option here is the Directory To Save To setting. Be sure to change this to a directory where you have nothing important and can be reasonably sure that an unsuspected download cannot cause any harm. Make sure that the directory you specify actually exists.

Apart from this setting there are multitudes of others. However, there are far too many settings with too many options to cover in detail here. The default options are very good and should suit almost anyone's needs. It is probably better to keep them as they are while you get to know both IRC and the xchat client better. Be sure to take a look at http://xchat.org/docs.html, where you will find the online user documentation for xchat.

Running an IRC Server

Finally, it is possible to run your own IRC server. However, if you want to join one of the major IRC nets, you should be aware that this requires a huge amount of bandwidth and major computer power! Also you will need to tweak your system quite a lot to get the needed performance from your system. You may even need to compile a special version of the Linux kernel to be able to cope with the resource drains imposed by an IRC server. Because each connection to the IRC server will consume file handles, you will need to increase the number of file handles that each process can use. You can do this dynamically by changing the value in /proc/sys/fs/file-max. You will also need to increase the number of file handles available for the whole system. In the Linux 2.2 kernel series this can only be changed at compile time.

There is no IRC server included with the Red Hat 7 distribution even though there are several available in RPM format. Running an IRC server is not something the casual user would want to do, and to run one that is to have lots of traffic is something that is best left up to power users and gurus.

Share ThisShare This

Informit Network