Web Analytics Made Easy - Statcounter


https://www.amazon.it/dp/B0CT9YL557

We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
a2 --- nanoLinux III

[next] [previous] [top] [last] [contents] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico] [tome] [part]


Chapter 753.   nanoLinux III

(1)

nanoLinux III (2) is a GNU/Linux Debian distribution, for the i386 architecture, installed in an auto-start CD-ROM, which can be reproduced within a partition of a hard disk, thus becoming again a normal Debian GNU/Linux distribution.

To work correctly, nanoLinux III requires plenty of core memory (RAM); to be precise at least 128 Mbytes are required.

Differently from other auto-start CD-ROMs which contain a GNU/Linux system, nanoLinux III tries to use as little tricks as possible, in order to allow the user to change and reproduce similar CD-ROMs in a simple way.

The objective of nanoLinux III is mainly didactic, to spread Appunti di informatica libera and to teach the basics of a Unix system. nanoLinux III allows to use some graphical applications with a pre-defined set-up that uses a pointer device corresponding to a PS/2 mouse.

The name nanoLinux is associated with some more or less experimental works of Daniele Giacomini: nanoLinux I and nanoLinux II, produced respectively in 1997 and 1998, which are extremely reduced GNU/Linux systems, to be used from diskettes. The site NanoLinux which can be accessed with the URL <http://www.nanolinux.com> has nothing to do with these works.

753.1   Preparation

nanoLinux III could be distributed directly in CD-ROM format, or by using a file which contains the image of the CD-ROM to be reproduced. In the latter case, once the file has been obtained, if this is compressed it is necessary to restore it in its original format, then one can start its transfer to a CD. The file should have a name similar to the following:

nLinux-III-edizione.gz

To restore the file to its original format, if you use a Unix operating system, you can do the following:

gunzip nLinux-III-edition.gz[Enter]

You will get the file nLinux-III-edizione, ready for the CD.

The reproduction of the nanoLinux III CD-ROM, as that of any other auto-start CD-ROM, requires a new CD of pretty good quality, because the CD reader to be used has to do a very heavy work; moreover even if a low quality CD might be readable in normal conditions, often it cannot be used to obtain the auto-start of the system.

When you finally get a nanoLinux III CD-ROM, you should remember to check the firmware (the BIOS) configuration, where the first unit to be used for booting should be the CD-ROM reader.

Picture 753.1. The irmware configuration should appear as follows in order to start the CD-ROM before the hard disk system.

    Boot drive sequence:
        1st. ----------------------------- [CD-ROM]
        2nd. ----------------------------- [Floppy disk]
        3rd. ----------------------------- [Hard Disk]

Picture 753.2. In an older firmware, there might be a unique option for the start-up sequence. In this case, the letter 'A' represents the diskette, whereas the letter 'C' represents the hard disk.

    Boot sequence:         [CD-ROM,A,C]

753.1.1   Emergency boot diskette

If you want to use nanoLinux III also on a computer where it is not possible to boot from CD-ROM, it is still possible to reproduce a boot diskette, which contains a reduced kernel, in which some important functions might be missing.

The standard kernel of nanoLinux III is pretty large in order to reduce as much as possible the need to load modules when it is used. Because of this kernel size, if you need a boot diskette, you should prepare a smaller kernel, but in this case, even if there are some modules in the /lib/modules/ of the CD-ROM, they are not usable, because they are associated with a different kernel compiled before.

The files which contain the diskette image can be found in the root directory of the CD-ROM, with the name boot.img. You can easily obtain a copy of this diskette from the image by using on a GNU/Linux system,a command such as the following:

cp boot.img /dev/fd0[Enter]

If you have a Dos or MS-Windows system, you can use the MKFLOPPY.BAT script which then uses the program RAWRITE2.EXE, both located in the root directory of the CD-ROM:

D:\> MKFLOPPY.BAT[Enter]

In the above example we assume that the CD-ROM reader corresponds to the a unit D:.

If you want to produce a different kernel, suitable for your own requirements, you can still prepare a boot diskette in the way described above , then you should replace the files vmlinuz and cloop.o (without moving the other existing files and without changing the boot sector of the diskette), which obviously are the compiled kernel and the module required to access the compressed portion of the CD-ROM. Actually, you must necessaraly recompile the module cloop.o, because the CD-ROM one would be incompatible. Notice that the diskette contains a common Dos-FAT file system and nothing else is required after replacing the file. Notice also that the original diskette should contain the config.gz file, which includes the configuration of the available kernel: this file can be removed because is not required for booting.

753.2   System start-up and shut-down

You might get, according to the version of nanoLinux III, either a graphical logo, or just some explanatory text.

nanoLinux III, as an adaptation of a GNU/Linux distribution to work directly
out of a CD-ROM, is Copyright (C) 2002-2003 Daniele Giacomini
<daniele@swlibero.org>.

 This work is free software; you can redistribute it and/or modify it under the
 terms of the GNU General Public License as published by the Free Software
 Foundation; either version 2 of the License, or (at your option) any later
 version.

The GNU/Linux distribution contained inside the nanoLinux III CD-ROM has its
own conditions, and the same is for the software packages included (see files
/usr/share/doc/*/copying for details). The software included is generally free,
or at least free of charge, but some activities like selling or exporting out
of some countries might be restricted.
*******************************************************************************
Please select a name like: hda, hdb, hdc,... hda1, hda2,... sda, sdb, sdc,...
sda1, sda2,... to boot the root file system from the corresponding device file
(/dev/hda, /dev/hdb, etc.). You may select a BIOS device with a name like "80",
which selects the boot sector inside the first ATA hard disk. You may also
press [Enter] to boot the default hard disk.   

In any case, the start system of nanoLinux III requires to enter references to identify the CD-ROM unit, in order to inform the kernel about the file system to be mounted during the start-up.

The main kernel file of nanoLinux III includes many functions, therefore it could be used also to boot an operating system on a partition of the hard disk, which has everything that is required except a working boot mechanism.

If we assume that the CD-ROM is inserted in a reader corresponding to the /dev/hdc device , you should enter at boot time the hdc reference as follows:

boot: hdc[Enter]

If you don't enter anything or if you just press the [Enter] key, the system is started from the hard disk which might contain a different operating system. In this way, you could leave the CD-ROM of nanoLinux III in the reader, without any problem for the normal use of your computer.

Since the kernel is pretty large, the initial varification phase of the available devices takes a relatively long time;(3) moreover, the following phase of the >system initialisation procedure (Init), might present errors due to the presence of a read-only file system.

If you don't know which device corresponds to the CD reader, you can make some attempts, by knowing that, if you make an error, the kernel stops with a kernel panic message, that specifies that the entered device cannot be mounted.

If you use a reader that is not in perfect conditions , or if you use a copy of nanoLinux III from a disk that has not the requested optimal characteristics, even if the CD-ROM can be started, you risk to stop before the start-up procedure with a miserable kernel panic.

When you start from CD-ROM, the start-up procedure might show various innocuous errors due to the presence of a read-only file system. These inevitable errors are not ignored, both to allow the user to understand what happens with the system, and to allow the user to find other errors that might become a real problem.

After the start-up phase, the system appears as a common GNU/Linux distribution, where it is not necessary to enter the usual identification data. There are only two users: the administrator (root) and the common user nano.(4) Both these user names are associated to the password nano:

nano login: root[Enter]

Password: nano[Enter](5)

Or:

nano login: nano[Enter]

Password: nano[Enter](6)

If you want to use nanoLinux III to access the network, you should configure the network interface or interfaces manually.

Generally, nanoLinux III does not attempt to mount the computer disks, but exceptionally if the first partition of the hard disk contains a FAT or VFAT file system, this is mounted in /mnt/hda1/ and can be accessed by using the /dos/ link.

If you want to use the graphical interface, you must start it manually, but this should be done only as a nano user:

startx[Enter]

If you want to allow a tutor to check remotely your work , you should use sharedx:

sharedx[Enter]

Notice that, if this script is started from CD-ROM, it must not be sent to the background, because it requires the entry of the graphical adapter type and it suggests also what appears within /proc/pci.

Picture 753.4. Screen presented by startx when it is started from CD-ROM.

.----------- compatible controller: S3 Inc. ViRGE/DX or /GX (rev 1) ---------.
|                                                                            |
| Please, select one of the following video adapters:                        |
| .------------------------------------------------------------------------. |
| |                     vesa           try this before                     | |
| |                     apm                                                | |
| |                     ark                                                | |
| |                     ati                                                | |
| |                     atimisc                                            | |
| |                     chips                                              | |
| |                     cirrus                                             | |
| |                     cyrix                                              | |
| |                     fbdev                                              | |
| |                     glide                                              | |
| |                     glint                                              | |
| |                     i128                                               | |
| `----------------------(+)-----------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >            <Cancel>                         |
`----------------------------------------------------------------------------'

In addition to the information on the graphical adapter, the script requests also which keyboard map type should be used during the graphical session. The initial suggested choice depends on the value of the LANG environment variable:

Picture 753.5. Request to specify the keyboard map.

.--------------------------Select the X keyboard-----------------------------.
|                                                                            |
| Please, select one of the following keyboard maps:                         |
| .------------------------------------------------------------------------. |
| |                it           THIS IS THE DEFAULT                        | |
| |                us           U.S. English                               | |
| |                en_US        U.S. English w/ ISO9995-3                  | |
| |                us_intl      U.S. English w/ deadkeys                   | |
| |                al           Albanian                                   | |
| |                ar           Arabic                                     | |
| |                am           Armenian                                   | |
| |                az           Azerbaidjani                               | |
| |                by           Belarusian                                 | |
| |                be           Belgian                                    | |
| |                ben          Bengali                                    | |
| |                br           Brazilian                                  | |
| `----------------v(+)----------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK   >            <Annulla>                       |
`----------------------------------------------------------------------------'

When you have finished using the system, you can terminate in the usual way:

shutdown -h now[Enter]

However, unless you have mounted disks with important data, directly switching off the computer should not cause negative consequences, because the CD-ROM cannot be altered.

At the end of the work, the system does not offer the ejection of the CD; however since nanoLinux III does not interfere with the start-up of the system from the the hard disk, it can be left inserted in the reader.

Table 753.6. Some names that can be used to control the CD-ROM start.

Name Behaviour
If nothing is entered, the system installed on the first hard drive is started.
hda
Starts the kernel of nanoLinux III to mount the first ATA device (it might be a CD-ROM reader of a computer without an hard drive).
hdb
Starts the kernel of nanoLinux III to mount the second ATA device (it might be a CD-ROM reader).
hdc
Starts the kernel of nanoLinux III to mount a third ATA device (it might be a CD-ROM reader).
hdd
Starts the kernel of nanoLinux III to mount a fourth ATA device (it might be a CD-ROM reader).
hda1...hda7
hdb1...hdb7
hdc1...hdc7
hdd1...hdd7
Starts the kernel of nanoLinux III to mount a partition of an ATA disk, corresponding to the device file /dev/sigla. This can be useful to start an already installed GNU/Linux system that does not start directly.
80
Starts the operating system installed on the first hard drive.
81
Starts the operating system installed on the second hard drive.

753.3   Installation on the hard disk

nanoLinux III can be installed in a partition of the hard disk, manually, as a minimal Debian GNU/Linux that can be eventually extended through the installation of additional packages.

To do this, you should use fdisk, to prepare a partition for the virtual memory (type 8216) and one for the file system (type 8316).

If you install nanoLinux III with the objective to eventually modify it, you need a pretty large virtual memory partition; to be precise it is necessary to have at least 2 Gbytes.

If we assume to have defined a partition corresponding to /dev/hda1 for the virtual memory and /dev/hda2 for the file system, you must then continue with their initialisation:

mkswap /dev/hda1[Enter]

mkfs.ext3 /dev/hda2[Enter]

Finally you can mount the partition reserved for the file system, and then copy there the content of the CD-ROM. However it is not possible to copy everything exactly as it is on the CD-ROM, because it is necessary to move something. Therefore, to simplify this operation and to be sure that all necessary things are recreated, you can just use the following script, with an argument indicating the device corresponding to the target partition, which should have already been prepared and initialised as discussed before:

installnanolinuxfromcd /dev/hda2[Enter]

Unfortumately, some CD readers which seem to work perfectly, do not read correctly the content of the CD, by removing complete directory branches and, sometimes, by transforming directories into empty executable files. It is important to keep in mind this possibility when you use nanoLinux III, and especially when you try to install it, because you might get only a partial copy of the original CD.

The copy requires some time. When you can determine that the content of the boot/ directory has been copied, you can move to another virtual console and install the start-up system, that uses GRUB. We still assume that the copy of nanoLinux III is installed in the partition corresponding to the device /dev/hda2:

grub[Enter]

grub> root (hd0,1)[Enter]

 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)[Enter]

 Checking if "/boot/grub/stage1" exists... yes
 Checking if "/boot/grub/stage2" exists... yes
 Checking if "/boot/grub/e2fs_stage1_5" exists... yes
 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  16 sectors are embedded.
succeeded
 Running "install /boot/grub/stage1 (hd0) (hd0)1+16 p (hd0,1)/boot/grub/stage2
/boot/grub/menu.lst"... succeeded
Done.

grub> quit[Enter]

The commands above install a generic boot menu, which requires to enter the partition to start. If you want, you can modify the boot/grub/menu.lst according to your requirements, especially if you want to start also another operating system.

Generally it is not advisable to use two different operating systems on the same machine, unless both are organised to live peacefully together. Generally, GNU/Linux works correctly if other alternative systems are used on the same computer, but the other operating systems might not be able to do the same.

If you prefer to avoid modifications of the hard disk start sector made by GRUB, you can still start the partition that contains the copy of nanoLinux III by using the CD-ROM, by entering, in this case, the value hda2 during the boot phase.

When the copy is finished, in addition to the setup of the start-up system, it is necessary to work on some parts of the configuration; precisely you should check the /etc/fstab file, within which you should enter also the partition reserved for the virtual memory. You should check the first three lines, that in this case should appear as follows:

/dev/hda1   none                 swap   sw                           0   0
/dev/hda2   /                    auto   defaults,errors=remount-ro   0   1
/dev/hda2   /CD-ROOT/nanoLinux   auto   defaults,noauto              0   0

Notice that you must enter two mount points associated to the same device file: by remounting the partition also in the /CD-ROOT/nanoLinux/ directory, it is then possible to recreate a new CD of nanoLinux III, after a probable modification of the copy created on the hard disk.

When the installation is finished, the script< removes the numerical users, i,e those that have a number greater or equal to 1 001 instead of a name; moreover, it removes the password of regular users, to prevent their access, by leaving the access only to the (root) user. You should change the password of the administrator and assign one to the regular users as soon as possible.

If your computer has a stable connection to the local area network, you should work with the /etc/init.d/network script; notice that this file is quite different from those normally used with Debian GNU/Linux distributions, but it can be changed back to its normal form. Anyway, you should change the files /etc/hostname and /etc/mailname. For example, if your computer must have the dinkel.brot.dg domain name, the first file must contain the string dinkel, whereas the second one must contain the complete domain name.

Once nanoLinux III has been installed, you will notice that the startx script reverts back to its usual behaviour; therefore you might need to work on the /etc/XF86Config configuration file, that normally assumes a VESA graphical adapter, or you might use the selectx script (that must be started with the root user privileges), to re-createche a suitable /etc/XF86Config.

The selectx script performs only the re-creation of the /etc/XF86Config file from /etc/XF86Config.vesa, by changing the type of graphical adapter. Once selectx has been run, you can then use startx in the usual way.

If you are going to use the to change the installed packages or to update them, you should remember to modify the /etc/apt/sources.list file, by entering suitable values for your environment.

753.4   Details of the Debian GNU/Linux distribution contained in nanoLinux III

As described above during the description of the installation procedure, there is a /etc/init.d/network file different from the standard one. Moreover there are other details that should be considered.

753.4.1   Directory for the mount point of other file systems

The directory /mnt/ is structured with various sub- directories to easily mount disks and local partitions, together with the network file system, with the support of the NFS protocol. Actually, according to the configuration of the /etc/fstab file, a device correponding to the file /dev/nome can be easily mounted by using the following command:

mount /mnt/name[Enter]

For instance you can mount a diskette on the first drive, by using the following command:

mount /mnt/fd0[Enter]

Since a diskette with a Dos-FAT file system is assumed automatically to use short file names, there is a directory /mnt/a/ which can be used to mount Dos-FAT diskettes with long names:

mount /mnt/a[Enter]

A nanoLinux III system allows the share of the full file system by Dos-FAT (including all mount points corresponding to the /mnt/* directories) by using the NFS; protocol. However before being allowed to mount the file system of a nanoLinux III machine, you should start the corresponding service of the server:

/etc/init.d/nfs-kernel-server start[Enter]

To mount the main file system of another nanoLinux III system (whose corresponding service should have been started before) you can just enter the following command:

mount /mnt/ipv4_address[Enter]

However, if you wish to reach something mounted within the main system, a more specific command is required. The following example allows to reach a diskette mounted in the /mnt/fd0 directory of the node 192.168.1.2, by mounting it in the local directory /mnt/0/:

mount -t nfs 192.168.1.2:/mnt/fd0 /mnt/0[Enter]

Notice however that sharing is allowed only for IPv4 addresses of 'private networks'.(7)

753.4.2   Configuration of Bash and system scripts

The file /etc/profile is more detailed than the standard one. Especially, the PATH variable considers also the content of the /opt/*/bin/; directory. Moreover there is a /etc/script/ directory for the scripts that are not included in the standard distribution. The directory /etc/script/ appears before the other paths, in order to have precedence in case of equal names.

753.4.3   Localisation

The local configuration of nanoLinux III is mainly suitable for Italy. Particularly it starts with an italian keyboard map, which however can be easily changed by using loadkeys, as it appears in the following example where the british keyboard map is chosen:

loadkeys uk[Enter]

As to the keyboard map used with X, the selectx script, which is automatically used during the installation from CD-ROM, selects a keyboard map suitable to the content of the LANG environment variable or, if no better choice is found, selects the international english keyboard.

You could simply adapt the general behaviour to your national characteristics by changing the LANG environment variable and possibly the LC_* variables; however there is a simpler method: in the files /etc/passwd and /etc/shadow there are different users with the UID number of the user nano. These users correspond to a language code; for instance it for the italian language and en for the english language. By using these users instead of the generic nano name, you will get an automatic configuration of the LANG environment variable according to the local requirements. This selection is done automatically by the /etc/profile script of Bash.

753.4.4   Keyboard and mouse configuration

The keyboard is configured according to the conventions of the Debian GNU/Linux distribution; however, the pre-defined map is suitable for the italian keyboard with the addition of some special symbols (e.g. the upper case accented letters). If the keyboard management package is updated, the keyboard map is probably replaced by the standard one, without the extensions; the extended map can be found in /etc/console/it-base-edizione.map*.

The mouse management is under the control of GPM and of the graphical system XFree86; it uses the information generated by GPM, without any direct access to the mouse. The predefined configuration of nanoLinux III is based on a mouse of type PS/2, but you can use the mouse script to choose a different mouse:

Picture 753.10. Display from the mouse script.

.--------------------------- Mouse selection---------------------------------.
|                                                                            |
| Please, select the mouse:                                                  |
| .------------------------------------------------------------------------. |
| |       gpm -t ps2 -m /dev/psaux -R mcs  PS/2                            | |
| |       gpm -t ms  -m /dev/ttyS0 -R mcs  Microsoft serial COM1:          | |
| |       gpm -t ms  -m /dev/ttyS1 -R mcs  Microsoft serial COM2:          | |
| |       gpm -t msc -m /dev/ttyS0 -R mcs  MouseSystems serial COM1:       | |
| |       gpm -t msc -m /dev/ttyS1 -R mcs  MouseSystems serial COM2:       | |
| `------------------------------------------------------------------------' |
|                                                                            |
|----------------------------------------------------------------------------|
|                       <  OK  >            <Cancel>                         |
`----------------------------------------------------------------------------'

You can also change manually the file /etc/gpm.conf and temporarely change what is needed; you must, of course, restart the gpm daemon by using the distribution script:

/etc/init.d/gpm stop[Enter]

/etc/init.d/gpm start[Enter]

If a mouse works on a console, it will also work with XFree86.

It might happen that the gpm daemon does not start regularly, even if the predefined configuration is correct for the real situation. In this case, you should restart the service manually in the way presented above.

753.4.5   System initialisation procedure

The system initialisation procedure has two additional scripts, called /etc/init.d/rc.hardware and /etc/init.d/rc.local, referred to by the links /etc/rcS.d/S31rc.hardware and /etc/rcS.d/S99rc.local. The former of these two scripts is used to control a simple system for the identification of some hardware components and for loading their relative modules; the latter one collects all that must be done at the end of the start-up procedure; especially, it defines the type of characters to be used with the virtual consoles and tries to replace some files that are used for the configuration of the window managers.

When nanoLinux III works from CD-ROM, there is also another file, /etc/init.d/rc.CD-ROM, which has the purpose to reproduce the necessary structure of the directories /var/, /home/ and /etc/ in the virtual file system contained in the RAM disk; it tries also to mount the /dev/hda1 partition as a VFAT file system; finally it tries to activate the virtual memory if it can find a partition for this purpose or a file nlnx3tmp.swp (as described later on in the chapter).

753.4.6   Graphical system

The configuration of XFree86 is stored in the file /etc/X11/XF86Config; the file /etc/X11/XF86Config.vesa contains the same configuration and exists for back-up purposes.

The starting configuration is based on a VESA graphical adapter, used to visualise 1 024×768 points at a depth of 16 bit (216 colours).

nanoLinux III has limited provisions for the graphical environment and provides only the Fvwm window manager. To guarantee that Fvwm is started, the file /etc/X11/xinit/xinitrc has been modified and to guarantee that it is not altered, there is a copy in the directory /etc/X11/xinit/ which is automatically copied by the /etc/init.d/rc.local script, that was described before.

The configuration of the Fvwm window manager, has been re-written (see the file /etc/X11/fvwm/system.fvwm2rc) and the /etc/init.d/rc.local script keeps it as established for the nanoLinux III.

If you like this approach, you should make any changes for the menu of Fvwm in the file /etc/X11/fvwm/system.fvwm2rc.nanoLinux; otherwise, if you prefer to restore the normal conditions, you can just remove the instructions that copy each time this file within /etc/init.d/rc.local, possibly including also what refers to /etc/X11/xinit/; if you eventually update the related packages, the situation should slowly go back to the normality.

With regard to the menu of Fvwm, you should notice that the options are not descriptive, but just contain the commands that should be entered on the character terminal to start each program. For instance, to start Ethereal you need to have the provileges of the root user, therefore the command is: su root ethereal. This approach is useful to reduce the difference between the command line use and the visual-intuitive one.

It is important to notice that the nanoLinux III system, when it is started from CD-ROM, does not allow changes to the personal directory of the root user. Therefore, the graphical mode cannot be started with this user, because most application programs require to modify the personal directory of the user and would therefore fail.

753.4.7   DNS and the computer name

The configuration file of Bind, for names resolution, are stored in the directory /etc/bind/ and include initially the address 127.0.0.1 and, for didactic purposes, also some private IPv4 addresses. Moreover, the name nano appears in the file /etc/hosts, as a synonym of di localhost, to guarantee the correct work of some programs.

753.4.8   SMTP

nanoLinux III includes an MTA to send and deliver electronic mail. Precisely it is Exim, which is configured to allow the delivery of messages also to nodes identified by an IP address, by using the following format:

nano@[192.168.1.2]

Notice that it is necessary to use square parentheses to delimit the address.

with this approach, you can use Mailx (the mail program) to send messages to other computers where nanoLinux III is installed. However, all messages appear to have been transmitted by nano@nano, i.e. an unreachable sender.

With this approach, the delivery of messages to normal addresses, might not be allowed by the remote SMTP servers, because of the impossibility to resolve the original domain nano.

753.4.9   HTTP e PHP

There is a Boa HTTP server. In order to simplify its use when nanoLinux III is started from CD-ROM, its standard configuration has been modified to match the URI http://node/a/, http://node/c/ and http://node/fd0/, with the content of the directories /mnt/a/, /mnt/hda1/ and /mnt/fd0/; in a similar way, the URI http://node/cgi-bin-a/, http://node/cgi-bin-c/ and http://node/cgi-bin-fd0/, meant for CGI programs, point to same directories. This should allow to easily reach the content of a diskette or what is found in the first partition of the hard disk (probably a VFAT file system).

Together with Boa there are also Webalizer and ht://Dig, for the statistical analysis of the accesses and for data indexing (obviously only for didactic purposes).(8)

You should remember that you can update the statistics, which appear from the address http://localhost/webalizer/, by simply running the executable webalizer without arguments:

webalizer[Enter]

Morever you can update the indexes by running rundig with the options -a and -i:

rundig -a -i[Enter]

There is also a PHP interpreter, but in order to use it with Boa an intermediate script has been added. Practically, in order to use PHP to interpret HTML pages, the address http://nodo/cgi-bin/PHP/html_file_path must be referred to. This script allows also to read the content of a directory, in order to simplify the tests, because in this way you can see the name of the files that can be interpreted by PHP. The >script mentioned aboove is called /usr/lib/cgi-bin/BOA.

753.4.10   FTP

There is an FTP server OpenBSD FTP, which allows the access both as an anonymous user or a regular user. The directory for the FTP anonymous service descends from /var/ftp/.

753.4.11   POP3

Thereis a POP3 server, for didactic purposes, to allow the nano user to receive mail. If you want to use Mozilla to read the received messages, you can refer to the POP3 server of the local computer (localhost).

753.4.12   Elementary security

nanoLinux III includes a server for the SECSH protocol (Secure Shell), which however is not started automatically by the operating system, because it would be quite easy to reach the computer by perfectly knowing the passwords of the two available users. Moreover, as already discussed, also the data sharing based on the NFS protocol is not active in a predifined mode. To activate these two services, you can do as follows:

/etc/init.d/ssh start[Enter]

/etc/init.d/nfs-kernel-server start[Enter]

It is also possible to use two scripts to start and stop both services, i.e. allowfreeaccess and denyfreeaccess.

nanoLinux III has also a Psad to check the signals generated by packet filtering. When the system is used from CD-ROM, Psad is not active. You can activate it, after correctly configuring the events that you want to check by using Iptables, as follows:

/etc/init.d/psad start[Enter]

753.4.13   Modem connection

Within the directory /etc/script/ there is the ppp-on script which should allow a simplified connection by using ISPs that offer a free service. The work of this script depends on the presence of an external modem connected to a standard serial port.

If everything is correct, you can just start ppp-on with the provileges of the root user and follow the instructions. It prompts the entry of the supplier, the user name under which you are recognised, the password, the serial port corresponding to the modem and the ppp-on telephone number. You can cancel the operation at any time by the combination [Ctrl c].

The script uses the data entered by the user to create each time the files /etc/ppp/chap-secrets and /etc/ppp/pap-secrets.

A connection activated as descibed above can be terminated by using the ppp-off script, or by killing the process corresponding to pppd.

If you install nanoLinux III on the hard disk, you could modify this script in order to permanently enter some personal information, such as the name, the password and the device file used for the modem, by setting some environment variables, whose meaning should be intuitive:

#-----------------------------------------------------------------------
# Variables.
#-----------------------------------------------------------------------

PASSWORD_LIBERO="frt653w8"
PASSWORD_WIND="dsweaq287"
PASSWORD_TISCALI="jkiuvcdsw3"
PASSWORD_TIN="98jmnvcds"
PASSWORD_INTERFREE="98dsa23asd"

UTENTE_LIBERO="tizio.tizi@libero.it"
UTENTE_WIND="tizio.tizi"
UTENTE_TISCALI="tizio.tizi"
UTENTE_TIN="tizio87"
UTENTE_INTERFREE="blabla56"

TELEFONO_LIBERO=""
TELEFONO_WIND=""
TELEFONO_TISCALI=""
TELEFONO_TIN=""
TELEFONO_INTERFREE=""

PERIFERICA="/dev/ttyS0"

753.4.14   Printing

nanoLinux III includes a print server compatible with the BSD type, together with a print filter ready for all types of usable printers. You can just read the file /etc/printcap to know which names can be chosen with the command lpr, or you can use the printers script, to browse the list of available names.

Since the physical port where a printer is connected is no longer a fixed value, the name of the printer is followed by an extension which allows to determine whether it is connected to a parallel or to a USB port; moreover you can specify whether it is the first or second printer.

The printer chosen for printing is declared according to the following model:

print_filter_name[-{p|u}[n]]

In the extension, the letter 'p' is used for a link to a parallel port, whereas the letter 'u' is used for a USB port; moreover the final number allows to select the port: zero if it is the first one (also predefined), one if it is the second one.

For instance if you have a printer compatible with the generic HP Laserjet model, after checking with the printers script that the name laserjet exists, if this printer is connected to a USB port and if there are no other printers, you can use the lpr command as follows:

lpr -Plaserjet-u0

If the final number of the printer name is omitted it is assumed to be zero; if the complete extension is omitted, the first parallel port is used. The following example refers to a printer compatible with the filter named laserjet, connected with the first parallel port:

lpr -Plaserjet

Clearly, when you install nanoLinux III on the hard disk, you can modify the /etc/printcap file, by copying the definition of the required printer and then by assigning the name lp. This will allow you to print without the -P option. However, before adding this name, you should check whether it exists already in some other part of the file. The following example refers to a printer compatible with the generic HP Laserjet model and connected to the first parallel port:

lp:\
        :lp=/dev/lp0:\
        :sd=/var/spool/lpd/lp:\
        :af=/var/log/lp-acct:\
        :lf=/var/log/lp-errs:\
        :if=/etc/magicfilter/laserjet-filter:\
        :pl#66:\
        :pw#80:\
        :pc#150:\
        :mx#0:\
        :sh:

If you cannot print for some reason by using the queue, there is the minilpr script, in the /etc/script/ directory, which prints by using directly the device file /dev/lpn, or /dev/usb/lpn. In this way it is possible to print, but only if the printer is free and by remaining connected to the print program until it finishes printing.

753.4.15   Virtual memory

At boot time, the CD-ROM of nanoLinux III tries to identify among the hard disks some partitions already prepared for the swap of the virtual memory. If these exist and have been correctly initialised , nanoLinux III activate them.

If no partition of this type has been found, but you still want to activate the swap memory, you can create a file and then use it for the virtual memory. This can be done by the following command:

swap device_file

For instance, the following command can be used to create the file nlnx3tmp.swp, in the root directory of the partition corresponding to the device file /dev/hda1 and to activate within it the management of the virtual memory swap:

swap /dev/hda1[Enter]

If the referred disk or the partition have a suitable size and there is sufficient space, the file is created and the swap of the memory is activated.

When the CD-ROM is started, if no partitions are found for the swap of the virtual memory, the system checks the partitions corresponding to the device files from /dev/hda1 to /dev/hda7, to look for the file nlnx3tmp.swp. If this is found, the virtual memory is automatically activated within it. Actually, if this file exists, it is assumed that the virtual memory should be managed. However, notice that the search terminates as soon as a file with this name is found.

When nanoLinux III is installed on the hard disk, the search of the partitions and files for the virtual memory is no more needed, because, as already described, it should be instead defined in the configuration file /etc/fstab.

753.5   Variable data in the CD-ROM

When nanoLinux III works from a CD-ROM, some configuration files which are normally found in the /etc/ directory, are symbolic links to files that actually exist in the /ramdisk/etc/ directory, which can be modified, even if just temporarely. This allows to dynamically define the configuration of some apllication programs, such as the XFree86 and the PPP connection by switched line.

In addition to the practical requirements when the CD-ROM is used, some other files have been transferred to the /ramdisk/etc/, to allow their modification for didactic purposes. For instance it is possible to change the DNS configuration, by changing the zones test.dg and 1.1.10.in-addr.arpa.

Since it might be difficult to distinguish the files that can be modified and those that cannot, you should work directly with the directory /ramdisk/etc/, by knowing that only the files that exist there are actually used, whereas the addition of other files might be simply ignored.

Still for didactic purposes, nanoLinux III includes PostgreSQL, which can work from CD-ROM, if the data base files exists in /ramdisk/var/lib/postgres/. However, since this requires a large usage of memory, the data are copied in the RAM disk by a special script, which prepares and starts the service: startpostgresql, that creates the data base nano owned by the user with the same name.(9) Finally, there is also the droppostgresql script, which stops the service and deletes the data from memory. Clearly, this type of program is useful just to write some scripts to be eventually run by psql; These scripts can exist on a diskette to be mounted for this purpose.

nanoLinux III includes also a teTeX distribution, but it can be used from CD-ROM, only after re-creating the /var/lib/texmf/ directory by using the command starttexmf. When teTeX is no longer used, you can recover memory by using the command droptexmf.

753.6   Remote control

Among the various applications that accompany nanoLinux III, there is also VNC. It has been associated with some scripts to simplify its usage by the students and also in other situations, according to the following table.

Command Description
vncs
vncs1024
vncs800
It is used from a console to activate a VNC server, which requests the definition of a password.
vncsc
vncsc1024
vncsc800
It is used from a console to activate a VNC server, which requests the definition of a password, together with the VNC client necessary to interact with it. The access to the work session of the VNC server is allowed also to other people.
vncv node:1
It is used from a terminal window to see what happens to the VNC server of the entered node.
vncc node:1
It is used from a terminal window to interact with the VNC server of the entered node.
sharedx
sharedx1024
sharedx800
It is used from a console, instead of startx, to enable the use of the graphic mode thus allowing a teacher or tutor to check what happens.
takesharedx node...
It is used from a terminal window, by entering a series of nodes to be checked, to view and possibly check the work of the VNC servers started by the sharedx* script.
takesharedxnet aaa.bbb.ccc n...
It is used from a terminal window, by entering only the first three octects of an IPv4 address, together with a list of numbers, corresponding to the last part of the IPv4 address. In this way multiple windows are opened to view and check the VNC servers started by the sharedx* script.

These scripts are devised for two common situations: a teacher that needs to show what happens to everybody, or a teacher or a tutor that need to check in some way what the students are doing.

In the former instance, the teacher starts one of the vncsc* scripts, by specifying the password which is then communicated to the students, who eventually connect to the VNC server of the teacher, by using the vncv script.

In the latter instance, the students are requested to start X by using one of the sharedx* scripts, in order to allow the teacher to check by using one of the takesharedx* scripts. Notice that no password is entered with the sharedx* and takesharedx* scripts, because a predefined one is used. Notice also that with these scripts the number of the graphical station is never entered, because it must be :1.

753.7   Creation of a similar CD-ROM, starting from nanoLinux III

nanoLinux III exists to be easily adapted to your own requirements by adding or removing packages as needed. Currently you can do this from a copy of nanoLinux III on an hard disk partition, created as explained before.

Once you have made the necessary changes, you can use the makenanolinuxcdrom script, without arguments, to mount the main file system in the directory /CD-ROOT/nanoLinux/, you can then start the /CD-ROOT/isolinux/makecdrom script.

Before starting the procedure to create a new CD-ROM, you should check whether this is possible. For instance, if you have an ATAPI (IDE) masteriser, you should start the system with the option hdx=ide-scsi.

In addition to general problems, once you have found the coordinates and characteristics of the masteriser, you should change the /CD-ROOT/isolinux/makecdrom script. The following example refers to the unit 0,0,0, of ATAPI standard type, with an octuple maximum writing speed:

CD_RECORD_MAX_SPEED="8"
CDWRITER_DEVICE="0,0,0"
CD_DRIVER="generic-mmc-raw"

The procedure to create the CD-ROM image requires also the compression of a part of the file system; this requires the availability of a large quantity of virtual memory, up to 2 Gbytes.

The /CD-ROOT/isolinux/makecdrom script used for the masterisation, before doing that, executes other operations, such as the deletion of the temporary directory and the creation of a suitable etc/.

One of the actions performed by the script that produces the CD-ROM is the update of the /boot/grub/ directory contents. This means that if the GRUB package has been updated, it will be impossible to restart the system after that, unless the start-up is restored by using the procedure of the same GRUB.

If the changes made to the system affect also the files /etc/passwd, /etc/group and /etc/shadow, because some users have been added, or there have been changes to the UID and GID numbers of some users, it is necessary to reproduce the same changes within the /CD-ROOT/etc.nanoLinux/passwd, /CD-ROOT/etc.nanoLinux/group and /CD-ROOT/etc.nanoLinux/shadow, because these file are used to overwrite the corresponding ones of the /etc/ directory on the image to be used for the CD-ROM.

Actually, this approach allows to reproduce a CD-ROM with the same users as the original ones, all with the same password, without having to change the operating system installed on the hard disk.

753.8   Compressed file system

Since the version 2003.02.* of nanoLinux III, one part of the file system contained in the CD-ROM is compressed. To be precise, it is the content of the /usr/ directoty, actually contained in the file /usr.cloop.

This approach does not allow the maximum usage of the CD-ROM space, but guarantees that the system will work even if the CD-ROM is started with a kernel that cannot load correctly the module use for the correct mount of this file system, without having the ability to use what is contained in /usr/. In other words, by avoiding to use an initial RAM disk (Initrd), it should be easier for an average user to prepare a version of nanoLinux III modified according to his/her requirements.

753.9   Available Application Programs

The following table contains a summary of the main application programs that are included in the CD-ROM of nanoLinux III (the list is not complete), together with some important points about the use of their scripts that are also included in the CD-ROM.

Table 753.15. Summary of the main applications that are included in the CD-ROM of nanoLinux III.

Applications Notes
VI, Emacs Traditional programs for the creation and change of text files .
Midnight Commander (mc, mcedit) very sophisticated Shell that has also an integrated program to change texts.
Perl, Gcc, FreePascal Interpreters and compilers.
Tar, Gzip, Bzip2, Zip Programs to archive data.
Aumix, Grip, Xwave, Timidity, MP3blaster, PlayMPEG Programs to access the audio functions and for the reproduction of the audio and video formats.
Antiword, Catdoc Programs that allow to read files in Winword format.
AbiWord Writing program.
Gnumeric Electronic spreadsheet.
MagicPoint Presentation program. It is started from a terminal window (with the mpg executable), by entering the presentation file.
PostgreSQL DBMS. The data base management is activated with the command startpostgresql and is disactivated with droppostgresql (with the privileges of the root user).
PgAccess, Psql Frontend programs to access a data base managed by PostgreSQL.
Boa, Webalizer, ht://Dig, PHP HTTP Server, statistical analysis of accesses, data indexing, PHP interpreter.
OpenBSD FTP FTP Server.
Galeon, Mozilla, Links, Wget Programs for the hypertextual navigation based on the HTTP protocol.
Amaya, HTML2ps, HTMLDOC Programs for the visual entry of documents in HTML format and for their composition.
Exim MTA. The electronic mail addresses which contain IPv4 addresses, must be entered between square parentheses, e.g.: nano@[192.168.1.2].
Balsa, Mutt, Mailx (mail) MUA to send and to read electronic mail messages, using the Unix mailbox format .
Talk Server and client for immediate communications.
Bind DNS Server. Some configuration files have been modified for didactic purposes.
Host, Dig, Whois Programs to enquire the DNS.
Geg, Gnuplot Programs to design functions.
XFig, Gimp, ImageMagick Programs to draw and to perform photo editing.
Ghostscript, Ghostview, GV, Xpdf Programs to convert and view the PostScript and PDF format .
OpenSSH Server and client for the SECSH protocol. The daemon that performs the server role must be explicitely started by entering: /etc/init.d/ssh start.
Netstat, IPTraf, Ethereal, Psad Application programs for the control and practical study of networks .
VNC VNC Server and client .
teTeX, Lyx, Lout, LilyPond, Alml, DocBook, Texinfo Typographic composition systems. TeX can be used from CD-ROM only after the command starttexmf and then the memory can be recovered by using droptexmf (with the privileges of the root user).

Tabella 753.16. Summary of programs and scripts for nanoLinux III.

Command Description
nanolinux
Presents the internal guide.
ppp-on
ppp-off
Opens and closes a PPP connection through an external modem connected to a serial port. They must be run by the root user.
selectx
Creates an /etc/X11/XF86Config file, from the /etc/X11/XF86Config.vesa, by allowing the entry of the graphical adapter type.
vncs
vncs1024
vncs800
Starts a VNC server.
vncsc
vncsc1024
vncsc800
Starts a VNC server together with the client required to control it.
vncc nodo:n
vncv node:n
It is entered in a terminal window, to start a VNC clien to control or view a server.
sharedx
sharedx1024
sharedx800
Same as vncsc*, by using a predefined password.
takesharedx node
takesharedxnet aaa.bbb.ccc n...
It is entered in a terminal window, to start one or more VNC clients to control the servers started by sharedx*.
printers
Scrolls a list with the names of printers that can be used in the command lpr -Pprinter.
minilpr
Starts printing without using the printer queue (without lpd). The option -P is used in this case in the same way as in lpr.
txt2ps text_file
cat text_file | 
txt2ps > file_ps
Converts a text file into a PostScript file, with suitable margins.
htmlcheck html_file
html3check html_file
html4check html_file
xhtmlcheck xhtml_file
Checks the correct syntax of an HTML, or XHTML file.
startpostgresql
droppostgresql
Activates or Disactivates PostgreSQL. The disactivation causes the loss of all entered data. It must be entered by the root user.
allowfreeaccess
denyfreeaccess
Activates or disactivates the NFS and SSH servers.
starttexmf
droptexmf
Activates or disactivates the directory /var/lib/texmf/ for the use of TeX. It must be run by the root user.
swap /dev/hdx
Creates a swap file for the virtual memory and activates it.
installnanolinuxfromcd /dev/x
Copies the CD-ROM to the partition corresponding to the device file /dev/x. This partition should have been already prepared and correctly initialised; the script mounts it into a temporary directory.
makenanolinuxcdrom
Starts the process of a CD-ROM creation from an installed copy; a small change to the file /CD-ROOT/isolinux/makecdrom is required to allow it to work.
create-printcap-from-magicfilter
This script is used to rebuild a new CD-ROM from an installed copy. This allows to keep a correct file even if the Magicfilter package is updated.

753.10   Conclusion

nanoLinux III is not the 'perfect' CD-ROM GNU/Linux, but simply a tool that should be useful for teaching or for your own personal training, with the added adavantage of a relative simplicity in the production of changed versions for special purposes.

nanoLinux III cannot handle all the existing hardware, even when this could be done by a traditional standard GNU/Linux system, because it is organised in order to work without a detailed configuration. Consequently, even if nanoLinux III has been developed to work with the more common computers of the i386 architecture, components such as 'Win' modems or printers, which require a specific communication protocol, are not usable.

If you have need to use this kind of hostile hardware, you should attempt instead to use others auto-start distributions, even if their complexity does not allow to adapt them to your own specific requirements.

Appunti di informatica libera 2006.01.01 --- Copyright © 2000-2006 Daniele Giacomini -- <daniele (ad) swlibero·org>, <daniele·giacomini (ad) poste·it>


1) Translation last update on 2003.09.11 from Mario Pesce <mario (ad) datamission·co·uk>.

2) nanoLinux III   GNU-GPL; the single application programs are under their own specific conditions

3) If you have a printer connected to the parallel port, it should print a page with some symbols without meaning, because of the kernel attempts.

4) There are also other user names linked to the same UID number of nano, as it will be clarified later.

5) The password is entered without being viewable on the screen.

6) The password is entered without echo on the screen.

7) Preciseley they are the addresses 10.0.0.0/8, 172.16.0.0/12 and 192.168.0.0/16.

8) With regard to the initial configuration of ht://Dig you should notice that the paths that would take to the internal documentation (HOWTO) and the address http://localhost/c/, i.e the Dos/MS-Windows partition, have been excluded because otherwise the indexes would be too large, easily overcoming the 100 Mbytes. Of course you can modify the configuration and scan those addresses as well, if you really want to do that.

9) startpostgresql and droppostgresql are started with the privileges of the root user.


It should be possible to link to this page also with the name nanolinux_iii.htm

[next] [previous] [top] [last] [contents] [indice ridotto] [violazione licenza] [translators] [docinfo] [indice analitico]

Valid ISO-HTML!

CSS validator!

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com