A news server is a computer with software which receives news articles of (some or all of) Usenet's newsgroups from other news servers, propagates them to yet other news servers, stores them locally for a certain period of time and provides them to newsreaders that connect to it. It also allows newsreaders to post new articles which it stores and propagates as well.
The propagation of news articles is configured at the feeding (=sending) news server, i.e. each news server has a list of other news servers to which it propagates news articles (except to those which already have the name of the feeding news server in their Path: header; see here). This in turn means that to operate a news server you'll need to find an operator of an already working news server who is willing to feed you (= include your news server in the list of news servers her news server is feeding).
Since a public news server, which will usually carry most or all Usenet newsgroups, has to deal with some 30,000 newsgroups (as of late 1998) and hundreds of thousands of articles daily, it is very important that the news server software installed on the news server provide an effective means to store and deal with articles. It also has to take care that old articles are deleted regularly (= expire) so that there is enough space on the hard disks to store new ones.
Since older news server software (such as CNews) was no longer able to cope with the rising number of articles, Rich Salz wrote the free INN (Internet News) software in 1993. Since then, INN has become the standard news server software all around the world. Today, it is maintained and constantly developed further by an open group of volunteers hosted by the Internet Software Consortium.
INN is a complex program which, in accordance with the spirit of UNIX, is built in a strictly modular way, i.e. it de facto consists of many smaller programs that interact with each other. At the heart of it is innd, the INN Daemon, which is started when the news server machine is booted, and from then on waits for other news servers or newsreaders to connect. Upon a connection, it acts itself or delegates certain tasks to other INN programs.
INN has a list of news servers that are allowed to feed it. If a computer included in that list connects to the INN machine, innd waits for new news articles to be fed to it. The central INN configuration file newsfeeds tells innd where to propagate the incoming articles. In addition to other news servers, this will always include the local article spool folder where innd stores incoming articles, and the Overview Database, which is kind of a table of contents for newsreaders.
If a computer that is not included in the list of feeding hosts connects to INN, innd assumes that the connection is made by a newsreader (this behavior may be modified) and delegates it to the nnrpd program (the Net News Read and Post Daemon) which handles the newsreader's requests, provides it with articles and Overview Database information, and feeds articles posted by the newsreader into innd. If, for some reason, a computer that is listed with INN as a feeding news server also has a newsreader program installed, then the newsreader program must issue a MODE READER command when connecting to innd to tell it that it is a newsreader, not a news server.
While INN is very good software, it is not ready to use as a personal, local news server, whose task is simply to store and administer newsgroups of personal or local interest. For this reason PersonalINN has been created.