aboutsummaryrefslogtreecommitdiff
path: root/el_GR.ISO8859-7/books/handbook
diff options
context:
space:
mode:
Diffstat (limited to 'el_GR.ISO8859-7/books/handbook')
-rw-r--r--el_GR.ISO8859-7/books/handbook/Makefile363
-rw-r--r--el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.sgml4811
-rw-r--r--el_GR.ISO8859-7/books/handbook/appendix.decl11
-rw-r--r--el_GR.ISO8859-7/books/handbook/audit/chapter.sgml728
-rw-r--r--el_GR.ISO8859-7/books/handbook/basics/chapter.sgml2904
-rw-r--r--el_GR.ISO8859-7/books/handbook/basics/example-dir1.dot12
-rw-r--r--el_GR.ISO8859-7/books/handbook/basics/example-dir2.dot13
-rw-r--r--el_GR.ISO8859-7/books/handbook/basics/example-dir3.dot14
-rw-r--r--el_GR.ISO8859-7/books/handbook/basics/example-dir4.dot15
-rw-r--r--el_GR.ISO8859-7/books/handbook/basics/example-dir5.dot14
-rw-r--r--el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml701
-rw-r--r--el_GR.ISO8859-7/books/handbook/book.sgml382
-rw-r--r--el_GR.ISO8859-7/books/handbook/boot/chapter.sgml1079
-rw-r--r--el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.sgml2638
-rw-r--r--el_GR.ISO8859-7/books/handbook/chapter.decl11
-rw-r--r--el_GR.ISO8859-7/books/handbook/chapters.ent78
-rw-r--r--el_GR.ISO8859-7/books/handbook/colophon.sgml39
-rw-r--r--el_GR.ISO8859-7/books/handbook/config/chapter.sgml3289
-rw-r--r--el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml3532
-rw-r--r--el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml1421
-rw-r--r--el_GR.ISO8859-7/books/handbook/disks/chapter.sgml4161
-rw-r--r--el_GR.ISO8859-7/books/handbook/dtrace/Makefile18
-rw-r--r--el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml418
-rw-r--r--el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml2254
-rw-r--r--el_GR.ISO8859-7/books/handbook/filesystems/Makefile18
-rw-r--r--el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml667
-rw-r--r--el_GR.ISO8859-7/books/handbook/firewalls/chapter.sgml3557
-rw-r--r--el_GR.ISO8859-7/books/handbook/geom/chapter.sgml873
-rw-r--r--el_GR.ISO8859-7/books/handbook/install/chapter.sgml5213
-rw-r--r--el_GR.ISO8859-7/books/handbook/install/example-dir1.dot12
-rw-r--r--el_GR.ISO8859-7/books/handbook/install/example-dir2.dot13
-rw-r--r--el_GR.ISO8859-7/books/handbook/install/example-dir3.dot13
-rw-r--r--el_GR.ISO8859-7/books/handbook/install/example-dir4.dot14
-rw-r--r--el_GR.ISO8859-7/books/handbook/install/example-dir5.dot14
-rw-r--r--el_GR.ISO8859-7/books/handbook/introduction/chapter.sgml1077
-rw-r--r--el_GR.ISO8859-7/books/handbook/jails/chapter.sgml1042
-rw-r--r--el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml1651
-rw-r--r--el_GR.ISO8859-7/books/handbook/l10n/chapter.sgml1038
-rw-r--r--el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml1464
-rw-r--r--el_GR.ISO8859-7/books/handbook/mac/chapter.sgml2107
-rw-r--r--el_GR.ISO8859-7/books/handbook/mail/chapter.sgml2410
-rw-r--r--el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml3424
-rw-r--r--el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml2047
-rw-r--r--el_GR.ISO8859-7/books/handbook/network-servers/chapter.sgml4894
-rw-r--r--el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml64
-rw-r--r--el_GR.ISO8859-7/books/handbook/ports/chapter.sgml1639
-rw-r--r--el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.sgml3416
-rw-r--r--el_GR.ISO8859-7/books/handbook/preface/preface.sgml855
-rw-r--r--el_GR.ISO8859-7/books/handbook/printing/chapter.sgml5267
-rw-r--r--el_GR.ISO8859-7/books/handbook/security/chapter.sgml4996
-rw-r--r--el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml3162
-rw-r--r--el_GR.ISO8859-7/books/handbook/txtfiles.ent85
-rw-r--r--el_GR.ISO8859-7/books/handbook/users/chapter.sgml1105
-rw-r--r--el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml1364
-rw-r--r--el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml1321
-rw-r--r--el_GR.ISO8859-7/books/handbook/x11/chapter.sgml1831
56 files changed, 85559 insertions, 0 deletions
diff --git a/el_GR.ISO8859-7/books/handbook/Makefile b/el_GR.ISO8859-7/books/handbook/Makefile
new file mode 100644
index 0000000000..063bdd7e76
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/Makefile
@@ -0,0 +1,363 @@
+#
+# $FreeBSD$
+#
+# Μορφοποίηση του Εγχειριδίου του FreeBSD
+#
+# %SOURCE% en_US.ISO8859-1/books/handbook/Makefile
+# %SRCID% 1.119
+#
+
+# ------------------------------------------------------------------------
+#
+# Μεταβλητές σχετικές με το Εγχειρίδιο
+#
+# WITH_PGPKEYS Η εκτυπώσιμη μορφή του εγχειριδίου περιέχει κανονικά
+# μόνο τα fingerprints από τα PGP κλειδιά. Αν θέλετε
+# να εκτυπώνονται ολόκληρα τα κλειδιά, τότε αυτή η
+# μεταβλητή πρέπει να είναι 'defined'. Αυτή η επιλογή
+# δεν επηρεάζει σε τίποτα τις μορφές HTML.
+#
+# Make targets μόνο για το Εγχειρίδιο
+#
+# pgpkeyring This target will read the contents of
+# pgpkeys/chapter.sgml and will extract all of
+# the pgpkeys to standard out. This output can then
+# be redirected into a file and distributed as a
+# public keyring of FreeBSD developers that can
+# easily be imported into PGP/GPG.
+#
+# ------------------------------------------------------------------------
+#
+# Για να προσθέσετε ένα νέο κεφάλαιο στο Εγχειρίδιο:
+#
+# - Ενημερώστε αυτό το Makefile, το chapters.ent και το book.sgml
+# - Προσθέστε μια σύντομη περιγραφή του κεφαλαίου στο preface/preface.sgml
+#
+# ------------------------------------------------------------------------
+
+.PATH: ${.CURDIR}/../../share/sgml/glossary
+
+MAINTAINER= doc@FreeBSD.org
+
+DOC?= book
+
+FORMATS?= html-split
+
+HAS_INDEX= true
+USE_PS2PDF= yes
+
+INSTALL_COMPRESSED?= gz
+INSTALL_ONLY_COMPRESSED?=
+
+IMAGES_EN = advanced-networking/isdn-bus.eps
+IMAGES_EN+= advanced-networking/isdn-twisted-pair.eps
+IMAGES_EN+= advanced-networking/natd.eps
+IMAGES_EN+= advanced-networking/net-routing.pic
+IMAGES_EN+= advanced-networking/static-routes.pic
+IMAGES_EN+= bsdinstall/bsdinstall-adduser1.png
+IMAGES_EN+= bsdinstall/bsdinstall-adduser2.png
+IMAGES_EN+= bsdinstall/bsdinstall-adduser3.png
+IMAGES_EN+= bsdinstall/bsdinstall-boot-loader-menu.png
+IMAGES_EN+= bsdinstall/bsdinstall-choose-mode.png
+IMAGES_EN+= bsdinstall/bsdinstall-config-components.png
+IMAGES_EN+= bsdinstall/bsdinstall-config-hostname.png
+IMAGES_EN+= bsdinstall/bsdinstall-config-keymap.png
+IMAGES_EN+= bsdinstall/bsdinstall-config-services.png
+IMAGES_EN+= bsdinstall/bsdinstall-config-crashdump.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv4.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv4-static.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv6.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-ipv6-static.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface-slaac.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-interface.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-network-ipv4-dns.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-wireless-accesspoints.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-wireless-scan.png
+IMAGES_EN+= bsdinstall/bsdinstall-configure-wireless-wpa2setup.png
+IMAGES_EN+= bsdinstall/bsdinstall-distfile-extracting.png
+IMAGES_EN+= bsdinstall/bsdinstall-distfile-fetching.png
+IMAGES_EN+= bsdinstall/bsdinstall-distfile-verifying.png
+IMAGES_EN+= bsdinstall/bsdinstall-final-confirmation.png
+IMAGES_EN+= bsdinstall/bsdinstall-finalconfiguration.png
+IMAGES_EN+= bsdinstall/bsdinstall-final-modification-shell.png
+IMAGES_EN+= bsdinstall/bsdinstall-keymap-select-default.png
+IMAGES_EN+= bsdinstall/bsdinstall-mainexit.png
+IMAGES_EN+= bsdinstall/bsdinstall-netinstall-files.png
+IMAGES_EN+= bsdinstall/bsdinstall-netinstall-mirrorselect.png
+IMAGES_EN+= bsdinstall/bsdinstall-part-entire-part.png
+IMAGES_EN+= bsdinstall/bsdinstall-part-guided-disk.png
+IMAGES_EN+= bsdinstall/bsdinstall-part-guided-manual.png
+IMAGES_EN+= bsdinstall/bsdinstall-part-manual-addpart.png
+IMAGES_EN+= bsdinstall/bsdinstall-part-manual-create.png
+IMAGES_EN+= bsdinstall/bsdinstall-part-manual-partscheme.png
+IMAGES_EN+= bsdinstall/bsdinstall-part-review.png
+IMAGES_EN+= bsdinstall/bsdinstall-post-root-passwd.png
+IMAGES_EN+= bsdinstall/bsdinstall-set-clock-local-utc.png
+IMAGES_EN+= bsdinstall/bsdinstall-timezone-confirm.png
+IMAGES_EN+= bsdinstall/bsdinstall-timezone-country.png
+IMAGES_EN+= bsdinstall/bsdinstall-timezone-region.png
+IMAGES_EN+= bsdinstall/bsdinstall-timezone-zone.png
+IMAGES_EN+= geom/striping.pic
+IMAGES_EN+= install/adduser1.scr
+IMAGES_EN+= install/adduser2.scr
+IMAGES_EN+= install/adduser3.scr
+IMAGES_EN+= install/boot-loader-menu.scr
+IMAGES_EN+= install/boot-mgr.scr
+IMAGES_EN+= install/config-country.scr
+IMAGES_EN+= install/config-keymap.scr
+IMAGES_EN+= install/console-saver1.scr
+IMAGES_EN+= install/console-saver2.scr
+IMAGES_EN+= install/console-saver3.scr
+IMAGES_EN+= install/console-saver4.scr
+IMAGES_EN+= install/disklabel-auto.scr
+IMAGES_EN+= install/disklabel-ed1.scr
+IMAGES_EN+= install/disklabel-ed2.scr
+IMAGES_EN+= install/disklabel-fs.scr
+IMAGES_EN+= install/disklabel-root1.scr
+IMAGES_EN+= install/disklabel-root2.scr
+IMAGES_EN+= install/disklabel-root3.scr
+IMAGES_EN+= install/disk-layout.eps
+IMAGES_EN+= install/dist-set.scr
+IMAGES_EN+= install/dist-set2.scr
+IMAGES_EN+= install/docmenu1.scr
+IMAGES_EN+= install/ed0-conf.scr
+IMAGES_EN+= install/ed0-conf2.scr
+IMAGES_EN+= install/edit-inetd-conf.scr
+IMAGES_EN+= install/fdisk-drive1.scr
+IMAGES_EN+= install/fdisk-drive2.scr
+IMAGES_EN+= install/fdisk-edit1.scr
+IMAGES_EN+= install/fdisk-edit2.scr
+IMAGES_EN+= install/ftp-anon1.scr
+IMAGES_EN+= install/ftp-anon2.scr
+IMAGES_EN+= install/hdwrconf.scr
+IMAGES_EN+= install/keymap.scr
+IMAGES_EN+= install/main1.scr
+IMAGES_EN+= install/mainexit.scr
+IMAGES_EN+= install/main-std.scr
+IMAGES_EN+= install/main-options.scr
+IMAGES_EN+= install/main-doc.scr
+IMAGES_EN+= install/main-keymap.scr
+IMAGES_EN+= install/media.scr
+IMAGES_EN+= install/mouse1.scr
+IMAGES_EN+= install/mouse2.scr
+IMAGES_EN+= install/mouse3.scr
+IMAGES_EN+= install/mouse4.scr
+IMAGES_EN+= install/mouse5.scr
+IMAGES_EN+= install/mouse6.scr
+IMAGES_EN+= install/mta-main.scr
+IMAGES_EN+= install/net-config-menu1.scr
+IMAGES_EN+= install/net-config-menu2.scr
+IMAGES_EN+= install/nfs-server-edit.scr
+IMAGES_EN+= install/ntp-config.scr
+IMAGES_EN+= install/options.scr
+IMAGES_EN+= install/pkg-cat.scr
+IMAGES_EN+= install/pkg-confirm.scr
+IMAGES_EN+= install/pkg-install.scr
+IMAGES_EN+= install/pkg-sel.scr
+IMAGES_EN+= install/probstart.scr
+IMAGES_EN+= install/routed.scr
+IMAGES_EN+= install/security.scr
+IMAGES_EN+= install/sysinstall-exit.scr
+IMAGES_EN+= install/timezone1.scr
+IMAGES_EN+= install/timezone2.scr
+IMAGES_EN+= install/timezone3.scr
+IMAGES_EN+= install/userconfig.scr
+IMAGES_EN+= install/userconfig2.scr
+IMAGES_EN+= mail/mutt1.scr
+IMAGES_EN+= mail/mutt2.scr
+IMAGES_EN+= mail/mutt3.scr
+IMAGES_EN+= mail/pine1.scr
+IMAGES_EN+= mail/pine2.scr
+IMAGES_EN+= mail/pine3.scr
+IMAGES_EN+= mail/pine4.scr
+IMAGES_EN+= mail/pine5.scr
+
+IMAGES_EN+= install/example-dir1.eps
+IMAGES_EN+= install/example-dir2.eps
+IMAGES_EN+= install/example-dir3.eps
+IMAGES_EN+= install/example-dir4.eps
+IMAGES_EN+= install/example-dir5.eps
+IMAGES_EN+= security/ipsec-network.pic
+IMAGES_EN+= security/ipsec-crypt-pkt.pic
+IMAGES_EN+= security/ipsec-encap-pkt.pic
+IMAGES_EN+= security/ipsec-out-pkt.pic
+IMAGES_EN+= vinum/vinum-concat.pic
+IMAGES_EN+= vinum/vinum-mirrored-vol.pic
+IMAGES_EN+= vinum/vinum-raid10-vol.pic
+IMAGES_EN+= vinum/vinum-raid5-org.pic
+IMAGES_EN+= vinum/vinum-simple-vol.pic
+IMAGES_EN+= vinum/vinum-striped-vol.pic
+IMAGES_EN+= vinum/vinum-striped.pic
+IMAGES_EN+= virtualization/parallels-freebsd1.png
+IMAGES_EN+= virtualization/parallels-freebsd2.png
+IMAGES_EN+= virtualization/parallels-freebsd3.png
+IMAGES_EN+= virtualization/parallels-freebsd4.png
+IMAGES_EN+= virtualization/parallels-freebsd5.png
+IMAGES_EN+= virtualization/parallels-freebsd6.png
+IMAGES_EN+= virtualization/parallels-freebsd7.png
+IMAGES_EN+= virtualization/parallels-freebsd8.png
+IMAGES_EN+= virtualization/parallels-freebsd9.png
+IMAGES_EN+= virtualization/parallels-freebsd10.png
+IMAGES_EN+= virtualization/parallels-freebsd11.png
+IMAGES_EN+= virtualization/parallels-freebsd12.png
+IMAGES_EN+= virtualization/parallels-freebsd13.png
+IMAGES_EN+= virtualization/virtualpc-freebsd1.png
+IMAGES_EN+= virtualization/virtualpc-freebsd2.png
+IMAGES_EN+= virtualization/virtualpc-freebsd3.png
+IMAGES_EN+= virtualization/virtualpc-freebsd4.png
+IMAGES_EN+= virtualization/virtualpc-freebsd5.png
+IMAGES_EN+= virtualization/virtualpc-freebsd6.png
+IMAGES_EN+= virtualization/virtualpc-freebsd7.png
+IMAGES_EN+= virtualization/virtualpc-freebsd8.png
+IMAGES_EN+= virtualization/virtualpc-freebsd9.png
+IMAGES_EN+= virtualization/virtualpc-freebsd10.png
+IMAGES_EN+= virtualization/virtualpc-freebsd11.png
+IMAGES_EN+= virtualization/virtualpc-freebsd12.png
+IMAGES_EN+= virtualization/virtualpc-freebsd13.png
+IMAGES_EN+= virtualization/vmware-freebsd01.png
+IMAGES_EN+= virtualization/vmware-freebsd02.png
+IMAGES_EN+= virtualization/vmware-freebsd03.png
+IMAGES_EN+= virtualization/vmware-freebsd04.png
+IMAGES_EN+= virtualization/vmware-freebsd05.png
+IMAGES_EN+= virtualization/vmware-freebsd06.png
+IMAGES_EN+= virtualization/vmware-freebsd07.png
+IMAGES_EN+= virtualization/vmware-freebsd08.png
+IMAGES_EN+= virtualization/vmware-freebsd09.png
+IMAGES_EN+= virtualization/vmware-freebsd10.png
+IMAGES_EN+= virtualization/vmware-freebsd11.png
+IMAGES_EN+= virtualization/vmware-freebsd12.png
+
+# Images from the cross-document image library
+IMAGES_LIB= callouts/1.png
+IMAGES_LIB+= callouts/2.png
+IMAGES_LIB+= callouts/3.png
+IMAGES_LIB+= callouts/4.png
+IMAGES_LIB+= callouts/5.png
+IMAGES_LIB+= callouts/6.png
+IMAGES_LIB+= callouts/7.png
+IMAGES_LIB+= callouts/8.png
+IMAGES_LIB+= callouts/9.png
+IMAGES_LIB+= callouts/10.png
+IMAGES_LIB+= callouts/11.png
+IMAGES_LIB+= callouts/12.png
+IMAGES_LIB+= callouts/13.png
+IMAGES_LIB+= callouts/14.png
+IMAGES_LIB+= callouts/15.png
+
+#
+# Η λίστα SRCS περιέχει όλα τα SGML αρχεία που αποτελούν μέρη του κειμένου.
+# Αλλαγές σε οποιοδήποτε από αυτά τα αρχεία προκαλούν rebuild.
+#
+
+# SGML content
+SRCS+= audit/chapter.sgml
+SRCS+= book.sgml
+SRCS+= bsdinstall/chapter.sgml
+SRCS+= colophon.sgml
+SRCS+= dtrace/chapter.sgml
+SRCS+= freebsd-glossary.sgml
+SRCS+= advanced-networking/chapter.sgml
+SRCS+= basics/chapter.sgml
+SRCS+= bibliography/chapter.sgml
+SRCS+= boot/chapter.sgml
+SRCS+= config/chapter.sgml
+SRCS+= cutting-edge/chapter.sgml
+SRCS+= desktop/chapter.sgml
+SRCS+= disks/chapter.sgml
+SRCS+= eresources/chapter.sgml
+SRCS+= firewalls/chapter.sgml
+SRCS+= filesystems/chapter.sgml
+SRCS+= geom/chapter.sgml
+SRCS+= install/chapter.sgml
+SRCS+= introduction/chapter.sgml
+SRCS+= jails/chapter.sgml
+SRCS+= kernelconfig/chapter.sgml
+SRCS+= l10n/chapter.sgml
+SRCS+= linuxemu/chapter.sgml
+SRCS+= mac/chapter.sgml
+SRCS+= mail/chapter.sgml
+SRCS+= mirrors/chapter.sgml
+SRCS+= multimedia/chapter.sgml
+SRCS+= network-servers/chapter.sgml
+SRCS+= pgpkeys/chapter.sgml
+SRCS+= ports/chapter.sgml
+SRCS+= ppp-and-slip/chapter.sgml
+SRCS+= preface/preface.sgml
+SRCS+= printing/chapter.sgml
+SRCS+= security/chapter.sgml
+SRCS+= serialcomms/chapter.sgml
+SRCS+= users/chapter.sgml
+SRCS+= vinum/chapter.sgml
+SRCS+= virtualization/chapter.sgml
+SRCS+= x11/chapter.sgml
+
+# Entities
+SRCS+= chapters.ent
+
+SYMLINKS= ${DESTDIR} index.html handbook.html
+
+# Turn on all the chapters.
+CHAPTERS?= ${SRCS:M*chapter.sgml}
+
+SGMLFLAGS+= ${CHAPTERS:S/\/chapter.sgml//:S/^/-i chap./}
+SGMLFLAGS+= -i chap.freebsd-glossary
+
+pgpkeyring: pgpkeys/chapter.sgml
+ @${JADE} -V nochunks ${OTHERFLAGS} ${JADEOPTS} -d ${DSLPGP} -t sgml ${MASTERDOC}
+
+#
+# Handbook-specific variables
+#
+.if defined(WITH_PGPKEYS)
+JADEFLAGS+= -V withpgpkeys
+.endif
+
+URL_RELPREFIX?= ../../../..
+DOC_PREFIX?= ${.CURDIR}/../../..
+
+#
+# rules generating lists of mirror site from XML database.
+#
+XMLDOCS= mirrors-ftp:::mirrors.sgml.ftp.inc.tmp \
+ mirrors-cvsup:::mirrors.sgml.cvsup.inc.tmp \
+ eresources:::eresources.sgml.www.inc.tmp
+DEPENDSET.DEFAULT= transtable mirror
+XSLT.DEFAULT= ${XSL_MIRRORS}
+XML.DEFAULT= ${XML_MIRRORS}
+NO_TIDY.DEFAULT= yes
+
+PARAMS.mirrors-ftp+= --param 'type' "'ftp'" \
+ --param 'proto' "'ftp'" \
+ --param 'target' "'handbook/mirrors/chapter.sgml'"
+PARAMS.mirrors-cvsup+= --param 'type' "'cvsup'" \
+ --param 'proto' "'cvsup'" \
+ --param 'target' "'handbook/mirrors/chapter.sgml'"
+PARAMS.eresources+= --param 'type' "'www'" \
+ --param 'proto' "'http'" \
+ --param 'target' "'handbook/eresources/chapter.sgml'"
+
+SRCS+= mirrors.sgml.ftp.inc \
+ mirrors.sgml.cvsup.inc \
+ eresources.sgml.www.inc
+
+CLEANFILES+= mirrors.sgml.ftp.inc mirrors.sgml.ftp.inc.tmp \
+ mirrors.sgml.cvsup.inc mirrors.sgml.cvsup.inc.tmp \
+ eresources.sgml.www.inc eresources.sgml.www.inc.tmp
+
+.include "${DOC_PREFIX}/share/mk/doc.project.mk"
+
+.for p in ftp cvsup
+mirrors.sgml.${p}.inc: mirrors.sgml.${p}.inc.tmp
+ ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2></\1>,;s,</anchor>,,'\
+ < $@.tmp > $@ || (${RM} -f $@ && false)
+.endfor
+
+eresources.sgml.www.inc: eresources.sgml.www.inc.tmp
+ ${SED} -e 's,<\([^ >]*\)\([^>]*\)/>,<\1\2></\1>,;s,</anchor>,,'\
+ < $@.tmp > $@ || (${RM} -f $@ && false)
+
+# Local variables:
+# mode: makefile-bsdmake
+# coding: iso-8859-7
+# End:
diff --git a/el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.sgml b/el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.sgml
new file mode 100644
index 0000000000..810d986573
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/advanced-networking/chapter.sgml
@@ -0,0 +1,4811 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Προχωρημένα Θέματα Δικτύωσης
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml
+ %SRCID% 1.1
+
+-->
+
+<chapter id="advanced-networking">
+ <title>Προχωρημένα Θέματα Δικτύωσης</title>
+
+ <sect1 id="advanced-networking-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το κεφάλαιο αυτό καλύπτει προχωρημένα θέματα δικτύωσης.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τα βασικά των πυλών (gateways) και των δρομολογήσεων
+ (routes).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε συσκευές IEEE 802.11 και &bluetooth;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να κάνετε το &os; να δρα ως γέφυρα (bridge).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε εκκίνηση από το δίκτυο σε ένα μηχάνημα
+ χωρίς σκληρό δίσκο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε μετάφραση δικτυακών διευθύνσεων (NAT).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να συνδέσετε δύο υπολογιστές μέσω PLIP.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το IPv6 σε ένα μηχάνημα &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το ATM.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε και να χρησιμοποιήσετε τις δυνατότητες του
+ CARP (Common Access Redundancy Protocol) στο &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε τις βασικές έννοιες των αρχείων script
+ <filename>/etc/rc</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τη βασική ορολογία των δικτύων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να γνωρίζετε πως να ρυθμίσετε και να εγκαταστήσετε ένα νέο
+ πυρήνα στο &os; (<xref linkend="kernelconfig">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου
+ κατασκευαστή (<xref linkend="ports">).</para>
+ </listitem>
+
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="network-routing">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Coranth</firstname>
+ <surname>Gryphon</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Gateways and Routes</title>
+
+ <indexterm><primary>routing</primary></indexterm>
+ <indexterm><primary>gateway</primary></indexterm>
+ <indexterm><primary>subnet</primary></indexterm>
+ <para>For one machine to be able to find another over a network,
+ there must be a mechanism in place to describe how to get from
+ one to the other. This is called
+ <firstterm>routing</firstterm>. A <quote>route</quote> is a
+ defined pair of addresses: a <quote>destination</quote> and a
+ <quote>gateway</quote>. The pair indicates that if you are
+ trying to get to this <emphasis>destination</emphasis>,
+ communicate through this <emphasis>gateway</emphasis>. There
+ are three types of destinations: individual hosts, subnets, and
+ <quote>default</quote>. The <quote>default route</quote> is
+ used if none of the other routes apply. We will talk a little
+ bit more about default routes later on. There are also three
+ types of gateways: individual hosts, interfaces (also called
+ <quote>links</quote>), and Ethernet hardware addresses (MAC
+ addresses).
+ </para>
+
+ <sect2>
+ <title>An Example</title>
+
+ <para>To illustrate different aspects of routing, we will use the
+ following example from <command>netstat</command>:</para>
+
+ <screen>&prompt.user; <userinput>netstat -r</userinput>
+Routing tables
+
+Destination Gateway Flags Refs Use Netif Expire
+
+default outside-gw UGSc 37 418 ppp0
+localhost localhost UH 0 181 lo0
+test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
+10.20.30.255 link#1 UHLW 1 2421
+example.com link#1 UC 0 0
+host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
+host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
+host2.example.com link#1 UC 0 0
+224 link#1 UC 0 0</screen>
+
+ <indexterm><primary>default route</primary></indexterm>
+ <para>The first two lines specify the default route (which we
+ will cover in the <link linkend="network-routing-default">next
+ section</link>) and the <hostid>localhost</hostid> route.</para>
+
+ <indexterm><primary>loopback device</primary></indexterm>
+ <para>The interface (<literal>Netif</literal> column) that this
+ routing table specifies to use for
+ <literal>localhost</literal> is <devicename>lo0</devicename>,
+ also known as the loopback device. This says to keep all
+ traffic for this destination internal, rather than sending it
+ out over the LAN, since it will only end up back where it
+ started.</para>
+
+ <indexterm>
+ <primary>Ethernet</primary>
+ <secondary>MAC address</secondary>
+ </indexterm>
+ <para>The next thing that stands out are the addresses beginning
+ with <hostid role="mac">0:e0:</hostid>. These are Ethernet
+ hardware addresses, which are also known as MAC addresses.
+ FreeBSD will automatically identify any hosts
+ (<hostid>test0</hostid> in the example) on the local Ethernet
+ and add a route for that host, directly to it over the
+ Ethernet interface, <devicename>ed0</devicename>. There is
+ also a timeout (<literal>Expire</literal> column) associated
+ with this type of route, which is used if we fail to hear from
+ the host in a specific amount of time. When this happens, the
+ route to this host will be automatically deleted. These hosts
+ are identified using a mechanism known as RIP (Routing
+ Information Protocol), which figures out routes to local hosts
+ based upon a shortest path determination.</para>
+
+ <indexterm><primary>subnet</primary></indexterm>
+ <para>FreeBSD will also add subnet routes for the local subnet (<hostid
+ role="ipaddr">10.20.30.255</hostid> is the broadcast address for the
+ subnet <hostid role="ipaddr">10.20.30</hostid>, and <hostid
+ role="domainname">example.com</hostid> is the domain name associated
+ with that subnet). The designation <literal>link#1</literal> refers
+ to the first Ethernet card in the machine. You will notice no
+ additional interface is specified for those.</para>
+
+ <para>Both of these groups (local network hosts and local subnets) have
+ their routes automatically configured by a daemon called
+ <application>routed</application>. If this is not run, then only
+ routes which are statically defined (i.e. entered explicitly) will
+ exist.</para>
+
+ <para>The <literal>host1</literal> line refers to our host, which it
+ knows by Ethernet address. Since we are the sending host, FreeBSD
+ knows to use the loopback interface (<devicename>lo0</devicename>)
+ rather than sending it out over the Ethernet interface.</para>
+
+ <para>The two <literal>host2</literal> lines are an example of
+ what happens when we use an &man.ifconfig.8; alias (see the
+ section on Ethernet for reasons why we would do this). The
+ <literal>=&gt;</literal> symbol after the
+ <devicename>lo0</devicename> interface says that not only are
+ we using the loopback (since this address also refers to the
+ local host), but specifically it is an alias. Such routes
+ only show up on the host that supports the alias; all other
+ hosts on the local network will simply have a
+ <literal>link#1</literal> line for such routes.</para>
+
+ <para>The final line (destination subnet <hostid role="ipaddr">224</hostid>) deals
+ with multicasting, which will be covered in another section.</para>
+
+ <para>Finally, various attributes of each route can be seen in
+ the <literal>Flags</literal> column. Below is a short table
+ of some of these flags and their meanings:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="4*">
+
+ <tbody>
+ <row>
+ <entry>U</entry>
+ <entry>Up: The route is active.</entry>
+ </row>
+
+ <row>
+ <entry>H</entry>
+ <entry>Host: The route destination is a single host.</entry>
+ </row>
+
+ <row>
+ <entry>G</entry>
+ <entry>Gateway: Send anything for this destination on to this
+ remote system, which will figure out from there where to send
+ it.</entry>
+ </row>
+
+ <row>
+ <entry>S</entry>
+ <entry>Static: This route was configured manually, not
+ automatically generated by the system.</entry>
+ </row>
+
+ <row>
+ <entry>C</entry>
+ <entry>Clone: Generates a new route based upon this route for
+ machines we connect to. This type of route is normally used
+ for local networks.</entry>
+ </row>
+
+ <row>
+ <entry>W</entry>
+ <entry>WasCloned: Indicated a route that was auto-configured
+ based upon a local area network (Clone) route.</entry>
+ </row>
+
+ <row>
+ <entry>L</entry>
+ <entry>Link: Route involves references to Ethernet
+ hardware.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2 id="network-routing-default">
+ <title>Default Routes</title>
+
+ <indexterm><primary>default route</primary></indexterm>
+ <para>When the local system needs to make a connection to a remote host,
+ it checks the routing table to determine if a known path exists. If
+ the remote host falls into a subnet that we know how to reach (Cloned
+ routes), then the system checks to see if it can connect along that
+ interface.</para>
+
+ <para>If all known paths fail, the system has one last option: the
+ <quote>default</quote> route. This route is a special type of gateway
+ route (usually the only one present in the system), and is always
+ marked with a <literal>c</literal> in the flags field. For hosts on a
+ local area network, this gateway is set to whatever machine has a
+ direct connection to the outside world (whether via PPP link,
+ DSL, cable modem, T1, or another network interface).</para>
+
+ <para>If you are configuring the default route for a machine which
+ itself is functioning as the gateway to the outside world, then the
+ default route will be the gateway machine at your Internet Service
+ Provider's (ISP) site.</para>
+
+ <para>Let us look at an example of default routes. This is a common
+ configuration:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="advanced-networking/net-routing">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">
+[Local2] &lt;--ether--&gt; [Local1] &lt;--PPP--&gt; [ISP-Serv] &lt;--ether--&gt; [T1-GW]
+ </literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>The hosts <hostid>Local1</hostid> and
+ <hostid>Local2</hostid> are at your site.
+ <hostid>Local1</hostid> is connected to an ISP via a dial up
+ PPP connection. This PPP server computer is connected through
+ a local area network to another gateway computer through an
+ external interface to the ISPs Internet feed.</para>
+
+ <para>The default routes for each of your machines will be:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Host</entry>
+ <entry>Default Gateway</entry>
+ <entry>Interface</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Local2</entry>
+ <entry>Local1</entry>
+ <entry>Ethernet</entry>
+ </row>
+
+ <row>
+ <entry>Local1</entry>
+ <entry>T1-GW</entry>
+ <entry>PPP</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>A common question is <quote>Why (or how) would we set
+ the <hostid>T1-GW</hostid> to be the default gateway for
+ <hostid>Local1</hostid>, rather than the ISP server it is
+ connected to?</quote>.</para>
+
+ <para>Remember, since the PPP interface is using an address on the ISP's
+ local network for your side of the connection, routes for any other
+ machines on the ISP's local network will be automatically generated.
+ Hence, you will already know how to reach the <hostid>T1-GW</hostid>
+ machine, so there is no need for the intermediate step
+ of sending traffic to the ISP server.</para>
+
+ <para>It is common to use the address <hostid
+ role="ipaddr">X.X.X.1</hostid> as the gateway address for your local
+ network. So (using the same example), if your local class-C address
+ space was <hostid role="ipaddr">10.20.30</hostid> and your ISP was
+ using <hostid role="ipaddr">10.9.9</hostid> then the default routes
+ would be:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Host</entry>
+ <entry>Default Route</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Local2 (10.20.30.2)</entry>
+ <entry>Local1 (10.20.30.1)</entry>
+ </row>
+ <row>
+ <entry>Local1 (10.20.30.1, 10.9.9.30)</entry>
+ <entry>T1-GW (10.9.9.1)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>You can easily define the default route via the
+ <filename>/etc/rc.conf</filename> file. In our example, on the
+ <hostid>Local2</hostid> machine, we added the following line
+ in <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>defaultrouter="10.20.30.1"</programlisting>
+
+ <para>It is also possible to do it directly from the command
+ line with the &man.route.8; command:</para>
+
+ <screen>&prompt.root; <userinput>route add default 10.20.30.1</userinput></screen>
+
+ <para>For more information on manual manipulation of network
+ routing tables, consult &man.route.8; manual page.</para>
+ </sect2>
+
+ <sect2>
+ <title>Dual Homed Hosts</title>
+ <indexterm><primary>dual homed hosts</primary></indexterm>
+ <para>There is one other type of configuration that we should cover, and
+ that is a host that sits on two different networks. Technically, any
+ machine functioning as a gateway (in the example above, using a PPP
+ connection) counts as a dual-homed host. But the term is really only
+ used to refer to a machine that sits on two local-area
+ networks.</para>
+
+ <para>In one case, the machine has two Ethernet cards, each
+ having an address on the separate subnets. Alternately, the
+ machine may only have one Ethernet card, and be using
+ &man.ifconfig.8; aliasing. The former is used if two
+ physically separate Ethernet networks are in use, the latter
+ if there is one physical network segment, but two logically
+ separate subnets.</para>
+
+ <para>Either way, routing tables are set up so that each subnet knows
+ that this machine is the defined gateway (inbound route) to the other
+ subnet. This configuration, with the machine acting as a router
+ between the two subnets, is often used when we need to implement
+ packet filtering or firewall security in either or both
+ directions.</para>
+
+ <para>If you want this machine to actually forward packets
+ between the two interfaces, you need to tell FreeBSD to enable
+ this ability. See the next section for more details on how
+ to do this.</para>
+ </sect2>
+
+ <sect2 id="network-dedicated-router">
+ <title>Building a Router</title>
+
+ <indexterm><primary>router</primary></indexterm>
+
+ <para>A network router is simply a system that forwards packets
+ from one interface to another. Internet standards and good
+ engineering practice prevent the FreeBSD Project from enabling
+ this by default in FreeBSD. You can enable this feature by
+ changing the following variable to <literal>YES</literal> in
+ &man.rc.conf.5;:</para>
+
+ <programlisting>gateway_enable=YES # Set to YES if this host will be a gateway</programlisting>
+
+ <para>This option will set the &man.sysctl.8; variable
+ <varname>net.inet.ip.forwarding</varname> to
+ <literal>1</literal>. If you should need to stop routing
+ temporarily, you can reset this to <literal>0</literal> temporarily.</para>
+
+ <para>Your new router will need routes to know where to send the
+ traffic. If your network is simple enough you can use static
+ routes. FreeBSD also comes with the standard BSD routing
+ daemon &man.routed.8;, which speaks RIP (both version 1 and
+ version 2) and IRDP. Support for BGP v4, OSPF v2, and other
+ sophisticated routing protocols is available with the
+ <filename role="package">net/zebra</filename> package.
+ Commercial products such as <application>&gated;</application> are also available for more
+ complex network routing solutions.</para>
+
+<indexterm><primary>BGP</primary></indexterm>
+<indexterm><primary>RIP</primary></indexterm>
+<indexterm><primary>OSPF</primary></indexterm>
+ </sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Al</firstname>
+ <surname>Hoang</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+ <!-- Feb 2004 -->
+ <title>Setting Up Static Routes</title>
+
+ <sect3>
+ <title>Manual Configuration</title>
+
+ <para>Let us assume we have a network as follows:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="advanced-networking/static-routes">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">
+ INTERNET
+ | (10.0.0.1/24) Default Router to Internet
+ |
+ |Interface xl0
+ |10.0.0.10/24
+ +------+
+ | | RouterA
+ | | (FreeBSD gateway)
+ +------+
+ | Interface xl1
+ | 192.168.1.1/24
+ |
+ +--------------------------------+
+ Internal Net 1 | 192.168.1.2/24
+ |
+ +------+
+ | | RouterB
+ | |
+ +------+
+ | 192.168.2.1/24
+ |
+ Internal Net 2
+ </literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>In this scenario, <hostid>RouterA</hostid> is our &os;
+ machine that is acting as a router to the rest of the
+ Internet. It has a default route set to <hostid
+ role="ipaddr">10.0.0.1</hostid> which allows it to connect
+ with the outside world. We will assume that
+ <hostid>RouterB</hostid> is already configured properly and
+ knows how to get wherever it needs to go. (This is simple
+ in this picture. Just add a default route on
+ <hostid>RouterB</hostid> using <hostid
+ role="ipaddr">192.168.1.1</hostid> as the gateway.)</para>
+
+ <para>If we look at the routing table for
+ <hostid>RouterA</hostid> we would see something like the
+ following:</para>
+
+ <screen>&prompt.user; <userinput>netstat -nr</userinput>
+Routing tables
+
+Internet:
+Destination Gateway Flags Refs Use Netif Expire
+default 10.0.0.1 UGS 0 49378 xl0
+127.0.0.1 127.0.0.1 UH 0 6 lo0
+10.0.0/24 link#1 UC 0 0 xl0
+192.168.1/24 link#2 UC 0 0 xl1</screen>
+
+ <para>With the current routing table <hostid>RouterA</hostid>
+ will not be able to reach our Internal Net 2. It does not
+ have a route for <hostid
+ role="ipaddr">192.168.2.0/24</hostid>. One way to alleviate
+ this is to manually add the route. The following command
+ would add the Internal Net 2 network to
+ <hostid>RouterA</hostid>'s routing table using <hostid
+ role="ipaddr">192.168.1.2</hostid> as the next hop:</para>
+
+ <screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen>
+
+ <para>Now <hostid>RouterA</hostid> can reach any hosts on the
+ <hostid role="ipaddr">192.168.2.0/24</hostid>
+ network.</para>
+ </sect3>
+
+ <sect3>
+ <title>Persistent Configuration</title>
+
+ <para>The above example is perfect for configuring a static
+ route on a running system. However, one problem is that the
+ routing information will not persist if you reboot your &os;
+ machine. The way to handle the addition of a static route
+ is to put it in your <filename>/etc/rc.conf</filename>
+ file:</para>
+
+ <programlisting># Add Internal Net 2 as a static route
+static_routes="internalnet2"
+route_internalnet2="-net 192.168.2.0/24 192.168.1.2"</programlisting>
+
+ <para>The <literal>static_routes</literal> configuration
+ variable is a list of strings separated by a space. Each
+ string references to a route name. In our above example we
+ only have one string in <literal>static_routes</literal>.
+ This string is <replaceable>internalnet2</replaceable>. We
+ then add a configuration variable called
+ <literal>route_<replaceable>internalnet2</replaceable></literal>
+ where we put all of the configuration parameters we would
+ give to the &man.route.8; command. For our example above we
+ would have used the command:</para>
+
+ <screen>&prompt.root; <userinput>route add -net 192.168.2.0/24 192.168.1.2</userinput></screen>
+
+ <para>so we need <literal>"-net 192.168.2.0/24 192.168.1.2"</literal>.</para>
+
+ <para>As said above, we can have more than one string in
+ <literal>static_routes</literal>. This allows us to
+ create multiple static routes. The following lines shows
+ an example of adding static routes for the <hostid
+ role="ipaddr">192.168.0.0/24</hostid> and <hostid
+ role="ipaddr">192.168.1.0/24</hostid> networks on an imaginary
+ router:</para>
+
+ <programlisting>static_routes="net1 net2"
+route_net1="-net 192.168.0.0/24 192.168.0.1"
+route_net2="-net 192.168.1.0/24 192.168.1.1"</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Routing Propagation</title>
+ <indexterm><primary>routing propagation</primary></indexterm>
+ <para>We have already talked about how we define our routes to the
+ outside world, but not about how the outside world finds us.</para>
+
+ <para>We already know that routing tables can be set up so that all
+ traffic for a particular address space (in our examples, a class-C
+ subnet) can be sent to a particular host on that network, which will
+ forward the packets inbound.</para>
+
+ <para>When you get an address space assigned to your site, your service
+ provider will set up their routing tables so that all traffic for your
+ subnet will be sent down your PPP link to your site. But how do sites
+ across the country know to send to your ISP?</para>
+
+ <para>There is a system (much like the distributed DNS information) that
+ keeps track of all assigned address-spaces, and defines their point of
+ connection to the Internet Backbone. The <quote>Backbone</quote> are
+ the main trunk lines that carry Internet traffic across the country,
+ and around the world. Each backbone machine has a copy of a master
+ set of tables, which direct traffic for a particular network to a
+ specific backbone carrier, and from there down the chain of service
+ providers until it reaches your network.</para>
+
+ <para>It is the task of your service provider to advertise to the
+ backbone sites that they are the point of connection (and thus the
+ path inward) for your site. This is known as route
+ propagation.</para>
+ </sect2>
+
+ <sect2>
+ <title>Troubleshooting</title>
+ <indexterm>
+ <primary><command>traceroute</command></primary>
+ </indexterm>
+ <para>Sometimes, there is a problem with routing propagation, and some
+ sites are unable to connect to you. Perhaps the most useful command
+ for trying to figure out where routing is breaking down is the
+ &man.traceroute.8; command. It is equally useful if you cannot seem
+ to make a connection to a remote machine (i.e. &man.ping.8;
+ fails).</para>
+
+ <para>The &man.traceroute.8; command is run with the name of the remote
+ host you are trying to connect to. It will show the gateway hosts
+ along the path of the attempt, eventually either reaching the target
+ host, or terminating because of a lack of connection.</para>
+
+ <para>For more information, see the manual page for
+ &man.traceroute.8;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Multicast Routing</title>
+ <indexterm>
+ <primary>multicast routing</primary>
+ </indexterm>
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>MROUTING</secondary>
+ </indexterm>
+ <para>FreeBSD supports both multicast applications and multicast
+ routing natively. Multicast applications do not require any
+ special configuration of FreeBSD; applications will generally
+ run out of the box. Multicast routing
+ requires that support be compiled into the kernel:</para>
+
+ <programlisting>options MROUTING</programlisting>
+
+ <para>In addition, the multicast routing daemon, &man.mrouted.8;
+ must be configured to set up tunnels and <acronym>DVMRP</acronym> via
+ <filename>/etc/mrouted.conf</filename>. More details on
+ multicast configuration may be found in the manual page for
+ &man.mrouted.8;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-wireless">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <othername>Loader</othername>
+ </author>
+
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ </author>
+
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Wireless Networking</title>
+
+ <indexterm><primary>wireless networking</primary></indexterm>
+ <indexterm>
+ <primary>802.11</primary>
+ <see>wireless networking</see>
+ </indexterm>
+
+ <sect2>
+ <title>Wireless Networking Basics</title>
+
+ <para>Most wireless networks are based on the IEEE 802.11
+ standards. A basic wireless network consists of multiple
+ stations communicating with radios that broadcast in either
+ the 2.4GHz or 5GHz band (though this varies according to the
+ locale and is also changing to enable communication in the
+ 2.3GHz and 4.9GHz ranges).</para>
+
+ <para>802.11 networks are organized in two ways: in
+ <emphasis>infrastructure mode</emphasis> one station acts as a
+ master with all the other stations associating to it; the
+ network is known as a BSS and the master station is termed an
+ access point (AP). In a BSS all communication passes through
+ the AP; even when one station wants to communicate with
+ another wireless station messages must go through the AP. In
+ the second form of network there is no master and stations
+ communicate directly. This form of network is termed an IBSS
+ and is commonly known as an <emphasis>ad-hoc
+ network</emphasis>.</para>
+
+ <para>802.11 networks were first deployed in the 2.4GHz band
+ using protocols defined by the IEEE 802.11 and 802.11b
+ standard. These specifications include the operating
+ frequencies, MAC layer characteristics including framing and
+ transmission rates (communication can be done at various
+ rates). Later the 802.11a standard defined operation in the
+ 5GHz band, including different signalling mechanisms and
+ higher transmission rates. Still later the 802.11g standard
+ was defined to enable use of 802.11a signalling and
+ transmission mechanisms in the 2.4GHz band in such a way as to
+ be backwards compatible with 802.11b networks.</para>
+
+ <para>Separate from the underlying transmission techniques
+ 802.11 networks have a variety of security mechanisms. The
+ original 802.11 specifications defined a simple security
+ protocol called WEP. This protocol uses a fixed pre-shared key
+ and the RC4 cryptographic cipher to encode data transmitted on
+ a network. Stations must all agree on the fixed key in order
+ to communicate. This scheme was shown to be easily broken and
+ is now rarely used except to discourage transient users from
+ joining networks. Current security practice is given by the
+ IEEE 802.11i specification that defines new cryptographic
+ ciphers and an additional protocol to authenticate stations to
+ an access point and exchange keys for doing data
+ communication. Further, cryptographic keys are periodically
+ refreshed and there are mechanisms for detecting intrusion
+ attempts (and for countering intrusion attempts). Another
+ security protocol specification commonly used in wireless
+ networks is termed WPA. This was a precursor to 802.11i
+ defined by an industry group as an interim measure while
+ waiting for 802.11i to be ratified. WPA specifies a subset of
+ the requirements found in 802.11i and is designed for
+ implementation on legacy hardware. Specifically WPA requires
+ only the TKIP cipher that is derived from the original WEP
+ cipher. 802.11i permits use of TKIP but also requires support
+ for a stronger cipher, AES-CCM, for encrypting data. (The AES
+ cipher was not required in WPA because it was deemed too
+ computationally costly to be implemented on legacy
+ hardware.)</para>
+
+ <para>Other than the above protocol standards the other
+ important standard to be aware of is 802.11e. This defines
+ protocols for deploying multi-media applications such as
+ streaming video and voice over IP (VoIP) in an 802.11 network.
+ Like 802.11i, 802.11e also has a precursor specification
+ termed WME (later renamed WMM) that has been defined by an
+ industry group as a subset of 802.11e that can be deployed now
+ to enable multi-media applications while waiting for the final
+ ratification of 802.11e. The most important thing to know
+ about 802.11e and WME/WMM is that it enables prioritized
+ traffic use of a wireless network through Quality of Service
+ (QoS) protocols and enhanced media access protocols. Proper
+ implementation of these protocols enable high speed bursting
+ of data and prioritized traffic flow.</para>
+
+ <para>Since the 6.0 version, &os; supports networks that operate
+ using 802.11a, 802.11b, and 802.11g. The WPA and 802.11i
+ security protocols are likewise supported (in conjunction with
+ any of 11a, 11b, and 11g) and QoS and traffic prioritization
+ required by the WME/WMM protocols are supported for a limited
+ set of wireless devices.</para>
+ </sect2>
+
+ <sect2 id="network-wireless-basic">
+ <title>Basic Setup</title>
+
+ <sect3>
+ <title>Kernel Configuration</title>
+
+ <para>To use wireless networking you need a wireless
+ networking card and to configure the kernel with the
+ appropriate wireless networking support. The latter is
+ separated into multiple modules so that you only need to
+ configure the software you are actually going to use.</para>
+
+ <para>The first thing you need is a wireless device. The most
+ commonly used devices are those that use parts made by
+ Atheros. These devices are supported by the &man.ath.4;
+ driver and require the following line to be added to the
+ <filename>/boot/loader.conf</filename> file:</para>
+
+ <programlisting>if_ath_load="YES"</programlisting>
+
+ <para>The Atheros driver is split up into three separate
+ pieces: the driver proper (&man.ath.4;), the hardware
+ support layer that handles chip-specific functions
+ (&man.ath.hal.4;), and an algorithm for selecting which of
+ several possible rates for transmitting frames
+ (ath_rate_sample here). When you load this support as
+ modules these dependencies are automatically handled for
+ you. If instead of an Atheros device you had another device
+ you would select the module for that device; e.g.:</para>
+
+ <programlisting>if_wi_load="YES"</programlisting>
+
+ <para>for devices based on the Intersil Prism parts
+ (&man.wi.4; driver).</para>
+
+ <note>
+ <para>In the rest of this document, we will use an
+ &man.ath.4; device, the device name in the examples must
+ be changed according to your configuration. A list of
+ available wireless drivers can be found at the beginning
+ of the &man.wlan.4; manual page. If a native &os; driver
+ for your wireless device does not exist, it may be
+ possible to directly use the &windows; driver with the
+ help of the <link
+ linkend="config-network-ndis">NDIS</link> driver
+ wrapper.</para>
+ </note>
+
+ <para>With a device driver configured you need to also bring
+ in the 802.11 networking support required by the driver.
+ For the &man.ath.4; driver this is at least the &man.wlan.4;
+ module; this module is automatically loaded with the
+ wireless device driver. With that you will need the modules
+ that implement cryptographic support for the security
+ protocols you intend to use. These are intended to be
+ dynamically loaded on demand by the &man.wlan.4; module but
+ for now they must be manually configured. The following
+ modules are available: &man.wlan.wep.4;, &man.wlan.ccmp.4;
+ and &man.wlan.tkip.4;. Both &man.wlan.ccmp.4; and
+ &man.wlan.tkip.4; drivers are only needed if you intend to
+ use the WPA and/or 802.11i security protocols. If your
+ network is to run totally open (i.e., with no encryption)
+ then you do not even need the &man.wlan.wep.4; support. To
+ load these modules at boot time, add the following lines to
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>wlan_wep_load="YES"
+wlan_ccmp_load="YES"
+wlan_tkip_load="YES"</programlisting>
+
+ <para>With this information in the system bootstrap
+ configuration file (i.e.,
+ <filename>/boot/loader.conf</filename>), you have to reboot
+ your &os; box. If you do not want to reboot your machine
+ for the moment, you can just load the modules by hand using
+ &man.kldload.8;.</para>
+
+ <note>
+ <para>If you do not want to use modules, it is possible to
+ compile these drivers into the kernel by adding the
+ following lines to your kernel configuration file:</para>
+
+ <programlisting>device ath # Atheros IEEE 802.11 wireless network driver
+device ath_hal # Atheros Hardware Access Layer
+device ath_rate_sample # John Bicket's SampleRate control algorithm.
+device wlan # 802.11 support (Required)
+device wlan_wep # WEP crypto support for 802.11 devices
+device wlan_ccmp # AES-CCMP crypto support for 802.11 devices
+device wlan_tkip # TKIP and Michael crypto support for 802.11 devices</programlisting>
+
+ <para>With this information in the kernel configuration
+ file, recompile the kernel and reboot your &os;
+ machine.</para>
+ </note>
+
+ <para>When the system is up, we could find some information
+ about the wireless device in the boot messages, like
+ this:</para>
+
+ <screen>ath0: &lt;Atheros 5212&gt; mem 0xff9f0000-0xff9fffff irq 17 at device 2.0 on pci2
+ath0: Ethernet address: 00:11:95:d5:43:62
+ath0: mac 7.9 phy 4.5 radio 5.6</screen>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Infrastructure Mode</title>
+
+ <para>The infrastructure mode or BSS mode is the mode that is
+ typically used. In this mode, a number of wireless access
+ points are connected to a wired network. Each wireless
+ network has its own name, this name is called the SSID of the
+ network. Wireless clients connect to the wireless access
+ points.</para>
+
+ <sect3>
+ <title>&os; Clients</title>
+
+ <sect4>
+ <title>How to Find Access Points</title>
+
+ <para>To scan for networks, use the
+ <command>ifconfig</command> command. This request may
+ take a few moments to complete as it requires that the
+ system switches to each available wireless frequency and
+ probes for available access points. Only the super-user
+ can initiate such a scan:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> up scan</userinput>
+SSID BSSID CHAN RATE S:N INT CAPS
+dlinkap 00:13:46:49:41:76 6 54M 29:0 100 EPS WPA WME
+freebsdap 00:11:95:c3:0d:ac 1 54M 22:0 100 EPS WPA</screen>
+
+ <note>
+ <para>You must mark the interface <option>up</option>
+ before you can scan. Subsequent scan requests do not
+ require you to mark the interface up again.</para>
+ </note>
+
+ <para>The output of a scan request lists each BSS/IBSS
+ network found. Beside the name of the network,
+ <literal>SSID</literal>, we find the
+ <literal>BSSID</literal> which is the MAC address of the
+ access point. The <literal>CAPS</literal> field
+ identifies the type of each network and the capabilities
+ of the stations operating there:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>E</literal></term>
+
+ <listitem>
+ <para>Extended Service Set (ESS). Indicates that the
+ station is part of an infrastructure network (in
+ contrast to an IBSS/ad-hoc network).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>I</literal></term>
+
+ <listitem>
+ <para>IBSS/ad-hoc network. Indicates that the station
+ is part of an ad-hoc network (in contrast to an ESS
+ network).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>P</literal></term>
+
+ <listitem>
+ <para>Privacy. Data confidentiality is required for
+ all data frames exchanged within the BSS. This means
+ that this BSS requires the station to use
+ cryptographic means such as WEP, TKIP or AES-CCMP to
+ encrypt/decrypt data frames being exchanged with
+ others.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>S</literal></term>
+
+ <listitem>
+ <para>Short Preamble. Indicates that the network is
+ using short preambles (defined in 802.11b High
+ Rate/DSSS PHY, short preamble utilizes a 56 bit sync
+ field in contrast to a 128 bit field used in long
+ preamble mode).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>s</literal></term>
+
+ <listitem>
+ <para>Short slot time. Indicates that the 802.11g
+ network is using a short slot time because there are
+ no legacy (802.11b) stations present.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>One can also display the current list of known
+ networks with:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> list scan</userinput></screen>
+
+ <para>This information may be updated automatically by the
+ adapter or manually with a <option>scan</option> request.
+ Old data is automatically removed from the cache, so over
+ time this list may shrink unless more scans are
+ done.</para>
+ </sect4>
+
+ <sect4>
+ <title>Basic Settings</title>
+
+ <para>This section provides a simple example of how to make
+ the wireless network adapter work in &os; without
+ encryption. After you are familiar with these concepts,
+ we strongly recommend using <link
+ linkend="network-wireless-wpa">WPA</link> to set up your
+ wireless network.</para>
+
+ <para>There are three basic steps to configure a wireless
+ network: selecting an access point, authenticating your
+ station, and configuring an IP address. The following
+ sections discuss each step.</para>
+
+ <sect5>
+ <title>Selecting an Access Point</title>
+
+ <para>Most of time it is sufficient to let the system
+ choose an access point using the builtin heuristics.
+ This is the default behaviour when you mark an interface
+ up or otherwise configure an interface by listing it in
+ <filename>/etc/rc.conf</filename>, e.g.:</para>
+
+ <programlisting>ifconfig_ath0="DHCP"</programlisting>
+
+ <para>If there are multiple access points and you want to
+ select a specific one, you can select it by its
+ SSID:</para>
+
+ <programlisting>ifconfig_ath0="ssid <replaceable>your_ssid_here</replaceable> DHCP"</programlisting>
+
+ <para>In an environment where there are multiple access
+ points with the same SSID (often done to simplify
+ roaming) it may be necessary to associate to one
+ specific device. In this case you can also specify the
+ BSSID of the access point (you can also leave off the
+ SSID):</para>
+
+ <programlisting>ifconfig_ath0="ssid <replaceable>your_ssid_here</replaceable> bssid <replaceable>xx:xx:xx:xx:xx:xx</replaceable> DHCP"</programlisting>
+
+ <para>There are other ways to constrain the choice of an
+ access point such as limiting the set of frequencies the
+ system will scan on. This may be useful if you have a
+ multi-band wireless card as scanning all the possible
+ channels can be time-consuming. To limit operation to a
+ specific band you can use the <option>mode</option>
+ parameter; e.g.:</para>
+
+ <programlisting>ifconfig_ath0="mode <replaceable>11g</replaceable> ssid <replaceable>your_ssid_here</replaceable> DHCP"</programlisting>
+
+ <para>will force the card to operate in 802.11g which is
+ defined only for 2.4GHz frequencies so any 5GHz channels
+ will not be considered. Other ways to do this are the
+ <option>channel</option> parameter, to lock operation to
+ one specific frequency, and the
+ <option>chanlist</option> parameter, to specify a list
+ of channels for scanning. More information about these
+ parameters can be found in the &man.ifconfig.8; manual
+ page.</para>
+ </sect5>
+
+ <sect5>
+ <title>Authentication</title>
+
+ <para>Once you have selected an access point your station
+ needs to authenticate before it can pass data.
+ Authentication can happen in several ways. The most
+ common scheme used is termed open authentication and
+ allows any station to join the network and communicate.
+ This is the authentication you should use for test
+ purpose the first time you set up a wireless network.
+ Other schemes require cryptographic handshakes be
+ completed before data traffic can flow; either using
+ pre-shared keys or secrets, or more complex schemes that
+ involve backend services such as RADIUS. Most users
+ will use open authentication which is the default
+ setting. Next most common setup is WPA-PSK, also known
+ as WPA Personal, which is described <link
+ linkend="network-wireless-wpa-wpa-psk">below</link>.</para>
+
+ <note>
+ <para>If you have an &apple; &airport; Extreme base
+ station for an access point you may need to configure
+ shared-key authentication together with a WEP key.
+ This can be done in the
+ <filename>/etc/rc.conf</filename> file or using the
+ &man.wpa.supplicant.8; program. If you have a single
+ &airport; base station you can setup access with
+ something like:</para>
+
+ <programlisting>ifconfig_ath0="authmode shared wepmode on weptxkey <replaceable>1</replaceable> wepkey <replaceable>01234567</replaceable> DHCP"</programlisting>
+
+ <para>In general shared key authentication is to be
+ avoided because it uses the WEP key material in a
+ highly-constrained manner making it even easier to
+ crack the key. If WEP must be used (e.g., for
+ compatibility with legacy devices) it is better to use
+ WEP with <literal>open</literal> authentication. More
+ information regarding WEP can be found in the <xref
+ linkend="network-wireless-wep">.</para>
+ </note>
+ </sect5>
+
+ <sect5>
+ <title>Getting an IP Address with DHCP</title>
+
+ <para>Once you have selected an access point and set the
+ authentication parameters, you will have to get an IP
+ address to communicate. Most of time you will obtain
+ your wireless IP address via DHCP. To achieve that,
+ simply edit <filename>/etc/rc.conf</filename> and add
+ <literal>DHCP</literal> to the configuration for your
+ device as shown in various examples above:</para>
+
+ <programlisting>ifconfig_ath0="DHCP"</programlisting>
+
+ <para>At this point, you are ready to bring up the
+ wireless interface:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput></screen>
+
+ <para>Once the interface is running, use
+ <command>ifconfig</command> to see the status of the
+ interface <devicename>ath0</devicename>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput>
+ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/54Mbps)
+ status: associated
+ ssid dlinkap channel 6 bssid 00:13:46:49:41:76
+ authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100</screen>
+
+ <para>The <literal>status: associated</literal> means you
+ are connected to the wireless network (to the
+ <literal>dlinkap</literal> network in our case). The
+ <literal>bssid 00:13:46:49:41:76</literal> part is the
+ MAC address of your access point; the
+ <literal>authmode</literal> line informs you that the
+ communication is not encrypted
+ (<literal>OPEN</literal>).</para>
+ </sect5>
+
+ <sect5>
+ <title>Static IP Address</title>
+
+ <para>In the case you cannot obtain an IP address from a
+ DHCP server, you can set a fixed IP address. Replace
+ the <literal>DHCP</literal> keyword shown above with the
+ address information. Be sure to retain any other
+ parameters you have set up for selecting an access
+ point:</para>
+
+ <programlisting>ifconfig_ath0="inet <replaceable>192.168.1.100</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>your_ssid_here</replaceable>"</programlisting>
+ </sect5>
+
+ <sect4 id="network-wireless-wpa">
+ <title>WPA</title>
+
+ <para>WPA (Wi-Fi Protected Access) is a security protocol
+ used together with 802.11 networks to address the lack of
+ proper authentication and the weakness of <link
+ linkend="network-wireless-wep">WEP</link>. WPA leverages
+ the 802.1X authentication protocol and uses one of several
+ ciphers instead of WEP for data integrity. The only
+ cipher required by WPA is TKIP (Temporary Key Integrity
+ Protocol) which is a cipher that extends the basic RC4
+ cipher used by WEP by adding integrity checking, tamper
+ detection, and measures for responding to any detected
+ intrusions. TKIP is designed to work on legacy hardware
+ with only software modification; it represents a
+ compromise that improves security but is still not
+ entirely immune to attack. WPA also specifies the
+ AES-CCMP cipher as an alternative to TKIP and that is
+ preferred when possible; for this specification the term
+ WPA2 (or RSN) is commonly used.</para>
+
+ <para>WPA defines authentication and encryption protocols.
+ Authentication is most commonly done using one of two
+ techniques: by 802.1X and a backend authentication service
+ such as RADIUS, or by a minimal handshake between the
+ station and the access point using a pre-shared secret.
+ The former is commonly termed WPA Enterprise with the
+ latter known as WPA Personal. Since most people will not
+ set up a RADIUS backend server for wireless network,
+ WPA-PSK is by far the most commonly encountered
+ configuration for WPA.</para>
+
+ <para>The control of the wireless connection and the
+ authentication (key negotiation or authentication with a
+ server) is done with the &man.wpa.supplicant.8; utility.
+ This program requires a configuration file,
+ <filename>/etc/wpa_supplicant.conf</filename>, to run.
+ More information regarding this file can be found in the
+ &man.wpa.supplicant.conf.5; manual page.</para>
+
+ <sect5 id="network-wireless-wpa-wpa-psk">
+ <title>WPA-PSK</title>
+
+ <para>WPA-PSK also known as WPA-Personal is based on a
+ pre-shared key (PSK) generated from a given password and
+ that will be used as the master key in the wireless
+ network. This means every wireless user will share the
+ same key. WPA-PSK is intended for small networks where
+ the use of an authentication server is not possible or
+ desired.</para>
+
+ <warning>
+ <para>Always use strong passwords that are
+ sufficiently long and made from a rich alphabet so
+ they will not be guessed and/or attacked.</para>
+ </warning>
+
+ <para>The first step is the configuration of the
+ <filename>/etc/wpa_supplicant.conf</filename> file with
+ the SSID and the pre-shared key of your network:</para>
+
+ <programlisting>network={
+ ssid="freebsdap"
+ psk="freebsdmall"
+}</programlisting>
+
+ <para>Then, in <filename>/etc/rc.conf</filename>, we
+ indicate that the wireless device configuration will be
+ done with WPA and the IP address will be obtained with
+ DHCP:</para>
+
+ <programlisting>ifconfig_ath0="WPA DHCP"</programlisting>
+
+ <para>Then, we can bring up the interface:</para>
+
+ <screen>&prompt.root; <userinput><filename>/etc/rc.d/netif</filename> start</userinput>
+Starting wpa_supplicant.
+DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 5
+DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 6
+DHCPOFFER from 192.168.0.1
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPACK from 192.168.0.1
+bound to 192.168.0.254 -- renewal in 300 seconds.
+ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
+ status: associated
+ ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
+ authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
+ protmode CTS roaming MANUAL bintval 100</screen>
+
+ <para>Or you can try to configure it manually using the
+ same <filename>/etc/wpa_supplicant.conf</filename> <link
+ linkend="network-wireless-wpa-wpa-psk">above</link>, and
+ run:</para>
+
+ <screen>&prompt.root; <userinput>wpa_supplicant -i <replaceable>ath0</replaceable> -c /etc/wpa_supplicant.conf</userinput>
+Trying to associate with 00:11:95:c3:0d:ac (SSID='freebsdap' freq=2412 MHz)
+Associated with 00:11:95:c3:0d:ac
+WPA: Key negotiation completed with 00:11:95:c3:0d:ac [PTK=TKIP GTK=TKIP]</screen>
+
+ <para>The next operation is the launch of the
+ <command>dhclient</command> command to get the IP
+ address from the DHCP server:</para>
+
+ <screen>&prompt.root; <userinput>dhclient <replaceable>ath0</replaceable></userinput>
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPACK from 192.168.0.1
+bound to 192.168.0.254 -- renewal in 300 seconds.
+&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput>
+ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/48Mbps)
+ status: associated
+ ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
+ authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
+ protmode CTS roaming MANUAL bintval 100</screen>
+
+ <note>
+ <para>If the <filename>/etc/rc.conf</filename> is set up
+ with the line <literal>ifconfig_ath0="DHCP"</literal>
+ then it is no need to run the
+ <command>dhclient</command> command manually,
+ <command>dhclient</command> will be launched after
+ <command>wpa_supplicant</command> plumbs the
+ keys.</para>
+ </note>
+
+ <para>In the case where the use of DHCP is not possible,
+ you can set a static IP address after
+ <command>wpa_supplicant</command> has authenticated the
+ station:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> inet <replaceable>192.168.0.100</replaceable> netmask <replaceable>255.255.255.0</replaceable></userinput>
+&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput>
+ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.0.100 netmask 0xffffff00 broadcast 192.168.0.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect (OFDM/36Mbps)
+ status: associated
+ ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
+ authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit txpowmax 36
+ protmode CTS roaming MANUAL bintval 100</screen>
+
+ <para>When DHCP is not used, you also have to manually set
+ up the default gateway and the nameserver:</para>
+
+ <screen>&prompt.root; <userinput>route add default <replaceable>your_default_router</replaceable></userinput>
+&prompt.root; <userinput>echo "nameserver <replaceable>your_DNS_server</replaceable>" &gt;&gt; /etc/resolv.conf</userinput></screen>
+ </sect5>
+
+ <sect5 id="network-wireless-wpa-eap-tls">
+ <title>WPA with EAP-TLS</title>
+
+ <para>The second way to use WPA is with an 802.1X backend
+ authentication server, in this case WPA is called
+ WPA-Enterprise to make difference with the less secure
+ WPA-Personal with its pre-shared key. The
+ authentication in WPA-Enterprise is based on EAP
+ (Extensible Authentication Protocol).</para>
+
+ <para>EAP does not come with an encryption method, it was
+ decided to embed EAP inside an encrypted tunnel. Many
+ types of EAP authentication methods have been designed,
+ the most common methods are EAP-TLS, EAP-TTLS and
+ EAP-PEAP.</para>
+
+ <para>EAP-TLS (EAP with Transport Layer Security) is a
+ very well-supported authentication protocol in the
+ wireless world since it was the first EAP method to be
+ certified by the <ulink
+ url="http://www.wi-fi.org/">Wi-Fi alliance</ulink>.
+ EAP-TLS will require three certificates to run: the CA
+ certificate (installed on all machines), the server
+ certificate for your authentication server, and one
+ client certificate for each wireless client. In this
+ EAP method, both authentication server and wireless
+ client authenticate each other in presenting their
+ respective certificates, and they verify that these
+ certificates were signed by your organization's
+ certificate authority (CA).</para>
+
+ <para>As previously, the configuration is done via
+ <filename>/etc/wpa_supplicant.conf</filename>:</para>
+
+ <programlisting>network={
+ ssid="freebsdap" <co id="co-tls-ssid">
+ proto=RSN <co id="co-tls-proto">
+ key_mgmt=WPA-EAP <co id="co-tls-kmgmt">
+ eap=TLS <co id="co-tls-eap">
+ identity="loader" <co id="co-tls-id">
+ ca_cert="/etc/certs/cacert.pem" <co id="co-tls-cacert">
+ client_cert="/etc/certs/clientcert.pem" <co id="co-tls-clientcert">
+ private_key="/etc/certs/clientkey.pem" <co id="co-tls-pkey">
+ private_key_passwd="freebsdmallclient" <co id="co-tls-pwd">
+}</programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-tls-ssid">
+ <para>This field indicates the network name
+ (SSID).</para>
+ </callout>
+
+ <callout arearefs="co-tls-proto">
+ <para>Here, we use RSN (IEEE 802.11i) protocol, i.e.,
+ WPA2.</para>
+ </callout>
+
+ <callout arearefs="co-tls-kmgmt">
+ <para>The <literal>key_mgmt</literal> line refers to
+ the key management protocol we use. In our case it
+ is WPA using EAP authentication:
+ <literal>WPA-EAP</literal>.</para>
+ </callout>
+
+ <callout arearefs="co-tls-eap">
+ <para>In this field, we mention the EAP method for our
+ connection.</para>
+ </callout>
+
+ <callout arearefs="co-tls-id">
+ <para>The <literal>identity</literal> field contains
+ the identity string for EAP.</para>
+ </callout>
+
+ <callout arearefs="co-tls-cacert">
+ <para>The <literal>ca_cert</literal> field indicates
+ the pathname of the CA certificate file. This file
+ is needed to verify the server certificat.</para>
+ </callout>
+
+ <callout arearefs="co-tls-clientcert">
+ <para>The <literal>client_cert</literal> line gives
+ the pathname to the client certificate file. This
+ certificate is unique to each wireless client of the
+ network.</para>
+ </callout>
+
+ <callout arearefs="co-tls-pkey">
+ <para>The <literal>private_key</literal> field is the
+ pathname to the client certificate private key
+ file.</para>
+ </callout>
+
+ <callout arearefs="co-tls-pwd">
+ <para>The <literal>private_key_passwd</literal> field
+ contains the passphrase for the private key.</para>
+ </callout>
+ </calloutlist>
+
+ <para>Then add the following line to
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>ifconfig_ath0="WPA DHCP"</programlisting>
+
+ <para>The next step is to bring up the interface with the
+ help of the <filename>rc.d</filename> facility:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput>
+Starting wpa_supplicant.
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPACK from 192.168.0.20
+bound to 192.168.0.254 -- renewal in 300 seconds.
+ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
+ status: associated
+ ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
+ authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
+ txpowmax 36 protmode CTS roaming MANUAL bintval 100</screen>
+
+ <para>As previously shown, it is also possible to bring up
+ the interface manually with both
+ <command>wpa_supplicant</command> and
+ <command>ifconfig</command> commands.</para>
+ </sect5>
+
+ <sect5 id="network-wireless-wpa-eap-ttls">
+ <title>WPA with EAP-TTLS</title>
+
+ <para>With EAP-TLS both the authentication server and the
+ client need a certificate, with EAP-TTLS (EAP-Tunneled
+ Transport Layer Security) a client certificate is
+ optional. This method is close to what some secure web
+ sites do , where the web server can create a secure SSL
+ tunnel even if the visitors do not have client-side
+ certificates. EAP-TTLS will use the encrypted TLS
+ tunnel for safe transport of the authentication
+ data.</para>
+
+ <para>The configuration is done via the
+ <filename>/etc/wpa_supplicant.conf</filename>
+ file:</para>
+
+ <programlisting>network={
+ ssid="freebsdap"
+ proto=RSN
+ key_mgmt=WPA-EAP
+ eap=TTLS <co id="co-ttls-eap">
+ identity="test" <co id="co-ttls-id">
+ password="test" <co id="co-ttls-passwd">
+ ca_cert="/etc/certs/cacert.pem" <co id="co-ttls-cacert">
+ phase2="auth=MD5" <co id="co-ttls-pha2">
+}</programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-ttls-eap">
+ <para>In this field, we mention the EAP method for our
+ connection.</para>
+ </callout>
+
+ <callout arearefs="co-ttls-id">
+ <para>The <literal>identity</literal> field contains
+ the identity string for EAP authentication inside
+ the encrypted TLS tunnel.</para>
+ </callout>
+
+ <callout arearefs="co-ttls-passwd">
+ <para>The <literal>password</literal> field contains
+ the passphrase for the EAP authentication.</para>
+ </callout>
+
+ <callout arearefs="co-ttls-cacert">
+ <para>The <literal>ca_cert</literal> field indicates
+ the pathname of the CA certificate file. This file
+ is needed to verify the server certificat.</para>
+ </callout>
+
+ <callout arearefs="co-ttls-pha2">
+ <para>In this field, we mention the authentication
+ method used in the encrypted TLS tunnel. In our
+ case, EAP with MD5-Challenge has been used. The
+ <quote>inner authentication</quote> phase is often
+ called <quote>phase2</quote>.</para>
+ </callout>
+ </calloutlist>
+
+ <para>You also have to add the following line to
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>ifconfig_ath0="WPA DHCP"</programlisting>
+
+ <para>The next step is to bring up the interface:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput>
+Starting wpa_supplicant.
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPACK from 192.168.0.20
+bound to 192.168.0.254 -- renewal in 300 seconds.
+ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
+ status: associated
+ ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
+ authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
+ txpowmax 36 protmode CTS roaming MANUAL bintval 100</screen>
+ </sect5>
+
+ <sect5 id="network-wireless-wpa-eap-peap">
+ <title>WPA with EAP-PEAP</title>
+
+ <para>PEAP (Protected EAP) has been designed as an
+ alternative to EAP-TTLS. There are two types of PEAP
+ methods, the most common one is PEAPv0/EAP-MSCHAPv2. In
+ the rest of this document, we will use the PEAP term to
+ refer to that EAP method. PEAP is the most used EAP
+ standard after EAP-TLS, in other words if you have a
+ network with mixed OSes, PEAP should be the most
+ supported standard after EAP-TLS.</para>
+
+ <para>PEAP is similar to EAP-TTLS: it uses a server-side
+ certificate to authenticate clients by creating an
+ encrypted TLS tunnel between the client and the
+ authentication server, which protects the ensuing
+ exchange of authentication information. In term of
+ security the difference between EAP-TTLS and PEAP is
+ that PEAP authentication broadcasts the username in
+ clear, only the password is sent in the encrypted TLS
+ tunnel. EAP-TTLS will use the TLS tunnel for both
+ username and password.</para>
+
+ <para>We have to edit the
+ <filename>/etc/wpa_supplicant.conf</filename> file and
+ add the EAP-PEAP related settings:</para>
+
+ <programlisting>network={
+ ssid="freebsdap"
+ proto=RSN
+ key_mgmt=WPA-EAP
+ eap=PEAP <co id="co-peap-eap">
+ identity="test" <co id="co-peap-id">
+ password="test" <co id="co-peap-passwd">
+ ca_cert="/etc/certs/cacert.pem" <co id="co-peap-cacert">
+ phase1="peaplabel=0" <co id="co-peap-pha1">
+ phase2="auth=MSCHAPV2" <co id="co-peap-pha2">
+}</programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-peap-eap">
+ <para>In this field, we mention the EAP method for our
+ connection.</para>
+ </callout>
+
+ <callout arearefs="co-peap-id">
+ <para>The <literal>identity</literal> field contains
+ the identity string for EAP authentication inside
+ the encrypted TLS tunnel.</para>
+ </callout>
+
+ <callout arearefs="co-peap-passwd">
+ <para>The <literal>password</literal> field contains
+ the passphrase for the EAP authentication.</para>
+ </callout>
+
+ <callout arearefs="co-peap-cacert">
+ <para>The <literal>ca_cert</literal> field indicates
+ the pathname of the CA certificate file. This file
+ is needed to verify the server certificat.</para>
+ </callout>
+
+ <callout arearefs="co-peap-pha1">
+ <para>This field contains the parameters for the
+ first phase of the authentication (the TLS
+ tunnel). According to the authentication server
+ used, you will have to specify a specific label
+ for the authentication. Most of time, the label
+ will be <quote>client EAP encryption</quote> which
+ is set by using <literal>peaplabel=0</literal>.
+ More information can be found in the
+ &man.wpa.supplicant.conf.5; manual page.</para>
+ </callout>
+
+ <callout arearefs="co-peap-pha2">
+ <para>In this field, we mention the authentication
+ protocol used in the encrypted TLS tunnel. In the
+ case of PEAP, it is
+ <literal>auth=MSCHAPV2</literal>.</para>
+ </callout>
+ </calloutlist>
+
+ <para>The following must be added to
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>ifconfig_ath0="WPA DHCP"</programlisting>
+
+ <para>Then, we can bring up the interface:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/netif start</userinput>
+Starting wpa_supplicant.
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPREQUEST on ath0 to 255.255.255.255 port 67
+DHCPACK from 192.168.0.20
+bound to 192.168.0.254 -- renewal in 300 seconds.
+ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.0.254 netmask 0xffffff00 broadcast 192.168.0.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect (DS/11Mbps)
+ status: associated
+ ssid freebsdap channel 1 bssid 00:11:95:c3:0d:ac
+ authmode WPA2/802.11i privacy ON deftxkey UNDEF TKIP 2:128-bit
+ txpowmax 36 protmode CTS roaming MANUAL bintval 100</screen>
+ </sect5>
+ </sect4>
+
+ <sect4 id="network-wireless-wep">
+ <title>WEP</title>
+
+ <para>WEP (Wired Equivalent Privacy) is part of the original
+ 802.11 standard. There is no authentication mechanism,
+ only a weak form of access control, and it is easily to be
+ cracked.</para>
+
+ <para>WEP can be set up with
+ <command>ifconfig</command>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> inet <replaceable>192.168.1.100</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid my_net \
+ wepmode on weptxkey 3 wepkey 3:0x3456789012</userinput></screen>
+
+ <itemizedlist>
+ <listitem>
+ <para>The <literal>weptxkey</literal> means which WEP
+ key will be used in the transmission. Here we used the
+ third key. This must match the setting in the access
+ point.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <literal>wepkey</literal> means setting the
+ selected WEP key. It should in the format
+ <replaceable>index:key</replaceable>, if the index is
+ not given, key <literal>1</literal> is set. That is
+ to say we need to set the index if we use keys other
+ than the first key.</para>
+
+ <note>
+ <para>You must replace
+ the <literal>0x3456789012</literal> with the key
+ configured for use on the access point.</para>
+ </note>
+ </listitem>
+ </itemizedlist>
+
+ <para>You are encouraged to read &man.ifconfig.8; manual
+ page for further information.</para>
+
+ <para>The <command>wpa_supplicant</command> facility also
+ can be used to configure your wireless interface with WEP.
+ The example above can be set up by adding the following
+ lines to
+ <filename>/etc/wpa_supplicant.conf</filename>:</para>
+
+ <programlisting>network={
+ ssid="my_net"
+ key_mgmt=NONE
+ wep_key3=3456789012
+ wep_tx_keyidx=3
+}</programlisting>
+
+ <para>Then:</para>
+
+ <screen>&prompt.root; <userinput>wpa_supplicant -i <replaceable>ath0</replaceable> -c /etc/wpa_supplicant.conf</userinput>
+Trying to associate with 00:13:46:49:41:76 (SSID='dlinkap' freq=2437 MHz)
+Associated with 00:13:46:49:41:76</screen>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ad-hoc Mode</title>
+
+ <para>IBSS mode, also called ad-hoc mode, is designed for point
+ to point connections. For example, to establish an ad-hoc
+ network between the machine <hostid>A</hostid> and the machine
+ <hostid>B</hostid> we will just need to choose two IP adresses
+ and a SSID.</para>
+
+ <para>On the box <hostid>A</hostid>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> inet <replaceable>192.168.0.1</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>freebsdap</replaceable> mediaopt adhoc</userinput>
+&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput>
+ ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
+ inet6 fe80::211:95ff:fec3:dac%ath0 prefixlen 64 scopeid 0x4
+ ether 00:11:95:c3:0d:ac
+ media: IEEE 802.11 Wireless Ethernet autoselect &lt;adhoc&gt; (autoselect &lt;adhoc&gt;)
+ status: associated
+ ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
+ authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100</screen>
+
+ <para>The <literal>adhoc</literal> parameter indicates the
+ interface is running in the IBSS mode.</para>
+
+ <para>On <hostid>B</hostid>, we should be able to detect
+ <hostid>A</hostid>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> up scan</userinput>
+ SSID BSSID CHAN RATE S:N INT CAPS
+ freebsdap 02:11:95:c3:0d:ac 2 54M 19:0 100 IS</screen>
+
+ <para>The <literal>I</literal> in the output confirms the
+ machine <hostid>A</hostid> is in ad-hoc mode. We just have to
+ configure <hostid>B</hostid> with a different IP
+ address:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable> inet <replaceable>192.168.0.2</replaceable> netmask <replaceable>255.255.255.0</replaceable> ssid <replaceable>freebsdap</replaceable> mediaopt adhoc</userinput>
+&prompt.root; <userinput>ifconfig <replaceable>ath0</replaceable></userinput>
+ ath0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet6 fe80::211:95ff:fed5:4362%ath0 prefixlen 64 scopeid 0x1
+ inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
+ ether 00:11:95:d5:43:62
+ media: IEEE 802.11 Wireless Ethernet autoselect &lt;adhoc&gt; (autoselect &lt;adhoc&gt;)
+ status: associated
+ ssid freebsdap channel 2 bssid 02:11:95:c3:0d:ac
+ authmode OPEN privacy OFF txpowmax 36 protmode CTS bintval 100</screen>
+
+ <para>Both <hostid>A</hostid> and <hostid>B</hostid> are now
+ ready to exchange informations.</para>
+ </sect2>
+
+ <sect2>
+ <title>Troubleshooting</title>
+
+ <para>If you are having trouble with wireless networking, there
+ are a number of steps you can take to help troubleshoot the
+ problem.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>If you do not see the access point listed when
+ scanning be sure you have not configured your wireless
+ device to a limited set of channels.</para>
+ </listitem>
+
+ <listitem>
+ <para>If you cannot associate to an access point verify the
+ configuration of your station matches the one of the
+ access point. This includes the authentication scheme and
+ any security protocols. Simplify your configuration as
+ much as possible. If you are using a security protocol
+ such as WPA or WEP configure the access point for open
+ authentication and no security to see if you can get
+ traffic to pass.</para>
+ </listitem>
+
+ <listitem>
+ <para>Once you can associate to the access point diagnose
+ any security configuration using simple tools like
+ &man.ping.8;.</para>
+
+ <para>The <command>wpa_supplicant</command> has much
+ debugging support; try running it manually with the
+ <option>-dd</option> option and look at the system
+ logs.</para>
+ </listitem>
+
+ <listitem>
+ <para>There are also many lower-level debugging tools. You
+ can enable debugging messages in the 802.11 protocol
+ support layer using the <command>wlandebug</command>
+ program found in
+ <filename>/usr/src/tools/tools/net80211</filename>. For
+ example:</para>
+
+ <screen>&prompt.root; <userinput>wlandebug -i <replaceable>ath0</replaceable> +scan+auth+debug+assoc</userinput>
+ net.wlan.0.debug: 0 =&gt; 0xc80000&lt;assoc,auth,scan&gt;</screen>
+
+ <para>can be used to enable console messages related to
+ scanning for access points and doing the 802.11 protocol
+ handshakes required to arrange communication.</para>
+
+ <para>There are also many useful statistics maintained by
+ the 802.11 layer; the <command>wlanstats</command> tool
+ will dump these informations. These statistics should
+ identify all errors identified by the 802.11 layer.
+ Beware however that some errors are identified in the
+ device drivers that lie below the 802.11 layer so they may
+ not show up. To diagnose device-specific problems you
+ need to refer to the drivers' documentation.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>If the above information does not help to clarify the
+ problem, please submit a problem report and include output
+ from the above tools.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-bluetooth">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Pav</firstname>
+ <surname>Lucistnik</surname>
+ <contrib>Written by </contrib>
+ <affiliation>
+ <address><email>pav@FreeBSD.org</email></address>
+ </affiliation>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Bluetooth</title>
+
+ <indexterm><primary>Bluetooth</primary></indexterm>
+ <sect2>
+ <title>Introduction</title>
+ <para>Bluetooth is a wireless technology for creating personal networks
+ operating in the 2.4 GHz unlicensed band, with a range of 10 meters.
+ Networks are usually formed ad-hoc from portable devices such as
+ cellular phones, handhelds and laptops. Unlike the other popular
+ wireless technology, Wi-Fi, Bluetooth offers higher level service
+ profiles, e.g. FTP-like file servers, file pushing, voice transport,
+ serial line emulation, and more.</para>
+
+ <para>The Bluetooth stack in &os; is implemented using the Netgraph
+ framework (see &man.netgraph.4;). A broad variety of Bluetooth USB
+ dongles is supported by the &man.ng.ubt.4; driver. The Broadcom BCM2033
+ chip based Bluetooth devices are supported via the &man.ubtbcmfw.4; and
+ &man.ng.ubt.4; drivers. The 3Com Bluetooth PC Card 3CRWB60-A is
+ supported by the &man.ng.bt3c.4; driver. Serial and UART based
+ Bluetooth devices are supported via &man.sio.4;, &man.ng.h4.4;
+ and &man.hcseriald.8;. This section describes the use of the USB
+ Bluetooth dongle.</para>
+ </sect2>
+
+ <sect2>
+ <title>Plugging in the Device</title>
+ <para>By default Bluetooth device drivers are available as kernel modules.
+ Before attaching a device, you will need to load the driver into the
+ kernel:</para>
+
+ <screen>&prompt.root; <userinput>kldload ng_ubt</userinput></screen>
+
+ <para>If the Bluetooth device is present in the system during system
+ startup, load the module from
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>ng_ubt_load="YES"</programlisting>
+
+ <para>Plug in your USB dongle. The output similar to the following will
+ appear on the console (or in syslog):</para>
+
+ <screen>ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
+ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
+ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
+ wMaxPacketSize=49, nframes=6, buffer size=294</screen>
+
+ <note>
+ <para>The Bluetooth stack has to be started manually on &os; 6.0, and
+ on &os; 5.X before 5.5. It is done automatically from &man.devd.8;
+ on &os; 5.5, 6.1 and newer.</para>
+
+ <para>Copy
+ <filename>/usr/share/examples/netgraph/bluetooth/rc.bluetooth</filename>
+ into some convenient place, like <filename>/etc/rc.bluetooth</filename>.
+ This script is used to start and stop the Bluetooth stack. It is a good
+ idea to stop the stack before unplugging the device, but it is not
+ (usually) fatal. When starting the stack, you will receive output similar
+ to the following:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.bluetooth start ubt0</userinput>
+BD_ADDR: 00:02:72:00:d4:1a
+Features: 0xff 0xff 0xf 00 00 00 00 00
+&lt;3-Slot&gt; &lt;5-Slot&gt; &lt;Encryption&gt; &lt;Slot offset&gt;
+&lt;Timing accuracy&gt; &lt;Switch&gt; &lt;Hold mode&gt; &lt;Sniff mode&gt;
+&lt;Park mode&gt; &lt;RSSI&gt; &lt;Channel quality&gt; &lt;SCO link&gt;
+&lt;HV2 packets&gt; &lt;HV3 packets&gt; &lt;u-law log&gt; &lt;A-law log&gt; &lt;CVSD&gt;
+&lt;Paging scheme&gt; &lt;Power control&gt; &lt;Transparent SCO data&gt;
+Max. ACL packet size: 192 bytes
+Number of ACL packets: 8
+Max. SCO packet size: 64 bytes
+Number of SCO packets: 8</screen>
+ </note>
+
+ </sect2>
+
+ <indexterm><primary>HCI</primary></indexterm>
+ <sect2>
+ <title>Host Controller Interface (HCI)</title>
+
+ <para>Host Controller Interface (HCI) provides a command interface to the
+ baseband controller and link manager, and access to hardware status and
+ control registers. This interface provides a uniform method of accessing
+ the Bluetooth baseband capabilities. HCI layer on the Host exchanges
+ data and commands with the HCI firmware on the Bluetooth hardware.
+ The Host Controller Transport Layer (i.e. physical bus) driver provides
+ both HCI layers with the ability to exchange information with each
+ other.</para>
+
+ <para>A single Netgraph node of type <emphasis>hci</emphasis> is
+ created for a single Bluetooth device. The HCI node is normally
+ connected to the Bluetooth device driver node (downstream) and
+ the L2CAP node (upstream). All HCI operations must be performed
+ on the HCI node and not on the device driver node. Default name
+ for the HCI node is <quote>devicehci</quote>.
+ For more details refer to the &man.ng.hci.4; manual page.</para>
+
+ <para>One of the most common tasks is discovery of Bluetooth devices in
+ RF proximity. This operation is called <emphasis>inquiry</emphasis>.
+ Inquiry and other HCI related operations are done with the
+ &man.hccontrol.8; utility. The example below shows how to find out
+ which Bluetooth devices are in range. You should receive the list of
+ devices in a few seconds. Note that a remote device will only answer
+ the inquiry if it put into <emphasis>discoverable</emphasis>
+ mode.</para>
+
+ <screen>&prompt.user; <userinput>hccontrol -n ubt0hci inquiry</userinput>
+Inquiry result, num_responses=1
+Inquiry result #0
+ BD_ADDR: 00:80:37:29:19:a4
+ Page Scan Rep. Mode: 0x1
+ Page Scan Period Mode: 00
+ Page Scan Mode: 00
+ Class: 52:02:04
+ Clock offset: 0x78ef
+Inquiry complete. Status: No error [00]</screen>
+
+ <para><literal>BD_ADDR</literal> is unique address of a Bluetooth
+ device, similar to MAC addresses of a network card. This address
+ is needed for further communication with a device. It is possible
+ to assign human readable name to a BD_ADDR.
+ The <filename>/etc/bluetooth/hosts</filename> file contains information
+ regarding the known Bluetooth hosts. The following example shows how
+ to obtain human readable name that was assigned to the remote
+ device:</para>
+
+ <screen>&prompt.user; <userinput>hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4</userinput>
+BD_ADDR: 00:80:37:29:19:a4
+Name: Pav's T39</screen>
+
+ <para>If you perform an inquiry on a remote Bluetooth device, it will
+ find your computer as <quote>your.host.name (ubt0)</quote>. The name
+ assigned to the local device can be changed at any time.</para>
+
+ <para>The Bluetooth system provides a point-to-point connection (only two
+ Bluetooth units involved), or a point-to-multipoint connection. In the
+ point-to-multipoint connection the connection is shared among several
+ Bluetooth devices. The following example shows how to obtain the list
+ of active baseband connections for the local device:</para>
+
+ <screen>&prompt.user; <userinput>hccontrol -n ubt0hci read_connection_list</userinput>
+Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
+00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN</screen>
+
+ <para>A <emphasis>connection handle</emphasis> is useful when termination
+ of the baseband connection is required. Note, that it is normally not
+ required to do it by hand. The stack will automatically terminate
+ inactive baseband connections.</para>
+
+ <screen>&prompt.root; <userinput>hccontrol -n ubt0hci disconnect 41</userinput>
+Connection handle: 41
+Reason: Connection terminated by local host [0x16]</screen>
+
+ <para>Refer to <command>hccontrol help</command> for a complete listing
+ of available HCI commands. Most of the HCI commands do not require
+ superuser privileges.</para>
+
+ </sect2>
+
+ <indexterm><primary>L2CAP</primary></indexterm>
+ <sect2>
+ <title>Logical Link Control and Adaptation Protocol (L2CAP)</title>
+
+ <para>Logical Link Control and Adaptation Protocol (L2CAP) provides
+ connection-oriented and connectionless data services to upper layer
+ protocols with protocol multiplexing capability and segmentation and
+ reassembly operation. L2CAP permits higher level protocols and
+ applications to transmit and receive L2CAP data packets up to 64
+ kilobytes in length.</para>
+
+ <para>L2CAP is based around the concept of <emphasis>channels</emphasis>.
+ Channel is a logical connection on top of baseband connection. Each
+ channel is bound to a single protocol in a many-to-one fashion. Multiple
+ channels can be bound to the same protocol, but a channel cannot be
+ bound to multiple protocols. Each L2CAP packet received on a channel is
+ directed to the appropriate higher level protocol. Multiple channels
+ can share the same baseband connection.</para>
+
+ <para>A single Netgraph node of type <emphasis>l2cap</emphasis> is
+ created for a single Bluetooth device. The L2CAP node is normally
+ connected to the Bluetooth HCI node (downstream) and Bluetooth sockets
+ nodes (upstream). Default name for the L2CAP node is
+ <quote>devicel2cap</quote>. For more details refer to the
+ &man.ng.l2cap.4; manual page.</para>
+
+ <para>A useful command is &man.l2ping.8;, which can be used to ping
+ other devices. Some Bluetooth implementations might not return all of
+ the data sent to them, so <literal>0 bytes</literal> in the following
+ example is normal.</para>
+
+ <screen>&prompt.root; <userinput>l2ping -a 00:80:37:29:19:a4</userinput>
+0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
+0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
+0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
+0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0</screen>
+
+ <para>The &man.l2control.8; utility is used to perform various operations
+ on L2CAP nodes. This example shows how to obtain the list of logical
+ connections (channels) and the list of baseband connections for the
+ local device:</para>
+
+ <screen>&prompt.user; <userinput>l2control -a 00:02:72:00:d4:1a read_channel_list</userinput>
+L2CAP channels:
+Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
+00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
+&prompt.user; <userinput>l2control -a 00:02:72:00:d4:1a read_connection_list</userinput>
+L2CAP connections:
+Remote BD_ADDR Handle Flags Pending State
+00:07:e0:00:0b:ca 41 O 0 OPEN</screen>
+
+ <para>Another diagnostic tool is &man.btsockstat.1;. It does a job
+ similar to as &man.netstat.1; does, but for Bluetooth network-related
+ data structures. The example below shows the same logical connection as
+ &man.l2control.8; above.</para>
+
+ <screen>&prompt.user; <userinput>btsockstat</userinput>
+Active L2CAP sockets
+PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
+c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
+Active RFCOMM sessions
+L2PCB PCB Flag MTU Out-Q DLCs State
+c2afe900 c2b53380 1 127 0 Yes OPEN
+Active RFCOMM sockets
+PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
+c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN</screen>
+
+ </sect2>
+
+ <indexterm><primary>RFCOMM</primary></indexterm>
+ <sect2>
+ <title>RFCOMM Protocol</title>
+
+ <para>The RFCOMM protocol provides emulation of serial ports over the
+ L2CAP protocol. The protocol is based on the ETSI standard TS 07.10.
+ RFCOMM is a simple transport protocol, with additional provisions for
+ emulating the 9 circuits of RS-232 (EIATIA-232-E) serial ports. The
+ RFCOMM protocol supports up to 60 simultaneous connections (RFCOMM
+ channels) between two Bluetooth devices.</para>
+
+ <para>For the purposes of RFCOMM, a complete communication path involves
+ two applications running on different devices (the communication
+ endpoints) with a communication segment between them. RFCOMM is intended
+ to cover applications that make use of the serial ports of the devices
+ in which they reside. The communication segment is a Bluetooth link from
+ one device to another (direct connect).</para>
+
+ <para>RFCOMM is only concerned with the connection between the devices in
+ the direct connect case, or between the device and a modem in the
+ network case. RFCOMM can support other configurations, such as modules
+ that communicate via Bluetooth wireless technology on one side and
+ provide a wired interface on the other side.</para>
+
+ <para>In &os; the RFCOMM protocol is implemented at the Bluetooth sockets
+ layer.</para>
+ </sect2>
+
+ <indexterm><primary>pairing</primary></indexterm>
+ <sect2>
+ <title>Pairing of Devices</title>
+
+ <para>By default, Bluetooth communication is not authenticated, and any
+ device can talk to any other device. A Bluetooth device (for example,
+ cellular phone) may choose to require authentication to provide a
+ particular service (for example, Dial-Up service). Bluetooth
+ authentication is normally done with <emphasis>PIN codes</emphasis>.
+ A PIN code is an ASCII string up to 16 characters in length. User is
+ required to enter the same PIN code on both devices. Once user has
+ entered the PIN code, both devices will generate a
+ <emphasis>link key</emphasis>. After that the link key can be stored
+ either in the devices themselves or in a persistent storage. Next time
+ both devices will use previously generated link key. The described
+ above procedure is called <emphasis>pairing</emphasis>. Note that if
+ the link key is lost by any device then pairing must be repeated.</para>
+
+ <para>The &man.hcsecd.8; daemon is responsible for handling of all
+ Bluetooth authentication requests. The default configuration file is
+ <filename>/etc/bluetooth/hcsecd.conf</filename>. An example section for
+ a cellular phone with the PIN code arbitrarily set to
+ <quote>1234</quote> is shown below:</para>
+
+ <programlisting>device {
+ bdaddr 00:80:37:29:19:a4;
+ name "Pav's T39";
+ key nokey;
+ pin "1234";
+ }</programlisting>
+
+ <para>There is no limitation on PIN codes (except length). Some devices
+ (for example Bluetooth headsets) may have a fixed PIN code built in.
+ The <option>-d</option> switch forces the &man.hcsecd.8; daemon to stay
+ in the foreground, so it is easy to see what is happening. Set the
+ remote device to receive pairing and initiate the Bluetooth connection
+ to the remote device. The remote device should say that pairing was
+ accepted, and request the PIN code. Enter the same PIN code as you
+ have in <filename>hcsecd.conf</filename>. Now your PC and the remote
+ device are paired. Alternatively, you can initiate pairing on the remote
+ device.</para>
+
+ <para>On &os; 5.5, 6.1 and newer, the following line can be added to the
+ <filename>/etc/rc.conf</filename> file to have
+ <application>hcsecd</application> started automatically on system
+ start:</para>
+
+ <programlisting>hcsecd_enable="YES"</programlisting>
+
+ <para>The following is a sample of the
+ <application>hcsecd</application> daemon output:</para>
+
+<programlisting>hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
+hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
+hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
+hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
+hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
+hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4</programlisting>
+
+ </sect2>
+
+ <indexterm><primary>SDP</primary></indexterm>
+ <sect2>
+ <title>Service Discovery Protocol (SDP)</title>
+ <para>The Service Discovery Protocol (SDP) provides the means for client
+ applications to discover the existence of services provided by server
+ applications as well as the attributes of those services. The attributes
+ of a service include the type or class of service offered and the
+ mechanism or protocol information needed to utilize the service.</para>
+
+ <para>SDP involves communication between a SDP server and a SDP client.
+ The server maintains a list of service records that describe the
+ characteristics of services associated with the server. Each service
+ record contains information about a single service. A client may
+ retrieve information from a service record maintained by the SDP server
+ by issuing a SDP request. If the client, or an application associated
+ with the client, decides to use a service, it must open a separate
+ connection to the service provider in order to utilize the service.
+ SDP provides a mechanism for discovering services and their attributes,
+ but it does not provide a mechanism for utilizing those services.</para>
+
+ <para>Normally, a SDP client searches for services based on some desired
+ characteristics of the services. However, there are times when it is
+ desirable to discover which types of services are described by an SDP
+ server's service records without any a priori information about the
+ services. This process of looking for any offered services is called
+ <emphasis>browsing</emphasis>.</para>
+
+ <para>The Bluetooth SDP server &man.sdpd.8; and command line client
+ &man.sdpcontrol.8; are included in the standard &os; installation.
+ The following example shows how to perform a SDP browse query.</para>
+
+ <screen>&prompt.user; <userinput>sdpcontrol -a 00:01:03:fc:6e:ec browse</userinput>
+Record Handle: 00000000
+Service Class ID List:
+ Service Discovery Server (0x1000)
+Protocol Descriptor List:
+ L2CAP (0x0100)
+ Protocol specific parameter #1: u/int/uuid16 1
+ Protocol specific parameter #2: u/int/uuid16 1
+
+Record Handle: 0x00000001
+Service Class ID List:
+ Browse Group Descriptor (0x1001)
+
+Record Handle: 0x00000002
+Service Class ID List:
+ LAN Access Using PPP (0x1102)
+Protocol Descriptor List:
+ L2CAP (0x0100)
+ RFCOMM (0x0003)
+ Protocol specific parameter #1: u/int8/bool 1
+Bluetooth Profile Descriptor List:
+ LAN Access Using PPP (0x1102) ver. 1.0
+</screen>
+
+ <para>... and so on. Note that each service has a list of attributes
+ (RFCOMM channel for example). Depending on the service you might need to
+ make a note of some of the attributes. Some Bluetooth implementations do
+ not support service browsing and may return an empty list. In this case
+ it is possible to search for the specific service. The example below
+ shows how to search for the OBEX Object Push (OPUSH) service:</para>
+
+ <screen>&prompt.user; <userinput>sdpcontrol -a 00:01:03:fc:6e:ec search OPUSH</userinput></screen>
+
+ <para>Offering services on &os; to Bluetooth clients is done with the
+ &man.sdpd.8; server. On &os; 5.5, 6.1 and newer, the following line can
+ be added to the <filename>/etc/rc.conf</filename> file:</para>
+
+ <programlisting>sdpd_enable="YES"</programlisting>
+
+ <para>Then the <application>sdpd</application> daemon can be started with:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/sdpd start</userinput></screen>
+
+ <para>On &os; 6.0, and on &os; 5.X before 5.5,
+ <application>sdpd</application> is not integrated into the system
+ startup scripts. It has to be started manually with:</para>
+
+ <screen>&prompt.root; <userinput>sdpd</userinput></screen>
+
+ <para>The local server application that wants to provide Bluetooth
+ service to the remote clients will register service with the local
+ SDP daemon. The example of such application is &man.rfcomm.pppd.8;.
+ Once started it will register Bluetooth LAN service with the local
+ SDP daemon.</para>
+
+ <para>The list of services registered with the local SDP server can be
+ obtained by issuing SDP browse query via local control channel:</para>
+
+ <screen>&prompt.root; <userinput>sdpcontrol -l browse</userinput></screen>
+
+ </sect2>
+
+ <sect2>
+ <title>Dial-Up Networking (DUN) and Network Access with PPP (LAN)
+ Profiles</title>
+
+ <para>The Dial-Up Networking (DUN) profile is mostly used with modems
+ and cellular phones. The scenarios covered by this profile are the
+ following:</para>
+
+ <itemizedlist>
+ <listitem><para>use of a cellular phone or modem by a computer as
+ a wireless modem for connecting to a dial-up Internet access server,
+ or using other dial-up services;</para></listitem>
+
+ <listitem><para>use of a cellular phone or modem by a computer to
+ receive data calls.</para></listitem>
+ </itemizedlist>
+
+ <para>Network Access with PPP (LAN) profile can be used in the following
+ situations:</para>
+
+ <itemizedlist>
+ <listitem><para>LAN access for a single Bluetooth device;
+ </para></listitem>
+
+ <listitem><para>LAN access for multiple Bluetooth devices;
+ </para></listitem>
+
+ <listitem><para>PC to PC (using PPP networking over serial cable
+ emulation).</para></listitem>
+ </itemizedlist>
+
+ <para>In &os; both profiles are implemented with &man.ppp.8; and
+ &man.rfcomm.pppd.8; - a wrapper that converts RFCOMM Bluetooth
+ connection into something PPP can operate with. Before any profile
+ can be used, a new PPP label in the <filename>/etc/ppp/ppp.conf</filename>
+ must be created. Consult &man.rfcomm.pppd.8; manual page for examples.
+ </para>
+
+ <para>In the following example &man.rfcomm.pppd.8; will be used to open
+ RFCOMM connection to remote device with BD_ADDR 00:80:37:29:19:a4 on
+ DUN RFCOMM channel. The actual RFCOMM channel number will be obtained
+ from the remote device via SDP. It is possible to specify RFCOMM channel
+ by hand, and in this case &man.rfcomm.pppd.8; will not perform SDP
+ query. Use &man.sdpcontrol.8; to find out RFCOMM
+ channel on the remote device.</para>
+
+ <screen>&prompt.root; <userinput>rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup</userinput></screen>
+
+ <para>In order to provide Network Access with PPP (LAN) service the
+ &man.sdpd.8; server must be running. A new entry for LAN clients must
+ be created in the <filename>/etc/ppp/ppp.conf</filename> file. Consult
+ &man.rfcomm.pppd.8; manual page for examples. Finally, start RFCOMM PPP
+ server on valid RFCOMM channel number. The RFCOMM PPP server will
+ automatically register Bluetooth LAN service with the local SDP daemon.
+ The example below shows how to start RFCOMM PPP server.</para>
+
+ <screen>&prompt.root; <userinput>rfcomm_pppd -s -C 7 -l rfcomm-server</userinput></screen>
+
+ </sect2>
+
+ <indexterm><primary>OBEX</primary></indexterm>
+ <sect2>
+ <title>OBEX Object Push (OPUSH) Profile</title>
+ <para>OBEX is a widely used protocol for simple file transfers between
+ mobile devices. Its main use is in infrared communication, where it is
+ used for generic file transfers between notebooks or PDAs,
+ and for sending business cards or calendar entries between cellular
+ phones and other devices with PIM applications.</para>
+
+ <para>The OBEX server and client are implemented as a third-party package
+ <application>obexapp</application>, which is available as
+ <filename role="package">comms/obexapp</filename> port.</para>
+
+ <para>OBEX client is used to push and/or pull objects from the OBEX server.
+ An object can, for example, be a business card or an appointment.
+ The OBEX client can obtain RFCOMM channel number from the remote device
+ via SDP. This can be done by specifying service name instead of RFCOMM
+ channel number. Supported service names are: IrMC, FTRN and OPUSH.
+ It is possible to specify RFCOMM channel as a number. Below is an
+ example of an OBEX session, where device information object is pulled
+ from the cellular phone, and a new object (business card) is pushed
+ into the phone's directory.</para>
+
+ <screen>&prompt.user; <userinput>obexapp -a 00:80:37:29:19:a4 -C IrMC</userinput>
+obex&gt; get telecom/devinfo.txt devinfo-t39.txt
+Success, response: OK, Success (0x20)
+obex&gt; put new.vcf
+Success, response: OK, Success (0x20)
+obex&gt; di
+Success, response: OK, Success (0x20)</screen>
+
+ <para>In order to provide OBEX Object Push service,
+ &man.sdpd.8; server must be running. A root folder, where all incoming
+ objects will be stored, must be created. The default path to the root
+ folder is <filename>/var/spool/obex</filename>. Finally, start OBEX
+ server on valid RFCOMM channel number. The OBEX server will
+ automatically register OBEX Object Push service with the local SDP
+ daemon. The example below shows how to start OBEX server.</para>
+
+ <screen>&prompt.root; <userinput>obexapp -s -C 10</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Serial Port Profile (SPP)</title>
+ <para>The Serial Port Profile (SPP) allows Bluetooth devices to perform
+ RS232 (or similar) serial cable emulation. The scenario covered by this
+ profile deals with legacy applications using Bluetooth as a cable
+ replacement, through a virtual serial port abstraction.</para>
+
+ <para>The &man.rfcomm.sppd.1; utility implements the Serial Port profile.
+ A pseudo tty is used as a virtual serial port abstraction. The example
+ below shows how to connect to a remote device Serial Port service.
+ Note that you do not have to specify a RFCOMM channel -
+ &man.rfcomm.sppd.1; can obtain it from the remote device via SDP.
+ If you would like to override this, specify a RFCOMM channel on the
+ command line.</para>
+
+ <screen>&prompt.root; <userinput>rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6</userinput>
+rfcomm_sppd[94692]: Starting on /dev/ttyp6...</screen>
+
+ <para>Once connected, the pseudo tty can be used as serial port:</para>
+
+ <screen>&prompt.root; <userinput>cu -l ttyp6</userinput></screen>
+
+ </sect2>
+
+ <sect2>
+ <title>Troubleshooting</title>
+
+ <sect3>
+ <title>A remote device cannot connect</title>
+ <para>Some older Bluetooth devices do not support role switching.
+ By default, when &os; is accepting a new connection, it tries to
+ perform a role switch and become master. Devices, which do not
+ support this will not be able to connect. Note that role switching is
+ performed when a new connection is being established, so it is not
+ possible to ask the remote device if it does support role switching.
+ There is a HCI option to disable role switching on the local
+ side:</para>
+
+ <screen>&prompt.root; <userinput>hccontrol -n ubt0hci write_node_role_switch 0</userinput></screen>
+
+ </sect3>
+
+ <sect3>
+ <title>Something is going wrong, can I see what exactly is happening?</title>
+ <para>Yes, you can. Use the third-party package
+ <application>hcidump</application>, which is available as
+ <filename role="package">comms/hcidump</filename> port.
+ The <application>hcidump</application> utility is similar to
+ &man.tcpdump.1;. It can be used to display the content of the Bluetooth
+ packets on the terminal and to dump the Bluetooth packets to a
+ file.</para>
+ </sect3>
+
+ </sect2>
+
+ </sect1>
+
+ <sect1 id="network-bridging">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Steve</firstname>
+ <surname>Peterson</surname>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Bridging</title>
+
+ <sect2>
+ <title>Introduction</title>
+ <indexterm><primary>IP subnet</primary></indexterm>
+ <indexterm><primary>bridge</primary></indexterm>
+ <para>It is sometimes useful to divide one physical network
+ (such as an Ethernet segment) into two separate network
+ segments without having to create IP subnets and use a router
+ to connect the segments together. A device that connects two
+ networks together in this fashion is called a
+ <quote>bridge</quote>. A FreeBSD system with two network
+ interface cards can act as a bridge.</para>
+
+ <para>The bridge works by learning the MAC layer addresses
+ (Ethernet addresses) of the devices on each of its network interfaces.
+ It forwards traffic between two networks only when its source and
+ destination are on different networks.</para>
+
+ <para>In many respects, a bridge is like an Ethernet switch with very
+ few ports.</para>
+ </sect2>
+
+ <sect2>
+ <title>Situations Where Bridging Is Appropriate</title>
+
+ <para>There are two common situations in which a bridge is used
+ today.</para>
+
+ <sect3>
+ <title>High Traffic on a Segment</title>
+
+ <para>Situation one is where your physical network segment is
+ overloaded with traffic, but you do not want for whatever reason to
+ subnet the network and interconnect the subnets with a
+ router.</para>
+
+ <para>Let us consider an example of a newspaper where the Editorial and
+ Production departments are on the same subnetwork. The Editorial
+ users all use server <hostid>A</hostid> for file service, and the Production users
+ are on server <hostid>B</hostid>. An Ethernet network is used to connect all users together,
+ and high loads on the network are slowing things down.</para>
+
+ <para>If the Editorial users could be segregated on one
+ network segment and the Production users on another, the two
+ network segments could be connected with a bridge. Only the
+ network traffic destined for interfaces on the
+ <quote>other</quote> side of the bridge would be sent to the
+ other network, reducing congestion on each network
+ segment.</para>
+ </sect3>
+
+ <sect3>
+ <title>Filtering/Traffic Shaping Firewall</title>
+ <indexterm><primary>firewall</primary></indexterm>
+ <indexterm><primary>NAT</primary></indexterm>
+
+ <para>The second common situation is where firewall functionality is
+ needed without network address translation (NAT).</para>
+
+ <para>An example is a small company that is connected via DSL
+ or ISDN to their ISP. They have a 13 globally-accessible IP
+ addresses from their ISP and have 10 PCs on their network.
+ In this situation, using a router-based firewall is
+ difficult because of subnetting issues.</para>
+
+ <indexterm><primary>router</primary></indexterm>
+ <indexterm><primary>DSL</primary></indexterm>
+ <indexterm><primary>ISDN</primary></indexterm>
+ <para>A bridge-based firewall can be configured and dropped into the
+ path just downstream of their DSL/ISDN router without any IP
+ numbering issues.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Configuring a Bridge</title>
+
+ <sect3>
+ <title>Network Interface Card Selection</title>
+
+ <para>A bridge requires at least two network cards to function.
+ Unfortunately, not all network interface cards
+ support bridging. Read &man.bridge.4; for details on the cards that
+ are supported.</para>
+
+ <para>Install and test the two network cards before continuing.</para>
+ </sect3>
+
+ <sect3>
+ <title>Kernel Configuration Changes</title>
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>BRIDGE</secondary>
+ </indexterm>
+
+ <para>To enable kernel support for bridging, add the:</para>
+
+ <programlisting>options BRIDGE</programlisting>
+
+ <para>statement to your kernel configuration file, and rebuild your
+ kernel.</para>
+ </sect3>
+
+ <sect3>
+ <title>Firewall Support</title>
+ <indexterm><primary>firewall</primary></indexterm>
+ <para>If you are planning to use the bridge as a firewall, you
+ will need to add the <literal>IPFIREWALL</literal> option as
+ well. Read <xref linkend="firewalls"> for general
+ information on configuring the bridge as a firewall.</para>
+
+ <para>If you need to allow non-IP packets (such as ARP) to flow
+ through the bridge, there are three options available.
+ The first is to add the following option to the kernel and
+ rebuild:<para>
+
+ <programlisting>option IPFIREWALL_DEFAULT_TO_ACCEPT</programlisting>
+
+ <para>The second is to set the firewall type to <quote><literal>open</literal></quote> in the
+ <filename>rc.conf</filename> file:</para>
+
+ <programlisting>firewall_type="open"</programlisting>
+
+ <para>Note that these options will make the firewall seem completely
+ transparent; any packet or connection will be permitted by default.
+ This may require significant changes to the firewall ruleset.</para>
+
+ <para>The third option is to apply the following &man.ipfw.8;
+ rule:</para>
+
+ <screen>&prompt.root; <userinput>ipfw add allow mac-type arp layer2</userinput></screen>
+
+ <para>Or add it to the current firewall ruleset. This rule effectively
+ allows &man.arp.8; packets through, so it must be be applied near the
+ beginning of the ruleset for early evaluation.</para>
+ </sect3>
+
+ <sect3>
+ <title>Traffic Shaping Support</title>
+
+ <para>If you want to use the bridge as a traffic shaper, you will need
+ to add the <literal>DUMMYNET</literal> option to your kernel
+ configuration. Read &man.dummynet.4; for further
+ information.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Enabling the Bridge</title>
+
+ <para>Add the line:</para>
+
+ <programlisting>net.link.ether.bridge.enable=1</programlisting>
+
+ <para>to <filename>/etc/sysctl.conf</filename> to enable the bridge at
+ runtime, and the line:</para>
+
+ <programlisting>net.link.ether.bridge.config=<replaceable>if1</replaceable>,<replaceable>if2</replaceable></programlisting>
+
+ <para>to enable bridging on the specified interfaces (replace
+ <replaceable>if1</replaceable> and
+ <replaceable>if2</replaceable> with the names of your two
+ network interfaces). If you want the bridged packets to be
+ filtered by &man.ipfw.8;, you should add:</para>
+
+ <programlisting>net.link.ether.bridge.ipfw=1</programlisting>
+
+ <para>as well.</para>
+
+ <para>For versions prior to &os;&nbsp;5.2-RELEASE, use instead the following
+ lines:</para>
+
+ <programlisting>net.link.ether.bridge=1
+net.link.ether.bridge_cfg=<replaceable>if1</replaceable>,<replaceable>if2</replaceable>
+net.link.ether.bridge_ipfw=1</programlisting>
+
+ </sect2>
+
+ <sect2>
+ <title>Other Information</title>
+
+ <para>If you want to be able to &man.ssh.1; into the bridge from the network,
+ it is correct to assign one of the network cards an IP address. The
+ consensus is that assigning both cards an address is a bad
+ idea.</para>
+
+ <para>If you have multiple bridges on your network, there cannot be more
+ than one path between any two workstations. Technically, this means
+ that there is no support for spanning tree link management.</para>
+
+ <para>A bridge can add latency to your &man.ping.8; times, especially for
+ traffic from one segment to another.</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-diskless">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Jean-Fran&ccedil;ois</firstname>
+ <surname>Dock&egrave;s</surname>
+ <contrib>Updated by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Alex</firstname>
+ <surname>Dupre</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Diskless Operation</title>
+
+ <indexterm><primary>diskless workstation</primary></indexterm>
+ <indexterm><primary>diskless operation</primary></indexterm>
+
+ <para>A FreeBSD machine can boot over the network and operate without a
+ local disk, using file systems mounted from an <acronym>NFS</acronym> server. No system
+ modification is necessary, beyond standard configuration files.
+ Such a system is relatively easy to set up because all the necessary elements
+ are readily available:</para>
+ <itemizedlist>
+ <listitem>
+ <para>There are at least two possible methods to load the kernel over
+ the network:</para>
+ <itemizedlist>
+ <listitem>
+ <para><acronym>PXE</acronym>: The &intel; Preboot eXecution
+ Environment system is a form of smart boot ROM built into some
+ networking cards or motherboards. See &man.pxeboot.8; for more
+ details.</para>
+ </listitem>
+ <listitem>
+ <para>The <application>Etherboot</application>
+ port (<filename
+ role="package">net/etherboot</filename>) produces
+ ROM-able code to boot kernels over the network. The
+ code can be either burnt into a boot PROM on a network
+ card, or loaded from a local floppy (or hard) disk
+ drive, or from a running &ms-dos; system. Many network
+ cards are supported.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+
+ <listitem>
+ <para>A sample script
+ (<filename>/usr/share/examples/diskless/clone_root</filename>) eases
+ the creation and maintenance of the workstation's root file system
+ on the server. The script will probably require a little
+ customization but it will get you started very quickly.</para>
+ </listitem>
+
+ <listitem>
+ <para>Standard system startup files exist in <filename>/etc</filename>
+ to detect and support a diskless system startup.</para>
+ </listitem>
+
+ <listitem>
+ <para>Swapping, if needed, can be done either to an <acronym>NFS</acronym> file or to
+ a local disk.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>There are many ways to set up diskless workstations. Many
+ elements are involved, and most can be customized to suit local
+ taste. The following will describe variations on the setup of a complete system,
+ emphasizing simplicity and compatibility with the
+ standard FreeBSD startup scripts. The system described has the
+ following characteristics:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The diskless workstations use a shared
+ read-only <filename>/</filename> file system, and a shared
+ read-only <filename>/usr</filename>.</para>
+ <para>The root file system is a copy of a
+ standard FreeBSD root (typically the server's), with some
+ configuration files overridden by ones specific to diskless
+ operation or, possibly, to the workstation they belong to.</para>
+ <para>The parts of the root which have to be
+ writable are overlaid with &man.md.4; file systems. Any changes
+ will be lost when the system reboots.</para>
+ </listitem>
+ <listitem>
+ <para>The kernel is transferred and loaded either with
+ <application>Etherboot</application> or <acronym>PXE</acronym>
+ as some situations may mandate the use of either method.</para>
+ </listitem>
+ </itemizedlist>
+
+ <caution><para>As described, this system is insecure. It should
+ live in a protected area of a network, and be untrusted by
+ other hosts.</para>
+ </caution>
+
+ <para>All the information in this section has been tested
+ using &os; 5.2.1-RELEASE.</para>
+
+ <sect2>
+ <title>Background Information</title>
+
+ <para>Setting up diskless workstations is both relatively
+ straightforward and prone to errors. These are sometimes
+ difficult to diagnose for a number of reasons. For example:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Compile time options may determine different behaviors at
+ runtime.</para>
+ </listitem>
+
+ <listitem>
+ <para>Error messages are often cryptic or totally absent.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>In this context, having some knowledge of the background
+ mechanisms involved is very useful to solve the problems that
+ may arise.</para>
+
+ <para>Several operations need to be performed for a successful
+ bootstrap:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The machine needs to obtain initial parameters such as its IP
+ address, executable filename, server name, root path. This is
+ done using the <acronym>DHCP</acronym> or BOOTP protocols.
+ <acronym>DHCP</acronym> is a compatible extension of BOOTP, and
+ uses the same port numbers and basic packet format.</para>
+
+ <para>It is possible to configure a system to use only BOOTP.
+ The &man.bootpd.8; server program is included in the base &os;
+ system.</para>
+
+ <para>However, <acronym>DHCP</acronym> has a number of advantages
+ over BOOTP (nicer configuration files, possibility of using
+ <acronym>PXE</acronym>, plus many others not directly related to
+ diskless operation), and we will describe mainly a
+ <acronym>DHCP</acronym> configuration, with equivalent examples
+ using &man.bootpd.8; when possible. The sample configuration will
+ use the <application>ISC DHCP</application> software package
+ (release 3.0.1.r12 was installed on the test server).</para>
+ </listitem>
+
+ <listitem>
+ <para>The machine needs to transfer one or several programs to local
+ memory. Either <acronym>TFTP</acronym> or <acronym>NFS</acronym>
+ are used. The choice between <acronym>TFTP</acronym> and
+ <acronym>NFS</acronym> is a compile time option in several places.
+ A common source of error is to specify filenames for the wrong
+ protocol: <acronym>TFTP</acronym> typically transfers all files from
+ a single directory on the server, and would expect filenames
+ relative to this directory. <acronym>NFS</acronym> needs absolute
+ file paths.</para>
+ </listitem>
+
+ <listitem>
+ <para>The possible intermediate bootstrap programs and the kernel
+ need to be initialized and executed. There are several important
+ variations in this area:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><acronym>PXE</acronym> will load &man.pxeboot.8;, which is
+ a modified version of the &os; third stage loader. The
+ &man.loader.8; will obtain most parameters necessary to system
+ startup, and leave them in the kernel environment before
+ transferring control. It is possible to use a
+ <filename>GENERIC</filename> kernel in this case.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>Etherboot</application>, will directly
+ load the kernel, with less preparation. You will need to
+ build a kernel with specific options.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><acronym>PXE</acronym> and <application>Etherboot</application>
+ work equally well; however, because kernels
+ normally let the &man.loader.8; do more work for them,
+ <acronym>PXE</acronym> is the preferred method.</para>
+
+ <para>If your <acronym>BIOS</acronym> and network cards support
+ <acronym>PXE</acronym>, you should probably use it.</para>
+ </listitem>
+
+ <listitem>
+ <para>Finally, the machine needs to access its file systems.
+ <acronym>NFS</acronym> is used in all cases.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>See also &man.diskless.8; manual page.</para>
+ </sect2>
+
+ <sect2>
+ <title>Setup Instructions</title>
+
+ <sect3>
+ <title>Configuration Using <application>ISC DHCP</application></title>
+ <indexterm>
+ <primary>DHCP</primary>
+ <secondary>diskless operation</secondary>
+ </indexterm>
+
+ <para>The <application>ISC DHCP</application> server can answer
+ both BOOTP and <acronym>DHCP</acronym> requests.</para>
+
+ <para><application>ISC DHCP
+ 3.0</application> is not part of the base
+ system. You will first need to install the
+ <filename role="package">net/isc-dhcp3-server</filename> port or the
+ corresponding package.</para>
+
+ <para>Once <application>ISC DHCP</application> is installed, it
+ needs a configuration file to run (normally named
+ <filename>/usr/local/etc/dhcpd.conf</filename>). Here follows
+ a commented example, where host <hostid>margaux</hostid>
+ uses <application>Etherboot</application> and host
+ <hostid>corbieres</hostid> uses <acronym>PXE</acronym>:</para>
+
+ <programlisting>
+default-lease-time 600;
+max-lease-time 7200;
+authoritative;
+
+option domain-name "example.com";
+option domain-name-servers 192.168.4.1;
+option routers 192.168.4.1;
+
+subnet 192.168.4.0 netmask 255.255.255.0 {
+ use-host-decl-names on; <co id="co-dhcp-host-name">
+ option subnet-mask 255.255.255.0;
+ option broadcast-address 192.168.4.255;
+
+ host margaux {
+ hardware ethernet 01:23:45:67:89:ab;
+ fixed-address margaux.example.com;
+ next-server 192.168.4.4; <co id="co-dhcp-next-server">
+ filename "/data/misc/kernel.diskless"; <co id="co-dhcp-filename">
+ option root-path "192.168.4.4:/data/misc/diskless"; <co id="co-dhcp-root-path">
+ }
+ host corbieres {
+ hardware ethernet 00:02:b3:27:62:df;
+ fixed-address corbieres.example.com;
+ next-server 192.168.4.4;
+ filename "pxeboot";
+ option root-path "192.168.4.4:/data/misc/diskless";
+ }
+}
+ </programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-dhcp-host-name"><para>This option tells
+ <application>dhcpd</application> to send the value in the
+ <literal>host</literal> declarations as the hostname for the
+ diskless host. An alternate way would be to add an
+ <literal>option host-name
+ <replaceable>margaux</replaceable></literal> inside the
+ <literal>host</literal> declarations.</para>
+ </callout>
+
+ <callout arearefs="co-dhcp-next-server"><para>The
+ <literal>next-server</literal> directive designates
+ the <acronym>TFTP</acronym> or <acronym>NFS</acronym> server to
+ use for loading loader or kernel file (the default is to use
+ the same host as the
+ <acronym>DHCP</acronym> server).</para>
+ </callout>
+
+ <callout arearefs="co-dhcp-filename"><para>The
+ <literal>filename</literal> directive defines the file that
+ <application>Etherboot</application> or <acronym>PXE</acronym>
+ will load for the next execution step. It must be specified
+ according to the transfer method used.
+ <application>Etherboot</application> can be compiled to use
+ <acronym>NFS</acronym> or <acronym>TFTP</acronym>. The &os;
+ port configures <acronym>NFS</acronym> by default.
+ <acronym>PXE</acronym> uses <acronym>TFTP</acronym>, which is
+ why a relative filename is used here (this may depend on the
+ <acronym>TFTP</acronym> server configuration, but would be
+ fairly typical). Also, <acronym>PXE</acronym> loads
+ <filename>pxeboot</filename>, not the kernel. There are other
+ interesting possibilities, like loading
+ <filename>pxeboot</filename> from a &os; CD-ROM
+ <filename role="directory">/boot</filename> directory (as
+ &man.pxeboot.8; can load a <filename>GENERIC</filename> kernel,
+ this makes it possible to use <acronym>PXE</acronym> to boot
+ from a remote CD-ROM).</para>
+ </callout>
+
+ <callout arearefs="co-dhcp-root-path"><para>The
+ <literal>root-path</literal> option defines the path to
+ the root file system, in usual <acronym>NFS</acronym> notation.
+ When using <acronym>PXE</acronym>, it is possible to leave off
+ the host's IP as long as you do not enable the kernel option
+ BOOTP. The <acronym>NFS</acronym> server will then be
+ the same as the <acronym>TFTP</acronym> one.</para>
+ </callout>
+ </calloutlist>
+
+ </sect3>
+ <sect3>
+ <title>Configuration Using BOOTP</title>
+ <indexterm>
+ <primary>BOOTP</primary>
+ <secondary>diskless operation</secondary>
+ </indexterm>
+
+ <para>Here follows an equivalent <application>bootpd</application>
+ configuration (reduced to one client). This would be found in
+ <filename>/etc/bootptab</filename>.</para>
+
+ <para>Please note that <application>Etherboot</application>
+ must be compiled with the non-default option
+ <literal>NO_DHCP_SUPPORT</literal> in order to use BOOTP,
+ and that <acronym>PXE</acronym> <emphasis>needs</emphasis> <acronym>DHCP</acronym>. The only
+ obvious advantage of <application>bootpd</application> is
+ that it exists in the base system.</para>
+
+ <programlisting>
+.def100:\
+ :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
+ :sm=255.255.255.0:\
+ :ds=192.168.4.1:\
+ :gw=192.168.4.1:\
+ :hd="/tftpboot":\
+ :bf="/kernel.diskless":\
+ :rp="192.168.4.4:/data/misc/diskless":
+
+margaux:ha=0123456789ab:tc=.def100
+ </programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Preparing a Boot Program with
+ <application>Etherboot</application></title>
+
+ <indexterm>
+ <primary>Etherboot</primary>
+ </indexterm>
+
+ <para><ulink url="http://etherboot.sourceforge.net">Etherboot's Web
+ site</ulink> contains
+ <ulink url="http://etherboot.sourceforge.net/doc/html/userman/t1.html">
+ extensive documentation</ulink> mainly intended for Linux
+ systems, but nonetheless containing useful information. The
+ following will just outline how you would use
+ <application>Etherboot</application> on a FreeBSD
+ system.</para>
+
+ <para>You must first install the <filename
+ role="package">net/etherboot</filename> package or port.</para>
+
+ <para>You can change the <application>Etherboot</application>
+ configuration (i.e. to use <acronym>TFTP</acronym> instead of
+ <acronym>NFS</acronym>) by editing the <filename>Config</filename>
+ file in the <application>Etherboot</application> source
+ directory.</para>
+
+ <para>For our setup, we shall use a boot floppy. For other methods
+ (PROM, or &ms-dos; program), please refer to the
+ <application>Etherboot</application> documentation.</para>
+
+ <para>To make a boot floppy, insert a floppy in the drive on the
+ machine where you installed <application>Etherboot</application>,
+ then change your current directory to the <filename>src</filename>
+ directory in the <application>Etherboot</application> tree and
+ type:</para>
+
+ <screen>
+&prompt.root; <userinput>gmake bin32/<replaceable>devicetype</replaceable>.fd0</userinput>
+ </screen>
+
+ <para><replaceable>devicetype</replaceable> depends on the type of
+ the Ethernet card in the diskless workstation. Refer to the
+ <filename>NIC</filename> file in the same directory to determine the
+ right <replaceable>devicetype</replaceable>.</para>
+
+ </sect3>
+
+ <sect3>
+ <title>Booting with <acronym>PXE</acronym></title>
+
+ <para>By default, the &man.pxeboot.8; loader loads the kernel via
+ <acronym>NFS</acronym>. It can be compiled to use
+ <acronym>TFTP</acronym> instead by specifying the
+ <literal>LOADER_TFTP_SUPPORT</literal> option in
+ <filename>/etc/make.conf</filename>. See the comments in
+ <filename>/usr/share/examples/etc/make.conf</filename>
+ for instructions.</para>
+
+ <para>There are two other <filename>make.conf</filename>
+ options which may be useful for setting up a serial console diskless
+ machine: <literal>BOOT_PXELDR_PROBE_KEYBOARD</literal>, and
+ <literal>BOOT_PXELDR_ALWAYS_SERIAL</literal>.</para>
+
+ <para>To use <acronym>PXE</acronym> when the machine starts, you will
+ usually need to select the <literal>Boot from network</literal>
+ option in your <acronym>BIOS</acronym> setup, or type a function key
+ during the PC initialization.</para>
+ </sect3>
+
+ <sect3>
+ <title>Configuring the <acronym>TFTP</acronym> and <acronym>NFS</acronym> Servers</title>
+
+ <indexterm>
+ <primary>TFTP</primary>
+ <secondary>diskless operation</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>NFS</primary>
+ <secondary>diskless operation</secondary>
+ </indexterm>
+
+ <para>If you are using <acronym>PXE</acronym> or
+ <application>Etherboot</application> configured to use
+ <acronym>TFTP</acronym>, you need to enable
+ <application>tftpd</application> on the file server:</para>
+ <procedure>
+ <step>
+ <para>Create a directory from which <application>tftpd</application>
+ will serve the files, e.g. <filename>/tftpboot</filename>.</para>
+ </step>
+
+ <step>
+ <para>Add this line to your
+ <filename>/etc/inetd.conf</filename>:</para>
+
+ <programlisting>tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpboot</programlisting>
+
+ <note><para>It appears that at least some <acronym>PXE</acronym> versions want
+ the <acronym>TCP</acronym> version of <acronym>TFTP</acronym>. In this case, add a second line,
+ replacing <literal>dgram udp</literal> with <literal>stream
+ tcp</literal>.</para>
+ </note>
+ </step>
+ <step>
+ <para>Tell <application>inetd</application> to reread its configuration
+ file. The <option>inetd_enable="YES"</option> must be in
+ the <filename>/etc/rc.conf</filename> file for this
+ command to execute correctly:</para>
+ <screen>&prompt.root; <userinput>/etc/rc.d/inetd restart</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>You can place the <filename>tftpboot</filename>
+ directory anywhere on the server. Make sure that the
+ location is set in both <filename>inetd.conf</filename> and
+ <filename>dhcpd.conf</filename>.</para>
+
+ <para>In all cases, you also need to enable <acronym>NFS</acronym> and export the
+ appropriate file system on the <acronym>NFS</acronym> server.</para>
+
+ <procedure>
+ <step>
+ <para>Add this to <filename>/etc/rc.conf</filename>:</para>
+ <programlisting>nfs_server_enable="YES"</programlisting>
+ </step>
+
+ <step>
+ <para>Export the file system where the diskless root directory
+ is located by adding the following to
+ <filename>/etc/exports</filename> (adjust the volume mount
+ point and replace <replaceable>margaux corbieres</replaceable>
+ with the names of the diskless workstations):</para>
+
+ <programlisting><replaceable>/data/misc</replaceable> -alldirs -ro <replaceable>margaux corbieres</replaceable></programlisting>
+ </step>
+ <step>
+ <para>Tell <application>mountd</application> to reread its configuration
+ file. If you actually needed to enable <acronym>NFS</acronym> in
+ <filename>/etc/rc.conf</filename>
+ at the first step, you probably want to reboot instead.</para>
+ <screen>&prompt.root; <userinput>/etc/rc.d/mountd restart</userinput></screen>
+ </step>
+ </procedure>
+
+ </sect3>
+
+ <sect3>
+ <title>Building a Diskless Kernel</title>
+
+ <indexterm>
+ <primary>diskless operation</primary>
+ <secondary>kernel configuration</secondary>
+ </indexterm>
+
+ <para>If using <application>Etherboot</application>, you need to
+ create a kernel configuration file for the diskless client
+ with the following options (in addition to the usual ones):</para>
+
+ <programlisting>
+options BOOTP # Use BOOTP to obtain IP address/hostname
+options BOOTP_NFSROOT # NFS mount root file system using BOOTP info
+ </programlisting>
+
+ <para>You may also want to use <literal>BOOTP_NFSV3</literal>,
+ <literal>BOOT_COMPAT</literal> and <literal>BOOTP_WIRED_TO</literal>
+ (refer to <filename>NOTES</filename>).</para>
+
+ <para>These option names are historical and slightly misleading as
+ they actually enable indifferent use of <acronym>DHCP</acronym> and
+ BOOTP inside the kernel (it is also possible to force strict BOOTP
+ or <acronym>DHCP</acronym> use).</para>
+
+ <para>Build the kernel (see <xref linkend="kernelconfig">),
+ and copy it to the place specified
+ in <filename>dhcpd.conf</filename>.</para>
+
+ <note>
+ <para>When using <acronym>PXE</acronym>, building a kernel with the
+ above options is not strictly necessary (though suggested).
+ Enabling them will cause more <acronym>DHCP</acronym> requests to be
+ issued during kernel startup, with a small risk of inconsistency
+ between the new values and those retrieved by &man.pxeboot.8; in some
+ special cases. The advantage of using them is that the host name
+ will be set as a side effect. Otherwise you will need to set the
+ host name by another method, for example in a client-specific
+ <filename>rc.conf</filename> file.</para>
+ </note>
+
+ <note>
+ <para>In order to be loadable with
+ <application>Etherboot</application>, a kernel needs to have
+ the device hints compiled in. You would typically set the
+ following option in the configuration file (see the
+ <filename>NOTES</filename> configuration comments file):</para>
+
+ <programlisting>hints "GENERIC.hints"</programlisting>
+ </note>
+
+ </sect3>
+
+ <sect3>
+ <title>Preparing the Root Filesystem</title>
+
+ <indexterm>
+ <primary>root file system</primary>
+ <secondary>diskless operation</secondary>
+ </indexterm>
+
+ <para>You need to create a root file system for the diskless
+ workstations, in the location listed as
+ <literal>root-path</literal> in
+ <filename>dhcpd.conf</filename>.</para>
+
+ <sect4>
+ <title>Using <command>make world</command> to populate root</title>
+
+ <para>This method is quick and
+ will install a complete virgin system (not only the root file system)
+ into <envar>DESTDIR</envar>.
+ All you have to do is simply execute the following script:</para>
+
+ <programlisting>#!/bin/sh
+export DESTDIR=/data/misc/diskless
+mkdir -p ${DESTDIR}
+cd /usr/src; make buildworld &amp;&amp; make buildkernel
+cd /usr/src/etc; make distribution</programlisting>
+
+ <para>Once done, you may need to customize your
+ <filename>/etc/rc.conf</filename> and
+ <filename>/etc/fstab</filename> placed into
+ <envar>DESTDIR</envar> according to your needs.</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Configuring Swap</title>
+
+ <para>If needed, a swap file located on the server can be
+ accessed via <acronym>NFS</acronym>.</para>
+
+ <sect4>
+ <title><acronym>NFS</acronym> Swap</title>
+
+ <para>The kernel does not support enabling <acronym>NFS</acronym>
+ swap at boot time. Swap must be enabled by the startup scripts,
+ by mounting a writable file system and creating and enabling a
+ swap file. To create a swap file of appropriate size, you can do
+ like this:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>/path/to/swapfile</replaceable> bs=1k count=1 oseek=<replaceable>100000</replaceable></userinput></screen>
+
+ <para>To enable it you have to add the following line to your
+ <filename>rc.conf</filename>:</para>
+
+ <programlisting>swapfile=<replaceable>/path/to/swapfile</replaceable></programlisting>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Miscellaneous Issues</title>
+
+
+ <sect4>
+ <title>Running with a Read-only <filename>/usr</filename></title>
+
+ <indexterm>
+ <primary>diskless operation</primary>
+ <secondary>/usr read-only</secondary>
+ </indexterm>
+
+ <para>If the diskless workstation is configured to run X, you
+ will have to adjust the <application>XDM</application> configuration file, which puts
+ the error log on <filename>/usr</filename> by default.</para>
+ </sect4>
+ <sect4>
+ <title>Using a Non-FreeBSD Server</title>
+
+ <para>When the server for the root file system is not running FreeBSD,
+ you will have to create the root file system on a
+ FreeBSD machine, then copy it to its destination, using
+ <command>tar</command> or <command>cpio</command>.</para>
+ <para>In this situation, there are sometimes
+ problems with the special files in <filename>/dev</filename>,
+ due to differing major/minor integer sizes. A solution to this
+ problem is to export a directory from the non-FreeBSD server,
+ mount this directory onto a FreeBSD machine, and
+ use &man.devfs.5; to allocate device nodes transparently for
+ the user.</para>
+
+ </sect4>
+
+ </sect3>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-isdn">
+ <title>ISDN</title>
+
+ <indexterm>
+ <primary>ISDN</primary>
+ </indexterm>
+
+ <para>A good resource for information on ISDN technology and hardware is
+ <ulink url="http://www.alumni.caltech.edu/~dank/isdn/">Dan Kegel's ISDN
+ Page</ulink>.</para>
+
+ <para>A quick simple road map to ISDN follows:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>If you live in Europe you might want to investigate the ISDN card
+ section.</para>
+ </listitem>
+
+ <listitem>
+ <para>If you are planning to use ISDN primarily to connect to the
+ Internet with an Internet Provider on a dial-up non-dedicated basis,
+ you might look into Terminal Adapters. This will give you the
+ most flexibility, with the fewest problems, if you change
+ providers.</para>
+ </listitem>
+
+ <listitem>
+ <para>If you are connecting two LANs together, or connecting to the
+ Internet with a dedicated ISDN connection, you might consider
+ the stand alone router/bridge option.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Cost is a significant factor in determining what solution you will
+ choose. The following options are listed from least expensive to most
+ expensive.</para>
+
+ <sect2 id="network-isdn-cards">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Hellmuth</firstname>
+ <surname>Michaelis</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+ <title>ISDN Cards</title>
+
+ <indexterm>
+ <primary>ISDN</primary>
+ <secondary>cards</secondary>
+ </indexterm>
+
+ <para>FreeBSD's ISDN implementation supports only the DSS1/Q.931
+ (or Euro-ISDN) standard using passive cards. Some active cards
+ are supported where the firmware
+ also supports other signaling protocols; this also includes the
+ first supported Primary Rate (PRI) ISDN card.</para>
+
+ <para>The <application>isdn4bsd</application> software allows you to connect
+ to other ISDN routers using either IP over raw HDLC or by using
+ synchronous PPP: either by using kernel PPP with <literal>isppp</literal>, a
+ modified &man.sppp.4; driver, or by using userland &man.ppp.8;. By using
+ userland &man.ppp.8;, channel bonding of two or more ISDN
+ B-channels is possible. A telephone answering machine
+ application is also available as well as many utilities such as
+ a software 300 Baud modem.</para>
+
+ <para>Some growing number of PC ISDN cards are supported under
+ FreeBSD and the reports show that it is successfully used all
+ over Europe and in many other parts of the world.</para>
+
+ <para>The passive ISDN cards supported are mostly the ones with
+ the Infineon (formerly Siemens) ISAC/HSCX/IPAC ISDN chipsets,
+ but also ISDN cards with chips from Cologne Chip (ISA bus only),
+ PCI cards with Winbond W6692 chips, some cards with the
+ Tiger300/320/ISAC chipset combinations and some vendor specific
+ chipset based cards such as the AVM Fritz!Card PCI V.1.0 and the
+ AVM Fritz!Card PnP.</para>
+
+ <para>Currently the active supported ISDN cards are the AVM B1
+ (ISA and PCI) BRI cards and the AVM T1 PCI PRI cards.</para>
+
+ <para>For documentation on <application>isdn4bsd</application>,
+ have a look at <filename>/usr/share/examples/isdn/</filename>
+ directory on your FreeBSD system or at the <ulink
+ url="http://www.freebsd-support.de/i4b/">homepage of
+ isdn4bsd</ulink> which also has pointers to hints, erratas and
+ much more documentation such as the <ulink
+ url="http://people.FreeBSD.org/~hm/">isdn4bsd
+ handbook</ulink>.</para>
+
+ <para>In case you are interested in adding support for a
+ different ISDN protocol, a currently unsupported ISDN PC card or
+ otherwise enhancing <application>isdn4bsd</application>, please
+ get in touch with &a.hm;.</para>
+
+ <para>For questions regarding the installation, configuration
+ and troubleshooting <application>isdn4bsd</application>, a
+ &a.isdn.name; mailing list is available.</para>
+ </sect2>
+
+ <sect2>
+ <title>ISDN Terminal Adapters</title>
+
+ <para>Terminal adapters (TA), are to ISDN what modems are to regular
+ phone lines.</para>
+ <indexterm><primary>modem</primary></indexterm>
+ <para>Most TA's use the standard Hayes modem AT command set, and can be
+ used as a drop in replacement for a modem.</para>
+
+ <para>A TA will operate basically the same as a modem except connection
+ and throughput speeds will be much faster than your old modem. You
+ will need to configure <link linkend="ppp">PPP</link> exactly the same
+ as for a modem setup. Make sure you set your serial speed as high as
+ possible.</para>
+ <indexterm><primary>PPP</primary></indexterm>
+ <para>The main advantage of using a TA to connect to an Internet
+ Provider is that you can do Dynamic PPP. As IP address space becomes
+ more and more scarce, most providers are not willing to provide you
+ with a static IP anymore. Most stand-alone routers are not able to
+ accommodate dynamic IP allocation.</para>
+
+ <para>TA's completely rely on the PPP daemon that you are running for
+ their features and stability of connection. This allows you to
+ upgrade easily from using a modem to ISDN on a FreeBSD machine, if you
+ already have PPP set up. However, at the same time any problems you
+ experienced with the PPP program and are going to persist.</para>
+
+ <para>If you want maximum stability, use the kernel <link
+ linkend="ppp">PPP</link> option, not the <link
+ linkend="userppp">userland PPP</link>.</para>
+
+ <para>The following TA's are known to work with FreeBSD:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Motorola BitSurfer and Bitsurfer Pro</para>
+ </listitem>
+
+ <listitem>
+ <para>Adtran</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Most other TA's will probably work as well, TA vendors try to make
+ sure their product can accept most of the standard modem AT command
+ set.</para>
+
+ <para>The real problem with external TA's is that, like modems,
+ you need a good serial card in your computer.</para>
+
+ <para>You should read the <ulink
+ url="&url.articles.serial-uart;/index.html">FreeBSD Serial
+ Hardware</ulink> tutorial for a detailed understanding of
+ serial devices, and the differences between asynchronous and
+ synchronous serial ports.</para>
+
+ <para>A TA running off a standard PC serial port (asynchronous) limits
+ you to 115.2&nbsp;Kbs, even though you have a 128&nbsp;Kbs connection.
+ To fully utilize the 128&nbsp;Kbs that ISDN is capable of,
+ you must move the TA to a synchronous serial card.</para>
+
+ <para>Do not be fooled into buying an internal TA and thinking you have
+ avoided the synchronous/asynchronous issue. Internal TA's simply have
+ a standard PC serial port chip built into them. All this will do is
+ save you having to buy another serial cable and find another empty
+ electrical socket.</para>
+
+ <para>A synchronous card with a TA is at least as fast as a stand-alone
+ router, and with a simple 386 FreeBSD box driving it, probably more
+ flexible.</para>
+
+ <para>The choice of synchronous card/TA v.s. stand-alone router is largely a
+ religious issue. There has been some discussion of this in
+ the mailing lists. We suggest you search the <ulink
+ url="&url.base;/search/index.html">archives</ulink> for
+ the complete discussion.</para>
+ </sect2>
+
+ <sect2>
+ <title>Stand-alone ISDN Bridges/Routers</title>
+ <indexterm>
+ <primary>ISDN</primary>
+ <secondary>stand-alone bridges/routers</secondary>
+ </indexterm>
+ <para>ISDN bridges or routers are not at all specific to FreeBSD
+ or any other operating system. For a more complete
+ description of routing and bridging technology, please refer
+ to a networking reference book.</para>
+
+ <para>In the context of this section, the terms router and bridge will
+ be used interchangeably.</para>
+
+ <para>As the cost of low end ISDN routers/bridges comes down, it
+ will likely become a more and more popular choice. An ISDN
+ router is a small box that plugs directly into your local
+ Ethernet network, and manages its own connection to the other
+ bridge/router. It has built in software to communicate via
+ PPP and other popular protocols.</para>
+
+ <para>A router will allow you much faster throughput than a
+ standard TA, since it will be using a full synchronous ISDN
+ connection.</para>
+
+ <para>The main problem with ISDN routers and bridges is that
+ interoperability between manufacturers can still be a problem.
+ If you are planning to connect to an Internet provider, you
+ should discuss your needs with them.</para>
+
+ <para>If you are planning to connect two LAN segments together,
+ such as your home LAN to the office LAN, this is the simplest
+ lowest
+ maintenance solution. Since you are buying the equipment for
+ both sides of the connection you can be assured that the link
+ will work.</para>
+
+ <para>For example to connect a home computer or branch office
+ network to a head office network the following setup could be
+ used:</para>
+
+ <example>
+ <title>Branch Office or Home Network</title>
+
+ <indexterm><primary>10 base 2</primary></indexterm>
+ <para>Network uses a bus based topology with 10 base 2
+ Ethernet (<quote>thinnet</quote>). Connect router to network cable with
+ AUI/10BT transceiver, if necessary.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="advanced-networking/isdn-bus">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">---Sun workstation
+|
+---FreeBSD box
+|
+---Windows 95
+|
+Stand-alone router
+ |
+ISDN BRI line</literallayout>
+ </textobject>
+
+ <textobject>
+ <phrase>10 Base 2 Ethernet</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>If your home/branch office is only one computer you can use a
+ twisted pair crossover cable to connect to the stand-alone router
+ directly.</para>
+ </example>
+
+ <example>
+ <title>Head Office or Other LAN</title>
+
+ <indexterm><primary>10 base T</primary></indexterm>
+ <para>Network uses a star topology with 10 base T Ethernet
+ (<quote>Twisted Pair</quote>).</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="advanced-networking/isdn-twisted-pair">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> -------Novell Server
+ | H |
+ | ---Sun
+ | |
+ | U ---FreeBSD
+ | |
+ | ---Windows 95
+ | B |
+ |___---Stand-alone router
+ |
+ ISDN BRI line</literallayout>
+ </textobject>
+
+ <textobject>
+ <phrase>ISDN Network Diagram</phrase>
+ </textobject>
+ </mediaobject>
+ </example>
+
+ <para>One large advantage of most routers/bridges is that they allow you
+ to have 2 <emphasis>separate independent</emphasis> PPP connections to
+ 2 separate sites at the <emphasis>same</emphasis> time. This is not
+ supported on most TA's, except for specific (usually expensive) models
+ that
+ have two serial ports. Do not confuse this with channel bonding, MPP,
+ etc.</para>
+
+ <para>This can be a very useful feature if, for example, you
+ have an dedicated ISDN connection at your office and would
+ like to tap into it, but do not want to get another ISDN line
+ at work. A router at the office location can manage a
+ dedicated B channel connection (64&nbsp;Kbps) to the Internet
+ and use the other B channel for a separate data connection.
+ The second B channel can be used for dial-in, dial-out or
+ dynamically bonding (MPP, etc.) with the first B channel for
+ more bandwidth.</para>
+
+ <indexterm><primary>IPX/SPX</primary></indexterm>
+ <para>An Ethernet bridge will also allow you to transmit more than just
+ IP traffic. You can also send IPX/SPX or whatever other protocols you
+ use.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-natd">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Network Address Translation</title>
+
+ <sect2 id="network-natoverview">
+ <title>Overview</title>
+ <indexterm>
+ <primary><application>natd</application></primary>
+ </indexterm>
+ <para>FreeBSD's Network Address Translation daemon, commonly known as
+ &man.natd.8; is a daemon that accepts incoming raw IP packets,
+ changes the source to the local machine and re-injects these packets
+ back into the outgoing IP packet stream. &man.natd.8; does this by changing
+ the source IP address and port such that when data is received back,
+ it is able to determine the original location of the data and forward
+ it back to its original requester.</para>
+ <indexterm><primary>Internet connection sharing</primary></indexterm>
+ <indexterm><primary>NAT</primary></indexterm>
+ <para>The most common use of NAT is to perform what is commonly known as
+ Internet Connection Sharing.</para>
+ </sect2>
+
+ <sect2 id="network-natsetup">
+ <title>Setup</title>
+ <para>Due to the diminishing IP space in IPv4, and the increased number
+ of users on high-speed consumer lines such as cable or DSL, people are
+ increasingly in need of an Internet Connection Sharing solution. The
+ ability to connect several computers online through one connection and
+ IP address makes &man.natd.8; a reasonable choice.</para>
+
+ <para>Most commonly, a user has a machine connected to a cable or DSL
+ line with one IP address and wishes to use this one connected computer to
+ provide Internet access to several more over a LAN.</para>
+
+ <para>To do this, the FreeBSD machine on the Internet must act as a
+ gateway. This gateway machine must have two NICs&mdash;one for connecting
+ to the Internet router, the other connecting to a LAN. All the
+ machines on the LAN are connected through a hub or switch.</para>
+
+ <note>
+ <para>There are many ways to get a LAN connected to the Internet
+ through a &os; gateway. This example will only cover a
+ gateway with at least two NICs.</para>
+ </note>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="advanced-networking/natd">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> _______ __________ ________
+ | | | | | |
+ | Hub |-----| Client B |-----| Router |----- Internet
+ |_______| |__________| |________|
+ |
+ ____|_____
+| |
+| Client A |
+|__________|</literallayout>
+ </textobject>
+
+ <textobject>
+ <phrase>Network Layout</phrase>
+ </textobject>
+ </mediaobject>
+
+ <para>A setup like this is commonly used to share an Internet
+ connection. One of the <acronym>LAN</acronym> machines is
+ connected to the Internet. The rest of the machines access
+ the Internet through that <quote>gateway</quote>
+ machine.</para>
+ </sect2>
+
+ <sect2 id="network-natdkernconfiguration">
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+ <title>Configuration</title>
+ <para>The following options must be in the kernel configuration
+ file:</para>
+ <programlisting>options IPFIREWALL
+options IPDIVERT</programlisting>
+
+ <para>Additionally, at choice, the following may also be suitable:</para>
+ <programlisting>options IPFIREWALL_DEFAULT_TO_ACCEPT
+options IPFIREWALL_VERBOSE</programlisting>
+
+ <para>The following must be in <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>gateway_enable="YES" <co id="co-natd-gateway-enable">
+firewall_enable="YES" <co id="co-natd-firewall-enable">
+firewall_type="OPEN" <co id="co-natd-firewall-type">
+natd_enable="YES"
+natd_interface="<replaceable>fxp0</replaceable>" <co id="co-natd-natd-interface">
+natd_flags="" <co id="co-natd-natd-flags"></programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-natd-gateway-enable">
+ <para>Sets up the machine to act as a gateway. Running
+ <command>sysctl net.inet.ip.forwarding=1</command> would
+ have the same effect.</para>
+ </callout>
+
+ <callout arearefs="co-natd-firewall-enable">
+ <para>Enables the firewall rules in
+ <filename>/etc/rc.firewall</filename> at boot.</para>
+ </callout>
+
+ <callout arearefs="co-natd-firewall-type">
+ <para>This specifies a predefined firewall ruleset that
+ allows anything in. See
+ <filename>/etc/rc.firewall</filename> for additional
+ types.</para>
+ </callout>
+
+ <callout arearefs="co-natd-natd-interface">
+ <para>Indicates which interface to forward packets through
+ (the interface connected to the Internet).</para>
+ </callout>
+
+ <callout arearefs="co-natd-natd-flags">
+ <para>Any additional configuration options passed to
+ &man.natd.8; on boot.</para>
+ </callout>
+ </calloutlist>
+
+ <para>Having the previous options defined in
+ <filename>/etc/rc.conf</filename> would run
+ <command>natd -interface fxp0</command> at boot. This can also
+ be run manually.</para>
+
+ <note>
+ <para>It is also possible to use a configuration file for
+ &man.natd.8; when there are too many options to pass. In this
+ case, the configuration file must be defined by adding the
+ following line to <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>natd_flags="-f /etc/natd.conf"</programlisting>
+
+ <para>The <filename>/etc/natd.conf</filename> file will
+ contain a list of configuration options, one per line. For
+ example the next section case would use the following
+ file:</para>
+
+ <programlisting>redirect_port tcp 192.168.0.2:6667 6667
+redirect_port tcp 192.168.0.3:80 80</programlisting>
+
+ <para>For more information about the configuration file,
+ consult the &man.natd.8; manual page about the
+ <option>-f</option> option.</para>
+ </note>
+
+ <para>Each machine and interface behind the LAN should be
+ assigned IP address numbers in the private network space as
+ defined by <ulink
+ url="ftp://ftp.isi.edu/in-notes/rfc1918.txt">RFC 1918</ulink>
+ and have a default gateway of the <application>natd</application> machine's internal IP
+ address.</para>
+
+ <para>For example, client <hostid>A</hostid> and
+ <hostid>B</hostid> behind the LAN have IP addresses of <hostid
+ role="ipaddr">192.168.0.2</hostid> and <hostid
+ role="ipaddr">192.168.0.3</hostid>, while the natd machine's
+ LAN interface has an IP address of <hostid
+ role="ipaddr">192.168.0.1</hostid>. Client <hostid>A</hostid>
+ and <hostid>B</hostid>'s default gateway must be set to that
+ of the <application>natd</application> machine, <hostid
+ role="ipaddr">192.168.0.1</hostid>. The <application>natd</application> machine's
+ external, or Internet interface does not require any special
+ modification for &man.natd.8; to work.</para>
+ </sect2>
+
+ <sect2 id="network-natdport-redirection">
+ <title>Port Redirection</title>
+
+ <para>The drawback with &man.natd.8; is that the LAN clients are not accessible
+ from the Internet. Clients on the LAN can make outgoing connections to
+ the world but cannot receive incoming ones. This presents a problem
+ if trying to run Internet services on one of the LAN client machines.
+ A simple way around this is to redirect selected Internet ports on the
+ <application>natd</application> machine to a LAN client.
+ </para>
+
+ <para>For example, an IRC server runs on client <hostid>A</hostid>, and a web server runs
+ on client <hostid>B</hostid>. For this to work properly, connections received on ports
+ 6667 (IRC) and 80 (web) must be redirected to the respective machines.
+ </para>
+
+ <para>The <option>-redirect_port</option> must be passed to
+ &man.natd.8; with the proper options. The syntax is as follows:</para>
+ <programlisting> -redirect_port proto targetIP:targetPORT[-targetPORT]
+ [aliasIP:]aliasPORT[-aliasPORT]
+ [remoteIP[:remotePORT[-remotePORT]]]</programlisting>
+
+ <para>In the above example, the argument should be:</para>
+
+ <programlisting> -redirect_port tcp 192.168.0.2:6667 6667
+ -redirect_port tcp 192.168.0.3:80 80</programlisting>
+
+ <para>
+ This will redirect the proper <emphasis>tcp</emphasis> ports to the
+ LAN client machines.
+ </para>
+
+ <para>The <option>-redirect_port</option> argument can be used to indicate port
+ ranges over individual ports. For example, <replaceable>tcp
+ 192.168.0.2:2000-3000 2000-3000</replaceable> would redirect
+ all connections received on ports 2000 to 3000 to ports 2000
+ to 3000 on client <hostid>A</hostid>.</para>
+
+ <para>These options can be used when directly running
+ &man.natd.8;, placed within the
+ <literal>natd_flags=""</literal> option in
+ <filename>/etc/rc.conf</filename>,
+ or passed via a configuration file.</para>
+
+ <para>For further configuration options, consult &man.natd.8;</para>
+ </sect2>
+
+ <sect2 id="network-natdaddress-redirection">
+ <title>Address Redirection</title>
+ <indexterm><primary>address redirection</primary></indexterm>
+ <para>Address redirection is useful if several IP addresses are
+ available, yet they must be on one machine. With this,
+ &man.natd.8; can assign each LAN client its own external IP address.
+ &man.natd.8; then rewrites outgoing packets from the LAN clients
+ with the proper external IP address and redirects
+ all traffic incoming on that particular IP address back to
+ the specific LAN client. This is also known as static NAT.
+ For example, the IP addresses <hostid role="ipaddr">128.1.1.1</hostid>,
+ <hostid role="ipaddr">128.1.1.2</hostid>, and
+ <hostid role="ipaddr">128.1.1.3</hostid> belong to the <application>natd</application> gateway
+ machine. <hostid role="ipaddr">128.1.1.1</hostid> can be used
+ as the <application>natd</application> gateway machine's external IP address, while
+ <hostid role="ipaddr">128.1.1.2</hostid> and
+ <hostid role="ipaddr">128.1.1.3</hostid> are forwarded back to LAN
+ clients <hostid>A</hostid> and <hostid>B</hostid>.</para>
+
+ <para>The <option>-redirect_address</option> syntax is as follows:</para>
+
+ <programlisting>-redirect_address localIP publicIP</programlisting>
+
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>localIP</entry>
+ <entry>The internal IP address of the LAN client.</entry>
+ </row>
+ <row>
+ <entry>publicIP</entry>
+ <entry>The external IP address corresponding to the LAN client.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>In the example, this argument would read:</para>
+
+ <programlisting>-redirect_address 192.168.0.2 128.1.1.2
+-redirect_address 192.168.0.3 128.1.1.3</programlisting>
+
+ <para>Like <option>-redirect_port</option>, these arguments are also placed within
+ the <literal>natd_flags=""</literal> option of <filename>/etc/rc.conf</filename>, or passed via a configuration file. With address
+ redirection, there is no need for port redirection since all data
+ received on a particular IP address is redirected.</para>
+
+ <para>The external IP addresses on the <application>natd</application> machine must be active and aliased
+ to the external interface. Look at &man.rc.conf.5; to do so.</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-plip">
+ <title>Parallel Line IP (PLIP)</title>
+
+ <indexterm><primary>PLIP</primary></indexterm>
+ <indexterm>
+ <primary>Parallel Line IP</primary>
+ <see>PLIP</see>
+ </indexterm>
+
+ <para>PLIP lets us run TCP/IP between parallel ports. It is
+ useful on machines without network cards, or to install on
+ laptops. In this section, we will discuss:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Creating a parallel (laplink) cable.</para>
+ </listitem>
+
+ <listitem>
+ <para>Connecting two computers with PLIP.</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2 id="network-create-parallel-cable">
+ <title>Creating a Parallel Cable</title>
+
+ <para>You can purchase a parallel cable at most computer supply
+ stores. If you cannot do that, or you just want to know how
+ it is done, the following table shows how to make one out of a normal parallel
+ printer cable.</para>
+
+ <table frame="none">
+ <title>Wiring a Parallel Cable for Networking</title>
+
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>A-name</entry>
+
+ <entry>A-End</entry>
+
+ <entry>B-End</entry>
+
+ <entry>Descr.</entry>
+
+ <entry>Post/Bit</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literallayout>DATA0
+-ERROR</literallayout></entry>
+
+ <entry><literallayout>2
+15</literallayout></entry>
+
+ <entry><literallayout>15
+2</literallayout></entry>
+
+ <entry>Data</entry>
+
+ <entry><literallayout>0/0x01
+1/0x08</literallayout></entry>
+ </row>
+
+ <row>
+ <entry><literallayout>DATA1
++SLCT</literallayout></entry>
+
+ <entry><literallayout>3
+13</literallayout></entry>
+
+ <entry><literallayout>13
+3</literallayout></entry>
+
+ <entry>Data</entry>
+
+ <entry><literallayout>0/0x02
+1/0x10</literallayout></entry>
+ </row>
+
+ <row>
+ <entry><literallayout>DATA2
++PE</literallayout></entry>
+
+ <entry><literallayout>4
+12</literallayout></entry>
+
+ <entry><literallayout>12
+4</literallayout></entry>
+
+ <entry>Data</entry>
+
+ <entry><literallayout>0/0x04
+1/0x20</literallayout></entry>
+ </row>
+
+ <row>
+ <entry><literallayout>DATA3
+-ACK</literallayout></entry>
+
+ <entry><literallayout>5
+10</literallayout></entry>
+
+ <entry><literallayout>10
+5</literallayout></entry>
+
+ <entry>Strobe</entry>
+
+ <entry><literallayout>0/0x08
+1/0x40</literallayout></entry>
+ </row>
+
+ <row>
+ <entry><literallayout>DATA4
+BUSY</literallayout></entry>
+
+ <entry><literallayout>6
+11</literallayout></entry>
+
+ <entry><literallayout>11
+6</literallayout></entry>
+
+ <entry>Data</entry>
+
+ <entry><literallayout>0/0x10
+1/0x80</literallayout></entry>
+ </row>
+
+ <row>
+ <entry>GND</entry>
+
+ <entry>18-25</entry>
+
+ <entry>18-25</entry>
+
+ <entry>GND</entry>
+
+ <entry>-</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2 id="network-plip-setup">
+ <title>Setting Up PLIP</title>
+
+ <para>First, you have to get a laplink cable.
+ Then, confirm that both computers have a kernel with &man.lpt.4; driver
+ support:</para>
+
+ <screen>&prompt.root; <userinput>grep lp /var/run/dmesg.boot</userinput>
+lpt0: &lt;Printer&gt; on ppbus0
+lpt0: Interrupt-driven port</screen>
+
+ <para>The parallel port must be an interrupt driven port,
+ you should have lines similar to the
+ following in your in the
+ <filename>/boot/device.hints</filename> file:</para>
+
+ <programlisting>hint.ppc.0.at="isa"
+hint.ppc.0.irq="7"</programlisting>
+
+ <para>Then check if the kernel configuration file has a
+ <literal>device plip</literal> line or if the
+ <filename>plip.ko</filename> kernel module is loaded. In both
+ cases the parallel networking interface should appear when you
+ use the &man.ifconfig.8; command to display it:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig plip0</userinput>
+plip0: flags=8810&lt;POINTOPOINT,SIMPLEX,MULTICAST&gt; mtu 1500</screen>
+
+ <para>Plug the laplink cable into the parallel interface on
+ both computers.</para>
+
+ <para>Configure the network interface parameters on both
+ sites as <username>root</username>. For example, if you want to connect
+ the host <hostid>host1</hostid> with another machine <hostid>host2</hostid>:</para>
+
+ <programlisting> host1 &lt;-----&gt; host2
+IP Address 10.0.0.1 10.0.0.2</programlisting>
+
+ <para>Configure the interface on <hostid>host1</hostid> by doing:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig plip0 10.0.0.1 10.0.0.2</userinput></screen>
+
+ <para>Configure the interface on <hostid>host2</hostid> by doing:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig plip0 10.0.0.2 10.0.0.1</userinput></screen>
+
+
+ <para>You now should have a working connection. Please read the
+ manual pages &man.lp.4; and &man.lpt.4; for more details.</para>
+
+ <para>You should also add both hosts to
+ <filename>/etc/hosts</filename>:</para>
+
+ <programlisting>127.0.0.1 localhost.my.domain localhost
+10.0.0.1 host1.my.domain host1
+10.0.0.2 host2.my.domain</programlisting>
+
+ <para>To confirm the connection works, go to each host and ping
+ the other. For example, on <hostid>host1</hostid>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig plip0</userinput>
+plip0: flags=8851&lt;UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet 10.0.0.1 --&gt; 10.0.0.2 netmask 0xff000000
+&prompt.root; <userinput>netstat -r</userinput>
+Routing tables
+
+Internet:
+Destination Gateway Flags Refs Use Netif Expire
+host2 host1 UH 0 0 plip0
+&prompt.root; <userinput>ping -c 4 host2</userinput>
+PING host2 (10.0.0.2): 56 data bytes
+64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
+64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
+64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
+64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
+
+--- host2 ping statistics ---
+4 packets transmitted, 4 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms</screen>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-ipv6">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Aaron</firstname>
+ <surname>Kaplan</surname>
+ <contrib>Originally Written by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Restructured and Added by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Brad</firstname>
+ <surname>Davis</surname>
+ <contrib>Extended by </contrib>
+ </author>
+ </authorgroup>
+
+ </sect1info>
+
+ <title>IPv6</title>
+ <para>IPv6 (also known as IPng <quote>IP next generation</quote>) is
+ the new version of the well known IP protocol (also known as
+ <acronym>IPv4</acronym>). Like the other current *BSD systems,
+ FreeBSD includes the KAME IPv6 reference implementation.
+ So your FreeBSD system comes with all you will need to experiment with IPv6.
+ This section focuses on getting IPv6 configured and running.</para>
+
+ <para>In the early 1990s, people became aware of the rapidly
+ diminishing address space of IPv4. Given the expansion rate of the
+ Internet there were two major concerns:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Running out of addresses. Today this is not so much of a concern
+ anymore since RFC1918 private address space
+ (<hostid role="ipaddr">10.0.0.0/8</hostid>,
+ <hostid role="ipaddr">172.16.0.0/12</hostid>, and
+ <hostid role="ipaddr">192.168.0.0/16</hostid>)
+ and Network Address Translation (<acronym>NAT</acronym>) are
+ being employed.</para>
+ </listitem>
+
+ <listitem>
+ <para>Router table entries were getting too large. This is
+ still a concern today.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>IPv6 deals with these and many other issues:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>128 bit address space. In other words theoretically there are
+ 340,282,366,920,938,463,463,374,607,431,768,211,456 addresses
+ available. This means there are approximately
+ 6.67 * 10^27 IPv6 addresses per square meter on our planet.</para>
+ </listitem>
+
+ <listitem>
+ <para>Routers will only store network aggregation addresses in their routing
+ tables thus reducing the average space of a routing table to 8192
+ entries.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>There are also lots of other useful features of IPv6 such as:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Address autoconfiguration (<ulink
+ url="http://www.ietf.org/rfc/rfc2462.txt">RFC2462</ulink>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Anycast addresses (<quote>one-out-of many</quote>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Mandatory multicast addresses</para>
+ </listitem>
+
+ <listitem>
+ <para>IPsec (IP security)</para>
+ </listitem>
+
+ <listitem>
+ <para>Simplified header structure</para>
+ </listitem>
+
+ <listitem>
+ <para>Mobile <acronym>IP</acronym></para>
+ </listitem>
+
+ <listitem>
+ <para>IPv6-to-IPv4 transition mechanisms</para>
+ </listitem>
+ </itemizedlist>
+
+
+ <para>For more information see:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>IPv6 overview at <ulink url="http://playground.sun.com/pub/ipng/html/ipng-main.html">playground.sun.com</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.kame.net">KAME.net</ulink></para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2>
+ <title>Background on IPv6 Addresses</title>
+ <para>There are different types of IPv6 addresses: Unicast, Anycast and
+ Multicast.</para>
+
+ <para>Unicast addresses are the well known addresses. A packet sent
+ to a unicast address arrives exactly at the interface belonging to
+ the address.</para>
+
+ <para>Anycast addresses are syntactically indistinguishable from unicast
+ addresses but they address a group of interfaces. The packet destined for
+ an anycast address will arrive at the nearest (in router metric)
+ interface. Anycast addresses may only be used by routers.</para>
+
+ <para>Multicast addresses identify a group of interfaces. A packet destined
+ for a multicast address will arrive at all interfaces belonging to the
+ multicast group.</para>
+
+ <note><para>The IPv4 broadcast address (usually <hostid role="ipaddr">xxx.xxx.xxx.255</hostid>) is expressed
+ by multicast addresses in IPv6.</para></note>
+
+ <table frame="none">
+ <title>Reserved IPv6 addresses</title>
+
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>IPv6 address</entry>
+ <entry>Prefixlength (Bits)</entry>
+ <entry>Description</entry>
+ <entry>Notes</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><hostid role="ip6addr">::</hostid></entry>
+ <entry>128 bits</entry>
+ <entry>unspecified</entry>
+ <entry>cf. <hostid role="ipaddr">0.0.0.0</hostid> in
+ IPv4</entry>
+ </row>
+
+ <row>
+ <entry><hostid role="ip6addr">::1</hostid></entry>
+ <entry>128 bits</entry>
+ <entry>loopback address</entry>
+ <entry>cf. <hostid role="ipaddr">127.0.0.1</hostid> in
+ IPv4</entry>
+ </row>
+
+ <row>
+ <entry><hostid
+ role="ip6addr">::00:xx:xx:xx:xx</hostid></entry>
+ <entry>96 bits</entry>
+ <entry>embedded IPv4</entry>
+ <entry>The lower 32 bits are the IPv4 address. Also
+ called <quote>IPv4 compatible IPv6
+ address</quote></entry>
+ </row>
+
+ <row>
+ <entry><hostid
+ role="ip6addr">::ff:xx:xx:xx:xx</hostid></entry>
+ <entry>96 bits</entry>
+ <entry>IPv4 mapped IPv6 address</entry>
+ <entry>The lower 32 bits are the IPv4 address.
+ For hosts which do not support IPv6.</entry>
+ </row>
+
+ <row>
+ <entry><hostid role="ip6addr">fe80::</hostid> - <hostid
+ role="ip6addr">feb::</hostid></entry>
+ <entry>10 bits</entry>
+ <entry>link-local</entry>
+ <entry>cf. loopback address in IPv4</entry>
+ </row>
+
+ <row>
+ <entry><hostid role="ip6addr">fec0::</hostid> - <hostid
+ role="ip6addr">fef::</hostid></entry>
+ <entry>10 bits</entry>
+ <entry>site-local</entry>
+ <entry>&nbsp;</entry>
+ </row>
+
+ <row>
+ <entry><hostid role="ip6addr">ff::</hostid></entry>
+ <entry>8 bits</entry>
+ <entry>multicast</entry>
+ <entry>&nbsp;</entry>
+ </row>
+
+ <row>
+ <entry><hostid role="ip6addr">001</hostid> (base
+ 2)</entry>
+ <entry>3 bits</entry>
+ <entry>global unicast</entry>
+ <entry>All global unicast addresses are assigned from
+ this pool. The first 3 bits are
+ <quote>001</quote>.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+
+ <sect2>
+ <title>Reading IPv6 Addresses</title>
+ <para>The canonical form is represented as: <hostid role="ip6addr">x:x:x:x:x:x:x:x</hostid>, each
+ <quote>x</quote> being a 16 Bit hex value. For example
+ <hostid role="ip6addr">FEBC:A574:382B:23C1:AA49:4592:4EFE:9982</hostid></para>
+
+ <para>Often an address will have long substrings of all zeros
+ therefore one such substring per address can be abbreviated by <quote>::</quote>.
+ Also up to three leading <quote>0</quote>s per hexquad can be omitted.
+ For example <hostid role="ip6addr">fe80::1</hostid>
+ corresponds to the canonical form
+ <hostid role="ip6addr">fe80:0000:0000:0000:0000:0000:0000:0001</hostid>.</para>
+
+ <para>A third form is to write the last 32 Bit part in the
+ well known (decimal) IPv4 style with dots <quote>.</quote>
+ as separators. For example
+ <hostid role="ip6addr">2002::10.0.0.1</hostid>
+ corresponds to the (hexadecimal) canonical representation
+ <hostid role="ip6addr">2002:0000:0000:0000:0000:0000:0a00:0001</hostid>
+ which in turn is equivalent to
+ writing <hostid role="ip6addr">2002::a00:1</hostid>.</para>
+
+ <para>By now the reader should be able to understand the following:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig</userinput></screen>
+
+ <programlisting>rl0: flags=8943&lt;UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
+ inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
+ ether 00:00:21:03:08:e1
+ media: Ethernet autoselect (100baseTX )
+ status: active</programlisting>
+
+ <para><hostid role="ip6addr">fe80::200:21ff:fe03:8e1%rl0</hostid>
+ is an auto configured link-local address. It is generated from the MAC
+ address as part of the auto configuration.</para>
+
+ <para>For further information on the structure of IPv6 addresses
+ see <ulink
+ url="http://www.ietf.org/rfc/rfc3513.txt">RFC3513</ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Getting Connected</title>
+
+ <para>Currently there are four ways to connect to other IPv6 hosts and networks:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Getting an IPv6 network from your upstream provider. Talk to your
+ Internet provider for instructions.</para>
+ </listitem>
+
+ <listitem>
+ <para>Tunnel via 6-to-4 (<ulink
+ url="http://www.ietf.org/rfc/rfc3068.txt">RFC3068</ulink>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Use the <filename role="package">net/freenet6</filename> port if you are on a dial-up connection.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>DNS in the IPv6 World</title>
+
+ <para>There used to be two types of DNS records for IPv6. The IETF
+ has declared A6 records obsolete. AAAA records are the standard
+ now.</para>
+
+ <para>Using AAAA records is straightforward. Assign your hostname to the new
+ IPv6 address you just received by adding:</para>
+
+ <programlisting>MYHOSTNAME AAAA MYIPv6ADDR</programlisting>
+
+ <para>To your primary zone DNS file. In case you do not serve your own
+ <acronym>DNS</acronym> zones ask your <acronym>DNS</acronym> provider.
+ Current versions of <application>bind</application> (version 8.3 and 9)
+ and <filename role="package">dns/djbdns</filename> (with the IPv6 patch)
+ support AAAA records.</para>
+ </sect2>
+
+ <sect2>
+ <title>Applying the needed changes to <filename>/etc/rc.conf</filename></title>
+
+ <sect3>
+ <title>IPv6 Client Settings</title>
+
+ <para>These settings will help you configure a machine that will be on
+ your LAN and act as a client, not a router. To have &man.rtsol.8;
+ autoconfigure your interface on boot all you need to add is:</para>
+
+ <programlisting>ipv6_enable="YES"</programlisting>
+
+ <para>To statically assign an IP address such as <hostid role="ip6addr">
+ 2001:471:1f11:251:290:27ff:fee0:2093</hostid>, to your
+ <devicename>fxp0</devicename> interface, add:</para>
+
+ <programlisting>ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"</programlisting>
+
+ <para>To assign a default router of
+ <hostid role="ip6addr">2001:471:1f11:251::1</hostid>
+ add the following to <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>ipv6_defaultrouter="2001:471:1f11:251::1"</programlisting>
+
+ </sect3>
+
+ <sect3>
+ <title>IPv6 Router/Gateway Settings</title>
+
+ <para>This will help you take the directions that your tunnel provider has
+ given you and convert it into settings that will persist through reboots.
+ To restore your tunnel on startup use something like the following in
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <para>List the Generic Tunneling interfaces that will be configured, for
+ example <devicename>gif0</devicename>:</para>
+
+ <programlisting>gif_interfaces="gif0"</programlisting>
+
+ <para>To configure the interface with a local endpoint of
+ <replaceable>MY_IPv4_ADDR</replaceable> to a remote endpoint of
+ <replaceable>REMOTE_IPv4_ADDR</replaceable>:</para>
+
+ <programlisting>gifconfig_gif0="<replaceable>MY_IPv4_ADDR REMOTE_IPv4_ADDR</replaceable>"</programlisting>
+
+ <para>To apply the IPv6 address you have been assigned for use as your
+ IPv6 tunnel endpoint, add:</para>
+
+ <programlisting>ipv6_ifconfig_gif0="<replaceable>MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR</replaceable>"</programlisting>
+
+ <para>Then all you have to do is set the default route for IPv6. This is
+ the other side of the IPv6 tunnel:</para>
+
+ <programlisting>ipv6_defaultrouter="<replaceable>MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR</replaceable>"</programlisting>
+
+ </sect3>
+
+ <sect3>
+ <title>IPv6 Tunnel Settings</title>
+
+ <para>If the server is to route IPv6 between the rest of your network
+ and the world, the following <filename>/etc/rc.conf</filename>
+ setting will also be needed:</para>
+
+ <programlisting>ipv6_gateway_enable="YES"</programlisting>
+
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Router Advertisement and Host Auto Configuration</title>
+
+ <para>This section will help you setup &man.rtadvd.8; to advertise the
+ IPv6 default route.</para>
+
+ <para>To enable &man.rtadvd.8; you will need the following in your
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>rtadvd_enable="YES"</programlisting>
+
+ <para>It is important that you specify the interface on which to do
+ IPv6 router solicitation. For example to tell &man.rtadvd.8; to use
+ <devicename>fxp0</devicename>:</para>
+
+ <programlisting>rtadvd_interfaces="fxp0"</programlisting>
+
+ <para>Now we must create the configuration file,
+ <filename>/etc/rtadvd.conf</filename>. Here is an example:</para>
+
+ <programlisting>fxp0:\
+ :addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:</programlisting>
+
+ <para>Replace <devicename>fxp0</devicename> with the interface you
+ are going to be using.</para>
+
+ <para>Next, replace <hostid role="ip6addr">2001:471:1f11:246::</hostid>
+ with the prefix of your allocation.</para>
+
+ <para>If you are dedicated a <hostid role="netmask">/64</hostid> subnet
+ you will not need to change anything else. Otherwise, you will need to
+ change the <literal>prefixlen#</literal> to the correct value.</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-atm">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Harti</firstname>
+ <surname>Brandt</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Asynchronous Transfer Mode (ATM)</title>
+
+ <sect2>
+ <title>Configuring classical IP over ATM (PVCs)</title>
+
+ <para>Classical IP over ATM (<acronym>CLIP</acronym>) is the
+ simplest method to use Asynchronous Transfer Mode (ATM)
+ with IP. It can be used with
+ switched connections (SVCs) and with permanent connections
+ (PVCs). This section describes how to set up a network based
+ on PVCs.</para>
+
+ <sect3>
+ <title>Fully meshed configurations</title>
+
+ <para>The first method to set up a <acronym>CLIP</acronym> with
+ PVCs is to connect each machine to each other machine in the
+ network via a dedicated PVC. While this is simple to
+ configure it tends to become impractical for a larger number
+ of machines. The example supposes that we have four
+ machines in the network, each connected to the <acronym role="Asynchronous Transfer Mode">ATM</acronym> network
+ with an <acronym role="Asynchronous Transfer Mode">ATM</acronym> adapter card. The first step is the planning of
+ the IP addresses and the <acronym role="Asynchronous
+ Transfer Mode">ATM</acronym> connections between the
+ machines. We use the following:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="1*">
+ <thead>
+ <row>
+ <entry>Host</entry>
+ <entry>IP Address</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><hostid>hostA</hostid></entry>
+ <entry><hostid role="ipaddr">192.168.173.1</hostid></entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostB</hostid></entry>
+ <entry><hostid role="ipaddr">192.168.173.2</hostid></entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostC</hostid></entry>
+ <entry><hostid role="ipaddr">192.168.173.3</hostid></entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostD</hostid></entry>
+ <entry><hostid role="ipaddr">192.168.173.4</hostid></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>To build a fully meshed net we need one ATM connection
+ between each pair of machines:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="1*">
+ <thead>
+ <row>
+ <entry>Machines</entry>
+ <entry>VPI.VCI couple</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><hostid>hostA</hostid> - <hostid>hostB</hostid></entry>
+ <entry>0.100</entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostA</hostid> - <hostid>hostC</hostid></entry>
+ <entry>0.101</entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostA</hostid> - <hostid>hostD</hostid></entry>
+ <entry>0.102</entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostB</hostid> - <hostid>hostC</hostid></entry>
+ <entry>0.103</entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostB</hostid> - <hostid>hostD</hostid></entry>
+ <entry>0.104</entry>
+ </row>
+
+ <row>
+ <entry><hostid>hostC</hostid> - <hostid>hostD</hostid></entry>
+ <entry>0.105</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>The VPI and VCI values at each end of the connection may
+ of course differ, but for simplicity we assume that they are
+ the same. Next we need to configure the ATM interfaces on
+ each host:</para>
+
+ <screen>hostA&prompt.root; <userinput>ifconfig hatm0 192.168.173.1 up</userinput>
+hostB&prompt.root; <userinput>ifconfig hatm0 192.168.173.2 up</userinput>
+hostC&prompt.root; <userinput>ifconfig hatm0 192.168.173.3 up</userinput>
+hostD&prompt.root; <userinput>ifconfig hatm0 192.168.173.4 up</userinput></screen>
+
+ <para>assuming that the ATM interface is
+ <devicename>hatm0</devicename> on all hosts. Now the PVCs
+ need to be configured on <hostid>hostA</hostid> (we assume that
+ they are already configured on the ATM switches, you need to
+ consult the manual for the switch on how to do this).</para>
+
+ <screen>hostA&prompt.root; <userinput>atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr</userinput>
+hostA&prompt.root; <userinput>atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr</userinput>
+hostA&prompt.root; <userinput>atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr</userinput>
+
+hostB&prompt.root; <userinput>atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr</userinput>
+hostB&prompt.root; <userinput>atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr</userinput>
+hostB&prompt.root; <userinput>atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr</userinput>
+
+hostC&prompt.root; <userinput>atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr</userinput>
+hostC&prompt.root; <userinput>atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr</userinput>
+hostC&prompt.root; <userinput>atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr</userinput>
+
+hostD&prompt.root; <userinput>atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr</userinput>
+hostD&prompt.root; <userinput>atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr</userinput>
+hostD&prompt.root; <userinput>atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubr</userinput></screen>
+
+ <para>Of course other traffic contracts than UBR can be used
+ given the ATM adapter supports those. In this case the name
+ of the traffic contract is followed by the parameters of the
+ traffic. Help for the &man.atmconfig.8; tool can be
+ obtained with:</para>
+
+ <screen>&prompt.root; <userinput>atmconfig help natm add</userinput></screen>
+
+ <para>or in the &man.atmconfig.8; manual page.</para>
+
+ <para>The same configuration can also be done via
+ <filename>/etc/rc.conf</filename>.
+ For <hostid>hostA</hostid> this would look like:</para>
+
+<programlisting>network_interfaces="lo0 hatm0"
+ifconfig_hatm0="inet 192.168.173.1 up"
+natm_static_routes="hostB hostC hostD"
+route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
+route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
+route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"</programlisting>
+
+ <para>The current state of all <acronym>CLIP</acronym> routes
+ can be obtained with:</para>
+
+ <screen>hostA&prompt.root; <userinput>atmconfig natm show</userinput></screen>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="carp">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Common Access Redundancy Protocol (CARP)</title>
+
+ <indexterm><primary>CARP</primary></indexterm>
+ <indexterm><primary>Common Access Redundancy Protocol</primary></indexterm>
+
+ <para>The Common Access Redundancy Protocol, or
+ <acronym>CARP</acronym> allows multiple hosts to share the same
+ <acronym>IP</acronym> address. In some configurations, this may
+ be used for availability or load balancing. Hosts may use separate
+ <acronym>IP</acronym> addresses as well, as in the example provided
+ here.</para>
+
+ <para>To enable support for <acronym>CARP</acronym>, the &os;
+ kernel must be rebuilt with the following option:</para>
+
+ <programlisting>device carp</programlisting>
+
+ <para><acronym>CARP</acronym> functionality should now be available
+ and may be tuned via several <command>sysctl</command>
+ <acronym>OID</acronym>s. Devices themselves may be loaded via
+ the <command>ifconfig</command> command:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig carp0 create</userinput></screen>
+
+ <para>In a real environment, these interfaces will need unique
+ identification numbers known as a <acronym>VHID</acronym>. This
+ <acronym>VHID</acronym> or Virtual Host Identification will be
+ used to distinguish the host on the network.</para>
+
+ <sect2>
+ <title>Using CARP For Server Availability (CARP)</title>
+
+ <para>One use of <acronym>CARP</acronym>, as noted above, is for
+ server availability. This example will provide failover support
+ for three hosts, all with unique <acronym>IP</acronym>
+ addresses and providing the same web content. These machines will
+ act in conjunction with a Round Robin <acronym>DNS</acronym>
+ configuration. The failover machine will have two additional
+ <acronym>CARP</acronym> interfaces, one for each of the content
+ server's <acronym>IP</acronym>s. When a failure occurs, the
+ failover server should pick up the failed machine's
+ <acronym>IP</acronym> address. This means the failure should
+ go completely unnoticed to the user. The failover server
+ requires identical content and services as the other content
+ servers it is expected to pick up load for.</para>
+
+ <para>The two machines should be configured identically other
+ than their issued hostnames and <acronym>VHID</acronym>s.
+ This example calls these machines
+ <hostid>hosta.example.org</hostid> and
+ <hostid>hostb.example.org</hostid> respectively. First, the
+ required lines for a <acronym>CARP</acronym> configuration have
+ to be added to <filename>rc.conf</filename>. For
+ <hostid>hosta.example.org</hostid>, the
+ <filename>rc.conf</filename> file should contain the following
+ lines:</para>
+
+ <programlisting>hostname="hosta.example.org"
+ifconfig_fxp0="inet 192.168.1.3 netmask 255.255.255.0"
+cloned_interfaces="carp0"
+ifconfig_carp0="vhid 1 pass testpast 192.168.1.50/24"</programlisting>
+
+ <para>On <hostid>hostb.example.org</hostid> the following lines
+ should be in <filename>rc.conf</filename>:</para>
+
+ <programlisting>hostname="hostb.example.org"
+ifconfig_fxp0="inet 192.168.1.4 netmask 255.255.255.0"
+cloned_interfaces="carp0"
+ifconfig_carp0="vhid 2 pass testpass 192.168.1.51/24"</programlisting>
+
+ <note>
+ <para>It is very important that the passwords, specified by the
+ <option>pass</option> option to <command>ifconfig</command>,
+ are identical. The <devicename>carp</devicename> devices will
+ only listen to and accept advertisements from machines with the
+ correct password. The <acronym>VHID</acronym> must also be
+ different for each machine.</para>
+ </note>
+
+ <para>The third machine,
+ <hostid>provider.example.org</hostid>, should be prepared so that
+ it may handle failover from either host. This machine will require
+ two <devicename>carp</devicename> devices, one to handle each
+ host. The appropriate <filename>rc.conf</filename>
+ configuration lines will be similar to the following:</para>
+
+ <programlisting>hostname="provider.example.org"
+ifconfig_fxp0="inet 192.168.1.5 netmask 255.255.255.0"
+cloned_interfaces="carp0 carp1"
+ifconfig_carp0="vhid 1 advskew 100 pass testpass 192.168.1.50/24"
+ifconfig_carp1="vhid 2 advskew 100 pass testpass 192.168.1.51/24"</programlisting>
+
+ <para>Having the two <devicename>carp</devicename> devices will
+ allow <hostid>provider.example.org</hostid> to notice and pick
+ up the <acronym>IP</acronym> address of either machine should
+ it stop responding.</para>
+
+ <note>
+ <para>The default &os; kernel <emphasis>may</emphasis> have
+ preemption enabled. If so,
+ <hostid>provider.example.org</hostid> may not relinquish the
+ <acronym>IP</acronym> address back to the original content
+ server. In this case, an administrator may
+ <quote>nudge</quote> the interface. The following command
+ should be issued on
+ <hostid>provider.example.org</hostid>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig carp0 down && ifconfig carp0 up</userinput></screen>
+
+ <para>This should be done on the <devicename>carp</devicename>
+ interface which corresponds to the correct host.</para>
+ </note>
+
+ <para>At this point, <acronym>CARP</acronym> should be completely
+ enabled and available for testing. For testing, either networking has
+ to be restarted or the machines need to be rebooted.</para>
+
+ <para>More information is always available in the &man.carp.4;
+ manual page.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
+<!-- LocalWords: config mnt www -->
diff --git a/el_GR.ISO8859-7/books/handbook/appendix.decl b/el_GR.ISO8859-7/books/handbook/appendix.decl
new file mode 100644
index 0000000000..0417e6bd58
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/appendix.decl
@@ -0,0 +1,11 @@
+<!DOCTYPE appendix PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN">
+<!--
+
+ $FreeBSD$
+
+ The FreeBSD Greek Documentation Project
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/appendix.decl
+ %SRCID% 1.1
+
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/audit/chapter.sgml b/el_GR.ISO8859-7/books/handbook/audit/chapter.sgml
new file mode 100644
index 0000000000..52da560512
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/audit/chapter.sgml
@@ -0,0 +1,728 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Έλεγχος Συμβάντων Ασφαλείας
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/audit/chapter.sgml
+ %SRCID% 1.1
+
+-->
+
+<!--
+ Need more documentation on praudit, auditreduce, etc. Plus more info on the
+ triggers from the kernel (log rotation, out of space, etc). And the
+ /dev/audit special file if we choose to support that. Could use some
+ coverage of integrating MAC with Event auditing and perhaps discussion on how
+ some companies or organizations handle auditing and auditing requirements.
+-->
+
+<chapter id="audit">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφτηκε από τον </contrib>
+ </author>
+ <author>
+ <firstname>Robert</firstname>
+ <surname>Watson</surname>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Έλεγχος Συμβάντων Ασφαλείας</title>
+
+ <sect1 id="audit-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>AUDIT</primary></indexterm>
+ <indexterm>
+ <primary>Έλεγχος Συμβάντων Ασφαλείας</primary>
+ <see>MAC</see>
+ </indexterm>
+
+ <para>Οι εκδόσεις του &os; από την 6.2-RELEASE και μετά περιλαμβάνουν
+ υποστήριξη για λεπτομερή έλεγχο συμβάντων ασφαλείας. Ο έλεγχος συμβάντων
+ επιτρέπει αξιόπιστη, λεπτομερή και παραμετροποιήσιμη καταγραφή πλήθους
+ συμβάντων σχετικών με την ασφάλεια, συμπεριλαμβανομένων των logins,
+ των αλλαγών ρυθμίσεων, καθώς και της πρόσβασης σε αρχεία και στο δίκτυο.
+ Οι καταγραφές αυτές είναι πολύτιμες για απευθείας παρακολούθηση του
+ συστήματος, ανίχνευση εισβολέων, καθώς και για ανάλυση μετά από κάποια
+ επίθεση.
+ Το &os; υλοποιεί τη μορφή αρχείων και το <acronym>BSM</acronym> API όπως
+ έχουν δημοσιευτεί από την &sun;, και επιτρέπει διαλειτουργικότητα με τις
+ υλοποιήσεις ελέγχου τόσο του &solaris; της &sun; όσο του &macos;
+ της &apple;.</para>
+
+ <para>Το κεφάλαιο αυτό εστιάζει στην εγκατάσταση και ρύθμιση του Ελέγχου
+ Συμβάντων. Εξηγεί τις πολιτικές ελέγχου, και παρέχει ένα παράδειγμα
+ ρυθμίσεων ελέγχου. </para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τι είναι ο έλεγχος συμβάντων και πως λειτουργεί.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε τον έλεγχο συμβάντων στο &os; για χρήστες
+ και προγράμματα (processes).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αναλύσετε τα ίχνη του ελέγχου χρησιμοποιώντας τα
+ εργαλεία μείωσης όγκου δεδομένων και ανάλυσης.</para>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε τις βασικές έννοιες του &unix; και του &os;
+ (<xref linkend="basics">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τις βασικές έννοιες της ρύθμισης και
+ μεταγλώττισης του πυρήνα. (<xref linkend="kernelconfig">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να έχετε κάποια εξοικείωση με την ασφάλεια και πως αυτή
+ σχετίζεται με το &os; (<xref linkend="security">).</para>
+ </listitem>
+ </itemizedlist>
+
+ <warning>
+ <para>Οι λειτουργίες ελέγχου στο &os; 6.2 είναι σε πειραματικό στάδιο
+ και η εγκατάσταση τους σε μηχανήματα παραγωγής θα πρέπει να γίνεται
+ μόνο αφού ληφθούν σοβαρά υπόψιν οι κίνδυνοι από την εγκατάσταση
+ πειραματικού λογισμικού. Οι γνωστοί αυτή τη στιγμή τρέχοντες
+ περιορισμοί περιλαμβάνουν την αδυναμία ελέγχου όλων των συμβάντων που
+ σχετίζονται με την ασφάλεια. Επίσης κάποιοι μηχανισμοί εισόδου
+ (logins), όπως οι γραφικοί (X11-βασισμένοι) display managers, καθώς
+ και ορισμένες υπηρεσίες τρίτων κατασκευαστών δεν είναι σωστά
+ ρυθμισμένες για τον έλεγχο εισόδου χρηστών. </para>
+ </warning>
+
+ <warning>
+ <para>Ο έλεγχος συμβάντων ασφαλείας μπορεί να δημιουργήσει πολύ
+ λεπτομερείς καταγραφές της δραστηριότητας του συστήματος: σε ένα
+ σύστημα με υψηλό φόρτο, τα αρχεία καταγραφής μπορεί να γίνουν πολύ
+ μεγάλα, αν έχουν ρυθμιστεί για λεπτομερή καταγραφή, και να ξεπεράσουν
+ τα αρκετά gigabytes την εβδομάδα σε κάποιες περιπτώσεις. Οι
+ διαχειριστές θα πρέπει να λαμβάνουν υπόψιν τους τις πιθανές απαιτήσεις
+ σε χώρο δίσκου σε περίπτωση ρυθμίσεων λεπτομερούς καταγραφής. Για
+ παράδειγμα, ίσως είναι θεμιτό να αφιερωθεί ένα σύστημα αρχείων στο
+ <filename>/var/audit</filename> ώστε τα υπόλοιπα συστήματα αρχείων να
+ μην επηρεαστούν αν ο χώρος αυτός εξαντληθεί. </para>
+ </warning>
+
+ </sect1>
+
+ <sect1 id="audit-inline-glossary">
+ <title>Key Terms in this Chapter</title>
+
+ <para>Before reading this chapter, a few key audit-related terms must be
+ explained:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>event</emphasis>: An auditable event is any event
+ that can be logged using the audit subsystem.
+ Examples of security-relevant events include the creation of
+ a file, the building of a network connection, or a user logging in.
+ Events are either <quote>attributable</quote>,
+ meaning that they can be traced to an authenticated user, or
+ <quote>non-attributable</quote> if they cannot be.
+ Examples of non-attributable events are any events that occur
+ before authentication in the login process, such as bad password
+ attempts.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>class</emphasis>: Event classes are named sets of
+ related events, and are used in selection expressions. Commonly
+ used classes of events include <quote>file creation</quote> (fc),
+ <quote>exec</quote> (ex) and <quote>login_logout</quote>
+ (lo).</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>record</emphasis>: A record is an audit log entry
+ describing a security event. Records contain a record event type,
+ information on the subject (user) performing the action,
+ date and time information, information on any objects or
+ arguments, and a success or failure condition.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>trail</emphasis>: An audit trail, or log file,
+ consists of a series of audit records describing security
+ events. Typically, trails are in roughly chronological
+ order with respect to the time events completed. Only
+ authorized processes are allowed to commit records to the
+ audit trail.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>selection expression</emphasis>: A selection
+ expression is a string containing a list of prefixes and audit
+ event class names used to match events.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>preselection</emphasis>: The process by which the
+ system identifies which events are of interest to the administrator
+ in order to avoid generating audit records describing events that
+ are not of interest. The preselection configuration
+ uses a series of selection expressions to identify which classes
+ of events to audit for which users, as well as global settings
+ that apply to both authenticated and unauthenticated
+ processes.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>reduction</emphasis>: The process by which records
+ from existing audit trails are selected for preservation, printing,
+ or analysis. Likewise, the process by which undesired audit
+ records are removed from the audit trail. Using reduction,
+ administrators can implement policies for the preservation of audit
+ data. For example, detailed audit trails might be kept for one
+ month, but after that, trails might be reduced in order to preserve
+ only login information for archival purposes.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="audit-install">
+ <title>Installing Audit Support</title>
+
+ <para>User space support for Event Auditing is installed as part of the
+ base &os; operating system as of 6.2-RELEASE. However, Event Auditing
+ support must be explicitly compiled into the kernel by adding the
+ following lines to the kernel configuration file:</para>
+
+ <programlisting>options AUDIT</programlisting>
+
+ <para>Rebuild and reinstall
+ the kernel via the normal process explained in
+ <xref linkend="kernelconfig">.</para>
+
+ <para>Once the kernel is built, installed, and the system has been
+ rebooted, enable the audit daemon by adding the following line to
+ &man.rc.conf.5;:</para>
+
+ <programlisting>auditd_enable="YES"</programlisting>
+
+ <para>Audit support must then be started by a reboot, or by manually
+ starting the audit daemon:</para>
+
+ <programlisting>/etc/rc.d/auditd start</programlisting>
+ </sect1>
+
+ <sect1 id="audit-config">
+ <title>Audit Configuration</title>
+
+ <para>All configuration files for security audit are found in
+ <filename role="directory">/etc/security</filename>. The following
+ files must be present before the audit daemon is started:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>audit_class</filename> - Contains the
+ definitions of the audit classes.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_control</filename> - Controls aspects
+ of the audit subsystem, such as default audit classes,
+ minimum disk space to leave on the audit log volume,
+ maximum audit trail size, etc.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_event</filename> - Textual names and
+ descriptions of system audit events, as well as a list of which
+ classes each event in in.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_user</filename> - User-specific audit
+ requirements, which are combined with the global defaults at
+ login.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>audit_warn</filename> - A customizable shell script
+ used by auditd to generate warning messages in exceptional
+ situations, such as when space for audit records is running low or
+ when the audit trail file has been rotated.</para>
+ </listitem>
+ </itemizedlist>
+
+ <warning>
+ <para>Audit configuration files should be edited and maintained
+ carefully, as errors in configuration may result in improper
+ logging of events.</para>
+ </warning>
+
+ <sect2>
+ <title>Event Selection Expressions</title>
+
+ <para>Selection expressions are used in a number of places in the
+ audit configuration to determine which events should be audited.
+ Expressions contain a list of event classes to match, each with
+ a prefix indicating whether matching records should be accepted
+ or ignored, and optionally to indicate if the entry is intended
+ to match successful or failed operations. Selection expressions
+ are evaluated from left to right, and two expressions are
+ combined by appending one onto the other.</para>
+
+ <para>The following list contains the default audit event classes
+ present in <filename>audit_class</filename>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><option>all</option> - <literal>all</literal> - Match all
+ event classes.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>ad</option> - <literal>administrative</literal>
+ - Administrative actions performed on the system as a
+ whole.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>ap</option> - <literal>application</literal> -
+ Application defined action.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>cl</option> - <literal>file_close</literal> -
+ Audit calls to the <function>close</function> system
+ call.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>ex</option> - <literal>exec</literal> - Audit
+ program execution. Auditing of command line arguments and
+ environmental variables is controlled via &man.audit.control.5;
+ using the <literal>argv</literal> and <literal>envv</literal>
+ parameters to the <literal>policy</literal> setting.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>fa</option> - <literal>file_attr_acc</literal>
+ - Audit the access of object attributes such as
+ &man.stat.1;, &man.pathconf.2; and similar events.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>fc</option> - <literal>file_creation</literal>
+ - Audit events where a file is created as a result.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>fd</option> - <literal>file_deletion</literal>
+ - Audit events where file deletion occurs.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>fm</option> - <literal>file_attr_mod</literal>
+ - Audit events where file attribute modification occurs,
+ such as &man.chown.8;, &man.chflags.1;, &man.flock.2;,
+ etc.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>fr</option> - <literal>file_read</literal>
+ - Audit events in which data is read, files are opened for
+ reading, etc.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>fw</option> - <literal>file_write</literal> -
+ Audit events in which data is written, files are written
+ or modified, etc.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>io</option> - <literal>ioctl</literal> - Audit
+ use of the &man.ioctl.2; system call.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>ip</option> - <literal>ipc</literal> - Audit
+ various forms of Inter-Process Communication, including POSIX
+ pipes and System V <acronym>IPC</acronym> operations.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>lo</option> - <literal>login_logout</literal> -
+ Audit &man.login.1; and &man.logout.1; events occurring
+ on the system.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>na</option> - <literal>non_attrib</literal> -
+ Audit non-attributable events.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>no</option> - <literal>no_class</literal> -
+ Match no audit events.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>nt</option> - <literal>network</literal> -
+ Audit events related to network actions, such as
+ &man.connect.2; and &man.accept.2;.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>ot</option> - <literal>other</literal> -
+ Audit miscellaneous events.</para>
+ </listitem>
+
+ <listitem>
+ <para><option>pc</option> - <literal>process</literal> -
+ Audit process operations, such as &man.exec.3; and
+ &man.exit.3;.</para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>These audit event classes may be customized by modifying the
+ <filename>audit_class</filename> and
+ <filename>audit_event</filename> configuration files.</para>
+
+ <para>Each audit class in the list is combined with a prefix
+ indicating whether successful/failed operations are matched, and
+ whether the entry is adding or removing matching for the class
+ and type.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>(none) Audit both successful and failed instances of the
+ event.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>+</literal> Audit successful events in this
+ class.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>-</literal> Audit failed events in this
+ class.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>^</literal> Audit neither successful nor failed
+ events in this class.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>^+</literal> Don't audit successful events in this
+ class.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>^-</literal> Don't audit failed events in this
+ class.</para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>The following example selection string selects both successful
+ and failed login/logout events, but only successful execution
+ events:</para>
+
+ <programlisting>lo,+ex</programlisting>
+
+ </sect2>
+
+ <sect2>
+ <title>Configuration Files</title>
+
+ <para>In most cases, administrators will need to modify only two files
+ when configuring the audit system: <filename>audit_control</filename>
+ and <filename>audit_user</filename>. The first controls system-wide
+ audit properties and policies; the second may be used to fine-tune
+ auditing by user.</para>
+
+ <sect3 id="audit-auditcontrol">
+ <title>The <filename>audit_control</filename> File</title>
+
+ <para>The <filename>audit_control</filename> file specifies a number
+ of defaults for the audit subsystem. Viewing the contents of this
+ file, we see the following:</para>
+
+ <programlisting>dir:/var/audit
+flags:lo
+minfree:20
+naflags:lo
+policy:cnt
+filesz:0</programlisting>
+
+ <para>The <option>dir</option> option is used to set one or more
+ directories where audit logs will be stored. If more than one
+ directory entry appears, they will be used in order as they fill.
+ It is common to configure audit so that audit logs are stored on
+ a dedicated file system, in order to prevent interference between
+ the audit subsystem and other subsystems if the file system fills.
+ </para>
+
+ <para>The <option>flags</option> field sets the system-wide default
+ preselection mask for attributable events. In the example above,
+ successful and failed login and logout events are audited for all
+ users.</para>
+
+ <para>The <option>minfree</option> option defines the minimum
+ percentage of free space for the file system where the audit trail
+ is stored. When this threshold is exceeded, a warning will be
+ generated. The above example sets the minimum free space to
+ twenty percent.</para>
+
+ <para>The <option>naflags</option> option specifies audit classes to
+ be audited for non-attributed events, such as the login process
+ and system daemons.</para>
+
+ <para>The <option>policy</option> option specifies a comma-separated
+ list of policy flags controlling various aspects of audit
+ behavior. The default <literal>cnt</literal> flag indicates that
+ the system should continue running despite an auditing failure
+ (this flag is highly recommended). Another commonly used flag is
+ <literal>argv</literal>, which causes command line arguments to
+ the &man.execve.2; system call to audited as part of command
+ execution.</para>
+
+ <para>The <option>filesz</option> option specifies the maximum size
+ in bytes to allow an audit trail file to grow to before
+ automatically terminating and rotating the trail file. The
+ default, 0, disables automatic log rotation. If the requested
+ file size is non-zero and below the minimum 512k, it will be
+ ignored and a log message will be generated.</para>
+ </sect3>
+
+ <sect3 id="audit-audituser">
+ <title>The <filename>audit_user</filename> File</title>
+
+ <para>The <filename>audit_user</filename> file permits the
+ administrator to specify further audit requirements for specific
+ users.
+ Each line configures auditing for a user via two fields: the
+ first is the <literal>alwaysaudit</literal> field, which specifies
+ a set of events that should always be audited for the user, and
+ the second is the <literal>neveraudit</literal> field, which
+ specifies a set of events that should never be audited for the
+ user.</para>
+
+ <para>The following example <filename>audit_user</filename> file
+ audits login/logout events and successful command execution for
+ the root user, and audits file creation and successful command
+ execution for the www user.
+ If used with the example <filename>audit_control</filename> file
+ above, the <literal>lo</literal> entry for <literal>root</literal>
+ is redundant, and login/logout events will also be audited for the
+ <literal>www</literal> user.</para>
+
+ <programlisting>root:lo,+ex:no
+www:fc,+ex:no</programlisting>
+
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="audit-administration">
+ <title>Administering the Audit Subsystem</title>
+
+ <sect2>
+ <title>Viewing Audit Trails</title>
+
+ <para>Audit trails are stored in the BSM binary format, so tools must
+ be used to modify or convert to text. The <command>praudit</command>
+ command convert trail files to a simple text format; the
+ <command>auditreduce</command> command may be used to reduce the
+ audit trail file for analysis, archiving, or printing purposes.
+ <command>auditreduce</command> supports a variety of selection
+ parameters, including event type, event class, user, date or time of
+ the event, and the file path or object acted on.</para>
+
+ <para>For example, the <command>praudit</command> utility will dump
+ the entire contents of a specified audit log in plain text:</para>
+
+ <screen>&prompt.root; <userinput>praudit /var/audit/AUDITFILE</userinput></screen>
+
+ <para>Where <replaceable>AUDITFILE</replaceable> is the audit log to
+ dump.</para>
+
+ <para>Audit trails consist of a series of audit records made up of
+ tokens, which <command>praudit</command> prints sequentially one per
+ line. Each token is of a specific type, such as
+ <literal>header</literal> holding an audit record header, or
+ <literal>path</literal> holding a file path from a name
+ lookup. The following is an example of an
+ <literal>execve</literal> event:</para>
+
+ <programlisting>header,133,10,execve(2),0,Mon Sep 25 15:58:03 2006, + 384 msec
+exec arg,finger,doug
+path,/usr/bin/finger
+attribute,555,root,wheel,90,24918,104944
+subject,robert,root,wheel,root,wheel,38439,38032,42086,128.232.9.100
+return,success,0
+trailer,133</programlisting>
+
+ <para>This audit represents a successful <literal>execve</literal>
+ call, in which the command <literal>finger doug</literal> has been run. The
+ arguments token contains both the processed command line presented
+ by the shell to the kernel. The path token holds the path to the
+ executable as looked up by the kernel. The attribute token
+ describes the binary, and in particular, includes the file mode
+ which can be used to determine if the application was setuid.
+ The subject token describes the subject process, and stores in
+ sequence the audit user ID, effective user ID and group ID, real
+ user ID and group ID, process ID, session ID, port ID, and login
+ address. Notice that the audit user ID and real user ID differ:
+ the user <literal>robert</literal> has switched to the
+ <literal>root</literal> account before running this command, but
+ it is audited using the original authenticated user. Finally, the
+ return token indicates the successful execution, and the trailer
+ concludes the record.</para>
+
+ </sect2>
+
+ <sect2>
+ <title>Reducing Audit Trails</title>
+
+ <para>Since audit logs may be very large, an administrator will
+ likely want to select a subset of records for using, such as records
+ associated with a specific user:</para>
+
+ <screen>&prompt.root; <userinput>auditreduce -u trhodes /var/audit/AUDITFILE | praudit</userinput></screen>
+
+ <para>This will select all audit records produced for the user
+ <username>trhodes</username> stored in the
+ <filename><replaceable>AUDITFILE</replaceable></filename> file.</para>
+ </sect2>
+
+ <sect2>
+ <title>Delegating Audit Review Rights</title>
+
+ <para>Members of the <groupname>audit</groupname> group are given
+ permission to read audit trails in <filename>/var/audit</filename>;
+ by default, this group is empty, so only the <username>root</username> user may read
+ audit trails. Users may be added to the <groupname>audit</groupname>
+ group in order to delegate audit review rights to the user. As
+ the ability to track audit log contents provides significant insight
+ into the behavior of users and processes, it is recommended that the
+ delegation of audit review rights be performed with caution.</para>
+ </sect2>
+
+ <sect2>
+ <title>Live Monitoring Using Audit Pipes</title>
+
+ <para>Audit pipes are cloning pseudo-devices in the device file system
+ which allow applications to tap the live audit record stream. This
+ is primarily of interest to authors of intrusion detection and
+ system monitoring applications. However, for the administrator the
+ audit pipe device is a convenient way to allow live monitoring
+ without running into problems with audit trail file ownership or
+ log rotation interrupting the event stream. To track the live audit
+ event stream, use the following command line</para>
+
+ <screen>&prompt.root; <userinput>praudit /dev/auditpipe</userinput></screen>
+
+ <para>By default, audit pipe device nodes are accessible only to the
+ <username>root</username> user. To make them accessible to the members of the
+ <groupname>audit</groupname> group, add a <literal>devfs</literal> rule
+ to <filename>devfs.rules</filename>:</para>
+
+ <programlisting>add path 'auditpipe*' mode 0440 group audit</programlisting>
+
+ <para>See &man.devfs.rules.5; for more information on configuring
+ the devfs file system.</para>
+
+ <warning>
+ <para>It is easy to produce audit event feedback cycles, in which
+ the viewing of each audit event results in the generation of more
+ audit events. For example, if all network I/O is audited, and
+ praudit is run from an SSH session, then a continuous stream of
+ audit events will be generated at a high rate, as each event
+ being printed will generate another event. It is advisable to run
+ praudit on an audit pipe device from sessions without fine-grained
+ I/O auditing in order to avoid this happening.</para>
+ </warning>
+ </sect2>
+
+ <sect2>
+ <title>Rotating Audit Trail Files</title>
+
+ <para>Audit trails are written to only by the kernel, and managed only
+ by the audit daemon, <application>auditd</application>. Administrators
+ should not attempt to use &man.newsyslog.conf.5; or other tools to
+ directly rotate audit logs. Instead, the <command>audit</command>
+ management tool may be used to shut down auditing, reconfigure the
+ audit system, and perform log rotation. The following command causes
+ the audit daemon to create a new audit log and signal the kernel to
+ switch to using the new log. The old log will be terminated and
+ renamed, at which point it may then be manipulated by the
+ administrator.</para>
+
+ <screen>&prompt.root; <userinput>audit -n</userinput></screen>
+
+ <warning>
+ <para>If the <application>auditd</application> daemon is not currently
+ running, this command will fail and an error message will be
+ produced.</para>
+ </warning>
+
+ <para>Adding the following line to
+ <filename>/etc/crontab</filename> will force the rotation
+ every twelve hours from &man.cron.8;:</para>
+
+ <programlisting>0 */12 * * * root /usr/sbin/audit -n</programlisting>
+
+ <para>The change will take effect once you have saved the
+ new <filename>/etc/crontab</filename>.</para>
+
+ <para>Automatic rotation of the audit trail file based on file size is
+ possible via the <option>filesz</option> option in
+ &man.audit.control.5;, and is described in the configuration files
+ section of this chapter.</para>
+ </sect2>
+
+ <sect2>
+ <title>Compressing Audit Trails</title>
+
+ <para>As audit trail files can become very large, it is often desirable
+ to compress or otherwise archive trails once they have been closed by
+ the audit daemon. The <filename>audit_warn</filename> script can be
+ used to perform customized operations for a variety of audit-related
+ events, including the clean termination of audit trails when they are
+ rotated. For example, the following may be added to the
+ <filename>audit_warn</filename> script to compress audit trails on
+ close:</para>
+
+ <programlisting>#
+# Compress audit trail files on close.
+#
+if [ "$1" = closefile ]; then
+ gzip -9 $2
+fi</programlisting>
+
+ <para>Other archiving activities might include copying trail files to
+ a centralized server, deleting old trail files, or reducing the audit
+ trail to remove unneeded records. The script will be run only when
+ audit trail files are cleanly terminated, so will not be run on
+ trails left unterminated following an improper shutdown.</para>
+ </sect2>
+ </sect1>
+</chapter>
diff --git a/el_GR.ISO8859-7/books/handbook/basics/chapter.sgml b/el_GR.ISO8859-7/books/handbook/basics/chapter.sgml
new file mode 100644
index 0000000000..9ad8697776
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/basics/chapter.sgml
@@ -0,0 +1,2904 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Βασικές Έννοιες στο Unix
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/basics/chapter.sgml
+ %SRCID% 1.158
+
+-->
+
+<chapter id="basics">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Chris</firstname>
+ <surname>Shumway</surname>
+ <contrib>Αναθεωρημένο από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- 10 Mar 2000 -->
+ </chapterinfo>
+
+ <title>Βασικές Έννοιες στο &unix;</title>
+
+ <sect1 id="basics-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το ακόλουθο κεφάλαιο θα καλύψει τις βασικές εντολές και
+ λειτουργίες του λειτουργικού συστήματος &os;. Το μεγαλύτερο μέρος
+ αυτής της ύλης σχετίζεται με όλα τα Λ.Σ. που είναι βασισμένα
+ στο &unix;. Εάν η ύλη σας φαίνεται οικεία μπορείτε να διατρέξετε
+ γρήγορα αυτό το κεφάλαιο. Εάν - αντιθέτως - είστε νέος στο &os;
+ τότε οπωσδήποτε θα πρέπει να διαβάσετε προσεκτικά ολόκληρο το
+ κεφάλαιο.</para>
+
+ <para>Μετά την ανάγνωση του κεφαλαίου, θα γνωρίζετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να χρησιμοποιείτε τις <quote>εικονικές κονσόλες</quote> του
+ &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως λειτουργούν οι άδειες αρχείων στο &unix; και
+ θα καταλάβετε την χρήση των file flags στο &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Την προεπιλεγμένη διάταξη του συστήματος αρχείων του
+ &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Την οργάνωση των δίσκων στο &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τι είναι και πώς λειτουργεί η προσάρτηση (mount) και
+ αποπροσάρτηση (unmount) συστημάτων αρχείων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τι είναι οι διεργασίες (processes), τα σήματα (signals) και
+ οι δαίμονες (daemons).</para>
+ </listitem>
+
+ <listitem>
+ <para>Τι είναι το κέλυφος (shell) και πως να αλλάζετε το προεπιλεγμένο
+ περιβάλλον εργασίας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιείτε βασικά προγράμματα επεξεργασίας κειμένου
+ (editors).</para>
+ </listitem>
+
+ <listitem>
+ <para>Τι είναι οι συσκευές (devices) και τα αρχεία συσκευής (device
+ nodes).</para>
+ </listitem>
+
+ <listitem>
+ <para>Ποια έκδοση εκτελέσιμων χρησιμοποιείται στο &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να διαβάζετε τις σελίδες βοηθείας (manual pages) για
+ περισσότερες πληροφορίες.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="consoles">
+ <title>Εικονικές Κονσόλες και Τερματικά </title>
+ <indexterm><primary>εικονικές κονσόλες</primary></indexterm>
+ <indexterm><primary>τερματικά</primary></indexterm>
+
+ <para>Μπορείτε να χειριστείτε το &os; με διάφορους τρόπους. Ένας από
+ αυτούς, είναι πληκτρολογώντας εντολές κειμένου σε ένα τερματικό. Με
+ αυτό τον τρόπο έχετε στα χέρια σας ένα ευέλικτο και δυνατό λειτουργικό
+ σύστημα &unix;. Αυτή η ενότητα περιγράφει τι είναι τα
+ <quote>τερματικά</quote> και οι <quote>κονσόλες</quote> και πως μπορούν
+ να χρησιμοποιηθούν στο &os;.</para>
+
+ <sect2 id="consoles-intro">
+ <title>Η Κονσόλα</title>
+ <indexterm><primary>κονσόλα</primary></indexterm>
+
+ <para>Εάν δεν έχετε ρυθμίσει το &os; να ξεκινά αυτόματα κάποιο γραφικό
+ περιβάλλον εργασίας, τότε αμέσως μετά την εκκίνηση του συστήματος και
+ την ολοκλήρωση των σεναρίων εκκίνησης (startup scripts) θα εμφανιστεί
+ η προτροπή σύνδεσης (login prompt). Θα δείτε κάτι παρόμοιο στην οθόνη
+ σας:</para>
+
+ <screen>Additional ABI support:.
+Local package initialization:.
+Additional TCP options:.
+
+Fri Sep 20 13:01:06 EEST 2002
+
+FreeBSD/i386 (pc3.example.org) (ttyv0)
+
+login:</screen>
+
+ <para>Το μήνυμα μπορεί να είναι λίγο διαφορετικό στο σύστημα σας, αλλά
+ δεν πρέπει να διαφέρει κατά πολύ. Θα εστιάσουμε την προσοχή μας στις
+ τελευταίες δύο γραμμές. Η προτελευταία γραμμή αναφέρει:</para>
+
+ <programlisting>FreeBSD/i386 (pc3.example.org) (ttyv0)</programlisting>
+
+ <para>Αυτή η γραμμή περιέχει μερικές πληροφορίες για το σύστημα που
+ μόλις εκκινήσατε. Έχετε μπροστά σας μια κονσόλα
+ <quote>FreeBSD</quote>, που τρέχει με επεξεργαστή αρχιτεκτονικής x86
+ της Intel ή άλλον συμβατό
+
+ <footnote>
+ <para>Αυτό ακριβώς σημαίνει το <literal>i386</literal>. Ακόμη και
+ αν δεν χρησιμοποιείτε επεξεργαστή Intel 386 CPU στο &os; σύστημα
+ σας, θα εμφανίζεται το <literal>i386</literal>. Αυτή είναι η
+ <quote>αρχιτεκτονική</quote>, κατασκευής του επεξεργαστή και όχι
+ το μοντέλο του επεξεργαστή.</para>
+ </footnote>.
+
+ Το όνομα αυτής της μηχανής (όλες οι μηχανές &unix; έχουν κάποιο
+ όνομα) είναι <hostid>pc3.example.org</hostid>, και έχετε ανοικτό
+ μπροστά σας το τερματικό <devicename>ttyv0</devicename> &mdash;
+ κονσόλα του συστήματος.</para>
+
+ <para>Ολοκληρώνοντας, η τελευταία γραμμή είναι πάντα:</para>
+
+ <programlisting>login:</programlisting>
+
+ <para>Σε αυτό το μέρος θα πρέπει να πληκτρολογήσετε το <quote>όνομα
+ χρήστη</quote> (username) για να συνδεθείτε στο &os;. Στην επόμενη
+ ενότητα θα περιγράψουμε ακριβώς αυτήν την διαδικασία.</para>
+ </sect2>
+
+ <sect2 id="consoles-login">
+ <title>Εισαγωγή Χρήστη στο Σύστημα &os;</title>
+
+ <para>Το &os; είναι ένα σύστημα πολυχρηστικό (multiuser) και
+ πολυεπεξεργαστικό (multiprocessing). Αυτός είναι ο ακαδημαϊκός
+ ορισμός που δίνεται συνήθως σε ένα σύστημα που μπορεί να
+ χρησιμοποιείται από πολλούς διαφορετικούς ανθρώπους, ενώ ταυτόχρονα
+ τρέχουν διαφορετικά προγράμματα στην ίδια μηχανή.</para>
+
+ <para>Κάθε σύστημα multiuser χρειάζεται κάποιους τρόπους ώστε να
+ ξεχωρίζει κάθε <quote>χρήστη</quote> από τους υπολοίπους. Στο &os;
+ (όπως και σε όλα τα Λ.Σ. που βασίζονται στο &unix;), αυτό
+ επιτυγχάνεται απαιτώντας κάθε χρήστης να <quote>είναι συνδεδεμένος
+ (log in)</quote> πριν να μπορεί να τρέξει προγράμματα. Κάθε χρήστης
+ έχει ξεχωριστό όνομα (το <quote>όνομα χρήστη ή username</quote>) και
+ μία προσωπική δικλείδα ασφαλείας, (τον <quote>κωδικό πρόσβασης ή
+ password</quote>). Αυτά θα ζητηθούν από το &os; σε κάθε χρήστη πριν
+ να του επιτραπεί να τρέξει οποιαδήποτε εφαρμογή.</para>
+
+ <indexterm><primary>startup scripts</primary></indexterm>
+
+ <para>Αμέσως μετά την ολοκλήρωση των διεργασιών εκκίνησης του &os; και
+ των σεναρίων εκκίνησης (startup scripts)
+
+ <footnote>
+ <para>Τα σενάρια εκκίνησης (startup scripts) είναι προγράμματα που
+ τρέχουν αυτόματα κατά την εκκίνηση του &os;. Η κύρια λειτουργία
+ τους είναι να βοηθούν στην σωστή λειτουργία όλων των συστατικών
+ του συστήματος, και να ξεκινούν όλες τις υπηρεσίες που έχετε
+ ρυθμίσει να τρέχουν στο παρασκήνιο.</para>
+ </footnote>,
+
+ θα εμφανιστεί το σύμβολο της προτροπής (prompt) και θα σας ζητηθεί ένα
+ έγκυρο όνομα χρήστη:</para>
+
+ <screen>login:</screen>
+
+ <para>Για παράδειγμα, ας υποθέσουμε πως το όνομα χρήστη σας είναι
+ <username>john</username>. Πληκτρολογήστε <literal>john</literal>
+ στην προτροπή και πατήστε <keycap>Enter</keycap>. Θα ακολουθήσει μια
+ νέα προτροπή για να δώσετε τον
+ <quote>κωδικό πρόσβασης (password)</quote>:</para>
+
+ <screen>login: <userinput>john</userinput>
+Password:</screen>
+
+ <para>Πληκτρολογήστε τώρα τον κωδικό πρόσβασης του
+ <username>john</username>, και πατήστε <keycap>Enter</keycap>. Ο
+ κωδικός πρόσβασης <emphasis>δεν είναι ορατός!</emphasis> Δεν
+ χρειάζεται να ανησυχείτε για αυτό. Είναι επαρκές να πούμε πως αυτό
+ συμβαίνει για λόγους ασφαλείας.</para>
+
+ <para>Αν έχετε πληκτρολογήσει σωστά τον κωδικό πρόσβασης, τότε έχετε
+ συνδεθεί στο &os; και είστε έτοιμοι να δοκιμάσετε όλες τις διαθέσιμες
+ εντολές &unix;.</para>
+
+ <para>Πρέπει να δείτε το <acronym>MOTD</acronym> ή αλλιώς το ημερήσιο
+ μήνυμα και στη συνέχεια την προτροπή εντολής (ένα
+ χαρακτήρα <literal>#</literal>, <literal>$</literal>, ή
+ <literal>%</literal>). Αυτό σημαίνει πως έχετε συνδεθεί επιτυχώς στο
+ &os;.</para>
+ </sect2>
+
+ <sect2 id="consoles-virtual">
+ <title>Πολλαπλές Κονσόλες</title>
+
+ <para>Η εκτέλεση εντολών &unix; σε μία μόνο κονσόλα μπορεί να είναι
+ ικανοποιητική, αλλά το &os; μπορεί να τρέχει ταυτόχρονα πολλά
+ προγράμματα. Η ύπαρξη μίας μόνο κονσόλας για πληκτρολόγηση εντολών
+ θα ήταν πραγματικά ελλιπής για ένα Λ.Σ. όπως το &os; που μπορεί να
+ τρέχει ταυτόχρονα δεκάδες προγράμματα. Εδώ είναι που χρειάζονται οι
+ <quote>εικονικές κονσόλες</quote>.</para>
+
+ <para>Το &os; μπορεί να ρυθμιστεί κατάλληλα ώστε να παρουσιάζεται με
+ διάφορες εικονικές κονσόλες. Η εναλλαγή από μία εικονική κονσόλα
+ σε οποιαδήποτε άλλη μπορεί να γίνει πατώντας μερικά πλήκτρα στο
+ πληκτρολόγιο. Η κάθε κονσόλα έχει το δικό της κανάλι εξόδου, και
+ καθώς εναλλάσσετε εικονικές κονσόλες το &os; αποθηκεύει και επαναφέρει
+ προσεκτικά το αντίστοιχο πληκτρολόγιο και οθόνη για κάθε κονσόλα σαν
+ να υπήρχε πραγματική εναλλαγή.</para>
+
+ <para>Συνδυασμοί ειδικών πλήκτρων χρησιμοποιούνται από το &os; για την
+ εναλλαγή κονσολών
+
+ <footnote>
+ <para>Για όλες τις τεχνικές λεπτομέρειες και ακριβείς περιγραφές
+ των οδηγών (drivers) που χρησιμοποιούνται στο &os; για κονσόλες
+ και πληκτρολόγια μπορείτε να βρείτε στις σελίδες &man.syscons.4;,
+ &man.atkbd.4;, &man.vidcontrol.1; και &man.kbdcontrol.1;
+ των σελίδων βοήθειας (manual pages). Δεν θα συνεχίσουμε
+ περαιτέρω, αλλά ο ενδιαφερόμενος αναγνώστης μπορεί να
+ συμβουλεύεται πάντα τις σελίδες βοηθείας για περισσότερο
+ λεπτομερή και ολοκληρωμένη επεξήγηση των λειτουργιών.</para>
+ </footnote>.
+
+ Μπορείτε να χρησιμοποιήσετε
+ <keycombo><keycap>Alt</keycap><keycap>F1</keycap></keycombo>,
+ <keycombo><keycap>Alt</keycap><keycap>F2</keycap></keycombo>,έως
+ <keycombo><keycap>Alt</keycap><keycap>F8</keycap></keycombo> για να
+ μεταβείτε στις διάφορες εικονικές κονσόλες του &os;.</para>
+
+ <para>Καθώς εναλλάσσεστε από τη μία κονσόλα στην άλλη, το &os;
+ αποθηκεύει και επαναφέρει προσεκτικά την αντίστοιχη οθόνη. Το
+ αποτέλεσμα είναι ένα <quote>οπτικό τρικ</quote> σαν να είχαμε
+ πολλαπλές <quote>εικονικές</quote> οθόνες και πληκτρολόγια που θα
+ μπορούσαμε να χρησιμοποιήσουμε για να τρέχουμε εντολές στο &os;.
+ Τα προγράμματα που τρέχετε από μια κονσόλα δεν σταματούν να
+ λειτουργούν όταν η κονσόλα δεν είναι ορατή. Συνεχίζουν να τρέχουν κι
+ όταν βρίσκεστε σε διαφορετική κονσόλα.</para>
+ </sect2>
+
+ <sect2 id="consoles-ttys">
+ <title>Το Αρχείο <filename>/etc/ttys</filename></title>
+
+ <para>Η εξ' ορισμού ρύθμιση του &os; θα ξεκινήσει με οκτώ εικονικές
+ κονσόλες. Δεν πρόκειται για μια πολύπλοκη ρύθμιση και μπορείτε εύκολα
+ να την αλλάξετε ώστε να φορτώνονται περισσότερες ή λιγότερες εικονικές
+ κονσόλες κατά την εκκίνηση. Το πλήθος και η παραμετροποίηση των
+ εικονικών κονσολών ρυθμίζεται στο αρχείο
+ <filename>/etc/ttys</filename>.</para>
+
+ <para>Μπορείτε να χρησιμοποιήσετε το αρχείο
+ <filename>/etc/ttys</filename> για να ρυθμίσετε τις εικονικές κονσόλες
+ στο &os;. Κάθε γραμμή του αρχείου που δεν είναι σχόλιο (οι γραμμές
+ που δεν ξεκινούν με τον χαρακτήρα <literal>#</literal>) περιέχουν
+ ρυθμίσεις για ένα τερματικό ή για μια εικονική κονσόλα. Η
+ προκαθορισμένη έκδοση του αρχείου, η οποία περιέχεται στην διανομή
+ &os;, περιέχει εννέα εικονικές κονσόλες, εκ των οποίων οι οκτώ είναι
+ ενεργοποιημένες. Είναι στις γραμμές που ξεκινούν με
+ <literal>ttyv</literal>:</para>
+
+ <programlisting># name getty type status comments
+#
+ttyv0 "/usr/libexec/getty Pc" cons25 on secure
+# Virtual terminals
+ttyv1 "/usr/libexec/getty Pc" cons25 on secure
+ttyv2 "/usr/libexec/getty Pc" cons25 on secure
+ttyv3 "/usr/libexec/getty Pc" cons25 on secure
+ttyv4 "/usr/libexec/getty Pc" cons25 on secure
+ttyv5 "/usr/libexec/getty Pc" cons25 on secure
+ttyv6 "/usr/libexec/getty Pc" cons25 on secure
+ttyv7 "/usr/libexec/getty Pc" cons25 on secure
+ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure</programlisting>
+
+ <para>Για μια λεπτομερή περιγραφή κάθε στήλης του αρχείου και όλων των
+ ρυθμίσεων που μπορούν να εφαρμοστούν για τις εικονικές κονσόλες
+ συμβουλευτείτε την σελίδα βοηθείας &man.ttys.5;.</para>
+ </sect2>
+
+ <sect2 id="consoles-singleuser">
+ <title>Κονσόλα σε Κατάσταση Ενός Χρήστη</title>
+
+ <para>Μπορείτε να βρείτε μια λεπτομερή περιγραφή για το τι είναι
+ <quote>κατάσταση ενός χρήστη</quote> στην ενότητα
+ <xref linkend="boot-singleuser">. Αξίζει να αναφέρουμε πως υπάρχει
+ ενεργή μόνο μία κονσόλα όταν τρέχετε το &os; σε κατάσταση ενός
+ χρήστη. Δεν υπάρχουν διαθέσιμες εικονικές κονσόλες. Στο
+ αρχείο <filename>/etc/ttys</filename> μπορείτε να βρείτε τις
+ ρυθμίσεις σε κατάσταση ενός χρήστη. Αναζητήστε την γραμμή που ξεκινά
+ με <literal>console</literal>:</para>
+
+ <programlisting># name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off secure</programlisting>
+
+ <note>
+ <para>Όπως αναφέρουν τα σχόλια πάνω από το <literal>console</literal>,
+ μπορείτε να επεξεργαστείτε αυτήν τη γραμμή και να αντικαταστήσετε
+ την λέξη <literal>secure</literal> με <literal>insecure</literal>.
+ Σε αυτή την περίπτωση κατά την εκκίνηση του &os; σε κατάσταση ενός
+ χρήστη, θα σας ζητηθεί ο κωδικός πρόσβασης του υπερχρήστη
+ <username>root</username>.</para>
+
+ <para><emphasis>Προσέχετε όταν κάνετε την μετατροπή σε
+ <literal>insecure</literal></emphasis>. Εάν τύχει να ξεχάσετε τον
+ κωδικό πρόσβασης του <username>root</username>, η πρόσβαση σε
+ κατάσταση λειτουργίας ενός χρήστη μπορεί να γίνει δύσβατη. Υπάρχει
+ ακόμη τρόπος να κάνετε εκκίνηση, αλλά ίσως να είναι δύσκολο για
+ κάποιον που δεν γνωρίζει πολλά για τις διεργασίες και τα
+ προγράμματα εκκίνησης του &os;.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="consoles-vidcontrol">
+ <title>Αλλάζοντας την Ανάλυση (video mode) της Κονσόλας</title>
+
+ <para>Η προεπιλεγμένη απεικόνιση της κονσόλας στο &os; μπορεί να
+ ρυθμιστεί σε ανάλυση 1024x768, 1280x1024, ή σε οποιοδήποτε άλλο
+ μέγεθος υποστηρίζεται από την κάρτα γραφικών και την οθόνη σας. Για
+ να χρησιμοποιήσετε διαφορετική ανάλυση, θα πρέπει πρώτα από όλα να
+ επαναμεταγλωττίσετε τον πυρήνα σας, και να συμπεριλάβετε τις παρακάτω
+ δύο επιλογές:</para>
+
+ <programlisting>options VESA
+options SC_PIXEL_MODE</programlisting>
+
+ <para>Μετά τη μεταγλώττιση του πυρήνα με τις παραπάνω δύο επιλογές,
+ μπορείτε να βρείτε ποιες αναλύσεις υποστηρίζονται από το υλικό σας,
+ χρησιμοποιώντας το βοηθητικό πρόγραμμα &man.vidcontrol.1;. Για να
+ δείτε μια λίστα από τις υποστηριζόμενες αναλύσεις, δώστε την ακόλουθη
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>vidcontrol -i mode</userinput></screen>
+
+ <para>Η έξοδος της εντολής αυτής, είναι μια λίστα από αναλύσεις οθόνης
+ που υποστηρίζονται από το υλικό σας. Μπορείτε έπειτα να επιλέξετε
+ μια νέα ανάλυση, δίνοντας την ως όρισμα στην &man.vidcontrol.1; σε
+ μια κονσόλα που έχετε συνδεθεί ως <username>root</username>:</para>
+
+ <screen>&prompt.root; <userinput>vidcontrol MODE_279</userinput></screen>
+
+ <para>Αν η νέα ανάλυση γίνει δεκτή, μπορείτε να την ορίσετε ως
+ προεπιλεγμένη για κάθε εκκίνηση, με την κατάλληλη ρύθμιση στο αρχείο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>allscreens_flags="MODE_279"</programlisting>
+ </sect2>
+ </sect1>
+
+ <sect1 id="permissions">
+ <title>Άδειες (Permissions)</title>
+ <indexterm><primary>UNIX</primary></indexterm>
+
+ <para>Το &os; είναι απόγονος του BSD &unix;, και για αυτό το λόγο
+ βασίζεται σε μερικές έννοιες κλειδιά του &unix;. Η πρώτη και πιο
+ σημαντική είναι πως το &os; είναι ένα πολυχρηστικό (multiuser)
+ λειτουργικό σύστημα. Το σύστημα μπορεί να εξυπηρετήσει πολλούς χρήστες
+ που εργάζονται ταυτόχρονα και σε εντελώς ανεξάρτητες εφαρμογές.
+ Το σύστημα είναι υπεύθυνο για τον σωστό διαμοιρασμό και τις ανάγκες
+ διαχείρισης συσκευών hardware, περιφερειακών, μνήμης, και την σωστή
+ κατανομή των πόρων της CPU για κάθε χρήστη.</para>
+
+ <para>Επειδή το σύστημα έχει την ικανότητα να εξυπηρετεί πολλούς χρήστες,
+ σε οτιδήποτε διαχειρίζεται, υπάρχει μια ομάδα αδειών που ορίζει ποιος
+ μπορεί να διαβάσει, να γράψει και να εκτελέσει αυτούς τους πόρους. Οι
+ άδειες αποθηκεύονται σε οκτάδες διαχωρισμένες σε τρία μέρη, ένα για τον
+ ιδιοκτήτη του αρχείου, ένα για την ομάδα στην οποία ανήκει το αρχείο,
+ και ένα μέρος για όλους τους άλλους. Στη συνέχεια παρουσιάζεται πίνακας
+ με τις αντιστοιχίες μεταξύ των ομάδων αδειών και των αριθμητικών τους
+ τιμών.</para>
+
+ <indexterm><primary>άδειες</primary></indexterm>
+ <indexterm>
+ <primary>άδειες αρχείων</primary>
+ </indexterm>
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Τιμή</entry>
+ <entry>Άδεια</entry>
+ <entry>Εμφάνιση σε περιεχόμενα καταλόγων</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>0</entry>
+ <entry>Ανάγνωση:όχι, Εγγραφή:όχι, Εκτέλεση:όχι</entry>
+ <entry><literal>---</literal></entry>
+ </row>
+
+ <row>
+ <entry>1</entry>
+ <entry>Ανάγνωση:όχι, Εγγραφή:όχι, Εκτέλεση:ναι</entry>
+ <entry><literal>--x</literal></entry>
+ </row>
+
+ <row>
+ <entry>2</entry>
+ <entry>Ανάγνωση:όχι, Εγγραφή:ναι, Εκτέλεση:όχι</entry>
+ <entry><literal>-w-</literal></entry>
+ </row>
+
+ <row>
+ <entry>3</entry>
+ <entry>Ανάγνωση:όχι, Εγγραφή:ναι, Εκτέλεση:ναι</entry>
+ <entry><literal>-wx</literal></entry>
+ </row>
+
+ <row>
+ <entry>4</entry>
+ <entry>Ανάγνωση:ναι, Εγγραφή:όχι, Εκτέλεση:όχι</entry>
+ <entry><literal>r--</literal></entry>
+ </row>
+
+ <row>
+ <entry>5</entry>
+ <entry>Ανάγνωση:ναι, Εγγραφή:όχι, Εκτέλεση:ναι</entry>
+ <entry><literal>r-x</literal></entry>
+ </row>
+
+ <row>
+ <entry>6</entry>
+ <entry>Ανάγνωση:ναι, Εγγραφή:ναι, Εκτέλεση:όχι</entry>
+ <entry><literal>rw-</literal></entry>
+ </row>
+
+ <row>
+ <entry>7</entry>
+ <entry>Ανάγνωση:ναι, Εγγραφή:ναι, Εκτέλεση:ναι</entry>
+ <entry><literal>rwx</literal></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <indexterm>
+ <primary><command>ls</command></primary>
+ </indexterm>
+ <indexterm><primary>directories</primary></indexterm>
+
+ <para>Μπορείτε να χρησιμοποιήσετε την εντολή &man.ls.1; με πρόθεμα
+ <option>-l</option> στην γραμμή εντολών για να δείτε τα περιεχόμενα
+ καταλόγου και παρατηρήστε πως περιέχεται μια στήλη με τις άδειες των
+ αρχείων για τον ιδιοκτήτη, την ομάδα, και για όλους τους άλλους. Για
+ παράδειγμα, αν δώσουμε <command>ls -l</command> σε ένα τυχαίο
+ κατάλογο:</para>
+
+ <screen>&prompt.user; <userinput>ls -l</userinput>
+total 530
+-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
+-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
+-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
+...</screen>
+
+ <para>Η πρώτη στήλη που παίρνουμε με την εντολή <command>ls -l</command>
+ διαχωρίζεται ως εξής:</para>
+
+ <screen>-rw-r--r--</screen>
+
+ <para>Ο πρώτος χαρακτήρας (από τα αριστερά) μας ενημερώνει αν πρόκειται
+ για ένα κανονικό αρχείο, κατάλογο, ειδική συσκευή χαρακτήρων,
+ υποδοχέα (socket), ή οποιαδήποτε άλλo αρχείο ψευδο-συσκευής. Στην
+ περίπτωση μας, το <literal>-</literal> υποδηλώνει ένα κανονικό αρχείο.
+ Οι ακόλουθοι τρεις χαρακτήρες, στο παράδειγμα μας,
+ <literal>rw-</literal>, ορίζουν τις άδειες για τον ιδιοκτήτη του
+ αρχείου. Οι τρεις επόμενοι χαρακτήρες, <literal>r--</literal>, ορίζουν
+ τις άδειες για την ομάδα στην οποία ανήκει το αρχείο. Οι τελευταίοι
+ τρεις χαρακτήρες, <literal>r--</literal>, ορίζουν τις άδειες για τον
+ υπόλοιπο κόσμο. Η παύλα σημαίνει πως η άδεια είναι απενεργοποιημένη.
+ Στην περίπτωση του αρχείου μας, οι άδειες έχουν οριστεί ώστε ο
+ ιδιοκτήτης να μπορεί να διαβάζει και να γράφει στο αρχείο, η ομάδα να
+ μπορεί να διαβάσει το αρχείο, και ο υπόλοιπος κόσμος να μπορεί μόνο να
+ διαβάσει το αρχείο. Σύμφωνα με τον παραπάνω πίνακα, οι άδειες για αυτό
+ το αρχείο είναι <literal>644</literal>, όπου καθένα από τα τρία ψηφία
+ παρουσιάζει το αντίστοιχο μέρος αδειών του αρχείου.</para>
+
+ <para>Μέχρι εδώ είναι όλα καλά, αλλά όμως πως το σύστημα ελέγχει τις
+ άδειες συσκευών; Το &os; μεταχειρίζεται τις περισσότερες συσκευές σαν
+ ένα αρχείο το οποίο τα προγράμματα μπορούν να ανοίξουν, να διαβάσουν
+ και να γράψουν σε αυτό σαν να ήταν ένα οποιοδήποτε αρχείο. Αυτά τα
+ ειδικά αρχεία συσκευών αποθηκεύονται στον κατάλογο
+ <filename>/dev</filename>.</para>
+
+ <para>Το σύστημα μεταχειρίζεται επίσης και τους καταλόγους ως αρχεία.
+ Έχουν άδειες ανάγνωσης, εγγραφής και εκτέλεσης. Το bit που ορίζει την
+ εκτέλεση στους καταλόγους έχει ελαφρώς διαφορετικό νόημα από ότι στα
+ αρχεία. Όταν ένας κατάλογος έχει οριστεί εκτελέσιμος, σημαίνει πως
+ είναι προσπελάσιμος, δηλαδή είναι επιτρεπτό να περάσουμε σε ένα
+ υποκατάλογο του (να κάνουμε <quote>cd</quote>). Αυτό επίσης σημαίνει
+ πως επιτρέπεται η πρόσβαση σε όλα τα γνωστά (αυτό έχει να κάνει με τις
+ άδειες των ίδιων των αρχείων) αρχεία.</para>
+
+ <para>Ειδικότερα, για να εμφανίζονται τα περιεχόμενα καταλόγου πρέπει να
+ έχει τεθεί άδεια ανάγνωσης (read) στον κατάλογο, ενώ για να διαγραφεί
+ ένα αρχείο του οποίου γνωρίζετε το όνομα είναι αναγκαίο να έχουν δοθεί
+ οι άδειες εγγραφής (write) <emphasis>και </emphasis> εκτέλεσης (execute)
+ στον κατάλογο που περιέχει το αρχείο.</para>
+
+ <para>Υπάρχουν κι άλλα bit αδειών, αλλά χρησιμοποιούνται κυρίως σε
+ ειδικές περιπτώσεις όπως σε setuid binaries και sticky directories. Αν
+ θέλετε περισσότερες πληροφορίες για τις άδειες αρχείων και πως να τις
+ ορίζετε, συμβουλευτείτε οπωσδήποτε την σελίδα manual
+ &man.chmod.1;.</para>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Συμβολικές Άδειες</title>
+ <indexterm><primary>>άδειες</primary><secondary>συμβολικές</secondary></indexterm>
+
+ <para>Οι συμβολικές άδειες, μερικές φορές αναφέρονται και ως συμβολικές
+ εκφράσεις, χρησιμοποιούν χαρακτήρες στην θέση των οκτώ τιμών για να
+ θέτουν άδειες σε αρχεία ή καταλόγους. Οι συμβολικές εκφράσεις
+ χρησιμοποιούν την σύνταξη (ποιος) (ενέργεια) (άδειες), όπου είναι
+ διαθέσιμες οι ακόλουθες τιμές:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Επιλογή</entry>
+ <entry>Γράμμα</entry>
+ <entry>Σημαίνει</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>(ποιος)</entry>
+ <entry>u</entry>
+ <entry>User (Χρήστης)</entry>
+ </row>
+
+ <row>
+ <entry>(ποιος)</entry>
+ <entry>g</entry>
+ <entry>Group owner (Ομάδα που ανήκει)</entry>
+ </row>
+
+ <row>
+ <entry>(ποιος)</entry>
+ <entry>o</entry>
+ <entry>Other (Υπόλοιποι χρήστες)</entry>
+ </row>
+
+ <row>
+ <entry>(ποιος)</entry>
+ <entry>a</entry>
+ <entry>All (όλοι, <quote>world</quote>)</entry>
+ </row>
+
+ <row>
+ <entry>(ενέργεια)</entry>
+ <entry>+</entry>
+ <entry>Πρόσθεση αδειών</entry>
+ </row>
+
+ <row>
+ <entry>(ενέργεια)</entry>
+ <entry>-</entry>
+ <entry>Αφαίρεση αδειών</entry>
+ </row>
+
+ <row>
+ <entry>(ενέργεια)</entry>
+ <entry>=</entry>
+ <entry>Άμεσος ορισμός αδειών</entry>
+ </row>
+
+ <row>
+ <entry>(άδειες)</entry>
+ <entry>r</entry>
+ <entry>Read (Ανάγνωση)</entry>
+ </row>
+
+ <row>
+ <entry>(άδειες)</entry>
+ <entry>w</entry>
+ <entry>Write (Εγγραφή)</entry>
+ </row>
+
+ <row>
+ <entry>(άδειες)</entry>
+ <entry>x</entry>
+ <entry>Execute (Εκτέλεση)</entry>
+ </row>
+
+ <row>
+ <entry>(άδειες)</entry>
+ <entry>t</entry>
+ <entry>Sticky bit</entry>
+ </row>
+
+ <row>
+ <entry>(άδειες)</entry>
+ <entry>s</entry>
+ <entry>Set UID ή GID</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Οι τιμές εισάγονται με την εντολή &man.chmod.1; όπως πριν, αλλά
+ με γράμματα. Για παράδειγμα, θα μπορούσατε να χρησιμοποιήσετε την
+ ακόλουθη εντολή για να απαγορεύσετε σε άλλους χρήστες την πρόσβαση στο
+ <replaceable>FILE</replaceable>:</para>
+
+ <screen>&prompt.user; <userinput>chmod go= FILE</userinput></screen>
+
+ <para>Μπορούν να γίνουν πάνω από μία αλλαγές στις άδειες ενός αρχείου
+ ταυτόχρονα διαχωρίζοντας τις αλλαγές με κόμμα. Για παράδειγμα, η
+ ακόλουθη εντολή θα αφαιρέσει στην ομάδα και στον
+ <quote>υπόλοιπο κόσμο</quote> την άδεια εγγραφής, και στη συνέχεια θα
+ προσθέσει άδεια εκτέλεσης σε όλους.</para>
+
+ <screen>&prompt.user; <userinput>chmod go-w,a+x <replaceable>FILE</replaceable></userinput></screen>
+
+<!--
+ <para>Οι περισσότεροι χρήστες δεν θα το προσέξουν, αλλά θα πρέπει να
+ σημειώσουμε ότι χρησιμοποιώντας την μέθοδο των οκτάδων το μόνο που
+ κάνουμε είναι να τίθονται άδειες σε αρχεία. Δεν προσθέτουμε, ούτε
+ σβήνουμε.</para>
+-->
+ </sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>&os; File Flags</title>
+
+ <para>Πέρα από τις άδειες αρχείων που συζητήθηκαν πριν από λίγο, το &os;
+ υποστηρίζει την χρήση των <quote>file flags.</quote> Αυτά τα flags
+ προσθέτουν ένα επιπρόσθετο επίπεδο ασφαλείας και ελέγχου σε αρχεία,
+ αλλά όχι σε καταλόγους.</para>
+
+ <para>Αυτά τα flags προσθέτουν ένα πρόσθετο επίπεδο ελέγχου σε αρχεία,
+ διασφαλίζοντας μας πως σε κάποιες περιπτώσεις ακόμη κι ο
+ <username>root</username> να μην μπορεί να διαγράψει ή να μετατρέψει
+ αρχεία.</para>
+
+ <para>Η μετατροπή των file flags γίνεται με την &man.chflags.1;,
+ χρησιμοποιώντας μια απλή διασύνδεση. Για παράδειγμα, για να
+ ενεργοποιήσουμε το flag του συστήματος μη διαγραφής αρχείου στο
+ αρχείο <filename>file1</filename>, δίνουμε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>chflags sunlink <filename>file1</filename></userinput></screen>
+
+ <para>Και για να απενεργοποιήσουμε το flag του συστήματος μη διαγραφής
+ αρχείου, απλά δίνουμε την προηγούμενη εντολή με <quote>no</quote>
+ μπροστά από το <option>sunlink</option>. Παρατηρήστε:</para>
+
+ <screen>&prompt.root; <userinput>chflags nosunlink <filename>file1</filename></userinput></screen>
+
+ <para>Για να δείτε τα flags ενός αρχείου, χρησιμοποιήστε την εντολή
+ &man.ls.1; με το πρόθεμα <option>-lo</option>:</para>
+
+ <screen>&prompt.root; <userinput>ls -lo <filename>file1</filename></userinput></screen>
+
+ <para>Στην έξοδο θα πρέπει να δείτε κάτι παρόμοιο με το ακόλουθο:</para>
+
+ <programlisting>-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1</programlisting>
+
+ <para>Μερικά flags μπορούν να προστεθούν ή να αφαιρεθούν μόνο από τον
+ χρήστη <username>root</username>. Στις υπόλοιπες περιπτώσεις, ο
+ ιδιοκτήτης του αρχείου μπορεί να θέσει αυτά τα flags. Προτείνουμε
+ στους διαχειριστές να διαβάσουν τις σελίδες βοηθείας
+ &man.chflags.1; και &man.chflags.2; για περισσότερες
+ πληροφορίες.</para>
+ </sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Οι Άδειες setuid, setgid και sticky</title>
+
+ <para>Εκτός από τις άδειες που έχουμε συζητήσει ήδη, υπάρχουν τρεις
+ ακόμα τις οποίες κάθε διαχειριστής πρέπει να γνωρίζει. Πρόκειται για
+ τις άδειες <literal>setuid</literal>, <literal>setgid</literal> και
+ <literal>sticky</literal>.</para>
+
+ <para>Οι παραπάνω είναι σημαντικές για κάποιες λειτουργίες στο &unix;,
+ καθώς παρέχουν λειτουργίες που δεν είναι φυσιολογικά διαθέσιμες στους
+ κοινούς χρήστες. Για να τις κατανοήσετε, θα πρέπει πρώτα να
+ καταλάβετε την διαφορά μεταξύ του πραγματικού αναγνωριστικού χρήστη
+ (real user ID) και του ενεργού αναγνωριστικού χρήστη (effective user
+ ID).</para>
+
+ <para>Το πραγματικό ID του χρήστη, είναι το <acronym>UID</acronym>
+ στο οποίο ανήκει, ή με το οποίο ξεκινά, μια διεργασία. Το ενεργό
+ <acronym>UID</acronym>, είναι το αναγνωριστικό χρήστη το οποίο
+ εκτελεί την διεργασία. Για παράδειγμα, το βοηθητικό πρόγραμμα
+ &man.passwd.1; εκτελείται με το πραγματικό ID του χρήστη που αλλάζει
+ τον κωδικό του. Ωστόσο, για να μπορεί να διαχειριστεί την βάση
+ δεδομένων με τους κωδικούς του συστήματος, το πρόγραμμα αυτό
+ χρησιμοποιεί ως ενεργό ID αυτό του χρήστη <username>root</username>.
+ Με αυτό τον τρόπο, επιτρέπεται στους απλούς χρήστες να αλλάζουν τους
+ κωδικούς τους χωρίς να παίρνουν το μήνυμα λάθους
+ <errorname>Permission Denied</errorname> (απαγόρευση
+ πρόσβασης).</para>
+
+ <note>
+ <para>Η επιλογή <literal>nosuid</literal> στην εντολή &man.mount.8;
+ θα προκαλέσει αποτυχία εκτέλεσης αυτών των εντολών, και μάλιστα
+ χωρίς κάποιο μήνυμα λάθους. Με λίγα λόγια, η εκτέλεση τους θα
+ αποτύχει, και ο χρήστης δεν θα ενημερωθεί για αυτό. Η επιλογή
+ αυτή δεν είναι επίσης απόλυτα ασφαλής, καθώς (σύμφωνα με τη σελίδα
+ manual &man.mount.8;) υπάρχει τρόπος να παρακαμφθεί μέσω κάποιου
+ ενδιάμεσου <literal>nosuid</literal> προγράμματος (wrapper).</para>
+ </note>
+
+ <para>Μπορείτε να καθορίσετε την άδεια setuid, τοποθετώντας τον αριθμό
+ τέσσερα (4) μπροστά από το γενικό σετ των αδειών, όπως φαίνεται
+ στο ακόλουθο παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>chmod 4755 suidexample.sh</userinput></screen>
+
+ <para>Οι άδειες στο αρχείο
+ <filename><replaceable>suidexample.sh</replaceable></filename> θα
+ φαίνονται τώρα όπως παρακάτω:</para>
+
+ <programlisting>-rwsr-xr-x 1 trhodes trhodes 63 Aug 29 06:36 suidexample.sh</programlisting>
+
+ <para>Παρατηρήστε στο παράδειγμα, ότι το <literal>s</literal> είναι
+ πλέον μέλος του συνόλου αδειών που έχουν καθοριστεί για τον ιδιοκτήτη
+ του αρχείου, και έχει αντικαταστήσει την αντίστοιχη άδεια εκτέλεσης.
+ Με τον τρόπο αυτό λειτουργούν προγράμματα που χρειάζονται αυξημένα
+ δικαιώματα, όπως για παράδειγμα η εντολή
+ <command>passwd</command>.</para>
+
+ <para>Για να παρατηρήσετε αυτή τη λειτουργία την ώρα που συμβαίνει,
+ ανοίξτε δύο τερματικά. Στο πρώτο, ξεκινήστε την εντολή
+ <command>passwd</command> ως κανονικός χρήστης. Καθώς η εντολή
+ εκτελείται και περιμένει για την εισαγωγή του νέου κωδικού, ελέγξτε
+ τον πίνακα διεργασιών και αναζητήστε τις πληροφορίες του χρήστη που
+ εκτελεί την εντολή <command>passwd</command>.</para>
+
+ <para>Στο τερματικό Α:</para>
+
+ <screen>Changing local password for trhodes
+Old Password:</screen>
+
+ <para>Στο τερματικό Β:<para>
+
+ <screen>&prompt.root; <userinput>ps aux | grep passwd</userinput></screen>
+
+ <screen>trhodes 5232 0.0 0.2 3420 1608 0 R+ 2:10AM 0:00.00 grep passwd
+root 5211 0.0 0.2 3620 1724 2 I+ 2:09AM 0:00.01 passwd</screen>
+
+ <para>Όπως είπαμε παραπάνω, η εντολή <command>passwd</command>
+ εκτελείται από ένα κανονικό χρήστη, αλλά χρησιμοποιεί το ενεργό
+ <acronym>UID</acronym> του χρήστη <username>root</username>.</para>
+
+ <para>Η άδεια <literal>setgid</literal> εκτελεί την ίδια λειτουργία όπως
+ και η <literal>setuid</literal>, αλλά επιδρά στις άδειες της ομάδας
+ (group). Όταν εκτελέσετε μια τέτοια εφαρμογή ή βοηθητικό πρόγραμμα,
+ θα χρησιμοποιεί τις άδειες της ομάδας στην οποία ανήκει το αρχείο,
+ και όχι του χρήστη που την ξεκίνησε.</para>
+
+ <para>Για να θέσετε την άδεια <literal>setgid</literal> σε ένα αρχείο,
+ θα πρέπει να τοποθετήσετε τον αριθμό δύο (2) μπροστά από το σύνολο
+ αδειών, στην εντολή <command>chmod</command>. Δείτε το παρακάτω
+ παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>chmod 2755 sgidexample.sh</userinput></screen>
+
+ <para>Όπως και πριν, θα παρατηρήσετε τη νέα άδεια <literal>s</literal>,
+ αλλά αυτή τη φορά στο σετ των αδειών της ομάδας:</para>
+
+ <screen>-rwxr-sr-x 1 trhodes trhodes 44 Aug 31 01:49 sgidexample.sh</screen>
+
+ <note>
+ <para>Στα παραδείγματα μας, αν και το αρχείο είναι ένα εκτελέσιμο
+ script για κέλυφος, δεν θα εκτελεστεί με διαφορετικό ενεργό ID
+ (<acronym>EUID</acronym>). Αυτό συμβαίνει γιατί σε αυτά τα scripts
+ δεν επιτρέπεται η πρόσβαση στις κλήσεις &man.setuid.2; του
+ συστήματος.</para>
+ </note>
+
+ <para>Οι δύο πρώτες ειδικές άδειες που αναφέραμε,
+ οι <literal>setuid</literal> και <literal>setgid</literal>,
+ ενδεχομένως να μειώσουν την ασφάλεια του συστήματος, αφού επιτρέπουν
+ σε προγράμματα να εκτελούνται με αυξημένα δικαιώματα. Υπάρχει ωστόσο
+ μια τρίτη ειδική άδεια, η οποία μπορεί να αυξήσει την ασφάλεια του
+ συστήματος: το <literal>sticky bit</literal>.</para>
+
+ <para>Όταν θέσετε το <literal>sticky bit</literal> σε ένα κατάλογο,
+ επιτρέπεται η διαγραφή ενός αρχείου μόνο από τον ιδιοκτήτη του.
+ Η άδεια αυτή είναι χρήσιμη για να αποφεύγεται η διαγραφή ενός αρχείου
+ από κοινόχρηστους καταλόγους, όπως για παράδειγμα ο
+ <filename class="directory">/tmp</filename>, από κάποιο χρήστη που
+ δεν είναι ο ιδιοκτήτης του. Για να θέσετε αυτή την άδεια, τοποθετήστε
+ τον αριθμό ένα (1) στην αρχή του σετ αδειών:</para>
+
+ <screen>&prompt.root; <userinput>chmod 1777 /tmp</userinput></screen>
+
+ <para>Μπορείτε τώρα να δείτε το αποτέλεσμα, χρησιμοποιώντας την εντολή
+ <command>ls</command>:</para>
+
+ <screen>&prompt.root; <userinput>ls -al / | grep tmp</userinput></screen>
+
+ <screen>drwxrwxrwt 10 root wheel 512 Aug 31 01:49 tmp</screen>
+
+ <para>Η άδεια <literal>sticky bit</literal> φαίνεται ως
+ <literal>t</literal> στο τέλος του συνόλου των αδειών.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="dirstructure">
+ <title>Δομή Καταλόγου</title>
+ <indexterm><primary>ιεραρχία δομής</primary></indexterm>
+
+ <para>Η ιεραρχική δομή του &os; είναι ένα βασικό στοιχείο που πρέπει να
+ γνωρίζετε αν θέλετε να έχετε μια ολοκληρωμένη εικόνα του συστήματος. Η
+ πιο σημαντική έννοια είναι αυτή του ριζικού (root) καταλόγου,
+ <quote>/</quote>. Αυτός ο κατάλογος προσαρτάται (mount) πρώτος κατά
+ την εκκίνηση και περιέχει το βασικό σύστημα ικανό να ετοιμάσει το Λ.Σ.
+ για λειτουργία multi-user. Ο root κατάλογος περιέχει επίσης σημεία
+ προσάρτησης για άλλα συστήματα αρχείων που προσαρτώνται κατά την
+ μετάβαση σε κατάσταση λειτουργίας multi-user.</para>
+
+ <para>Σημείο προσάρτησης (mount point) είναι ένας κατάλογος στον οποίο
+ μπορούν να αναπτυχθούν πρόσθετα συστήματα αρχείων σε ένα γονικό σύστημα
+ αρχείων (συνήθως στο root σύστημα αρχείων). Αυτό περιγράφεται
+ αναλυτικά στην ενότητα <xref linkend="disk-organization">. Στα
+ στάνταρντ σημεία προσάρτησης περιλαμβάνονται:
+ οι <filename>/usr</filename>, <filename>/var</filename>,
+ <filename>/tmp</filename>, <filename>/mnt</filename>, και
+ <filename>/cdrom</filename>. Αυτοί οι
+ κατάλογοι συνήθως είναι καταχωρημένοι στο αρχείο
+ <filename>/etc/fstab</filename>. Το <filename>/etc/fstab</filename>
+ είναι ένας πίνακας αντιστοιχίας διαφόρων συστημάτων αρχείων και σημείων
+ προσάρτησης για αναφορά στο σύστημα. Τα περισσότερα συστήματα
+ που αναφέρονται στο <filename>/etc/fstab</filename> προσαρτώνται
+ αυτόματα κατά την εκκίνηση του συστήματος από το script &man.rc.8; εκτός
+ αν περιέχεται η επιλογή <option>noauto</option>. Λεπτομέρειες μπορείτε
+ να βρείτε στο <xref linkend="disks-fstab">.</para>
+
+ <para>Μια πλήρη περιγραφή της ιεραρχίας του συστήματος αρχείων είναι
+ διαθέσιμη στο &man.hier.7;. Ακολουθεί μια σύντομη ανασκόπηση με τους
+ πιο συνήθεις καταλόγους.</para>
+
+ <para>
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Κατάλογος</entry>
+ <entry>Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody valign="top">
+ <row>
+ <entry><filename class="directory">/</filename></entry>
+ <entry> Ριζικός (root) κατάλογος του συστήματος αρχείων.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/bin/</filename></entry>
+ <entry>Χρήσιμα εργαλεία για περιβάλλον ενός ή πολλαπλών
+ χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/boot/</filename></entry>
+ <entry>Προγράμματα και αρχεία ρυθμίσεων που χρησιμοποιούνται
+ κατά την εκκίνηση του λειτουργικού συστήματος.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/boot/defaults/</filename></entry>
+ <entry>Προκαθορισμένα αρχεία ρυθμίσεων εκκίνησης, δείτε
+ &man.loader.conf.5;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/dev/</filename></entry>
+ <entry>Αρχεία συσκευών, δείτε &man.intro.4;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/etc/</filename></entry>
+ <entry>Αρχεία ρυθμίσεων συστήματος και σενάρια εκκίνησης.
+ </entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/etc/defaults/</filename></entry>
+ <entry>Προκαθορισμένα αρχεία ρυθμίσεων συστήματος, δείτε την
+ &man.rc.8;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/etc/mail/</filename></entry>
+ <entry>Αρχεία ρυθμίσεων για πράκτορες μεταφοράς ηλεκτρ.
+ ταχυδρομείου (ΜΤΑ) όπως το &man.sendmail.8;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/etc/namedb/</filename></entry>
+ <entry>Αρχεία ρυθμίσεων <command>named</command>, δείτε
+ &man.named.8;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/etc/periodic/</filename></entry>
+ <entry>Σενάρια λειτουργιών που τρέχουν σε ημερήσια, εβδομαδιαία,
+ και μηνιαία βάση, &man.cron.8;; δείτε
+ &man.periodic.8;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/etc/ppp/</filename></entry>
+ <entry>Αρχεία ρυθμίσεων <command>ppp</command>, δείτε τις
+ &man.ppp.8;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/mnt/</filename></entry>
+ <entry>Κενός κατάλογος που συνήθως χρησιμοποιείται από τους
+ διαχειριστές συστημάτων ως προσωρινό σημείο
+ προσάρτησης.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/proc/</filename></entry>
+ <entry>Σύστημα αρχείων διεργασιών, δείτε τις &man.procfs.5;,
+ &man.mount.procfs.8;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/rescue/</filename></entry>
+ <entry>Προγράμματα με στατική σύνδεση (static link) για ασφαλή
+ επαναφορά συστήματος, δείτε την &man.rescue.8;.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/root/</filename></entry>
+ <entry>Προσωπικός κατάλογος του χρήστη
+ <username>root</username>.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/sbin/</filename></entry>
+ <entry>Προγράμματα συστήματος και χρήσιμα εργαλεία διαχείρισης
+ για περιβάλλον ενός ή πολλαπλών χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/tmp/</filename></entry>
+ <entry>Προσωρινά αρχεία. Τα περιεχόμενα του
+ <filename class="directory">/tmp</filename> συνήθως δεν
+ διατηρούνται μετά από επανεκκίνηση του συστήματος. Στο
+ <filename class="directory">/tmp</filename> συνήθως
+ προσαρτάται ένα σύστημα αρχείων μνήμης. Αυτό μπορεί να
+ επιτευχθεί αυτομάτως χρησιμοποιώντας τις σχετικές μεταβλητές
+ tmpmfs του &man.rc.conf.5; (ή με μια καταχώρηση στον
+ <filename>/etc/fstab</filename>, δείτε
+ την &man.mdmfs.8;).</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/</filename></entry>
+ <entry>Περιέχονται σχεδόν όλα τα βοηθητικά προγράμματα και οι
+ εφαρμογές χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/bin/</filename></entry>
+ <entry>Κοινόχρηστα βοηθητικά προγράμματα, εργαλεία
+ προγραμματισμού, και εφαρμογές.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/include/</filename></entry>
+ <entry>Στάνταρ αρχεία συμπερίληψης C (include files).</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/lib/</filename></entry>
+ <entry>Αρχεία βιβλιοθηκών.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/libdata/</filename></entry>
+ <entry>Διάφορα αρχεία δεδομένων βοηθητικών προγραμμάτων.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/libexec/</filename></entry>
+ <entry>Δαίμονες συστήματος &amp; βοηθητικά προγράμματα
+ συστήματος (εκτελούνται από άλλα προγράμματα).</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/local/</filename></entry>
+
+ <entry>Τοπικά εκτελέσιμα, βιβλιοθήκες, κτλ. Επίσης είναι και ο
+ προκαθορισμένος προορισμός για προγράμματα που εγκαθίστανται
+ από τα ports του &os;. Μέσα στον
+ <filename>/usr/local</filename>, χρησιμοποιείται γενικά η
+ διάταξη του <filename>/usr</filename> που περιγράφεται στο
+ &man.hier.7;. Εξαιρούνται οι κατάλογοι σελίδων βοηθείας
+ man, που βρίσκεται άμεσα κάτω από τον
+ <filename>/usr/local</filename> και όχι κάτω από τον
+ <filename>/usr/local/share</filename>, καθώς και η τεκμηρίωση
+ κάθε port που βρίσκεται στον
+ <filename>share/doc/<replaceable>port</replaceable>
+ </filename>.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/obj/</filename></entry>
+ <entry>Δέντρο προορισμού που εξαρτάται από την αρχιτεκτονική
+ του μηχανήματος και παράγεται μεταγλωττίζοντας το δέντρο
+ <filename>/usr/src</filename>.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/ports/</filename></entry>
+ <entry>Η Συλλογή Ports του &os; (προαιρετικό).</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/sbin/</filename></entry>
+ <entry>Δαίμονες συστήματος &amp; βοηθητικά προγράμματα
+ συστήματος (εκτελούνται από χρήστες).</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/share/</filename></entry>
+ <entry>Αρχεία ανεξάρτητα από την Αρχιτεκτονική του
+ μηχανήματος.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/src/</filename></entry>
+ <entry>Αρχεία BSD και/ή τοπικά αρχεία πηγαίου κώδικα.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/usr/X11R6/</filename></entry>
+ <entry>Εκτελέσιμα, βιβλιοθήκες, κτλ. για την διανομή X11R6
+ (προαιρετικό).</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/var/</filename></entry>
+ <entry>Αρχεία αναφοράς (log) διαφόρων χρήσεων, temporary,
+ transient, και spool. Μερικές φορές προσαρτάται στον
+ <filename class="directory">/var</filename> ένα σύστημα
+ αρχείων μνήμης. Αυτό μπορεί να επιτευχθεί αυτόματα
+ χρησιμοποιώντας τις σχετικές μεταβλητές varmfs του
+ &man.rc.conf.5; (ή με μία καταχώρηση στο
+ <filename>/etc/fstab</filename>, δείτε τις
+ &man.mdmfs.8;).</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/var/log/</filename></entry>
+ <entry>Διάφορα αρχεία συμβάντων του συστήματος.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/var/mail/</filename></entry>
+ <entry>Αρχεία γραμματοκιβωτίου (mailbox) χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/var/spool/</filename></entry>
+ <entry>Διάφοροι κατάλογοι παροχέτευσης (spool) εκτυπωτών και
+ ηλεκτρονικής αλληλογραφίας του συστήματος.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/var/tmp/</filename></entry>
+ <entry>Προσωρινά (temporary) αρχεία. Τα αρχεία αυτά συνήθως
+ διατηρούνται κατά την διάρκεια επανεκκίνησης του συστήματος,
+ εκτός αν ο <filename class="directory">/var</filename> είναι
+ ένα σύστημα αρχείων μνήμης.</entry>
+ </row>
+
+ <row>
+ <entry><filename class="directory">/var/yp/</filename></entry>
+ <entry>Απεικονίσεις (maps) NIS.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable></para>
+ </sect1>
+
+ <sect1 id="disk-organization">
+ <title>Οργάνωση Δίσκου</title>
+
+ <para>Η μικρότερη μονάδα οργάνωσης που χρησιμοποιεί το &os; για να βρει
+ αρχεία είναι το όνομα αρχείου. Τα ονόματα αρχείων είναι ευαίσθητα στα
+ κεφαλαία- μικρά, το οποίο σημαίνει ότι το
+ <filename>readme.txt</filename> και το <filename>README.TXT</filename>
+ είναι δύο διαφορετικά αρχεία. Το &os; δεν χρησιμοποιεί την επέκταση
+ <filename>.txt</filename> αρχείου για να προσδιορίσει αν ένα αρχείο
+ είναι πρόγραμμα, ή έγγραφο, ή άλλος τύπος δεδομένων.</para>
+
+ <para>Τα αρχεία αποθηκεύονται σε καταλόγους. Ένας κατάλογος μπορεί να
+ μην περιέχει αρχεία, ή μπορεί να περιέχει εκατοντάδες αρχεία. Ένας
+ κατάλογος μπορεί επίσης να περιέχει άλλους καταλόγους, επιτρέποντας
+ σας να κατασκευάσετε μια ιεραρχική δομή καταλόγων όπου κατάλογοι
+ εσωκλείουν άλλους καταλόγους. Αυτό μας επιτρέπει να οργανώσουμε τα
+ δεδομένα μας πολύ ευκολότερα.</para>
+
+ <para>Η αναφορά σε αρχεία και καταλόγους γίνεται δίνοντας το όνομα
+ αρχείου ή το όνομα καταλόγου, ακολουθεί μία αριστερόστροφη κάθετος,
+ <literal>/</literal> και έπειτα οποιοδήποτε άλλο κατάλληλο όνομα
+ καταλόγου. Εάν έχετε τον κατάλογο <filename>foo</filename>, ο οποίος
+ περιέχει τον κατάλογο <filename>bar</filename>, ο οποίος περιέχει το
+ αρχείο <filename>readme.txt</filename>, τότε το ολοκληρωμένο όνομα,
+ <firstterm>διαδρομή (path)</firstterm> στο αρχείο είναι
+ <filename>foo/bar/readme.txt</filename>.</para>
+
+ <para>Κατάλογοι και αρχεία αποθηκεύονται σε ένα σύστημα αρχείων. Κάθε
+ σύστημα αρχείων περιέχει ένα κατάλογο στο ανώτερο επίπεδο, που
+ ονομάζεται <firstterm>root (ριζικός) κατάλογος</firstterm> για το
+ συγκεκριμένο σύστημα αρχείων. Ο root κατάλογος μπορεί να περιέχει
+ άλλους καταλόγους.</para>
+
+ <para>Αυτό πιθανώς είναι παρόμοιο με οποιοδήποτε άλλο λειτουργικό
+ σύστημα έχετε χρησιμοποιήσει. Ωστόσο υπάρχουν μερικές διαφορές. Για
+ παράδειγμα, το &ms-dos; χρησιμοποιεί <literal>\</literal> για να
+ διαχωρίζει ονόματα καταλόγων και αρχείων, ενώ το &macos; χρησιμοποιεί
+ <literal>:</literal>.</para>
+
+ <para>Το &os; δεν χρησιμοποιεί γράμματα οδηγών ή ονόματα οδηγών στη
+ διαδρομή. Επομένως δεν θα πρέπει να γράφετε
+ <filename>c:/foo/bar/readme.txt</filename> στο &os;.</para>
+
+ <para>Αντιθέτως, ένα σύστημα αρχείων καθορίζεται ως root σύστημα
+ αρχείων. Ο ριζικός κατάλογος του root συστήματος αρχείων
+ αναφέρεται ως <literal>/</literal>. Κάθε άλλο σύστημα αρχείου
+ <firstterm>προσαρτάται</firstterm> κάτω από το root σύστημα αρχείων
+ Δεν έχει σημασία πόσους δίσκους έχετε στο &os; σύστημα σας,
+ κάθε κατάλογος εμφανίζεται να είναι μέρος του ίδιου δίσκου.</para>
+
+ <para>Ας υποθέσουμε πως έχετε τρία συστήματα αρχείων, τα ονομάζουμε
+ <literal>A</literal>, <literal>B</literal> και <literal>C</literal>.
+ Κάθε σύστημα αρχείου έχει έναν ριζικό κατάλογο, ο οποίος περιέχει δύο
+ άλλους καταλόγους, που τους ονομάζουμε <literal>A1</literal>,
+ <literal>A2</literal> (και παρομοίως <literal>B1</literal>,
+ <literal>B2</literal> και <literal>C1</literal>,
+ <literal>C2</literal>).</para>
+
+ <para>Ας θεωρήσουμε ότι το <literal>A</literal> είναι το root σύστημα
+ αρχείων. Αν χρησιμοποιήσετε την εντολή <command>ls</command> για να
+ δείτε τα περιεχόμενα αυτού του καταλόγου, θα δείτε δύο υποκαταλόγους,
+ <literal>A1</literal> και <literal>A2</literal>. Το δέντρο του
+ καταλόγου μοιάζει σαν αυτό:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir1" format="EPS">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ |
+ `--- A2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>Κάθε σύστημα αρχείων πρέπει να προσαρτάται σε ένα κατάλογο
+ διαφορετικού συστήματος αρχείων. Ας υποθέσουμε πως θέλετε να
+ προσαρτήσετε το σύστημα αρχείου <literal>B</literal> στον
+ <literal>κατάλογο A1</literal>. Ο ριζικός κατάλογος του
+ <literal>B</literal> αντικαθιστά τον <literal>A1</literal>, και οι
+ κατάλογοι του <literal>B</literal> εμφανίζονται αναλόγως:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir2" format="EPS">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ | |
+ | +--- B1
+ | |
+ | `--- B2
+ |
+ `--- A2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>Όλα τα αρχεία που περιέχονται στους καταλόγους
+ <literal>B1</literal> και <literal>B2</literal> τα βρίσκουμε με τη
+ διαδρομή <filename>/A1/B1</filename> ή με <filename>/A1/B2</filename>
+ αντίστοιχα. Όλα τα αρχεία που βρίσκονταν στο <filename>/A1</filename>
+ είναι προσωρινά κρυμμένα. Θα επανεμφανιστούν όταν ο
+ <literal>B</literal> θα <firstterm>αποπροσαρτηθεί</firstterm> από τον
+ A.</para>
+
+ <para>Αν ο <literal>B</literal> είχε προσαρτηθεί στον
+ <literal>A2</literal> τότε το διάγραμμα θα έδειχνε κάπως έτσι:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir3" format="EPS">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ |
+ `--- A2
+ |
+ +--- B1
+ |
+ `--- B2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>και οι διαδρομές θα ήταν <filename>/A2/B1</filename> και
+ <filename>/A2/B2</filename> αντίστοιχα.</para>
+
+ <para>Τα συστήματα αρχείων μπορούν να προσαρτώνται στην κορυφή άλλων
+ συστημάτων. Συνεχίζοντας το τελευταίο παράδειγμα, το σύστημα αρχείου
+ <literal>C</literal> θα μπορούσε να προσαρτηθεί στην κορυφή του
+ καταλόγου <literal>B1</literal> στο σύστημα αρχείου
+ <literal>B</literal>, οδηγώντας σε αυτήν την κατανομή:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir4" format="EPS">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ |
+ `--- A2
+ |
+ +--- B1
+ | |
+ | +--- C1
+ | |
+ | `--- C2
+ |
+ `--- B2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>Ή ακόμη το <literal>C</literal> θα μπορούσε να προσαρτηθεί άμεσα
+ στο σύστημα αρχείου <literal>A</literal>, κάτω από τον κατάλογο
+ <literal>A1</literal>:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/example-dir5" format="EPS">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced"> /
+ |
+ +--- A1
+ | |
+ | +--- C1
+ | |
+ | `--- C2
+ |
+ `--- A2
+ |
+ +--- B1
+ |
+ `--- B2</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>Αν γνωρίζετε το σύστημα &ms-dos;, είναι παρόμοιο, αλλά όχι
+ ακριβώς το ίδιο, με την εντολή <command>join</command>.</para>
+
+ <para>Αυτό συνήθως δεν είναι κάτι που πρέπει να γνωρίζετε άμεσα. Τυπικά,
+ εσείς δημιουργείτε συστήματα αρχείων όταν εγκαθιστάτε το &os; και
+ αποφασίζετε το σημείο προσάρτησης αυτών, και έπειτα δεν χρειάζεται
+ να τα αλλάξετε εκτός αν πρόκειται να προσθέσετε ένα καινούργιο
+ δίσκο.</para>
+
+ <para>Είναι απόλυτα δυνατόν να έχετε ένα μεγάλο root σύστημα αρχείων,
+ και να μην χρειάζεται να δημιουργήσετε άλλα. Με αυτή την τακτική
+ υπάρχουν μερικά μειονεκτήματα και ένα πλεονέκτημα.</para>
+
+ <itemizedlist>
+ <title>Προτερήματα Πολλαπλών Συστημάτων Αρχείων</title>
+
+ <listitem>
+ <para>Διαφορετικά συστήματα αρχείων μπορούν να έχουν διαφορετικές
+ <firstterm>επιλογές προσάρτησης</firstterm>. Για παράδειγμα, με
+ προσεκτικό σχεδιασμό, το root σύστημα αρχείων μπορεί να
+ προσαρτηθεί μόνο για ανάγνωση, ώστε να είναι αδύνατη η διαγραφή
+ ή η μετατροπή κάποιου σημαντικού αρχείου. Διαχωρίζοντας συστήματα
+ αρχείων με δυνατότητα εγγραφής από τον χρήστη, όπως ο
+ <filename>/home</filename>, επιτρέπει επίσης την προσάρτηση τους
+ ως <firstterm>nosuid</firstterm>. Αυτή η επιλογή περιορίζει την
+ χρήση εκτελέσιμων που είναι αποθηκευμένα στο σύστημα αρχείων, με
+ ενεργοποιημένα τα bits
+ <firstterm>suid</firstterm>/<firstterm>guid</firstterm>,
+ βελτιώνοντας πιθανώς την ασφάλεια.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ανάλογα με το πως θα χρησιμοποιηθεί το σύστημα αρχείων, το
+ &os; ρυθμίζει με τον καλύτερο τρόπο την διάταξη των αρχείων στο
+ σύστημα. Επομένως ένα σύστημα που περιέχει πολλά μικρά αρχεία που
+ μεταβάλλονται συχνά, θα έχει διαφορετική διάταξη από ένα άλλο που
+ περιέχει λιγότερα σε αριθμό, αλλά πιο ογκώδη αρχεία. Εάν έχετε ένα
+ μοναδικό σύστημα αρχείων, τότε χάνετε αυτή τη δυνατότητα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα συστήματα αρχείων του &os; είναι πολύ ισχυρά. Ωστόσο,
+ μια αδυναμία σε κάποιο σημαντικό σημείο μπορεί ακόμη να οδηγήσει
+ σε κατάρρευση της δομής του συστήματος αρχείων. Ο διαχωρισμός των
+ δεδομένων σας σε πολλαπλά συστήματα αρχείων κάνει πιο εύκολη μια
+ πιθανή επαναφορά από backup, όταν αυτό είναι αναγκαίο.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Προτερήματα ενός Μονοκόμματου Συστήματος Αρχείου</title>
+
+ <listitem>
+ <para>Τα συστήματα αρχείων είναι συγκεκριμένου σταθερού μεγέθους.
+ Αν δημιουργήσετε ένα σύστημα αρχείων κατά την εγκατάσταση του &os;
+ και του δώσετε ένα ορισμένο μέγεθος, μπορεί αργότερα να
+ ανακαλύψετε πως χρειάζεστε να φτιάξετε μια μεγαλύτερη κατάτμηση.
+ Αυτό δεν είναι εύκολα πραγματοποιήσιμο δίχως backup, αναδημιουργία
+ του συστήματος αρχείου με το νέο μέγεθος, και επαναφορά των
+ αποθηκευμένων δεδομένων.</para>
+
+ <important>
+ <para>Στο &os; περιέχεται η εντολή &man.growfs.8;, η οποία
+ επιτρέπει να αυξήσουμε το μέγεθος ενός συστήματος αρχείων κατά
+ τη λειτουργία του, αφαιρώντας αυτόν τον περιορισμό.</para>
+ </important>
+ </listitem>
+ </itemizedlist>
+
+ <para>Τα συστήματα αρχείων περιέχονται σε κατατμήσεις (partitions).
+ Αυτό δεν έχει την ίδια έννοια με την κοινή χρήση του όρου κατάτμηση
+ (όπως για παράδειγμα, η κατάτμηση του &ms-dos;), λόγω της κληρονομιάς
+ που φέρει το &os; από το &unix;. Κάθε κατάτμηση αναγνωρίζεται από
+ ένα λατινικό χαρακτήρα ξεκινώντας από <literal>a</literal> έως το
+ <literal>h</literal>. Κάθε κατάτμηση μπορεί να περιέχει μόνο ένα
+ σύστημα αρχείων, το οποίο σημαίνει πως η αναφορά στα συστήματα αρχείων
+ γίνεται είτε από το τυπικό σημείο προσάρτησης στην ιεραρχία του
+ συστήματος αρχείων, είτε από το λατινικό χαρακτήρα της
+ κατάτμησης.</para>
+
+ <para>Επίσης το &os; χρησιμοποιεί μέρος από το δίσκο για
+ <firstterm>χώρο swap </firstterm>. Ο χώρος Swap παρέχει στο &os;
+ <firstterm>εικονική μνήμη (virtual memory)</firstterm>. Αυτό
+ επιτρέπει στον υπολογιστή σας να συμπεριφέρεται σαν να είχε πολύ
+ περισσότερη μνήμη από όσο πραγματικά έχει. Όταν το &os; δεν έχει
+ διαθέσιμη μνήμη μεταφέρει μερικά από τα δεδομένα που δεν
+ χρησιμοποιούνται, την προκειμένη στιγμή, στον χώρο swap, και όταν τα
+ χρειαστεί τα επαναφέρει (ενώ μεταφέρει κάποια άλλα δεδομένα στον χώρο
+ swap).</para>
+
+ <para>Υπάρχουν κάποιες συμβάσεις σχετικά με τις κατατμήσεις</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="5*">
+
+ <thead>
+ <row>
+ <entry>Κατάτμηση</entry>
+
+ <entry>Σύμβαση</entry>
+ </row>
+ </thead>
+
+ <tbody valign="top">
+ <row>
+ <entry><literal>a</literal></entry>
+
+ <entry>Συνήθως περιλαμβάνει το root σύστημα αρχείων</entry>
+ </row>
+
+ <row>
+ <entry><literal>b</literal></entry>
+
+ <entry>Συνήθως περιλαμβάνει τον χώρο swap</entry>
+ </row>
+
+ <row>
+ <entry><literal>c</literal></entry>
+
+ <entry>Συνήθως ιδίου μεγέθους με την περιλαμβανόμενη φέτα
+ (slice). Αυτό επιτρέπει σε βοηθητικά προγράμματα που πρέπει
+ να δουλέψουν σε ολόκληρο το κομμάτι (για παράδειγμα, ένας
+ ανιχνευτής κατεστραμμένων μπλοκ) να λειτουργούν στην
+ <literal>c</literal> κατάτμηση. Κανονικά δεν θα πρέπει να
+ δημιουργείτε σύστημα αρχείων σε αυτή την κατάτμηση.</entry>
+ </row>
+
+ <row>
+ <entry><literal>d</literal></entry>
+
+ <entry>Η κατάτμηση <literal>d</literal> είχε στο παρελθόν μια
+ ειδική αντιστοιχία, κάτι που δεν ισχύει πλέον σήμερα,
+ επομένως η <literal>d</literal> μπορεί να χρησιμοποιείται
+ σαν μια κανονική κατάτμηση.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Κάθε κατάτμηση που περιέχει ένα σύστημα αρχείων αποθηκεύεται στο
+ &os; σε μια τοποθεσία που ονομάζεται
+ <firstterm>φέτα (slice)</firstterm>. Η φέτα είναι ένας όρος του &os;
+ για αυτό που κοινώς αποκαλείται κατάτμηση, και αυτό επίσης οφείλεται
+ στην καταγωγή του &os; από το &unix;. Οι φέτες αριθμούνται αρχίζοντας
+ από το 1 έως το 4.</para>
+
+ <indexterm><primary>φέτες</primary></indexterm>
+ <indexterm><primary>κατατμήσεις</primary></indexterm>
+ <indexterm><primary>dangerously dedicated</primary></indexterm>
+
+ <para>Ο αριθμός της φέτας ακολουθεί το όνομα συσκευής μετά το πρόθεμα
+ <literal>s</literal> ξεκινώντας από το 1. Επομένως,
+ <quote>da0<emphasis>s1</emphasis></quote> είναι η πρώτη φέτα του
+ πρώτου οδηγού SCSI. Μπορούν να υπάρχουν μέχρι τέσσερις φέτες σε κάθε
+ δίσκο, αλλά μπορείτε να δημιουργήσετε λογικές φέτες μέσα σε
+ κατάλληλου τύπου φυσικές φέτες. Σε αυτές τις εκτεταμένες φέτες
+ η αρίθμηση ξεκινάει από το 5, επομένως
+ <quote>ad0<emphasis>s5</emphasis></quote>
+ είναι η πρώτη εκτεταμένη φέτα στον πρώτο δίσκο IDE. Αυτές οι
+ συσκευές χρησιμοποιούνται από συστήματα αρχείων που πρέπει να
+ καταλαμβάνουν μια ολόκληρη φέτα.</para>
+
+ <para>Οι φέτες, οι <quote>επικίνδυνα αφοσιωμένοι (dangerously dedicated)
+ </quote> φυσικοί οδηγοί καθώς και άλλοι οδηγοί, περιέχουν
+ <firstterm>κατατμήσεις</firstterm>, οι οποίες παρουσιάζονται με
+ λατινικούς χαρακτήρες από το <literal>a</literal> έως το
+ <literal>h</literal>. Αυτός ο χαρακτήρας αναφέρεται στο όνομα
+ συσκευής, επομένως <quote>da0<emphasis>a</emphasis></quote> είναι η
+ a κατάτμηση στον πρώτο οδηγό da, ο οποίος είναι <quote>επικίνδυνα
+ αφοσιωμένος</quote>.
+ Η <quote>ad1s3<emphasis>e</emphasis></quote> είναι η πέμπτη κατάτμηση
+ στην τρίτη φέτα του δεύτερου οδηγού δίσκου IDE.</para>
+
+ <para>Ολοκληρώνοντας, κάθε δίσκος στο σύστημα είναι μονόδρομα ορισμένος.
+ Κάθε όνομα δίσκου ξεκινά με ένα κωδικό που υποδεικνύει τον τύπο του
+ δίσκου, και ένα νούμερο που υποδηλώνει ποιος δίσκος είναι. Αντίθετα
+ με τις φέτες, οι δίσκοι αριθμούνται ξεκινώντας από το 0. Οι πιο
+ συνήθεις κωδικοί που θα συναντήσετε αναφέρονται στην
+ <xref linkend="basics-dev-codes">.</para>
+
+ <para>Όταν γίνεται αναφορά σε μια κατάτμηση, το &os; ζητά να δηλωθεί
+ επιπλέον η ονομασία της φέτας και του δίσκου που περιέχει την
+ κατάτμηση, ενώ στην περίπτωση που αναφέρεστε σε μια φέτα θα πρέπει
+ να δηλώνετε το όνομα του δίσκου. Επομένως, όταν αναφέρεστε σε μια
+ κατάτμηση χρειάζεται να δηλώνετε το όνομα του δίσκου,
+ <literal>s</literal>, τον αριθμό της φέτας, και τον χαρακτήρα της
+ κατάτμησης. Παραδείγματα μπορείτε να βρείτε στην
+ <xref linkend="basics-disk-slice-part">.</para>
+
+ <para>Η <xref linkend="basics-concept-disk-model"> παρουσιάζει ένα
+ εννοιολογικό μοντέλο για τη δομή του δίσκου που θα σας βοηθήσει να
+ καταλάβετε καλύτερα κάποια πράγματα.</para>
+
+ <para>Για να εγκαταστήσετε το &os; πρέπει πρώτα να ρυθμίσετε τις φέτες
+ του δίσκου, να δημιουργήσετε τις κατατμήσεις μέσα στις φέτες που θα
+ χρησιμοποιήσετε για το &os;, έπειτα να δημιουργήσετε ένα σύστημα
+ αρχείων (ή χώρο swap) σε κάθε κατάτμηση, και τέλος να αποφασίσετε σε
+ ποιο σημείο θα προσαρτηθεί το σύστημα αρχείων.</para>
+
+ <table frame="none" pgwide="1" id="basics-dev-codes">
+ <title>Κωδικοί Συσκευών Δίσκων</title>
+
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="5*">
+
+ <thead>
+ <row>
+ <entry>Κώδικας</entry>
+
+ <entry>Σημαίνει</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><devicename>ad</devicename></entry>
+ <entry>Δίσκος ATAPI (IDE)</entry>
+ </row>
+
+ <row>
+ <entry><devicename>da</devicename></entry>
+ <entry>Δίσκος SCSI άμεσης πρόσβασης</entry>
+ </row>
+
+ <row>
+ <entry><devicename>acd</devicename></entry>
+ <entry>ATAPI (IDE) CDROM</entry>
+ </row>
+
+ <row>
+ <entry><devicename>cd</devicename></entry>
+ <entry>SCSI CDROM</entry>
+ </row>
+
+ <row>
+ <entry><devicename>fd</devicename></entry>
+ <entry>Μονάδα Δισκέτας (Floppy)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <example id="basics-disk-slice-part">
+ <title>Υποδείγματα Ονομάτων Δίσκου, Φέτας, Κατάτμησης</title>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="5*">
+
+ <thead>
+ <row>
+ <entry>Ονομασία</entry>
+ <entry>Σημαίνει</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>ad0s1a</literal></entry>
+ <entry>Η πρώτη κατάτμηση (<literal>a</literal>) στην πρώτη
+ φέτα (<literal>s1</literal>) του πρώτου δίσκου IDE
+ (<literal>ad0</literal>).</entry>
+ </row>
+
+ <row>
+ <entry><literal>da1s2e</literal></entry>
+ <entry>Η πέμπτη κατάτμηση (<literal>e</literal>) στην δεύτερη
+ φέτα (<literal>s2</literal>) του δεύτερου δίσκου SCSI
+ (<literal>da1</literal>).</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </example>
+
+ <example id="basics-concept-disk-model">
+ <title>Εννοιολογικό Μοντέλο ενός Δίσκου</title>
+
+ <para>Το διάγραμμα παρουσιάζει μια εικόνα του πρώτου δίσκου IDE που
+ είναι προσαρτημένος στο σύστημα. Ας υποθέσουμε πως ο δίσκος έχει
+ μέγεθος 4&nbsp;GB, και περιέχει δύο φέτες των 2&nbsp;GB
+ (κατατμήσεις &ms-dos;). Η πρώτη φέτα περιέχει ένα δίσκο &ms-dos;,
+ <devicename>C:</devicename>, και η δεύτερη φέτα μία εγκατάσταση
+ &os;. Σε αυτό το παράδειγμα, η εγκατάσταση &os; έχει τρεις
+ κατατμήσεις δεδομένων και μία κατάτμηση swap.</para>
+
+ <para>Καθεμία από τις τρεις κατατμήσεις θα περιέχει ένα σύστημα
+ αρχείων. Η κατάτμηση <literal>a</literal> θα χρησιμοποιηθεί για το
+ root σύστημα αρχείων, η <literal>e</literal> για τη δομή κατάλογου
+ <filename>/var</filename>, και η <literal>f</literal> για τη δομή
+ καταλόγου <filename>/usr</filename>.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disk-layout" format="EPS">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">.-----------------. --.
+| | |
+| DOS / Windows | |
+: : &gt; Πρώτη φέτα, ad0s1
+: : |
+| | |
+:=================: ==: --.
+| | | -a Κατάτμηση a, προσαρτημένη ως / |
+| | &gt; αναφέρεται ως ad0s2a |
+| | | |
+:-----------------: ==: |
+| | | -swap Κατάτμηση b, για χρήση swap |
+| | &gt; αναφέρεται ως ad0s2b |
+| | | |
+:-----------------: ==: | -c Κατάτμηση, απουσία
+| | | -e Κατάτμηση e, για χρήση /var &gt; συστήματος αρχείων,
+| | &gt; αναφέρεται ως ad0s2e | μη προσαρτημένη,
+| | | | ad0s2c
+:-----------------: ==: |
+| | | |
+: : | -f Κατάτμηση f, για χρήση /usr |
+: : &gt; αναφέρεται ως ad0s2f |
+: : | |
+| | | |
+| | --' |
+`-----------------' --'</literallayout>
+ </textobject>
+ </mediaobject>
+ </example>
+ </sect1>
+
+ <sect1 id="mount-unmount">
+ <title>Προσάρτηση και Αποπροσάρτηση Συστημάτων Αρχείων</title>
+
+ <para>Ένα σύστημα αρχείων αναπαριστάται καλύτερα σε μορφή δέντρου,
+ με τις ρίζες του στο <filename>/</filename>. Οι κατάλογοι
+ <filename>/dev</filename>, <filename>/usr</filename>, και άλλοι είναι
+ κλαδιά του καταλόγου root, και μπορεί να έχουν με τη σειρά τους, τα
+ δικά τους κλαδιά, όπως τον
+ <filename>/usr/local</filename>, και ούτω καθεξής.</para>
+
+ <indexterm><primary>σύστημα αρχείων root</primary></indexterm>
+ <para>Υπάρχουν διάφοροι λόγοι για τους οποίους θα έπρεπε να τοποθετήσουμε
+ κάποιους από αυτούς τους καταλόγους σε διαφορετικά συστήματα αρχείων.
+ Ο κατάλογος <filename>/var</filename> περιέχει τους καταλόγους
+ <filename>log/</filename>, <filename>spool/</filename>, και διάφορους
+ άλλους τύπους προσωρινών αρχείων, και για το λόγο αυτό μπορεί να
+ γεμίσει. Δεν θα ήταν καλή ιδέα να γεμίσει το root σύστημα αρχείων,
+ επομένως ο διαχωρισμός του <filename>/var</filename> από τον
+ <filename>/</filename> είναι συχνά επιθυμητός.</para>
+
+ <para>Ένας άλλος συνηθισμένος λόγος να έχουμε διάφορους καταλόγους
+ σε διαφορετικά συστήματα αρχείων είναι όταν πρόκειται να φιλοξενηθούν
+ σε διαφορετικούς φυσικούς δίσκους, ή είναι ξεχωριστοί εικονικοί δίσκοι,
+ όπως συμβαίνει με το
+ <link linkend="network-nfs">Δικτυακό Σύστημα Αρχείων (Network File System)</link>, και τους οδηγούς CDROM.</para>
+
+ <sect2 id="disks-fstab">
+ <title>Το Αρχείο <filename>fstab</filename></title>
+ <indexterm>
+ <primary>συστήματα αρχείων</primary>
+ <secondary>προσαρτημένα με το fstab</secondary>
+ </indexterm>
+
+ <para>Κατά τη <link linkend="boot">διεργασία εκκίνησης</link>, τα
+ συστήματα αρχείων που αναφέρονται στο <filename>/etc/fstab</filename>
+ προσαρτώνται αυτόματα (εκτός αν αναφέρονται με την επιλογή
+ <option>noauto</option> ).</para>
+
+ <para>Το αρχείο <filename>/etc/fstab</filename> περιέχει μια σειρά από
+ γραμμές με διάταξη όπως η ακόλουθη:</para>
+
+ <programlisting><replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable></programlisting>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>device</literal></term>
+
+ <listitem>
+ <para>Όνομα συσκευής (η οποία θα πρέπει να υπάρχει), όπως
+ εξηγείται στην <xref linkend="disks-naming">.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>mount-point</literal></term>
+
+ <listitem>
+ <para>Κατάλογος (θα πρέπει να υπάρχει) στον οποίο
+ προσαρτάται το σύστημα αρχείων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>fstype</literal></term>
+
+ <listitem>
+ <para>Ο τύπος του συστήματος αρχείων που θα δοθεί στην
+ &man.mount.8;. Το προκαθορισμένο σύστημα αρχείων του &os;
+ είναι το <literal>ufs</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>options</literal></term>
+
+ <listitem>
+ <para>Το <option>rw</option> για συστήματα αρχείων
+ ανάγνωσης- εγγραφής (read- write), ή <option>ro</option> για
+ συστήματα αρχείων μόνο ανάγνωσης (read-only), συμπληρωμένο με
+ όποια άλλη επιλογή μπορεί να χρειάζεστε. Μία συνήθης επιλογή
+ είναι η <option>noauto</option> για συστήματα αρχείων που δεν
+ προσαρτώνται αυτόματα κατά τις διεργασίες εκκίνησης του
+ συστήματος. Άλλες επιλογές αναφέρονται στην σελίδα βοήθειας
+ &man.mount.8;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>dumpfreq</literal></term>
+
+ <listitem>
+ <para>Αυτό το πεδίο χρησιμοποιείται από το &man.dump.8; για να
+ ορίσει ποια συστήματα αρχείων χρειάζονται dumping. Αν το πεδίο
+ απουσιάζει, τότε η προκαθορισμένη τιμή του είναι μηδέν.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>passno</literal></term>
+
+ <listitem>
+ <para>Αυτό ορίζει την σειρά με την οποία θα ελέγχονται
+ τα συστήματα αρχείων. Συστήματα αρχείων που δεν επιθυμούμε να
+ ελεγχθούν θα πρέπει να έχουν στο πεδίο <literal>passno</literal>
+ τιμή μηδέν. Το root σύστημα αρχείων (το οποίο πρέπει να
+ ελεγχθεί πριν από όλα τα άλλα) θα έχει στο πεδίο
+ <literal>passno</literal> την τιμή ένα και όλα τα άλλα
+ συστήματα αρχείων θα έχουν στο πεδίο <literal>passno</literal>
+ τιμές μεγαλύτερες από ένα. Αν περισσότερα από ένα συστήματα
+ αρχείων έχουν την ίδια τιμή <literal>passno</literal> τότε το
+ &man.fsck.8; θα επιχειρήσει να ελέγξει παράλληλα τα συστήματα
+ αρχείων, αν αυτό είναι εφικτό.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Συμβουλευτείτε την σελίδα βοηθείας &man.fstab.5; για περισσότερες
+ πληροφορίες για την μορφή του αρχείου <filename>/etc/fstab</filename>
+ και για τις επιλογές που μπορεί να περιέχει.</para>
+ </sect2>
+
+ <sect2 id="disks-mount">
+ <title>Η Εντολή <command>mount</command></title>
+ <indexterm>
+ <primary>συστήματα αρχείων</primary>
+ <secondary>προσάρτηση</secondary>
+ </indexterm>
+
+ <para>Η εντολή &man.mount.8; είναι αυτό ακριβώς που χρειάζεστε για την
+ προσάρτηση συστημάτων αρχείων.</para>
+
+ <para>Η βασική μορφή της είναι:</para>
+
+ <informalexample>
+ <screen>&prompt.root; <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput></screen>
+ </informalexample>
+
+ <para>Υπάρχει πληθώρα επιλογών, όπως αναφέρεται στην σελίδα βοηθείας
+ &man.mount.8;, αλλά οι πιο συνήθεις είναι:</para>
+
+ <variablelist>
+ <title>Επιλογές εντολής mount</title>
+
+ <varlistentry>
+ <term><option>-a</option></term>
+
+ <listitem>
+ <para>Προσάρτηση όλων των συστημάτων αρχείων που αναφέρονται
+ στο <filename>/etc/fstab</filename>, εκτός αυτών που φέρουν
+ την επιλογή <quote>noauto</quote>, εξαιρούνται μέσω της επιλογής
+ <option>-t</option>, ή αυτών που ήδη έχουν προσαρτηθεί.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option></term>
+
+ <listitem>
+ <para>Κάνει τα πάντα εκτός από την πραγματική προσάρτηση του
+ συστήματος. Αυτή η επιλογή είναι χρήσιμη σε συνεργασία με το
+ πρόθεμα <option>-v</option> για να προσδιοριστεί τι ακριβώς
+ προσπαθεί να κάνει η &man.mount.8; την συγκεκριμένη
+ στιγμή.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-f</option></term>
+
+ <listitem>
+ <para>Αναγκάζει την προσάρτηση ενός μη-καθαρού συστήματος αρχείων
+ (επικίνδυνο), ή εξαναγκάζει την ανάκληση πρόσβασης εγγραφής όταν
+ υποβιβάζεται η προσάρτηση ενός συστήματος αρχείων
+ ανάγνωσης-εγγραφής (read-write) σε μόνο-ανάγνωσης.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+
+ <listitem>
+ <para>Προσαρτά το σύστημα αρχείων σε κατάσταση μόνο-ανάγνωσης.
+ Είναι ακριβώς το ίδιο με τη χρήση του προθέματος
+ <option>ro</option> με την επιλογή <option>-o</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-t</option>
+ <replaceable>fstype</replaceable></term>
+
+ <listitem>
+ <para>Προσαρτά το υπάρχον σύστημα αρχείων, χρησιμοποιώντας τον
+ τύπο συστήματος αρχείων που δίνεται, ή προσαρτά μόνο
+ συστήματα αρχείων του συγκεκριμένου τύπου, εάν δοθεί μαζί με την
+ επιλογή <option>-a</option>.</para>
+
+ <para>Το <quote>ufs</quote> είναι ο προεπιλεγμένος τύπος
+ συστήματος αρχείων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-u</option></term>
+
+ <listitem>
+ <para>Ανανεώνει τις επιλογές προσάρτησης στο σύστημα
+ αρχείων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-v</option></term>
+
+ <listitem>
+ <para>Συμπεριλαμβάνει αναλυτική αναφορά.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-w</option></term>
+
+ <listitem>
+ <para>Προσαρτά το σύστημα αρχείων για ανάγνωση-εγγραφή
+ (read-write).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Η επιλογή <option>-o</option> δέχεται μία σειρά από επιλογές
+ χωρισμένες με κόμμα, περιλαμβάνοντας τις ακόλουθες:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>noexec</term>
+
+ <listitem>
+ <para>Δεν επιτρέπεται η λειτουργία εκτελέσιμων σε αυτό το
+ σύστημα αρχείων. Αυτό είναι επίσης μια επιλογή
+ ασφαλείας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>nosuid</term>
+
+ <listitem>
+ <para>Δεν λαμβάνονται υπ' όψιν setuid ή setgid flags στο σύστημα
+ αρχείων.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="disks-umount">
+ <title>Η Εντολή <command>umount</command></title>
+ <indexterm>
+ <primary>συστήματα αρχείων</primary>
+ <secondary>αποπροσάρτηση</secondary>
+ </indexterm>
+
+ <para>Η εντολή &man.umount.8; παίρνει, ως παράμετρο, ένα εκ των σημείων
+ προσάρτησης, το όνομα μιας συσκευής, ή τις επιλογές
+ <option>-a</option> ή <option>-A</option>.</para>
+
+ <para>Όλοι οι τύποι δέχονται την <option>-f</option> για να
+ εξαναγκάσουν σε αποπροσάρτηση, και την <option>-v</option> για
+ αναλυτική αναφορά. Σας προειδοποιούμε πως η επιλογή
+ <option>-f</option> γενικά δεν είναι καλή ιδέα. Η εξ' αναγκασμού
+ αποπροσάρτηση μπορεί να οδηγήσει σε κατάρρευση τον υπολογιστή ή να
+ καταστρέψει δεδομένα στο σύστημα αρχείων.</para>
+
+ <para>Οι <option>-a</option> και <option>-A</option> χρησιμοποιούνται
+ για να αποπροσαρτήσουν όλα τα προσαρτημένα συστήματα αρχείων, σύμφωνα
+ και με τις επιλογές που δίνονται από το <option>-t</option>, αν
+ υπάρχει. Το <option>-A</option>, ωστόσο, δεν θα επιχειρήσει να
+ αποπροσαρτήσει το root σύστημα αρχείων.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="basics-processes">
+ <title>Διεργασίες</title>
+
+ <para>To &os; είναι ένα λειτουργικό σύστημα multi-tasking. Αυτό σημαίνει
+ πως κάθε στιγμή μπορούν να τρέχουν παραπάνω από ένα προγράμματα. Κάθε
+ πρόγραμμα που τρέχει οποιαδήποτε στιγμή ονομάζεται
+ <firstterm>διεργασία</firstterm> (process). Κάθε εντολή που τρέχετε
+ ξεκινάει τουλάχιστον μία νέα διεργασία, και υπάρχουν κάποιες διεργασίες
+ του συστήματος που τρέχουν συνέχεια για να κρατούν το σύστημα
+ σε λειτουργία.</para>
+
+ <para>Κάθε διεργασία χαρακτηρίζεται από ένα μοναδικό αριθμό που
+ ονομάζεται <firstterm>ID διεργασίας</firstterm> ή
+ <firstterm>PID</firstterm>, και όπως ακριβώς συμβαίνει με τα αρχεία,
+ κάθε διεργασία έχει έναν ιδιοκτήτη και ένα γκρουπ. Οι πληροφορίες του
+ ιδιοκτήτη και του γκρουπ χρειάζονται για να προσδιορίζεται ποια αρχεία
+ και συσκευές μπορεί να ανοίξει η συγκεκριμένη διεργασία,
+ χρησιμοποιώντας τις άδειες αρχείων που συζητήσαμε νωρίτερα. Οι
+ περισσότερες διεργασίες έχουν επίσης μία γονική διεργασία. Η γονική
+ διεργασία είναι εκείνη η διεργασία που τις ξεκίνησε. Για παράδειγμα,
+ εάν πληκτρολογείτε εντολές στο κέλυφος, τότε το κέλυφος είναι μία
+ διεργασία, και κάθε εντολή που τρέχετε είναι επίσης μία διεργασία.
+ Επομένως κάθε διεργασία που τρέχετε με αυτόν τον τρόπο θα έχει γονική
+ διεργασία το κέλυφος σας. Η μόνη εξαίρεση είναι μία διεργασία που
+ ονομάζεται &man.init.8;. Η <command>init</command> είναι πάντα η πρώτη
+ διεργασία, και επομένως το PID της είναι πάντα 1. Η
+ <command>init</command> ξεκινά αυτόματα από τον πυρήνα κατά την
+ εκκίνηση του &os;.</para>
+
+ <para>Δύο ιδιαίτερα χρήσιμες εντολές για να παρατηρείτε τις διεργασίες
+ στο σύστημα, είναι οι &man.ps.1; και &man.top.1;. Η εντολή
+ <command>ps</command> χρησιμοποιείται για την προβολή μιας στατικής
+ λίστας των τρέχοντων διεργασιών, και μπορεί να εμφανίζει το PID τους,
+ πόση μνήμη χρησιμοποιούν, την εντολή με την οποία ξεκίνησαν, και άλλες
+ πληροφορίες. Η εντολή <command>top</command> εμφανίζει όλες τις
+ τρέχουσες διεργασίες, και ανανεώνει την οθόνη σας ανά λίγα
+ δευτερόλεπτα, επομένως μπορείτε να παρατηρείτε τι ακριβώς κάνει ο
+ υπολογιστή σας τη δεδομένη στιγμή.</para>
+
+ <para>Η <command>ps</command>, από προεπιλογή, εμφανίζει μόνο τις
+ εντολές που τρέχουν και ανήκουν σε εσάς. Για παράδειγμα:</para>
+
+ <screen>&prompt.user; <userinput>ps</userinput>
+ PID TT STAT TIME COMMAND
+ 298 p0 Ss 0:01.10 tcsh
+ 7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
+37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
+48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
+48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
+72210 p0 R+ 0:00.00 ps
+ 390 p1 Is 0:01.14 tcsh
+ 7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
+ 6688 p3 IWs 0:00.00 tcsh
+10735 p4 IWs 0:00.00 tcsh
+20256 p5 IWs 0:00.00 tcsh
+ 262 v0 IWs 0:00.00 -tcsh (tcsh)
+ 270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
+ 280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
+ 284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
+ 285 v0 S 0:38.45 /usr/X11R6/bin/sawfish</screen>
+
+ <para>Όπως μπορείτε να δείτε σε αυτό το παράδειγμα, η έξοδος από την ps
+ προβάλλεται σε στήλες. <literal>PID</literal> είναι το PID της
+ διεργασίας όπως αναφέραμε νωρίτερα. Τα PID διανέμονται από 1, έως
+ 99999, και όταν υπερβούν το 99999 ξεκινούν από την αρχή (ένα PID
+ δεν μπορεί να αποδοθεί ξανά αν είναι ήδη σε χρήση). Η στήλη
+ <literal>TT</literal> δείχνει το τερματικό (tty) του προγράμματος που
+ εκτελείται, και μπορεί να αγνοηθεί αυτή τη στιγμή δίχως πρόβλημα. Η
+ <literal>STAT</literal> υποδεικνύει την κατάσταση του προγράμματος, και
+ πάλι μπορεί να αγνοηθεί. Η <literal>TIME</literal> είναι η χρονική
+ διάρκεια που το πρόγραμμα απασχολεί την CPU, αυτό συνήθως δεν είναι ο
+ χρόνος εκτέλεσης αφού τα περισσότερα προγράμματα καθυστερούν με άλλες
+ εργασίες πριν απασχολήσουν την CPU. Η τελευταία στήλη, η
+ <literal>COMMAND</literal> είναι η γραμμή εντολής που δόθηκε για να
+ τρέξει το πρόγραμμα.</para>
+
+ <para>Η &man.ps.1; υποστηρίζει διάφορες επιλογές για να αλλάξει την γκάμα
+ των πληροφοριών που εμφανίζονται. Μία από τις πιο χρήσιμες επιλογές
+ είναι η <literal>auxww</literal>. Η <option>a</option> εμφανίζει
+ πληροφορίες για όλες τις τρέχουσες διεργασίες, όχι μόνο τις δικές σας.
+ Η <option>u</option> εμφανίζει το όνομα χρήστη του ιδιοκτήτη της
+ διεργασίας, όπως και τη χρήσης της μνήμης. Η <option>x</option>
+ εμφανίζει πληροφορίες σχετικά με τις διεργασίες των δαιμόνων και η
+ <option>ww</option> αναγκάζει την &man.ps.1; να εμφανίσει ολόκληρη την
+ εντολή γραμμής για κάθε διεργασία, αφού συνήθως εμφανίζεται κομμένη
+ λόγω του μήκους της που δεν χωρά να εμφανιστεί στην οθόνη.</para>
+
+ <para>Η έξοδος της &man.top.1; είναι παρόμοια. Ένα δείγμα εργασίας της
+ μοιάζει σαν αυτή:</para>
+
+ <screen>&prompt.user; <userinput>top</userinput>
+last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
+47 processes: 1 running, 46 sleeping
+CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
+Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
+Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
+
+ PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
+72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
+ 7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
+ 281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
+ 296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
+48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
+ 175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
+ 7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
+...</screen>
+
+ <para>Η έξοδος είναι χωρισμένη σε δύο τομείς. Η κεφαλίδα (οι πέντε
+ πρώτες γραμμές) εμφανίζουν το PID της τελευταίας διεργασίας που έτρεξε,
+ την μέση τιμή φορτίου (είναι μια μέτρηση που δείχνει πόσο απασχολημένο
+ είναι το σύστημα), ο χρόνος λειτουργίας (uptime) του συστήματος
+ (από την τελευταία επανεκκίνηση) και την τρέχουσα ώρα. Τα άλλα στοιχεία
+ στην κεφαλίδα σχετίζονται με το νούμερο των διεργασιών που τρέχουν
+ (47 σε αυτή τη περίπτωση), πόση μνήμη και χώρο swap κατέχουν και πόσο
+ χρόνο ξοδεύει το σύστημα σε διάφορες καταστάσεις λειτουργίας της
+ CPU.</para>
+
+ <para>Πιο κάτω ακολουθεί μια σειρά από στήλες, που περιέχουν παρόμοιες
+ πληροφορίες με την έξοδο της ps. Όπως και νωρίτερα μπορείτε να δείτε το
+ PID, το όνομα χρήστη, το ποσοστό χρήσης της CPU, και την εντολή με την
+ οποία ξεκίνησε η διεργασία. Η &man.top.1; από προεπιλογή, εμφανίζει
+ επίσης το ποσοστό μνήμης που χρησιμοποιείται από τη διεργασία. Αυτή
+ χωρίζεται σε δύο στήλες. Η μία είναι για το συνολικό μέγεθος μνήμης που
+ χρειάστηκε η εφαρμογή, ενώ η άλλη για το μέγεθος της μνήμης που
+ καταναλώνει την παρούσα στιγμή. Σε αυτό το παράδειγμα μπορείτε να δείτε
+ ότι ο <application>&netscape;</application> χρειάστηκε σχεδόν 30&nbsp;MB
+ RAM, αλλά την παρούσα στιγμή χρησιμοποιεί μόνο 9&nbsp;MB.</para>
+
+ <para>Η &man.top.1; αυτόματα ανανεώνει το περιεχόμενο της κάθε δύο
+ δευτερόλεπτα. Αυτό μπορεί να ρυθμιστεί με την επιλογή
+ <option>s</option>.</para>
+ </sect1>
+
+ <sect1 id="basics-daemons">
+ <title>Δαίμονες, Σήματα, και Τερματισμός Διεργασιών</title>
+
+ <para>Όταν χρησιμοποιείτε ένα κειμενογράφο, είναι εύκολο να τον ελέγχετε,
+ να φορτώνετε αρχεία, και οτιδήποτε άλλο. Αυτό συμβαίνει διότι ο
+ κειμενογράφος παρέχει αυτές τις δυνατότητες, και επίσης επειδή
+ είναι προσαρτημένος σε ένα <firstterm>τερματικό</firstterm>. Μερικά
+ προγράμματα δεν είναι σχεδιασμένα να δουλεύουν με συνεχείς χειρισμούς
+ από τον χρήστη, και επομένως αποσυνδέονται από το τερματικό με την
+ πρώτη ευκαιρία. Για παράδειγμα, ένας εξυπηρετητής web ξοδεύει όλο του
+ το χρόνο στο να απαντά σε αιτήματα web, επομένως δεν χρειάζεται καμιά
+ εισαγωγή δεδομένων από τον χρήστη. Άλλο παραπλήσιο παράδειγμα
+ εφαρμογής, είναι τα προγράμματα μεταφοράς μηνυμάτων ηλεκτρονικής
+ αλληλογραφίας από μια τοποθεσία σε μιαν άλλη.</para>
+
+ <para>Ονομάζουμε αυτά τα προγράμματα
+ <firstterm>δαίμονες (daemons)</firstterm>. Οι δαίμονες ήταν χαρακτήρες
+ της Ελληνικής μυθολογίας (ούτε καλοί - ούτε κακοί), ήταν απλά μικρά
+ συνοδευτικά πνεύματα που έκαναν χρήσιμα πράγματα για την ανθρωπότητα,
+ όπως ακριβώς και οι διακομιστές web και εξυπηρετητές ηλεκτρονικής
+ αλληλογραφίας σήμερα κάνουν χρήσιμα πράγματα. Αυτός είναι και ο λόγος
+ για τον οποίο η μασκότ του BSD είναι εδώ και πολύ καιρό ο
+ χαρούμενος δαίμονας με πάνινα σπορ παπούτσια και την τρίαινα.</para>
+
+ <para>Η ονομασία των προγραμμάτων που τρέχουν σαν δαίμονες συμβατικά
+ τελειώνει με <quote>d</quote>. Το <application>BIND</application>
+ είναι το Berkeley Internet Name Domain, αλλά το πραγματικό πρόγραμμα
+ που τρέχει ονομάζεται <command>named</command>, το πρόγραμμα του
+ εξυπηρετητή web <application>Apache</application> λέγεται
+ <command>httpd</command>, ο δαίμονας ελέγχου των εκτυπωτών
+ γραμμής είναι ο <command>lpd</command> και ούτω καθεξής. Αυτή είναι
+ απλά μια σύμβαση, όχι απόλυτος κανόνας, για παράδειγμα, ο κύριος
+ δαίμονας ηλεκτρονικής αλληλογραφίας για την εφαρμογή
+ <application>Sendmail</application>
+ ονομάζεται <command>sendmail</command>, και όχι
+ <command>maild</command>, όπως θα ήταν αναμενόμενο.</para>
+
+ <para>Μερικές φορές θα χρειαστεί να επικοινωνείτε με τη διεργασία ενός
+ δαίμονα. Ένας τρόπος για να γίνει αυτό είναι στέλνοντας (όπως και σε
+ κάθε εκτελέσιμη διεργασία) <firstterm>σήματα (signals)</firstterm>.
+ Υπάρχουν διάφορα σήματα που μπορείτε να στείλετε &mdash; μερικά από
+ αυτά έχουν μια συγκεκριμένη σημασία, ενώ άλλα ερμηνεύονται
+ μέσα από την εφαρμογή, και επομένως για να ξέρουμε πως ερμηνεύονται τα
+ σήματα θα πρέπει να διαβάσουμε την τεκμηρίωση της εφαρμογής. Μπορείτε
+ να στείλετε σήμα σε μια διεργασία μόνο αν σας ανήκει. Αν στείλετε σήμα
+ σε μια διεργασία που ανήκει σε κάποιον άλλο με &man.kill.1; ή
+ &man.kill.2;, δεν θα σας επιτραπεί. Η μοναδική εξαίρεση σε αυτό, είναι
+ ο χρήστης <username>root</username>, που μπορεί να στέλνει σήματα στις
+ διεργασίες οποιουδήποτε άλλου χρήστη του συστήματος.</para>
+
+ <para>Το &os; στέλνει επίσης σήματα σε εφαρμογές σε μερικές περιπτώσεις.
+ Αν μία εφαρμογή είναι γραμμένη άσχημα, και προσπαθεί να προσπελάσει
+ μνήμη που δεν της ανήκει, το &os; στέλνει στη διεργασία το σήμα
+ <firstterm>Segmentation Violation</firstterm>
+ (<literal>SIGSEGV</literal>). Αν μια εφαρμογή χρησιμοποίησε το σύστημα
+ ειδοποίησης &man.alarm.3; για να ειδοποιηθεί μετά την πάροδο μιας
+ χρονικής περιόδου τότε το &os; θα στείλει το Alarm signal
+ (<literal>SIGALRM</literal>), και ούτω καθ'εξής.</para>
+
+ <para>Δύο σήματα μπορούν να χρησιμοποιηθούν για να σταματήσουν μία
+ διαδικασία, το <literal>SIGTERM</literal> και το
+ <literal>SIGKILL</literal>. Το <literal>SIGTERM</literal> είναι ο
+ σωστός τρόπος για να σταματήσουμε μια διαδικασία. Η διεργασία
+ <emphasis>αντιλαμβάνεται</emphasis> το σήμα, εκτελεί το σταμάτημα
+ κλείνοντας όλα τα αρχεία αναφοράς (log files), που πιθανώς να είναι
+ ανοιχτά, και γενικώς τελειώνει οτιδήποτε κάνει την συγκεκριμένη
+ χρονική στιγμή πριν σταματήσει. Σε μερικές περιπτώσεις η διεργασία
+ μπορεί να αγνοήσει το <literal>SIGTERM</literal> εάν βρίσκεται στα
+ μισά κάποιας εργασίας που δεν μπορεί να διακοπεί.</para>
+
+ <para>Το σήμα <literal>SIGKILL</literal> δεν μπορεί να αγνοηθεί από μία
+ διεργασία. Είναι σαν να λέει στη διεργασία,
+ <quote>Δεν με ενδιαφέρει τι κάνεις, σταμάτα τώρα αμέσως</quote>. Αν
+ στείλετε το σήμα <literal>SIGKILL</literal> σε μια διαδικασία τότε το
+ &os; θα σταματήσει την διαδικασία άμεσα
+
+ <footnote>
+ <para>Αυτό δεν είναι απόλυτα αληθές &mdash; Υπάρχουν μερικά πράγματα
+ που δεν μπορούν να διακοπούν. Για παράδειγμα, εάν η διεργασία
+ προσπαθεί να διαβάσει ένα αρχείο από άλλον υπολογιστή στο δίκτυο
+ και ξαφνικά αυτός ο άλλος υπολογιστής διακόψει για κάποιο λόγο
+ (λόγω κλεισίματος του pc ή λόγω βλάβης στο δίκτυο), τότε η διεργασία
+ ονομάζεται μη <quote>διακόψιμη</quote>. Πιθανώς η διεργασία να
+ κάνει time out, συνήθως μετά από δύο λεπτά. Μόλις συμβεί αυτό, θα
+ τερματιστεί άμεσα.</para>
+ </footnote>.</para>
+
+ <para>Άλλα σήματα που πιθανώς να θέλετε να χρησιμοποιήσετε είναι τα
+ <literal>SIGHUP</literal>, <literal>SIGUSR1</literal>, και
+ <literal>SIGUSR2</literal>. Αυτά είναι σήματα γενικής χρήσης, και
+ όταν αποστέλλονται κάνουν διαφορετικά πράγματα ανάλογα με την
+ εφαρμογή.</para>
+
+ <para>Ας υποθέσουμε πως αλλάξατε το αρχείο ρύθμισης του εξυπηρετητή
+ διαδικτύου σας, και πως θα θέλατε να πείτε στον εξυπηρετητή να
+ ξαναδιαβάσει τις ρυθμίσεις. Θα μπορούσατε να σταματήσετε και να
+ επανεκκινήσετε το <command>httpd</command>, αλλά αυτό θα οδηγούσε σε
+ μια χρονική περίοδο όπου ο εξυπηρετητής θα έμενε εκτός λειτουργίας,
+ κάτι το οποίο μπορεί να είναι ανεπιθύμητο. Οι περισσότεροι δαίμονες
+ είναι σχεδιασμένοι να απαντούν σε σήματα <literal>SIGHUP</literal> για
+ την εκ νέου ανάγνωση του αρχείου ρύθμισης τους. Επομένως, αντί να
+ σταματήσουμε και να επανεκκινήσουμε το <command>httpd</command> θα
+ μπορούσαμε να του στείλουμε το σήμα <literal>SIGHUP</literal>. Επειδή
+ δεν υπάρχει συγκεκριμένος τρόπος στην απάντηση αυτών των σημάτων, και
+ διαφορετικοί δαίμονες έχουν διαφορετική συμπεριφορά, πρέπει να
+ διαβάσετε πρώτα την τεκμηρίωση για τον συγκεκριμένο δαίμονα.</para>
+
+ <para>Τα σήματα στέλνονται χρησιμοποιώντας την εντολή &man.kill.1;, όπως
+ υποδεικνύει το ακόλουθο παράδειγμα.</para>
+
+ <procedure>
+ <title>Στέλνοντας Σήμα σε μία Διεργασία</title>
+
+ <para>Αυτό το παράδειγμα δείχνει πως να στείλετε σήμα στην
+ &man.inetd.8;. Το αρχείο ρύθμισης της <command>inetd</command> είναι
+ το <filename>/etc/inetd.conf</filename>, και η
+ <command>inetd</command> θα ξανα-διαβάσει αυτό το αρχείο ρύθμισης
+ όταν θα σταλεί το σήμα <literal>SIGHUP</literal>.</para>
+
+ <step>
+ <para>Βρείτε το PID της διεργασίας, της οποίας επιθυμείτε να στείλετε
+ το σήμα. Ενεργήστε χρησιμοποιώντας τις εντολές &man.ps.1; και
+ &man.grep.1;. Η εντολή &man.grep.1; χρησιμοποιείται για να ψάξει
+ στην έξοδο μιας εντολής, για τους αλφαριθμητικούς χαρακτήρες που
+ έχετε ορίσει. Η εντολή εκτελείται από έναν απλό χρήστη, ενώ η
+ &man.inetd.8; εκτελείται από τον <username>root</username>,
+ επομένως θα πρέπει να προσθέσετε την επιλογή <option>ax</option>
+ στην &man.ps.1;.</para>
+
+ <screen>&prompt.user; <userinput>ps -ax | grep inetd</userinput>
+ 198 ?? IWs 0:00.00 inetd -wW</screen>
+
+ <para>Επομένως το PID της &man.inetd.8; είναι το 198. Σε μερικές
+ περιπτώσεις μπορεί να εμφανίζεται στην έξοδο η εντολή
+ <literal>grep inetd</literal>. Αυτό οφείλεται στον τρόπο με τον
+ οποίο η &man.ps.1; ψάχνει την λίστα των ενεργών διεργασιών.</para>
+ </step>
+
+ <step>
+ <para>Χρησιμοποιήστε την &man.kill.1; για να στείλετε το σήμα.
+ Επειδή η &man.inetd.8; τρέχει από τον <username>root</username>
+ θα πρέπει πρώτα να χρησιμοποιήσετε &man.su.1; για να γίνετε
+ πρώτα <username>root</username>.</para>
+
+ <screen>&prompt.user; <userinput>su</userinput>
+<prompt>Password:</prompt>
+&prompt.root; <userinput>/bin/kill -s HUP 198</userinput></screen>
+
+ <para>Όπως και με τις περισσότερες εντολές στο &unix;, η
+ &man.kill.1; δεν θα τυπώσει τίποτε στην έξοδο αν η εντολή είχε
+ επιτυχία. Εάν στείλετε ένα σήμα σε μια διεργασία που δεν σας
+ ανήκει θα δείτε <errorname>kill: <replaceable>PID</replaceable>:
+ Operation not permitted</errorname>. Αν πληκτρολογήσετε λάθος
+ το PID τότε ή θα στείλετε το σήμα σε λάθος διεργασία,κάτι που
+ μπορεί να είναι άσχημο, ή, αν είστε τυχερός, θα έχετε στείλει το
+ σήμα σε ένα PID που δεν χρησιμοποιείται τη συγκεκριμένη στιγμή, και
+ θα δείτε <errorname>kill: <replaceable>PID</replaceable>: No such
+ process</errorname>.</para>
+
+ <note>
+ <title>Γιατί να χρησιμοποιήσετε την εντολή
+ <command>/bin/kill</command>;</title>
+
+ <para>Πολλά κελύφη παρέχουν την εντολή <command>kill</command> ως
+ ενσωματωμένη εντολή. Αυτό σημαίνει πως το κέλυφος θα στείλει
+ το σήμα άμεσα, αντί να τρέξει το <filename>/bin/kill</filename>.
+ Αυτό μπορεί να είναι πολύ χρήσιμο, αλλά διαφορετικά κελύφη έχουν
+ διαφορετική σύνταξη για τον καθορισμό το όνομα του σήματος που
+ πρέπει να αποσταλεί. Αντί λοιπόν να πρέπει να μάθουμε όλες τις
+ περιπτώσεις ,είναι ευκολότερο απλά να χρησιμοποιούμε την εντολή
+ <command>/bin/kill <replaceable>...</replaceable></command>
+ άμεσα.</para>
+ </note>
+ </step>
+ </procedure>
+
+ <para>Η αποστολή άλλων σημάτων μοιάζει πάρα πολύ, απλά αντικαταστήστε
+ το <literal>TERM</literal> ή το <literal>KILL</literal> στη γραμμή
+ εντολών με κάποιο άλλο.</para>
+
+ <important>
+ <para>Η φόνευση τυχαίων διεργασιών στο σύστημα μπορεί να είναι κακή
+ ιδέα. Ιδιαίτερα, η &man.init.8;, με PID 1, είναι πολύ ειδική. Η
+ εκτέλεση της εντολής <command>/bin/kill -s KILL 1</command> είναι
+ ένας γρήγορος τρόπος να σβήσετε το σύστημα σας.
+ <emphasis>Πάντα</emphasis> να ελέγχετε δύο φορές τις παραμέτρους που
+ χρησιμοποιείτε με την &man.kill.1; <emphasis>πριν</emphasis>
+ πιέσετε <keycap>Return</keycap>.</para>
+ </important>
+ </sect1>
+
+ <sect1 id="shells">
+ <title>Κελύφη</title>
+ <indexterm><primary>κελύφη</primary></indexterm>
+ <indexterm><primary>γραμμή εντολών</primary></indexterm>
+
+ <para>Στο &os; ένα μεγάλο μέρος της καθημερινής εργασίας γίνεται σε ένα
+ περιβάλλον γραμμής εντολών ονόματι κέλυφος (shell). Η κύρια δουλειά
+ του κελύφους είναι να παίρνει εντολές από το κανάλι εισόδου και να τις
+ εκτελεί. Μερικά κελύφη έχουν ενσωματωμένες λειτουργίες ώστε να βοηθούν
+ στις καθημερινές προγραμματισμένες εργασίες όπως διαχείριση αρχείων,
+ file globbing, επεξεργασία γραμμής εντολών, μακροεντολές, και
+ μεταβλητές περιβάλλοντος. Το &os; διατίθεται με διάφορα κελύφη, όπως το
+ <command>sh</command>, το Bourne Shell και το <command>tcsh</command>,
+ το βελτιωμένο C-shell. Διάφορα άλλα κελύφη είναι διαθέσιμα από την
+ Συλλογή των Ports του &os;, όπως τα <command>zsh</command> και
+ <command>bash</command>.</para>
+
+ <para>Ποιο κέλυφος να χρησιμοποιήσετε; Είναι πραγματικά θέμα γούστου.
+ Εάν είστε προγραμματιστής σε γλώσσα C θα αισθανθείτε περισσότερο
+ οικείος με τα κελύφη τύπου C, όπως το <command>tcsh</command>. Εάν
+ έρχεστε από το Linux ή είστε νέος σε περιβάλλον γραμμής εντολών &unix;
+ μπορείτε να δοκιμάσετε το <command>bash</command>. Η ουσία είναι πως
+ κάθε κέλυφος έχει μοναδικές ιδιότητες που μπορεί να συνεργαστούν με το
+ περιβάλλον εργασίας της προτίμησης σας, και επομένως είναι επιλογή σας
+ ποιο κέλυφος να χρησιμοποιήσετε.</para>
+
+ <para>Μια κοινή ιδιότητα όλων των κελυφών είναι η αυτόματη συμπλήρωση
+ ονομάτων αρχείων. Αφού έχετε πληκτρολογήσει τα πρώτα γράμματα μιας
+ εντολής ή ενός ονόματος αρχείου αν πιέσετε το πλήκτρο
+ <keycap>Tab</keycap> στο πληκτρολόγιο, τότε το κέλυφος αυτόματα θα
+ ολοκληρώσει το υπόλοιπο της εντολής ή του ονόματος αρχείου. Ας δώσουμε
+ ένα παράδειγμα. Ας υποθέσουμε πως έχετε δύο αρχεία
+ <filename>foobar</filename> και <filename>foo.bar</filename>. Αν
+ θέλετε να σβήσετε το <filename>foo.bar</filename> θα πρέπει να
+ πληκτρολογήσετε
+ <command>rm fo[<keycap>Tab</keycap>].[<keycap>Tab</keycap>]</command>.</para>
+
+ <para>Το κέλυφος θα τυπώσει αυτόματα <command>rm foo[BEEP].bar</command>.</para>
+
+ <para>Το [BEEP] είναι το κουδούνι της κονσόλας, το οποίο μας πληροφορεί
+ πως δεν ήταν δυνατόν να ολοκληρώσει το όνομα του αρχείου διότι υπάρχουν
+ περισσότερα από ένα ονόματα αρχείων που ταιριάζουν. Όντως το
+ <filename>foobar</filename> και το <filename>foo.bar</filename>
+ ξεκινούν με <literal>fo</literal>, και το κέλυφος κατάφερε να
+ συμπληρώσει ως το <literal>foo</literal>. Αν πληκτρολογήσετε επιπλέον
+ <literal>.</literal>, και μετά πάλι <keycap>Tab</keycap>, το κέλυφος
+ θα καταφέρει να συμπληρώσει το υπόλοιπο του ονόματος αρχείου
+ για σας.</para>
+
+ <indexterm><primary>μεταβλητές περιβάλλοντος</primary></indexterm>
+
+ <para>Άλλο ιδιαίτερο χαρακτηριστικό του κελύφους είναι η χρήση των
+ μεταβλητών περιβάλλοντος. Οι μεταβλητές περιβάλλοντος είναι ένα ζεύγος
+ μεταβλητών/κλειδιών αποθηκευμένα στον περιβάλλοντα χώρο του κελύφους
+ Αυτός ο χώρος μπορεί να διαβαστεί από οποιοδήποτε πρόγραμμα που
+ καλείται από το κέλυφος, και έτσι περιέχει πλήθος ρυθμίσεων
+ προγραμμάτων. Ακολουθεί μία λίστα με συνήθεις μεταβλητές περιβάλλοντος
+ και τη σημασία τους:</para>
+
+ <indexterm><primary>μεταβλητές περιβάλλοντος</primary></indexterm>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Μεταβλητή</entry>
+ <entry>Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><envar>USER</envar></entry>
+ <entry>Όνομα του τρέχοντα χρήστη.</entry>
+ </row>
+
+ <row>
+ <entry><envar>PATH</envar></entry>
+ <entry>Λίστα καταλόγων για την αναζήτηση εκτελέσιμων χωρισμένη
+ με άνω-κάτω τελείες.</entry>
+ </row>
+
+ <row>
+ <entry><envar>DISPLAY</envar></entry>
+ <entry>Όνομα δικτύου της οθόνης X11 που είναι διαθέσιμη για
+ σύνδεση, αν υπάρχει.</entry>
+ </row>
+
+ <row>
+ <entry><envar>SHELL</envar></entry>
+ <entry>Το ενεργό κέλυφος.</entry>
+ </row>
+
+ <row>
+ <entry><envar>TERM</envar></entry>
+ <entry>Το όνομα του τύπου του τερματικού χρήστη. Ορίζει τις
+ δυνατότητες του τερματικού.</entry>
+ </row>
+
+ <row>
+ <entry><envar>TERMCAP</envar></entry>
+ <entry>Εγγραφή στη βάση δεδομένων κωδικών escape για διάφορες
+ λειτουργίες τερματικών.</entry>
+ </row>
+
+ <row>
+ <entry><envar>OSTYPE</envar></entry>
+ <entry>Ο τύπος του λειτουργικού συστήματος π.χ., &os;.</entry>
+ </row>
+
+ <row>
+ <entry><envar>MACHTYPE</envar></entry>
+ <entry>Η αρχιτεκτονική CPU στην οποία δουλεύει το σύστημα.</entry>
+ </row>
+
+ <row>
+ <entry><envar>EDITOR</envar></entry>
+ <entry>Ο προεπιλεγμένος κειμενογράφος του χρήστη.</entry>
+ </row>
+
+ <row>
+ <entry><envar>PAGER</envar></entry>
+ <entry>Το προεπιλεγμένο πρόγραμμα σελιδοποίησης του
+ χρήστη.</entry>
+ </row>
+
+ <row>
+ <entry><envar>MANPATH</envar></entry>
+ <entry>Λίστα καταλόγων για την αναζήτηση των σελίδων βοηθείας
+ (man pages) χωρισμένη με άνω-κάτω τελείες.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <indexterm><primary>Bourne shells</primary></indexterm>
+
+ <para>Ο ορισμός μιας μεταβλητής περιβάλλοντος διαφέρει κάπως από κέλυφος
+ σε κέλυφος. Για παράδειγμα στα κελύφη τύπου-C, όπως τα
+ <command>tcsh</command> και <command>csh</command>, θα πρέπει να
+ χρησιμοποιήσετε την <command>setenv</command> για να ορίσετε μεταβλητές
+ περιβάλλοντος. Σε κελύφη Bourne όπως τα <command>sh</command> και
+ <command>bash</command>, θα πρέπει να χρησιμοποιείτε την
+ <command>export</command> για να θέσετε τις τρέχουσες μεταβλητές
+ περιβάλλοντος. Για παράδειγμα, για να ορίσετε ή να μετατρέψετε την
+ μεταβλητή περιβάλλοντος <envar>EDITOR</envar>, σε
+ <command>csh</command> ή <command>tcsh</command> θα πρέπει να δώσετε
+ μια εντολή που να θέτει τη μεταβλητή <envar>EDITOR</envar> στο
+ <filename>/usr/local/bin/emacs</filename>:</para>
+
+ <screen>&prompt.user; <userinput>setenv EDITOR /usr/local/bin/emacs</userinput></screen>
+
+ <para>Για κελύφη Bourne:</para>
+
+ <screen>&prompt.user; <userinput>export EDITOR="/usr/local/bin/emacs"</userinput></screen>
+
+ <para>Μπορείτε επίσης στα περισσότερα κελύφη να αναπτύσσετε τις
+ μεταβλητές περιβάλλοντος τοποθετώντας μπροστά τους τον χαρακτήρα
+ <literal>$</literal>. Για παράδειγμα, η <command>echo $TERM</command>
+ θα τυπώσει την τιμή που έχουμε θέσει στην μεταβλητή, διότι το κέλυφος
+ αναπτύσσει την <envar>$TERM</envar> και περνά την τιμή της στην
+ <command>echo</command>.</para>
+
+ <para>Τα κελύφη χρησιμοποιούν μερικούς ειδικούς χαρακτήρες, που
+ ονομάζονται meta-χαρακτήρες για εμφανίσεις ιδιαίτερων δεδομένων. Ο πιο
+ κοινός εξ' αυτών είναι ο χαρακτήρας <literal>*</literal>, ο οποίος
+ αντιπροσωπεύει οποιοδήποτε αλφαριθμητικό χαρακτήρα σε ένα όνομα αρχείου.
+ Αυτοί οι ειδικοί meta-χαρακτήρες μπορούν να χρησιμοποιηθούν για να
+ κάνουν filename globbing. Για παράδειγμα, αν πληκτρολογήσετε
+ <command>echo *</command> είναι σχεδόν το ίδιο με το να δώσετε
+ <command>ls</command> διότι το κέλυφος παίρνει όλα τα αρχεία που
+ ταιριάζουν με <literal>*</literal> και τα προωθεί στην γραμμή εντολών
+ για την <command>echo</command>.</para>
+
+ <para>Για να εμποδίσετε το κέλυφος να επεξεργαστεί αυτούς τους ειδικούς
+ χαρακτήρες, μπορείτε να χρησιμοποιήσετε το σύμβολο διαφυγής (escape)
+ τοποθετώντας μπροστά τους μια δεξιόστροφη κάθετο
+ (<literal>\</literal>). Η <command>echo $TERM</command> τυπώνει τον
+ τύπο του τερματικού σας, ενώ η <command>echo \$TERM</command> τυπώνει
+ απλά <envar>$TERM</envar>.</para>
+
+ <sect2 id="changing-shells">
+ <title>Αλλάζοντας το Κέλυφος σας</title>
+
+ <para>Ο ευκολότερος τρόπος για να αλλάξετε το κέλυφος σας είναι να
+ χρησιμοποιήσετε την εντολή <command>chsh</command>. Τρέχοντας την
+ <command>chsh</command> θα οδηγηθείτε στον κειμενογράφο που έχετε
+ θέσει στην μεταβλητή περιβάλλοντος <envar>EDITOR</envar>, ενώ αν δεν
+ έχετε θέσει, θα οδηγηθείτε στο <command>vi</command>. Αλλάξτε
+ κατάλληλα τη γραμμή <quote>Shell:</quote></para>
+
+ <para>Μπορείτε επίσης να δώσετε στην <command>chsh</command> την
+ επιλογή <option>-s</option>, αυτή θα θέσει το κέλυφος για σας, δίχως
+ να χρειαστεί να χρησιμοποιήσετε τον κειμενογράφο. Για παράδειγμα, αν
+ θέλετε να αλλάξετε το κέλυφος σας σε <command>bash</command>, η
+ ακόλουθη εντολή είναι ακριβώς αυτό που χρειάζεστε:</para>
+
+ <screen>&prompt.user; <userinput>chsh -s /usr/local/bin/bash</userinput></screen>
+
+ <note>
+ <para>Το κέλυφος στο οποίο επιθυμείτε να μεταβείτε
+ <emphasis>πρέπει</emphasis> να είναι καταχωρημένο στο αρχείο
+ <filename>/etc/shells</filename>. Αν έχετε εγκαταστήσει ένα
+ κέλυφος από τη <link linkend="ports">συλλογή των ports</link>, τότε
+ αυτό θα πρέπει να έχει ήδη γίνει. Αν εγκαταστήσατε το κέλυφος μόνοι
+ σας, τότε θα πρέπει να εκτελέσετε τη διαδικασία που
+ ακολουθεί.</para>
+
+ <para>Αν για παράδειγμα, εγκαταστήσατε το <command>bash</command>
+ μόνοι σας και το τοποθετήσατε στον
+ <filename>/usr/local/bin</filename>, τότε θα πρέπει να
+ δώσετε:</para>
+
+ <screen>&prompt.root; <userinput>echo &quot;/usr/local/bin/bash&quot; &gt;&gt; /etc/shells</userinput></screen>
+
+ <para>Και μετά ξανατρέξτε την <command>chsh</command>.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="editors">
+ <title>Κειμενογράφοι</title>
+ <indexterm><primary>κειμενογράφοι</primary></indexterm>
+ <indexterm><primary>επεξεργαστές κειμένου</primary></indexterm>
+
+ <para>Αρκετές ρυθμίσεις στο &os; γίνονται με επεξεργασία αρχείων
+ κειμένου. Για αυτό το λόγο, θα ήταν καλή ιδέα να εξοικειωθείτε με ένα
+ κειμενογράφο. Αρκετοί περιέχονται στο βασικό σύστημα του &os; και
+ πολλοί περισσότεροι είναι διαθέσιμοι στην Συλλογή των Ports
+ (Ports Collection).</para>
+
+ <indexterm>
+ <primary><command>ee</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>κειμενογράφοι</primary>
+ <secondary><command>ee</command></secondary>
+ </indexterm>
+
+ <para>Ο ευκολότερος και απλούστερος κειμενογράφος για να μάθετε ονομάζεται
+ <application>ee</application>, που σημαίνει easy editor (εύκολος
+ κειμενογράφος). Για να ξεκινήσετε τον <application>ee</application>,
+ πρέπει να πληκτρολογήσετε στην γραμμή εντολών
+ <command>ee <replaceable>filename</replaceable></command> όπου
+ <replaceable>filename</replaceable> είναι το όνομα του αρχείου που
+ θέλετε να επεξεργαστείτε. Για παράδειγμα, για να επεξεργαστείτε το
+ <filename>/etc/rc.conf</filename>, πληκτρολογείτε
+ <command>ee /etc/rc.conf</command>. Μόλις εισέλθετε στο
+ <command>ee</command>, όλες οι εντολές για να χειριστείτε τις
+ λειτουργίες του κειμενογράφου αναφέρονται στο πάνω μέρος της οθόνης.
+ Ο χαρακτήρας καπέλο <literal>^</literal> σημαίνει το πλήκτρο
+ <keycap>Ctrl</keycap>, επομένως <literal>^e</literal> σημαίνει πως
+ πρέπει να πληκτρολογήσετε τον συνδυασμό πλήκτρων
+ <keycombo action="simul"><keycap>Ctrl</keycap><keycap>e</keycap>
+ </keycombo>. Για να βγείτε από το <application>ee</application>,
+ πιέζετε το πλήκτρο <keycap>Esc</keycap>, και επιλέγετε leave editor.
+ Ο κειμενογράφος θα σας προτρέψει να σώσετε τυχόν αλλαγές, αν έχετε
+ επεξεργαστεί το αρχείο.</para>
+
+ <indexterm>
+ <primary><command>vi</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>editors</primary>
+ <secondary><command>vi</command></secondary>
+ </indexterm>
+ <indexterm>
+ <primary><command>emacs</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>editors</primary>
+ <secondary><command>emacs</command></secondary>
+ </indexterm>
+ <para>Το &os; παρέχεται επίσης με πιο εξελιγμένους κειμενογράφους όπως
+ το ενσωματωμένο στο βασικό σύστημα <application>vi</application>. Το
+ <application>Emacs</application> και το <application>vim</application>,
+ είναι μέρος της Συλλογής των Ports του &os;
+ (<filename role="package">editors/emacs</filename> και
+ <filename role="package">editors/vim</filename>). Αυτοί οι
+ κειμενογράφοι προσφέρουν πολλές περισσότερες λειτουργίες και
+ δυνατότητες, με κόστος αυξημένη πολυπλοκότητα και δυσκολία εκμάθησης.
+ Ωστόσο αν σχεδιάζετε να επεξεργαστείτε αρκετά κείμενα, η εκμάθηση ενός
+ ισχυρού κειμενογράφου όπως το
+ <application>vim</application> ή το <application>Emacs</application> θα
+ σας γλυτώσει πολύ περισσότερο χρόνο επεξεργασίας στην πορεία.</para>
+
+ <para>Πολλές εφαρμογές που χρειάζεται να αλλάξουν κάποιο αρχείο ή
+ απαιτούν από το χρήστη να πληκτρολογήσει κάποιο κείμενο, θα ανοίξουν
+ αυτόματα κάποιο κειμενογράφο. Για να αλλάξετε τον προεπιλεγμένο
+ κειμενογράφο, θα πρέπει να θέσετε κατάλληλη τιμή στην μεταβλητή
+ περιβάλλοντος <envar>EDITOR</envar>. Δείτε την ενότητα <link
+ linkend="shells">Κελύφη</link> για περισσότερες λεπτομέρειες.</para>
+ </sect1>
+
+ <sect1 id="basics-devices">
+ <title>Συσκευές και Αρχεία συσκευών</title>
+
+ <para>Συσκευή είναι ένας όρος που αναφέρεται σε σχέση με
+ λειτουργίες hardware ενός συστήματος, περιλαμβάνοντας δίσκους,
+ εκτυπωτές, κάρτες γραφικών και πληκτρολόγια. Κατά την εκκίνηση του &os;
+ οι περισσότερες πληροφορίες που αναγράφονται στην οθόνη είναι συσκευές
+ που αναγνωρίζονται από το σύστημα. Μπορείτε να ξαναδείτε τα μηνύματα
+ εκκίνησης, διαβάζοντας το <filename>/var/run/dmesg.boot</filename>.</para>
+
+ <para>Για παράδειγμα, <devicename>acd0</devicename> είναι ο πρώτος
+ οδηγός IDE CDROM, ενώ το <devicename>kbd0</devicename> αντιπροσωπεύει
+ το πληκτρολόγιο.</para>
+
+ <para>Στις περισσότερες από αυτές τις συσκευές σε ένα λειτουργικό σύστημα
+ &unix; η πρόσβαση πρέπει να γίνεται διαμέσου ειδικών αρχείων που
+ ονομάζονται αρχεία συσκευών, και είναι τοποθετημένα στον κατάλογο
+ <filename>/dev</filename>.</para>
+
+ <sect2>
+ <title>Δημιουργώντας Αρχεία Συσκευών</title>
+ <para>Όταν προσθέτετε μια νέα συσκευή στο σύστημα σας, ή μεταγλωττίζετε
+ πηγαίο κώδικα για υποστήριξη νέων οδηγών, πρέπει να δημιουργούνται
+ νέα αρχεία συσκευών.</para>
+
+ <sect3>
+ <title><literal>DEVFS</literal> (DEVice File System)</title>
+
+ <para> Το σύστημα αρχείων συσκευών ή, <literal>DEVFS</literal>,
+ παρέχει πρόσβαση στο χώρο ονομάτων συσκευών του πυρήνα (device
+ namespace) στο global σύστημα αρχείων του συστήματος. Αντί να
+ δημιουργείτε και να μετατρέπετε αρχεία συσκευών, το
+ <literal>DEVFS</literal> συντηρεί για σας αυτό το ιδιαίτερο σύστημα
+ αρχείων.</para>
+
+ <para>Δείτε την σελίδα βοηθείας &man.devfs.5; για περισσότερες
+ πληροφορίες.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="binary-formats">
+ <title>Τύποι Εκτελέσιμων</title>
+
+ <para>Για να καταλάβετε γιατί το &os; χρησιμοποιεί τον τύπο &man.elf.5;
+ θα πρέπει πρώτα να γνωρίζετε μερικά πράγματα για τους τρεις
+ <quote>κυρίαρχους</quote> τύπους εκτελέσιμων για το &unix;</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&man.a.out.5;</para>
+
+ <para>Ο παλαιότερος και πιο <quote>κλασσικός</quote> τύπος
+ αντικειμένων του &unix;. Χρησιμοποιεί μια μικρή και συμπαγή
+ κεφαλίδα με ένα μαγικό νούμερο στην αρχή που συχνά χρησιμοποιείται
+ για να χαρακτηρίζει τον τύπο (δείτε για περισσότερες πληροφορίες
+ την &man.a.out.5;). Περιέχει τρία φορτωμένα τμήματα: .text, .data
+ και .bss και επιπλέον ένα πίνακα συμβόλων και ένα πίνακα
+ αλφαριθμητικών χαρακτήρων.</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>COFF</acronym></para>
+
+ <para>Ο τύπος αντικειμένου SVR3. Η κεφαλίδα τώρα αποτελείται από ένα
+ πίνακα τομέων, ώστε να μπορούμε να έχουμε κάτι παραπάνω από απλά
+ .text, .data και .bss.</para>
+ </listitem>
+
+ <listitem>
+ <para>&man.elf.5;</para>
+
+ <para>Ο διάδοχος του <acronym>COFF</acronym>, περιλαμβάνει πολλαπλά
+ τμήματα και δέχεται τιμές 32 ή 64 bit. Το βασικό μειονέκτημα:
+ Ο <acronym>ELF</acronym> σχεδιάστηκε με την προϋπόθεση πως θα
+ υπήρχε μόνο ένα ABI για κάθε αρχιτεκτονική συστήματος. Αυτή η
+ υπόθεση είναι όμως εσφαλμένη τώρα, αφού ακόμη και στον εμπορικό
+ κόσμο του SYSV (όπου υπάρχουν τουλάχιστον τρία ABI: SRV4, Solaris,
+ SCO) δεν ισχύει.</para>
+
+ <para>Το &os; προσπαθεί να ξεπεράσει αυτό το πρόβλημα παρέχοντας
+ ένα βοηθητικό πρόγραμμα με το οποίο μπορούμε να
+ <emphasis>ενσωματώσουμε (branding)</emphasis> σε ένα εκτελέσιμο
+ <acronym>ELF</acronym> τις πληροφορίες για το ABI που είναι συμβατό
+ με αυτό. Δείτε την σελίδα manual του &man.brandelf.1; για
+ περισσότερες πληροφορίες.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Το &os; προέρχεται από τον <quote>κλασσικό</quote> χώρο και
+ μέχρι την αρχή της σειράς 3.X, χρησιμοποιούσε τον τύπο &man.a.out.5;,
+ μια τεχνολογία δοκιμασμένη και αποδεδειγμένη σε πολλές γενιές εκδόσεων
+ του BSD. Αν και η μεταγλώττιση και εκτέλεση εγγενών εκτελέσιμων (και
+ πυρήνων) τύπου <acronym>ELF</acronym> ήταν δυνατή στα &os; συστήματα
+ ήδη από πολύ καιρό πριν, το &os; αρχικά αντιστάθηκε στην
+ <quote>ώθηση</quote> για καθιέρωση του <acronym>ELF</acronym> ως
+ προκαθορισμένου τύπου. Γιατί; Όταν ο κόσμος του Λίνουξ έκανε την
+ οδυνηρή μετάβαση προς το <acronym>ELF</acronym>, δεν ήταν τόσο για να
+ ξεφύγει από τον τύπο εκτελέσιμων <filename>a.out</filename> όσο για να
+ αντιμετωπίσει το δύσκαμπτο δικό τους μηχανισμό κοινόχρηστων βιβλιοθηκών,
+ ο οποίος βασίζονταν σε jump-tables και προκαλούσε μεγάλη δυσχέρεια στην
+ κατασκευή τους, τόσο στους προγραμματιστές όσο και στους μεταπωλητές.
+ Από τη στιγμή που τα διαθέσιμα εργαλεία του <acronym>ELF</acronym>
+ προσέφεραν λύση στο πρόβλημα των κοινών βιβλιοθηκών και έγινε γενικώς
+ αποδεκτό πως ήταν <quote>ο δρόμος προς τα εμπρός</quote>, έγινε
+ αποδεκτό το αναγκαίο κόστος της μεταφοράς και επιτεύχθηκε η μετακίνηση.
+ Ο μηχανισμός κοινόχρηστων βιβλιοθηκών του &os; βασίζεται σε μεγάλο
+ βαθμό στον αντίστοιχο μηχανισμό του &sunos; της Sun και είναι πολύ
+ εύκολος στη χρήση.</para>
+
+ <para>Τότε, γιατί υπάρχουν τόσοι διαφορετικοί τύποι;</para>
+
+ <para>Πίσω στο σκοτεινό παρελθόν, υπήρχε απλό hardware. Αυτό
+ το απλό hardware υποστήριζε ένα απλό, μικρό σύστημα. Το
+ <filename>a.out</filename> ήταν απόλυτα κατάλληλο για την αναπαράσταση
+ εκτελέσιμων σε αυτό το απλό σύστημα (ένα PDP-11). Όταν ο κόσμος άρχισε
+ να μεταφέρει το &unix; από αυτό το απλό σύστημα, διατηρήθηκε ο τύπος
+ <filename>a.out</filename> γιατί ήταν ικανοποιητικός για τα πρώτα
+ ports του &unix; σε αρχιτεκτονικές όπως η Motorola 68k, VAXen,
+ κτλ.</para>
+
+ <para>Μετέπειτα κάποιος λαμπρός μηχανικός hardware αποφάσισε
+ πως αφού μπορούσε να εξαναγκάζει το λογισμικό να κάνει τόσα
+ πρόχειρα κόλπα, θα μπορούσε επίσης να παραλείψει μερικές πύλες
+ από το σχεδιασμό ώστε να επιτρέψει στον πυρήνα της CPU να τρέχει
+ γρηγορότερα. Αν και διασκευάσθηκε ώστε να δουλεύει με αυτό το νέο
+ είδος hardware (γνωστό σήμερα ως <acronym>RISC</acronym>), ο τύπος
+ <filename>a.out</filename> ήταν τελικά ακατάλληλος για αυτό, και έτσι
+ σχεδιάστηκαν πολλοί νέοι τύποι για να επιτευχθεί καλύτερη απόδοση από
+ το hardware από ότι ήταν δυνατόν με τον απλό και περιοριστικό τύπο
+ <filename>a.out</filename>. Εφευρέθηκαν διάφοροι τύποι όπως οι
+ <acronym>COFF</acronym>, <acronym>ECOFF</acronym>, και μερικοί άλλοι
+ λιγότερο γνωστοί, και ερευνήθηκαν οι περιορισμοί τους ώσπου τα πράγματα
+ σταθεροποιήθηκαν στο <acronym>ELF</acronym>.</para>
+
+ <para>Επιπλέον, το μέγεθος των προγραμμάτων γινόταν όλο και μεγαλύτερο
+ και οι δίσκοι (και η φυσική μνήμη) ήταν ακόμη σχετικά μικροί και κάπως
+ έτσι γεννήθηκε η ιδέα της κοινής βιβλιοθήκης. Το σύστημα VM έγινε
+ επίσης περισσότερο περίπλοκο. Κάθε μία από τις βελτιώσεις γινόταν
+ με βάση τον τύπο <filename>a.out</filename>, που όμως γινόταν όλο και
+ πιο δύσχρηστος με κάθε νέα προσθήκη. Επιπρόσθετα, ο κόσμος ήθελε να
+ φορτώνει τμήματα δυναμικά ενώ το σύστημα ήταν σε φάση εκτέλεσης, ή να
+ εξαλείφει μέρη προγραμμάτων αφού είχε εκτελεστεί ο κώδικας αρχικοποίησης
+ (init) ώστε να εξοικονομηθεί φυσική μνήμη και χώρος swap. Οι γλώσσες
+ προγραμματισμού γινόντουσαν ακόμα πιο περίπλοκες και ο κόσμος ήθελε
+ αυτόματη φόρτωση και εκτέλεση κώδικα πριν την κλήση της main. Έγιναν
+ πρόχειρες διορθώσεις (hacks) στον τύπο <filename>a.out</filename> ώστε
+ να συμβαδίζει με όλες αυτές τις αλλαγές, και πράγματι, για μια περίοδο
+ έδειχνε να λειτουργεί. Με τον καιρό όμως, φάνηκε ότι ο τύπος
+ <filename>a.out</filename> δεν θα μπορούσε να αντεπεξέλθει σε όλα αυτά
+ τα προβλήματα, αφού θα έπρεπε να αναπτύσσεται συνεχώς και με περίπλοκο
+ τρόπο. Αν και το <acronym>ELF</acronym> έλυνε πολλά από αυτά τα
+ προβλήματα, η μετάβαση σε αυτό ενός συστήματος που βασικά λειτουργούσε,
+ θα οδηγούσε σε οδυνηρές καταστάσεις. Έτσι ο τύπος
+ <acronym>ELF</acronym> έπρεπε να περιμένει μέχρι τη στιγμή όπου η
+ παραμονή στο <filename>a.out</filename> θα δημιουργούσε περισσότερα
+ προβλήματα από ότι η μετάβαση στο <acronym>ELF</acronym>.</para>
+
+ <para>Ωστόσο, όσο ο καιρός περνούσε, και τα εργαλεία μεταγλώττισης από
+ τα οποία προέρχονται τα αντίστοιχα εργαλεία του &os; (ειδικότερα ο
+ assembler και ο loader), αναπτύχθηκαν παράλληλα σε δύο δέντρα. Το
+ δέντρο του &os; πρόσθεσε κοινές βιβλιοθήκες και διόρθωσε κάποια
+ σφάλματα. Η ομάδα του GNU που είχε αρχικά γράψει αυτά τα
+ προγράμματα, τα έγραψε ξανά και πρόσθεσε ευκολότερη υποστήριξη για
+ κατασκευή cross compilers, την ενσωμάτωση διαφορετικών τύπων κατά
+ βούληση, κλπ. Αν και πολλοί ζητούσαν να κατασκευαστούν cross compilers
+ για &os;, ήταν άτυχοι, αφού ο παλιός πηγαίος κώδικας του &os; για τα
+ <application>as</application> και <application>ld</application> τα
+ έκανε ακατάλληλα. Η νέα αλυσίδα εργαλείων του GNU
+ (<application>binutils</application>) υποστηρίζει cross compiling,
+ <acronym>ELF</acronym>, κοινές βιβλιοθήκες, προεκτάσεις C++, κτλ.
+ Επιπλέον, πολλοί τρίτοι κατασκευαστές προσφέρουν εκτελέσιμα ELF, και
+ είναι πολύ καλό να μπορούν να εκτελεστούν στο &os;.</para>
+
+ <para>Ο <acronym>ELF</acronym> είναι πιο εκφραστικός από τον
+ <filename>a.out</filename> και περισσότερο επεκτάσιμος στο βασικό
+ σύστημα. Τα εργαλεία <acronym>ELF</acronym> είναι ευκολότερα στην
+ συντήρηση και προσφέρουν υποστήριξη για cross compilers,
+ κάτι που είναι πολύ σημαντικό για μερικούς ανθρώπους. Μπορεί ο
+ <acronym>ELF</acronym> να είναι λίγο πιο αργός από τον
+ <filename>a.out</filename>, αλλά η διαφορά δεν είναι αισθητή. Υπάρχουν
+ επίσης πολλές άλλες διαφορές μεταξύ τους, σε λεπτομέρειες όπως τον τρόπο
+ που αντιστοιχίζουν σελίδες, που χειρίζονται τον κώδικα init, κλπ.
+ Καμιά από αυτές δεν είναι πολύ σημαντική, αλλά ωστόσο δεν παύουν να
+ είναι διαφορές. Με τον καιρό η υποστήριξη για το
+ <filename>a.out</filename> θα απομακρυνθεί από τον πυρήνα GENERIC, και
+ τελικά θα αφαιρεθεί εντελώς από τον πυρήνα όταν εκλείψει ολοκληρωτικά η
+ ανάγκη εκτέλεσης παλαιών προγραμμάτων τύπου <filename>a.out</filename>.</para>
+ </sect1>
+
+ <sect1 id="basics-more-information">
+ <title>Για Περισσότερες Πληροφορίες</title>
+
+ <sect2 id="basics-man">
+ <title>Σελίδες Βοηθείας</title>
+ <indexterm><primary>σελίδες βοηθείας</primary></indexterm>
+
+ <para>Η πιο κατανοητή τεκμηρίωση στο &os; προσφέρεται με τη μορφή των
+ σελίδων βοηθείας (manual pages). Σχεδόν για κάθε πρόγραμμα του
+ συστήματος δίνεται μια σύντομη αναφορά που εξηγεί τις βασικές
+ λειτουργίες και διάφορα άλλα θέματα. Αυτές οι σελίδες προβάλλονται με
+ την εντολή <command>man</command>. Η χρήση της εντολής
+ <command>man</command> είναι απλή:</para>
+
+ <screen>&prompt.user; <userinput>man <replaceable>command</replaceable></userinput></screen>
+
+ <para>όπου <literal>command</literal> είναι το όνομα της εντολής για την
+ οποία επιθυμείτε να μάθετε περισσότερες πληροφορίες. Για παράδειγμα,
+ για να μάθετε περισσότερα για την εντολή <command>ls</command>
+ πληκτρολογήστε:</para>
+
+ <screen>&prompt.user; <userinput>man ls</userinput></screen>
+
+ <para>Το online manual χωρίζεται σε τέσσερις αριθμημένες
+ ενότητες:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Εντολές χρήστη.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κλήσεις συστήματος και αριθμοί σφαλμάτων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Συναρτήσεις των βιβλιοθηκών της C.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οδηγοί συσκευών.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τύποι αρχείων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Παιχνίδια και άλλες εφαρμογές διασκέδασης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Διάφορες πληροφορίες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Συντήρηση συστήματος και εντολές λειτουργίας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ανάπτυξη πυρήνα.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Σε μερικές περιπτώσεις, το ίδιο θέμα μπορεί να εμφανίζεται σε
+ περισσότερες ενότητες των σελίδων βοηθείας. Για παράδειγμα, υπάρχει
+ η εντολή χρήστη <command>chmod</command> και η κλήση συστήματος
+ <function>chmod()</function>. Σε αυτή τη περίπτωση, μπορείτε να
+ πείτε στην εντολή <command>man</command> ποια ακριβώς θέλετε
+ επιλέγοντας την ενότητα:</para>
+
+ <screen>&prompt.user; <userinput>man 1 chmod</userinput></screen>
+
+ <para>Με αυτόν τον τρόπο θα εμφανιστεί η σελίδα βοηθείας για την
+ εντολή χρήστη <command>chmod</command>. Οι αναφορές σε μια ειδική
+ ενότητα των σελίδων βοηθείας τοποθετούνται παραδοσιακά μέσα σε
+ παρένθεση στην τυπωμένη τεκμηρίωση, επομένως το &man.chmod.1;
+ αναφέρεται στην εντολή χρήστη <command>chmod</command> και το
+ &man.chmod.2; αναφέρεται στην κλήση συστήματος.</para>
+
+ <para>Αυτό είναι χρήσιμο όταν γνωρίζουμε το όνομα της εντολής και απλά
+ επιθυμούμε να μάθουμε πως να την χρησιμοποιήσουμε, αλλά τι γίνεται
+ αν δεν γνωρίζουμε το όνομα της; Μπορείτε να χρησιμοποιήσετε το
+ <command>man</command> για να αναζητήσετε λέξεις κλειδιά από τις
+ περιγραφές των εντολών χρησιμοποιώντας την επιλογή
+ <option>-k</option>:</para>
+
+ <screen>&prompt.user; <userinput>man -k mail</userinput></screen>
+
+ <para>Με την εντολή αυτή θα εμφανιστεί μία λίστα από εντολές που
+ περιέχουν την λέξη κλειδί <quote>mail</quote> στην περιγραφή τους.
+ Αυτό είναι αντίστοιχο με το να χρησιμοποιήσετε την εντολή
+ <command>apropos</command>.</para>
+
+ <para>Επομένως, βλέπετε όλες αυτές τις γουστόζικες εντολές στον
+ <filename>/usr/bin</filename> αλλά δεν έχετε την παραμικρή ιδέα του
+ τι πραγματικά κάνουν; Απλά δώστε:</para>
+
+ <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
+&prompt.user; <userinput>man -f *</userinput></screen>
+
+ <para>ή</para>
+
+ <screen>&prompt.user; <userinput>cd /usr/bin</userinput>
+&prompt.user; <userinput>whatis *</userinput></screen>
+
+ <para>το οποίο κάνει ακριβώς το ίδιο πράγμα.</para>
+ </sect2>
+
+ <sect2 id="basics-info">
+ <title>GNU Info Files</title>
+ <indexterm><primary>Free Software Foundation</primary></indexterm>
+
+ <para>Το &os; περιλαμβάνει πολλές εφαρμογές και βοηθητικά προγράμματα
+ που έχουν δημιουργηθεί από την Free Software Foundation (FSF). Πέρα
+ από τις σελίδες βοηθείας, τα προγράμματα αυτά παρέχονται με
+ τεκμηρίωση μορφής hypertext σε αρχεία που ονομάζονται
+ <literal>info</literal> και τα οποία μπορείτε να προβάλλετε με την
+ εντολή <command>info</command> ή, αν έχετε εγκαταστήσει το
+ <application>emacs</application>, μέσω της κατάστασης λειτουργίας
+ info mode του <application>emacs</application>.</para>
+
+ <para>Για να χρησιμοποιήσετε την εντολή &man.info.1;, απλά
+ πληκτρολογήστε:</para>
+
+ <screen>&prompt.user; <userinput>info</userinput></screen>
+
+ <para>Για μια σύντομη εισαγωγή, πληκτρολογήστε <literal>h</literal>.
+ Για μια γρήγορη αναφορά εντολής, πληκτρολογήστε
+ <literal>?</literal>.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/basics/example-dir1.dot b/el_GR.ISO8859-7/books/handbook/basics/example-dir1.dot
new file mode 100644
index 0000000000..2d2babfec3
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/basics/example-dir1.dot
@@ -0,0 +1,12 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/basics/example-dir1.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/";
+ root -> "A2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/basics/example-dir2.dot b/el_GR.ISO8859-7/books/handbook/basics/example-dir2.dot
new file mode 100644
index 0000000000..d3326ee012
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/basics/example-dir2.dot
@@ -0,0 +1,13 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/basics/example-dir2.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/" -> "B1/";
+ "A1/" -> "B2/";
+ root -> "A2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/basics/example-dir3.dot b/el_GR.ISO8859-7/books/handbook/basics/example-dir3.dot
new file mode 100644
index 0000000000..3e583dbefd
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/basics/example-dir3.dot
@@ -0,0 +1,14 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/basics/example-dir3.dot
+// %SRCID% 1.1
+
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/";
+ root -> "A2/" -> "B1/";
+ "A2/" -> "B2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/basics/example-dir4.dot b/el_GR.ISO8859-7/books/handbook/basics/example-dir4.dot
new file mode 100644
index 0000000000..ed9e13cf6d
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/basics/example-dir4.dot
@@ -0,0 +1,15 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/basics/example-dir4.dot
+// %SRCID% 1.1
+
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/";
+ root -> "A2/" -> "B1/" -> "C1/";
+ "B1/" -> "C2/";
+ "A2/" -> "B2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/basics/example-dir5.dot b/el_GR.ISO8859-7/books/handbook/basics/example-dir5.dot
new file mode 100644
index 0000000000..ecb09b22eb
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/basics/example-dir5.dot
@@ -0,0 +1,14 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/basics/example-dir5.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/" -> "C1/";
+ "A1/" -> "C2/";
+ root -> "A2/" -> "B1/";
+ "A2/" -> "B2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml b/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml
new file mode 100644
index 0000000000..ca0508750e
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/bibliography/chapter.sgml
@@ -0,0 +1,701 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Βιβλιογραφία
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml
+ %SRCID% 1.89
+
+-->
+
+<appendix id="bibliography">
+ <title>Βιβλιογραφία</title>
+
+ <para>Αν και τα manual pages παρέχουν μία επίσημη αναφορά για ξεχωριστά
+ τμήματα του FreeBSD λειτουργικού συστήματος, έχουν κακή φήμη για το ότι δεν
+ επεξηγούν πως να ενώσεις τα τμήματα μαζί για να κάνεις όλο το λειτουργικό
+ σύστημα να λειτουργεί ομαλά. Για αυτό, δεν υπάρχει υποκατάστατο από ένα καλό βιβλίο στην
+ διαχείριση συστημάτων &unix; και ένα καλό εγχειρίδιο χρήστη.</para>
+
+ <sect1 id="bibliography-freebsd">
+ <title>Βιβλία &amp; Περιοδικά σχετικά με το FreeBSD</title>
+
+ <para><emphasis>Διεθνή βιβλία &amp;
+ περιοδικά:</emphasis></para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="http://jdli.tw.FreeBSD.org/publication/book/freebsd2/index.htm">Using FreeBSD</ulink> (σε Παραδοσιακά Κινέζικα).</para>
+ </listitem>
+
+ <listitem>
+
+ <para>FreeBSD Unleashed (Μετάφραση σε Απλοποιημένα Κινέζικα),
+ εκδόθηκε από την
+ <ulink url="http://www.hzbook.com/">China Machine
+ Press</ulink>. ISBN 7-111-10201-0.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD From Scratch First Edition (σε Απλοποιημένα Κινέζικα),
+ εκδόθηκε από την China Machine Press. ISBN 7-111-07482-3.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD From Scratch Second Edition (σε Απλοποιημένα Κινέζικα),
+ εκδόθηκε από την China Machine Press. ISBN 7-111-10286-X.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD Handbook Second Edition (Μετάφραση σε Απλοποιημένα
+ Κινέζικα), εκδόθηκε από την
+ <ulink url="http://www.ptpress.com.cn/">Posts &amp; Telecom
+ Press</ulink>. ISBN 7-115-10541-3.
+ </para>
+ </listitem>
+
+ <listitem>
+
+ <para>FreeBSD 3.x Internet (σε Απλοποιημένα Κινέζικα),
+ εκδόθηκε από την
+ <ulink url="http://www.tup.tsinghua.edu.cn/">Tsinghua
+ University Press</ulink>. ISBN 7-900625-66-6.</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD &amp; Windows (σε Απλοποιημένα Κινέζικα),
+ εκδόθηκε από την
+ <ulink url="http://www.tdpress.com/">China Railway Publishing
+ House</ulink>. ISBN 7-113-03845-X</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD Internet Services HOWTO (σε Απλοποιημένα Κινέζικα),
+ εκδόθηκε από την China Railway Publishing House.
+ ISBN 7-113-03423-3</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD for PC 98'ers (στα Γιαπωνέζικα), εκδόθηκε από την SHUWA System
+ Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD (στα Γιαπωνέζικα), εκδόθηκε από την CUTT. ISBN 4-906391-22-2
+ C3055 P2400E.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.shoeisha.com/book/Detail.asp?bid=650">Complete Introduction to FreeBSD</ulink>
+ (στα Γιαπωνέζικα), εκδόθηκε από την <ulink
+ url="http://www.shoeisha.co.jp/">Shoeisha Co., Ltd</ulink>.
+ ISBN 4-88135-473-6 P3600E.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.ascii.co.jp/pb/book1/shinkan/detail/1322785.html">Personal UNIX Starter Kit FreeBSD</ulink>
+ (στα Γιαπωνέζικα), εκδόθηκε από την <ulink
+ url="http://www.ascii.co.jp/">ASCII</ulink>.
+ ISBN 4-7561-1733-3 P3000E.</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD Handbook (Γιαπωνέζικη μετάφραση), εκδόθηκε από την
+ <ulink url="http://www.ascii.co.jp/">ASCII</ulink>.
+ ISBN 4-7561-1580-2 P3800E.</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD mit Methode (στα Γερμανικά), εκδόθηκε από την <ulink
+ url="http://www.cul.de">Computer und Literatur Verlag</ulink>/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.cul.de/freebsd.html">FreeBSD 4 - Installieren,
+ Konfigurieren, Administrieren</ulink>
+ (στα Γερμανικά), εκδόθηκε από την <ulink
+ url="http://www.cul.de">Computer und Literatur Verlag</ulink>,
+ 2001. ISBN 3-932311-88-4.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.cul.de/freebsd.html">FreeBSD 5 - Installieren,
+ Konfigurieren, Administrieren</ulink>
+ (στα Γερμανικά), εκδόθηκε από την <ulink
+ url="http://www.cul.de">Computer und Literatur Verlag</ulink>,
+ 2003. ISBN 3-936546-06-1.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.mitp.de/vmi/mitp/detail/pWert/1343/">
+ FreeBSD de Luxe</ulink> (στα Γερμανικά), εκδόθηκε από την
+ <ulink url="http://www.mitp.de">Verlag Modere Industrie</ulink>,
+ 2003. ISBN 3-8266-1343-0.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.pc.mycom.co.jp/FreeBSD/install-manual.html">FreeBSD Install and Utilization Manual</ulink>
+ (στα Γιαπωνέζικα), εκδόθηκε από την <ulink
+ url="http://www.pc.mycom.co.jp/">Mainichi Communications
+ Inc.</ulink>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
+ <emphasis><ulink
+ url="http://maxwell.itb.ac.id/">Building Internet Server with
+ FreeBSD</ulink></emphasis> (στην Ινδονησιακή γλώσσα), εκδόθηκε
+ από την <ulink url="http://www.elexmedia.co.id/">Elex Media
+ Komputindo</ulink>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Absolute BSD: The Ultimate Guide to FreeBSD (Μετάφραση σε
+ Παραδοσιακά Κινέζικα), εκδόθηκε από την <ulink
+ url="http://www.grandtech.com.tw/">GrandTech Press</ulink>, 2003.
+ ISBN 986-7944-92-5.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.twbsd.org/cht/book/">The FreeBSD 6.0 Book</ulink>
+ (σε Παραδοσιακά Κινέζικα), εκδόθηκε από την Drmaster, 2006.
+ ISBN 9-575-27878-X.</para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para><emphasis>Βιβλία &amp; περιοδικά στην Αγγλική γλώσσα:</emphasis></para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="http://www.absoluteFreeBSD.com/">Absolute
+ FreeBSD, 2nd Edition: The Complete Guide to FreeBSD</ulink>,
+ εκδόθηκε από την <ulink
+ url="http://www.nostarch.com/">No Starch Press</ulink>, 2007.
+ ISBN: 978-1-59327-151-0</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.freebsdmall.com/cgi-bin/fm/bsdcomp">
+ The Complete FreeBSD</ulink>, εκδόθηκε από την
+ <ulink url="http://www.oreilly.com/">O'Reilly</ulink>, 2003.
+ ISBN: 0596005164</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.freebsd-corp-net-guide.com/">The
+ FreeBSD Corporate Networker's Guide</ulink>, εκδόθηκε από την
+ <ulink url="http://www.awl.com/aw/">Addison-Wesley</ulink>, 2000.
+ ISBN: 0201704811</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://andrsn.stanford.edu/FreeBSD/introbook/">
+ FreeBSD: An Open-Source Operating System for Your Personal
+ Computer</ulink>, εκδόθηκε από την The Bit Tree Press, 2001.
+ ISBN: 0971204500</para>
+ </listitem>
+
+ <listitem>
+ <para>Teach Yourself FreeBSD in 24 Hours, εκδόθηκε από την
+ <ulink url="http://www.samspublishing.com/">Sams</ulink>, 2002.
+ ISBN: 0672324245</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD 6 Unleashed, εκδόθηκε από την
+ <ulink url="http://www.samspublishing.com/">Sams</ulink>, 2006.
+ ISBN: 0672328755</para>
+ </listitem>
+
+ <listitem>
+ <para>FreeBSD: The Complete Reference, εκδόθηκε από την
+ <ulink url="http://books.mcgraw-hill.com">McGrawHill</ulink>, 2003.
+ ISBN: 0072224096 </para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.bsdmag.org">BSD Magazine</ulink>,
+ εκδίδεται από την Software Press Sp. z o.o. SK.
+ ISSN 1898-9144</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-userguides">
+ <title>Οδηγοί χρήστη</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
+ User's Reference Manual</emphasis>. O'Reilly &amp; Associates,
+ Inc., 1994. ISBN 1-56592-075-9</para>
+ </listitem>
+
+ <listitem>
+ <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
+ User's Supplementary Documents</emphasis>. O'Reilly &amp;
+ Associates, Inc., 1994. ISBN 1-56592-076-7</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>UNIX in a Nutshell</emphasis>. O'Reilly &amp;
+ Associates, Inc., 1990. ISBN 093717520X</para>
+ </listitem>
+
+ <listitem>
+ <para>Mui, Linda. <emphasis>What You Need To Know When You Can't Find
+ Your UNIX System Administrator</emphasis>. O'Reilly &amp;
+ Associates, Inc., 1995. ISBN 1-56592-104-6</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <ulink url="http://www.osu.edu/">Ohio State
+ University</ulink> έγραψε τα <ulink
+ url="http://8help.osu.edu/wks/unix_course/unix.html">Εισαγωγικά
+ μαθήματα UNIX</ulink> που διατίθενται σε HTML και σε μορφή
+ PostScript.</para>
+
+ <para>Μια Ιταλική <ulink
+ url="&url.doc.base;/it_IT.ISO8859-15/books/unix-introduction/index.html">μετάφραση</ulink>
+ αυτού του κειμένου διατίθεται ως μέρος του FreeBSD Italian
+ Documentation Project.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
+ FreeBSD Users Group</ulink>. <ulink
+ url="http://www.pc.mycom.co.jp/FreeBSD/urm.html">FreeBSD User's
+ Reference Manual</ulink> (Japanese translation). <ulink
+ url="http://www.pc.mycom.co.jp/">Mainichi Communications
+ Inc.</ulink>, 1998. ISBN4-8399-0088-4 P3800E.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <ulink url="http://www.ed.ac.uk/">Edinburgh
+ University</ulink> έγραψε ένα <ulink
+ url="http://unixhelp.ed.ac.uk/">Online οδηγό</ulink> για
+ νέους στο περιβάλλον του UNIX.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-adminguides">
+ <title>Οδηγοί διαχειριστή</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Albitz, Paul and Liu, Cricket. <emphasis>DNS and
+ BIND</emphasis>, 4th Ed. O'Reilly &amp; Associates, Inc., 2001.
+ ISBN 1-59600-158-4</para>
+ </listitem>
+
+ <listitem>
+ <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
+ System Manager's Manual</emphasis>. O'Reilly &amp; Associates,
+ Inc., 1994. ISBN 1-56592-080-5</para>
+ </listitem>
+
+ <listitem>
+ <para>Costales, Brian, et al. <emphasis>Sendmail</emphasis>, 2nd Ed.
+ O'Reilly &amp; Associates, Inc., 1997. ISBN 1-56592-222-0</para>
+ </listitem>
+
+ <listitem>
+ <para>Frisch, &AElig;leen. <emphasis>Essential System
+ Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates,
+ Inc., 1995. ISBN 1-56592-127-5</para>
+ </listitem>
+
+ <listitem>
+ <para>Hunt, Craig. <emphasis>TCP/IP Network
+ Administration</emphasis>, 2nd Ed. O'Reilly &amp; Associates, Inc., 1997.
+ ISBN 1-56592-322-7</para>
+ </listitem>
+
+ <listitem>
+ <para>Nemeth, Evi. <emphasis>UNIX System Administration
+ Handbook</emphasis>. 3rd Ed. Prentice Hall, 2000. ISBN
+ 0-13-020601-6</para>
+ </listitem>
+
+ <listitem>
+ <para>Stern, Hal <emphasis>Managing NFS and NIS</emphasis> O'Reilly
+ &amp; Associates, Inc., 1991. ISBN 0-937175-75-7</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.jp.FreeBSD.org/">Jpman Project, Japan
+ FreeBSD Users Group</ulink>. <ulink
+ url="http://www.pc.mycom.co.jp/FreeBSD/sam.html">FreeBSD System
+ Administrator's Manual</ulink> (Γιαπωνέζικη μετάφραση). <ulink
+ url="http://www.pc.mycom.co.jp/">Mainichi Communications
+ Inc.</ulink>, 1998. ISBN4-8399-0109-0 P3300E.</para>
+ </listitem>
+
+ <listitem>
+ <para>Dreyfus, Emmanuel. <ulink
+ url="http://www.eyrolles.com/Informatique/Livre/9782212114638/">Cahiers
+ de l'Admin: BSD</ulink> 2nd Ed. (στα Γαλλικά), Eyrolles, 2004.
+ ISBN 2-212-11463-X</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-programmers">
+ <title>Οδηγοί προγραμματιστών</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Asente, Paul, Converse, Diana, and Swick, Ralph.
+ <emphasis>X Window System Toolkit</emphasis>. Digital Press,
+ 1998. ISBN 1-55558-178-1</para>
+ </listitem>
+
+ <listitem>
+ <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
+ Programmer's Reference Manual</emphasis>. O'Reilly &amp;
+ Associates, Inc., 1994. ISBN 1-56592-078-3</para>
+ </listitem>
+
+ <listitem>
+ <para>Computer Systems Research Group, UC Berkeley. <emphasis>4.4BSD
+ Programmer's Supplementary Documents</emphasis>. O'Reilly &amp;
+ Associates, Inc., 1994. ISBN 1-56592-079-1</para>
+ </listitem>
+
+ <listitem>
+ <para>Harbison, Samuel P. and Steele, Guy L. Jr. <emphasis>C: A
+ Reference Manual</emphasis>. 4th ed. Prentice Hall, 1995.
+ ISBN 0-13-326224-3</para>
+ </listitem>
+
+ <listitem>
+ <para>Kernighan, Brian and Dennis M. Ritchie. <emphasis>The C
+ Programming Language</emphasis>. 2nd Ed. PTR Prentice Hall, 1988.
+ ISBN 0-13-110362-8</para>
+ </listitem>
+
+ <listitem>
+ <para>Lehey, Greg. <emphasis>Porting UNIX Software</emphasis>.
+ O'Reilly &amp; Associates, Inc., 1995. ISBN 1-56592-126-7</para>
+ </listitem>
+
+ <listitem>
+ <para>Plauger, P. J. <emphasis>The Standard C Library</emphasis>.
+ Prentice Hall, 1992. ISBN 0-13-131509-9</para>
+ </listitem>
+
+ <listitem>
+ <para>Spinellis, Diomidis. <ulink
+ url="http://www.spinellis.gr/codereading/"><emphasis>Code
+ Reading: The Open Source Perspective</emphasis></ulink>.
+ Addison-Wesley, 2003. ISBN 0-201-79940-5</para>
+ </listitem>
+
+ <listitem>
+ <para>Spinellis, Diomidis. <ulink
+ url="http://www.spinellis.gr/codequality/"><emphasis>Code
+ Quality: The Open Source Perspective</emphasis></ulink>.
+ Addison-Wesley, 2006. ISBN 0-321-16607-8</para>
+ </listitem>
+
+ <listitem>
+ <para>Stevens, W. Richard and Stephen A. Rago.
+ <emphasis>Advanced Programming in the UNIX
+ Environment</emphasis>. 2nd Ed.
+ Reading, Mass. : Addison-Wesley, 2005.
+ ISBN 0-201-43307-9</para>
+ </listitem>
+
+ <listitem>
+ <para>Stevens, W. Richard. <emphasis>UNIX Network
+ Programming</emphasis>. 2nd Ed, PTR Prentice Hall, 1998. ISBN
+ 0-13-490012-X</para>
+ </listitem>
+
+ <listitem>
+ <para>Wells, Bill. <quote>Writing Serial Drivers for UNIX</quote>.
+ <emphasis>Dr. Dobb's Journal</emphasis>. 19(15), December 1994.
+ pp68-71, 97-99.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-osinternals">
+ <title>Το εσωτερικό του λειτουργικού συστήματος</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Andleigh, Prabhat K. <emphasis>UNIX System
+ Architecture</emphasis>. Prentice-Hall, Inc., 1990. ISBN
+ 0-13-949843-5</para>
+ </listitem>
+
+ <listitem>
+ <para>Jolitz, William. <quote>Porting UNIX to the 386</quote>.
+ <emphasis>Dr. Dobb's Journal</emphasis>. January 1991-July
+ 1992.</para>
+ </listitem>
+
+ <listitem>
+ <para>Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
+ John Quarterman <emphasis>The Design and Implementation of the
+ 4.3BSD UNIX Operating System</emphasis>. Reading, Mass. :
+ Addison-Wesley, 1989. ISBN 0-201-06196-1</para>
+ </listitem>
+
+ <listitem>
+ <para>Leffler, Samuel J., Marshall Kirk McKusick, <emphasis>The Design
+ and Implementation of the 4.3BSD UNIX Operating System: Answer
+ Book</emphasis>. Reading, Mass. : Addison-Wesley, 1991. ISBN
+ 0-201-54629-9</para>
+ </listitem>
+
+ <listitem>
+ <para>McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
+ John Quarterman. <emphasis>The Design and Implementation of the
+ 4.4BSD Operating System</emphasis>. Reading, Mass. :
+ Addison-Wesley, 1996. ISBN 0-201-54979-4</para>
+
+ <para>(Το κεφάλαιο 2 από αυτό το βιβλίο διατίθεται <ulink
+ url="&url.books.design-44bsd;/book.html">online</ulink> ως μέρος του
+ FreeBSD Documentation Project, και το κεφάλαιο 9 <ulink
+ url="http://www.netapp.com/tech_library/nfsbook.html">
+ εδώ</ulink>.)</para>
+ </listitem>
+
+ <listitem>
+ <para>Marshall Kirk McKusick, George V. Neville-Neil
+ <emphasis>The Design and Implementation of the FreeBSD Operating
+ System</emphasis>.
+ Boston, Mass. : Addison-Wesley, 2004. ISBN 0-201-70245-2</para>
+ </listitem>
+
+ <listitem>
+ <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 1:
+ The Protocols</emphasis>. Reading, Mass. : Addison-Wesley,
+ 1996. ISBN 0-201-63346-9</para>
+ </listitem>
+
+ <listitem>
+ <para>Schimmel, Curt. <emphasis>Unix Systems for Modern
+ Architectures</emphasis>. Reading, Mass. : Addison-Wesley, 1994.
+ ISBN 0-201-63338-8</para>
+ </listitem>
+
+ <listitem>
+ <para>Stevens, W. Richard. <emphasis>TCP/IP Illustrated, Volume 3:
+ TCP for Transactions, HTTP, NNTP and the UNIX Domain
+ Protocols</emphasis>. Reading, Mass. : Addison-Wesley, 1996.
+ ISBN 0-201-63495-3</para>
+ </listitem>
+
+ <listitem>
+ <para>Vahalia, Uresh. <emphasis>UNIX Internals -- The New
+ Frontiers</emphasis>. Prentice Hall, 1996. ISBN
+ 0-13-101908-2</para>
+ </listitem>
+
+ <listitem>
+ <para>Wright, Gary R. and W. Richard Stevens. <emphasis>TCP/IP
+ Illustrated, Volume 2: The Implementation</emphasis>. Reading,
+ Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-X</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-security">
+ <title>Αναφορές ασφαλείας</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Cheswick, William R. and Steven M. Bellovin. <emphasis>Firewalls
+ and Internet Security: Repelling the Wily Hacker</emphasis>.
+ Reading, Mass. : Addison-Wesley, 1995. ISBN
+ 0-201-63357-4</para>
+ </listitem>
+
+ <listitem>
+ <para>Garfinkel, Simson and Gene Spafford.
+ <emphasis>Practical UNIX &amp; Internet Security</emphasis>.
+ 2nd Ed. O'Reilly &amp; Associates, Inc., 1996. ISBN
+ 1-56592-148-8</para>
+ </listitem>
+
+ <listitem>
+ <para>Garfinkel, Simson. <emphasis>PGP Pretty Good
+ Privacy</emphasis> O'Reilly &amp; Associates, Inc., 1995. ISBN
+ 1-56592-098-8</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-hardware">
+ <title>Αναφορές υλικού</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Anderson, Don and Tom Shanley. <emphasis>Pentium Processor
+ System Architecture</emphasis>. 2nd Ed. Reading, Mass. :
+ Addison-Wesley, 1995. ISBN 0-201-40992-5</para>
+ </listitem>
+
+ <listitem>
+ <para>Ferraro, Richard F. <emphasis>Programmer's Guide to the EGA,
+ VGA, and Super VGA Cards</emphasis>. 3rd ed. Reading, Mass. :
+ Addison-Wesley, 1995. ISBN 0-201-62490-7</para>
+ </listitem>
+
+ <listitem>
+ <para>Η Intel Corporation δημοσιεύει τεκμηρίωση για τις CPUs,
+ τα chipsets και πρότυπα στο <ulink
+ url="http://developer.intel.com/">developer web site</ulink>,
+ συνήθως ως αρχεία PDF.</para>
+ </listitem>
+
+ <listitem>
+ <para>Shanley, Tom. <emphasis>80486 System Architecture</emphasis>.
+ 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
+ 0-201-40994-1</para>
+ </listitem>
+
+ <listitem>
+ <para>Shanley, Tom. <emphasis>ISA System Architecture</emphasis>.
+ 3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
+ 0-201-40996-8</para>
+ </listitem>
+
+ <listitem>
+ <para>Shanley, Tom. <emphasis>PCI System Architecture</emphasis>.
+ 4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN
+ 0-201-30974-2</para>
+ </listitem>
+
+ <listitem>
+ <para>Van Gilluwe, Frank. <emphasis>The Undocumented PC</emphasis>, 2nd Ed.
+ Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN
+ 0-201-47950-8</para>
+ </listitem>
+
+ <listitem>
+ <para>Messmer, Hans-Peter. <emphasis>The Indispensable PC Hardware Book</emphasis>, 4th Ed.
+ Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN
+ 0-201-59616-4</para>
+ </listitem>
+
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-history">
+ <title>Ιστορία του &unix;</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Lion, John <emphasis>Lion's Commentary on UNIX, 6th Ed. With
+ Source Code</emphasis>. ITP Media Group, 1996. ISBN
+ 1573980137</para>
+ </listitem>
+
+ <listitem>
+ <para>Raymond, Eric S. <emphasis>The New Hacker's Dictionary, 3rd
+ edition</emphasis>. MIT Press, 1996. ISBN
+ 0-262-68092-0. Γνωστό και ως το <ulink
+ url="http://www.catb.org/~esr/jargon/html/index.html">Jargon
+ File</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para>Salus, Peter H. <emphasis>A quarter century of UNIX</emphasis>.
+ Addison-Wesley Publishing Company, Inc., 1994. ISBN
+ 0-201-54777-5</para>
+ </listitem>
+
+ <listitem>
+ <para>Simon Garfinkel, Daniel Weise, Steven Strassmann. <emphasis>The
+ UNIX-HATERS Handbook</emphasis>. IDG Books Worldwide, Inc.,
+ 1994. ISBN 1-56884-203-1. Εκτός κυκλοφορίας, αλλά διατίθεται
+ <ulink
+ url="http://www.simson.net/ref/ugh.pdf">online</ulink>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Don Libes, Sandy Ressler <emphasis>Life with UNIX</emphasis>
+ &mdash; special edition. Prentice-Hall, Inc., 1989. ISBN
+ 0-13-536657-7</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>The BSD family tree</emphasis>.
+ <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree"></ulink>
+ η το <ulink type="html" url="file://localhost/usr/share/misc/bsd-family-tree"><filename>/usr/share/misc/bsd-family-tree</filename></ulink>
+ σε ένα FreeBSD μηχάνημα.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Networked Computer Science Technical Reports
+ Library</emphasis>. <ulink url="http://www.ncstrl.org/"></ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Παλαιές BSD εκδόσεις από το Computer Systems Research
+ group (CSRG)</emphasis>.
+ <ulink url="http://www.mckusick.com/csrg/"></ulink>:
+ Το 4CD set έχει όλες τις BSD εκδόσεις από την 1BSD μέχρι την
+ 4.4BSD και την 4.4BSD-Lite2 (αλλά όχι την 2.11BSD, δυστυχώς).
+ Το τελευταίο δισκάκι περιέχει επίσης τον τελικό πηγαίο κώδικα συν
+ τα αρχεία SCCS.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="bibliography-journals">
+ <title>Περιοδικά και εφημερίδες</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>The C/C++ Users Journal</emphasis>. R&amp;D
+ Publications Inc. ISSN 1075-2838</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Sys Admin &mdash; The Journal for UNIX System
+ Administrators</emphasis> Miller Freeman, Inc., ISSN
+ 1061-2688</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>freeX &mdash; Das Magazin f&uuml;r Linux - BSD - UNIX</emphasis>
+ (στα Γερμανικά) Computer- und Literaturverlag GmbH, ISSN 1436-7033</para>
+ </listitem>
+
+ </itemizedlist>
+ </sect1>
+</appendix>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../appendix.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "appendix")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/book.sgml b/el_GR.ISO8859-7/books/handbook/book.sgml
new file mode 100644
index 0000000000..8cb2f16806
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/book.sgml
@@ -0,0 +1,382 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Οργάνωση Κεφαλαίων
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/book.sgml
+ %SRCID% 1.179
+
+-->
+
+<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
+<!ENTITY % books.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Books Entity Set//EL">
+%books.ent;
+<!ENTITY % chapters SYSTEM "chapters.ent">
+%chapters;
+<!ENTITY % txtfiles SYSTEM "txtfiles.ent">
+%txtfiles;
+
+<!ENTITY % not.published "INCLUDE">
+
+<!ENTITY % chap.introduction "IGNORE">
+<!ENTITY % chap.bsdinstall "IGNORE">
+<!ENTITY % chap.install "IGNORE">
+<!ENTITY % chap.basics "IGNORE">
+<!ENTITY % chap.ports "IGNORE">
+<!ENTITY % chap.config "IGNORE">
+<!ENTITY % chap.boot "IGNORE">
+<!ENTITY % chap.users "IGNORE">
+<!ENTITY % chap.kernelconfig "IGNORE">
+<!ENTITY % chap.security "IGNORE">
+<!ENTITY % chap.jails "IGNORE">
+<!ENTITY % chap.printing "IGNORE">
+<!ENTITY % chap.disks "IGNORE">
+<!ENTITY % chap.geom "IGNORE">
+<!ENTITY % chap.vinum "IGNORE">
+<!ENTITY % chap.x11 "IGNORE">
+<!ENTITY % chap.l10n "IGNORE">
+<!ENTITY % chap.multimedia "IGNORE">
+<!ENTITY % chap.desktop "IGNORE">
+<!ENTITY % chap.serialcomms "IGNORE">
+<!ENTITY % chap.ppp-and-slip "IGNORE">
+<!ENTITY % chap.advanced-networking "IGNORE">
+<!ENTITY % chap.firewalls "IGNORE">
+<!ENTITY % chap.network-servers "IGNORE">
+<!ENTITY % chap.mail "IGNORE">
+<!ENTITY % chap.cutting-edge "IGNORE">
+<!ENTITY % chap.linuxemu "IGNORE">
+<!ENTITY % chap.mirrors "IGNORE">
+<!ENTITY % chap.bibliography "IGNORE">
+<!ENTITY % chap.eresources "IGNORE">
+<!ENTITY % chap.pgpkeys "IGNORE">
+<!ENTITY % chap.index "IGNORE">
+<!ENTITY % chap.freebsd-glossary "IGNORE">
+<!ENTITY % chap.mac "IGNORE">
+<!ENTITY % chap.audit "IGNORE">
+<!ENTITY % chap.filesystems "IGNORE">
+<!ENTITY % chap.dtrace "IGNORE">
+
+<!ENTITY % pgpkeys SYSTEM "../../../share/pgpkeys/pgpkeys.ent"> %pgpkeys;
+]>
+
+<book lang="el">
+ <bookinfo>
+ <title>Εγχειρίδιο του FreeBSD</title>
+
+ <corpauthor>Ομάδα Τεκμηρίωσης του FreeBSD</corpauthor>
+
+ <pubdate>Φεβρουάριος 1999</pubdate>
+
+ <copyright>
+ <year>1995</year>
+ <year>1996</year>
+ <year>1997</year>
+ <year>1998</year>
+ <year>1999</year>
+ <year>2000</year>
+ <year>2001</year>
+ <year>2002</year>
+ <year>2003</year>
+ <year>2004</year>
+ <year>2005</year>
+ <year>2006</year>
+ <year>2007</year>
+ <year>2008</year>
+ <year>2009</year>
+ <year>2010</year>
+ <year>2011</year>
+ <year>2012</year>
+ <holder>Ομάδα Τεκμηρίωσης του FreeBSD</holder>
+ </copyright>
+
+ &bookinfo.legalnotice;
+
+ <legalnotice id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.3com;
+ &tm-attrib.3ware;
+ &tm-attrib.arm;
+ &tm-attrib.adaptec;
+ &tm-attrib.adobe;
+ &tm-attrib.apple;
+ &tm-attrib.corel;
+ &tm-attrib.creative;
+ &tm-attrib.cvsup;
+ &tm-attrib.heidelberger;
+ &tm-attrib.ibm;
+ &tm-attrib.ieee;
+ &tm-attrib.intel;
+ &tm-attrib.intuit;
+ &tm-attrib.linux;
+ &tm-attrib.lsilogic;
+ &tm-attrib.m-systems;
+ &tm-attrib.macromedia;
+ &tm-attrib.microsoft;
+ &tm-attrib.netscape;
+ &tm-attrib.nexthop;
+ &tm-attrib.opengroup;
+ &tm-attrib.oracle;
+ &tm-attrib.powerquest;
+ &tm-attrib.realnetworks;
+ &tm-attrib.redhat;
+ &tm-attrib.sap;
+ &tm-attrib.sun;
+ &tm-attrib.symantec;
+ &tm-attrib.themathworks;
+ &tm-attrib.thomson;
+ &tm-attrib.usrobotics;
+ &tm-attrib.vmware;
+ &tm-attrib.waterloomaple;
+ &tm-attrib.wolframresearch;
+ &tm-attrib.xfree86;
+ &tm-attrib.xiph;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <abstract>
+ <para>Καλώς ήρθατε στο FreeBSD! Αυτό το εγχειρίδιο καλύπτει την
+ εγκατάσταση και την καθημερινή χρήση του <emphasis>FreeBSD
+ &rel2.current;-RELEASE</emphasis> και του <emphasis>FreeBSD
+ &rel.current;-RELEASE</emphasis>. Το βιβλίο αυτό είναι
+ <emphasis>μόνιμα υπό βελτίωση και ανάπτυξη</emphasis> και
+ αποτελεί το αποτέλεσμα της δουλειάς πολλών ατόμων, οπότε κάποια
+ τμήματα μπορεί να περιέχουν σχετικά ξεπερασμένες πληροφορίες και
+ να χρειάζονται ανανέωση. Αν ενδιαφέρεστε να μας βοηθήσετε σε
+ αυτό το έργο, επικοινωνήστε μαζί μας στην
+ &a.doc;. Η τελευταία έκδοση αυτού του κειμένου είναι πάντα
+ διαθέσιμη από την
+ <ulink url="http://www.FreeBSD.org/">ιστοσελίδα του &os;</ulink>
+ (παλιότερες εκδόσεις μπορείτε να βρείτε στη διεύθυνση
+ <ulink url="http://docs.FreeBSD.org/doc/"></ulink>). Μπορείτε
+ επίσης να μεταφορτώσετε στον υπολογιστή σας το ίδιο βιβλίο σε
+ άλλες μορφές αρχείου και με διάφορες μορφές συμπίεσης από
+ τον <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">εξυπηρετητή
+ FTP του &os;</ulink> ή ένα από τα
+ πολλά <link linkend="mirrors-ftp">mirror sites</link>. Αν
+ προτιμάτε ένα τυπωμένο αντίτυπο, μπορείτε να αγοράσετε ένα
+ αντίγραφο του Εγχειριδίου, από το
+ <ulink url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>.
+ Μπορείτε επίσης
+ να <ulink url="&url.base;/search/index.html">ψάξετε σε όλο το
+ βιβλίο</ulink>.</para>
+ </abstract>
+ </bookinfo>
+
+ &chap.preface;
+
+ <part id="getting-started">
+ <title>Ξεκινώντας με το FreeBSD</title>
+
+ <partintro>
+ <para>Αυτό το μέρος του Εγχειριδίου του &os; είναι για τους χρήστες και
+ τους διαχειριστές συστημάτων που δεν έχουν ήδη μεγάλη εμπειρία με το
+ &os;. Τα κεφάλαια που ακολουθούν:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Είναι εισαγωγικά για το &os;</para>
+ </listitem>
+
+ <listitem>
+ <para>Σας καθοδηγούν κατά τη διάρκεια της διαδικασίας
+ εγκατάστασης</para>
+ </listitem>
+
+ <listitem>
+ <para>Σας εισάγουν στις βασικές έννοιες του &unix;</para>
+ </listitem>
+
+ <listitem>
+ <para>Περιγράφουν τη διαδικασία εγκατάστασης της πληθώρας εφαρμογών
+ που είναι διαθέσιμες στο &os;</para>
+ </listitem>
+
+ <listitem>
+ <para>Σας εισάγουν στο γραφικό περιβάλλον του &unix;, το σύστημα Χ,
+ και σας καθοδηγούν σχετικά με τις αρχικές ρυθμίσεις ενός γραφικού
+ περιβάλλοντος εργασίας, με το οποίο μπορείτε να είστε ακόμα πιο
+ παραγωγικοί</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Σε αυτό το τμήμα του βιβλίου, έχουμε προσπαθήσει να μειώσουμε
+ στο ελάχιστο τις αναφορές σε τμήματα ή κεφάλαια του Εγχειριδίου
+ τα οποία δεν έχετε ήδη διαβάσει. Αυτό αποσκοπεί στο να γίνει
+ πιο εύκολη η ανάγνωση του τμήματος αυτού του Εγχειριδίου από την
+ αρχή μέχρι και το τέλος, χωρίς να απαιτείται να ψάχνετε συνεχώς
+ τα επόμενα ή προηγούμενα τμήματα.</para>
+ </partintro>
+
+ <![ %chap.introduction; [ &chap.introduction; ]]>
+ <![ %chap.install; [ &chap.install; ]]>
+ <![ %chap.bsdinstall; [ &chap.bsdinstall; ]]>
+ <![ %chap.basics; [ &chap.basics; ]]>
+ <![ %chap.ports; [ &chap.ports; ]]>
+ <![ %chap.x11; [ &chap.x11; ]]>
+ </part>
+
+ <part id="common-tasks">
+ <title>Βασικές Εργασίες</title>
+
+ <partintro>
+ <para>Τώρα που έχουμε καλύψει πλέον τα βασικά θέματα, αυτό το
+ τμήμα του Εγχειριδίου του &os; περιγράφει τις πιο βασικές εργασίες
+ και τα πιο δημοφιλή χαρακτηριστικά του &os;. Τα κεφάλαια αυτού του
+ τμήματος:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Παρουσιάζουν τις πιο δημοφιλείς και χρήσιμες εφαρμογές
+ και περιβάλλοντα εργασίας: φυλλομετρητές (browsers), γραφικά
+ περιβάλλοντα εργασίας, εργαλεία προβολής διαφόρων μορφών
+ αρχείων, κλπ.</para>
+ </listitem>
+
+ <listitem>
+ <para>Παρουσιάζουν ορισμένα από τα εργαλεία πολυμέσων
+ (multimedia) που είναι διαθέσιμα για το &os;</para>
+ </listitem>
+
+ <listitem>
+ <para>Εξηγούν τη διαδικασία μεταγλώττισης και εγκατάστασης
+ ενός προσαρμοσμένου πυρήνα για το &os;, έτσι ώστε να
+ ενεργοποιηθούν έξτρα χαρακτηριστικά για το σύστημά
+ σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Περιγράφουν σε βάθος το σύστημα εκτυπώσεων, τόσο για
+ εκτυπωτές που είναι απευθείας συνδεδεμένοι με το σταθμό
+ εργασίας σας, όσο και για δικτυακούς εκτυπωτές.</para>
+ </listitem>
+
+ <listitem>
+ <para>Περιγράφουν πώς μπορείτε να τρέξετε εφαρμογές Linux στο
+ &os; σύστημά σας.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μερικά από αυτά τα κεφάλαια απαιτούν να έχετε μελετήσει πιο
+ πριν κάποιο άλλο κεφάλαιο. Όπου είναι απαραίτητο κάτι τέτοιο,
+ αναφέρεται στη σύνοψη του κάθε κεφαλαίου.</para>
+ </partintro>
+
+ <![ %chap.desktop; [ &chap.desktop; ]]>
+ <![ %chap.multimedia; [ &chap.multimedia; ]]>
+ <![ %chap.kernelconfig; [ &chap.kernelconfig; ]]>
+ <![ %chap.printing; [ &chap.printing; ]]>
+ <![ %chap.linuxemu; [ &chap.linuxemu; ]]>
+ </part>
+
+ <part id="system-administration">
+ <title>Διαχείριση Συστήματος</title>
+
+ <partintro>
+ <para>Τα κεφάλαια του &os; Handbook που ακολουθούν αναφέρονται σε θέματα
+ που έχουν σχέση με τη <emphasis>διαχείριση</emphasis> του συστήματος.
+ Κάθε κεφάλαιο ξεκινά περιγράφοντας τι θα μάθετε διαβάζοντας
+ το συγκεκριμένο κεφάλαιο, καθώς και τι προαπαιτούμενα έχει το κεφάλαιο
+ αυτό: τι πρέπει να έχετε ήδη διαβάσει και κατανοήσει πριν ασχοληθείτε
+ με αυτό το κεφάλαιο.</para>
+
+ <para>Αυτά τα κεφάλαια έχουν σχεδιαστεί περισσότερο ως οδηγός αναφοράς
+ παρά ως εισαγωγικό κείμενο. Γι αυτό είναι πιο χρήσιμα ως οδηγοί στους
+ οποίους μπορείτε να ανατρέξετε όταν χρειάζεστε κάποια πληροφορία για
+ το &os;. Δε χρειάζεται να τα διαβάσετε με κάποια συγκεκριμένη σειρά,
+ ούτε χρειάζεται να τα έχετε διαβάσει όλα πριν αρχίσετε να ασχολείστε
+ με το &os;.</para>
+ </partintro>
+
+ <![ %chap.config; [ &chap.config; ]]>
+ <![ %chap.boot; [ &chap.boot; ]]>
+ <![ %chap.users; [ &chap.users; ]]>
+ <![ %chap.security; [ &chap.security; ]]>
+ <![ %chap.jails; [ &chap.jails; ]]>
+ <![ %chap.mac; [ &chap.mac; ]]>
+ <![ %chap.audit; [ &chap.audit; ]]>
+ <![ %chap.disks; [ &chap.disks; ]]>
+ <![ %chap.geom; [ &chap.geom; ]]>
+ <![ %chap.filesystems; [ &chap.filesystems; ]]>
+ <![ %chap.vinum; [ &chap.vinum; ]]>
+ <![ %chap.virtualization; [ &chap.virtualization; ]]>
+ <![ %chap.l10n; [ &chap.l10n; ]]>
+ <![ %chap.cutting-edge; [ &chap.cutting-edge; ]]>
+ <![ %chap.dtrace; [ &chap.dtrace; ]]>
+ </part>
+
+ <part id="network-communication">
+ <title>Δικτυακές Επικοινωνίες</title>
+
+ <partintro>
+ <para>Το &os; είναι ένα από τα πιο ευρέως διαδεδομένα λειτουργικά
+ συστήματα για υψηλής απόδοσης δικτυακές εφαρμογές και εξυπηρετητές.
+ Τα κεφάλαια σε αυτό το τμήμα περιγράφουν:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τις επικοινωνίες με σειραϊκή σύνδεση (serial)</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα πρωτόκολλα PPP και PPP πάνω από Ethernet</para>
+ </listitem>
+
+ <listitem>
+ <para>Την Ηλεκτρονική Αλληλογραφία</para>
+ </listitem>
+
+ <listitem>
+ <para>Την Εγκατάσταση Δικτυακών Υπηρεσιών</para>
+ </listitem>
+
+ <listitem>
+ <para>Τη Ρύθμιση και Λειτουργία των Firewalls</para>
+ </listitem>
+
+ <listitem>
+ <para>Άλλα Προχωρημένα Θέματα Δικτύων</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αυτά τα κεφάλαια έχουν σχεδιαστεί περισσότερο ως οδηγός αναφοράς
+ παρά ως εισαγωγικό κείμενο. Γι αυτό είναι πιο χρήσιμα ως οδηγοί στους
+ οποίους μπορείτε να ανατρέξετε όταν χρειάζεστε κάποια πληροφορία για
+ το &os;. Δε χρειάζεται να τα διαβάσετε με κάποια συγκεκριμένη σειρά,
+ ούτε χρειάζεται να τα έχετε διαβάσει όλα πριν αρχίσετε να ασχολείστε
+ με το &os;.</para>
+ </partintro>
+
+ <![ %chap.serialcomms; [ &chap.serialcomms; ]]>
+ <![ %chap.ppp-and-slip; [ &chap.ppp-and-slip; ]]>
+ <![ %chap.mail; [ &chap.mail; ]]>
+ <![ %chap.network-servers; [ &chap.network-servers; ]]>
+ <![ %chap.firewalls; [ &chap.firewalls; ]]>
+ <![ %chap.advanced-networking; [ &chap.advanced-networking; ]]>
+ </part>
+
+ <part id="appendices">
+ <title>Παραρτήματα</title>
+
+ <![ %chap.mirrors; [ &chap.mirrors; ]]>
+ <![ %chap.bibliography; [ &chap.bibliography; ]]>
+ <![ %chap.eresources; [ &chap.eresources; ]]>
+ <![ %chap.pgpkeys; [ &chap.pgpkeys; ]]>
+ </part>
+
+ <![ %chap.freebsd-glossary; [ &bookinfo.freebsd-glossary; ]]>
+ <![ %chap.index; [ &chap.index; ]]>
+ &chap.colophon;
+</book>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/boot/chapter.sgml b/el_GR.ISO8859-7/books/handbook/boot/chapter.sgml
new file mode 100644
index 0000000000..2507e99361
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/boot/chapter.sgml
@@ -0,0 +1,1079 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Η Διαδικασία Εκκίνησης του FreeBSD
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/boot/chapter.sgml
+ %SRCID% 1.71
+
+-->
+
+<chapter id="boot">
+ <title>Η Διαδικασία Εκκίνησης του &os;</title>
+
+ <sect1 id="boot-synopsis">
+ <title>Σύνοψη</title>
+ <indexterm><primary>εκκίνηση</primary></indexterm>
+ <indexterm><primary>εκκίνηση συστήματος</primary></indexterm>
+ <indexterm><primary>booting</primary></indexterm>
+ <indexterm><primary>bootstrap</primary></indexterm>
+
+ <para>Η διαδικασία της εκκίνησης ενός υπολογιστή και φόρτωσης του
+ λειτουργικού συστήματος αναφέρεται ως <quote>διαδικασία
+ bootstrap</quote>, ή απλώς <quote>booting</quote>. Η διαδικασία
+ εκκίνησης του &os; μπορεί να προσαρμοστεί πολύ εύκολα στις απαιτήσεις
+ σας, επιτρέποντας σάς να επιλέξετε είτε διαφορετικά λειτουργικά
+ συστήματα που είναι εγκατεστημένα στον ίδιο υπολογιστή, ή ακόμα και
+ διαφορετικές εκδόσεις του ίδιου λειτουργικού συστήματός ή του
+ εγκατεστημένου πυρήνα.</para>
+
+ <para>Το κεφάλαιο αυτό περιγράφει λεπτομερώς τις επιλογές ρυθμίσεων που
+ μπορείτε να κάνετε και πως να φέρετε στα μέτρα σας τη διαδικασία
+ εκκίνησης του &os;. Η διαδικασία εκκίνησης περιλαμβάνει οτιδήποτε
+ συμβαίνει από την εκκίνηση του πυρήνα του &os;, την ανίχνευση των
+ συσκευών, μέχρι και την εκκίνηση της &man.init.8;. Η εκκίνηση της
+ &man.init.8; σηματοδοτείται από την αλλαγή χρώματος του κειμένου
+ από φωτεινό λευκό σε γκρι.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ποια είναι τα τμήματα του συστήματος εκκίνησης του &os;, και
+ πως αλληλεπιδρούν μεταξύ τους.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τις επιλογές που μπορείτε να δώσετε στα τμήματα της εκκίνησης
+ του &os; για να ελέγξετε τη διαδικασία εκκίνησης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα βασικά του &man.device.hints.5;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <title>Μόνο για υπολογιστές αρχιτεκτονικής x86</title>
+
+ <para>Το κεφάλαιο αυτό περιγράφει τη διαδικασία εκκίνησης του &os; μόνο
+ σε συστήματα αρχιτεκτονικής Intel x86.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="boot-introduction">
+ <title>Το Πρόβλημα της Εκκίνησης</title>
+
+ <para>Η ενεργοποίηση ενός υπολογιστή και η εκκίνηση του λειτουργικού
+ συστήματος, μας φέρνει αντιμέτωπους με ένα ενδιαφέρον δίλημμα.
+ Εξ' ορισμού, ο υπολογιστής δεν ξέρει να κάνει τίποτα μέχρι την εκκίνηση
+ του λειτουργικού συστήματος. Αυτό περιλαμβάνει και την εκτέλεση
+ προγραμμάτων από το δίσκο. Έτσι, αν ο υπολογιστής δεν μπορεί να
+ εκτελέσει προγράμματα από το δίσκο χωρίς το λειτουργικό σύστημα, αλλά
+ και τα προγράμματα του λειτουργικού συστήματος είναι επίσης στο δίσκο,
+ πως είναι δυνατή η εκκίνηση του λειτουργικού;</para>
+
+ <para>Το πρόβλημα μοιάζει με αυτό στο βιβλίο <citetitle>Οι Περιπέτειες
+ του Βαρώνου Μινχάουζεν</citetitle>. Ένας χαρακτήρας έχει πέσει σε ένα
+ πηγάδι, και βγαίνει πιάνοντας και τραβώντας τα κορδόνια του
+ (bootstraps). Στις πρώτες μέρες των υπολογιστών, χρησιμοποιούνταν ο
+ όρος <firstterm>bootstrap</firstterm> για το μηχανισμό φόρτωσης του
+ λειτουργικού συστήματος, το οποίο συντομεύτηκε σε
+ <quote>booting</quote>.</para>
+
+ <indexterm><primary>BIOS</primary></indexterm>
+
+ <indexterm><primary>Basic Input/Output System</primary><see>BIOS</see></indexterm>
+
+ <para>Στην αρχιτεκτονική x86, το Βασικό Σύστημα Εισόδου Εξόδου (BIOS)
+ είναι υπεύθυνο για τη φόρτωση του λειτουργικού συστήματος. Για να το
+ επιτύχει αυτό, το BIOS ανιχνεύει το σκληρό δίσκο για την Κεντρική
+ Εγγραφή Εκκίνησης (Master Boot Record, MBR), η οποία πρέπει να βρίσκεται
+ σε συγκεκριμένο σημείο στο δίσκο. Το BIOS γνωρίζει αρκετά για να
+ φορτώσει και να εκτελέσει το MBR, και υποθέτει ότι το MBR μπορεί κατόπιν
+ να εκτελέσει την υπόλοιπη διαδικασία φόρτωσης του λειτουργικού
+ συστήματος, ενδεχομένως και με τη βοήθεια του BIOS.</para>
+
+ <indexterm><primary>Master Boot Record (MBR)</primary></indexterm>
+
+ <indexterm><primary>Boot Manager</primary></indexterm>
+
+ <indexterm><primary>Boot Loader</primary></indexterm>
+
+ <para>Ο κώδικας μέσα στο MBR συνήθως αναφέρεται ως
+ <emphasis>διαχειριστής εκκίνησης (boot manager)</emphasis>, ειδικά όταν
+ αλληλεπιδρά με το χρήστη. Στην περίπτωση αυτή, ο διαχειριστής εκκίνησης
+ έχει συνήθως περισσότερο κώδικα στην πρώτη <emphasis> τροχιά (track)
+ </emphasis> του δίσκου ή μέσα σε κάποιο σύστημα αρχείων του
+ λειτουργικού. (Μερικές φορές ο διαχειριστής εκκίνησης αποκαλείται και
+ <emphasis>φορτωτής εκκίνησης (boot loader)</emphasis>, αλλά στο &os; ο
+ όρος αυτός χρησιμοποιείται σε μεταγενέστερο στάδιο της εκκίνησης.)
+ Στους δημοφιλείς διαχειριστές εκκίνησης περιλαμβάνονται
+ το <application>boot0</application> (γνωστό και ως <application>Boot
+ Easy</application>, ο στάνταρ διαχειριστής εκκίνησης του &os;), το
+ <application>Grub</application>, το <application>GAG</application>, και
+ το <application>LILO</application>.
+ (Μόνο το <application>boot0</application> χωράει μέσα στο MBR.)</para>
+
+ <para>Αν έχετε εγκατεστημένο ένα μόνο λειτουργικό σύστημα στους δίσκους
+ σας, το τυποποιημένο MBR για PC είναι επαρκές. Αυτό το MBR ψάχνει για
+ το πρώτο εκκινήσιμο (ή ενεργό) διαμέρισμα (slice) στο δίσκο, και εκτελεί
+ τον κώδικα που υπάρχει σε αυτό για να φορτώσει το υπόλοιπο του
+ λειτουργικού συστήματος. Ένα MBR αυτού του τύπου, είναι αυτό που
+ εγκαθίσταται από προεπιλογή με την &man.fdisk.8;. Βασίζεται στο
+ <filename>/boot/mbr</filename>.</para>
+
+ <para>Αν έχετε εγκαταστήσει πολλαπλά λειτουργικά συστήματα στους δίσκους
+ σας, μπορείτε να εγκαταστήσετε διαφορετικό διαχειριστή εκκίνησης,
+ κάποιον που να μπορεί να δείξει μια λίστα των διαφορετικών συστημάτων
+ και να σας επιτρέψει να διαλέξετε ποιο να ξεκινήσει. Στο επόμενο τμήμα
+ θα συζητήσουμε για δύο από αυτούς τους διαχειριστές εκκίνησης.</para>
+
+ <para>Το υπόλοιπο του συστήματος εκκίνησης του &os; είναι χωρισμένο σε
+ τρία στάδια. Το πρώτο στάδιο εκτελείται από το MBR, το οποίο γνωρίζει
+ απλώς ότι απαιτείται για να φέρει τον υπολογιστή σε μια συγκεκριμένη
+ κατάσταση και να εκτελέσει το δεύτερο στάδιο. Το δεύτερο στάδιο μπορεί
+ να κάνει λίγα περισσότερα πράγματα πριν την εκτέλεση του τρίτου σταδίου.
+ Το τρίτο στάδιο ολοκληρώνει τη διαδικασία φόρτωσης του λειτουργικού
+ συστήματος. Η εργασία γίνεται σε τρία στάδια, γιατί το πρότυπο του PC
+ επιβάλλει περιορισμούς στο μέγεθος των προγραμμάτων που μπορούν να
+ εκτελεστούν στα στάδια ένα και δύο. Η συνένωση αυτή των εργασιών
+ επιτρέπει στο &os; να παρέχει ένα πιο ευέλικτο σύστημα φόρτωσης.</para>
+
+ <indexterm><primary>kernel</primary></indexterm>
+ <indexterm><primary><command>init</command></primary></indexterm>
+
+ <para>Έπειτα ξεκινάει ο πυρήνας και αρχίζει την ανίχνευση και αρχικοποίηση
+ των συσκευών ώστε να μπορούν να χρησιμοποιηθούν. Μέτα την ολοκλήρωση
+ της διαδικασίας εκκίνησης του πυρήνα, ο έλεγχος περνάει στη διαδικασία
+ χρήστη &man.init.8;, η οποία και επιβεβαιώνει ότι οι δίσκοι είναι σε
+ λειτουργική (χωρίς λάθη) κατάσταση. Η &man.init.8; ξεκινάει έπειτα
+ την ρύθμιση πόρων (επίπεδο χρήστη), με την οποία προσαρτώνται τα
+ συστήματα αρχείων, ρυθμίζονται οι κάρτες δικτύου για επικοινωνία με το
+ δίκτυο, και γενικά εκκινούν όλες οι διαδικασίες που εκτελούνται τυπικά
+ κατά την εκκίνηση ενός &os; συστήματος.</para>
+ </sect1>
+
+ <sect1 id="boot-blocks">
+ <title>Ο Διαχειριστής Εκκίνησης και τα Στάδια Εκκίνησης</title>
+
+ <indexterm><primary>Boot Manager</primary></indexterm>
+
+ <sect2 id="boot-boot0">
+ <title>Ο Διαχειριστής Εκκίνησης (boot manager)</title>
+ <indexterm><primary>Master Boot Record (MBR)</primary></indexterm>
+
+ <para>Ο κώδικας στο MBR ή διαχειριστής εκκίνησης αναφέρεται μερικές
+ φορές και ως <emphasis>στάδιο μηδέν (stage zero)</emphasis> της
+ διαδικασίας εκκίνησης. Το τμήμα αυτό περιγράφει δύο από τους
+ διαχειριστές εκκίνησης που αναφέραμε προηγουμένως: Το
+ <application>boot0</application> και το
+ <application>LILO</application>.</para>
+
+ <formalpara><title>Ο Διαχειριστής Εκκίνησης
+ <application>boot0</application>:</title>
+ <para>Το MBR που εγκαθίσταται από το πρόγραμμα εγκατάστασης του &os;
+ ή το &man.boot0cfg.8;, βασίζεται από προεπιλογή στο
+ <filename>/boot/boot0</filename>.
+ (Το πρόγραμμα <application>boot0</application> είναι πολύ απλό,
+ καθώς ο κώδικας στο <abbrev>MBR</abbrev> μπορεί να έχει μέγεθος ως
+ 446 bytes, εξαιτίας του πίνακα κατατμήσεων (slice table) και
+ του αναγνωριστικού <literal>0x55AA</literal> που βρίσκεται στο τέλος
+ του MBR.) Αν έχετε εγκαταστήσει το <application>boot0</application>
+ και πολλαπλά λειτουργικά συστήματα στους σκληρούς δίσκους σας, θα
+ δείτε κατά την εκκίνηση, μια οθόνη παρόμοια με την
+ παρακάτω:</para></formalpara>
+
+ <example id="boot-boot0-example">
+ <title><filename>boot0</filename> Screenshot</title>
+
+ <screen>F1 DOS
+F2 FreeBSD
+F3 Linux
+F4 ??
+F5 Drive 1
+
+Default: F2</screen>
+ </example>
+
+ <para>Άλλα λειτουργικά συστήματα, και ειδικότερα τα &windows;, είναι
+ γνωστό ότι γράφουν το δικό τους MBR πάνω σε κάποιο ήδη υπάρχον. Αν
+ σας συμβεί αυτό, ή αν θέλετε να αντικαταστήσετε το υπάρχον MBR σας
+ με αυτό του &os;, χρησιμοποιήστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>fdisk -B -b /boot/boot0 <replaceable>device</replaceable></userinput></screen>
+
+ <para>όπου <replaceable>device</replaceable> είναι η συσκευή από την
+ οποία γίνεται εκκίνηση, όπως π.χ. το <devicename>ad0</devicename> για
+ τον πρώτο δίσκο IDE, το <devicename>ad2</devicename> για τον πρώτο
+ IDE δίσκο στο δευτερεύοντα ελεγκτή, το <devicename>da0</devicename>
+ για τον πρώτο SCSI δίσκο κ.ο.κ. Αν πάλι θέλετε προσαρμοσμένη ρύθμιση
+ του MBR, χρησιμοποιήστε το &man.boot0cfg.8;.</para>
+
+ <formalpara><title>Ο Διαχειριστής Εκκίνησης LILO</title>
+
+ <para>Για να εγκαταστήσετε αυτό το διαχειριστή εκκίνησης ώστε να
+ μπορεί να εκκινεί το &os;, εγκαταστήστε πρώτα το Linux και προσθέστε
+ την ακόλουθη καταχώρηση στο υπάρχον αρχείο ρυθμίσεων
+ <filename>/etc/lilo.conf</filename>:</para></formalpara>
+
+ <programlisting>other=/dev/hdXY
+table=/dev/hdX
+loader=/boot/chain.b
+label=FreeBSD</programlisting>
+
+ <para>Στο παραπάνω, καθορίστε το πρωτεύον διαμέρισμα και το δίσκο του
+ &os; αντικαθιστώντας το <replaceable>X</replaceable> με το γράμμα
+ δίσκου και το <replaceable>Y</replaceable> με τον αριθμό του
+ πρωτεύοντος διαμερίσματος, χρησιμοποιώντας όμως την ονοματολογία του
+ Linux. Αν χρησιμοποιείτε οδηγό <acronym>SCSI</acronym> θα χρειαστεί
+ να αλλάξετε το <replaceable>/dev/hd</replaceable> σε κάτι αντίστοιχο
+ με <replaceable>/dev/sd</replaceable>. Η γραμμή
+ <option>loader=/boot/chain.b</option> μπορεί να παραλειφθεί αν έχετε
+ και τα δύο λειτουργικά συστήματα στον ίδιο δίσκο. Εκτελέστε τώρα την
+ εντολή <command>/sbin/lilo&nbsp;-v</command> για να καταχωρήσετε τις
+ νέες αλλαγές σας στο σύστημα. Μπορείτε να τις επιβεβαιώσετε
+ ελέγχοντας τα μηνύματα που θα εμφανιστούν στην οθόνη σας.</para>
+ </sect2>
+
+ <sect2 id="boot-boot1">
+ <title>Το Στάδιο Ένα, <filename>/boot/boot1</filename>, και το Στάδιο
+ Δύο, <filename>/boot/boot2</filename></title>
+
+ <para>Ουσιαστικά, το πρώτο και δεύτερο στάδιο είναι τμήματα του ίδιου
+ προγράμματος, στην ίδια περιοχή του δίσκου. Λόγω περιορισμών χώρου
+ έχουν χωριστεί σε δύο, αλλά εγκαθίστανται πάντα μαζί.
+ Αντιγράφονται από το συνδυασμένο αρχείο
+ <filename>/boot/boot</filename> από το πρόγραμμα εγκατάστασης ή το
+ <application>bsdlabel</application> (δείτε παρακάτω).</para>
+
+ <para>Βρίσκονται έξω από συστήματα αρχείων, στην πρώτη τροχιά (track)
+ του slice εκκίνησης, ξεκινώντας από τον πρώτο τομέα. Είναι το σημείο
+ όπου το <link linkend="boot-boot0">boot0</link>, ή οποιοσδήποτε άλλος
+ διαχειριστής εκκίνησης, αναμένει να βρει πρόγραμμα προς εκτέλεση με
+ το οποίο θα συνεχιστεί η διαδικασία εκκίνησης. Ο αριθμός των τομέων
+ που χρησιμοποιούνται μπορεί να βρεθεί εύκολα από το μέγεθος του
+ αρχείου <filename>/boot/boot</filename>.</para>
+
+ <para>Το <filename>boot1</filename> είναι πολύ απλό, μια και μπορεί να
+ είναι μόνο 512 bytes σε μέγεθος, και γνωρίζει όσα χρειάζεται για το
+ <firstterm>bsdlabel</firstterm> του &os;, το οποίο αποθηκεύει
+ πληροφορίες σχετικά με το slice, ώστε να βρει και να εκτελέσει το
+ <filename>boot2</filename>.</para>
+
+ <para>Το <filename>boot2</filename> είναι ελαφρά πιο πολύπλοκο και
+ κατανοεί επαρκώς το σύστημα αρχείων του &os; ώστε να μπορεί να βρει
+ αρχεία σε αυτό, και μπορεί επίσης να παρέχει μια απλή διεπαφή με το
+ χρήστη ώστε να μπορεί να γίνει η επιλογή του πυρήνα ή του προγράμματος
+ φόρτωσης που θα εκτελεστεί.</para>
+
+ <para>Το <filename>boot2</filename> συνήθως εκτελεί τον
+ <link linkend="boot-loader">loader (φορτωτής εκκίνησης)</link> ο
+ οποίος είναι εξαιρετικά πιο πολύπλοκος, αλλά παρέχει ένα ωραίο και
+ εύκολο τρόπο ρύθμισης της εκκίνησης. Παλιότερα το
+ <filename>boot2</filename> αναλάμβανε να φορτώσει απευθείας τον
+ πυρήνα.</para>
+
+ <example id="boot-boot2-example">
+ <title>Εικόνα από το <filename>boot2</filename></title>
+
+ <screen>&gt;&gt; FreeBSD/i386 BOOT
+Default: 0:ad(0,a)/boot/loader
+boot:</screen>
+ </example>
+
+ <para>Αν χρειαστεί ποτέ να αντικαταστήσετε τα εγκατεστημένα
+ <filename>boot1</filename> και <filename>boot2</filename>
+ χρησιμοποιήστε το &man.bsdlabel.8;:</para>
+
+ <screen>&prompt.root; <userinput>bsdlabel -B <replaceable>diskslice</replaceable></userinput></screen>
+
+ <para>όπου το <replaceable>diskslice</replaceable> είναι ο δίσκος και
+ το slice από το οποίο γίνεται η εκκίνηση, όπως π.χ.
+ <devicename>ad0s1</devicename> για το πρώτο slice στον πρώτο IDE
+ δίσκο.</para>
+
+ <warning>
+ <title>Επικίνδυνα Αφοσιωμένη Κατάσταση (Dangerously Dedicated
+ Mode)</title>
+
+ <para>Αν χρησιμοποιήσετε μόνο το όνομα του δίσκου, όπως π.χ.
+ <devicename>ad0</devicename>, στην εντολή &man.bsdlabel.8; θα
+ δημιουργήσετε ένα επικίνδυνα αφοσιωμένο δίσκο, χωρίς slices. Είναι
+ σχεδόν σίγουρο ότι δεν θέλετε να το κάνετε αυτό, γι' αυτό
+ σιγουρευτείτε ότι ελέγξατε την εντολή &man.bsdlabel.8; πριν πιέσετε
+ <keycap>Return</keycap>.</para>
+ </warning>
+ </sect2>
+
+ <sect2 id="boot-loader">
+ <title>Στάδιο Τρία, <filename>/boot/loader</filename></title>
+
+ <indexterm><primary>boot-loader</primary></indexterm>
+ <para>Ο loader, ή φορτωτής εκκίνησης, είναι το τελικό στάδιο του
+ συστήματος εκκίνησης τριών σταδίων, και βρίσκεται στο σύστημα αρχείων,
+ συνήθως ως <filename>/boot/loader</filename>.</para>
+
+ <para>Προορισμός του loader είναι να παρέχει μια μέθοδο ρύθμισης φιλική
+ προς το χρήστη, και χρησιμοποιεί ένα εύκολο σύνολο εντολών, το οποίο
+ υποστηρίζεται από ένα ισχυρό μεταφραστή εντολών με ένα
+ πολυπλοκότερο σύνολο εντολών.</para>
+
+ <sect3 id="boot-loader-flow">
+ <title>Ροή του Προγράμματος Loader</title>
+
+ <para>Κατά την αρχικοποίηση, ο loader θα ανιχνεύσει την κονσόλα και
+ τους δίσκους και θα καθορίσει από ποιο δίσκο γίνεται η εκκίνηση. Θα
+ ρυθμίσει κατάλληλα τις αντίστοιχες μεταβλητές και θα ξεκινήσει ένα
+ πρόγραμμα μετάφρασης εντολών (interpreter) στο οποίο μπορεί ο
+ χρήστης να δίνει εντολές, είτε απευθείας, είτε μέσω κάποιου
+ script.</para>
+
+ <indexterm><primary>loader</primary></indexterm>
+ <indexterm><primary>loader configuration</primary></indexterm>
+
+ <para>Ο loader κατόπιν θα διαβάσει το αρχείο
+ <filename>/boot/loader.rc</filename>, το οποίο με τη σειρά του
+ διαβάζει, από προεπιλογή, το
+ <filename>/boot/defaults/loader.conf</filename>. Μέσα από το αρχείο
+ αυτό τίθενται λογικές προεπιλεγμένες τιμές για κάποιες μεταβλητές.
+ Έπειτα, διαβάζεται το αρχείο
+ <filename>/boot/loader.conf</filename> για τυχόν τοπικές αλλαγές
+ στις μεταβλητές αυτές. Κατόπιν το <filename>loader.rc</filename>
+ χρησιμοποιεί αυτές τις μεταβλητές, φορτώνοντας τα αρθρώματα
+ (modules) και τον πυρήνα που έχει επιλεγεί.</para>
+
+ <para>Τελικά, ο loader, περιμένει 10 δευτερόλεπτα (προεπιλεγμένο
+ χρονικό διάστημα) για την πίεση κάποιου πλήκτρου, και αν δεν
+ υπάρξει παρέμβαση από τον χρήστη, ξεκινάει τον πυρήνα. Αν γίνει
+ παρέμβαση, εμφανίζεται στον χρήστη μια προτροπή η οποίο κατανοεί το
+ εύκολο σύνολο εντολών που αναφέραμε προηγουμένως, και όπου ο χρήστης
+ μπορεί να ρυθμίσει μεταβλητές, να αποφορτώσει όλα τα αρθρώματα, να
+ φορτώσει αρθρώματα και τελικά να προβεί σε εκκίνηση ή
+ επανεκκίνηση.</para>
+ </sect3>
+
+ <sect3 id="boot-loader-commands">
+ <title>Εντολές Ενσωματωμένες στο Loader</title>
+
+ <para>Παρακάτω θα δείτε τις πιο συχνά χρησιμοποιούμενες εντολές του
+ loader. Για περισσότερες λεπτομέρειες σχετικά με όλες τις
+ διαθέσιμες εντολές, παρακαλούμε να δείτε το &man.loader.8;.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>autoboot <replaceable>seconds</replaceable></term>
+
+ <listitem>
+ <para>Προχωρά στην εκκίνηση του πυρήνα, αν δεν υπάρξει παρέμβαση
+ από το χρήστη μέσα στο καθορισμένο χρονικό διάστημα που
+ δίνεται σε δευτερόλεπτα. Απεικονίζει αντίστροφη μέτρηση, και
+ ο προεπιλεγμένος χρόνος είναι τα 10 δευτερόλεπτα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>boot
+ <optional><replaceable>-options</replaceable></optional>
+ <optional><replaceable>kernelname</replaceable></optional></term>
+
+ <listitem>
+ <para>Προχωράει άμεσα στην εκκίνηση του πυρήνα, χρησιμοποιώντας
+ όποιες τυχόν επιλογές έχουν δοθεί και το όνομα του πυρήνα που
+ θα εκτελεστεί αν έχει επίσης δοθεί. Για να δώσετε διαφορετικό
+ όνομα πυρήνα στην γραμμή εντολής, θα πρέπει πρώτα να
+ χρησιμοποιήσετε την εντολή <emphasis>unload</emphasis>.
+ Διαφορετικά, θα χρησιμοποιηθεί ο πυρήνας που έχει φορτωθεί
+ ήδη.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>boot-conf</term>
+
+ <listitem>
+ <para>Διατρέχει την αυτόματη ρύθμιση των αρθρωμάτων (module) που
+ βασίζεται σε μεταβλητές, με τον ίδιο τρόπο που γίνεται και σε
+ κανονική εκκίνηση. Αυτό έχει νόημα μόνο αν χρησιμοποιήσετε
+ πρώτα το <command>unload</command> και αλλάξετε κάποιες
+ μεταβλητές, συνήθως το <envar>kernel</envar>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>help
+ <optional><replaceable>topic</replaceable></optional></term>
+
+ <listitem>
+ <para>Δείχνει μηνύματα βοήθειας, τα οποία διαβάζονται από το
+ <filename>/boot/loader.help</filename>. Αν το topic (θέμα)
+ που δόθηκε είναι η λέξη <literal>index</literal>, θα δείτε μια
+ λίστα με τα διαθέσιμα θέματα βοήθειας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>include <replaceable>filename</replaceable>
+ &hellip;</term>
+
+ <listitem>
+ <para>Επεξεργάζεται το αρχείο με το όνομα αρχείου που δόθηκε
+ (filename). Γίνεται ανάγνωση και γραμμή προς γραμμή μετάφραση
+ του αρχείου. Η εντολή include σταματάει άμεσα αν εντοπιστεί
+ κάποιο λάθος.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>load <optional><option>-t</option>
+ <replaceable>type</replaceable></optional>
+ <replaceable>filename</replaceable></term>
+
+ <listitem>
+ <para>Φορτώνει τον πυρήνα, το άρθρωμα πυρήνα ή ένα αρχείο του
+ τύπου που καθορίστηκε, με βάση το όνομα αρχείου που δόθηκε.
+ Αν μετά το όνομα αρχείου υπάρχουν παράμετροι, περνιούνται ως
+ παράμετροι στο αρχείο που φορτώνεται.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ls <optional><option>-l</option></optional>
+ <optional><replaceable>path</replaceable></optional></term>
+
+ <listitem>
+ <para>Δείχνει ένα κατάλογο των αρχείων της διαδρομής που
+ δόθηκε, ή αν δεν καθορίστηκε διαδρομή, του ριζικού καταλόγου.
+ Αν δοθεί και η επιλογή <option>-l</option> θα εμφανίζονται
+ επίσης και τα μεγέθη των αρχείων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>lsdev <optional><option>-v</option></optional></term>
+
+ <listitem>
+ <para>Εμφανίζει όλες τις συσκευές από τις οποίες είναι δυνατή η
+ φόρτωση αρθρωμάτων. Αν δοθεί με την επιλογή
+ <option>-v</option>, εμφανίζονται περισσότερες
+ λεπτομέρειες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>lsmod <optional><option>-v</option></optional></term>
+
+ <listitem>
+ <para>Εμφανίζει τα αρθρώματα που έχουν φορτωθεί. Αν δοθεί η
+ επιλογή <option>-v</option>, εμφανίζονται περισσότερες
+ λεπτομέρειες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>more <replaceable>filename</replaceable></term>
+
+ <listitem>
+ <para>Εμφανίζει το αρχείο που καθορίζεται, με παύσεις κάθε
+ <varname>LINES</varname> αριθμό γραμμών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>reboot</term>
+
+ <listitem>
+ <para>Επανεκκινεί άμεσα το σύστημα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>set <replaceable>variable</replaceable></term>
+ <term>set <replaceable>variable</replaceable>=<replaceable>value</replaceable></term>
+
+ <listitem>
+ <para>Καθορίζει μεταβλητές περιβάλλοντος για τον loader.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>unload</term>
+
+ <listitem>
+ <para>Αποφορτώνει όλα τα αρθρώματα.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="boot-loader-examples">
+ <title>Παραδείγματα για τον Loader</title>
+
+ <para>Εδώ θα βρείτε μερικά πρακτικά παραδείγματα σχετικά με την χρήση
+ του loader:</para>
+
+ <itemizedlist>
+ <indexterm><primary>single-user mode</primary></indexterm>
+ <listitem>
+ <para>Για να ξεκινήσετε το συνηθισμένο πυρήνα σας, αλλά σε
+ κατάσταση ενός χρήστη:</para>
+
+ <screen><userinput>boot -s</userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>Για να αποφορτώσετε το συνηθισμένο πυρήνα σας και να
+ φορτώσετε τον παλιό σας (ή κάποιο άλλο):</para>
+ <indexterm>
+ <primary><filename>kernel.old</filename></primary>
+ </indexterm>
+
+ <screen><userinput>unload</userinput>
+<userinput>load <replaceable>kernel.old</replaceable></userinput></screen>
+
+ <para>Μπορείτε να χρησιμοποιήσετε το όνομα
+ <filename>kernel.GENERIC</filename> για να αναφερθείτε στον
+ αρχικό (generic) πυρήνα ο οποίος υπάρχει στο CD της
+ εγκατάστασης, ή το <filename>kernel.old</filename> για να
+ αναφερθείτε στον πυρήνα που είχατε εγκατεστημένο πριν (για
+ παράδειγμα, τον παλιό σας πυρήνα αν κάνατε πρόσφατα ρύθμιση και
+ εγκατάσταση νέου δικού σας προσαρμοσμένου πυρήνα).</para>
+
+ <note>
+ <para>Χρησιμοποιήστε το παρακάτω για να φορτώσετε τα συνηθισμένα
+ σας αρθρώματα σε κάποιο άλλο πυρήνα:</para>
+
+ <screen><userinput>unload</userinput>
+<userinput>set kernel="<replaceable>kernel.old</replaceable>"</userinput>
+<userinput>boot-conf</userinput></screen>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>Για να φορτώσετε ένα script ρύθμισης πυρήνα (ένα
+ αυτοματοποιημένο πρόγραμμα το οποίο εκτελεί τις λειτουργίες που
+ κανονικά θα κάνατε μέσω κάποιου προγράμματος ρύθμισης πυρήνα
+ κατά την εκκίνηση):</para>
+
+ <screen><userinput>load -t userconfig_script <replaceable>/boot/kernel.conf</replaceable></userinput></screen>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3 id="boot-splash">
+ <sect3info>
+ <authorgroup>
+ <author>
+ <firstname>Joseph J.</firstname>
+ <surname>Barbish</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect3info>
+
+ <title>Γραφική Οθόνη Εκκίνησης</title>
+
+ <para>Η γραφική οθόνη εκκίνησης (splash screen) δημιουργεί ένα πιο
+ ευχάριστο περιβάλλον σε σχέση με την απλή απεικόνιση των μηνυμάτων
+ εκκίνησης σε μορφή κειμένου. Η γραφική οθόνη εκκίνησης εμφανίζεται
+ ως ότου το σύστημα φτάσει στην προτροπή εισόδου (login), είτε στην
+ κονσόλα, είτε στο γραφικό περιβάλλον.</para>
+
+ <para>Το &os; διαθέτει δύο βασικά περιβάλλοντα. Το πρώτο είναι
+ το προεπιλεγμένο περιβάλλον κειμένου γραμμής εντολών (κονσόλα).
+ Μετά το τέλος της εκκίνησης, εμφανίζεται στην κονσόλα μια προτροπή
+ εισόδου. Το δεύτερο, είναι το γραφικό περιβάλλον
+ που παρέχεται από το σύστημα Χ11. Μετά την εγκατάσταση του
+ <link linkend="x-install">X11</link> και ενός από τους γραφικούς
+ <link linkend="x11-wm">διαχειριστές παραθύρων ή desktop</link>,
+ όπως είναι τα <application>GNOME</application>,
+ <application>KDE</application> ή <application>XFce</application>,
+ μπορείτε να ξεκινήσετε το γραφικό περιβάλλον με την εντολή
+ <command>startx</command>.</para>
+
+ <para>Μερικοί χρήστες προτιμούν να συνδέονται στο σύστημα μέσω
+ γραφικής οθόνη εισόδου, αντί να χρησιμοποιούν την προτροπή εισόδου
+ της κονσόλας. Η δυνατότητα αυτή παρέχεται απο διαχειριστές οθόνης,
+ όπως ο <application>XDM</application> για το &xorg;, o
+ <application>gdm</application> για το
+ <application>GNOME</application> και ο
+ <application>kdm</application> για το
+ <application>KDE</application> (καθώς και άλλους που διατίθενται
+ στη Συλλογή των Ports). Μετά από μια επιτυχημένη είσοδο,
+ παρουσιάζεται άμεσα στο χρήστη το γραφικό περιβάλλον της επιλογής
+ του.</para>
+
+ <para>Στο περιβάλλον της γραμμής εντολών, η γραφική οθόνη εκκίνησης
+ θα αποκρύψει όλα τα μηνύματα ανίχνευσης των συσκευών και υπηρεσιών,
+ μέχρι την εμφάνιση της προτροπής εισόδου. Με απευθείας εκκίνηση σε
+ περιβάλλον X11, η εμπειρία εκκίνησης θα είναι ακόμα πιο καθαρή,
+ και θα μοιάζει περισσότερο με την αντίστοιχη σε ένα περιβάλλον
+ &microsoft; &windows; ή άλλου μη-UNIX συστήματος.</para>
+
+ <sect4 id="boot-splash-function">
+ <title>Λειτουργία της Γραφικής Οθόνης Εκκίνησης</title>
+
+ <para>Η γραφική οθόνη εκκίνησης υποστηρίζει μόνο εικόνες bitmap
+ (<filename>.bmp</filename>) ή ZSoft <acronym>PCX</acronym>
+ (<filename>.pcx</filename>) 256 χρωμάτων. Επιπρόσθετα, οι
+ εικόνες που χρησιμοποιούνται πρέπει να έχουν ανάλυση 320x200 ή
+ μικρότερη για να λειτουργήσουν σε τυπικούς προσαρμογείς οθόνης
+ VGA.</para>
+
+ <para>Για να χρησιμοποιήσετε μεγαλύτερες εικόνες, μέχρι την μέγιστη
+ ανάλυση των 1024x768 pixels, ενεργοποιήστε την υποστήριξη
+ <acronym>VESA</acronym> που περιλαμβάνεται στο &os;. Μπορείτε να
+ την ενεργοποιήσετε φορτώνοντας το άρθρωμα <acronym>VESA</acronym>
+ κατά την εκκίνηση του συστήματος, η προσθέτοντας την επιλογή
+ <literal>VESA</literal> στο αρχείο ρυθμίσεων του πυρήνα, και
+ δημιουργώντας ένα νέο προσαρμοσμένο πυρήνα (<xref
+ linkend="kernelconfig">). Η υποστήριξη <acronym>VESA</acronym>
+ δίνει στους χρήστες την δυνατότητα να χρησιμοποιήσουν μια εικόνα
+ που να καλύπτει όλη την οθόνη.</para>
+
+ <para>Μπορείτε να δείτε τα κανονικά μηνύματα εκκίνησης όσο
+ εμφανίζεται η γραφική οθόνη εκκίνησης, πιέζοντας απλώς
+ οποιοδήποτε πλήκτρο.</para>
+
+ <para>Η οθόνη εκκίνησης γίνεται επίσης η προεπιλεγμένη προφύλαξη
+ οθόνης, όσο το σύστημα λειτουργεί σε περιβάλλον κονσόλας. Μετά
+ από κάποιο χρονικό διάστημα αδράνειας, η οθόνη αλλάζει,
+ απεικονίζοντας την εικόνα που χρησιμοποιήθηκε στην εκκίνηση,
+ με κυκλική εναλλαγή της φωτεινότητας από πολύ φωτεινή ως πολύ
+ σκοτεινή. Μπορείτε να αλλάξετε αυτή την προεπιλεγμένη προφύλαξη
+ οθόνης, προσθέτοντας μια γραμμή <literal>saver=</literal> στο
+ αρχείο <filename>/etc/rc.conf</filename>. Για την επιλογή
+ <literal>saver=</literal>, υπάρχουν αρκετές ενσωματωμένες
+ προφυλάξεις οθόνης για να επιλέξετε. Μπορείτε να δείτε την πλήρη
+ λίστα στη σελίδα manual του &man.splash.4;. Η προεπιλεγμένη
+ προφύλαξη οθόνης ονομάζεται <quote>warp</quote>. Σημειώστε ότι η
+ προφύλαξη οθόνης που καθορίζεται στο αρχείο
+ <filename>/etc/rc.conf</filename> μέσω της επιλογής
+ <literal>saver=</literal> έχει επίδραση μόνο στις εικονικές
+ κονσόλες. Δεν επηρεάζει καθόλου το γραφικό περιβάλλον X11.</para>
+
+ <para>Κάποια μηνύματα εκκίνησης εξακολουθούν να εμφανίζονται, ακόμα
+ και μετά την εφαρμογή της γραφικής οθόνης εκκίνησης. Τα μηνύματα
+ αυτά περιλαμβάνουν το μενού επιλογών εκκίνησης και την αντίστροφη
+ μέτρηση χρόνου που το συνοδεύει.</para>
+
+ <para>Μπορείτε να κατεβάσετε υποδείγματα εικόνων για χρήση στην
+ εκκίνηση, από τη συλλογή εικόνων στην τοποθεσία <ulink
+ url="http://artwork.freebsdgr.org/node/3">http://artwork.freebsdgr.org</ulink>.
+ Αν εγκαταστήσετε το Port <filename
+ role="package">sysutils/bsd-splash-changer</filename>, θα έχετε
+ τυχαία εναλλαγή εικόνων (που θα επιλέγονται από μια έτοιμη
+ συλλογή) σε κάθε εκκίνηση του συστήματος.</para>
+ </sect4>
+
+ <sect4 id="boot-splash-enable">
+ <title>Ενεργοποίηση της Γραφικής Οθόνης Εκκίνησης</title>
+
+ <para>Το αρχείο που θα χρησιμοποιηθεί για την γραφική οθόνη
+ εκκίνησης (τύπου <filename>.bmp</filename> ή
+ <filename>.pcx</filename>) θα πρέπει να τοποθετηθεί στην ριζική
+ (root) κατάτμηση, για παράδειγμα στον κατάλογο
+ <filename class="directory">/boot/</filename>.</para>
+
+ <para>Για την προεπιλεγμένη ανάλυση οθόνης (320x200 ή μικρότερη,
+ 256 χρώματα), επεξεργαστείτε το αρχείο
+ <filename>/boot/loader.conf</filename> ώστε να περιέχει τα
+ παρακάτω:</para>
+
+ <programlisting>splash_bmp_load="YES"
+bitmap_load="YES"
+bitmap_name="<replaceable>/boot/splash.bmp</replaceable>"</programlisting>
+
+ <para>Για μεγαλύτερες αναλύσεις, μέχρι την μέγιστη 1024x768,
+ επεξεργαστείτε το αρχείο <filename>/boot/loader.conf</filename>
+ ώστε να περιέχει το παρακάτω:</para>
+
+ <programlisting>vesa_load="YES"
+splash_bmp_load="YES"
+bitmap_load="YES"
+bitmap_name="<replaceable>/boot/splash.bmp</replaceable>"</programlisting>
+
+ <para>Το παραπάνω υποθέτει ότι θα χρησιμοποιήσετε το αρχείο
+ <filename><replaceable>/boot/splash.bmp</replaceable></filename>
+ για την γραφική οθόνη εκκίνησης. Αν θέλετε να χρησιμοποιήσετε
+ εικόνα τύπου <acronym>PCX</acronym>, χρησιμοποιήστε τις παρακάτω
+ επιλογές, καθώς και την επιλογή
+ <literal>vesa_load="YES"</literal>, ανάλογα με την ανάλυση:</para>
+
+ <programlisting>splash_pcx_load="YES"
+bitmap_load="YES"
+bitmap_name="<replaceable>/boot/splash.pcx</replaceable>"</programlisting>
+
+ <para>Το όνομα αρχείου δεν είναι απαραίτητο να είναι
+ <quote>splash</quote> όπως φαίνεται στο παραπάνω παράδειγμα.
+ Μπορεί να είναι οτιδήποτε, αρκεί να πρόκειται για αρχείο τύπου
+ <acronym>BMP</acronym> ή <acronym>PCX</acronym>, όπως για
+ παράδειγμα
+ <filename><replaceable>splash_640x400</replaceable>.bmp</filename>
+ ή
+ <filename><replaceable>blue_wave</replaceable>.pcx</filename>.</para>
+
+ <para>Παρακάτω φαίνονται μερικές ακόμα ενδιαφέρουσες επιλογές που
+ μπορείτε να χρησιμοποιήσετε στο
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>beastie_disable="YES"</literal></term>
+
+ <listitem>
+ <para>Η επιλογή αυτή καταργεί την εμφάνιση του μενού επιλογών
+ εκκίνησης. Παραμένει ωστόσο η αντίστροφη μέτρηση με την
+ προτροπή εισαγωγής επιλογών εκκίνησης. Ακόμα και όταν δεν
+ εμφανίζεται το μενού επιλογών, αν ο χρήστης κάνει μια
+ επιλογή στη διάρκεια του προεπιλεγμένου χρόνου αναμονής,
+ η επιλογή αυτή θα ισχύσει για την εκκίνηση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>loader_logo="beastie"</literal></term>
+
+ <listitem>
+ <para>Η επιλογή αυτή αλλάζει το κείμενο <quote>&os;</quote>
+ που εμφανίζεται στο δεξιό μέρος του μενού επιλογών
+ εκκίνησης, με ένα έγχρωμο λογότυπο του beastie, όπως
+ εμφανιζόταν στις παλαιότερες εκδόσεις.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Για περισσότερες πληροφορίες, παρακαλούμε ανατρέξτε στις
+ σελίδες manual &man.splash.4;, &man.loader.conf.5; και
+ &man.vga.4;.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="boot-kernel">
+ <title>Αλληλεπίδραση με τον Πυρήνα κατά την Εκκίνηση</title>
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>boot interaction</secondary>
+ </indexterm>
+
+ <para>Από τη στιγμή που ο πυρήνας φορτωθεί, είτε μέσω του
+ <link linkend="boot-loader">loader</link> (όπως συνήθως) είτε μέσω του
+ <link linkend="boot-boot1">boot2</link> (παρακάμπτοντας τον loader),
+ εξετάζει τις παραμέτρους εκκίνησης (boot flags), αν υπάρχουν, και
+ προσαρμόζει ανάλογα τη συμπεριφορά του.</para>
+
+ <sect2 id="boot-kernel-bootflags">
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>bootflags</secondary>
+ </indexterm>
+ <title>Παράμετροι Εκκίνησης Πυρήνα (Boot Flags)</title>
+
+ <para>Παρακάτω θα βρείτε τις πιο συνηθισμένες παραμέτρους
+ εκκίνησης:</para>
+
+ <variablelist id="boot-kernel-bootflags-list">
+ <varlistentry>
+ <term><option>-a</option></term>
+
+ <listitem>
+ <para>κατά τη διάρκεια της εκκίνησης, θα γίνει ερώτηση για την
+ συσκευή από την οποία θα γίνει η προσάρτηση του ριζικού (root)
+ συστήματος αρχείων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-C</option></term>
+
+ <listitem>
+ <para>εκκίνηση από το CDROM.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>εκτέλεση του UserConfig, του προγράμματος ρύθμισης πυρήνα
+ κατά την εκκίνηση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-s</option></term>
+
+ <listitem>
+ <para>εκκίνηση σε κατάσταση λειτουργίας ενός χρήστη (single
+ user).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-v</option></term>
+
+ <listitem>
+ <para>εμφάνιση περισσότερων πληροφοριών κατά τη διάρκεια εκκίνησης
+ του πυρήνα.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <note>
+ <para>Υπάρχουν και άλλες παράμετροι εκκίνησης, διαβάστε τη σελίδα
+ &man.boot.8; για περισσότερες πληροφορίες σχετικά με αυτές.</para>
+ </note>
+ </sect2>
+
+<!-- <sect2 id="boot-kernel-userconfig">
+ <title>UserConfig: the Boot-time Kernel Configurator</title>
+
+ <para> </para>
+ </sect2> -->
+ </sect1>
+
+ <sect1 id="device-hints">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- 18 OCT 2002 -->
+ </sect1info>
+ <indexterm>
+ <primary>device.hints</primary>
+ </indexterm>
+ <title>Device Hints</title>
+
+ <para>Κατά τη διάρκεια της αρχικής εκκίνησης του συστήματος, το πρόγραμμα
+ του boot &man.loader.8; διαβάζει το αρχείο &man.device.hints.5;. Το
+ αρχείο αυτό περιέχει πληροφορίες εκκίνησης για τον πυρήνα, γνωστές ως
+ μεταβλητές, οι οποίες μερικές φορές αναφέρονται επίσης και ως
+ <quote>device hints</quote>. Αυτά τα <quote>device hints</quote>
+ χρησιμοποιούνται από προγράμματα οδήγησης συσκευών για ρύθμιση των
+ αντίστοιχων συσκευών.</para>
+
+ <para>Μπορούμε επίσης να ορίσουμε Device hints στην προτροπή του
+ <link linkend="boot-loader"> Σταδίου 3 του boot loader</link>.
+ Οι μεταβλητές μπορούν να οριστούν με χρήση της εντολής
+ <command>set</command>, και να αφαιρεθούν με την
+ <command>unset</command>. Μπορούμε επίσης να τις εμφανίσουμε με την
+ εντολή <command>show</command>. Ακόμα, μπορούμε εδώ να παρακάμψουμε
+ και να αλλάξουμε την τιμή μεταβλητών που έχουν οριστεί στο αρχείο
+ <filename>/boot/device.hints</filename>. Τα Device hints που ορίζουμε
+ στο boot loader δεν παραμένουν μόνιμα και δεν θα ισχύσουν στην επόμενη
+ εκκίνηση.</para>
+
+ <para>Μετά την εκκίνηση του συστήματος, μπορεί να χρησιμοποιηθεί η εντολή
+ &man.kenv.1; για να εμφανιστούν οι τιμές όλων των μεταβλητών.</para>
+
+ <para>Το συντακτικό του αρχείου <filename>/boot/device.hints</filename>
+ είναι μια μεταβλητή ανά γραμμή, και χρησιμοποιείται το τυποποιημένο
+ <quote>#</quote> για γραμμές που δηλώνονται ως σχόλια. Οι γραμμές
+ δημιουργούνται όπως φαίνεται παρακάτω:</para>
+
+ <screen><userinput>hint.driver.unit.keyword="<replaceable>value</replaceable>"</userinput></screen>
+
+ <para>Η σύνταξη για το Στάδιο 3 του boot loader είναι:</para>
+
+ <screen><userinput>set hint.driver.unit.keyword=<replaceable>value</replaceable></userinput></screen>
+
+ <para>όπου <literal>driver</literal> είναι το όνομα του οδηγού συσκευής,
+ <literal>unit</literal> είναι ο αριθμός μονάδας της συσκευής, και
+ <literal>keyword</literal> είναι η λέξη-κλειδί για το συγκεκριμένο hint.
+ Η λέξη-κλειδί μπορεί να αποτελείται από τις ακόλουθες επιλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>at</literal>: καθορίζει το δίαυλο (bus) στον οποίο
+ προσαρτάται η συσκευή.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>port</literal>: καθορίζει την αρχική διεύθυνση της
+ θύρας <acronym>I/O</acronym> που θα χρησιμοποιηθεί.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>irq</literal>: καθορίζει τον αριθμό της αίτησης
+ διακοπής (interrupt request) που θα χρησιμοποιηθεί.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>drq</literal>: καθορίζει τον αριθμό του καναλιού
+ DMA.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>maddr</literal>: καθορίζει τη φυσική διεύθυνση μνήμης
+ που καταλαμβάνεται από τη συσκευή.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>flags</literal>: ορίζει διάφορα bits παραμέτρων για
+ την συσκευή.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>disabled</literal>: Αν οριστεί σε τιμή
+ <literal>1</literal>, η συσκευή απενεργοποιείται.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οι οδηγοί συσκευών μπορεί να δέχονται (ή να απαιτούν) περισσότερα
+ hints τα οποία δεν φαίνονται εδώ, και σας συνιστούμε να δείτε την
+ αντίστοιχη σελίδα manual του κάθε οδηγού. Για περισσότερες πληροφορίες
+ συμβουλευθείτε επίσης τις σελίδες manual των
+ &man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5;, και
+ &man.loader.8;.</para>
+ </sect1>
+
+ <sect1 id="boot-init">
+ <indexterm>
+ <primary><command>init</command></primary>
+ </indexterm>
+ <title>Init: Αρχικοποίηση Ελέγχου Διαδικασιών</title>
+
+ <para>Μόλις ολοκληρωθεί η εκκίνηση του πυρήνα, ο έλεγχος μεταφέρεται στην
+ διαδικασία χρήστη &man.init.8;, η οποία βρίσκεται στο αρχείο
+ <filename>/sbin/init</filename>, ή στη διαδρομή που καθορίζεται στην
+ μεταβλητή <envar>init_path</envar> του <command>loader</command>.</para>
+
+ <sect2 id="boot-autoreboot">
+ <title>Ακολουθία Αυτόματης Επανεκκίνησης</title>
+
+ <para>Η ακολουθία αυτόματης επανεκκίνησης εξασφαλίζει ότι τα συστήματα
+ αρχείων είναι σε κανονική, σταθερή κατάσταση. Αν δεν είναι, και η
+ &man.fsck.8; δεν μπορεί να διορθώσει τα προβλήματα, τότε η
+ &man.init.8; θα μεταφέρει το σύστημα σε
+ <link linkend="boot-singleuser">κατάσταση λειτουργίας ενός
+ χρήστη</link> ώστε να μπορέσει άμεσα ο διαχειριστής συστήματος να
+ επιληφθεί των προβλημάτων αυτών.</para>
+ </sect2>
+
+ <sect2 id="boot-singleuser">
+ <title>Κατάσταση Λειτουργίας Ενός Χρήστη</title>
+ <indexterm><primary>single-user mode</primary></indexterm>
+ <indexterm><primary>console</primary></indexterm>
+
+ <para>Μπορείτε να εισέλθετε στην κατάσταση αυτή μέσω της <link
+ linkend="boot-autoreboot">ακολουθίας αυτόματης επανεκκίνησης</link>,
+ ή μέσω της επιλογής <option>-s</option> κατά την εκκίνηση ή ακόμα και
+ θέτοντας τη μεταβλητή <envar>boot_single</envar> στον
+ <command>loader</command>.</para>
+
+ <para>Μπορείτε επίσης να εισέλθετε σε αυτή εκτελώντας την εντολή
+ &man.shutdown.8; χωρίς την επιλογή επανεκκίνησης
+ (<option>-r</option>) ή τερματισμού (<option>-h</option>),
+ ενώ είστε σε κατάσταση λειτουργίας
+ <link linkend="boot-multiuser">πολλών χρηστών
+ (multi-user)</link>.</para>
+
+ <para>Αν η <literal>κονσόλα</literal> του συστήματος έχει τεθεί ως
+ <literal>insecure</literal> (ανασφαλής) στο
+ <filename>/etc/ttys</filename>, το σύστημα θα ζητήσει τον κωδικό
+ του <username>root</username> πριν εισέλθει σε κατάσταση λειτουργίας
+ ενός χρήστη.</para>
+
+ <example id="boot-insecure-console">
+ <title>Ανασφαλής Κονσόλα στο <filename>/etc/ttys</filename></title>
+
+ <programlisting># name getty type status comments
+#
+# If console is marked "insecure", then init will ask for the root password
+# when going to single-user mode.
+console none unknown off insecure</programlisting>
+ </example>
+
+ <note>
+ <para>Μια <literal>insecure</literal> (ανασφαλής) κονσόλα σημαίνει
+ ότι δεν θεωρείτε ασφαλή την κονσόλα όσο αφορά τη φυσική της πρόσβαση
+ και θέλετε να είστε βέβαιος ότι μόνο όποιος γνωρίζει τον κωδικό του
+ <username>root</username> θα μπορεί να χρησιμοποιήσει τη λειτουργία
+ ενός χρήστη. Η επιλογή αυτή δεν σημαίνει ότι θέλετε η κονσόλα σας
+ να λειτουργεί χωρίς ασφάλεια. Αν θέλετε ασφάλεια, θα πρέπει να
+ επιλέξετε <literal>insecure</literal>, όχι
+ <literal>secure</literal>.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="boot-multiuser">
+ <title>Κατάσταση Λειτουργία Πολλαπλών Χρηστών (multi-user)</title>
+ <indexterm><primary>multi-user mode</primary></indexterm>
+
+ <para>Αν η &man.init.8; δεν βρει προβλήματα στα συστήματα αρχείων σας,
+ ή μόλις ο χρήστης τερματίσει την
+ <link linkend="boot-singleuser">κατάσταση λειτουργίας ενός
+ χρήστη</link>, το σύστημα εισέρχεται σε λειτουργία πολλαπλών χρηστών,
+ όπου και ξεκινά πλέον η ρύθμιση πόρων (resources) του
+ συστήματος.</para>
+
+ <sect3 id="boot-rc">
+ <indexterm><primary>rc files</primary></indexterm>
+ <title>Ρύθμιση Πόρων (rc)</title>
+
+ <para>Το σύστημα ρύθμισης πόρων, διαβάζει τις προεπιλεγμένες επιλογές
+ από το <filename>/etc/defaults/rc.conf</filename>, και επιλογές
+ για το συγκεκριμένο μηχάνημα από το
+ <filename>/etc/rc.conf</filename>, και προχωρεί στην προσάρτηση
+ των συστημάτων αρχείων που αναγράφονται στο
+ <filename>/etc/fstab</filename>, ξεκινά τις υπηρεσίες δικτύου,
+ εκκινεί διάφορους δαίμονες, και τέλος εκτελεί τα scripts εκκίνησης
+ των τοπικά εγκατεστημένων πακέτων (εφαρμογών).</para>
+
+ <para>Η σελίδα manual &man.rc.8; παρέχει μια καλή αναφορά στο σύστημα
+ ρύθμισης πόρων, καθώς εξετάζει τα ίδια τα scripts εκκίνησης.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="boot-shutdown">
+ <title>Ακολουθία Τερματισμού</title>
+ <indexterm>
+ <primary><command>shutdown</command></primary>
+ </indexterm>
+
+ <para>Κατά τον ελεγχόμενο τερματισμό, μέσω της &man.shutdown.8;, η
+ &man.init.8; θα αποπειραθεί να εκτελέσει το script
+ <filename>/etc/rc.shutdown</filename>, και ακολούθως θα στείλει σε
+ όλες τις διεργασίες το σήμα <literal>TERM</literal>, και τέλος το
+ σήμα <literal>KILL</literal> σε όποια διεργασία δεν τερματίσει σε
+ εύλογο χρονικό διάστημα.</para>
+
+ <para>Για να γίνει και διακοπή της τροφοδοσίας σε ένα σύστημα &os; με
+ αρχιτεκτονική που υποστηρίζει διαχείριση ενέργειας, απλώς χρησιμοποιήστε
+ την εντολή <command>shutdown -p now</command> για απενεργοποίηση μετά
+ τον τερματισμό. Για να κάνετε απλώς επανεκκίνηση σε ένα σύστημα &os;
+ χρησιμοποιήστε την εντολή <command>shutdown -r now</command>. Θα
+ πρέπει να είστε <username>root</username> ή μέλος της ομάδας
+ <groupname>operator</groupname> για να εκτελέσετε την &man.shutdown.8;.
+ Μπορείτε επίσης να χρησιμοποιήσετε τις εντολές &man.halt.8; και
+ &man.reboot.8;, κοιτάξτε τις αντίστοιχες σελίδες manual καθώς και τη
+ σελίδα manual της &man.shutdown.8; για περισσότερες πληροφορίες.</para>
+
+ <note>
+ <para>Η διαχείριση ενέργειας απαιτεί την υποστήριξη του &man.acpi.4;,
+ είτε στον πυρήνα, είτε φορτωμένη ως άρθρωμα (module).</para>
+ </note>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.sgml b/el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.sgml
new file mode 100644
index 0000000000..94befb1893
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/bsdinstall/chapter.sgml
@@ -0,0 +1,2638 @@
+<!--
+ Το Εγχειρίδιο του FreeBSD: Εγκατάσταση του FreeBSD 9.0
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/bsdinstall/chapter.sgml
+ %SRCID% 1.24
+-->
+
+<chapter id="bsdinstall">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Αναδιοργανώθηκε και τμήματα του ξαναγράφηκαν από
+ τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Randy</firstname>
+ <surname>Pratt</surname>
+ <contrib>Η βήμα προς βήμα εγκατάσταση sysinstall, οι εικόνες και
+ και γενική αντιγραφή από </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Gavin</firstname>
+ <surname>Atkinson</surname>
+ <contrib>Ανανεώθηκε για το bsdinstall από τον </contrib>
+ </author>
+
+ <author>
+ <firstname>Warren</firstname>
+ <surname>Block</surname>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Εγκατάσταση του &os;&nbsp;9.<replaceable>x</replaceable> και
+ Μεταγενέστερων Εκδόσεων</title>
+
+ <sect1 id="bsdinstall-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>installation</primary></indexterm>
+
+ <para>Το &os; έρχεται με ένα μη-γραφικό αλλά εύκολο στη χρήση πρόγραμμα
+ εγκατάστασης. Από το &os;&nbsp;9.0-RELEASE και μετά, χρησιμοποιείται
+ το πρόγραμμα <application>bsdinstall</application> ενώ οι προηγούμενες
+ εκδόσεις χρησιμοποιούν το <application>sysinstall</application>.
+ Το κεφάλαιο αυτό περιγράφει τη χρήση του
+ <application>bsdinstall</application>. Η χρήση του
+ <application>sysinstall</application> περιγράφεται στο
+ <xref linkend="install">.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα γνωρίζετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να δημιουργήσετε μέσα εγκατάστασης για το &os;.</para>
+ </listitem>
+
+ <listitem>
+ <!-- WB: verify this, including GPT partition notation (ada0p2) -->
+ <para>Πως το &os; υποδιαιρεί τους σκληρούς δίσκους και πως
+ αναφέρεται σε αυτούς.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εκκινήσετε το <application>bsdinstall</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τις ερωτήσεις που θα σας κάνει το
+ <application>bsdinstall</application>, τι σημαίνουν και πως να τις
+ απαντήσετε.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να διαβάσετε τη λίστα του υλικού που υποστηρίζεται από την
+ έκδοση του &os; που εγκαθιστάτε και να επαληθεύσετε ότι το υλικό
+ του υπολογιστή σας υποστηρίζεται.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Σε γενικές γραμμές, αυτές οι οδηγίες εγκατάστασης αναφέρονται
+ στην αρχιτεκτονική &i386; (<quote>PC συμβατή</quote>). Όπου
+ χρειάζεται, γίνεται αναφορά και σε άλλες αρχιτεκτονικές. Πιθανόν να
+ υπάρχουν μικρές διαφορές στο πρόγραμμα εγκατάστασης σε σχέση με
+ το παρόν κείμενο και για το λόγο αυτό σας συνιστούμε να το
+ χρησιμοποιήσετε ως γενικό οδηγό παρά σαν κυριολεκτικά ακριβείς
+ οδηγίες.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="bsdinstall-hardware">
+ <title>Απαιτήσεις Υλικού</title>
+
+ <sect2 id="bsdinstall-hardware-minimal">
+ <title>Ελάχιστες Απαιτήσεις Εγκατάστασης</title>
+
+ <para>Οι ελάχιστες απαιτήσεις για την εγκατάσταση του &os; ποικίλουν
+ ανάλογα με την έκδοση του λειτουργικού και την αρχιτεκτονική του
+ υλικού που χρησιμοποιείται.</para>
+
+ <para>Στις επόμενες ενότητες θα σας παρουσιάσουμε μια σύνοψη αυτών
+ των πληροφοριών. Ανάλογα με τη μέθοδο που θα χρησιμοποιήσετε για
+ να εγκαταστήσετε το &os;, μπορεί να χρειαστείτε ένα υποστηριζόμενο
+ οδηγό CDROM και &mdash; σε κάποιες περιπτώσεις &mdash; μια κάρτα
+ δικτύου. Τα θέματα αυτά καλύπτονται στο <xref
+ linkend="bsdinstall-installation-media">.</para>
+
+ <sect3>
+ <title>&os;/&arch.i386;</title>
+
+ <para>Το &os;/&arch.i386; απαιτεί 486 ή καλύτερο επεξεργαστή και
+ τουλάχιστον 64&nbsp;MB RAM. Για την ελάχιστη δυνατή εγκατάσταση
+ απαιτείται 1.1&nbsp;GB ελεύθερου χώρου στο σκληρό δίσκο.</para>
+
+ <note>
+ <para>Σε περιπτώσεις παλιών μηχανημάτων, τις περισσότερες φορές,
+ η απόδοση του συστήματος βελτιώνεται περισσότερο με αύξηση της
+ μνήμης RAM και του ελεύθερου χώρου στο δίσκο, παρά με ένα
+ ταχύτερο επεξεργαστή.</para>
+ </note>
+ </sect3>
+
+ <sect3>
+ <title>&os;/&arch.amd64;</title>
+
+ <para>Υπάρχουν δύο κλάσεις επεξεργαστών ικανές να εκτελέσουν το
+ &os;/&arch.amd64;. Η πρώτη είναι οι επεξεργαστές AMD64 που
+ περιλαμβάνουν τους &amd.athlon;64, &amd.athlon;64-FX,
+ &amd.opteron; ή καλύτερους.</para>
+
+ <para>Η δεύτερη κλάση επεξεργαστών που μπορούν να εκτελέσουν το
+ &os;/&arch.amd64; περιλαμβάνει όσους χρησιμοποιούν την
+ αρχιτεκτονική &intel;&nbsp;EM64T. Παραδείγματα των επεξεργαστών
+ αυτών περιλαμβάνουν τις οικογένειες
+ &intel;&nbsp;&core;&nbsp;2 Duo, Quad, Extreme processor,
+ τη σειρά επεξεργαστών &intel;&nbsp;&xeon; 3000, 5000 και 7000
+ καθώς και τους επεξεργαστές &intel;&nbsp;&core;
+ i3, i5 και i7.</para>
+
+ <para>Αν το μηχάνημα σας είναι βασισμένο σε nVidia nForce3 Pro-150,
+ θα <emphasis>πρέπει</emphasis> να χρησιμοποιήσετε την κατάλληλη
+ επιλογή στο BIOS για να απενεργοποιήσετε το IO APIC. Αν η επιλογή
+ αυτή δεν υπάρχει, θα πρέπει να απενεργοποιήσετε αντί αυτού το ACPI.
+ Υπάρχουν προβλήματα στο Pro-150 για τα οποία μέχρι στιγμής δεν
+ έχει βρεθεί λύση που να τα παρακάμπτει.</para>
+ </sect3>
+
+ <sect3>
+ <title>&os;/&arch.powerpc; &apple; &macintosh;</title>
+
+ <para>Υποστηρίζονται όλοι οι νέοι υπολογιστές &apple; &macintosh;
+ που διαθέτουν ενσωματωμένες USB. Υποστηρίζεται επίσης η
+ λειτουργία SMP σε μηχανήματα με πολλαπλούς επεξεργαστές.</para>
+
+ <para>Ένας 32-bit πυρήνας μπορεί να χρησιμοποιήσει μόνο τα πρώτα
+ 2&nbsp;GB RAM. Το &firewire; δεν υποστηρίζεται στα Μπλε και Λευκά
+ PowerMac G3.</para>
+ </sect3>
+
+ <sect3>
+ <title>&os;/&arch.sparc64;</title>
+
+ <para>Μπορείτε να δείτε τα συστήματα που υποστηρίζονται από το
+ &os;/&arch.sparc64; στο <ulink
+ url="http://www.freebsd.org/platforms/sparc.html">FreeBSD/sparc64</ulink> Project.</para>
+
+ <para>Θα χρειαστείτε ένα δίσκο για αποκλειστική χρήση από το
+ &os;/&arch.sparc64;. Τη δεδομένη στιγμή, δεν είναι δυνατόν το
+ &os; να μοιράζεται τον ίδιο δίσκο με ένα άλλο λειτουργικό
+ σύστημα.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="bsdinstall-hardware-supported">
+ <title>Υποστηριζόμενο Υλικό</title>
+
+ <para>Στις Σημειώσεις Υλικού (Hardware Notes) μπορείτε να βρείτε
+ πληροφορίες για τις αρχιτεκτονικές και τις συσκευές που
+ υποστηρίζονται από μια επίσημη έκδοση του &os;. Το αρχείο αυτό
+ ονομάζεται συνήθως <filename>HARDWARE.TXT</filename>, και βρίσκεται
+ στον κεντρικό κατάλογο του μέσου εγκατάστασης. Μπορείτε επίσης να
+ βρείτε αντίγραφα αυτού του καταλόγου στη σελίδα <ulink
+ url="http://www.FreeBSD.org/releases/index.html">Πληροφοριών
+ Έκδοσης</ulink> στο δικτυακό τόπο του &os;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="bsdinstall-pre">
+ <title>Εργασίες πριν την Εγκατάσταση</title>
+
+ <sect2>
+ <title>Κρατήστε Αντίγραφα Ασφαλείας των Δεδομένων σας</title>
+
+ <para>Κρατήστε αντίγραφα ασφαλείας όλων των σημαντικών δεδομένων
+ του υπολογιστή στον οποίο θα κάνετε εγκατάσταση του &os;.
+ Ελέγξτε τη σωστή λειτουργία των αντιγράφων ασφαλείας πριν συνεχίσετε.
+ Το πρόγραμμα εγκατάστασης του &os; θα ζητήσει επιβεβαίωση πριν
+ κάνει οποιαδήποτε αλλαγή στο δίσκο σας, αλλά από τη στιγμή που
+ αυτή η διαδικασία ξεκινήσει, δεν υπάρχει δυνατότητα
+ επιστροφής.</para>
+ </sect2>
+
+ <sect2 id="bsdinstall-where">
+ <title>Αποφασίστε που θα Εγκαταστήσετε το &os;</title>
+
+ <para>Αν το &os; πρόκειται να είναι το μοναδικό λειτουργικό σύστημα
+ του υπολογιστή και σκοπεύετε να διαθέσετε σε αυτό ολόκληρο το
+ χώρο του σκληρού σας δίσκου, μπορείτε να παραλείψετε το υπόλοιπο αυτής
+ της ενότητας. Αν ωστόσο θέλετε να συνυπάρχει το &os; με
+ άλλα λειτουργικά συστήματα, είναι χρήσιμο να κατανοείτε γενικά τον
+ τρόπο διάταξης των δεδομένων στο δίσκο.</para>
+
+ <sect3 id="bsdinstall-where-i386">
+ <title>Κατατμήσεις Δίσκων για τις Αρχιτεκτονικές &os;/&arch.i386;
+ και &os;/&arch.amd64;</title>
+
+ <para>Οι σκληροί δίσκοι μπορούν να χωριστούν σε διακριτά τμήματα.
+ Τα τμήματα αυτά ονομάζονται
+ <firstterm>κατατμήσεις (partitions)</firstterm>.</para>
+
+ <para>Υπάρχουν δύο τρόποι για να χωριστεί ένας δίσκος σε κατατμήσεις.
+ Ο παραδοσιακός τρόπος χρησιμοποιεί το
+ <firstterm>Master Boot Record (Βασική Εγγραφή Εκκίνησης)</firstterm>
+ ή <acronym role="Master Boot Record">MBR</acronym>,
+ ένα πίνακα κατατμήσεων ικανό να αποθηκεύσει ως τέσσερις
+ <firstterm>πρωτεύουσες κατατμήσεις (primary partitions)</firstterm>.
+ (Για ιστορικούς λόγους, το &os; ονομάζει τις πρωτεύουσες κατατμήσεις
+ <firstterm>slices ή φέτες</firstterm>.) Το όριο των τεσσάρων
+ κατατμήσεων είναι πολύ περιοριστικό για μεγάλους δίσκους, έτσι μια
+ από αυτές τις κατατμήσεις μπορεί να μετατραπεί σε
+ <firstterm>εκτεταμένη κατάτμηση (extended partition)</firstterm>.
+ Μέσα στην εκτεταμένη κατάτμηση μπορούν να δημιουργηθούν πολλαπλές
+ <firstterm>λογικές κατατμήσεις (logical partitions)</firstterm>.
+ Αυτό ακούγεται κάπως παράξενο, και μάλλον είναι.</para>
+
+ <para>Ο <firstterm>Πίνακας Κατατμήσεων GUID (GUID Partition
+ Table)</firstterm> ή <acronym
+ role="GUID Partition Table">GPT</acronym>, αποτελεί μια νέα
+ και απλούστερη μέθοδος κατάτμησης ενός δίσκου. Το
+ <acronym role="GUID Partition Table">GPT</acronym> είναι πολύ
+ πιο βολικό από τον παραδοσιακό πίνακα κατατμήσεων MBR.
+ Οι συνήθεις υλοποιήσεις του <acronym>GPT</acronym> επιτρέπουν ως
+ και 128 κατατμήσεις ανά δίσκο, εξαλείφοντας έτσι την ανάγκη
+ για άβολες λύσεις όπως οι λογικές κατατμήσεις.</para>
+
+ <warning>
+ <para>Κάποια παλιότερα λειτουργικά συστήματα όπως τα
+ &windows;&nbsp;XP δεν είναι συμβατά με το σύστημα κατατμήσεων
+ <acronym>GPT</acronym>. Αν το &os; πρόκειται να εγκατασταθεί
+ σε ένα δίσκο από κοινού με ένα τέτοιο λειτουργικό, θα πρέπει να
+ χρησιμοποιήσετε το σύστημα <acronym
+ role="Master Boot Record">MBR</acronym>.</para>
+ </warning>
+
+ <para>Ο τυπικός φορτωτής εκκίνησης (boot loader) του &os; χρειάζεται
+ είτε μια πρωτεύουσα είτε μια <acronym>GPT</acronym> κατάτμηση.
+ (Δείτε το <xref linkend="boot"> για περισσότερες πληροφορίες σχετικά
+ με τη διαδικασία εκκίνησης του &os;.) Αν όλες οι πρωτεύουσες ή
+ <acronym>GPT</acronym> κατατμήσεις είναι ήδη σε χρήση, θα πρέπει
+ να ελευθερώσετε μία για χρήση με το &os;.</para>
+
+ <para>Η ελάχιστη εγκατάσταση του &os; καταλαμβάνει μόνο περίπου
+ 1&nbsp;GB χώρο στο δίσκο. Πρόκειται όμως για την
+ <emphasis>απόλυτα</emphasis> ελάχιστη εγκατάσταση η οποία δεν
+ αφήνει σχεδόν καθόλου ελεύθερο χώρο. Μια πιο ρεαλιστική
+ ελάχιστη εγκατάσταση καταλαμβάνει περίπου 3&nbsp;GB χωρίς
+ γραφικό περιβάλλον και περίπου 5&nbsp;GB με χρήση κάποιου
+ γραφικού περιβάλλοντος. Η εγκατάσταση λογισμικού τρίτων
+ κατασκευαστών απαιτεί ακόμα περισσότερο χώρο στο δίσκο.</para>
+
+ <para>Υπάρχει πληθώρα <ulink
+ url="http://en.wikipedia.org/wiki/List_of_disk_partitioning_software">ελεύθερων και εμπορικών εργαλείων αναδιανομής χώρου κατατμήσεων</ulink>.
+ Το <ulink
+ url="http://gparted.sourceforge.net/livecd.php">GParted
+ Live</ulink> είναι ένα δωρεάν Live CD το οποίο περιλαμβάνει
+ τον επεξεργαστή κατατμήσεων GParted. Το GParted περιλαμβάνεται
+ επίσης σε πολλές άλλες Live διανομές Linux.</para>
+
+ <warning>
+ <para>Οι εφαρμογές που διαχειρίζονται κατατμήσεις σκληρών δίσκων
+ μπορούν να καταστρέψουν τα δεδομένα σας. Πάρτε πλήρη αντίγραφα
+ ασφαλείας και επιβεβαιώστε την ορθή λειτουργία τους πριν
+ ξεκινήσετε την τροποποίηση των κατατμήσεων του δίσκου σας.</para>
+ </warning>
+
+ <para>Η αλλαγή μεγέθους κατατμήσεων των &microsoft;&nbsp;Vista
+ ενδέχεται να είναι δύσκολη. Είναι χρήσιμο να έχετε διαθέσιμο
+ ένα DVD εγκατάστασης των Vista πριν ξεκινήσετε μια τέτοια
+ διαδικασία.</para>
+
+ <example>
+ <title>Χρησιμοποιώντας μια Υπάρχουσα Κατάτμηση</title>
+
+ <para>Ένας υπολογιστής &windows; διαθέτει ένα μοναδικό δίσκο
+ 40&nbsp;GB ο οποίος έχει χωριστεί σε δύο κατατμήσεις των
+ 20&nbsp;GB. Στα &windows; ονομάζονται
+ <devicename>C:</devicename> και <devicename>D:</devicename>.
+ Η κατάτμηση <devicename>C:</devicename> περιέχει 10&nbsp;GB
+ δεδομένων, ενώ η κατάτμηση <devicename>D:</devicename>
+ 5&nbsp;GB.</para>
+
+ <para>Η μετακίνηση των δεδομένων από τον <devicename>D:</devicename>
+ στο <devicename>C:</devicename> ελευθερώνει τη δεύτερη κατάτμηση
+ ώστε να μπορεί να χρησιμοποιηθεί από το &os;.</para>
+ </example>
+
+ <example>
+ <title>Συρρικνώνοντας μια Υπάρχουσα Κατάτμηση</title>
+
+ <para>Ένας υπολογιστής &windows; έχει ένα μοναδικό σκληρό δίσκο
+ 40&nbsp;GB και μια μεγάλη κατάτμηση που τον καταλαμβάνει
+ εξ' ολοκλήρου. Τα &windows; δείχνουν αυτή την κατάτμηση των
+ 40&nbsp;GB ως ένα μοναδικό οδηγό <devicename>C:</devicename>.
+ Τη δεδομένη στιγμή χρησιμοποιούνται 15&nbsp;GB χώρου. Σκοπός
+ είναι να καταλήξουμε με μια κατάτμηση των 20&nbsp;GB για τα
+ &windows; και άλλα 20&nbsp;GB για το &os;.</para>
+
+ <para>Υπάρχουν δύο τρόποι για να γίνει αυτό.</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Κρατήστε αντίγραφο των δεδομένων που έχετε δημιουργήσει
+ στα &windows;. Έπειτα επανεγκαταστήστε τα &windows;
+ δημιουργώντας μια κατάτμηση μεγέθους 20&nbsp;GB κατά την
+ διαδικασία εγκατάστασης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Χρησιμοποιήστε κάποιο εργαλείο αλλαγής μεγέθους
+ κατατμήσεων όπως το <application>GParted</application>
+ για να συρρικνώσετε την κατάτμηση των &windows; και να
+ δημιουργήσετε μια νέα κατάτμηση για το &os; στον
+ ελεύθερο χώρο.</para>
+ </listitem>
+ </orderedlist>
+ </example>
+
+ <para>Η εγκατάσταση διαφορετικών λειτουργικών συστημάτων σε άλλες
+ κατατμήσεις, επιτρέπει την εκτέλεση ενός από αυτά σε
+ μια δεδομένη χρονική στιγμή. Μια εναλλακτική μέθοδος που
+ επιτρέπει την ταυτόχρονη εκτέλεση πολλών λειτουργικών περιγράφεται
+ στο <xref linkend="virtualization">.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="bsdinstall-collect-network-information">
+ <title>Συλλέξτε Πληροφορίες για το Δίκτυο</title>
+
+ <para>Κάποιες μέθοδοι εγκατάστασης του &os; χρειάζονται μια σύνδεση
+ δικτύου για να κατεβάσουν αρχεία. Για να συνδεθείτε με ένα δίκτυο
+ Ethernet (ή μέσω καλωδιακού ή DSL modem με διεπαφή Ethernet),
+ το πρόγραμμα εγκατάστασης θα σας ζητήσει πληροφορίες σχετικά
+ με το δίκτυο σας.</para>
+
+ <para>Συχνά, γίνεται χρήση του <firstterm><acronym
+ role="Dynamic Host Configuration Protocol">DHCP</acronym></firstterm>
+ ώστε οι ρυθμίσεις του δικτύου να γίνονται αυτόματα. Αν δεν
+ διαθέτετε <acronym>DHCP</acronym>, θα πρέπει να βρείτε
+ τις παρακάτω πληροφορίες από τον τοπικό σας διαχειριστή δικτύου
+ ή τον παροχέα των υπηρεσιών σας:</para>
+
+ <orderedlist>
+ <title>Πληροφορίες Δικτύου</title>
+
+ <listitem>
+ <para>Διεύθυνση <acronym role="Internet Protocol">IP</acronym></para>
+ </listitem>
+
+ <listitem>
+ <para>Μάσκα Υποδικτύου</para>
+ </listitem>
+
+ <listitem>
+ <para>Διεύθυνση <acronym>IP</acronym> προεπιλεγμένου
+ δρομολογητή</para>
+ </listitem>
+
+ <listitem>
+ <para>Όνομα τομέα για το τοπικό δίκτυο</para>
+ </listitem>
+
+ <listitem>
+ <para>Διευθύνσεις <acronym>IP</acronym> των διακομιστών
+ <acronym role="Domain Name System">DNS</acronym></para>
+ </listitem>
+ </orderedlist>
+ </sect2>
+
+ <sect2>
+ <title>Ελέγξτε για Παροράματα (Errata) στο &os;</title>
+
+ <para>Αν και το &os;&nbsp;Project πασχίζει για να εξασφαλίσει ότι
+ κάθε νέα έκδοση του &os; θα είναι όσο πιο σταθερή γίνεται, ορισμένες
+ φορές στη διαδικασία αυτή εισέρχονται λάθη. Σε πολύ σπάνιες
+ περιπτώσεις, τα λάθη αυτά επηρεάζουν τη διαδικασία εγκατάστασης.
+ Καθώς τα προβλήματα αυτά γίνονται αντιληπτά και επιδιορθώνονται,
+ σημειώνονται στα <ulink
+ url="&url.base;/releases/9.0R/errata.html">Παροράματα του
+ FreeBSD</ulink> στη δικτυακή τοποθεσία του &os;. Ελέγξτε τα
+ παροράματα πριν ξεκινήσετε την εγκατάσταση, για να βεβαιωθείτε
+ ότι δεν υπάρχουν προβλήματα που μπορούν να επηρεάσουν τη
+ διαδικασία.</para>
+
+ <para>Μπορείτε να βρείτε πληροφορίες και παροράματα για όλες τις
+ εκδόσεις στη σελίδα <ulink
+ url="&url.base;/releases/index.html">πληροφοριών έκδοσης</ulink>
+ στην <ulink url="&url.base;/index.html">δικτυακή τοποθεσία του &os;</ulink>.</para>
+ </sect2>
+
+ <sect2 id="bsdinstall-installation-media">
+ <title>Προετοιμάστε τα Μέσα Εγκατάστασης</title>
+
+ <para>Η εγκατάσταση του &os; ξεκινάει με την εκκίνηση του υπολογιστή
+ με τη χρήση ενός &os;&nbsp;CD, DVD ή μνήμης USB. Το πρόγραμμα
+ εγκατάστασης δεν μπορεί να εκτελεστεί μέσα από κάποιο άλλο
+ λειτουργικό σύστημα.</para>
+
+ <para>Εκτός από τα τυποποιημένα μέσα εγκατάστασης που περιέχουν όλα
+ τα απαραίτητα αρχεία εγκατάστασης του &os;, διατίθεται επίσης
+ και η εκδοχή <emphasis>bootonly</emphasis>. Αυτό το μέσο
+ εγκατάστασης δεν περιέχει τα απαραίτητα αρχεία, αλλά τα κατεβάζει
+ από το δίκτυο κατά τη διάρκεια της εγκατάστασης. Κατά συνέπεια,
+ το συγκεκριμένο CD είναι αρκετά μικρότερο σε μέγεθος ενώ και το
+ απαιτούμενο εύρος ζώνης του δικτύου περιορίζεται καθώς
+ κατεβαίνουν μόνο τα αρχεία που απαιτούνται.</para>
+
+ <para>Μπορείτε να βρείτε έτοιμα μέσα εγκατάστασης για το &os; στην
+ <ulink url="&url.base;/where.html#download">δικτυακή τοποθεσία του
+ &os;.</ulink>.</para>
+
+ <tip>
+ <para>Αν διαθέτετε ήδη ένα CDROM, DVD ή USB οδηγό εγκατάστασης
+ &os;, μπορείτε να παραλείψετε αυτή την ενότητα.</para>
+ </tip>
+
+ <para>Τα CD και DVD αρχεία ISO του &os; είναι εκκινήσιμα.
+ Χρειάζεστε μόνο ένα από αυτά για την εγκατάσταση. Γράψτε το
+ αρχείο ISO σε ένα CD ή DVD χρησιμοποιώντας τα αντίστοιχα
+ προγράμματα εγγραφής που διαθέτει το τρέχον λειτουργικό σας
+ σύστημα.</para>
+
+ <para>Για να δημιουργήσετε μια εκκινήσιμη μνήμη Flash (USB),
+ ακολουθήστε τα παρακάτω βήματα:</para>
+
+ <procedure>
+ <step>
+ <title>Ανακτήστε το Αρχείο ISO για τη Μνήμη Flash</title>
+
+ <para>Μπορείτε να κατεβάσετε το αρχείο από τον κατάλογο
+ <filename class="directory">ISO-IMAGES/</filename>
+ στην τοποθεσία
+ <literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<replaceable> arch</replaceable>/<replaceable>arch</replaceable>/ISO-IMAGES/<replaceable>version</replaceable>/&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-memstick.img</literal>.
+ Αντικαταστήστε το <replaceable>arch</replaceable> και το
+ <replaceable>version</replaceable> με την αρχιτεκτονική και την
+ έκδοση που θέλετε να εγκαταστήσετε. Για παράδειγμα, το αρχείο
+ για το &os;/&arch.i386;&nbsp;9.0-RELEASE βρίσκεται στη θέση
+ <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/&arch.i386;/ISO-IMAGES/9.0/&os;-9.0-RELEASE-&arch.i386;-memstick.img"></ulink>.</para>
+
+ <para>Το αρχείο για τη μνήμη Flash έχει επέκταση
+ <filename>.img</filename>. Ο κατάλογος
+ <filename class="directory">ISO-IMAGES/</filename> περιέχει
+ πλήθος από διαφορετικά αρχεία. Θα πρέπει να κατεβάσετε το
+ κατάλληλο ανάλογα με την έκδοση του &os; και το υλικό του
+ υπολογιστή που πρόκειται να χρησιμοποιηθεί.</para>
+
+ <important>
+ <para>Πριν προχωρήσετε, <emphasis>αντιγράψτε</emphasis> τυχόν
+ δεδομένα που έχετε ήδη στη μνήμη USB, καθώς η παρακάτω
+ διαδικασία θα τα <emphasis>διαγράψει</emphasis>.</para>
+ </important>
+ </step>
+
+ <step>
+ <title>Γράψτε το Αρχείο στη Μνήμη USB</title>
+
+ <procedure>
+ <title>Εγγραφή του Αρχείου με Χρήση του &os;</title>
+
+ <warning>
+ <para>Το παρακάτω παράδειγμα δείχνει τη συσκευή
+ <filename class="devicefile">/dev/da0</filename> ως
+ τον προορισμό εγγραφής του αρχείου. Θα πρέπει να είστε
+ πολύ προσεκτικοί και να βεβαιωθείτε για το όνομα της
+ συσκευής που χρησιμοποιείτε, διαφορετικά
+ ενδέχεται να διαγράψετε δεδομένα που χρειάζεστε.</para>
+ </warning>
+
+ <step>
+ <title>Εγγραφή του Αρχείου με την &man.dd.1;</title>
+
+ <para>Το αρχείο <filename>.img</filename>
+ <emphasis>δεν</emphasis> είναι ένα συνηθισμένο αρχείο.
+ Είναι ένα αρχείο <emphasis>εικόνας (image)</emphasis>
+ με όλο το περιεχόμενο που χρειάζεται η μνήμη USB.
+ <emphasis>Δεν μπορείτε</emphasis> να το αντιγράψετε
+ ως ένα κανονικό αρχείο, θα χρειαστεί να το γράψετε
+ απευθείας στη συσκευή προορισμού χρησιμοποιώντας την
+ εντολή &man.dd.1;:</para>
+
+ <screen>&prompt.root; <userinput>dd if=&os;-9.0-RELEASE-&arch.i386;-memstick.img of=/dev/<replaceable>da0</replaceable> bs=64k</userinput></screen>
+ </step>
+ </procedure>
+
+ <procedure>
+ <title>Εγγραφή του Αρχείου Μέσω &windows;</title>
+
+ <warning>
+ <para>Βεβαιωθείτε ότι χρησιμοποιείτε το σωστό όνομα
+ οδηγού για την μνήμη USB, διαφορετικά μπορεί να
+ προκληθεί απώλεια δεδομένων.</para>
+ </warning>
+
+ <step>
+ <title>Ανάκτηση του Προγράμματος <application>Image Writer για
+ &windows;</application></title>
+
+ <para>Το <application>Image Writer για &windows;</application>
+ είναι μια δωρεάν εφαρμογή που μπορεί να γράψει σωστά ένα
+ αρχείο image σε μια μνήμη USB. Μπορείτε να το κατεβάσετε
+ από την τοποθεσία
+ <ulink url="https://launchpad.net/win32-image-writer/"></ulink>
+ και να το αποσυμπιέσετε σε ένα φάκελο.</para>
+ </step>
+
+ <step>
+ <title>Εγγραφή του Αρχείου με το Image Writer</title>
+
+ <para>Κάντε διπλό κλικ στο εικονίδιο
+ <application>Win32DiskImager</application> για να
+ ξεκινήσετε το πρόγραμμα. Βεβαιωθείτε ότι το γράμμα
+ του οδηγού που φαίνεται στην επιλογή
+ <computeroutput>Device</computeroutput> αντιστοιχεί στη
+ μνήμη USB. Κάντε κλικ στο εικονίδιο με το φάκελο και
+ επιλέξτε το αρχείο εικόνας που θα γραφεί στη μνήμη USB.
+ Κάντε κλικ στο <guibutton>[&nbsp;Save&nbsp;]</guibutton> για
+ να αποδεχθείτε το όνομα του αρχείου εικόνας. Βεβαιωθείτε
+ ότι οι παραπάνω ενέργειες είναι σωστές και ότι δεν υπάρχουν
+ ανοικτά παράθυρα στο σύστημα σας που να απεικονίζουν
+ φακέλους της μνήμης USB. Τέλος, κάντε κλικ στο
+ <guibutton>[&nbsp;Write&nbsp;]</guibutton> για να γράψετε
+ το αρχείο εικόνας στη μνήμη USB.</para>
+ </step>
+ </procedure>
+ </step>
+ </procedure>
+
+ <note>
+ <para>Δεν υποστηρίζεται πλέον η εγκατάσταση από δισκέτες</para>
+ </note>
+
+ <para>Είστε πλέον έτοιμοι να ξεκινήσετε την εγκατάσταση του &os;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="bsdinstall-start">
+ <title>Ξεκινώντας την Εγκατάσταση</title>
+
+ <important>
+ <para>Από προεπιλογή, η εγκατάσταση δεν θα κάνει αλλαγές στο σύστημα
+ σας μέχρι να δείτε το παρακάτω μήνυμα:</para>
+
+ <literallayout class="monospaced">Your changes will now be written to disk. If you
+have chosen to overwrite existing data, it will
+be PERMANENTLY ERASED. Are you sure you want to
+commit your changes?</literallayout>
+
+ <para>Μπορείτε να εγκαταλείψετε την εγκατάσταση οποιαδήποτε στιγμή
+ πριν από την παραπάνω προειδοποίηση, χωρίς να έχουν γίνει αλλαγές
+ στα περιεχόμενα του δίσκου σας. Αν ανησυχείτε ότι ενδεχομένως
+ έχετε κάνει κάτι λάθος, μπορείτε απλά να σβήσετε τον υπολογιστή
+ σας πριν από αυτό το σημείο και δεν θα γίνει καμιά ζημιά.</para>
+ </important>
+
+ <sect2 id="bsdinstall-starting">
+ <title>Εκκίνηση</title>
+
+ <sect3 id="bsdinstall-starting-i386">
+ <title>Εκκίνηση στις Αρχιτεκτονικές &i386; και &arch.amd64;</title>
+
+ <procedure>
+ <step>
+ <para>Αν προετοιμάσατε μια <quote>εκκινήσιμη</quote> μνήμη USB
+ όπως περιγράφεται στο
+ <xref linkend="bsdinstall-installation-media">, τοποθετήστε
+ τη μνήμη στην υποδοχή του υπολογιστή σας πριν τον
+ ενεργοποιήσετε.</para>
+
+ <para>Αν πρόκειται να εκκινήσετε από το CDROM, θα χρειαστεί
+ να ενεργοποιήσετε τον υπολογιστή σας και να εισάγετε το
+ CDROM στην πρώτη δυνατή ευκαιρία.</para>
+ </step>
+
+ <step>
+ <para>Ρυθμίστε το μηχάνημα σας να ξεκινάει είτε από το CDROM
+ είτε από την USB, ανάλογα με το μέσο εγκατάστασης που
+ πρόκειται να χρησιμοποιήσετε. Γενικά, αυτό επιτυγχάνεται
+ αλλάζοντας τη σχετική ρύθμιση στο <acronym
+ role="Basic Input/Output System">BIOS</acronym>. Τα
+ περισσότερα συστήματα επιτρέπουν επίσης την επιλογή μιας
+ συσκευής εκκίνησης καθώς ξεκινούν, τυπικά με τα πλήκτρα
+ <keycap>F10</keycap>, <keycap>F11</keycap>,
+ <keycap>F12</keycap>, ή <keycap>Escape</keycap>.</para>
+ </step>
+
+ <step>
+ <para>Αν ο υπολογιστής σας ξεκινήσει όπως συνήθως και φορτώσει
+ το ήδη υπάρχον λειτουργικό σύστημα, μπορεί να συμβαίνει
+ κάτι από τα παρακάτω:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Δεν τοποθετήσατε το CD ή DVD αρκετά νωρίς κατά την
+ εκκίνηση. Αφήστε το μέσο στον οδηγό και δοκιμάστε να
+ επανεκκινήσετε τον υπολογιστή σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι αλλαγές ρυθμίσεων που κάνατε στο
+ <acronym>BIOS</acronym> δεν λειτούργησαν σωστά. Θα πρέπει
+ να ξαναδοκιμάσετε μέχρι να πετύχετε τις σωστές
+ ρυθμίσεις.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <acronym>BIOS</acronym> της μητρικής σας δεν
+ υποστηρίζει εκκίνηση από το μέσο που έχετε επιλέξει.
+ Μπορείτε να χρησιμοποιήσετε τον <ulink
+ url="http://www.plop.at/en/bootmanager.html">Plop
+ Boot Manager</ulink> για να εκκινήσετε παλιά μηχανήματα
+ από CD ή USB.</para>
+ </listitem>
+ </orderedlist>
+ </step>
+
+ <step>
+ <para>Θα αρχίσει η εκκίνηση του &os;. Αν ξεκινάτε από
+ CDROM, θα δείτε μια οθόνη σαν την παρακάτω (έχουμε παραλείψει
+ τις πληροφορίες έκδοσης):</para>
+
+ <screen>Booting from CD-ROM...
+645MB medium detected
+CD Loader 1.2
+
+Building the boot loader arguments
+Looking up /BOOT/LOADER... Found
+Relocating the loader and the BTX
+Starting the BTX loader
+
+BTX loader 1.00 BTX version is 1.02
+Consoles: internal video/keyboard
+BIOS CD is cd0
+BIOS drive C: is disk0
+BIOS drive D: is disk1
+BIOS 636kB/261056kB available memory
+
+FreeBSD/i386 bootstrap loader, Revision 1.1
+
+Loading /boot/defaults/loader.conf
+/boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+0x88e9d]
+\</screen>
+ </step>
+
+ <step>
+ <para>Εμφανίζεται η οθόνη του φορτωτή εκκίνησης του &os;:</para>
+
+ <figure id="bsdinstall-boot-loader-menu">
+ <title>Μενού Φορτωτή Εκκίνησης του &os;</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-boot-loader-menu" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Περιμένετε δέκα δευτερόλεπτα, ή πιέστε
+ <keycap>Enter</keycap>.</para>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3>
+ <title>Εκκίνηση στον &macintosh; &powerpc;</title>
+
+ <para>Στα περισσότερα μηχανήματα, μπορείτε να κρατήσετε πιεσμένο το
+ πλήκτρο <keycap>C</keycap> κατά την εκκίνηση και θα ξεκινήσετε
+ από το CD. Σε διαφορετική περίπτωση, κρατήστε πιεσμένα τα πλήκτρα
+ <keycombo action="simul">
+ <keycap>Command</keycap>
+ <keycap>Option</keycap>
+ <keycap>O</keycap>
+ <keycap>F</keycap>
+ </keycombo>,
+ ή
+ <keycombo action="simul">
+ <keycap>Windows</keycap>
+ <keycap>Alt</keycap>
+ <keycap>O</keycap>
+ <keycap>F</keycap>
+ </keycombo>
+ αν χρησιμοποιείτε πληκτρολόγιο που δεν είναι &apple;. Στην
+ προτροπή <prompt>0 ></prompt> γράψτε:</para>
+
+ <screen><userinput>boot cd:,\ppc\loader cd:0</userinput></screen>
+
+ <para>Σε μηχανήματα Xserve χωρίς πληκτρολόγιο, δείτε την
+ <ulink url="http://support.apple.com/kb/TA26930">σελίδα τεχνικής
+ υποστήριξης της &apple;</ulink> για πληροφορίες εκκίνησης στο
+ Open Firmware.</para>
+ </sect3>
+
+ <sect3>
+ <title>Εκκίνηση στον &sparc64;</title>
+
+ <para>Τα περισσότερα συστήματα &sparc64; είναι ρυθμισμένα να εκκινούν
+ αυτόματα από το σκληρό δίσκο. Για να εγκαταστήσετε το &os;, θα
+ πρέπει να εκκινήσετε από το δίκτυο ή από ένα CDROM. Θα χρειαστεί
+ να εισέλθετε στις ρυθμίσεις της <acronym
+ role="Programmable Read Only Memory">PROM</acronym>
+ (OpenFirmware).</para>
+
+ <para>Για να γίνει αυτό, επανεκκινήστε το σύστημα και περιμένετε
+ μέχρι να εμφανιστεί το μήνυμα εκκίνησης. Το ακριβές μήνυμα
+ εξαρτάται από το μοντέλο, αλλά γενικά θα δείχνει όπως το
+ παρακάτω:</para>
+
+ <screen>Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
+Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved.
+OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
+Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen>
+
+ <para>Αν μετά από αυτό το σημείο το σύστημα σας συνεχίζει με
+ εκκίνηση από το σκληρό δίσκο, θα πρέπει να πιέσετε
+ <keycombo action="simul"><keycap>L1</keycap><keycap>A</keycap></keycombo>
+ ή
+ <keycombo action="simul"><keycap>Stop</keycap><keycap>A</keycap></keycombo>
+ στο πληκτρολόγιο, ή να στείλετε σήμα <command>BREAK</command>
+ μέσω της σειριακής κονσόλας (χρησιμοποιώντας π.χ. το
+ <command>~#</command> στο &man.tip.1; ή &man.cu.1;) για να βγείτε
+ στην προτροπή της <acronym
+ role="Programmable Read Only Memory">PROM</acronym> η οποία
+ μοιάζει με την παρακάτω:</para>
+
+ <screenco>
+ <areaspec>
+ <area id="bsdinstall-prompt-single" coords="1 5">
+ <area id="bsdinstall-prompt-smp" coords="2 5">
+ </areaspec>
+
+ <screen><prompt>ok </prompt>
+<prompt>ok {0} </prompt></screen>
+
+ <calloutlist>
+ <callout arearefs="bsdinstall-prompt-single">
+ <para>Αυτή η προτροπή φαίνεται σε συστήματα με μόνο μία
+ CPU.</para>
+ </callout>
+
+ <callout arearefs="bsdinstall-prompt-smp">
+ <para>Αυτή η προτροπή φαίνεται σε συστήματα SMP. Το ψηφίο
+ δείχνει τον αριθμό της ενεργής CPU.</para>
+ </callout>
+ </calloutlist>
+ </screenco>
+
+ <para>Στο σημείο αυτό, τοποθετήστε το CDROM στον οδηγό και
+ στην προτροπή της <acronym>PROM</acronym> γράψτε
+ <command>boot cdrom</command>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="bsdinstall-view-probe">
+ <title>Επισκόπηση των Αποτελεσμάτων Ανίχνευσης Συσκευών</title>
+
+ <para>Οι τελευταίες εκατοντάδες γραμμές που πέρασαν από την οθόνη σας
+ αποθηκεύονται και μπορείτε να τις ξαναδείτε.</para>
+
+ <para>Για να δείτε τα περιεχόμενα της προσωρινής μνήμης (buffer) πιέστε
+ <keycap>Scroll Lock</keycap>. Με τον τρόπο αυτό ενεργοποιείται η
+ κύλιση της οθόνης. Μπορείτε έπειτα να χρησιμοποιήσετε τα πλήκτρα
+ με τα βελάκια ή τα <keycap>PageUp</keycap> και
+ <keycap>PageDown</keycap> για να δείτε τα αποτελέσματα. Πιέστε ξανά
+ το <keycap>Scroll Lock</keycap> για να σταματήσετε την κύλιση.</para>
+
+ <para>Κάντε το αυτό τώρα, για να ξαναδείτε το κείμενο που κύλησε εκτός
+ οθόνης καθώς ο πυρήνας εκτελούσε την ανίχνευση συσκευών. Θα δείτε
+ κείμενο αντίστοιχο με το <xref linkend="bsdinstall-dev-probe">,
+ αν και θα υπάρχουν διαφορές ανάλογα με τις συσκευές που διαθέτει ο
+ υπολογιστής σας.</para>
+
+ <figure id="bsdinstall-dev-probe">
+ <title>Τυπικά Αποτελέσματα Ανίχνευσης Συσκευών</title>
+
+ <screen>Copyright (c) 1992-2011 The FreeBSD Project.
+Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
+ The Regents of the University of California. All rights reserved.
+FreeBSD is a registered trademark of The FreeBSD Foundation.
+FreeBSD 9.0-RELEASE #0 r225473M: Sun Sep 11 16:07:30 BST 2011
+ root@psi:/usr/obj/usr/src/sys/GENERIC amd64
+CPU: Intel(R) Core(TM)2 Duo CPU T9400 @ 2.53GHz (2527.05-MHz K8-class CPU)
+ Origin = "GenuineIntel" Id = 0x10676 Family = 6 Model = 17 Stepping = 6
+ Features=0xbfebfbff&lt;FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE&gt;
+ Features2=0x8e3fd&lt;SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1&gt;
+ AMD Features=0x20100800&lt;SYSCALL,NX,LM&gt;
+ AMD Features2=0x1&lt;LAHF&gt;
+ TSC: P-state invariant, performance statistics
+real memory = 3221225472 (3072 MB)
+avail memory = 2926649344 (2791 MB)
+Event timer "LAPIC" quality 400
+ACPI APIC Table: &lt;TOSHIB A0064 &gt;
+FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
+FreeBSD/SMP: 1 package(s) x 2 core(s)
+ cpu0 (BSP): APIC ID: 0
+ cpu1 (AP): APIC ID: 1
+ioapic0: Changing APIC ID to 1
+ioapic0 &lt;Version 2.0&gt; irqs 0-23 on motherboard
+kbd1 at kbdmux0
+acpi0: &lt;TOSHIB A0064&gt; on motherboard
+acpi0: Power Button (fixed)
+acpi0: reservation of 0, a0000 (3) failed
+acpi0: reservation of 100000, b6690000 (3) failed
+Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
+acpi_timer0: &lt;24-bit timer at 3.579545MHz&gt; port 0xd808-0xd80b on acpi0
+cpu0: &lt;ACPI CPU&gt; on acpi0
+ACPI Warning: Incorrect checksum in table [ASF!] - 0xFE, should be 0x9A (20110527/tbutils-282)
+cpu1: &lt;ACPI CPU&gt; on acpi0
+pcib0: &lt;ACPI Host-PCI bridge&gt; port 0xcf8-0xcff on acpi0
+pci0: &lt;ACPI PCI bus&gt; on pcib0
+vgapci0: &lt;VGA-compatible display&gt; port 0xcff8-0xcfff mem 0xff400000-0xff7fffff,0xe0000000-0xefffffff irq 16 at device 2.0 on pci0
+agp0: &lt;Intel GM45 SVGA controller&gt; on vgapci0
+agp0: aperture size is 256M, detected 131068k stolen memory
+vgapci1: &lt;VGA-compatible display&gt; mem 0xffc00000-0xffcfffff at device 2.1 on pci0
+pci0: &lt;simple comms&gt; at device 3.0 (no driver attached)
+em0: &lt;Intel(R) PRO/1000 Network Connection 7.2.3&gt; port 0xcf80-0xcf9f mem 0xff9c0000-0xff9dffff,0xff9fe000-0xff9fefff irq 20 at device 25.0 on pci0
+em0: Using an MSI interrupt
+em0: Ethernet address: 00:1c:7e:6a:ca:b0
+uhci0: &lt;Intel 82801I (ICH9) USB controller&gt; port 0xcf60-0xcf7f irq 16 at device 26.0 on pci0
+usbus0: &lt;Intel 82801I (ICH9) USB controller&gt; on uhci0
+uhci1: &lt;Intel 82801I (ICH9) USB controller&gt; port 0xcf40-0xcf5f irq 21 at device 26.1 on pci0
+usbus1: &lt;Intel 82801I (ICH9) USB controller&gt; on uhci1
+uhci2: &lt;Intel 82801I (ICH9) USB controller&gt; port 0xcf20-0xcf3f irq 19 at device 26.2 on pci0
+usbus2: &lt;Intel 82801I (ICH9) USB controller&gt; on uhci2
+ehci0: &lt;Intel 82801I (ICH9) USB 2.0 controller&gt; mem 0xff9ff800-0xff9ffbff irq 19 at device 26.7 on pci0
+usbus3: EHCI version 1.0
+usbus3: &lt;Intel 82801I (ICH9) USB 2.0 controller&gt; on ehci0
+hdac0: &lt;Intel 82801I High Definition Audio Controller&gt; mem 0xff9f8000-0xff9fbfff irq 22 at device 27.0 on pci0
+pcib1: &lt;ACPI PCI-PCI bridge&gt; irq 17 at device 28.0 on pci0
+pci1: &lt;ACPI PCI bus&gt; on pcib1
+iwn0: &lt;Intel(R) WiFi Link 5100&gt; mem 0xff8fe000-0xff8fffff irq 16 at device 0.0 on pci1
+pcib2: &lt;ACPI PCI-PCI bridge&gt; irq 16 at device 28.1 on pci0
+pci2: &lt;ACPI PCI bus&gt; on pcib2
+pcib3: &lt;ACPI PCI-PCI bridge&gt; irq 18 at device 28.2 on pci0
+pci4: &lt;ACPI PCI bus&gt; on pcib3
+pcib4: &lt;ACPI PCI-PCI bridge&gt; at device 30.0 on pci0
+pci5: &lt;ACPI PCI bus&gt; on pcib4
+cbb0: &lt;RF5C476 PCI-CardBus Bridge&gt; at device 11.0 on pci5
+cardbus0: &lt;CardBus bus&gt; on cbb0
+pccard0: &lt;16-bit PCCard bus&gt; on cbb0
+isab0: &lt;PCI-ISA bridge&gt; at device 31.0 on pci0
+isa0: &lt;ISA bus&gt; on isab0
+ahci0: &lt;Intel ICH9M AHCI SATA controller&gt; port 0x8f58-0x8f5f,0x8f54-0x8f57,0x8f48-0x8f4f,0x8f44-0x8f47,0x8f20-0x8f3f mem 0xff9fd800-0xff9fdfff irq 19 at device 31.2 on pci0
+ahci0: AHCI v1.20 with 4 3Gbps ports, Port Multiplier not supported
+ahcich0: &lt;AHCI channel&gt; at channel 0 on ahci0
+ahcich1: &lt;AHCI channel&gt; at channel 1 on ahci0
+ahcich2: &lt;AHCI channel&gt; at channel 4 on ahci0
+acpi_lid0: &lt;Control Method Lid Switch&gt; on acpi0
+battery0: &lt;ACPI Control Method Battery&gt; on acpi0
+acpi_button0: &lt;Power Button&gt; on acpi0
+acpi_acad0: &lt;AC Adapter&gt; on acpi0
+acpi_toshiba0: &lt;Toshiba HCI Extras&gt; on acpi0
+acpi_tz0: &lt;Thermal Zone&gt; on acpi0
+attimer0: &lt;AT timer&gt; port 0x40-0x43 irq 0 on acpi0
+Timecounter "i8254" frequency 1193182 Hz quality 0
+Event timer "i8254" frequency 1193182 Hz quality 100
+atkbdc0: &lt;Keyboard controller (i8042)&gt; port 0x60,0x64 irq 1 on acpi0
+atkbd0: &lt;AT Keyboard&gt; irq 1 on atkbdc0
+kbd0 at atkbd0
+atkbd0: [GIANT-LOCKED]
+psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0
+psm0: [GIANT-LOCKED]
+psm0: model GlidePoint, device ID 0
+atrtc0: &lt;AT realtime clock&gt; port 0x70-0x71 irq 8 on acpi0
+Event timer "RTC" frequency 32768 Hz quality 0
+hpet0: &lt;High Precision Event Timer&gt; iomem 0xfed00000-0xfed003ff on acpi0
+Timecounter "HPET" frequency 14318180 Hz quality 950
+Event timer "HPET" frequency 14318180 Hz quality 450
+Event timer "HPET1" frequency 14318180 Hz quality 440
+Event timer "HPET2" frequency 14318180 Hz quality 440
+Event timer "HPET3" frequency 14318180 Hz quality 440
+uart0: &lt;16550 or compatible&gt; port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
+sc0: &lt;System console&gt; at flags 0x100 on isa0
+sc0: VGA &lt;16 virtual consoles, flags=0x300&gt;
+vga0: &lt;Generic ISA VGA&gt; at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
+ppc0: cannot reserve I/O port range
+est0: &lt;Enhanced SpeedStep Frequency Control&gt; on cpu0
+p4tcc0: &lt;CPU Frequency Thermal Control&gt; on cpu0
+est1: &lt;Enhanced SpeedStep Frequency Control&gt; on cpu1
+p4tcc1: &lt;CPU Frequency Thermal Control&gt; on cpu1
+Timecounters tick every 1.000 msec
+hdac0: HDA Codec #0: Realtek ALC268
+hdac0: HDA Codec #1: Lucent/Agere Systems (Unknown)
+pcm0: &lt;HDA Realtek ALC268 PCM #0 Analog&gt; at cad 0 nid 1 on hdac0
+pcm1: &lt;HDA Realtek ALC268 PCM #1 Analog&gt; at cad 0 nid 1 on hdac0
+usbus0: 12Mbps Full Speed USB v1.0
+usbus1: 12Mbps Full Speed USB v1.0
+usbus2: 12Mbps Full Speed USB v1.0
+usbus3: 480Mbps High Speed USB v2.0
+ugen0.1: &lt;Intel&gt; at usbus0
+uhub0: &lt;Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1&gt; on usbus0
+ugen1.1: &lt;Intel&gt; at usbus1
+uhub1: &lt;Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1&gt; on usbus1
+ugen2.1: &lt;Intel&gt; at usbus2
+uhub2: &lt;Intel UHCI root HUB, class 9/0, rev 1.00/1.00, addr 1&gt; on usbus2
+ugen3.1: &lt;Intel&gt; at usbus3
+uhub3: &lt;Intel EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1&gt; on usbus3
+uhub0: 2 ports with 2 removable, self powered
+uhub1: 2 ports with 2 removable, self powered
+uhub2: 2 ports with 2 removable, self powered
+uhub3: 6 ports with 6 removable, self powered
+ugen2.2: &lt;vendor 0x0b97&gt; at usbus2
+uhub8: &lt;vendor 0x0b97 product 0x7761, class 9/0, rev 1.10/1.10, addr 2&gt; on usbus2
+ugen1.2: &lt;Microsoft&gt; at usbus1
+ada0 at ahcich0 bus 0 scbus1 target 0 lun 0
+ada0: &lt;Hitachi HTS543225L9SA00 FBEOC43C&gt; ATA-8 SATA 1.x device
+ada0: 150.000MB/s transfers (SATA 1.x, UDMA6, PIO 8192bytes)
+ada0: Command Queueing enabled
+ada0: 238475MB (488397168 512 byte sectors: 16H 63S/T 16383C)
+ada0: Previously was known as ad4
+ums0: &lt;Microsoft Microsoft 3-Button Mouse with IntelliEyeTM, class 0/0, rev 1.10/3.00, addr 2&gt; on usbus1
+SMP: AP CPU #1 Launched!
+cd0 at ahcich1 bus 0 scbus2 target 0 lun 0
+cd0: &lt;TEAC DV-W28S-RT 7.0C&gt; Removable CD-ROM SCSI-0 device
+cd0: 150.000MB/s transfers (SATA 1.x, ums0: 3 buttons and [XYZ] coordinates ID=0
+UDMA2, ATAPI 12bytes, PIO 8192bytes)
+cd0: cd present [1 x 2048 byte records]
+ugen0.2: &lt;Microsoft&gt; at usbus0
+ukbd0: &lt;Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2&gt; on usbus0
+kbd2 at ukbd0
+uhid0: &lt;Microsoft Natural Ergonomic Keyboard 4000, class 0/0, rev 2.00/1.73, addr 2&gt; on usbus0
+Trying to mount root from cd9660:/dev/iso9660/FREEBSD_INSTALL [ro]...</screen>
+ </figure>
+
+ <para>Ελέγξτε προσεκτικά τα αποτελέσματα της ανίχνευσης συσκευών
+ για να βεβαιωθείτε ότι το &os; βρήκε όλες τις συσκευές που
+ αναμένατε. Αν κάποια συσκευή δεν βρέθηκε, δεν θα φαίνεται στην
+ παραπάνω λίστα. Τα <link
+ linkend="kernelconfig-modules">Αρθρώματα Πυρήνα</link>
+ σας επιτρέπουν να προσθέσετε υποστήριξη για συσκευές που δεν
+ υπάρχουν στον πυρήνα <filename>GENERIC</filename>.</para>
+
+ <para>Μετά τη διαδικασία ανίχνευσης συσκευών θα δείτε το
+ <xref linkend="bsdinstall-choose-mode">. Το μέσο εγκατάστασης
+ μπορεί να χρησιμοποιηθεί με τρεις τρόπους: για να εγκαταστήσετε
+ το &os;, ως <quote>live CD</quote> ή απλά για να αποκτήσετε
+ πρόσβαση σε ένα κέλυφος του &os;. Χρησιμοποιήστε τα βελάκια για
+ να κάνετε μια επιλογή και το <keycap>Enter</keycap> για να την
+ επιβεβαιώσετε.</para>
+
+ <figure id="bsdinstall-choose-mode">
+ <title>Επιλογή Τρόπου Λειτουργίας Μέσου Εγκατάστασης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-choose-mode" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε <guibutton>[&nbsp;Install&nbsp;]</guibutton> για να
+ ξεκινήσετε το πρόγραμμα εγκατάστασης.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="using-bsdinstall">
+ <title>Εισαγωγή στο <application>bsdinstall</application></title>
+
+ <para>Το <application>bsdinstall</application> είναι μια εφαρμογή
+ εγκατάστασης για το &os; που βασίζεται σε περιβάλλον κειμένου.
+ Γράφτηκε από τον &a.nwhitehorn; και χρησιμοποιήθηκε πρώτη φορά
+ το 2011 στο &os;&nbsp;9.0.</para>
+
+ <note>
+ <para>Η εφαρμογή <application>pc-sysinstall</application>
+ του &a.kmoore; συμπεριλαμβάνεται με το <ulink
+ url="http://pcbsd.org">PC-BSD</ulink> και μπορεί επίσης να
+ χρησιμοποιηθεί για την <ulink
+ url="http://wiki.pcbsd.org/index.php/Use_PC-BSD_Installer_to_Install_FreeBSD">εγκατάσταση του &os;</ulink>. Αν και μερικές φορές συγχέεται
+ με το <application>bsdinstall</application> οι εφαρμογές αυτές
+ δεν σχετίζονται.</para>
+ </note>
+
+ <para>Το σύστημα μενού του <application>bsdinstall</application>
+ ελέγχεται μέσω των πλήκτρων με τα βελάκια και τα πλήκτρα
+ <keycap>Enter</keycap>, <keycap>Tab</keycap>,
+ <keycap>Space</keycap> και μερικά ακόμα.</para>
+
+ <sect2 id="bsdinstall-keymap">
+ <title>Επιλογές στο Μενού Keymap</title>
+
+ <para>Ανάλογα με το είδος της κονσόλας που χρησιμοποιείτε, το
+ <application>bsdinstall</application> ίσως σας ρωτήσει
+ αν επιθυμείτε να επιλέξετε μια διάταξη πληκτρολογίου διαφορετική από
+ την προεπιλεγμένη.</para>
+
+ <figure id="bsdinstall-keymap-select-default">
+ <title>Επιλογή Διάταξης Πληκτρολογίου</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-keymap-select-default" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αν επιλέξετε <guibutton>[&nbsp;YES&nbsp;]</guibutton> θα
+ εμφανιστεί η οθόνη επιλογής που φαίνεται παρακάτω. Σε διαφορετική
+ περίπτωση, η οθόνη αυτή δεν θα εμφανιστεί και θα χρησιμοποιηθεί
+ η προεπιλεγμένη διάταξη πληκτρολογίου.</para>
+
+ <figure id="bsdinstall-config-keymap">
+ <title>Μενού Επιλογής Διάταξης Πληκτρολογίου</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-config-keymap" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε την διάταξη πληκτρολογίου που είναι πιο κοντά στο
+ πληκτρολόγιο που διαθέτετε, χρησιμοποιώντας τα πάνω και κάτω βελάκια
+ και επιβεβαιώνοντας με το <keycap>Enter</keycap>.</para>
+
+ <note>
+ <para>Αν πιέσετε <keycap>Esc</keycap> θα χρησιμοποιηθεί η
+ προεπιλεγμένη διάταξη. Αν η διάταξη του τρέχοντος πληκτρολογίου
+ δεν είναι προφανής, μια ασφαλής επιλογή είναι το
+ <guimenuitem>United States of America ISO-8859-1</guimenuitem>.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="bsdinstall-hostname">
+ <title>Καθορισμός Ονόματος Υπολογιστή (hostname)</title>
+
+ <para>Στο επόμενο βήμα, το <application>bsdinstall</application>
+ θα σας ρωτήσει για το όνομα υπολογιστή (hostname) το οποίο θα δοθεί
+ στο νέο σύστημα.</para>
+
+ <figure id="bsdinstall-config-hostname">
+ <title>Καθορισμός Ονόματος Υπολογιστή</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-config-hostname" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το όνομα που θα δώσετε πρέπει να περιλαμβάνει και τον τομέα
+ (fully-qualified) όπως για παράδειγμα
+ <hostid role="fqdn">machine3.example.com</hostid></para>
+ </sect2>
+
+ <sect2 id="bsdinstall-components">
+ <title>Επιλογή Στοιχείων Εγκατάστασης</title>
+
+ <para>Στο επόμενο βήμα, το <application>bsdinstall</application>
+ θα σας καλέσει να επιλέξετε ποια προαιρετικά στοιχεία του
+ λειτουργικού επιθυμείτε να εγκαταστήσετε.</para>
+
+ <figure id="bsdinstall-config-components">
+ <title>Επιλογή Στοιχείων Εγκατάστασης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-config-components" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Η επιλογή των στοιχείων εγκατάστασης εξαρτάται κυρίως από την
+ χρήση που θα έχει το σύστημα και το διαθέσιμο ελεύθερο χώρο στο
+ δίσκο. Ο πυρήνας και τα βασικά προγράμματα του &os; (γνωστά και ως
+ <quote>base system</quote> ή βασικό σύστημα) εγκαθίστανται
+ υποχρεωτικά.</para>
+
+ <para>Ανάλογα με το είδος της εγκατάστασης, κάποια από τα παρακάτω
+ στοιχεία μπορεί να μην εμφανιστούν.</para>
+
+ <itemizedlist>
+ <title>Προαιρετικά Στοιχεία</title>
+
+ <listitem>
+ <para><literal>doc</literal> - Επιπρόσθετη τεκμηρίωση, κυρίως
+ ιστορικής σημασίας. Η τεκμηρίωση που παρέχεται από την
+ Ομάδα Τεκμηρίωσης του &os; εγκαθίσταται χωριστά σε επόμενο
+ στάδιο.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>games</literal> - Κάποια παραδοσιακά BSD παιχνίδια
+ που περιλαμβάνουν τα <application>fortune</application>,
+ <application>rot13</application> και άλλα.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>lib32</literal> - Βιβλιοθήκες συμβατότητας για
+ εκτέλεση εφαρμογών 32-bit σε 64-bit εκδόσεις του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>ports</literal> - Η Συλλογή των Ports
+ του &os;.</para>
+
+ <para>Η Συλλογή των Ports αποτελεί ένα εύκολο και βολικό τρόπο
+ εγκατάστασης λογισμικού. Η Συλλογή των Ports δεν περιέχει
+ τον πηγαίο κώδικα που απαιτείται για τη μεταγλώττιση του
+ λογισμικού. Πρόκειται στην πραγματικότητα για μια συλλογή
+ αρχείων που αυτοματοποιεί τη μεταφόρτωση, μεταγλώττιση και
+ εγκατάσταση λογισμικού τρίτων κατασκευαστών. Το
+ <xref linkend="ports"> αναλύει τον τρόπο χρήσης της Συλλογής
+ των Ports.</para>
+
+ <warning>
+ <para>Το πρόγραμμα εγκατάστασης δεν ελέγχει για να δει αν
+ διαθέτετε αρκετό ελεύθερο χώρο στο δίσκο. Επιλέξτε αυτό το
+ στοιχείο μόνο αν έχετε αρκετό χώρο. Από το &os;&nbsp;9.0 και
+ μετά, η Συλλογή των Ports καταλαμβάνει περίπου &ports.size;
+ χώρο στο δίσκο. Μπορείτε με βεβαιότητα να θεωρήσετε ότι ο
+ χώρος αυτός θα είναι ακόμα μεγαλύτερος στις νεώτερες εκδόσεις
+ του &os;.</para>
+ </warning>
+ </listitem>
+
+ <listitem>
+ <para><literal>src</literal> - Ο Πηγαίος Κώδικας του Συστήματος.</para>
+
+ <para>Το &os; έρχεται με πλήρη πηγαίο κώδικα, τόσο για τον πυρήνα
+ όσο και για τα βασικά προγράμματα. Αν και ο πηγαίος κώδικας δεν
+ απαιτείται για την πλειονότητα των εφαρμογών, ίσως να τον
+ χρειαστείτε για τη μεταγλώττιση συγκεκριμένων προγραμμάτων που
+ παρέχονται ως πηγαίος κώδικας (π.χ. οδηγούς συσκευών ή αρθρώματα
+ πυρήνα), ή για εργασίες ανάπτυξης του ίδιου του &os;.</para>
+
+ <para>Το πλήρες δέντρο του πηγαίου κώδικα καταλαμβάνει 1&nbsp;GB
+ χώρου στο δίσκο, ενώ μια πλήρης μεταγλώττιση όλου του &os;
+ απαιτεί επιπλέον 5&nbsp;GB χώρου.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="bsdinstall-netinstall">
+ <title>Εγκατάσταση από το Δίκτυο</title>
+
+ <para>Το μέσο εγκατάστασης <emphasis>bootonly</emphasis>
+ δεν διαθέτει αντίγραφα των αρχείων εγκατάστασης. Όταν
+ χρησιμοποιείτε την μέθοδο <emphasis>bootonly</emphasis>, τα
+ αρχεία μεταφορτώνονται από το δίκτυο κατά απαίτηση.</para>
+
+ <figure id="bsdinstall-netinstall-notify">
+ <title>Εγκατάσταση από το Δίκτυο</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-netinstall-files" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μετά την ρύθμιση των παραμέτρων δικτύου όπως φαίνεται στο
+ <xref linkend="bsdinstall-config-network-dev">, γίνεται η επιλογή
+ ενός mirror site. Τα mirror sites διαθέτουν αντίγραφα των αρχείων
+ του &os;. Επιλέξτε ένα mirror site το οποίο βρίσκεται όσο το δυνατόν
+ πιο κοντά στην περιοχή σας. Με τον τρόπο αυτό, η μεταφόρτωση των
+ αρχείων θα είναι ταχύτερη και θα μειωθεί ο χρόνος εγκατάστασης.</para>
+
+ <figure id="bsdinstall-netinstall-mirror">
+ <title>Επιλογή Mirror</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-netinstall-mirrorselect" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Η εγκατάσταση θα συνεχιστεί με τον ίδιο τρόπο όπως και αν τα
+ αρχεία ήταν διαθέσιμα τοπικά.</para>
+ </sect1>
+
+ <sect1 id="bsdinstall-partitioning">
+ <title>Εκχώρηση Χώρου στο Δίσκο</title>
+
+ <para>Υπάρχουν τρεις τρόποι να εκχωρήσετε χώρο για το &os;. Με τη
+ μέθοδο <emphasis>Guided (καθοδηγούμενη)</emphasis>, οι κατατμήσεις
+ δημιουργούνται αυτόματα, ενώ με τη μέθοδο
+ <emphasis>Manual (χειροκίνητη)</emphasis> οι προχωρημένοι χρήστες
+ μπορούν να δημιουργήσουν προσαρμοσμένες κατατμήσεις. Τέλος, υπάρχει
+ η επιλογή να εκκινήσετε ένα κέλυφος και να δημιουργήσετε τις
+ κατατμήσεις με απευθείας χρήση προγραμμάτων της γραμμής εντολών όπως
+ &man.gpart.8;, &man.fdisk.8;, και &man.bsdlabel.8;.</para>
+ <!-- WB: mention ZFS here? -->
+
+ <figure id="bsdinstall-part-guided-manual">
+ <title>Επιλογή Guided ή Manual Partitioning</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-part-guided-manual" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <sect2 id="bsdinstall-part-guided">
+ <title>Καθοδηγούμενη (Guided) Κατάτμηση</title>
+
+ <para>Αν έχετε συνδέσει πολλαπλούς δίσκους, επιλέξτε αυτόν στον
+ οποίο θα εγκαταστήσετε το &os;.</para>
+
+ <figure id="bsdinstall-part-guided-disk">
+ <title>Επιλογή από Πολλαπλούς Δίσκους</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-part-guided-disk" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μπορείτε να εκχωρήσετε είτε ολόκληρο το δίσκο, είτε ένα μέρος του
+ στο &os;. Αν επιλέξετε
+ <guibutton>[&nbsp;Entire&nbsp;Disk&nbsp;]</guibutton>, θα
+ δημιουργηθούν μια κατάλληλη διάταξη κατατμήσεων ώστε να
+ χρησιμοποιηθεί ολόκληρος ο δίσκος. Αν επιλέξετε
+ <guibutton>[&nbsp;Partition&nbsp;]</guibutton>, θα
+ δημιουργηθεί μια διάταξη που θα καταλαμβάνει τον ελεύθερο χώρο
+ του δίσκου.</para>
+
+ <figure id="bsdinstall-part-entire-part">
+ <title>Επιλογή Ολόκληρου Δίσκου ή Κατάτμησης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-part-entire-part" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Ελέγξτε προσεκτικά τη διάταξη των κατατμήσεων που δημιουργήθηκε.
+ Αν βρείτε κάποιο λάθος, επιλέξτε
+ <guibutton>[&nbsp;Revert&nbsp;]</guibutton> για να επαναφέρετε
+ τις προηγούμενες κατατμήσεις ή
+ <guibutton>[&nbsp;Auto&nbsp;]</guibutton> για να δημιουργήσετε
+ τις κατατμήσεις που προτείνονται αυτόματα από το &os;.
+ Μπορείτε να δημιουργήσετε, να τροποποιήσετε και να διαγράψετε
+ κατατμήσεις χειροκίνητα. Όταν οι κατατμήσεις είναι οι σωστές,
+ επιλέξτε <guibutton>[&nbsp;Finish&nbsp;]</guibutton> για να
+ συνεχίσετε με την εγκατάσταση.</para>
+
+ <figure id="bsdinstall-part-review">
+ <title>Επισκόπηση Κατατμήσεων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-part-review" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect2>
+
+ <sect2 id="bsdinstall-part-manual">
+ <title>Χειροκίνητη Δημιουργία Κατατμήσεων </title>
+
+ <para>Επιλέγοντας χειροκίνητη δημιουργία κατατμήσεων, θα μεταφερθείτε
+ απευθείας στον επεξεργαστή κατατμήσεων.</para>
+
+ <figure id="bsdinstall-part-manual-create">
+ <title>Χειροκίνητη Δημιουργία Κατατμήσεων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-part-manual-create" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέγοντας ένα οδηγό (<devicename>ada0</devicename> στο
+ παράδειγμα μας) και το πλήκτρο
+ <guibutton>[&nbsp;Create&nbsp;]</guibutton> θα δείτε ένα μενού
+ για την επιλογή του σχήματος κατατμήσεων (<firstterm>partitioning
+ scheme</firstterm>).</para>
+
+ <figure id="bsdinstall-part-manual-partscheme">
+ <title>Χειροκίνητη Δημιουργία Κατατμήσεων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-part-manual-partscheme" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το σύστημα κατατμήσεων <acronym>GPT</acronym> είναι συνήθως το
+ καταλληλότερο για τα περισσότερους PC-συμβατούς υπολογιστές.
+ Παλαιότερα λειτουργικά συστήματα δεν είναι συμβατά με τη μέθοδο
+ <acronym>GPT</acronym> και χρειάζονται κατατμήσεις τύπου
+ <acronym>MBR</acronym>. Τα υπόλοιπα είδη κατατμήσεων
+ χρησιμοποιούνται σε παλιά ή μη-συνηθισμένα συστήματα
+ υπολογιστών.</para>
+
+ <table frame="all" rowsep="1" pgwide="1">
+ <title>Κατηγορίες Κατατμήσεων</title>
+
+ <tgroup cols="2" align="left">
+ <thead>
+ <row>
+ <entry align="left">Συντομογραφία</entry>
+ <entry align="left">Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>APM</entry>
+ <entry><ulink url="http://support.apple.com/kb/TA21692">Apple
+ Partition Map, χρησιμοποιείται στο &powerpc; &macintosh;.</ulink></entry>
+ </row>
+
+ <row>
+ <entry>BSD</entry>
+ <entry>Κατατμήσεις BSD χωρίς MBR, ορισμένες φορές καλούνται και
+ "επικίνδυνα αφοσιωμένη κατάσταση". Δείτε το
+ &man.bsdlabel.8;.</entry>
+ </row>
+
+ <row>
+ <entry>GPT</entry>
+ <entry><ulink
+ url="http://en.wikipedia.org/wiki/GUID_Partition_Table">Πίνακας Κατατμήσεων GUID.</ulink></entry>
+ </row>
+
+ <row>
+ <entry>MBR</entry>
+ <entry><ulink
+ url="http://en.wikipedia.org/wiki/Master_boot_record">Master
+ Boot Record.</ulink></entry>
+ </row>
+
+ <row>
+ <entry>PC98</entry>
+ <entry><ulink url="http://en.wikipedia.org/wiki/Pc9801">
+ Παραλλαγή του MBR που χρησιμοποιείται σε υπολογιστές
+ NEC PC-98.</ulink></entry>
+ </row>
+
+ <row>
+ <entry>VTOC8</entry>
+ <entry>Volume Table Of Contents, χρησιμοποιείται στα Sun
+ SPARC64 και UltraSPARC.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Μετά τη δημιουργία του σχήματος κατατμήσεων, αν επιλέξετε ξανά
+ <guibutton>[&nbsp;Create&nbsp;]</guibutton> θα δημιουργήσετε νέες
+ κατατμήσεις.</para>
+
+ <figure id="bsdinstall-part-manual-addpart">
+ <title>Χειροκίνητη Δημιουργία Κατατμήσεων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-part-manual-addpart" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Η τυποποιημένη εγκατάσταση &os; με χρήση <acronym>GPT</acronym>
+ δημιουργεί τουλάχιστον τρεις κατατμήσεις:</para>
+
+ <itemizedlist>
+ <title>Τυποποιημένες &os; <acronym>GPT</acronym> Κατατμήσεις</title>
+
+ <listitem>
+ <para><literal>freebsd-boot</literal> - Ο κώδικας εκκίνησης του
+ &os;. Η κατάτμηση αυτή πρέπει να είναι η πρώτη στο
+ δίσκο.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>freebsd-ufs</literal> - Σύστημα αρχείων &os;
+ UFS.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>freebsd-swap</literal> - Χώρος swap &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μπορείτε να δημιουργήσετε πολλαπλά συστήματα αρχείων.
+ Κάποιοι χρήστες προτιμούν τη δημιουργία των παραδοσιακών
+ κατατμήσεων με χωριστά συστήματα αρχείων για τα
+ <filename>/</filename>, <filename>/var</filename>, και
+ <filename>/usr</filename>.</para>
+
+ <para>Δείτε το &man.gpart.8; για πλήρη λίστα των διαθέσιμων
+ τύπων κατατμήσεων <acronym>GPT</acronym>.</para>
+
+ <para>Μπορείτε να εισάγετε το μέγεθος με τη βοήθεια κοινών
+ συντομεύσεων: <emphasis>K</emphasis> για kilobytes,
+ <emphasis>M</emphasis> για megabytes, ή <emphasis>G</emphasis> για
+ gigabytes.</para>
+
+ <tip>
+ <para>Η καλύτερη απόδοση επιτυγχάνεται με ευθυγράμμιση των τομέων
+ του δίσκου (sector alignment). Η σωστή ευθυγράμμιση επιτυγχάνεται
+ με τη δημιουργία κατατμήσεων με μεγέθη πολλαπλάσια των 4K bytes
+ σε οδηγούς που χρησιμοποιούν τομείς των 512 bytes ή 4K-byte.
+ Σε γενικές γραμμές, η χρήση κατατμήσεων με μεγέθη πολλαπλάσια του
+ 1Μ ή ακόμα και 1G είναι ο ευκολότερος τρόπος να επιβεβαιώσουμε
+ ότι κάθε κατάτμηση ξεκινά σε ζυγό πολλαπλάσιο των 4Κ.
+ Μια εξαίρεση: την παρούσα στιγμή η κατάτμηση
+ <emphasis>freebsd-boot</emphasis> δεν μπορεί να είναι μεγαλύτερη
+ των 512Κ λόγων περιορισμών του κώδικα εκκίνησης.</para>
+ </tip>
+
+ <para>Σε κάθε κατάτμηση που περιέχει σύστημα αρχείων, χρειάζεται
+ ένα σημείο προσάρτησης. Αν χρησιμοποιηθεί μόνο μια κατάτμηση
+ UFS, το σημείο προσάρτησης θα είναι η <filename>/</filename>.</para>
+
+ <para>θα σας ζητηθεί επίσης μια ετικέτα
+ (<firstterm>label</firstterm>). Η ετικέτα είναι ένα όνομα το
+ οποίο δίνεται σε μια κατάτμηση. Το όνομα ενός δίσκου ή οι αριθμοί
+ που περιγράφουν τις κατατμήσεις μπορεί να αλλάξουν αν
+ ο δίσκος συνδεθεί σε άλλη θύρα ή ελεγκτή, αλλά
+ η ετικέτα του παραμένει σταθερή. Με χρήση της ετικέτας σε αρχεία
+ όπως το <filename>/etc/fstab</filename> το σύστημα γίνεται πιο
+ ανεκτικό σε αλλαγές του υλικού. Οι ετικέτες GPT εμφανίζονται στον
+ κατάλογο <filename class="directory">/dev/gpt/</filename> όταν
+ γίνεται η προσάρτηση της συσκευής. Σε άλλα είδη κατατμήσεων υπάρχουν
+ διαφορετικές δυνατότητες όσο αφορά τις ετικέτες, οι οποίες
+ εμφανίζονται σε διαφορετικούς υποκαταλόγους στο
+ <filename class="directory">/dev/</filename>.</para>
+
+ <tip>
+ <para>Χρησιμοποιήστε μοναδικές ετικέτες σε κάθε σύστημα αρχείων
+ για να αποφύγετε συγκρούσεις που μπορεί να προκληθούν από όμοια
+ ονόματα. Σε κάθε ετικέτα μπορείτε να συμπεριλάβετε μερικά
+ γράμματα από το όνομα του υπολογιστή ή τη θέση του, ή ακόμα και
+ τη χρήση του. Θα μπορούσατε για παράδειγμα να ονομάσετε τον
+ κεντρικό κατάλογο <quote>labroot</quote> ή
+ <quote>rootfs-lab</quote> σε ένα υπολογιστή που ανήκει σε ένα
+ εργαστήριο.</para>
+ </tip>
+
+ <para>Μετά τη δημιουργία των προσαρμοσμένων κατατμήσεων, επιλέξτε
+ <guibutton>[&nbsp;Finish&nbsp;]</guibutton> για να συνεχίσετε με την
+ εγκατάσταση.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="bsdinstall-final-warning">
+ <title>Επιβεβαίωση της Εγκατάστασης</title>
+
+ <para>Σε αυτό το σημείο έχετε την τελευταία ευκαιρία να εγκαταλείψετε
+ την εγκατάσταση χωρίς να γίνουν αλλαγές στο σκληρό δίσκο σας.</para>
+
+ <figure id="bsdinstall-final-confirmation">
+ <title>Τελική Επιβεβαίωση</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-final-confirmation" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε <guibutton>[&nbsp;Commit&nbsp;]</guibutton> και πιέστε
+ <keycap>Enter</keycap> για να συνεχίσετε. Αν χρειάζεται να
+ κάνετε αλλαγές, επιλέξτε <guibutton>[&nbsp;Back&nbsp;]</guibutton>
+ για να επιστρέψετε στον επεξεργαστή κατατμήσεων. Με το πλήκτρο
+ <guibutton>[&nbsp;Revert &amp; Exit&nbsp;]</guibutton> μπορείτε
+ να εγκαταλείψετε το πρόγραμμα εγκατάστασης χωρίς να γίνουν αλλαγές στο
+ σκληρό σας δίσκο.</para>
+
+ <para>Ο χρόνος εγκατάστασης ποικίλει ανάλογα με τις διανομές και τα
+ στοιχεία εγκατάστασης που έχετε επιλέξει, το μέσο εγκατάστασης και
+ την ταχύτητα του υπολογιστή. Θα δείτε μια σειρά από μηνύματα σχετικά
+ με την πρόοδο της διαδικασίας.</para>
+
+ <para>Αρχικά, το πρόγραμμα εγκατάστασης θα γράψει τις κατατμήσεις στο
+ δίσκο και θα εκτελέσει κατάλληλες εντολές <command>newfs</command>
+ για να δημιουργήσει τα ανάλογα συστήματα αρχείων.</para>
+
+ <para>Αν κάνετε εγκατάσταση μέσω δικτύου, το
+ <application>bsdinstall</application> θα προχωρήσει μεταφορτώνοντας
+ τα απαραίτητα αρχεία.</para>
+<!-- XXXGA: What does it do if fetch fails? -->
+
+ <figure id="bsdinstall-distfile-fetching">
+ <title>Μεταφόρτωση Αρχείων Εγκατάστασης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-distfile-fetching" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Στη συνέχεια, θα γίνει έλεγχος ακεραιότητας των αρχείων
+ εγκατάστασης για να επιβεβαιωθεί ότι δεν έχουν αλλοιωθεί κατά
+ τη μεταφόρτωση ή κατά την ανάγνωση από το μέσο εγκατάστασης.</para>
+
+ <figure id="bsdinstall-distfile-verify">
+ <title>Επαλήθευση Αρχείων Εγκατάστασης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-distfile-verifying" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Στο τελευταίο βήμα, τα επιβεβαιωμένα αρχεία εγκατάστασης θα
+ εξαχθούν και θα γραφούν στο σκληρό δίσκο.</para>
+
+ <figure id="bsdinstall-distfile-extract">
+ <title>Εξαγωγή Αρχείων Εγκατάστασης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-distfile-extracting" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Με το τέλος της εξαγωγής όλων των αρχείων εγκατάστασης, το
+ <application>bsdinstall</application> θα εισέλθει στη διαδικασία
+ ρυθμίσεων μετά την εγκατάσταση (δείτε <xref
+ linkend="bsdinstall-post">).</para>
+ </sect1>
+
+ <sect1 id="bsdinstall-post">
+ <title>Μετά την Εγκατάσταση</title>
+
+ <para>Μετά από μια επιτυχημένη εγκατάσταση του &os;, ακολουθεί μια
+ σειρά ρυθμίσεων. Μπορείτε να επαναλάβετε οποιαδήποτε ρύθμιση
+ αν εισέλθετε στην αντίστοιχη επιλογή στο τελικό μενού πριν
+ επανεκκινήσετε στο νέο-εγκατεστημένο σας &os; σύστημα.</para>
+
+ <sect2 id="bsdinstall-post-root">
+ <title>Ρύθμιση του Κωδικού του <username>root</username></title>
+
+ <para>Θα πρέπει να ορίσετε ένα κωδικό πρόσβασης για το χρήστη
+ <username>root</username>. Παρατηρήστε ότι δεν φαίνονται τα
+ γράμματα που πληκτρολογείτε καθώς εισάγετε τον κωδικό. Μετά την
+ εισαγωγή του κωδικού, θα πρέπει να τον εισάγετε ακόμα μια φορά.
+ Με τον τρόπο αυτό εξασφαλίζεται ότι δεν έχει γίνει κάποιο λάθος
+ κατά την πληκτρολόγηση.</para>
+
+ <figure id="bsdinstall-post-set-root-passwd">
+ <title>Ρύθμιση του Κωδικού του <username>root</username></title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-post-root-passwd" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Η εγκατάσταση συνεχίζεται μετά την επιτυχή εισαγωγή του
+ κωδικού.</para>
+ </sect2>
+
+ <sect2 id="bsdinstall-config-network-dev">
+ <title>Ρύθμιση Καρτών Δικτύου</title>
+
+ <note>
+ <para>Η ρύθμιση του δικτύου παραλείπεται αν έχει ήδη πραγματοποιηθεί
+ στα πλαίσια μιας εγκατάστασης <emphasis>bootonly</emphasis>.</para>
+ </note>
+
+ <para>Θα δείτε μια λίστα με όλες τις διεπαφές δικτύου που
+ ανιχνεύθηκαν στον υπολογιστή σας. Επιλέξτε αυτή που επιθυμείτε
+ να ρυθμίσετε.</para>
+
+ <figure id="bsdinstall-configure-net-interface">
+ <title>Επιλογή μιας Διεπαφής Δικτύου</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <sect3 id="bsdinstall-configure-net-wireless">
+ <title>Ρύθμιση Ασύρματης Κάρτας Δικτύου</title>
+
+ <para>Αν επιλέξετε να ρυθμίσετε μια ασύρματη διεπαφή δικτύου, θα
+ πρέπει να ρυθμίσετε τις παραμέτρους αναγνώρισης και ασφάλειας
+ για να συνδεθείτε στο δίκτυο.</para>
+
+ <para>Τα ασύρματα δίκτυα αναγνωρίζονται από το Αναγνωριστικό
+ Υπηρεσίας ή Service Set Identifier (<acronym
+ role="Service Set Identifier">SSID</acronym>). Το <acronym
+ role="Service Set Identifier">SSID</acronym> είναι ένα σύντομο
+ όνομα που αποδίδεται σε κάθε ασύρματο δίκτυο.</para>
+
+ <para>Τα περισσότερα ασύρματα δίκτυα κρυπτογραφούν τα δεδομένα
+ που μεταδίδονται για να προστατεύσουν τις πληροφορίες από
+ μη εξουσιοδοτημένη χρήση. Συνίσταται να χρησιμοποιήσετε
+ κρυπτογράφηση <acronym
+ role="Wi-Fi Protected Access II">WPA2</acronym>. Παλαιότερες
+ μέθοδοι κρυπτογράφησης όπως το <acronym
+ role="Wired Equivalent Privacy">WEP</acronym> προσφέρουν
+ ελάχιστη ασφάλεια.</para>
+
+ <para>Το πρώτο βήμα για να συνδεθείτε σε ένα ασύρματο δίκτυο είναι
+ να σαρώσετε για Σημεία Ασύρματης Πρόσβασης (Access Points).</para>
+
+ <figure id="bsdinstall-wireless-scan">
+ <title>Σάρωση για Access Points</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-wireless-scan" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Τα <acronym role="Service Set Identifiers">SSIDs</acronym> που
+ θα βρείτε κατά τη διάρκεια της σάρωσης συνοδεύονται από τα
+ είδη κρυπτογράφησης που διατίθενται για κάθε δίκτυο. Αν δεν
+ βλέπετε το <acronym role="Service Set Identifier">SSID</acronym>
+ που επιθυμείτε στη λίστα, επιλέξτε
+ <guibutton>[&nbsp;Rescan&nbsp;]</guibutton> για να εκτελέσετε
+ τη σάρωση ξανά. Αν εξακολουθείτε να μη βλέπετε το επιθυμητό
+ δίκτυο, ελέγξτε την κεραία για τυχόν προβλήματα ή μετακινήστε
+ τον υπολογιστή πιο κοντά στο σημείο πρόσβασης. Να εκτελείτε νέα
+ σάρωση μετά από κάθε αλλαγή.</para>
+
+ <figure id="bsdinstall-wireless-accesspoints">
+ <title>Επιλογή Ασύρματου Δικτύου</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-wireless-accesspoints" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μετά την επιλογή του ασύρματου δικτύου, θα πρέπει να εισάγετε
+ τις πληροφορίες που σχετίζονται με την κρυπτογράφηση. Σε δίκτυα
+ <acronym role="Wi-Fi Protected Access II">WPA2</acronym>
+ χρειάζεται να δώσετε μόνο ένα κωδικό πρόσβασης (γνωστό ως
+ Pre-Shared Key ή <acronym role="Pre-Shared Key">PSK</acronym>).
+ Για λόγους ασφαλείας, οι χαρακτήρες που πληκτρολογείτε στο πεδίο
+ εμφανίζονται ως αστερίσκοι.</para>
+
+ <figure id="bsdinstall-wireless-wpa2">
+ <title>Ρύθμιση WPA2</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-wireless-wpa2setup" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μετά την επιλογή του ασύρματου δικτύου και την εισαγωγή των
+ πληροφοριών σύνδεσης, η εγκατάσταση συνεχίζεται με τη ρύθμιση
+ των υπόλοιπων παραμέτρων του δικτύου.</para>
+ </sect3>
+
+ <sect3 id="bsdinstall-ipv4">
+ <title>Ρύθμιση Δικτύου IPv4</title>
+
+ <para>Επιλέξτε αν θα χρησιμοποιηθεί δικτύωση IPv4. Πρόκειται
+ για το πιο συνηθισμένο είδος σύνδεσης.</para>
+
+ <figure id="bsdinstall-configure-net-ipv4">
+ <title>Επιλογή Δικτύωσης IPv4</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv4" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Υπάρχουν δύο μέθοδοι ρύθμισης του IPv4.
+ Μέσω του <firstterm><acronym role="Dynamic Host Configuration Protocol">DHCP</acronym>
+ </firstterm> η ρύθμιση της διεπαφής γίνεται αυτόματα. Αυτή είναι
+ και η συνιστώμενη μέθοδος. Η ρύθμιση <firstterm>Static</firstterm>
+ απαιτεί χειροκίνητη εισαγωγή πληροφοριών δικτύου.</para>
+
+ <note>
+ <para>Μη βάλετε τυχαίες ρυθμίσεις δικτύου, καθώς δεν θα
+ λειτουργήσουν. Θα πρέπει να λάβετε τις πληροφορίες που
+ αναφέρονται στο <xref
+ linkend="bsdinstall-collect-network-information"> από τον
+ διαχειριστή ή τον παροχέα του δικτύου σας.</para>
+ </note>
+
+ <sect4 id="bsdinstall-net-ipv4-dhcp-config">
+ <title>Ρύθμιση Δικτύου IPv4 μέσω DHCP</title>
+
+ <para>Αν διαθέτετε εξυπηρετητή DHCP, επιλέξτε
+ <guibutton>[&nbsp;Yes&nbsp;]</guibutton> για να ρυθμίσετε
+ αυτόματα την διεπαφή δικτύου.</para>
+
+ <figure id="bsdinstall-net-ipv4-dhcp">
+ <title>Επιλέξτε Ρύθμιση IPv4 μέσω DHCP</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv4-dhcp" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect4>
+
+ <sect4 id="bsdinstall-net-ipv4-static-config">
+ <title>Στατική Ρύθμιση Δικτύου IPv4</title>
+
+ <para>Η στατική ρύθμιση της διεπαφής δικτύου, απαιτεί να εισάγετε
+ κάποιες πληροφορίες σχετικά με το IPv4.</para>
+
+ <figure id="bsdinstall-net-ipv4-static">
+ <title>Στατική Ρύθμιση IPv4</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv4-static" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>IP Address</literal> - Η διεύθυνση IP που
+ θα εισάγετε χειροκίνητα σε αυτό τον υπολογιστή.
+ Η διεύθυνση αυτή πρέπει να είναι μοναδική και να μην
+ χρησιμοποιείται από οποιοδήποτε άλλο μηχάνημα στο
+ τοπικό σας δίκτυο.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Subnet Mask</literal> - Η μάσκα υποδικτύου
+ που χρησιμοποιεί το τοπικό σας δίκτυο. Τυπικά αυτή είναι
+ <literal>255.255.255.0</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Default Router</literal> - Η διεύθυνση IP
+ του προεπιλεγμένου δρομολογητή του δικτύου σας. Συνήθως
+ είναι η διεύθυνση του δρομολογητή ή άλλου δικτυακού
+ εξοπλισμού που συνδέει το τοπικό σας δίκτυο με το
+ Internet. Θα τη δείτε επίσης να αναφέρετε ως
+ <emphasis>default gateway (προεπιλεγμένη πύλη)</emphasis>.</para>
+ </listitem>
+ </itemizedlist>
+ </sect4>
+ </sect3>
+
+ <sect3 id="bsdinstall-ipv6">
+ <title>Ρύθμιση Δικτύου IPv6</title>
+
+ <para>Το IPv6 είναι μια νέα μέθοδος ρύθμισης δικτύου. Αν το δίκτυο
+ σας διαθέτει IPv6 και επιθυμείτε να το ρυθμίσετε, πιέστε
+ <guibutton>[&nbsp;Yes&nbsp;]</guibutton> για να το
+ επιλέξετε.</para>
+
+ <figure id="bsdinstall-net-ipv6">
+ <title>Επιλογή Δικτύωσης IPv6</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv6" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το IPv6 διαθέτει επίσης δύο μεθόδους ρύθμισης. Το
+ <firstterm><acronym role="StateLess Address AutoConfiguration">SLAAC</acronym>
+ </firstterm>, ή <emphasis>StateLess Address AutoConfiguration</emphasis>,
+ ρυθμίζει αυτόματα τις παραμέτρους του δικτύου σας. Η ρύθμιση
+ <firstterm>Static</firstterm> απαιτεί να κάνετε τις αντίστοιχες
+ ρυθμίσεις χειροκίνητα.</para>
+
+ <sect4 id="bsdinstall-net-ipv6-slaac-config">
+ <title>IPv6 Stateless Address Autoconfiguration</title>
+
+ <para>Το <acronym>SLAAC</acronym> επιτρέπει σε μια συσκευή ενός
+ δικτύου IPv6 να ζητήσει πληροφορίες αυτόματης ρύθμισης από ένα
+ τοπικό δρομολογητή. Δείτε το
+ <ulink url="http://tools.ietf.org/html/rfc4862">RFC4862</ulink>
+ για περισσότερες πληροφορίες.</para>
+
+ <figure id="bsdinstall-net-ipv6-slaac">
+ <title>Επιλέξτε Ρύθμιση IPv6 SLAAC</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-slaac" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect4>
+
+ <sect4 id="bsdinstall-net-ipv6-static-config">
+ <title>Στατική Ρύθμιση Δικτύου IPv6</title>
+
+ <para>Η στατική ρύθμιση της διεπαφής δικτύου στο IPv6, απαιτεί
+ την χειροκίνητη εισαγωγή κάποιων ρυθμίσεων.</para>
+
+ <figure id="bsdinstall-net-ipv6-static">
+ <title>Στατική Ρύθμιση IPv6</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-interface-ipv6-static" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>IPv6 Address</literal> - Η διεύθυνση
+ <acronym>IP</acronym> που θα εισάγετε χειροκίνητα σε αυτό
+ τον υπολογιστή. Η διεύθυνση αυτή πρέπει να είναι μοναδική
+ και να μην χρησιμοποιείται από κανένα άλλο μηχάνημα στο
+ τοπικό σας δίκτυο.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Default Router</literal> - Η IPv6 διεύθυνση
+ του προεπιλεγμένου δρομολογητή για το δίκτυο σας. Συνήθως
+ είναι η διεύθυνση του δρομολογητή ή άλλου δικτυακού
+ εξοπλισμού που συνδέει το τοπικό σας δίκτυο με το Internet.
+ Θα τη δείτε επίσης να αναφέρεται ως
+ <emphasis>default gateway (προεπιλεγμένη πύλη)</emphasis>.</para>
+ </listitem>
+ </itemizedlist>
+ </sect4>
+ </sect3>
+
+ <sect3 id="bsdinstall-net-dns">
+ <title>Ρύθμιση του <acronym role="Domain Name System">DNS</acronym></title>
+
+ <para>Το <firstterm>Domain Name System (Σύστημα Ονομάτων Τομέα)</firstterm> ή
+ <emphasis><acronym role="Domain Name System">DNS</acronym></emphasis>
+ μετατρέπει ονόματα υπολογιστών σε διευθύνσεις δικτύου και το
+ αντίθετο. Αν χρησιμοποιήσατε <acronym>DHCP</acronym> ή
+ <acronym>SLAAC</acronym> για να ρυθμίσετε αυτόματα τη διεπαφή
+ δικτύου, οι αντίστοιχες ρυθμίσεις πιθανόν να έχουν γίνει ήδη.
+ Στην αντίθετη περίπτωση, βάλτε το όνομα τομέα του τοπικού δικτύου
+ στο πεδίο Search. Τα πεδία
+ <acronym>DNS</acronym> #1 και <acronym>DNS</acronym> #2 είναι οι
+ διευθύνσεις <acronym>IP</acronym> των τοπικών εξυπηρετητών
+ <acronym>DNS</acronym>. Χρειάζεται να εισάγετε τουλάχιστον ένα
+ εξυπηρετητή <acronym>DNS</acronym>.</para>
+
+ <figure id="bsdinstall-net-dns-config">
+ <title>Ρύθμιση DNS</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-configure-network-ipv4-dns" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect3>
+ </sect2>
+
+ <sect2 id="bsdinstall-timezone">
+ <title>Ρύθμιση της Ζώνης Ώρας</title>
+
+ <para>Η ρύθμιση της σωστής ζώνης ώρας στο μηχάνημα σας,
+ εξασφαλίζει την αυτόματη αλλαγή της από χειμερινή σε εαρινή και
+ το αντίστροφο. Επιτρέπει επίσης τη σωστή λειτουργία όλων των
+ υπηρεσιών που σχετίζονται με την τήρηση χρόνου.</para>
+
+ <para>Το παράδειγμα μας αναφέρεται σε ένα μηχάνημα που βρίσκεται στην
+ Ανατολική ζώνη ώρας των Ηνωμένων Πολιτειών. Η δική σας επιλογή
+ θα είναι διαφορετική ανάλογα με τη γεωγραφική σας περιοχή.</para>
+
+ <figure id="bsdinstall-local-utc">
+ <title>Επιλογή Τοπικού ή UTC Ρολογιού</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-set-clock-local-utc" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε <guibutton>[&nbsp;Yes&nbsp;]</guibutton>
+ ή <guibutton>[&nbsp;No&nbsp;]</guibutton> ανάλογα με το πως
+ είναι ρυθμισμένο το ρολόι του μηχανήματος και πιέστε
+ <keycap>Enter</keycap>. Αν δεν γνωρίζετε αν το σύστημα σας
+ χρησιμοποιεί ώρα UTC ή τοπική, επιλέξτε
+ <guibutton>[&nbsp;No&nbsp;]</guibutton> για να επιλέξετε την
+ τοπική ώρα που είναι και η πιο συνηθισμένη.</para>
+
+ <figure id="bsdinstall-timezone-region">
+ <title>Επιλέξτε μια Περιοχή</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-timezone-region" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε την σωστή περιοχή χρησιμοποιώντας τα βελάκια και
+ πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="bsdinstall-timezone-country">
+ <title>Επιλογή Χώρας</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-timezone-country" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε τη σωστή χώρα χρησιμοποιώντας τα βελάκια και
+ πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="bsdinstall-timezone-zone">
+ <title>Επιλογή Ζώνης Ώρας</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-timezone-zone" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε τη σωστή ζώνη ώρας χρησιμοποιώντας τα βελάκια και
+ πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="bsdinstall-timezone-confirmation">
+ <title>Επιβεβαίωση Ζώνης Ώρας</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-timezone-confirm" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιβεβαιώστε ότι η συντομογραφία για την επιλεγμένη ζώνη ώρας
+ είναι η σωστή. Έπειτα πιέστε <keycap>Enter</keycap> για να
+ συνεχίσετε με τις υπόλοιπες ρυθμίσεις.</para>
+ </sect2>
+
+ <sect2 id="bsdinstall-sysconf">
+ <title>Επιλογή Υπηρεσιών που θα Ενεργοποιηθούν</title>
+
+ <para>Μπορείτε να επιλέξετε ποιες από τις πρόσθετες υπηρεσίες
+ θα ενεργοποιηθούν στην εκκίνηση. Όλες οι παρακάτω υπηρεσίες
+ είναι προαιρετικές.</para>
+
+ <figure id="bsdinstall-config-serv">
+ <title>Επιλογή Πρόσθετων Υπηρεσιών προς Ενεργοποίηση</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-config-services" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <title>Πρόσθετες Υπηρεσίες</title>
+
+ <listitem>
+ <para><literal>sshd</literal> - Secure Shell (Ασφαλές Κέλυφος)
+ (<acronym role="Secure Shell">SSH</acronym>) Ο δαίμονας για
+ ασφαλή απομακρυσμένη πρόσβαση.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>moused</literal> - Παρέχει δυνατότητα χρήσης του
+ ποντικιού από την κονσόλα του συστήματος.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>ntpd</literal> - Network Time Protocol, πρωτόκολλο
+ για ρύθμιση της ώρας μέσω δικτύου (<acronym
+ role="Network Time Protocol">NTP</acronym>). Ο δαίμονας
+ χρησιμοποιείται για την αυτόματη ρύθμιση του ρολογιού.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>powerd</literal> - Βοηθητικό πρόγραμμα για έλεγχο
+ ισχύος και διαχείριση ενέργειας.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="bsdinstall-crashdump">
+ <title>Ενεργοποίηση Crash Dumps</title>
+
+ <para>Το <application>bsdinstall</application> θα σας ρωτήσει αν
+ θέλετε να ενεργοποιήσετε τα crash dumps στο σύστημα σας.
+ Η ενεργοποίηση των crash dumps μπορεί να είναι πολύ χρήσιμη στον
+ εντοπισμό προβλημάτων του συστήματος και για το λόγο αυτό
+ συνιστούμε να τα ενεργοποιείτε όταν είναι δυνατόν. Επιλέξτε
+ <guibutton>[&nbsp;Yes&nbsp;]</guibutton> για να τα ενεργοποιήσετε,
+ ή <guibutton>[&nbsp;No&nbsp;]</guibutton> για να συνεχίσετε χωρίς
+ crash dumps.</para>
+
+ <figure id="bsdinstall-config-crashdump">
+ <title>Ενεργοποίηση Crash Dumps</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-config-crashdump" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect2>
+
+ <sect2 id="bsdinstall-addusers">
+ <title>Προσθήκη Χρηστών</title>
+
+ <para>Η προσθήκη τουλάχιστον ενός χρήστη κατά την εγκατάσταση, σας
+ επιτρέπει να χρησιμοποιήσετε το σύστημα χωρίς να εισέλθετε
+ ως <username>root</username>. Όταν εισέρχεστε ως
+ <username>root</username>, δεν υπάρχουν πρακτικά όρια ή κάποιο
+ είδος προστασίας σχετικά με το τι μπορείτε να κάνετε. Όταν
+ εισέρχεστε ως κανονικός χρήστης, μπορείτε να χειριστείτε το
+ σύστημα σας με περισσότερη ασφάλεια.</para>
+
+ <para>Επιλέξτε <guibutton>[&nbsp;Yes&nbsp;]</guibutton> για να
+ προσθέσετε νέους χρήστες.</para>
+
+ <figure id="bsdinstall-add-user1">
+ <title>Προσθήκη Λογαριασμών Χρηστών</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-adduser1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Εισάγετε τις πληροφορίες για το χρήστη που θα προστεθεί.</para>
+
+ <figure id="bsdinstall-add-user2">
+ <title>Εισαγωγή Πληροφοριών Χρήστη</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-adduser2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <itemizedlist>
+ <title>Πληροφορίες Χρήστη</title>
+
+ <listitem>
+ <para><literal>Username</literal> - Το όνομα που θα χρησιμοποιεί
+ ο χρήστης για να εισέλθει στο σύστημα. Τυπικά το πρώτο γράμμα
+ του μικρού ονόματος σε συνδυασμό με το επίθετο.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Full name</literal> - Το πλήρες όνομα του
+ χρήστη.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Uid</literal> - User ID. Ο αναγνωριστικός
+ αριθμός χρήστη. Συνήθως δεν συμπληρώνουμε αυτό το πεδίο,
+ ώστε να επιλεγεί αυτόματα ένας αριθμός από το σύστημα.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Login group</literal> - Η ομάδα στην οποία
+ ανήκει ο χρήστης. Συνήθως το αφήνουμε κενό ώστε να γίνει
+ αποδεκτή η προεπιλεγμένη τιμή.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Invite <replaceable>user</replaceable> into
+ other groups?</literal> - Επιπρόσθετες ομάδες χρηστών στις
+ οποίες θέλουμε να ανήκει ο χρήστης.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Login class</literal> - Συνήθως δεν συμπληρώνουμε
+ αυτό το πεδίο, ώστε να γίνει αποδεκτή η προεπιλεγμένη
+ τιμή.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Shell</literal> - Το κέλυφος που θα χρησιμοποιεί
+ ο συγκεκριμένος χρήστης. Στο παράδειγμα μας επιλέξαμε το
+ &man.csh.1;.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Home directory</literal> - Ο προσωπικός κατάλογος
+ του χρήστη. Η προεπιλεγμένη τιμή είναι συνήθως η σωστή.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Home directory permissions</literal> -
+ Τα δικαιώματα στον κατάλογο του χρήστη. Τα προεπιλεγμένα είναι
+ συνήθως σωστά.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Use password-based authentication?</literal> -
+ H τυπική απάντηση είναι "yes".</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Use an empty password?</literal> -
+ Η τυπική απάντηση είναι "no".</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Use a random password?</literal> - Η τυπική
+ απάντηση είναι "no".</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Enter password</literal> - Ο κωδικός πρόσβασης για
+ το συγκεκριμένο χρήστη. Δεν φαίνεται στην οθόνη καθώς τον
+ πληκτρολογούμε.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Enter password again</literal> - Ο κωδικός πρέπει
+ να εισαχθεί άλλη μια φορά για επιβεβαίωση.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Lock out the account after creation?</literal>
+ - Η τυπική απάντηση είναι "no".</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αφού εισάγετε όλες τις πληροφορίες, θα δείτε μια περίληψη τους
+ και το σύστημα θα σας ρωτήσει για την ορθότητα τους. Αν κάνατε
+ κάποιο λάθος κατά τη διάρκεια της εισαγωγής, γράψτε
+ <literal>no</literal> και ξαναπροσπαθήστε. Αν όλα είναι σωστά,
+ γράψτε <literal>yes</literal> για να δημιουργήσετε το νέο
+ χρήστη.</para>
+
+ <figure id="bsdinstall-add-user3">
+ <title>Έξοδος από τη Διαχείριση Χρηστών και Ομάδων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-adduser3" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αν θέλετε να προσθέσετε περισσότερους χρήστες, απαντήστε στην
+ ερώτηση "Add another user?" με <literal>yes</literal>. Απαντήστε
+ <literal>no</literal> για να τελειώσετε με την προσθήκη χρηστών και
+ να συνεχίσετε την εγκατάσταση.</para>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με την προσθήκη και
+ διαχείριση χρηστών, δείτε το <xref linkend="users">.</para>
+ </sect2>
+
+ <sect2 id="bsdinstall-final-conf">
+ <title>Τελικές Ρυθμίσεις</title>
+
+ <para>Μετά το τέλος της εγκατάστασης και των αρχικών ρυθμίσεων, έχετε
+ μια τελευταία ευκαιρία να αλλάξετε τις ρυθμίσεις πριν την έξοδο από
+ το πρόγραμμα εγκατάστασης.</para>
+
+ <figure id="bsdinstall-final-config">
+ <title>Τελικές Ρυθμίσεις</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-finalconfiguration" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Χρησιμοποιήστε αυτό το μενού για να κάνετε οποιεσδήποτε αλλαγές
+ ή πρόσθετες ρυθμίσεις θέλετε πριν την ολοκλήρωση της
+ εγκατάστασης.</para>
+
+ <itemizedlist>
+ <title>Επιλογές Τελικών Ρυθμίσεων</title>
+
+ <listitem>
+ <para><literal>Add User</literal> - Περιγράφεται στο
+ <xref linkend="bsdinstall-addusers">.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Root Password</literal> - Περιγράφεται στο
+ <xref linkend="bsdinstall-post-root">.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Hostname</literal> - Περιγράφεται στο
+ <xref linkend="bsdinstall-hostname">.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Network</literal> - Περιγράφεται στο
+ <xref linkend="bsdinstall-config-network-dev">.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Services</literal> - Περιγράφεται στο
+ <xref linkend="bsdinstall-sysconf">.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Time Zone</literal> - Περιγράφεται στο
+ <xref linkend="bsdinstall-timezone">.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Handbook</literal> - Μεταφόρτωση και εγκατάσταση
+ του Εγχειριδίου του &os; (το οποίο διαβάζετε αυτή τη
+ στιγμή).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Με την ολοκλήρωση των τελικών ρυθμίσεων, επιλέξτε
+ <guibutton>Exit</guibutton> για να κλείσετε την εγκατάσταση.</para>
+
+ <figure id="bsdinstall-final-modification-shell">
+ <title>Χειροκίνητη Ρύθμιση</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-final-modification-shell" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το <application>bsdinstall</application> θα σας ρωτήσει για
+ τυχόν επιπλέον ρυθμίσεις που πρέπει να γίνουν πριν επανεκκινήσετε
+ στο νέο σύστημα. Επιλέξτε <guibutton>[&nbsp;Yes&nbsp;]</guibutton>
+ για να εκκινήσετε ένα κέλυφος στο νέο σύστημα ή
+ <guibutton>[&nbsp;No&nbsp;]</guibutton> για να προχωρήσετε στο
+ τελευταίο βήμα της εγκατάστασης.</para>
+
+ <figure id="bsdinstall-final-main">
+ <title>Ολοκλήρωση της Εγκατάστασης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="bsdinstall/bsdinstall-mainexit" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αν χρειάζεται να κάνετε περισσότερες ή ειδικές ρυθμίσεις,
+ μπορείτε να επιλέξετε
+ <guibutton>[&nbsp;Live&nbsp;CD&nbsp;]</guibutton>.
+ Με την επιλογή αυτή, Θα ξεκινήσετε το μέσο εγκατάστασης σε
+ κατάσταση Live CD.</para>
+
+ <para>Με την ολοκλήρωση της εγκατάστασης, επιλέξτε
+ <guibutton>[&nbsp;Reboot&nbsp;]</guibutton> για να επανεκκινήσετε
+ τον υπολογιστή σας και να ξεκινήσετε το νέο &os; σύστημά σας.
+ Μη ξεχάσετε να αφαιρέσετε το μέσο εγκατάστασης από τον οδηγό CD (ή
+ την USB υποδοχή), διαφορετικά το σύστημα σας ίσως ξεκινήσει ξανά
+ από αυτό.</para>
+ </sect2>
+
+ <sect2 id="bsdinstall-freebsdboot">
+ <title>Εκκίνηση και Τερματισμός του &os;</title>
+
+ <sect3 id="bsdinstall-freebsdboot-i386">
+ <title>&os;/&arch.i386; Booting</title>
+
+ <para>Κατά την εκκίνηση του &os; εμφανίζονται πολλά πληροφοριακά
+ μηνύματα. Φυσιολογικά, τα περισσότερα κυλούν εκτός της οθόνης.
+ Μετά το τέλος της εκκίνησης εμφανίζεται η προτροπή εισόδου στο
+ σύστημα (login). Μπορείτε να δείτε τα μηνύματα που κύλησαν εκτός
+ οθόνης πιέζοντας το πλήκτρο <keycap>Scroll-Lock</keycap> για να
+ να ενεργοποιήσετε την <emphasis>προσωρινή μνήμη κύλισης</emphasis>.
+ Χρησιμοποιήστε έπειτα τα πλήκτρα <keycap>PgUp</keycap>,
+ <keycap>PgDn</keycap> και τα βελάκια για να δείτε τα παλιά
+ μηνύματα. Πιέζοντας το <keycap>Scroll-Lock</keycap> ξανά, θα
+ επιστρέψετε στην κανονική απεικόνιση.</para>
+
+ <para>Στην προτροπή <prompt>login:</prompt> γράψτε το όνομα που
+ δημιουργήσατε κατά την εγκατάσταση, στο παράδειγμα μας
+ <username>asample</username>. Να αποφεύγετε να εισέρχεστε ως
+ <username>root</username> όταν δεν είναι απαραίτητο.</para>
+
+ <para>Η δυνατότητα προς τα πίσω κύλισης των μηνυμάτων που
+ περιγράψαμε προηγουμένως είναι περιορισμένη, επομένως δεν θα
+ μπορέσετε με αυτό τον τρόπο να τα δείτε όλα. Μετά την είσοδο
+ σας στο σύστημα, μπορείτε να δείτε τα μηνύματα από τη γραμμή
+ εντολών γράφοντας <command>dmesg | less</command> στην προτροπή.
+ Πιέστε <keycap>q</keycap> για να επιστρέψετε στη γραμμή εντολών
+ όταν τελειώσετε.</para>
+
+ <para>Τυπικά μηνύματα εκκίνησης (έχουν παραλειφθεί οι
+ πληροφορίες έκδοσης):</para>
+
+ <screen>Copyright (c) 1992-2011 The FreeBSD Project.
+Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
+ The Regents of the University of California. All rights reserved.
+FreeBSD is a registered trademark of The FreeBSD Foundation.
+
+ root@farrell.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64
+CPU: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz (3007.77-MHz K8-class CPU)
+ Origin = "GenuineIntel" Id = 0x10676 Family = 6 Model = 17 Stepping = 6
+ Features=0x783fbff&lt;FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE,SSE2&gt;
+ Features2=0x209&lt;SSE3,MON,SSSE3&gt;
+ AMD Features=0x20100800&lt;SYSCALL,NX,LM&gt;
+ AMD Features2=0x1&lt;LAHF&gt;
+real memory = 536805376 (511 MB)
+avail memory = 491819008 (469 MB)
+Event timer "LAPIC" quality 400
+ACPI APIC Table: &lt;VBOX VBOXAPIC&gt;
+ioapic0: Changing APIC ID to 1
+ioapic0 &lt;Version 1.1&gt; irqs 0-23 on motherboard
+kbd1 at kbdmux0
+acpi0: &lt;VBOX VBOXXSDT&gt; on motherboard
+acpi0: Power Button (fixed)
+acpi0: Sleep Button (fixed)
+Timecounter "ACPI-fast" frequency 3579545 Hz quality 900
+acpi_timer0: &lt;32-bit timer at 3.579545MHz&gt; port 0x4008-0x400b on acpi0
+cpu0: &lt;ACPI CPU&gt; on acpi0
+pcib0: &lt;ACPI Host-PCI bridge&gt; port 0xcf8-0xcff on acpi0
+pci0: &lt;ACPI PCI bus&gt; on pcib0
+isab0: &lt;PCI-ISA bridge&gt; at device 1.0 on pci0
+isa0: &lt;ISA bus&gt; on isab0
+atapci0: &lt;Intel PIIX4 UDMA33 controller&gt; port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xd000-0xd00f at device 1.1 on pci0
+ata0: &lt;ATA channel 0&gt; on atapci0
+ata1: &lt;ATA channel 1&gt; on atapci0
+vgapci0: &lt;VGA-compatible display&gt; mem 0xe0000000-0xe0ffffff irq 18 at device 2.0 on pci0
+em0: &lt;Intel(R) PRO/1000 Legacy Network Connection 1.0.3&gt; port 0xd010-0xd017 mem 0xf0000000-0xf001ffff irq 19 at device 3.0 on pci0
+em0: Ethernet address: 08:00:27:9f:e0:92
+pci0: &lt;base peripheral&gt; at device 4.0 (no driver attached)
+pcm0: &lt;Intel ICH (82801AA)&gt; port 0xd100-0xd1ff,0xd200-0xd23f irq 21 at device 5.0 on pci0
+pcm0: &lt;SigmaTel STAC9700/83/84 AC97 Codec&gt;
+ohci0: &lt;OHCI (generic) USB controller&gt; mem 0xf0804000-0xf0804fff irq 22 at device 6.0 on pci0
+usbus0: &lt;OHCI (generic) USB controller&gt; on ohci0
+pci0: &lt;bridge&gt; at device 7.0 (no driver attached)
+acpi_acad0: &lt;AC Adapter&gt; on acpi0
+atkbdc0: &lt;Keyboard controller (i8042)&gt; port 0x60,0x64 irq 1 on acpi0
+atkbd0: &lt;AT Keyboard&gt; irq 1 on atkbdc0
+kbd0 at atkbd0
+atkbd0: [GIANT-LOCKED]
+psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0
+psm0: [GIANT-LOCKED]
+psm0: model IntelliMouse Explorer, device ID 4
+attimer0: &lt;AT timer&gt; port 0x40-0x43,0x50-0x53 on acpi0
+Timecounter "i8254" frequency 1193182 Hz quality 0
+Event timer "i8254" frequency 1193182 Hz quality 100
+sc0: &lt;System console&gt; at flags 0x100 on isa0
+sc0: VGA &lt;16 virtual consoles, flags=0x300&gt;
+vga0: &lt;Generic ISA VGA&gt; at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
+atrtc0: &lt;AT realtime clock&gt; at port 0x70 irq 8 on isa0
+Event timer "RTC" frequency 32768 Hz quality 0
+ppc0: cannot reserve I/O port range
+Timecounters tick every 10.000 msec
+pcm0: measured ac97 link rate at 485193 Hz
+em0: link state changed to UP
+usbus0: 12Mbps Full Speed USB v1.0
+ugen0.1: &lt;Apple&gt; at usbus0
+uhub0: &lt;Apple OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1&gt; on usbus0
+cd0 at ata1 bus 0 scbus1 target 0 lun 0
+cd0: &lt;VBOX CD-ROM 1.0&gt; Removable CD-ROM SCSI-0 device
+cd0: 33.300MB/s transfers (UDMA2, ATAPI 12bytes, PIO 65534bytes)
+cd0: Attempt to query device size failed: NOT READY, Medium not present
+ada0 at ata0 bus 0 scbus0 target 0 lun 0
+ada0: &lt;VBOX HARDDISK 1.0&gt; ATA-6 device
+ada0: 33.300MB/s transfers (UDMA2, PIO 65536bytes)
+ada0: 12546MB (25694208 512 byte sectors: 16H 63S/T 16383C)
+ada0: Previously was known as ad0
+Timecounter "TSC" frequency 3007772192 Hz quality 800
+Root mount waiting for: usbus0
+uhub0: 8 ports with 8 removable, self powered
+Trying to mount root from ufs:/dev/ada0p2 [rw]...
+Setting hostuuid: 1848d7bf-e6a4-4ed4-b782-bd3f1685d551.
+Setting hostid: 0xa03479b2.
+Entropy harvesting: interrupts ethernet point_to_point kickstart.
+Starting file system checks:
+/dev/ada0p2: FILE SYSTEM CLEAN; SKIPPING CHECKS
+/dev/ada0p2: clean, 2620402 free (714 frags, 327461 blocks, 0.0% fragmentation)
+Mounting local file systems:.
+vboxguest0 port 0xd020-0xd03f mem 0xf0400000-0xf07fffff,0xf0800000-0xf0803fff irq 20 at device 4.0 on pci0
+vboxguest: loaded successfully
+Setting hostname: machine3.example.com.
+Starting Network: lo0 em0.
+lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; metric 0 mtu 16384
+ options=3&lt;RXCSUM,TXCSUM&gt;
+ inet6 ::1 prefixlen 128
+ inet6 fe80::1%lo0 prefixlen 64 scopeid 0x3
+ inet 127.0.0.1 netmask 0xff000000
+ nd6 options=21&lt;PERFORMNUD,AUTO_LINKLOCAL&gt;
+em0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; metric 0 mtu 1500
+ options=9b&lt;RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM&gt;
+ ether 08:00:27:9f:e0:92
+ nd6 options=29&lt;PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL&gt;
+ media: Ethernet autoselect (1000baseT &lt;full-duplex&gt;)
+ status: active
+Starting devd.
+Starting Network: usbus0.
+DHCPREQUEST on em0 to 255.255.255.255 port 67
+DHCPACK from 10.0.2.2
+bound to 192.168.1.142 -- renewal in 43200 seconds.
+add net ::ffff:0.0.0.0: gateway ::1
+add net ::0.0.0.0: gateway ::1
+add net fe80::: gateway ::1
+add net ff02::: gateway ::1
+ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/local/lib
+32-bit compatibility ldconfig path: /usr/lib32
+Creating and/or trimming log files.
+Starting syslogd.
+No core dumps found.
+Clearing /tmp (X related).
+Updating motd:.
+Configuring syscons: blanktime.
+Generating public/private rsa1 key pair.
+Your identification has been saved in /etc/ssh/ssh_host_key.
+Your public key has been saved in /etc/ssh/ssh_host_key.pub.
+The key fingerprint is:
+10:a0:f5:af:93:ae:a3:1a:b2:bb:3c:35:d9:5a:b3:f3 root@machine3.example.com
+The key's randomart image is:
++--[RSA1 1024]----+
+| o.. |
+| o . . |
+| . o |
+| o |
+| o S |
+| + + o |
+|o . + * |
+|o+ ..+ . |
+|==o..o+E |
++-----------------+
+Generating public/private dsa key pair.
+Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
+Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
+The key fingerprint is:
+7e:1c:ce:dc:8a:3a:18:13:5b:34:b5:cf:d9:d1:47:b2 root@machine3.example.com
+The key's randomart image is:
++--[ DSA 1024]----+
+| .. . .|
+| o . . + |
+| . .. . E .|
+| . . o o . . |
+| + S = . |
+| + . = o |
+| + . * . |
+| . . o . |
+| .o. . |
++-----------------+
+Starting sshd.
+Starting cron.
+Starting background file system checks in 60 seconds.
+
+Thu Oct 6 19:15:31 MDT 2011
+
+FreeBSD/amd64 (machine3.example.com) (ttyv0)
+
+login:</screen>
+
+ <para>Η δημιουργία των κλειδιών RSA και DSA μπορεί να πάρει
+ κάποιο χρόνο σε αργά μηχανήματα. Γίνεται όμως μόνο στην
+ πρώτη εκκίνηση και μόνο αν έχει ρυθμιστεί το
+ <application>sshd</application> για αυτόματη εκκίνηση.
+ Οι επόμενες εκκινήσεις θα είναι ταχύτερες.</para>
+
+ <para>Το &os; δεν εγκαθιστά κάποιο γραφικό περιβάλλον από προεπιλογή,
+ αλλά υπάρχουν αρκετά διαθέσιμα προς εγκατάσταση. Δείτε το
+ <xref linkend="x11"> για περισσότερες πληροφορίες.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="bsdinstall-shutdown">
+ <title>Τερματισμός του &os;</title>
+
+ <para>Ο σωστός τερματισμός του &os; εξασφαλίζει τα δεδομένα και
+ το υλικό του υπολογιστή σας από ζημιά. Δεν πρέπει απλώς να
+ διακόψετε την τροφοδοσία. Αν ο χρήστης σας είναι μέλος της ομάδας
+ <groupname>wheel</groupname>, μπορείτε να γίνετε υπερχρήστης με
+ την εντολή <command>su</command> και την εισαγωγή του κωδικού
+ του <username>root</username>. Διαφορετικά, συνδεθείτε ως
+ <username>root</username> και χρησιμοποιήστε την εντολή
+ <command>shutdown -p now</command>. Το σύστημα θα τερματίσει
+ με το σωστό τρόπο και θα διακοπεί και η παροχή ρεύματος.</para>
+
+ <para>Μπορείτε να χρησιμοποιήσετε το συνδυασμό πλήκτρων
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>Del</keycap>
+ </keycombo>
+ για να επανεκκινήσετε το σύστημα, αλλά αυτό δεν συνίσταται κατά τη
+ διάρκεια της κανονικής λειτουργίας.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="bsdinstall-install-trouble">
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>troubleshooting</secondary>
+ </indexterm>
+ <para>Η ενότητα που ακολουθεί καλύπτει την αντιμετώπιση βασικών
+ προβλημάτων εγκατάστασης &mdash; για παράδειγμα κοινά προβλήματα που
+ έχουν αναφερθεί από πολλούς χρήστες. Υπάρχουν επίσης κάποιες
+ ερωτήσεις και απαντήσεις για όσους επιθυμούν να έχουν το &os; ως dual
+ boot με &ms-dos; ή &windows;.</para>
+
+ <sect2>
+ <title>Τι να Κάνετε αν Κάτι Πάει Στραβά</title>
+
+ <para>Λόγω των διάφορων περιορισμών στην αρχιτεκτονική του PC, δεν
+ είναι δυνατόν η ανίχνευση συσκευών να είναι 100% αξιόπιστη.
+ Υπάρχουν όμως κάποια πράγματα που μπορείτε να κάνετε αν
+ η ανίχνευση δεν είναι επιτυχής.</para>
+
+ <para>Ελέγξτε τις <ulink
+ url="http://www.FreeBSD.org/releases/index.html">Σημειώσεις
+ Υλικού</ulink> για την έκδοση του &os; που χρησιμοποιείτε,
+ για να βεβαιωθείτε ότι το υλικό σας υποστηρίζεται.</para>
+
+ <para>Αν το υλικό σας υποστηρίζεται και εξακολουθείτε να έχετε
+ κολλήματα ή άλλα προβλήματα, θα πρέπει να δημιουργήσετε ένα
+ <link linkend="kernelconfig">προσαρμοσμένο πυρήνα</link>. Αυτό
+ θα σας επιτρέψει να προσθέσετε υποστήριξη για συσκευές οι οποίες
+ δεν υπάρχουν στον πυρήνα <filename>GENERIC</filename>. Ο πυρήνας
+ στο μέσο εγκατάστασης έχει δημιουργηθεί με την υπόθεση ότι οι
+ περισσότερες συσκευές βρίσκονται στις προεπιλεγμένες ρυθμίσεις
+ τους όσο αφορά τα IRQs, τις διευθύνσεις IO και τα κανάλια DMA.
+ Αν έχετε αλλάξει αυτές τις ρυθμίσεις ίσως χρειαστεί να αλλάξετε
+ τις ρυθμίσεις του πυρήνα και να τον επαναμεταγλωττίσετε για να
+ μπορέσει το &os; να εντοπίσει τις συσκευές σας.</para>
+
+ <para>Είναι επίσης πιθανό η διαδικασία ανίχνευσης για μια συσκευή
+ που δεν είναι εγκατεστημένη να προκαλέσει πρόβλημα στην ανίχνευση
+ μιας άλλης υπαρκτής συσκευής. Στην περίπτωση αυτή, θα πρέπει να
+ αφαιρέσετε την ανίχνευση για τη συσκευή που δημιουργεί το
+ πρόβλημα.</para>
+
+ <note>
+ <para>Κάποια προβλήματα εγκατάστασης μπορούν να αποφευχθούν ή να
+ μειωθούν με την αναβάθμιση firmware διάφορων συσκευών υλικού και
+ ειδικότερα της μητρικής. Το firmware της μητρικής είναι συχνά
+ γνωστό με τον όρο <acronym>BIOS</acronym>. Οι περισσότεροι
+ κατασκευαστές μητρικών διαθέτουν μια δικτυακή τοποθεσία από όπου
+ μπορείτε να κατεβάσετε αναβαθμισμένες εκδόσεις και
+ ανάλογες πληροφορίες.</para>
+
+ <para>Οι κατασκευαστές συνήθως συνιστούν να μην αναβαθμίζετε το
+ <acronym>BIOS</acronym> της μητρικής αν δεν υπάρχει καλός λόγος,
+ όπως για παράδειγμα μια κρίσιμη ενημέρωση. Η ενημέρωση
+ <emphasis>ενδέχεται να αποτύχει</emphasis> αφήνοντας το
+ <acronym>BIOS</acronym> σε μια ενδιάμεση κατάσταση και τον
+ υπολογιστή εκτός λειτουργίας.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Ερωτήσεις και Απαντήσεις στην Αντιμετώπιση Προβλημάτων</title>
+
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>Το σύστημα μου σταματά να ανταποκρίνεται κατά την
+ ανίχνευση συσκευών στην εκκίνηση ή συμπεριφέρεται περίεργα
+ κατά την εγκατάσταση.</para>
+ </question>
+
+ <answer>
+ <para>Το &os; κάνει εκτεταμένη χρήση των υπηρεσιών ACPI
+ (εφόσον υπάρχει) στις αρχιτεκτονικές i386, amd64 και ia64
+ ώστε να ρυθμίσει σωστά τις συσκευές κατά την εκκίνηση.
+ Δυστυχώς υπάρχουν ακόμα κάποια προβλήματα τόσο στο
+ ACPI όσο και στο <acronym>BIOS</acronym> firmware αρκετών
+ μητρικών. Μπορείτε να απενεργοποιήσετε το ACPI θέτοντας
+ <literal>hint.acpi.0.disabled</literal> στο τρίτο στάδιο
+ του φορτωτή εκκίνησης:</para>
+
+ <screen><userinput>set hint.acpi.0.disabled="1"</userinput></screen>
+
+ <para>Καθώς η ρύθμιση αυτή χάνεται σε κάθε εκκίνηση, είναι
+ απαραίτητο να προσθέσετε την οδηγία
+ <literal>hint.acpi.0.disabled="1"</literal> στο αρχείο
+ <filename>/boot/loader.conf</filename>. Μπορείτε να βρείτε
+ περισσότερες πληροφορίες για το φορτωτή εκκίνησης στο
+ <xref linkend="boot-synopsis">.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/chapter.decl b/el_GR.ISO8859-7/books/handbook/chapter.decl
new file mode 100644
index 0000000000..a17911c445
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/chapter.decl
@@ -0,0 +1,11 @@
+<!DOCTYPE chapter PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN">
+<!--
+
+ $FreeBSD$
+
+ The FreeBSD Greek Documentation Project
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/chapter.decl
+ %SRCID% 1.1
+
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/chapters.ent b/el_GR.ISO8859-7/books/handbook/chapters.ent
new file mode 100644
index 0000000000..c3b6c11fd6
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/chapters.ent
@@ -0,0 +1,78 @@
+<!--
+
+ Ορισμός των entities για κάθε κεφάλαιο του Εγχειριδίου του FreeBSD.
+
+ Κάθε entity ονομάζεται chap.foo, όπου foo είναι η τιμή του id attribute
+ που έχει το αντίστοιχο κεφάλαιο (συνήθως αυτό είναι ίδιο και με το όνομα
+ του καταλόγου στον οποίο είναι αποθηκευμένο το κεφάλαιο σε SGML μορφή).
+
+ Τα κεφάλαια εδώ είναι καλό να έχουν την ίδια σειρά με την οποία
+ εμφανίζονται στο τελικό βιβλίο.
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/chapters.ent
+ %SRCID% 1.40
+
+-->
+
+<!ENTITY chap.preface SYSTEM "preface/preface.sgml">
+
+<!-- Part one -->
+<!ENTITY chap.introduction SYSTEM "introduction/chapter.sgml">
+<!ENTITY chap.install SYSTEM "install/chapter.sgml">
+<!ENTITY chap.bsdinstall SYSTEM "bsdinstall/chapter.sgml">
+<!ENTITY chap.basics SYSTEM "basics/chapter.sgml">
+<!ENTITY chap.ports SYSTEM "ports/chapter.sgml">
+<!ENTITY chap.x11 SYSTEM "x11/chapter.sgml">
+
+<!-- Part two -->
+<!ENTITY chap.desktop SYSTEM "desktop/chapter.sgml">
+<!ENTITY chap.multimedia SYSTEM "multimedia/chapter.sgml">
+<!ENTITY chap.kernelconfig SYSTEM "kernelconfig/chapter.sgml">
+<!ENTITY chap.printing SYSTEM "printing/chapter.sgml">
+<!ENTITY chap.linuxemu SYSTEM "linuxemu/chapter.sgml">
+
+<!-- Part three -->
+<!ENTITY chap.config SYSTEM "config/chapter.sgml">
+<!ENTITY chap.boot SYSTEM "boot/chapter.sgml">
+<!ENTITY chap.users SYSTEM "users/chapter.sgml">
+<!ENTITY chap.security SYSTEM "security/chapter.sgml">
+<!ENTITY chap.jails SYSTEM "jails/chapter.sgml">
+<!ENTITY chap.mac SYSTEM "mac/chapter.sgml">
+<!ENTITY chap.audit SYSTEM "audit/chapter.sgml">
+<!ENTITY chap.disks SYSTEM "disks/chapter.sgml">
+<!ENTITY chap.geom SYSTEM "geom/chapter.sgml">
+<!ENTITY chap.filesystems SYSTEM "filesystems/chapter.sgml">
+<!ENTITY chap.vinum SYSTEM "vinum/chapter.sgml">
+<!ENTITY chap.virtualization SYSTEM "virtualization/chapter.sgml">
+<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml">
+<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">
+<!ENTITY chap.dtrace SYSTEM "dtrace/chapter.sgml">
+
+<!-- Part four -->
+<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml">
+<!ENTITY chap.ppp-and-slip SYSTEM "ppp-and-slip/chapter.sgml">
+<!ENTITY chap.mail SYSTEM "mail/chapter.sgml">
+<!ENTITY chap.network-servers SYSTEM "network-servers/chapter.sgml">
+<!ENTITY chap.firewalls SYSTEM "firewalls/chapter.sgml">
+<!ENTITY chap.advanced-networking SYSTEM "advanced-networking/chapter.sgml">
+
+<!-- Part five (appendices) -->
+<!ENTITY chap.mirrors SYSTEM "mirrors/chapter.sgml">
+<!ENTITY chap.mirrors.ftp.inc SYSTEM "mirrors.sgml.ftp.inc">
+<!ENTITY chap.mirrors.cvsup.inc SYSTEM "mirrors.sgml.cvsup.inc">
+
+<!ENTITY chap.bibliography SYSTEM "bibliography/chapter.sgml">
+<!ENTITY chap.eresources SYSTEM "eresources/chapter.sgml">
+<!ENTITY chap.eresources.www.inc SYSTEM "eresources.sgml.www.inc">
+<!ENTITY chap.pgpkeys SYSTEM "pgpkeys/chapter.sgml">
+<!ENTITY chap.index SYSTEM "index.sgml">
+<!ENTITY chap.colophon SYSTEM "colophon.sgml">
+
+<!--
+ Local Variables:
+ coding: iso-8859-7
+ mode: sgml
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/colophon.sgml b/el_GR.ISO8859-7/books/handbook/colophon.sgml
new file mode 100644
index 0000000000..05b00d2272
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/colophon.sgml
@@ -0,0 +1,39 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Περίληψη Βιβλίου
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/colophon.sgml
+ %SRCID% 1.9
+
+-->
+
+<colophon id='colophon'>
+ <para>Αυτό το βιβλίο είναι το αποτέλεσμα της ομαδικής εργασίας εκατοντάδων
+ εθελοντών της <quote>Ομάδας Τεκμηρίωσης του &os;</quote>. Αυτό το
+ κείμενο γράφτηκε σε μορφή SGML, σύμφωνα με το DocBook DTD και έχει
+ μορφοποιηθεί από την SGML σε πολλές διαφορετικές μορφές παρουσίασης
+ χρησιμοποιώντας την εφαρμογή <application>Jade</application>, μια μηχανή
+ DSSSL ανοιχτού κώδικα. Χρησιμοποιήθηκαν τα DSSSL stylesheets του Norm Walsh με ένα
+ επιπλέον επίπεδο τροποποίησης για να δώσουν τις οδηγίες παρουσίασης στην
+ <application>Jade</application>. Η έντυπη μορφή αυτού του κειμένου δεν θα
+ υπήρχε χωρίς την γλώσσα στοιχειοθεσίας <application>&tex;</application>
+ του Donald Knuth, το <application>LaTeX</application> του Leslie Lamport,
+ ή το macro package <application>JadeTeX</application> του Sebastian
+ Rahtz.</para>
+</colophon>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/config/chapter.sgml b/el_GR.ISO8859-7/books/handbook/config/chapter.sgml
new file mode 100644
index 0000000000..f9e8e6a530
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/config/chapter.sgml
@@ -0,0 +1,3289 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Ρύθμιση και Βελτιστοποίηση
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/config/chapter.sgml
+ %SRCID% 1.229
+
+-->
+
+<chapter id="config-tuning">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Γράφτηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Mike</firstname>
+ <surname>Smith</surname>
+ <contrib>Βασίστηκε σε tutorial γραμμένο από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Matt</firstname>
+ <surname>Dillon</surname>
+ <contrib>Βασισμένο επίσης στο tuning(7) που γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Ρύθμιση και Βελτιστοποίηση</title>
+
+ <sect1 id="config-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>ρύθμιση συστήματος</primary></indexterm>
+ <indexterm><primary>βελτιστοποίηση συστήματος</primary></indexterm>
+
+ <para>Ένα από τα σημαντικά χαρακτηριστικά του &os; είναι η δυνατότητα
+ ρύθμισης του συστήματος. Με τις σωστές ρυθμίσεις συστήματος είναι
+ εύκολο να αποφευχθούν πολλά προβλήματα κατά τη διάρκεια μελλοντικών
+ αναβαθμίσεων. Το κεφάλαιο αυτό θα εξηγήσει μεγάλο μέρος της διαδικασίας
+ ρύθμισης του &os;, συμπεριλαμβανομένων και κάποιων παραμέτρων που
+ μπορούν να ρυθμιστούν για την βελτιστοποίηση της απόδοσης του
+ συστήματος.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να δουλέψετε αποδοτικά με συστήματα αρχείων και κατατμήσεις
+ swap.</para>
+ </listitem>
+ <listitem>
+ <para>Τα βασικά των συστημάτων ρύθμισης και εκκίνησης
+ <filename>rc.conf</filename> και
+ <filename class="directory">/usr/local/etc/rc.d</filename>.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να ρυθμίσετε και να δοκιμάσετε μια κάρτα δικτύου.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να ρυθμίσετε virtual hosts στις δικτυακές σας συσκευές.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε τα διάφορα αρχεία ρυθμίσεων στον κατάλογο
+ <filename class="directory">/etc</filename>.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να βελτιστοποιήσετε το &os; χρησιμοποιώντας μεταβλητές
+ <command>sysctl</command>.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να βελτιστοποιήσετε την απόδοση του δίσκου και να αλλάξετε τους
+ περιορισμούς του πυρήνα.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε βασικές έννοιες του &unix; και του &os; (<xref
+ linkend="basics">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένοι με τα βασικά της ρύθμισης και της
+ μεταγλώττισης του πυρήνα (<xref linkend="kernelconfig">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="configtuning-initial">
+ <title>Αρχική Ρύθμιση</title>
+
+ <sect2>
+ <title>Διάταξη Κατατμήσεων</title>
+
+ <indexterm><primary>partition layout</primary></indexterm>
+ <indexterm>
+ <primary><filename class="directory">/etc</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename class="directory">/var</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename class="directory">/usr</filename></primary>
+ </indexterm>
+
+ <sect3>
+ <title>Βασικές Κατατμήσεις</title>
+
+ <para>Όταν δημιουργείτε συστήματα αρχείων με το &man.bsdlabel.8; ή το
+ &man.sysinstall.8;, θυμηθείτε ότι οι σκληροί δίσκοι μεταφέρουν
+ δεδομένα γρηγορότερα απο τα εξωτερικά μέροι τους στα εσωτερικά.
+ Έτσι μικρότερα και περισσότερο προσβάσιμα συστήματα αρχείων πρέπει
+ να είναι πλησιέστερα στο εξωτερικό του δίσκου, ενώ μεγαλύτερες
+ κατατμήσεις όπως το <filename class="directory">/usr</filename> πρέπει να
+ τοποθετούνται πιο κοντά στο εσωτερικό του δίσκου. Είναι καλή ιδέα
+ να δημιουργείτε κατατμήσεις με παρόμοια σειρά με αυτήν: root,
+ swap, <filename class="directory">/var</filename>, <filename class="directory">/usr</filename>.</para>
+
+ <para>Το μέγεθος του <filename class="directory">/var</filename> αντανακλά την
+ επιδιωκούμενη χρήση του μηχανήματος. Το <filename class="directory">/var</filename>
+ χρησιμοποιείτε για την αποθήκευση των γραμματοκιβωτίων, των αρχείων
+ καταγραφής και του spooler του εκτυπωτή. Τα γραμματοκιβώτια και τα
+ αρχεία καταγραφής μπορούν να μεγαλώσουν σε απροσδόκητα μεγέθη
+ ανάλογα με τον αριθμό των χρηστών του συστήματος και το χρονικό
+ διάστημα που κρατούνται τα αρχεία καταγραφής. Σπάνια χρειάζεται
+ το <filename class="directory">/var/tmp</filename> να έχει πάνω από ένα gigabyte χώρο,
+ αλλά καλό είναι να έχετε κατά νου ότι πρέπει να είναι αρκετά μεγάλο
+ για να κρατάει τα πακέτα που θέλετε να εγκαταστήσετε.</para>
+
+ <para>Η κατάτμηση <filename class="directory">/usr</filename> περιέχει τα περισσότερα
+ αρχεία που απαιτούνται για την υποστήριξη του συστήματος, τη συλλογή
+ των &man.ports.7; (προτείνεται) και τον πηγαίο κώδικα (προαιρετικό).
+ Και τα δύο αυτά είναι προαιρετικά κατα την εγκατάσταση. Τουλάχιστον
+ 2 gigabytes προτείνονται για αυτή την κατάτμηση.</para>
+
+ <para>Όταν επιλέγετε μέγεθος για τις κατατμήσεις, να έχετε υπόψιν σας
+ τις απαιτήσεις σε χώρο. Μπορεί να είναι λίγο πρόβλημα το να μείνετε
+ χωρίς χώρο σε μια κατάτμηση ενώ χρησιμοποιείτε ελάχιστα μια
+ άλλη.</para>
+
+ <note>
+ <para>Μερικές φορές η επιλογή <literal>Auto-defaults</literal> του
+ κατατμητή του &man.sysinstall.8; μπορεί να επιλέξει πολύ μικρό
+ μέγεθος για τις κατατμήσεις <filename class="directory">/var</filename>
+ και <filename class="directory">/</filename>. Προσπαθείστε να επιλέξετε έξυπνα και
+ γενναιόδωρα μεγέθη για τις κατατμήσεις σας.</para></note>
+ </sect3>
+
+ <sect3 id="swap-design">
+ <title>Swap Κατάτμηση</title>
+
+ <indexterm><primary>swap sizing</primary></indexterm>
+ <indexterm><primary>swap partition</primary></indexterm>
+
+ <para>Ένας εμπειρικός κανόνας για να επιλέξετε μέγεθος για την
+ κατάτμηση swap είναι: πρέπει να είναι περίπου διπλή απο το μέγεθος
+ της μνήμης (RAM) του συστήματος. Για παράδειγμα, αν το μηχάνημα
+ έχει 128&nbsp;megabytes μνήμης, η κατάτμηση swap πρέπει να είναι
+ 256&nbsp;megabytes. Συστήματα με λιγότερη μνήμη μπορούν να
+ αποδίδουν καλύτερα με περισσότερο swap. Λιγότερο απο
+ 256&nbsp;megabytes swap δεν προτείνεται και πρέπει να εξεταστεί η
+ επέκταση της μνήμης. Οι αλγόριθμοι VM paging του πυρήνα είναι έτσι
+ φτιαγμένοι ώστε να αποδίδουν καλύτερα όταν η κατάτμηση swap είναι
+ τουλάχιστον δύο φορές το μέγεθος της κεντρικής μνήμης. Αν ρυθμίσετε
+ πολύ μικρό swap, μπορεί να έχουν μειωμένη απόδοση οι αλγόριθμοι
+ σάρωσης σελίδων του υποσυστήματος VM και μπορεί αργότερα να
+ δημιουργηθούν προβλήματα αν προστεθεί περισσότερη φυσική
+ μνήμη.</para>
+
+ <para>Σε μεγαλύτερα συστήματα με πολλαπλούς SCSI δίσκους (ή πολλαπλούς
+ IDE δίσκους σε διαφορετικούς ελεγκτές), είναι προτιμότερο το swap να
+ είναι ρυθμισμένο σε κάθε δίσκο (μέχρι τέσσερις δίσκους). Οι
+ ξεχωριστές κατατμήσεις swap καλό είναι να έχουν περίπου το ίδιο
+ μέγεθος. Ο πυρήνας μπορεί να χειριστεί αυθαίρετα μεγέθη swap, αλλά
+ οι εσωτερικές δομές δεδομένων ρυθμίζονται με βάση το μέγεθος της
+ μεγαλύτερης κατάτμησης swap. Κρατώντας την κατάτμηση swap σχεδόν
+ στο ίδιο μέγεθος θα επιτρέψει στον πυρήνα να βελτιστοποιήσει την
+ χρήση του swap, μοιράζοντας πιο καλά το φόρτο σε κάθε δίσκο. Δεν
+ πειράζει να έχετε μεγάλο μέγεθος swap, ακόμα και αν δε
+ χρησιμοποιείται αρκετά. Μπορεί να είναι ευκολότερη η ανάκαμψη απο
+ ένα εκτός ελέγχου πρόγραμμα προτού χρειαστεί να επανεκκινήσετε το
+ σύστημα.</para>
+ </sect3>
+
+ <sect3>
+ <title>Γιατί να φτιάξετε κατατμήσεις;</title>
+
+ <para>Αρκετοί χρήστες νομίζουν ότι μία μεγάλη κατάτμηση θα είναι
+ εντάξει, αλλά υπάρχουν αρκετοί λόγοι γιατί αυτό είναι κακή ιδέα.
+ Καταρχήν, κάθε κατάτμηση έχει διαφορετικά λειτουργικά
+ χαρακτηριστικά, οπότε ξεχωρίζοντας τις κατατμήσεις επιτρέπουμε στο
+ σύστημα αρχείων να εναρμονίζεται ανάλογα. Για παράδειγμα, οι root
+ και <filename class="directory">/usr</filename> κατατμήσεις είναι κυρίως για ανάγνωση,
+ χωρίς πολλές εγγραφές. Αντίθετα, γίνονται πολλές αναγνώσεις και
+ εγγραφές στις <filename class="directory">/var</filename> και
+ <filename class="directory">/var/tmp</filename>.</para>
+
+ <para>Κάνοντας σωστή κατάτμηση σε ένα σύστημα, ο κατακερματισμός που
+ συμβαίνει σε μικρότερες και περισσότερο εγγράψιμες κατατμήσεις δεν
+ θα διαρρεύσει στις κατατμήσεις που διαβάζονται πιο συχνά από ότι
+ γράφονται. Κρατώντας τις περισσότερο εγγράψιμες κατατμήσεις πιο
+ κοντά στην άκρη του δίσκου, θα αυξηθεί η I/O απόδοση στις
+ κατατμήσεις όπου και χρειάζεται πιο συχνά. Τώρα ενώ η απόδοση I/O
+ χρειάζεται στις μεγαλύτερες κατατμήσεις, αλλάζοντας αυτές πιο κοντά
+ στην άκρη του δίσκου δεν θα οδηγήσει σε σημαντική αύξηση της
+ απόδοσης όσο το να μετακινήσετε την <filename class="directory">/var</filename> στην
+ άκρη. Τέλος, υπάρχει και θέμα ασφάλειας. Μία μικρή, προσεγμένη
+ root κατάτμηση η οποία είναι διαβάζεται πιο συχνά από ότι γράφεται
+ έχει μεγαλύτερη πιθανότητα να επιζήσει ενός άσχημου
+ χτυπήματος.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="configtuning-core-configuration">
+ <title>Κύρια Ρύθμιση</title>
+
+ <indexterm>
+ <primary>rc files</primary>
+ <secondary><filename>rc.conf</filename></secondary>
+ </indexterm>
+
+ <para>Η κύρια τοποθεσία των πληροφοριών για την ρύθμιση του συστήματος
+ βρίσκεται μέσα στο <filename>/etc/rc.conf</filename>. Αυτό το αρχείο
+ περιέχει ένα ευρύ φάσμα ρυθμίσεων, κυρίως χρησιμοποιούμενες στην
+ εκκίνηση του συστήματος για την ρύθμιση του συστήματος. Το όνομα του
+ απευθείας συνεπάγεται αυτό; είναι ρυθμίσεις για τα
+ αρχεία <filename>rc*</filename>.</para>
+
+ <para>Ένας διαχειριστής πρέπει να δημιουργήσει εγγραφές μέσα στο
+ αρχείο <filename>rc.conf</filename> ώστε να αντικαταστήσει τις
+ προεπιλεγμένες ρυθμίσεις απο το
+ αρχείο <filename>/etc/defaults/rc.conf</filename>. Το αρχείο
+ προεπιλογών δεν πρέπει να αντιγραφεί αυτολεξεί
+ στο <filename class="directory">/etc</filename> - αυτό περιέχει προεπιλεγμένες τιμές, όχι
+ παραδείγματα. Όλες οι αλλαγές που αφορούν το σύστημα πρέπει να γίνουν
+ στο αρχείο <filename>rc.conf</filename> αποκλειστικά.</para>
+
+ <para>Ένας αριθμός στρατηγικών μπορεί να εφαρμοστεί σε ένα σύνολο
+ εφαρμογών για να ξεχωρίσουμε ρυθμίσεις του ευρύ συνόλου απο τις
+ ρυθμίσεις επικεντρωμένες για ένα σύστημα για να κρατήσουμε τον φόρτο
+ διαχείρισης χαμηλά. Η προτεινόμενη προσέγγιση είναι να τοποθετούμε τις
+ ρυθμίσεις ευρύ συνόλου σε ένα διαφορετικό αρχείο, όπως
+ το <filename>/etc/rc.conf.site</filename>, και τότε να συμπεριλάβουμε το
+ αρχείο αυτό στο <filename>/etc/rc.conf</filename>, το οποίο θα περιέχει
+ πληροφορίες επικεντρωμένες για ένα σύστημα.</para>
+
+ <para>Μιάς και το <filename>rc.conf</filename> διαβάζεται απο το
+ &man.sh.1; είναι εύκολο να το επιτύχουμε αυτό. Για παράδειγμα:</para>
+
+ <itemizedlist>
+ <listitem><para>rc.conf:</para>
+<programlisting> . /etc/rc.conf.site
+ hostname="node15.example.com"
+ network_interfaces="fxp0 lo0"
+ ifconfig_fxp0="inet 10.1.1.1"</programlisting></listitem>
+ <listitem><para>rc.conf.site:</para>
+<programlisting> defaultrouter="10.1.1.254"
+ saver="daemon"
+ blanktime="100"</programlisting></listitem>
+ </itemizedlist>
+
+ <para>Το αρχείο <filename>rc.conf.site</filename> μπορεί έπειτα να
+ διανεμηθεί σε κάθε σύστημα χρησιμοποιώντας το <command>rsync</command> ή
+ κάποιο παρόμοιο πρόγραμμα, ενώ το αρχείο <filename>rc.conf</filename>
+ παραμένει μοναδικό.</para>
+
+ <para>Αναβαθμίζοντας το σύστημα χρησιμοποιώντας &man.sysinstall.8;
+ ή <command>make world</command> δεν θα αντικαταστήσει το
+ αρχείο <filename>rc.conf</filename>, έτσι οι ρυθμίσεις δεν θα
+ χαθούν.</para>
+
+ </sect1>
+
+ <sect1 id="configtuning-appconfig">
+ <title>Ρύθμιση Εφαρμογών</title>
+
+ <para>Τυπικά, οι εγκατεστημένες εφαρμογές έχουν τα δικά τους αρχεία
+ ρυθμίσεων, με το δικό τους τρόπο σύνταξης, κτλπ. Είναι σημαντικό αυτά
+ τα αρχεία να κρατούνται ξεχωριστά απο το βασικό σύστημα, έτσι ώστε να
+ είναι εύκολα εντοπίσιμα και διαχειρίσιμα απο τα εργαλεία διαχείρισης
+ πακέτων.</para>
+
+ <indexterm><primary>/usr/local/etc</primary></indexterm>
+
+ <para>Τυπικά, αυτά τα αρχεία είναι εγκατεστημένα στο
+ <filename class="directory">/usr/local/etc</filename>. Σε αυτή την περίπτωση όταν μία
+ εφαρμογή έχει μεγάλο αριθμό αρχείων ρυθμίσεων, ένας υποκατάλογος
+ δημιουργείται για να τα αποθηκεύσει.</para>
+
+ <para>Κανονικά, όταν ένα port ή ένα package εγκαθιστάτε, παραδείγματα
+ αρχείων ρυθμίσεων εγκαθιστάνται επίσης. Αυτά είναι συνήθως αναγνωρίσιμα
+ απο την <filename>.default</filename> κατάληξη τους. Αν δεν υπάρχουν
+ αρχεία ρυθμίσεων για την εφαρμογή, τότε θα δημιουργηθούν κάνοντας
+ αντιγραφή τα <filename>.default</filename> αρχεία.</para>
+
+ <para>Για παράδειγμα, έχετε υπόψη σας τα περιεχόμενα του
+ καταλόγου <filename class="directory">/usr/local/etc/apache</filename>:</para>
+
+<literallayout class="monospaced">-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf
+-rw-r--r-- 1 root wheel 2184 May 20 1998 access.conf.default
+-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf
+-rw-r--r-- 1 root wheel 9555 May 20 1998 httpd.conf.default
+-rw-r--r-- 1 root wheel 12205 May 20 1998 magic
+-rw-r--r-- 1 root wheel 12205 May 20 1998 magic.default
+-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types
+-rw-r--r-- 1 root wheel 2700 May 20 1998 mime.types.default
+-rw-r--r-- 1 root wheel 7980 May 20 1998 srm.conf
+-rw-r--r-- 1 root wheel 7933 May 20 1998 srm.conf.default</literallayout>
+
+ <para>Τα μεγέθοι των αρχείων δείχνουν ότι μόνο το
+ αρχείο <filename>srm.conf</filename> έχει αλλάξει. Μία μετέπειτα
+ αναβάθμιση του port της εφαρμογής <application>Apache</application> δεν
+ θα αντικαταστήσει το αλλαγμένο αρχείο.</para>
+
+ </sect1>
+
+ <sect1 id="configtuning-starting-services">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Eκκινώντας Υπηρεσίες</title>
+
+ <indexterm><primary>services</primary></indexterm>
+
+ <para>Πολλοί χρήστες επιλέγουν να εγκαταστήσουν λογισμικό απο τρίτους
+ κατασκευαστές στο &os; απο την συλλογή των Ports. Σε πολλές απο αυτές
+ τις περιπτώσεις μπορεί να είναι απαραίτητο να ρυθμίσουν το λογισμικό με
+ τέτοιο τρόπο ώστε να μπορεί να επιτραπεί η εκκίνηση του κατα την
+ εκκίνηση του συστήματος. Υπηρεσίες, όπως
+ το <filename role="package">mail/postfix</filename> ή
+ το <filename role="package">www/apache13</filename> είναι μόνο δύο απο
+ τα πολλά πακέτα λογισμικού που μπορεί να χρειάζονται να εκκινηθούν κατά
+ την εκκίνηση του συστήματος. Το μέρος αυτό θα εξηγήσει τις διαθέσιμες
+ διαδικασίες για την εκκίνηση λογισμικού προερχόμενο απο τρίτους
+ κατασκευαστές.</para>
+
+ <para>Στο &os;, οι περισσότερες περιεχόμενες υπηρεσίες, όπως το
+ &man.cron.8;, είναι εκκινήσιμες μέσα από τα σενάρια εκκίνησης του
+ συστήματος. Τα σενάρια αυτά μπορεί να διαφέρουν ανάλογα το &os; ή την
+ έκδοση του κατασκευαστή; ωστόσο, η πιο σημαντική πτυχή που πρέπει να
+ εξεταστεί είναι ότι οι ρυθμίσεις εκκίνησης τους μπορούν να χειριστούν
+ μέσα απο ένα απλό σενάριο εκκίνησης.</para>
+
+ <para>Πριν την έλευση του <filename>rc.d</filename>, οι εφαρμογές
+ μπορούσαν να τοποθετήσουν ένα απλό σενάριο εκκίνησης μέσα στον
+ κατάλογο <filename class="directory">/usr/local/etc/rc.d</filename> ο
+ οποίος μπορούσε να διαβαστεί απο τα σενάρια εκκίνησης του συστήματος.
+ Αυτά τα σενάρια μπορούσαν να εκτελεστούν κατα τα μετέπειτα στάδια
+ εκκίνησης του συστήματος.</para>
+
+ <para>Ενώ πολλοί ιδιώτες ξόδευαν χρόνο προσπαθώντας να συνχωνεύσουν το
+ παλιό στυλ ρυθμίσεων με το νέο στυλ, παραμένει γεγονός ότι μερικά
+ προγράμματα ακόμα απαιτούν ένα σενάριο να τοποθετηθεί μέσα στον
+ προαναφερθέντα κατάλογο. Οι λεπτές διαφορές ανάμεσα στα σενάρια
+ εξαρτώνται από το αν ή όχι ο <filename>rc.d</filename> χρησιμοποιείτε.
+ Προγενέστερα του &os;&nbsp;5.1 το παλιό στυλ ρυθμίσεων χρησιμοποιούνταν
+ και σχεδόν σε όλες τις περιπτώσεις ένα νέου στυλ σενάριο θα είναι
+ συμβατό.</para>
+
+ <para>Ενώ κάθε σενάριο πρέπει να τηρεί ορισμένες ελάχιστες απαιτήσεις, τις
+ περισσότερες φορές αυτές οι απαιτήσεις είναι ανεξάρτητες της έκδοσης του &os;.
+ Κάθε σενάριο πρέπει να έχει μια <filename>.sh</filename>
+ επέκταση προσαρτημένη στο τέλος του και κάθε σενάριο πρέπει να είναι
+ εκτελέσιμο απο το σύστημα. Το δεύτερο μπορεί να επιτευχθεί χρησιμοποιώντας
+ την <command>chmod</command> εντολή και ρυθμίζοντας την άδεια
+ <literal>755</literal>. Εκεί πρέπει να υπάρχει, τουλάχιστον,
+ μια επιλογή <literal>start</literal> και μία επιλογή
+ <literal>stop</literal> για την εφαρμογή.</para>
+
+ <para>Το πιο απλό σενάριο εκκίνησης πιθανότατα να
+ μοιάζει με το παρακάτω:</para>
+
+ <programlisting>#!/bin/sh
+echo -n ' utility'
+
+case "$1" in
+start)
+ /usr/local/bin/utility
+ ;;
+stop)
+ kill -9 `cat /var/run/utility.pid`
+ ;;
+*)
+ echo "Usage: `basename $0` {start|stop}" &gt;&2
+ exit 64
+ ;;
+esac
+
+exit 0</programlisting>
+
+ <para>Το σενάριο αυτό παρέχει μια <literal>stop</literal> και μια
+ <literal>start</literal> επιλογή για
+ την εφαρμογή όπου στο παράδειγμα εδώ αναφέρεται σαν
+ <literal>utility</literal>.</para>
+
+ <para>Μπορεί να εκκινηθεί χειρωνακτικά κάνοντας:</para>
+
+ <screen>&prompt.root; <userinput><filename>/usr/local/etc/rc.d/utility.sh</filename> start</userinput></screen>
+
+ <para>Παρόλο που δεν απαιτούν όλες οι εφαρμογές να προστεθεί μία εγγραφή στο
+ <filename>rc.conf</filename>, σχεδόν καθημερινά και ένα νέο port θα
+ τροποποιήτε για να δέχεται αυτή την ρύθμιση. Ελέγξετε την τελική έξοδο
+ της εγκατάστασης για περισσότερες πληροφορίες πάνω στην συγκεκριμένη
+ εφαρμογή. Μερικές εφαρμογές απο τρίτους κατασκευαστές παρέχουν σενάρια
+ εκκίνησης τα οποία επιτρέπουν στην εφαρμογή να χρησιμοποιηθεί με
+ το <filename>rc.d</filename>, παρόλα αυτα, αυτό θα συζητηθεί στο επόμενο
+ μέρος.</para>
+
+ <sect2>
+ <title>Εκτεταμένη Ρύθμιση Εφαρμογών</title>
+
+ <para>Πλέον το &os; περιέχει το <filename>rc.d</filename>, η ρύθμιση της
+ εκκίνησης των εφαρμογών έχει γίνει ευκολότερη, και πιο πλούσια σε
+ χαρακτηρικά. Χρησιμοποιώντας λέξεις κλειδία μέσα στον
+ κατάλογο <link linkend="configtuning-rcd">rc.d</link>, οι εφαρμογές
+ μπορούν πλέον να εκκινούν έπειτα απο συγκεκριμένες υπηρεσίες για
+ παράδειγμα την <acronym>DNS</acronym>, μπορεί να επιτραπεί η εισαγωγή
+ επιπλέον παραμέτρων μέσα απο το <filename>rc.conf</filename> στην θέση
+ των ήδη υπάρχoντον παραμέτρων απο τα σενάρια εκκινήσης, κτλπ. Ένα
+ βασικό σενάριο μπορεί να μοιάζει με το ακόλουθο:</para>
+
+ <programlisting>#!/bin/sh
+#
+# PROVIDE: utility
+# REQUIRE: DAEMON
+# KEYWORD: shutdown
+
+. /etc/rc.subr
+
+name=utility
+rcvar=utility_enable
+
+command="/usr/local/sbin/utility"
+
+load_rc_config $name
+
+#
+# DO NOT CHANGE THESE DEFAULT VALUES HERE
+# SET THEM IN THE /etc/rc.conf FILE
+#
+utility_enable=${utility_enable-"NO"}
+pidfile=${utility_pidfile-"/var/run/utility.pid"}
+
+run_rc_command "$1"</programlisting>
+
+ <para>Το σενάριο αυτό θα εξασφαλίσει ότι το
+ πρόγραμμα <application>utility</application> θα εκκινηθεί μετά απο
+ την <literal>daemon</literal> υπηρεσία. Θα εξασφαλίσει επιπλέον έναν
+ τρόπο για την ρύθμιση και τον εντοπισμό του <acronym>PID</acronym>, ή
+ του αρχείου του <acronym>ID</acronym> της διεργασίας.</para>
+
+ <para>Η εφαρμογή μπορεί πλέον να έχει την παρακάτω γραμμή τοποθετημένη
+ στο <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>utility_enable="YES"</programlisting>
+
+ <para>Ο νέος αυτός τρόπος επιτρέπει επιπλέον τον ευκολότερο χειρισμό των
+ παραμέτρων της γραμμής εντολών, σε συνδυασμό με τις προυπάρχουσες
+ λειτουργίες παρεχόμενες απο το <filename>/etc/rc.subr</filename>, τη
+ συμβατότητα με το βοηθητικό πρόγραμμα &man.rcorder.8; και επιπλέον την
+ ευκολότερη ρύθμιση μέσω του <filename>rc.conf</filename>
+ αρχείου.</para>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας Υπηρεσίες Για Την Εκκίνηση Υπηρεσιών</title>
+
+ <para>Άλλες υπηρεσίες, όπως ο δαίμονας του
+ εξυπηρετή <acronym>POP</acronym>3, <acronym>IMAP</acronym>,
+ κτλπ. μπορούν να εκκινηθούν χρησιμοποιώντας το &man.inetd.8;. Αυτό
+ απαιτεί την εγκατάσταση του βοηθητικού προγράμματος υπηρεσιών απο την
+ Ports συλλογή και μια γραμμή ρυθμίσεων προσαρτημένη στο
+ αρχείο <filename>/etc/inetd.conf</filename>, ή αποχαρακτηρίζοντας μια
+ απο τις ήδη υπάρχουσες γραμμές ρυθμίσεων. Δουλεύοντας με
+ το <application>inetd</application> και τις ρυθμίσεις του περιγράφεται
+ αναλυτικά στο μέρος <link linkend="network-inetd">inetd</link>.</para>
+
+ <para>Σε πολλές περιπτώσεις, είναι εύλογο να χρησιμοποιείτε ο δαίμονας
+ &man.cron.8; για την εκκίνηση των υπηρεσιών του συστήματος. Η
+ προσέγγιση αυτή έχει έναν αριθμό πλεονεκτημάτων γιατί
+ το <command>cron</command> τρέχει τις διεργασίες σαν ιδιοκτήτης
+ του <filename>crontab</filename> αρχείου. Αυτό επιτρέπει στους
+ κανονικούς χρήστες να εκκινούν και να διαχειρίζονται μερικές
+ εφαρμογές.</para>
+
+ <para>Το βοηθητικό πρόγραμμα <command>cron</command> παρέχει ένα
+ μοναδικό χαρακτηριστικό, το <literal>@reboot</literal>, το οποίο
+ μπορεί να χρησιμοποιηθεί στην θέση του χρονικού ορισμού. Αυτό θα
+ κάνει την εργασία να τρέξει όταν το &man.cron.8; εκκινηθεί, συνήθως
+ κατά την εκκίνηση του συστήματος.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="configtuning-cron">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ <!-- 20 May 2003 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Ρυθμίζοντας Το Πρόγραμμα <command>cron</command></title>
+
+ <indexterm><primary>cron</primary>
+ <secondary>configuration</secondary></indexterm>
+
+ <para>Ένα απο τα πιο χρήσιμα βοηθητικά προγράμματα στο &os; είναι το
+ &man.cron.8;. Το πρόγραμμα <command>cron</command> τρέχει στο
+ παρασκήνιο και συνεχώς ελέγχει το
+ αρχείο <filename>/etc/crontab</filename>. Το <command>cron</command>
+ ελέγχει επίσης τον κατάλογο <filename class="directory">/var/cron/tabs</filename>,
+ αναζητώντας καινούργια αρχεία <filename>crontab</filename>. Τα
+ αρχεία <filename>crontab</filename> έχουν αποθηκευμένες πληροφορίες για
+ συγκεκριμένες διαδικασίες τις οποίες το <command>cron</command> πρέπει
+ να εκτελέσει σε συγκεκριμένο χρόνο.</para>
+
+ <para>Το <command>cron</command> χρησιμοποιεί δύο διαφορετικούς τύπους
+ αρχείων ρυθμίσεων, το crontab του συστήματος και το crontab των χρηστών.
+ Η μόνη διαφορά ανάμεσα στους δύο αυτούς τύπους είναι το έκτο πεδίο. Στο
+ crontab του συστήματος, το έκτο πεδίο είναι το όνομα του χρήστη με του
+ οποίου θα εκτελεστεί η εντολή. Αυτό δίνει την δυνατότητα στο crontab του
+ συστήματος να εκτελεί εντολές σαν οποιοδήποτε χρήστης. Στο crontab των
+ χρηστών, το έκτο πεδίο είναι η εντολή που πρέπει να εκτελεστεί, και όλες
+ οι εντολές εκτελούνται στο όνομα του χρήστη που δημιούργησε το crontab;
+ αυτό είναι ένα σημαντικό χαρακτηριστικό ασφαλείας.</para>
+
+ <note>
+ <para>Τα crontabs των χρηστών επιτρέπουν σε μεμονωμένους χρήστες να
+ προγραμματίσουν εργρασίες χωρίς την ανάγκη <username>root</username>
+ δικαιωμάτον. Οι εντολές μέσα στο crontab ενός χρήστη τρέχουν με τα
+ δικαιώματα του χρήστη του οποίου ανήκει το crontab.</para>
+
+ <para>Ο χρήστης <username>root</username> μπορεί να έχει ένα crontab
+ χρήστη ακριβώς όπως κάθε χρήστης. Αυτό είναι διαφορετικό απο
+ το <filename>/etc/crontab</filename> (το crontab του συστήματος). Λόγο
+ του crontab του συστήματος, δεν υπάρχει συνήθως καμία ανάγκη για την
+ δημιουργία ενός ξεχωριστού crontab για τον
+ χρήστη <username>root</username>.</para>
+ </note>
+
+ <para>Ας ρίξουμε μια ματία στο αρχείο <filename>/etc/crontab</filename>
+ (το crontab του συστήματος):</para>
+
+
+ <programlisting># /etc/crontab - root's crontab for &os;
+#
+# &dollar;&os;: src/etc/crontab,v 1.32 2002/11/22 16:13:39 tom Exp &dollar;
+# <co id="co-comments">
+#
+SHELL=/bin/sh
+PATH=/etc:/bin:/sbin:/usr/bin:/usr/sbin <co id="co-env">
+HOME=/var/log
+#
+#
+#minute hour mday month wday who command <co id="co-field-descr">
+#
+#
+*/5 * * * * root /usr/libexec/atrun <co id="co-main">
+</programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-comments">
+ <para>Όπως στα περισσότερα αρχεία ρυθμίσεων στο &os;, ο
+ χαρακτήρας <literal>#</literal> παριστάνει ένα σχόλιο. Ένα σχόλιο
+ μπορεί να τοποθετηθεί μέσα στο αρχείο σαν υπενθύμιση για το τι
+ πραγματοποιεί και γιατί μία ενέργεια. Τα σχόλια δεν μπορούν να
+ είναι στην ίδια γραμμή με μία εντολή γιατί αλλιώς θα ερμηνευτούν σαν
+ κομμάτι της εντολής; πρέπει να είναι σε μία νέα γραμμή. Οι κενές
+ γραμμές αγνοούνται.</para>
+ </callout>
+
+ <callout arearefs="co-env">
+ <para>Καταρχήν, πρέπει να καθοριστεί το περιβάλλον. Ο χαρακτήρας ίσον
+ (<literal>=</literal>) χρησιμοποιείτε για να καθορίσει τις ρυθμίσεις
+ του περιβάλλοντος, όπως σε αυτό το παράδειγμα που χρησιμοποιούνται
+ οι μεταβλητές <envar>SHELL</envar>, <envar>PATH</envar>,
+ και <envar>HOME</envar>. Αν η γραμμή του κέλυφους παραμεληθεί,
+ το <command>cron</command> θα χρησιμοποιήσει την προεπιλεγμένη, οι
+ οποία είναι η <command>sh</command>. Αν η
+ μεταβλητή <envar>PATH</envar> παραμεληθεί, δεν θα χρησιμοποιηθεί
+ προεπιλεγμένη και η τοποθεσίες των αρχείων θα πρέπει να καθοριστούν
+ με ακρίβεια. Αν η <envar>HOME</envar> παραμεληθεί,
+ το <command>cron</command> θα χρησιμοποιήσει τον κεντρικό κατάλογο
+ των εκάστοτε χρηστών.</para>
+ </callout>
+
+ <callout arearefs="co-field-descr">
+ <para>Η γραμμή αυτή καθορίζει συνολικά επτά πεδία. Τα πεδία αυτά
+ είναι τα <literal>minute</literal>, <literal>hour</literal>,
+ <literal>mday</literal>, <literal>month</literal>,
+ <literal>wday</literal>, <literal>who</literal>,
+ και <literal>command</literal>. Αυτά είναι απο μόνα τους
+ επεξηγηματικά. Το πεδίο <literal>minute</literal> είναι ο χρόνος σε
+ λεπτά τον οποίον η εντολή θα εκτελεστεί. Το
+ πεδίο <literal>hour</literal> είναι παρόμοιο με το πεδίο
+ <literal>minute</literal>, απλά είναι σε ώρες. Το
+ πεδίο <literal>mday</literal> καθορίζει την ημέρα του μήνα. Το
+ πεδίο <literal>month</literal> είναι παρόμοιο με το
+ πεδίο <literal>hour</literal> και το
+ πεδίο <literal>minute</literal>, υποδεικνύοντας τον μήνα. Το
+ πεδίο <literal>wday</literal> καθορίζει την ημέρα της εβδομάδας.
+ Όλα αυτά τα πεδία πρέπει να έχουν αριθμητικές τιμές, και να
+ ακολουθούν το είκοσι-τετράωρο ρολόι. Το
+ πεδίο <literal>who</literal> είναι ιδιαίτερο, και υπάρχει μόνο μέσα
+ στο αρχείο <filename>/etc/crontab</filename>. Το πεδίο αυτό
+ καθορίζει σαν ποιός χρήστης θα τρέξει την εντολή. Όταν ένας χρήστης
+ εγκαθιστά το <filename>crontab</filename> αρχείο του, δεν θα έχει το
+ πεδίο αυτό διαθέσιμο. Τέλος, θα ακολουθήσει η
+ επιλογή <literal>command</literal>. Αυτό είναι το τελευταίο πεδίο,
+ έτσι και λογικά υποδεικνύει την εντολή που θα εκτελεστεί.</para>
+ </callout>
+
+ <callout arearefs="co-main">
+ <para>Η τελευταία αυτή γραμμή θα καθορίσει τα μεγέθοι που συζητήθηκαν
+ παραπάνω. Προσέξτε εδώ ότι έχουμε έναν
+ ορισμό <literal>*/5</literal>, ακολουθούμενο απο αρκετούς
+ χαρακτήρες <literal>*</literal>. Οι χαρακτήρες <literal>*</literal>
+ σημαίνουν <quote>πρώτο-τελευταίο</quote>, και μπορούν να ερμηνευθούν
+ σαν <emphasis>κάθε</emphasis> φορά. Έτσι, κρίνοντας απο αυτή την
+ γραμμή, είναι προφανές ότι η εντολή <command>atrun</command>
+ επικαλείται απο τον χρήστη <username>root</username> κάθε πέντε
+ λεπτά ανεξάρτητα απο την ημέρα και τον μήνα. Για περισσότερες
+ πληροφορίες σχετικά με την εντολή <command>atrun</command>, κοιτάξτε
+ την σελίδα βοηθείας &man.atrun.8;.</para>
+
+ <para>Οι εντολές μπορούν να έχουν απεριόριστο αριθμό παραμέτρων,
+ ωστόσο, οι εντολές με εκτεταμένο αριθμό γραμμών πρέπει να
+ διασπαστούν με τον χαρακτήρα συνέχειας αντίθετης
+ καθέτου <quote>\</quote>.</para>
+ </callout>
+ </calloutlist>
+
+ <para>Αυτές είναι οι βασικές ρυθμίσεις για κάθε
+ αρχείο <filename>crontab</filename>, ωστόσο υπάρχει και κάτι
+ διαφορετικό. Το πεδίο έξι, όπου και καθορίζουμε το όνομα χρήστη,
+ υπάρχει μόνο στο αρχείο του
+ συστήματος <filename>/etc/crontab</filename>. Το πεδίο αυτό πρέπει να
+ παραλειφθεί για κάθε <filename>crontab</filename> αρχείο χρήστη.</para>
+
+
+ <sect2 id="configtuning-installcrontab">
+ <title>Εγκαθιστώντας Ένα Crontab</title>
+
+ <important>
+ <para>Δεν θα πρέπει να χρησιμοποιήσετε την διαδικασία που περιγράφεται
+ εδώ για την διόρθωση/εγκατάσταση του crontab του συστήματος. Απλά
+ χρησιμοποιήστε τον αγαπημένο σας κειμενογράφο:
+ το <command>cron</command> θα εντοπίσει ότι το αρχείο έχει
+ τροποποιηθεί και θα αρχίσει άμεσα να χρησιμοποιεί την ανανεωμένη
+ έκδοση του.
+ Δείτε <ulink url="&url.books.faq;/admin.html#ROOT-NOT-FOUND-CRON-ERRORS">αυτή
+ την εγγραφή του FAQ </ulink> για περισσότερες πληροφορίες.</para>
+ </important>
+
+ <para>Για να εγκαταστήσετε ένα νέο <filename>crontab</filename> χρήστη,
+ πρώτα χρησιμοποιήστε τον αγαπημένο σας κειμενογράφο για να
+ δημιουργήσετε ένα αρχείο με το απαιτούμενο τύπο, και τότε
+ χρησιμοποιήστε το <command>crontab</command>. Η πιο κοινή χρήση του
+ είναι:</para>
+
+ <screen>&prompt.user; <userinput>crontab crontab-file</userinput></screen>
+
+ <para>Στο παράδειγμα αυτό, το αρχείο <filename>crontab-file</filename>
+ είναι το όνομα του αρχείου <filename>crontab</filename> που είχε
+ δημιουργηθεί προηγουμένως.</para>
+
+ <para>Υπάρχει επίσης μία επιλογή για να απαριθμήσετε τα εγκατεστημένα
+ αρχεία <filename>crontab</filename>: απλά εισάγετε την
+ επιλογή <option>-l</option> στην εντολή <command>crontab</command> και
+ ελέγξτε το αποτέλεσμα.</para>
+
+ <para>Για τους χρήστες που θέλουν να αρχίσουν το crontab αρχείο τους απο
+ την αρχή, χωρίς την χρήση προτύπου, μπορούν να χρησιμοποιήσουν την
+ εντολή <command>crontab -e</command>. Αυτή η εντολή θα ξεκινήσει τον
+ κειμενογράφο με ένα κενό αρχείο. Όταν το αρχείο αποθηκευθεί, θα
+ εγκατασταθεί αυτόματα απο την
+ εντολή <command>crontab</command>.</para>
+
+ <para>Αν αργότερα θέλετε να διαγράψετε το <filename>crontab</filename>
+ αρχείο χρήστη τελείως, χρησιμοποιήστε την
+ εντολή <command>crontab</command> μαζί με την
+ επιλογή <option>-r</option>.
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="configtuning-rcd">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ <!-- 16 May 2003 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Χρησιμοποιώντας Το Σύστημα rc Στο &os;</title>
+
+ <para>Το 2002 το &os; ενσωμάτωσε το σύστημα <filename>rc.d</filename> του
+ NetBSD για την εκκίνηση του συστήματος. Οι χρήστες θα πρέπει να έχουν
+ αντιληφθεί τα αρχεία που βρίσκονται στον
+ κατάλογο <filename class="directory">/etc/rc.d</filename>. Πολλά απο αυτά τα αρχεία είναι
+ για τις βασικές υπηρεσίες και μπορούν να ελεγθούν με τις
+ επιλογές <option>start</option>, <option>stop</option>,
+ και <option>restart</option>. Για παράδειγμα, το &man.sshd.8; μπορεί να
+ ελεγθεί χρησιμοποιώντας την εξής εντολή:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/sshd restart</userinput></screen>
+
+ <para>Η διαδικασία αυτή είναι παρόμοια και για τις υπόλοιπες υπηρεσίες.
+ Φυσικά, οι υπηρεσίες αυτές είναι συνήθως αυτόματα εκκινήσιμες κατα την
+ εκκίνηση του συστήματος όπως και καθορίζεται στο &man.rc.conf.5;. Για
+ παράδειγμα, ενεργοποιώντας τον δαίμονα Network Address Translation στην
+ εκκίνηση είναι τόσο απλό όσο κάνοντας προσθήκη της ακόλουθης γραμμής
+ στο <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>natd_enable="YES"</programlisting>
+
+ <para>Αν η επιλογή <option>natd_enable="NO"</option> είναι ήδη παρούσα,
+ τότε απλά αλλάζετε την επιλογή <option>NO</option>
+ σε <option>YES</option>. Τα σενάρια rc θα φορτώσουν αυτόματα
+ οποιαδήποτε εξαρτώμενη υπηρεσία κατά την διάρκεια της επόμενης
+ εκκίνησης, όπως και περιγράφεται παρακάτω.</para>
+
+ <para>Μιας και το σύστημα <filename>rc.d</filename> είναι κυρίως για την
+ εκκίνηση και τον τερματισμό υπηρεσιών κατα την εκκίνηση και τον
+ τερματισμό του συστήματος αντίστοιχα, οι προκαθορισμένες
+ επιλογές <option>start</option>, <option>stop</option>
+ και <option>restart</option> θα πραγματοποιήσουν τις αντίστοιχες
+ ενέργειες αν η κατάλληλες μεταβλητές είναι καθορισμένες
+ στο <filename>/etc/rc.conf</filename>. Για παράδειγμα η παραπάνω
+ εντολή <command>sshd restart</command> θα δουλέψει μόνο αν η
+ μεταβλητή <varname>sshd_enable</varname> έχει τεθεί σε
+ <option>YES</option> μέσα στο <filename>/etc/rc.conf</filename>. Για να
+ εκτελέσετε τις επιλογές <option>start</option>, <option>stop</option>
+ ή <option>restart</option> μιας υπηρεσίας ανεξάρτητα απο τις ρυθμίσεις
+ της στο <filename>/etc/rc.conf</filename>, η εντολή πρέπει να έχει
+ χαρακτηριστεί με <quote>one</quote>. Για παράδειγμα για την
+ επανεκκίνηση του <command>sshd</command> ανεξάρτητα απο τις τρέχουσες
+ ρυθμίσεις στο <filename>/etc/rc.conf</filename>, εκτελείτε την ακόλουθη
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/sshd onerestart</userinput></screen>
+
+ <para>Είναι εύκολο να ελέγξετε αν η υπηρεσία είναι ενεργοποιημένη
+ στο <filename>/etc/rc.conf</filename> τρέχοντας το κατάλληλο
+ σενάριο <filename>rc.d</filename> με την
+ παράμετρο <option>rcvar</option>. Κατά συνέπεια, ένας διαχειριστής
+ μπορεί να ελέγξει αν το <command>sshd</command> είναι όντως
+ ενεργοποιημένο στο <filename>/etc/rc.conf</filename> εκτελώντας:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/sshd rcvar</userinput>
+# sshd
+$sshd_enable=YES</screen>
+
+ <note>
+ <para>Η δεύτερη γραμμή (<literal># sshd</literal>) είναι η έξοδος της
+ εντολής <command>sshd</command>, και όχι η κονσολά του
+ χρήστη <username>root</username>.</para>
+ </note>
+
+ <para>Για να ελέγξετε αν μια υπηρεσία τρέχει, η
+ επιλογή <option>status</option> είναι διαθέσιμη. Για παράδειγμα για να
+ επιβεβαιώστε ότι η υπηρεσία <command>sshd</command> τρέχει:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/sshd status</userinput> sshd is
+ running as pid 433.</screen>
+
+ <para>Σε πολλές περιπτώσεις είναι δυνατόν το <option>reload</option> μίας
+ υπηρεσίας. Αυτό θα στείλει ένα σήμα στην υπηρεσία, επιβάλλοντας της να
+ ξαναφορτώσει τα αρχεία ρυθμίσεων της. Στην πραγματικότητα αυτό σημαίνει
+ ότι θα στείλει ένα σήμα <literal>SIGHUP</literal> στην υπηρεσία. Η
+ υποστήριξη για αυτό το χαρακτηριστικό δεν παρέχεται σε κάθε
+ υπηρεσία.</para>
+
+ <para>Το σύστημα <filename>rc.d</filename> δεν χρησιμοποιείτε μόνο για τις
+ υπηρεσίες δικτύου, αλλά επίσης συμβάλει και κατα την εκκίνηση του
+ συστήματος. Για παράδειγμα, σκεφτείτε το
+ αρχείο <filename>bgfsck</filename>. Όταν ένα σενάριο εκτελείτε, θα
+ εκτυπώνει το ακόλουθο μήνυμα:</para>
+
+ <screen>Starting background file system checks in 60 seconds.</screen>
+
+ <para>Επομένος το αρχείο αυτό χρησιμοποιείτε στο παρασκήνιο για τον έλεγχο
+ του συστήματος αρχείων, ο οποίος και συμβαίνει κατα στην εκκίνηση του
+ συστήματος.</para>
+
+ <para>Πολλές υπηρεσίες εξαρτώνται από άλλες υπηρεσίες για να τα καταφέρουν
+ να λειτουργήσουν σωστά. Για παράδειγμα, η υπηρεσία NIS και άλλες
+ βασισμένες στο RPC υπηρεσίες θα αποτύχουν να εκκινηθούν αν η
+ υπηρεσία <command>rpcbind</command> (portmapper) δεν έχει ήδη εκκινηθεί.
+ Για να λύθει το πρόβλημα αυτό, υπάρχουν πληροφορίες για τις εξαρτήσεις
+ και άλλα μετα-δεδομένα μέσα στα σχόλια στην αρχή κάθε σεναρίου. Το
+ πρόγραμμα &man.rcorder.8; χρησιμοποιείτε για την ανάλυση των σχολίων
+ αυτών κατά την εκκίνηση του συστήματος για να καθορίστει με ποιά σειρά
+ θα πρέπει να εκκινηθούν οι υπηρεσίες ώστε να εκπληρωθούν οι εξαρτήσεις.
+ Οι επόμενες προτάσεις μπορούν να περιληφθούν μέσα σε κάθε αρχείο
+ εκκίνησης:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>PROVIDE</literal>: Καθόριζει την υπηρεσία που παρέχει
+ το αρχείο αυτό.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>REQUIRE</literal>: Απαριθμεί τις υπηρεσίες που
+ απαιτούνται για την την υπηρεσία αυτή. Το αρχείο αυτό θα
+ εκτελεστεί <emphasis>μετά</emphasis> απο την καθορισμένη
+ υπηρεσία.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>BEFORE</literal>: Απαριθμεί τις υπηρεσίες οι οποίες
+ εξαρτώνται απο την υπηρεσία αυτή. Το αρχείο αυτό θα
+ εκτελεστεί <emphasis>πρίν</emphasis> τις καθορισμένες
+ υπηρεσίες.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Χρησιμοποιώντας την μέθοδο αυτή, οι διαχειριστές μπορούν εύκολα να
+ ελέγξουν τις υπηρεσίες του συστήματος χωρίς τα
+ δυσνόητα <quote>runlevels</quote> όπως σε μερικά άλλα λειτουργικά
+ συστήματα &unix;.</para>
+
+ <para>Επιπλέον πληροφορίες για το σύστημα <filename>rc.d</filename>
+ μπορούν να βρεθούν στις σελίδες βοηθείας &man.rc.8; και &man.rc.subr.8;.
+ Αν ενδιαφέρεστε για την εγγραφή δικών σας
+ σεναρίων <filename>rc.d</filename> ή για την βελτίωση των ήδη
+ υπάρχοντων, θα βρείτε <ulink url="&url.articles.rc-scripting">τον
+ σύνδεσμο αυτόν</ulink> αρκετά χρήσιμο.</para>
+ </sect1>
+
+ <sect1 id="config-network-setup">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Contributed by </contrib>
+ <!-- 6 October 2002 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Ρυθμίζοντας Τις Κάρτες Δικτύου</title>
+
+ <indexterm>
+ <primary>network cards</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <para>Την σήμερον εποχή δεν μπορούμε να σκεφτούμε έναν υπολογιστή χωρίς να
+ σκεφτούμε και μία σύνδεση δικτύου. Προσθέτοντας και ρυθμίζοντας μια
+ κάρτα δικτύου είναι μία συνηθισμένη εργασία για έναν οποιοδήποτε
+ διαχειριστή του &os;.</para>
+
+ <sect2>
+ <title>Εντοπίζοντας Τον Σωστό Οδηγό</title>
+
+ <indexterm>
+ <primary>network cards</primary>
+ <secondary>driver</secondary>
+ </indexterm>
+
+ <para>Πριν αρχίσετε, θα πρέπει να γνωρίζετε το μοντέλο της κάρτας που
+ έχετε, ποιό chip χρησιμοποιεί, και αν είναι PCI ή ISA κάρτα. Το &os;
+ υποστηρίζει ένα μεγάλο εύρος καρτών PCI και ISA. Ελέγξτε την Λίστα
+ Συμβατότητας Υλικού για την έκδοση σας για να δείτε αν η κάρτα σας
+ υποστηρίζεται.</para>
+
+ <para>Εφόσον είστε πλέον σίγουρος ότι η κάρτα σας υποστηρίζεται, θα
+ χρειαστεί να καθορίσετε τον κατάλληλο οδηγό για την κάρτα σας. Το
+ αρχείο <filename>/usr/src/sys/conf/NOTES</filename> και το
+ αρχείο <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/NOTES</filename>
+ θα σας δώσουν μια λίστα με κάρτες δικτύου και μερικές πληροφορίες για
+ τα υποστηριζόμενα chipsets και τις υποστηριζόμενες κάρτες. Αν έχετε
+ αμφιβολίες για το ποιός οδηγός είναι ο σωστός, διαβάστε την σελίδα
+ βοηθείας του οδηγού. Η σελίδα βοηθείας θα σας δώσει περισσότερες
+ πληροφορίες σχετικά με το υποστηριζόμενο υλικό και ακόμα και για τα
+ πιθανά προβλήματα που μπορεί να προκύψουν.</para>
+
+ <para>Αν έχετε μια συνηθισμένη κάρτα, κατα πάσα πιθανότητα δεν θα
+ χρειαστεί να ψάξετε πολύ για τον οδηγό. Οι οδηγοί για τις
+ συνηθισμένες κάρτες δικτύου υπάρχουν στον
+ πυρήνα <filename>GENERIC</filename>, έτσι ώστε και θα εμφανιστεί κατα
+ την διάρκεια της εκκίνησης, για παράδειγμα:</para>
+
+<screen>dc0: &lt;82c169 PNIC 10/100BaseTX&gt; port 0xa000-0xa0ff mem 0xd3800000-0xd38
+000ff irq 15 at device 11.0 on pci0
+dc0: Ethernet address: 00:a0:cc:da:da:da
+miibus0: &lt;MII bus&gt; on dc0
+ukphy0: &lt;Generic IEEE 802.3u media interface&gt; on miibus0
+ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
+dc1: &lt;82c169 PNIC 10/100BaseTX&gt; port 0x9800-0x98ff mem 0xd3000000-0xd30
+000ff irq 11 at device 12.0 on pci0
+dc1: Ethernet address: 00:a0:cc:da:da:db
+miibus1: &lt;MII bus&gt; on dc1
+ukphy1: &lt;Generic IEEE 802.3u media interface&gt; on miibus1
+ukphy1: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto</screen>
+
+ <para>Στο παράδειγμα αυτό, βλέπουμε ότι δύο κάρτες που χρησιμοποιούν τον
+ οδηγό &man.dc.4; έχουν εντοπιστεί στο σύστημα.</para>
+
+ <para>Αν ο οδηγός της NIC σας δεν είναι παρόν
+ στον <filename>GENERIC</filename>, θα πρέπει να φορτώσετε τον
+ κατάλληλο οδηγό για να χρησιμοποιήσετε την NIC σας. Αυτό μπορεί να
+ επιτευχθεί με έναν απο τους δύο αυτούς τρόπους:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ο ποιό εύκολο τρόπος είναι απλά να φορτώσετε ένα άρθρωμα του
+ πυρήνα για την κάρτα δικτύου σας με το &man.kldload.8;, ή αυτόματα
+ κατα την εκκίνηση προσθέτοντας την κατάλληλη γραμμή στο
+ αρχείο <filename>/boot/loader.conf</filename>. Δεν είναι όλοι οι
+ οδηγοί NIC διαθέσιμοι σαν αρθρώματα, χαρακτηριστικά παραδείγματα
+ είναι τα αρθρώματα για συσκευές ISA.</para>
+ </listitem>
+
+ <listitem>
+ <para>Εναλλακτικά, μπορείτε να μεταγλώττισετε στατικά την υποστήριξη
+ για την κάρτα σας στον πυρήνα. Ελέγξετε το
+ αρχείο <filename>/usr/src/sys/conf/NOTES</filename>,
+ το <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/NOTES</filename>
+ και την σελίδα βοηθείας του οδηγού για να μάθετε τι πρέπει να
+ προσθέσετε στο αρχείο ρυθμίσεων του πυρήνα. Για περισσότερες
+ πληροφορίες για το πως να μεταγλωττίσετε τον πυρήνα, παρακαλώ
+ διαβάστε το <xref linkend="kernelconfig">. Αν η κάρτα σας
+ εντοπιστεί κατα την εκκίνηση απο τον πυρήνα
+ (<filename>GENERIC</filename>) δεν χρειάζετε να μεταγλώττισετε
+ έναν νέο πυρήνα.</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect3 id="config-network-ndis">
+ <title>Χρησιμοποιώντας Οδηγούς &windows; Με Το NDIS</title>
+
+ <indexterm><primary>NDIS</primary></indexterm>
+ <indexterm><primary>NDISulator</primary></indexterm>
+ <indexterm><primary>&windows; drivers</primary></indexterm>
+ <indexterm><primary>Microsoft Windows</primary></indexterm>
+ <indexterm><primary>Microsoft Windows</primary>
+ <secondary>device drivers</secondary></indexterm>
+ <indexterm><primary>KLD (kernel loadable
+ object)</primary></indexterm>
+<!-- We should probably omit the expanded name, and add a <see> entry
+for it. Whatever is done must also be done to the same indexterm in
+linuxemu/chapter.sgml -->
+
+ <para>Δυστυχώς, υπάρχουν ακόμα πολλοί κατασκευαστές που δεν παρέχουν
+ τεχνικές προδιαγραφές για τους οδηγούς τους στην κοινότητα του
+ ανοικτού λογισμικού γιατί αντιμετωπίζουν τέτοιες πληροφορίες σαν
+ μυστικά του εμπορίου. Συνεπώς, οι υπεύθυνοι για την ανάπτυξη του
+ &os; και άλλων λειτουργικών συστημάτων μένουν με δύο επιλογές: να
+ αναπτύξουν οδηγούς με την μακρά και επίπονη διαδικασία της
+ αντίστροφης μηχανικής ή να χρησιμοποιήσουν ήδη υπάρχοντες οδηγούς σε
+ δυαδική μορφή διαθέσιμους για την πλατφόρμα &microsoft.windows;. Οι
+ περισσότεροι υπεύθυνοι για την ανάπτυξη, μεταξύ τους και αυτοί που
+ εμπλέκονται με το &os;, έχουν επιλέξει την δεύτερη
+ προσέγγιση.</para>
+
+ <para>Χάρη την προσφορά του Bill Paul (wpaul), μιάς και απο το
+ &os;&nbsp;5.3-RELEASE υπάρχει <quote>γηγενής</quote> υποστήριξη για
+ το Network Driver Interface Specification (NDIS). Το έργο &os;
+ NDISulator (διαφορετικά γνωστό σας Project Evil) παίρνει έναν οδηγό
+ &windows; σε δυαδική μορφή και στην ουσία τον εξαπατά ώστε να
+ νομίζει ότι τρέχει σε &windows;. Λόγο του ότι ο οδηγός &man.ndis.4;
+ χρησιμοποιεί μία &windows; δυαδική μορφή, μπορεί να χρησιμοποιηθεί
+ μόνο σε &i386; και amd64 συστήματα.</para>
+
+ <note>
+ <para>Ο οδηγός &man.ndis.4; είναι σχεδιασμένος ώστε να υποστηρίζει
+ κυρίως συσκευές PCI, CardBus και PCMCIA, οι συσκευές USB δεν
+ υποστηρίζονται ακόμα.</para>
+ </note>
+
+ <para>Για να χρησιμοποιήσετε τον NDISulator, θα χρειαστείτε τρία
+ πράγματα:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Τον πηγαίο κώδικα του πυρήνα</para>
+ </listitem>
+ <listitem>
+ <para>Την &windowsxp; δυαδική μορφή του οδηγού
+ (<filename>.SYS</filename> επέκταση)</para>
+ </listitem>
+ <listitem>
+ <para>Το &windowsxp; αρχείο ρυθμίσεων του οδηγού
+ (<filename>.INF</filename> επέκταση)</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Εντοπίστε τα αρχεία αυτά για την κάρτα σας. Γενικά, αυτά
+ μπορούν να βρεθούν στα παρεχόμενα CDs ή στους ιστότοπους των
+ κατασκευαστών. Στα ακόλουθα παραδείγματα, θα χρησιμοποιήσουμε τα
+ αρχεία <filename>W32DRIVER.SYS</filename>
+ και <filename>W32DRIVER.INF</filename>.</para>
+
+ <note>
+ <para>Δεν μπορείτε να χρησιμοποιήσετε οδηγούς &windows;/i386 σε
+ συστήματα &os;/amd64, θα πρέπει να βρείτε οδηγούς &windows;/amd64
+ για να δουλέψουν σωστά.</para>
+ </note>
+
+ <para>Το επόμενο βήμα είναι να μεταγλωττίσετε τον δυαδικό οδηγό μέσα
+ σε ένα φορτώσιμο άρθρωμα του πυρήνα. Για να το επιτύχετε αυτό, θα
+ πρέπει σαν <username>root</username>, να χρησιμοποιήσετε το
+ &man.ndisgen.8;:</para>
+
+ <screen>&prompt.root; <userinput>ndisgen <replaceable>/path/to/W32DRIVER.INF</replaceable> <replaceable>/path/to/W32DRIVER.SYS</replaceable></userinput></screen>
+
+ <para>Το βοηθητικό πρόγραμμα &man.ndisgen.8; είναι διαδραστικό και θα
+ σας ενημερώσει για οποιαδήποτε επιπλέον πληροφορία μπορεί να
+ χρειαστεί; θα παράγει ένα άρθρωμα του πυρήνα στον τρέχωντα κατάλογο
+ και μπορεί να φορτωθεί ως εξής:</para>
+
+ <screen>&prompt.root; <userinput>kldload <replaceable>./W32DRIVER.ko</replaceable></userinput></screen>
+
+ <para>Επιπλέον του παραχθέντος αρθρώματος, θα πρέπει να φορτώσετε τα
+ αρθρώματα <filename>ndis.ko</filename>
+ και <filename>if_ndis.ko</filename>. Αυτό θα πρέπει να γίνει
+ αυτόματα όταν φορτώνετε οποιαδήποτε εξαρτάται απο το &man.ndis.4;.
+ Αν θέλετε να το κάνετε χειρωνακτικά, θα πρέπει να χρησιμοποιήσετε
+ τις ακόλουθες εντολές:</para>
+
+ <screen>&prompt.root; <userinput>kldload ndis</userinput>
+&prompt.root; <userinput>kldload if_ndis</userinput></screen>
+
+ <para>Η πρώτη εντολή φορτώνει τον οδηγό NDIS miniport wrapper, ενώ η
+ δεύτερη φορτώνει την πραγματική κάρτα δικτύου.</para>
+
+ <para>Τώρα, ελέγξτε το &man.dmesg.8; για να δείτε αν υπάρχουν σφάλματα
+ κατα την φόρτωση. Αν όλα πήγαν καλά, θα πρέπει να δείτε μια
+ παρόμοια έξοδο με την επόμενη:</para>
+
+ <screen>ndis0: &lt;Wireless-G PCI Adapter&gt; mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
+ndis0: NDIS API version: 5.0
+ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
+ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
+ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54Mbps</screen>
+
+ <para>Απο εδώ και πέρα μπορείτε να χειριστείτε την
+ συσκευή <devicename>ndis0</devicename> σαν μια οποιαδήποτε κάρτα
+ δικτύου (π.χ., <devicename>dc0</devicename>).</para>
+
+ <para>Μπορείτε να ρυθμίσετε το σύστημα να φορτώνει τα NDIS αρθρώματα
+ κατα την εκκίνηση με τον ίδιο τρόπο με τα όπως με οποιαδήποτε άλλα
+ αρθρώματα. Πρώτα, αντιγράψτε το παραχθείσα
+ άρθρωμα, <filename>W32DRIVER.ko</filename>, στον
+ κατάλογο <filename class="directory">/boot/modules</filename>.
+ Τότε, προσθέστε την ακόλουθη γραμμή στο
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>W32DRIVER_load="YES"</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ρυθμίζοντας Την Κάρτα Δικτύου</title>
+
+ <indexterm>
+ <primary>network cards</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <para>Μόλις ο κατάλληλος οδηγός φορτωθεί για την κάρτα δικτύου,
+ χρειάζεται να ρυθμιστεί. Όπως πολλά άλλα πράγματα, η κάρτα δικτύου
+ είχε ρυθμιστεί κατα την στιγμή της εγκατάστασης με
+ το <application>sysinstall</application>.</para>
+
+ <para>Για να εμφανίσετε τις κάρτες δικτύου που έχετε στο σύστημα σας,
+ πληκτρολογήστε την ακόλουθη εντολή:</para>
+
+<screen>&prompt.user; <userinput>ifconfig</userinput>
+dc0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet 192.168.1.3 netmask 0xffffff00 broadcast 192.168.1.255
+ ether 00:a0:cc:da:da:da
+ media: Ethernet autoselect (100baseTX &lt;full-duplex&gt;)
+ status: active
+dc1: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet 10.0.0.1 netmask 0xffffff00 broadcast 10.0.0.255
+ ether 00:a0:cc:da:da:db
+ media: Ethernet 10baseT/UTP
+ status: no carrier
+lp0: flags=8810&lt;POINTOPOINT,SIMPLEX,MULTICAST&gt; mtu 1500
+lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; mtu 16384
+ inet 127.0.0.1 netmask 0xff000000
+tun0: flags=8010&lt;POINTOPOINT,MULTICAST&gt; mtu 1500</screen>
+
+ <note>
+ <para>Παλαιότερες εκδόσεις του &os; μπορεί να χρειάζονται την
+ παράμετρο <option>-a</option> ακολουθούμενη στην &man.ifconfig.8;,
+ για περισσότερες λεπτομέρειες σχετικά με την σωστή σύνταξη του
+ &man.ifconfig.8;, παρακαλώ ανατρέξτε στην σελίδα βοηθείας.
+ Σημειώστε επίσης ότι οι εγγραφές που αφορούν το IPv6
+ (<literal>inet6</literal> κτλπ.) έχουν παραμεληθεί σε αυτό το
+ παράδειγμα.</para>
+ </note>
+
+ <para>Σε αυτό το παράδειγμα, οι ακόλουθες συσκευές έχουν
+ εμφανιστεί:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><devicename>dc0</devicename>: Η πρώτη Ethernet κάρτα
+ δικτύου</para>
+ </listitem>
+
+ <listitem>
+ <para><devicename>dc1</devicename>: Η δεύτερη Ethernet κάρτα
+ δικτύου</para>
+ </listitem>
+
+ <listitem>
+ <para><devicename>lp0</devicename>: Η παράλληλη πόρτα
+ </para>
+ </listitem>
+
+ <listitem>
+ <para><devicename>lo0</devicename>: Η συσκευή loopback</para>
+ </listitem>
+
+ <listitem>
+ <para><devicename>tun0</devicename>: Η συσκευή tunnel χρησιμοποιούμενη
+ απο το πρόγραμμα <application>ppp</application></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Το &os; χρησιμοποιεί τα ονόματα των οδηγών με την σειρά κατα την
+ οποία εντοπίστηκαν οι αντίστοιχες κάρτες κατα την εκκίνηση. Για
+ παράδειγμα η συσκευή <devicename>sis2</devicename> θα είναι η τρίτη
+ κάρτα δικτύου που χρησιμοποιεί τον οδηγό &man.sis.4;.</para>
+
+ <para>Στο παράδειγμα αυτό, η συσκευή <devicename>dc0</devicename> είναι
+ πάνω και τρέχει. Οι λέξεις κλειδία είναι:</para>
+
+ <orderedlist>
+ <listitem>
+ <para><literal>UP</literal> σημαίνει ότι η κάρτα είναι ρυθμισμένη
+ και έτοιμη.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η κάρτα έχει μία Internet διεύθυνση (<literal>inet</literal>)
+ ρυθμισμένη (σε αυτή την
+ περίπτωση <hostid role="ipaddr">192.168.1.3</hostid>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Έχει μία έγκυρη μάσκα υποδικτύου
+ (<literal>netmask</literal>; <hostid role="netmask">0xffffff00</hostid>
+ είναι το ίδιο με
+ το <hostid role="netmask">255.255.255.0</hostid>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Έχει μία έγκυρη broadcast διεύθυνση (σε αυτή την
+ περίπτωση, <hostid role="ipaddr">192.168.1.255</hostid>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Η διεύθυνση MAC της κάρτας (<literal>ether</literal>)
+ είναι <hostid role="mac">00:a0:cc:da:da:da</hostid></para>
+ </listitem>
+
+ <listitem>
+ <para>Η επιλογή του φυσικού μέσου είναι σε κατάσταση autoselection
+ (<literal>media: Ethernet autoselect (100baseTX
+ &lt;full-duplex&gt;)</literal>). Παρατηρούμε ότι
+ η <devicename>dc1</devicename> έχει ρυθμιστεί να τρέχει
+ σαν <literal>10baseT/UTP</literal> μέσο. Για περισσότερες
+ πληροφορίες για τους τύπους των μέσων ενός οδηγού, παρακαλώ
+ ανατρέξτε στην σελίδα βοηθείας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η κατάσταση της σύνδεσης (<literal>status</literal>)
+ είναι <literal>active</literal>, δηλ. έχει εντοπιστεί σήμα
+ μεταφοράς. Στην <devicename>dc1</devicename>,
+ παρατηρούμε <literal>status: no carrier</literal>. Αυτό είναι
+ λογικό αφού το καλώδιο Ethernet δεν έχει συνδεθεί με την
+ κάρτα.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Αν το &man.ifconfig.8; εμφανίζει κάτι παρόμοιο με
+ αυτό:</para>
+
+<screen>dc0: flags=8843&lt;BROADCAST,SIMPLEX,MULTICAST&gt; mtu 1500
+ ether 00:a0:cc:da:da:da</screen>
+
+ <para>σημαίνει ότι η κάρτα δεν έχει ρυθμιστεί.</para>
+
+ <para>Για να ρυθμίσετε την κάρτα σας, θα χρειαστείτε
+ προνόμια <username>root</username>. Η ρύθμιση της κάρτας δικτύου
+ μπορεί να γίνει απο την γραμμή εντολών με το &man.ifconfig.8; αλλά θα
+ πρέπει να το επαναλάβετε σε κάθε επανεκκίνηση του συστήματος. Το
+ αρχείο <filename>/etc/rc.conf</filename> είναι εκεί όπου πρέπει να
+ προσθέσετε τις ρύθμισεις της κάρτας δικτύου.</para>
+
+ <para>Ανοίξτε το αρχείο <filename>/etc/rc.conf</filename> με τον
+ αγαπημένο σας κειμενογράφο. Θα χρειαστεί να προσθέσετε μία γραμμή για
+ κάθε κάρτα δικτύου που υπάρχει στο σύστημα σας, για παράδειγμα στην
+ περίπτωση μας, θα πρέπει να προσθέσετε τι εξής γραμμές:</para>
+
+<programlisting>ifconfig_dc0="inet 192.168.1.3 netmask 255.255.255.0"
+ifconfig_dc1="inet 10.0.0.1 netmask 255.255.255.0 media 10baseT/UTP"</programlisting>
+
+ <para>Θα πρέπει να αντικαταστήσετε
+ το <devicename>dc0</devicename>, <devicename>dc1</devicename>, και
+ ούτω κάθε εξής, με τις σωστές συσκευές των καρτών σας, και τις σωστές
+ διευθύνσεις. Θα πρέπει να διαβάσετε την σελίδα βοηθείας του οδηγού
+ και του &man.ifconfig.8; για περισσότερες λεπτομέριες σχετικά με τις
+ επιτρεπόμενες παραμέτρους και επίσης την σελίδα βοηθείας του
+ &man.rc.conf.5; για περισσότερες λεπτομέριες σχετικά με την σύνταξη
+ του <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Αν ρυθμίσατε το δίκτυο σας κατα την εγκατάσταση, μερικές γραμμές
+ σχετικές με την/τις κάρτα/κάρτες δικτύου θα υπάρχουν ήδη. Ελέγξτε
+ διπλά το <filename>/etc/rc.conf</filename> προτού προσθέστε επιπλέον
+ γραμμές.</para>
+
+ <para>Θα πρέπει επίσης να διορθώσετε το
+ αρχείο <filename>/etc/hosts</filename> ώστε να προσθέσετε τα ονόματα
+ και τις IP διεύθυνσεις απο τα διάφορα μηχανήματα στο LAN σας, αν δεν
+ είναι ήδη ρυθμισμένα. Για περισσότερες πληροφορίες ανατρέξτε στην
+ σελίδα βοηθείας του &man.hosts.5; και
+ του <filename>/usr/share/examples/etc/hosts</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Δοκιμές Και Επίλυση Προβλημάτων</title>
+
+ <para>Μόλις κάνετε τις βασικές αλλαγές
+ στο <filename>/etc/rc.conf</filename>, θα πρέπει να επανεκκινήσετε το
+ σύστημα σας. Αυτό θα επιτρέψει σε πιθανές αλλαγές στις κάρτες να
+ εφαρμοστούν, και να επιβεβαιώσετε ότι το σύστημα επανεκκινεί χωρίς
+ κανένα λάθος στις ρυθμίσεις.</para>
+
+ <para>Μόλις το σύστημα επανεκκινηθεί, θα πρέπει να δοκιμάσετε τις κάρτες
+ δικτύου.</para>
+
+ <sect3>
+ <title>Δοκιμάζοντας Μια Ethernet Κάρτα</title>
+
+ <indexterm>
+ <primary>network cards</primary>
+ <secondary>testing</secondary>
+ </indexterm>
+
+ <para>Για να επιβεβαιώσετε ότι η Ethernet κάρτα λειτουργεί σωστά, θα
+ πρέπει να κάνετε δύο πράγματα. Πρώτα, κάντε ping την κάρτα την
+ ίδια, και μετά κάντε ping ένα άλλο μηχάνημα στο LAN.</para>
+
+ <para>Πρώτα δοκιμάστε στην τοπική κάρτα:</para>
+
+<screen>&prompt.user; <userinput>ping -c5 192.168.1.3</userinput>
+PING 192.168.1.3 (192.168.1.3): 56 data bytes
+64 bytes from 192.168.1.3: icmp_seq=0 ttl=64 time=0.082 ms
+64 bytes from 192.168.1.3: icmp_seq=1 ttl=64 time=0.074 ms
+64 bytes from 192.168.1.3: icmp_seq=2 ttl=64 time=0.076 ms
+64 bytes from 192.168.1.3: icmp_seq=3 ttl=64 time=0.108 ms
+64 bytes from 192.168.1.3: icmp_seq=4 ttl=64 time=0.076 ms
+
+--- 192.168.1.3 ping statistics ---
+5 packets transmitted, 5 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 0.074/0.083/0.108/0.013 ms</screen>
+
+ <para>Τώρα δοκιμάστε σε ένα άλλο μηχάνημα στο LAN:</para>
+
+<screen>&prompt.user; <userinput>ping -c5 192.168.1.2</userinput>
+PING 192.168.1.2 (192.168.1.2): 56 data bytes
+64 bytes from 192.168.1.2: icmp_seq=0 ttl=64 time=0.726 ms
+64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=0.766 ms
+64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=0.700 ms
+64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=0.747 ms
+64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=0.704 ms
+
+--- 192.168.1.2 ping statistics ---
+5 packets transmitted, 5 packets received, 0% packet loss
+round-trip min/avg/max/stddev = 0.700/0.729/0.766/0.025 ms</screen>
+
+ <para>Μπορείτε να χρησιμοποιήσετε και το όνομα το μηχανήματος αντί της
+ διεύθυνσης <hostid role="ipaddr">192.168.1.2</hostid> αν έχετε
+ ρυθμίσει το αρχείο <filename>/etc/hosts</filename>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Επίλυση Προβλημάτων</title>
+
+ <indexterm>
+ <primary>network cards</primary>
+ <secondary>troubleshooting</secondary>
+ </indexterm>
+
+ <para>Η επίλυση προβλημάτων υλικού και λογισμικού είναι πάντοτε επίπονη,
+ ένας πόνος ο οποιός μπορεί να ανακουφιστεί ελέγχοντας μερικά απλά
+ πράγματα πρώτα. Είναι το καλώδιο του δικτύου συνδεδεμένο; Έχετε
+ ρυθμίσει σωστά τις υπηρεσίες δικτύου; Έχετε ρυθμίσει σωστά το πύρινο
+ τείχος; Έχει πράγματι το &os; υποστήριξη για αυτή την κάρτα δικτύου;
+ Πρέπει πάντα να ελέγχετε τις σημειώσεις του υλικού πριν στείλε μία
+ αναφορά για ένα πρόβλημα. Αναβαθμίστε την έκδοση του &os; στην
+ τελευταία ΣΤΑΘΕΡΗ έκδοση. Ελέγξτε τα αρχεία των λιστών μηνυμάτων, ή
+ ψάξτε στο Internet.</para>
+
+ <para>Αν η κάρτα δουλεύει, αλλά με χαμηλή απόδοση, θα άξιζε να διαβάσετε
+ την σελίδα βοηθείας &man.tuning.7;. Μπορείτε επίσης να ελέγξετε οι αν
+ λανθασμένες ρυθμίσεις του δικτύου προκαλούν τις αργές
+ συνδέσεις.</para>
+
+ <para>Μερικοί χρήστες αντιμετωπίζουν ένα ή δύο
+ μηνύματα <errorname>device timeout</errorname>, τα οποία είναι
+ φυσιολογικά για μερικές κάρτες. Αν συνεχιστούν, ή γίνουν ενοχλητικά,
+ θα πρέπει να ελέγξετε μήπως και κάποιες συσκευές παρεμποδίζουν η μία
+ την άλλη. Ελέγξτε διπλά τις συνδέσεις των καλωδίων. Ίσως θα πρέπει
+ να αποκτήσετε μία άλλη κάρτα.</para>
+
+ <para>Μερικές φορές, οι χρήστες παρατηρούν μερικά μηνύματα
+ λάθους <errorname>watchdog timeout</errorname>. Το πρώτο πράγμα που
+ πρέπει να κάνετε είναι να ελέγξετε το καλώδιο του δικτύου. Αρκέτες
+ κάρτες χρειάζονται μία θέση PCI που να υποστηρίζει Bus Mastering. Σε
+ μερικές παλιές μητρικές κάρτες. μόνο μία θέση PCI το υποστήριζε
+ (συνήθως η θέση 0). Ελέγξτε την κάρτα δικτύου και την τεκμηρίωση της
+ μητρικής κάρτας για να διαπιστώσετε αν εκεί είναι το πρόβλημα.</para>
+
+ <para>Το μήνυμα <errorname>No route to host</errorname> εμφανίζεται αν
+ το σύστημα αδυνατεί να δρομολογήσει τα πακέτα στον προορισμό τους.
+ Αυτό συμβαίνει αν δεν έχει καθοριστεί προεπιλεγμένη διεύθυνση
+ δρομολόγησης, ή αν ένα καλώδιο έχει ξεσυνδεθεί. Ελέγξτε την έξοδο τις
+ εντολής <command>netstat -rn</command> και σιγουρευτείτε ότι η
+ διεύθυνση δρομολόγησης είναι έγκυρη. Αν δεν έχει καθοριστεί, διαβάστε
+ το <xref linkend="advanced-networking"> για περισσότερες
+ πληροφορίες.</para>
+
+ <para>Το μήνυμα λάθους <errorname>ping: sendto: Permission
+ denied</errorname> συμβαίνει κυρίως λόγο κάποιας λάθος ρύθμισης στο
+ πύρινο τείχος. Αν το <command>ipfw</command> είναι ενεργοποιημένο
+ στον πυρήνα αλλά δεν έχουν καθοριστεί κανόνες, τότε η προεπιλεγμένη
+ πολιτική είναι η απαγόρευση όλης της κίνησης, ακόμα και των αιτημάτων
+ ping! Διαβάστε το <xref linkend="firewalls"> για περισσότερες
+ πληροφορίες.</para>
+
+ <para>Μερικές φορές η απόδοση της κάρτας μπορεί να είναι φτωχή, ή κάτω
+ του μέσου όρου. Σε αυτές τις περιπτώσεις το καλύτερο είναι να
+ ρυθμίσετε την κατάσταση του μέσου απο <literal>autoselect</literal>
+ στην κατάλληλη κατάσταση. Ενώ συνήθως αυτό φαίνετε να δουλεύει στα
+ περισσότερα υλικά, μπορεί να μην λύσει το πρόβλημα στον καθέναν. Και
+ πάλι, ελέγξτε όλες τις ρυθμίσεις του δικτύου, και ξαναδιαβάστε πάλι
+ την σελίδα βοηθείας &man.tuning.7;.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="configtuning-virtual-hosts">
+ <title>Εικονικά Hosts</title>
+
+ <indexterm><primary>virtual hosts</primary></indexterm>
+ <indexterm><primary>IP aliases</primary></indexterm>
+
+ <para>Μία αρκετά συνηθισμένη χρήση του &os; είναι η εικονική φιλοξενία
+ ιστοχώρων, όπου και ένας εξυπηρετητής εμφανίζεται στο δίκτυο σαν
+ περισσότερο απο ένας. Αυτό επιτυγχάνεται αναθέτοντας πολλαπλές
+ δικτυακές διευθύνσεις σε μία και μόνο συσκευή.</para>
+
+ <para>Μία κάρτα δικτύου έχει μία <quote>πραγματική</quote> διεύθυνση, και
+ απεριόριστο αριθμό <quote>εικονικών</quote> διευθύνσεων. Οι εικονικές
+ αυτές διεύθυνσεις προσθέτονται με την μορφή εγγραφών στο
+ αρχείο <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Μία εγγραφή εικονικής διεύθυνσης για την κάρτα
+ δικτύου <devicename>fxp0</devicename> μοιάζει ως εξής:</para>
+
+<programlisting>ifconfig_fxp0_alias0="inet xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx"</programlisting>
+
+ <para>Σημειώστε ότι οι εγγραφές αυτές πρέπει να ξεκινούν
+ με <literal>alias0</literal> και να συνεχίζουν πρός τα πάνω σε σειρά,
+ (για παράδειγμα, <literal>_alias1</literal>, <literal>_alias2</literal>,
+ και ούτω κάθε εξής). Η διαδικασία ρύθμισης θα σταματήσει στον πρώτο
+ αριθμό που λείπει.</para>
+
+ <para>Ο υπολογισμός της μάσκας δικτύου είναι σημαντικός, αλλά ευτυχώς και
+ εύκολος. Για κάθε κάρτα, πρέπει να υπάρχει μία διεύθυνση η οποία
+ αντιπροσωπεύει σωστά την μάσκα του δικτύου. Οποιαδήποτε άλλη διεύθυνση
+ που συμπίπτει στο ίδιο δίκτυο πρέπει να έχει μάσκα
+ δικτύου <literal>1</literal>s (εκφρασμένη είτε
+ σαν <hostid role="netmask">255.255.255.255</hostid> είτε
+ σαν <hostid role="netmask">0xffffffff</hostid>).</para>
+
+ <para>Για παράδειγμα, εξετάστε την περίπτωση όπου η κάρτα
+ δικτύου <devicename>fxp0</devicename> είναι συνδεδεμένη σε δύο δίκτυα,
+ το δίκτυο <hostid role="ipaddr">10.1.1.0</hostid> με μάσκα
+ δικτύου <hostid role="netmask">255.255.255.0</hostid> και το
+ δίκτυο <hostid role="ipaddr">202.0.75.16</hostid> με μάσκα
+ δικτύου <hostid role="netmask">255.255.255.240</hostid>. Θέλουμε το
+ σύστημα να πάρει τις διευθύνσεις
+ από <hostid role="ipaddr">10.1.1.1</hostid>
+ μέχρι <hostid role="ipaddr">10.1.1.5</hostid> και
+ τις <hostid role="ipaddr">202.0.75.17</hostid>
+ μέχρι <hostid role="ipaddr">202.0.75.20</hostid>. Όπως σημειώθηκε
+ παραπάνω, μόνο η πρώτες διευθύνσεις (στην περίπτωση αυτή,
+ η <hostid role="ipaddr">10.0.1.1</hostid> και
+ η <hostid role="ipaddr">202.0.75.17</hostid>) πρέπει να έχουν
+ πραγματικές μάσκες δικτύου. Όλες οι υπόλοιπες, από
+ (<hostid role="ipaddr">10.1.1.2</hostid>
+ μέχρι <hostid role="ipaddr">10.1.1.5</hostid>
+ και <hostid role="ipaddr">202.0.75.18</hostid>
+ μέχρι <hostid role="ipaddr">202.0.75.20</hostid>) πρέπει να ρυθμιστούν
+ με μάσκα δικτύου <hostid role="netmask">255.255.255.255</hostid>.</para>
+
+ <para>Η ακόλουθες εγγραφές στο αρχείο <filename>/etc/rc.conf</filename> θα
+ ρυθμίσουν την κάρτα όπως πρέπει για το παράδειγμα:</para>
+
+ <programlisting>ifconfig_fxp0="inet 10.1.1.1 netmask 255.255.255.0"
+ifconfig_fxp0_alias0="inet 10.1.1.2 netmask 255.255.255.255"
+ifconfig_fxp0_alias1="inet 10.1.1.3 netmask 255.255.255.255"
+ifconfig_fxp0_alias2="inet 10.1.1.4 netmask 255.255.255.255"
+ifconfig_fxp0_alias3="inet 10.1.1.5 netmask 255.255.255.255"
+ifconfig_fxp0_alias4="inet 202.0.75.17 netmask 255.255.255.240"
+ifconfig_fxp0_alias5="inet 202.0.75.18 netmask 255.255.255.255"
+ifconfig_fxp0_alias6="inet 202.0.75.19 netmask 255.255.255.255"
+ifconfig_fxp0_alias7="inet 202.0.75.20 netmask 255.255.255.255"</programlisting>
+
+ </sect1>
+
+ <sect1 id="configtuning-configfiles">
+ <title>Αρχεία Ρυθμίσεων</title>
+
+ <sect2>
+ <title>Ο κατάλογος <filename class="directory">/etc</filename></title>
+
+ <para>Τα αρχεία ρυθμίσεων αποθηκεύονται σε καταλόγους. Μερικοί απο
+ αυτούς είναι:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="2*">
+
+ <tbody>
+ <row>
+ <entry><filename class="directory">/etc</filename></entry>
+ <entry>Γενικές ρυθμίσεις του συστήματος, data here is
+ system-specific.</entry>
+ </row>
+ <row>
+ <entry><filename class="directory">/etc/defaults</filename></entry>
+ <entry>Default versions of system configuration files.</entry>
+ </row>
+ <row>
+ <entry><filename class="directory">/etc/mail</filename></entry>
+ <entry>Extra &man.sendmail.8; configuration, other
+ MTA configuration files.
+ </entry>
+ </row>
+ <row>
+ <entry><filename class="directory">/etc/ppp</filename></entry>
+ <entry>Configuration for both user- and kernel-ppp programs.
+ </entry>
+ </row>
+ <row>
+ <entry><filename class="directory">/etc/namedb</filename></entry>
+ <entry>Default location for &man.named.8; data. Normally
+ <filename>named.conf</filename> and zone files are stored
+ here.</entry>
+ </row>
+ <row>
+ <entry><filename class="directory">/usr/local/etc</filename></entry>
+ <entry>Configuration files for installed applications.
+ May contain per-application subdirectories.</entry>
+ </row>
+ <row>
+ <entry><filename class="directory">/usr/local/etc/rc.d</filename></entry>
+ <entry>Start/stop scripts for installed applications.</entry>
+ </row>
+ <row>
+ <entry><filename class="directory">/var/db</filename></entry>
+ <entry>Automatically generated system-specific database files,
+ such as the package database, the locate database, and so
+ on</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>Hostnames</title>
+
+ <indexterm><primary>hostname</primary></indexterm>
+ <indexterm><primary>DNS</primary></indexterm>
+
+ <sect3>
+ <title><filename>/etc/resolv.conf</filename></title>
+
+ <indexterm>
+ <primary><filename>resolv.conf</filename></primary>
+ </indexterm>
+
+ <para><filename>/etc/resolv.conf</filename> dictates how &os;'s
+ resolver accesses the Internet Domain Name System (DNS).</para>
+
+ <para>The most common entries to <filename>resolv.conf</filename> are:
+ </para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="2*">
+
+ <tbody>
+ <row>
+ <entry><literal>nameserver</literal></entry>
+ <entry>The IP address of a name server the resolver
+ should query. The servers are queried in the order
+ listed with a maximum of three.</entry>
+ </row>
+ <row>
+ <entry><literal>search</literal></entry>
+ <entry>Search list for hostname lookup. This is normally
+ determined by the domain of the local hostname.</entry>
+ </row>
+ <row>
+ <entry><literal>domain</literal></entry>
+ <entry>The local domain name.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>A typical <filename>resolv.conf</filename>:</para>
+
+ <programlisting>search example.com
+nameserver 147.11.1.11
+nameserver 147.11.100.30</programlisting>
+
+ <note><para>Only one of the <literal>search</literal> and
+ <literal>domain</literal> options should be used.</para></note>
+
+ <para>If you are using DHCP, &man.dhclient.8; usually rewrites
+ <filename>resolv.conf</filename> with information received from the
+ DHCP server.</para>
+ </sect3>
+
+ <sect3>
+ <title><filename>/etc/hosts</filename></title>
+
+ <indexterm><primary>hosts</primary></indexterm>
+
+ <para><filename>/etc/hosts</filename> is a simple text
+ database reminiscent of the old Internet. It works in
+ conjunction with DNS and NIS providing name to IP address
+ mappings. Local computers connected via a LAN can be placed
+ in here for simplistic naming purposes instead of setting up
+ a &man.named.8; server. Additionally,
+ <filename>/etc/hosts</filename> can be used to provide a
+ local record of Internet names, reducing the need to query
+ externally for commonly accessed names.</para>
+
+ <programlisting># &dollar;&os;&dollar;
+#
+# Host Database
+# This file should contain the addresses and aliases
+# for local hosts that share this file.
+# In the presence of the domain name service or NIS, this file may
+# not be consulted at all; see /etc/nsswitch.conf for the resolution order.
+#
+#
+::1 localhost localhost.my.domain myname.my.domain
+127.0.0.1 localhost localhost.my.domain myname.my.domain
+
+#
+# Imaginary network.
+#10.0.0.2 myname.my.domain myname
+#10.0.0.3 myfriend.my.domain myfriend
+#
+# According to RFC 1918, you can use the following IP networks for
+# private nets which will never be connected to the Internet:
+#
+# 10.0.0.0 - 10.255.255.255
+# 172.16.0.0 - 172.31.255.255
+# 192.168.0.0 - 192.168.255.255
+#
+# In case you want to be able to connect to the Internet, you need
+# real official assigned numbers. PLEASE PLEASE PLEASE do not try
+# to invent your own network numbers but instead get one from your
+# network provider (if any) or from the Internet Registry (ftp to
+# rs.internic.net, directory `/templates').
+#</programlisting>
+
+ <para><filename>/etc/hosts</filename> takes on the simple format
+ of:</para>
+
+ <programlisting>[Internet address] [official hostname] [alias1] [alias2] ...</programlisting>
+
+ <para>For example:</para>
+
+ <programlisting>10.0.0.1 myRealHostname.example.com myRealHostname foobar1 foobar2</programlisting>
+
+ <para>Consult &man.hosts.5; for more information.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Log File Configuration</title>
+
+ <indexterm><primary>log files</primary></indexterm>
+
+ <sect3>
+ <title><filename>syslog.conf</filename></title>
+
+ <indexterm><primary>syslog.conf</primary></indexterm>
+
+ <para><filename>syslog.conf</filename> is the configuration file
+ for the &man.syslogd.8; program. It indicates which types
+ of <command>syslog</command> messages are logged to particular
+ log files.</para>
+
+ <programlisting># &dollar;&os;&dollar;
+#
+# Spaces ARE valid field separators in this file. However,
+# other *nix-like systems still insist on using tabs as field
+# separators. If you are sharing this file between systems, you
+# may want to use only tabs as field separators here.
+# Consult the syslog.conf(5) manual page.
+*.err;kern.debug;auth.notice;mail.crit /dev/console
+*.notice;kern.debug;lpr.info;mail.crit;news.err /var/log/messages
+security.* /var/log/security
+mail.info /var/log/maillog
+lpr.info /var/log/lpd-errs
+cron.* /var/log/cron
+*.err root
+*.notice;news.err root
+*.alert root
+*.emerg *
+# uncomment this to log all writes to /dev/console to /var/log/console.log
+#console.info /var/log/console.log
+# uncomment this to enable logging of all log messages to /var/log/all.log
+#*.* /var/log/all.log
+# uncomment this to enable logging to a remote log host named loghost
+#*.* @loghost
+# uncomment these if you're running inn
+# news.crit /var/log/news/news.crit
+# news.err /var/log/news/news.err
+# news.notice /var/log/news/news.notice
+!startslip
+*.* /var/log/slip.log
+!ppp
+*.* /var/log/ppp.log</programlisting>
+
+ <para>Consult the &man.syslog.conf.5; manual page for more
+ information.</para>
+ </sect3>
+
+ <sect3>
+ <title><filename>newsyslog.conf</filename></title>
+
+ <indexterm><primary>newsyslog.conf</primary></indexterm>
+
+ <para><filename>newsyslog.conf</filename> is the configuration
+ file for &man.newsyslog.8;, a program that is normally scheduled
+ to run by &man.cron.8;. &man.newsyslog.8; determines when log
+ files require archiving or rearranging.
+ <filename>logfile</filename> is moved to
+ <filename>logfile.0</filename>, <filename>logfile.0</filename>
+ is moved to <filename>logfile.1</filename>, and so on.
+ Alternatively, the log files may be archived in &man.gzip.1; format
+ causing them to be named: <filename>logfile.0.gz</filename>,
+ <filename>logfile.1.gz</filename>, and so on.</para>
+
+ <para><filename>newsyslog.conf</filename> indicates which log
+ files are to be managed, how many are to be kept, and when
+ they are to be touched. Log files can be rearranged and/or
+ archived when they have either reached a certain size, or at a
+ certain periodic time/date.</para>
+
+ <programlisting># configuration file for newsyslog
+# &dollar;&os;&dollar;
+#
+# filename [owner:group] mode count size when [ZB] [/pid_file] [sig_num]
+/var/log/cron 600 3 100 * Z
+/var/log/amd.log 644 7 100 * Z
+/var/log/kerberos.log 644 7 100 * Z
+/var/log/lpd-errs 644 7 100 * Z
+/var/log/maillog 644 7 * @T00 Z
+/var/log/sendmail.st 644 10 * 168 B
+/var/log/messages 644 5 100 * Z
+/var/log/all.log 600 7 * @T00 Z
+/var/log/slip.log 600 3 100 * Z
+/var/log/ppp.log 600 3 100 * Z
+/var/log/security 600 10 100 * Z
+/var/log/wtmp 644 3 * @01T05 B
+/var/log/daily.log 640 7 * @T00 Z
+/var/log/weekly.log 640 5 1 $W6D0 Z
+/var/log/monthly.log 640 12 * $M1D0 Z
+/var/log/console.log 640 5 100 * Z</programlisting>
+
+ <para>Consult the &man.newsyslog.8; manual page for more
+ information.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="configtuning-sysctlconf">
+ <title><filename>sysctl.conf</filename></title>
+
+ <indexterm><primary>sysctl.conf</primary></indexterm>
+ <indexterm><primary>sysctl</primary></indexterm>
+
+ <para><filename>sysctl.conf</filename> looks much like
+ <filename>rc.conf</filename>. Values are set in a
+ <literal>variable=value</literal>
+ form. The specified values are set after the system goes into
+ multi-user mode. Not all variables are settable in this mode.</para>
+
+ <para>To turn off logging of fatal signal exits and prevent users from
+ seeing processes started from other users, the following tunables can
+ be set in <filename>sysctl.conf</filename>:</para>
+
+ <programlisting># Do not log fatal signal exits (e.g. sig 11)
+kern.logsigexit=0
+
+# Prevent users from seeing information about processes that
+# are being run under another UID.
+security.bsd.see_other_uids=0</programlisting>
+ </sect2>
+ </sect1>
+
+ <sect1 id="configtuning-sysctl">
+ <title>Tuning with sysctl</title>
+
+ <indexterm><primary>sysctl</primary></indexterm>
+ <indexterm>
+ <primary>tuning</primary>
+ <secondary>with sysctl</secondary>
+ </indexterm>
+
+ <para>&man.sysctl.8; is an interface that allows you to make changes
+ to a running &os; system. This includes many advanced
+ options of the TCP/IP stack and virtual memory system that can
+ dramatically improve performance for an experienced system
+ administrator. Over five hundred system variables can be read
+ and set using &man.sysctl.8;.</para>
+
+ <para>At its core, &man.sysctl.8; serves two functions: to read and
+ to modify system settings.</para>
+
+ <para>To view all readable variables:</para>
+
+ <screen>&prompt.user; <userinput>sysctl -a</userinput></screen>
+
+ <para>To read a particular variable, for example,
+ <varname>kern.maxproc</varname>:</para>
+
+ <screen>&prompt.user; <userinput>sysctl kern.maxproc</userinput>
+kern.maxproc: 1044</screen>
+
+ <para>To set a particular variable, use the intuitive
+ <replaceable>variable</replaceable>=<replaceable>value</replaceable>
+ syntax:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.maxfiles=5000</userinput>
+kern.maxfiles: 2088 -&gt; 5000</screen>
+
+ <para>Settings of sysctl variables are usually either strings,
+ numbers, or booleans (a boolean being <literal>1</literal> for yes
+ or a <literal>0</literal> for no).</para>
+
+ <para>If you want to set automatically some variables each time
+ the machine boots, add them to the
+ <filename>/etc/sysctl.conf</filename> file. For more information
+ see the &man.sysctl.conf.5; manual page and the
+ <xref linkend="configtuning-sysctlconf">.</para>
+
+ <sect2 id="sysctl-readonly">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ <!-- 31 January 2003 -->
+ </author>
+ </authorgroup>
+ </sect2info>
+ <title>&man.sysctl.8; Read-only</title>
+
+ <para>In some cases it may be desirable to modify read-only &man.sysctl.8;
+ values. While this is sometimes unavoidable, it can only be done
+ on (re)boot.</para>
+
+ <para>For instance on some laptop models the &man.cardbus.4; device will
+ not probe memory ranges, and fail with errors which look similar to:</para>
+
+ <screen>cbb0: Could not map register memory
+device_probe_and_attach: cbb0 attach returned 12</screen>
+
+ <para>Cases like the one above usually require the modification of some
+ default &man.sysctl.8; settings which are set read only. To overcome
+ these situations a user can put &man.sysctl.8; <quote>OIDs</quote>
+ in their local <filename>/boot/loader.conf</filename>. Default
+ settings are located in the <filename>/boot/defaults/loader.conf</filename>
+ file.</para>
+
+ <para>Fixing the problem mentioned above would require a user to set
+ <option>hw.pci.allow_unsupported_io_range=1</option> in the aforementioned
+ file. Now &man.cardbus.4; will work properly.</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="configtuning-disk">
+ <title>Tuning Disks</title>
+
+ <sect2>
+ <title>Sysctl Variables</title>
+
+ <sect3>
+ <title><varname>vfs.vmiodirenable</varname></title>
+
+ <indexterm>
+ <primary><varname>vfs.vmiodirenable</varname></primary>
+ </indexterm>
+
+ <para>The <varname>vfs.vmiodirenable</varname> sysctl variable
+ may be set to either 0 (off) or 1 (on); it is 1 by default.
+ This variable controls how directories are cached by the
+ system. Most directories are small, using just a single
+ fragment (typically 1&nbsp;K) in the file system and less
+ (typically 512&nbsp;bytes) in the buffer cache.
+ With this variable turned off (to 0), the buffer
+ cache will only cache a fixed number of directories even if
+ you have a huge amount of memory. When turned on (to 1), this sysctl
+ allows the buffer cache to use the VM Page Cache to cache the
+ directories, making all the memory available for caching
+ directories. However,
+ the minimum in-core memory used to cache a directory is the
+ physical page size (typically 4&nbsp;K) rather than 512&nbsp;
+ bytes. We recommend keeping this option on if you are running
+ any services which manipulate large numbers of files. Such
+ services can include web caches, large mail systems, and news
+ systems. Keeping this option on will generally not reduce
+ performance even with the wasted memory but you should
+ experiment to find out.</para>
+ </sect3>
+
+ <sect3>
+ <title><varname>vfs.write_behind</varname></title>
+
+ <indexterm>
+ <primary><varname>vfs.write_behind</varname></primary>
+ </indexterm>
+
+ <para>The <varname>vfs.write_behind</varname> sysctl variable
+ defaults to <literal>1</literal> (on). This tells the file system
+ to issue media writes as full clusters are collected, which
+ typically occurs when writing large sequential files. The idea
+ is to avoid saturating the buffer cache with dirty buffers when
+ it would not benefit I/O performance. However, this may stall
+ processes and under certain circumstances you may wish to turn it
+ off.</para>
+ </sect3>
+
+ <sect3>
+ <title><varname>vfs.hirunningspace</varname></title>
+
+ <indexterm>
+ <primary><varname>vfs.hirunningspace</varname></primary>
+ </indexterm>
+
+ <para>The <varname>vfs.hirunningspace</varname> sysctl variable
+ determines how much outstanding write I/O may be queued to disk
+ controllers system-wide at any given instance. The default is
+ usually sufficient but on machines with lots of disks you may
+ want to bump it up to four or five <emphasis>megabytes</emphasis>.
+ Note that setting too high a value (exceeding the buffer cache's
+ write threshold) can lead to extremely bad clustering
+ performance. Do not set this value arbitrarily high! Higher
+ write values may add latency to reads occurring at the same time.
+ </para>
+
+ <para>There are various other buffer-cache and VM page cache
+ related sysctls. We do not recommend modifying these values,
+ the VM system does an extremely good job of
+ automatically tuning itself.</para>
+ </sect3>
+
+ <sect3>
+ <title><varname>vm.swap_idle_enabled</varname></title>
+
+ <indexterm>
+ <primary><varname>vm.swap_idle_enabled</varname></primary>
+ </indexterm>
+
+ <para>The <varname>vm.swap_idle_enabled</varname> sysctl variable
+ is useful in large multi-user systems where you have lots of
+ users entering and leaving the system and lots of idle processes.
+ Such systems tend to generate a great deal of continuous pressure
+ on free memory reserves. Turning this feature on and tweaking
+ the swapout hysteresis (in idle seconds) via
+ <varname>vm.swap_idle_threshold1</varname> and
+ <varname>vm.swap_idle_threshold2</varname> allows you to depress
+ the priority of memory pages associated with idle processes more
+ quickly then the normal pageout algorithm. This gives a helping
+ hand to the pageout daemon. Do not turn this option on unless
+ you need it, because the tradeoff you are making is essentially
+ pre-page memory sooner rather than later; thus eating more swap
+ and disk bandwidth. In a small system this option will have a
+ determinable effect but in a large system that is already doing
+ moderate paging this option allows the VM system to stage whole
+ processes into and out of memory easily.</para>
+ </sect3>
+
+ <sect3>
+ <title><varname>hw.ata.wc</varname></title>
+
+ <indexterm>
+ <primary><varname>hw.ata.wc</varname></primary>
+ </indexterm>
+
+ <para>&os;&nbsp;4.3 flirted with turning off IDE write caching.
+ This reduced write bandwidth to IDE disks but was considered
+ necessary due to serious data consistency issues introduced
+ by hard drive vendors. The problem is that IDE
+ drives lie about when a write completes. With IDE write
+ caching turned on, IDE hard drives not only write data
+ to disk out of order, but will sometimes delay writing some
+ blocks indefinitely when under heavy disk loads. A crash or
+ power failure may cause serious file system corruption.
+ &os;'s default was changed to be safe. Unfortunately, the
+ result was such a huge performance loss that we changed
+ write caching back to on by default after the release. You
+ should check the default on your system by observing the
+ <varname>hw.ata.wc</varname> sysctl variable. If IDE write
+ caching is turned off, you can turn it back on by setting
+ the kernel variable back to 1. This must be done from the
+ boot loader at boot time. Attempting to do it after the
+ kernel boots will have no effect.</para>
+
+ <para>For more information, please see &man.ata.4;.</para>
+ </sect3>
+
+ <sect3>
+ <title><literal>SCSI_DELAY</literal>
+ (<varname>kern.cam.scsi_delay</varname>)</title>
+
+ <indexterm>
+ <primary><varname>kern.cam.scsi_delay</varname></primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary><literal>SCSI_DELAY</literal></secondary>
+ </indexterm>
+
+ <para>The <literal>SCSI_DELAY</literal> kernel config may be used to
+ reduce system boot times. The defaults are fairly high and can be
+ responsible for <literal>15</literal> seconds of delay in the
+ boot process. Reducing it to <literal>5</literal> seconds usually
+ works (especially with modern drives). Newer versions of &os;
+ (5.0 and higher) should use the <varname>kern.cam.scsi_delay</varname>
+ boot time tunable. The tunable, and kernel config option accept
+ values in terms of <emphasis>milliseconds</emphasis> and
+ <emphasis>not</emphasis> <emphasis>seconds</emphasis>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="soft-updates">
+ <title>Soft Updates</title>
+
+ <indexterm><primary>Soft Updates</primary></indexterm>
+ <indexterm><primary>tunefs</primary></indexterm>
+
+ <para>The &man.tunefs.8; program can be used to fine-tune a
+ file system. This program has many different options, but for
+ now we are only concerned with toggling Soft Updates on and
+ off, which is done by:</para>
+
+ <screen>&prompt.root; <userinput>tunefs -n enable /filesystem</userinput>
+&prompt.root; <userinput>tunefs -n disable /filesystem</userinput></screen>
+
+ <para>A filesystem cannot be modified with &man.tunefs.8; while
+ it is mounted. A good time to enable Soft Updates is before any
+ partitions have been mounted, in single-user mode.</para>
+
+ <para>Soft Updates drastically improves meta-data performance, mainly
+ file creation and deletion, through the use of a memory cache. We
+ recommend to use Soft Updates on all of your file systems. There
+ are two downsides to Soft Updates that you should be aware of: First,
+ Soft Updates guarantees filesystem consistency in the case of a crash
+ but could very easily be several seconds (even a minute!) behind
+ updating the physical disk. If your system crashes you may lose more
+ work than otherwise. Secondly, Soft Updates delays the freeing of
+ filesystem blocks. If you have a filesystem (such as the root
+ filesystem) which is almost full, performing a major update, such as
+ <command>make installworld</command>, can cause the filesystem to run
+ out of space and the update to fail.</para>
+
+ <sect3>
+ <title>More Details about Soft Updates</title>
+
+ <indexterm>
+ <primary>Soft Updates</primary>
+ <secondary>details</secondary>
+ </indexterm>
+
+ <para>There are two traditional approaches to writing a file
+ systems meta-data back to disk. (Meta-data updates are
+ updates to non-content data like inodes or
+ directories.)</para>
+
+ <para>Historically, the default behavior was to write out
+ meta-data updates synchronously. If a directory had been
+ changed, the system waited until the change was actually
+ written to disk. The file data buffers (file contents) were
+ passed through the buffer cache and backed up
+ to disk later on asynchronously. The advantage of this
+ implementation is that it operates safely. If there is
+ a failure during an update, the meta-data are always in a
+ consistent state. A file is either created completely
+ or not at all. If the data blocks of a file did not find
+ their way out of the buffer cache onto the disk by the time
+ of the crash, &man.fsck.8; is able to recognize this and
+ repair the filesystem by setting the file length to
+ 0. Additionally, the implementation is clear and simple.
+ The disadvantage is that meta-data changes are slow. An
+ <command>rm -r</command>, for instance, touches all the files
+ in a directory sequentially, but each directory
+ change (deletion of a file) will be written synchronously
+ to the disk. This includes updates to the directory itself,
+ to the inode table, and possibly to indirect blocks
+ allocated by the file. Similar considerations apply for
+ unrolling large hierarchies (<command>tar -x</command>).</para>
+
+ <para>The second case is asynchronous meta-data updates. This
+ is the default for Linux/ext2fs and
+ <command>mount -o async</command> for *BSD ufs. All
+ meta-data updates are simply being passed through the buffer
+ cache too, that is, they will be intermixed with the updates
+ of the file content data. The advantage of this
+ implementation is there is no need to wait until each
+ meta-data update has been written to disk, so all operations
+ which cause huge amounts of meta-data updates work much
+ faster than in the synchronous case. Also, the
+ implementation is still clear and simple, so there is a low
+ risk for bugs creeping into the code. The disadvantage is
+ that there is no guarantee at all for a consistent state of
+ the filesystem. If there is a failure during an operation
+ that updated large amounts of meta-data (like a power
+ failure, or someone pressing the reset button),
+ the filesystem
+ will be left in an unpredictable state. There is no opportunity
+ to examine the state of the filesystem when the system
+ comes up again; the data blocks of a file could already have
+ been written to the disk while the updates of the inode
+ table or the associated directory were not. It is actually
+ impossible to implement a <command>fsck</command> which is
+ able to clean up the resulting chaos (because the necessary
+ information is not available on the disk). If the
+ filesystem has been damaged beyond repair, the only choice
+ is to use &man.newfs.8; on it and restore it from backup.
+ </para>
+
+ <para>The usual solution for this problem was to implement
+ <emphasis>dirty region logging</emphasis>, which is also
+ referred to as <emphasis>journaling</emphasis>, although that
+ term is not used consistently and is occasionally applied
+ to other forms of transaction logging as well. Meta-data
+ updates are still written synchronously, but only into a
+ small region of the disk. Later on they will be moved
+ to their proper location. Because the logging
+ area is a small, contiguous region on the disk, there
+ are no long distances for the disk heads to move, even
+ during heavy operations, so these operations are quicker
+ than synchronous updates.
+ Additionally the complexity of the implementation is fairly
+ limited, so the risk of bugs being present is low. A disadvantage
+ is that all meta-data are written twice (once into the
+ logging region and once to the proper location) so for
+ normal work, a performance <quote>pessimization</quote>
+ might result. On the other hand, in case of a crash, all
+ pending meta-data operations can be quickly either rolled-back
+ or completed from the logging area after the system comes
+ up again, resulting in a fast filesystem startup.</para>
+
+ <para>Kirk McKusick, the developer of Berkeley FFS,
+ solved this problem with Soft Updates: all pending
+ meta-data updates are kept in memory and written out to disk
+ in a sorted sequence (<quote>ordered meta-data
+ updates</quote>). This has the effect that, in case of
+ heavy meta-data operations, later updates to an item
+ <quote>catch</quote> the earlier ones if the earlier ones are still in
+ memory and have not already been written to disk. So all
+ operations on, say, a directory are generally performed in
+ memory before the update is written to disk (the data
+ blocks are sorted according to their position so
+ that they will not be on the disk ahead of their meta-data).
+ If the system crashes, this causes an implicit <quote>log
+ rewind</quote>: all operations which did not find their way
+ to the disk appear as if they had never happened. A
+ consistent filesystem state is maintained that appears to
+ be the one of 30 to 60 seconds earlier. The
+ algorithm used guarantees that all resources in use
+ are marked as such in their appropriate bitmaps: blocks and inodes.
+ After a crash, the only resource allocation error
+ that occurs is that resources are
+ marked as <quote>used</quote> which are actually <quote>free</quote>.
+ &man.fsck.8; recognizes this situation,
+ and frees the resources that are no longer used. It is safe to
+ ignore the dirty state of the filesystem after a crash by
+ forcibly mounting it with <command>mount -f</command>. In
+ order to free resources that may be unused, &man.fsck.8;
+ needs to be run at a later time. This is the idea behind
+ the <emphasis>background fsck</emphasis>: at system startup
+ time, only a <emphasis>snapshot</emphasis> of the
+ filesystem is recorded. The <command>fsck</command> can be
+ run later on. All file systems can then be mounted
+ <quote>dirty</quote>, so the system startup proceeds in
+ multiuser mode. Then, background <command>fsck</command>s
+ will be scheduled for all file systems where this is required, to free
+ resources that may be unused. (File systems that do not use
+ Soft Updates still need the usual foreground
+ <command>fsck</command> though.)</para>
+
+ <para>The advantage is that meta-data operations are nearly as
+ fast as asynchronous updates (i.e. faster than with
+ <emphasis>logging</emphasis>, which has to write the
+ meta-data twice). The disadvantages are the complexity of
+ the code (implying a higher risk for bugs in an area that
+ is highly sensitive regarding loss of user data), and a
+ higher memory consumption. Additionally there are some
+ idiosyncrasies one has to get used to.
+ After a crash, the state of the filesystem appears to be
+ somewhat <quote>older</quote>. In situations where
+ the standard synchronous approach would have caused some
+ zero-length files to remain after the
+ <command>fsck</command>, these files do not exist at all
+ with a Soft Updates filesystem because neither the meta-data
+ nor the file contents have ever been written to disk.
+ Disk space is not released until the updates have been
+ written to disk, which may take place some time after
+ running <command>rm</command>. This may cause problems
+ when installing large amounts of data on a filesystem
+ that does not have enough free space to hold all the files
+ twice.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="configtuning-kernel-limits">
+ <title>Tuning Kernel Limits</title>
+
+ <indexterm>
+ <primary>tuning</primary>
+ <secondary>kernel limits</secondary>
+ </indexterm>
+
+ <sect2 id="file-process-limits">
+ <title>File/Process Limits</title>
+
+ <sect3 id="kern-maxfiles">
+ <title><varname>kern.maxfiles</varname></title>
+
+ <indexterm>
+ <primary><varname>kern.maxfiles</varname></primary>
+ </indexterm>
+
+ <para><varname>kern.maxfiles</varname> can be raised or
+ lowered based upon your system requirements. This variable
+ indicates the maximum number of file descriptors on your
+ system. When the file descriptor table is full,
+ <errorname>file: table is full</errorname> will show up repeatedly
+ in the system message buffer, which can be viewed with the
+ <command>dmesg</command> command.</para>
+
+ <para>Each open file, socket, or fifo uses one file
+ descriptor. A large-scale production server may easily
+ require many thousands of file descriptors, depending on the
+ kind and number of services running concurrently.</para>
+
+ <para>In older FreeBSD releases, the default value of <varname>kern.maxfiles</varname>
+ is derived from the <option>maxusers</option> option in your
+ kernel configuration file. <varname>kern.maxfiles</varname> grows
+ proportionally to the value of <option>maxusers</option>. When
+ compiling a custom kernel, it is a good idea to set this kernel
+ configuration option according to the uses of your system. From
+ this number, the kernel is given most of its pre-defined limits.
+ Even though a production machine may not actually have 256 users
+ connected at once, the resources needed may be similar to a
+ high-scale web server.</para>
+
+ <para>As of FreeBSD 4.5, <varname>kern.maxusers</varname> is
+ automatically sized at boot based on the amount of memory available
+ in the system, and may be determined at run-time by inspecting the
+ value of the read-only <varname>kern.maxusers</varname> sysctl.
+ Some sites will require larger or smaller values of
+ <varname>kern.maxusers</varname> and may set it as a loader tunable;
+ values of 64, 128, and 256 are not uncommon. We do not recommend
+ going above 256 unless you need a huge number of file descriptors;
+ many of the tunable values set to their defaults by
+ <varname>kern.maxusers</varname> may be individually overridden at
+ boot-time or run-time in <filename>/boot/loader.conf</filename> (see
+ the &man.loader.conf.5; man page or the
+ <filename>/boot/defaults/loader.conf</filename> file for some hints)
+ or as described elsewhere in this document. Systems older than
+ FreeBSD&nbsp;4.4 must set this value via the kernel &man.config.8;
+ option <option>maxusers</option> instead.</para>
+
+ <para>In older releases, the system will auto-tune
+ <literal>maxusers</literal> for you if you explicitly set it to
+ <literal>0</literal><footnote>
+ <para>The auto-tuning algorithm sets
+ <literal>maxusers</literal> equal to the amount of memory in the
+ system, with a minimum of 32, and a maximum of 384.</para>
+ </footnote>. When setting this option, you will want to set
+ <literal>maxusers</literal> to at least 4, especially if you are
+ using the X Window System or compiling software. The reason is that
+ the most important table set by <literal>maxusers</literal> is the
+ maximum number of processes, which is set to <literal>20 + 16 *
+ maxusers</literal>, so if you set <literal>maxusers</literal> to 1,
+ then you can only have 36 simultaneous processes, including the 18
+ or so that the system starts up at boot time and the 15 or so you
+ will probably create when you start the X Window System. Even a
+ simple task like reading a manual page will start up nine
+ processes to filter, decompress, and view it. Setting
+ <literal>maxusers</literal> to 64 will allow you to have up to 1044
+ simultaneous processes, which should be enough for nearly all uses.
+ If, however, you see the dreaded <errortype>proc table
+ full</errortype> error when trying to start another program, or are
+ running a server with a large number of simultaneous users (like
+ <hostid role="fqdn">ftp.FreeBSD.org</hostid>), you can always
+ increase the number and rebuild.</para>
+
+ <note>
+ <para><literal>maxusers</literal> does <emphasis>not</emphasis>
+ limit the number of users which can log into your machine. It
+ simply sets various table sizes to reasonable values considering
+ the maximum number of users you will likely have on your system
+ and how many processes each of them will be running. One keyword
+ which <emphasis>does</emphasis> limit the number of simultaneous
+ remote logins and X terminal windows is <link
+ linkend="kernelconfig-ptys"><literal>pseudo-device pty
+ 16</literal></link>. With &os;&nbsp;5.X, you do not have to
+ worry about this number since the &man.pty.4; driver is
+ <quote>auto-cloning</quote>; you simply use the line
+ <literal>device pty</literal> in your configuration file.</para>
+ </note>
+
+ </sect3>
+
+ <sect3>
+ <title><varname>kern.ipc.somaxconn</varname></title>
+
+ <indexterm>
+ <primary><varname>kern.ipc.somaxconn</varname></primary>
+ </indexterm>
+
+ <para>The <varname>kern.ipc.somaxconn</varname> sysctl variable
+ limits the size of the listen queue for accepting new TCP
+ connections. The default value of <literal>128</literal> is
+ typically too low for robust handling of new connections in a
+ heavily loaded web server environment. For such environments, it
+ is recommended to increase this value to <literal>1024</literal> or
+ higher. The service daemon may itself limit the listen queue size
+ (e.g. &man.sendmail.8;, or <application>Apache</application>) but
+ will often have a directive in its configuration file to adjust
+ the queue size. Large listen queues also do a better job of
+ avoiding Denial of Service (<abbrev>DoS</abbrev>) attacks.</para>
+ </sect3>
+
+ </sect2>
+ <sect2 id="nmbclusters">
+ <title>Network Limits</title>
+
+ <para>The <literal>NMBCLUSTERS</literal> kernel configuration
+ option dictates the amount of network Mbufs available to the
+ system. A heavily-trafficked server with a low number of Mbufs
+ will hinder &os;'s ability. Each cluster represents
+ approximately 2&nbsp;K of memory, so a value of 1024 represents 2
+ megabytes of kernel memory reserved for network buffers. A
+ simple calculation can be done to figure out how many are
+ needed. If you have a web server which maxes out at 1000
+ simultaneous connections, and each connection eats a 16&nbsp;K receive
+ and 16&nbsp;K send buffer, you need approximately 32&nbsp;MB worth of
+ network buffers to cover the web server. A good rule of thumb is
+ to multiply by 2, so 2x32&nbsp;MB&nbsp;/&nbsp;2&nbsp;KB&nbsp;=
+ 64&nbsp;MB&nbsp;/&nbsp;2&nbsp;kB&nbsp;= 32768. We recommend
+ values between 4096 and 32768 for machines with greater amounts
+ of memory. Under no circumstances should you specify an
+ arbitrarily high value for this parameter as it could lead to a
+ boot time crash. The <option>-m</option> option to
+ &man.netstat.1; may be used to observe network cluster
+ use.</para>
+
+ <para><varname>kern.ipc.nmbclusters</varname> loader tunable should
+ be used to tune this at boot time. Only older versions of &os;
+ will require you to use the <literal>NMBCLUSTERS</literal> kernel
+ &man.config.8; option.</para>
+
+ <para>For busy servers that make extensive use of the
+ &man.sendfile.2; system call, it may be necessary to increase
+ the number of &man.sendfile.2; buffers via the
+ <literal>NSFBUFS</literal> kernel configuration option or by
+ setting its value in <filename>/boot/loader.conf</filename>
+ (see &man.loader.8; for details). A common indicator that
+ this parameter needs to be adjusted is when processes are seen
+ in the <literal>sfbufa</literal> state. The sysctl
+ variable <varname>kern.ipc.nsfbufs</varname> is a read-only
+ glimpse at the kernel configured variable. This parameter
+ nominally scales with <varname>kern.maxusers</varname>,
+ however it may be necessary to tune accordingly.</para>
+
+ <important>
+ <para>Even though a socket has been marked as non-blocking,
+ calling &man.sendfile.2; on the non-blocking socket may
+ result in the &man.sendfile.2; call blocking until enough
+ <literal>struct sf_buf</literal>'s are made
+ available.</para>
+ </important>
+
+ <sect3>
+ <title><varname>net.inet.ip.portrange.*</varname></title>
+
+ <indexterm>
+ <primary>net.inet.ip.portrange.*</primary>
+ </indexterm>
+
+ <para>The <varname>net.inet.ip.portrange.*</varname> sysctl
+ variables control the port number ranges automatically bound to TCP
+ and UDP sockets. There are three ranges: a low range, a default
+ range, and a high range. Most network programs use the default
+ range which is controlled by the
+ <varname>net.inet.ip.portrange.first</varname> and
+ <varname>net.inet.ip.portrange.last</varname>, which default to
+ 1024 and 5000, respectively. Bound port ranges are used for
+ outgoing connections, and it is possible to run the system out of
+ ports under certain circumstances. This most commonly occurs
+ when you are running a heavily loaded web proxy. The port range
+ is not an issue when running servers which handle mainly incoming
+ connections, such as a normal web server, or has a limited number
+ of outgoing connections, such as a mail relay. For situations
+ where you may run yourself out of ports, it is recommended to
+ increase <varname>net.inet.ip.portrange.last</varname> modestly.
+ A value of <literal>10000</literal>, <literal>20000</literal> or
+ <literal>30000</literal> may be reasonable. You should also
+ consider firewall effects when changing the port range. Some
+ firewalls may block large ranges of ports (usually low-numbered
+ ports) and expect systems to use higher ranges of ports for
+ outgoing connections &mdash; for this reason it is not recommended that
+ <varname>net.inet.ip.portrange.first</varname> be lowered.</para>
+ </sect3>
+
+ <sect3>
+ <title>TCP Bandwidth Delay Product</title>
+
+ <indexterm>
+ <primary>TCP Bandwidth Delay Product Limiting</primary>
+ <secondary><varname>net.inet.tcp.inflight.enable</varname></secondary>
+ </indexterm>
+
+ <para>The TCP Bandwidth Delay Product Limiting is similar to
+ TCP/Vegas in NetBSD. It can be
+ enabled by setting <varname>net.inet.tcp.inflight.enable</varname>
+ sysctl variable to <literal>1</literal>. The system will attempt
+ to calculate the bandwidth delay product for each connection and
+ limit the amount of data queued to the network to just the amount
+ required to maintain optimum throughput.</para>
+
+ <para>This feature is useful if you are serving data over modems,
+ Gigabit Ethernet, or even high speed WAN links (or any other link
+ with a high bandwidth delay product), especially if you are also
+ using window scaling or have configured a large send window. If
+ you enable this option, you should also be sure to set
+ <varname>net.inet.tcp.inflight.debug</varname> to
+ <literal>0</literal> (disable debugging), and for production use
+ setting <varname>net.inet.tcp.inflight.min</varname> to at least
+ <literal>6144</literal> may be beneficial. However, note that
+ setting high minimums may effectively disable bandwidth limiting
+ depending on the link. The limiting feature reduces the amount of
+ data built up in intermediate route and switch packet queues as
+ well as reduces the amount of data built up in the local host's
+ interface queue. With fewer packets queued up, interactive
+ connections, especially over slow modems, will also be able to
+ operate with lower <emphasis>Round Trip Times</emphasis>. However,
+ note that this feature only effects data transmission (uploading
+ / server side). It has no effect on data reception (downloading).
+ </para>
+
+ <para>Adjusting <varname>net.inet.tcp.inflight.stab</varname> is
+ <emphasis>not</emphasis> recommended. This parameter defaults to
+ 20, representing 2 maximal packets added to the bandwidth delay
+ product window calculation. The additional window is required to
+ stabilize the algorithm and improve responsiveness to changing
+ conditions, but it can also result in higher ping times over slow
+ links (though still much lower than you would get without the
+ inflight algorithm). In such cases, you may wish to try reducing
+ this parameter to 15, 10, or 5; and may also have to reduce
+ <varname>net.inet.tcp.inflight.min</varname> (for example, to
+ 3500) to get the desired effect. Reducing these parameters
+ should be done as a last resort only.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Virtual Memory</title>
+
+ <sect3>
+ <title><varname>kern.maxvnodes</varname></title>
+
+ <para>A vnode is the internal representation of a file or
+ directory. So increasing the number of vnodes available to
+ the operating system cuts down on disk I/O. Normally this
+ is handled by the operating system and does not need to be
+ changed. In some cases where disk I/O is a bottleneck and
+ the system is running out of vnodes, this setting will need
+ to be increased. The amount of inactive and free RAM will
+ need to be taken into account.</para>
+
+ <para>To see the current number of vnodes in use:</para>
+
+ <programlisting>&prompt.root; sysctl vfs.numvnodes
+vfs.numvnodes: 91349</programlisting>
+
+ <para>To see the maximum vnodes:</para>
+
+ <programlisting>&prompt.root; sysctl kern.maxvnodes
+kern.maxvnodes: 100000</programlisting>
+
+ <para>If the current vnode usage is near the maximum, increasing
+ <varname>kern.maxvnodes</varname> by a value of 1,000 is
+ probably a good idea. Keep an eye on the number of
+ <varname>vfs.numvnodes</varname>. If it climbs up to the
+ maximum again, <varname>kern.maxvnodes</varname> will need to
+ be increased further. A shift in your memory usage as
+ reported by &man.top.1; should be visible. More memory should
+ be active.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="adding-swap-space">
+ <title>Adding Swap Space</title>
+
+ <para>No matter how well you plan, sometimes a system does not run
+ as you expect. If you find you need more swap space, it is
+ simple enough to add. You have three ways to increase swap
+ space: adding a new hard drive, enabling swap over NFS, and
+ creating a swap file on an existing partition.</para>
+
+ <para>For information on how to encrypt swap space, what options
+ for this task exist and why it should be done, please refer to
+ <xref linkend="swap-encrypting"> of the Handbook.</para>
+
+ <sect2 id="new-drive-swap">
+ <title>Swap on a New Hard Drive</title>
+
+ <para>The best way to add swap, of course, is to use this as an
+ excuse to add another hard drive. You can always use another
+ hard drive, after all. If you can do this, go reread the
+ discussion of swap space
+ in <xref linkend="configtuning-initial">
+ of the Handbook for some suggestions on how to best
+ arrange your swap.</para>
+ </sect2>
+
+ <sect2 id="nfs-swap">
+ <title>Swapping over NFS</title>
+
+ <para>Swapping over NFS is only recommended if you do not have a
+ local hard disk to swap to; NFS swapping will be limited
+ by the available network bandwidth and puts an additional
+ burden on the NFS server.</para>
+ </sect2>
+
+ <sect2 id="create-swapfile">
+ <title>Swapfiles</title>
+
+ <para>You can create a file of a specified size to use as a swap
+ file. In our example here we will use a 64MB file called
+ <filename>/usr/swap0</filename>. You can use any name you
+ want, of course.</para>
+
+ <example>
+ <title>Creating a Swapfile on &os;</title>
+
+ <orderedlist>
+ <listitem>
+ <para>Be certain that your kernel configuration includes
+ the memory disk driver (&man.md.4;). It is default in
+ <filename>GENERIC</filename> kernel.</para>
+
+ <programlisting>device md # Memory "disks"</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Create a swapfile (<filename>/usr/swap0</filename>):</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/usr/swap0 bs=1024k count=64</userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>Set proper permissions on (<filename>/usr/swap0</filename>):</para>
+
+ <screen>&prompt.root; <userinput>chmod 0600 /usr/swap0</userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>Enable the swap file in <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>swapfile="/usr/swap0" # Set to name of swapfile if aux swapfile desired.</programlisting>
+ </listitem>
+
+ <listitem>
+
+ <para>Reboot the machine or to enable the swap file immediately,
+ type:</para>
+
+ <screen>&prompt.root; <userinput>mdconfig -a -t vnode -f /usr/swap0 -u 0 &amp;&amp; swapon /dev/md0</userinput></screen>
+ </listitem>
+ </orderedlist>
+
+ </example>
+ </sect2>
+ </sect1>
+
+ <sect1 id="acpi-overview">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Hiten</firstname>
+ <surname>Pandya</surname>
+ <contrib>Written by </contrib>
+ </author>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Power and Resource Management</title>
+
+ <para>It is important to utilize hardware resources in an
+ efficient manner. Before <acronym>ACPI</acronym> was introduced,
+ it was difficult and inflexible for operating systems to manage
+ the power usage and thermal properties of a system. The hardware was
+ managed by the <acronym>BIOS</acronym> and thus the user had less
+ control and visibility into the power management settings.
+ Some limited configurability was available via
+ <emphasis>Advanced Power Management (APM)</emphasis>.
+ Power and resource management is one of the key components of a modern
+ operating system. For example, you may want an operating system to
+ monitor system limits (and possibly alert you) in case your system
+ temperature increased unexpectedly.</para>
+
+ <para>In this section of the &os; Handbook, we will provide
+ comprehensive information about <acronym>ACPI</acronym>. References
+ will be provided for further reading at the end.</para>
+
+ <sect2 id="acpi-intro">
+ <title>What Is ACPI?</title>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>APM</primary>
+ </indexterm>
+
+ <para>Advanced Configuration and Power Interface
+ (<acronym>ACPI</acronym>) is a standard written by
+ an alliance of vendors to provide a standard interface for
+ hardware resources and power management (hence the name).
+ It is a key element in <emphasis>Operating System-directed
+ configuration and Power Management</emphasis>, i.e.: it provides
+ more control and flexibility to the operating system
+ (<acronym>OS</acronym>).
+ Modern systems <quote>stretched</quote> the limits of the
+ current Plug and Play interfaces prior to the introduction of
+ <acronym>ACPI</acronym>. <acronym>ACPI</acronym> is the direct
+ successor to <acronym>APM</acronym>
+ (Advanced Power Management).</para>
+ </sect2>
+
+ <sect2 id="acpi-old-spec">
+ <title>Shortcomings of Advanced Power Management (APM)</title>
+
+ <para>The <emphasis>Advanced Power Management (APM)</emphasis>
+ facility controls the power usage of a system based on its
+ activity. The APM BIOS is supplied by the (system) vendor and
+ it is specific to the hardware platform. An APM driver in the
+ OS mediates access to the <emphasis>APM Software Interface</emphasis>,
+ which allows management of power levels. APM should still be used for
+ systems manufactured at or before the year 2000.</para>
+
+ <para>There are four major problems in APM. Firstly, power
+ management is done by the (vendor-specific) BIOS, and the OS
+ does not have any knowledge of it. One example of this, is when
+ the user sets idle-time values for a hard drive in the APM BIOS,
+ that when exceeded, it (BIOS) would spin down the hard drive,
+ without the consent of the OS. Secondly, the APM logic is
+ embedded in the BIOS, and it operates outside the scope of the
+ OS. This means users can only fix problems in their APM BIOS by
+ flashing a new one into the ROM; which is a very dangerous
+ procedure with the potential to leave the system in an
+ unrecoverable state if it fails. Thirdly, APM is a vendor-specific
+ technology, which means that there is a lot of parity
+ (duplication of efforts) and bugs found in one vendor's BIOS,
+ may not be solved in others. Last but not the least, the APM
+ BIOS did not have enough room to implement a sophisticated power
+ policy, or one that can adapt very well to the purpose of the
+ machine.</para>
+
+ <para><emphasis>Plug and Play BIOS (PNPBIOS)</emphasis> was
+ unreliable in many situations. PNPBIOS is 16-bit technology,
+ so the OS has to use 16-bit emulation in order to
+ <quote>interface</quote> with PNPBIOS methods.</para>
+
+ <para>The &os; <acronym>APM</acronym> driver is documented in
+ the &man.apm.4; manual page.</para>
+ </sect2>
+
+ <sect2 id="acpi-config">
+ <title>Configuring <acronym>ACPI</acronym></title>
+
+ <para>The <filename>acpi.ko</filename> driver is loaded by default
+ at start up by the &man.loader.8; and should <emphasis>not</emphasis>
+ be compiled into the kernel. The reasoning behind this is that modules
+ are easier to work with, say if switching to another
+ <filename>acpi.ko</filename> without doing a kernel rebuild.
+ This has the advantage of making testing easier.
+ Another reason is that starting <acronym>ACPI</acronym> after a
+ system has been brought up often doesn't work well.
+ If you are experiencing problems, you can disable <acronym>ACPI</acronym>
+ altogether. This driver should not and can not be unloaded because the
+ system bus uses it for various hardware interactions.
+ <acronym>ACPI</acronym> can be disabled by setting
+ <literal>hint.acpi.0.disabled="1"</literal> in
+ <filename>/boot/loader.conf</filename> or at the &man.loader.8; prompt.
+ </para>
+
+ <note><para><acronym>ACPI</acronym> and <acronym>APM</acronym> cannot
+ coexist and should be used separately. The last one to load will
+ terminate if the driver notices the other running.</para></note>
+
+ <para><acronym>ACPI</acronym> can be used to put the
+ system into a sleep mode with &man.acpiconf.8;, the <option>-s</option>
+ flag, and a <literal>1-5</literal> option. Most users will only need
+ <literal>1</literal> or <literal>3</literal> (suspend to RAM).
+ Option <literal>5</literal> will do a soft-off which is the same
+ action as:</para>
+
+ <screen>&prompt.root; <userinput>halt -p</userinput></screen>
+
+ <para>Other options are available via &man.sysctl.8;. Check out the
+ &man.acpi.4; and &man.acpiconf.8; manual pages for more information.
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ACPI-debug">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Nate</firstname>
+ <surname>Lawson</surname>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Peter</firstname>
+ <surname>Schultz</surname>
+ <contrib>With contributions from </contrib>
+ </author>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Using and Debugging &os; <acronym>ACPI</acronym></title>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ <secondary>problems</secondary>
+ </indexterm>
+
+ <para><acronym>ACPI</acronym> is a fundamentally new way of
+ discovering devices, managing power usage, and providing
+ standardized access to various hardware previously managed
+ by the <acronym>BIOS</acronym>. Progress is being made toward
+ <acronym>ACPI</acronym> working on all systems, but bugs in some
+ motherboards' <firstterm><acronym>ACPI</acronym> Machine
+ Language</firstterm> (<acronym>AML</acronym>) bytecode,
+ incompleteness in &os;'s kernel subsystems, and bugs in the &intel;
+ <acronym>ACPI-CA</acronym> interpreter continue to appear.</para>
+
+ <para>This document is intended to help you assist the &os;
+ <acronym>ACPI</acronym> maintainers in identifying the root cause
+ of problems you observe and debugging and developing a solution.
+ Thanks for reading this and we hope we can solve your system's
+ problems.</para>
+
+ <sect2 id="ACPI-submitdebug">
+ <title>Submitting Debugging Information</title>
+
+ <note>
+ <para>Before submitting a problem, be sure you are running the latest
+ <acronym>BIOS</acronym> version and, if available, embedded
+ controller firmware version.</para>
+ </note>
+
+ <para>For those of you that want to submit a problem right away,
+ please send the following information to
+ <ulink url="mailto:freebsd-acpi@FreeBSD.org">
+ freebsd-acpi@FreeBSD.org</ulink>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Description of the buggy behavior, including system type
+ and model and anything that causes the bug to appear. Also,
+ please note as accurately as possible when the bug began
+ occurring if it is new for you.</para>
+ </listitem>
+
+ <listitem>
+ <para>The &man.dmesg.8; output after <command>boot
+ -v</command>, including any error messages
+ generated by you exercising the bug.</para>
+ </listitem>
+
+ <listitem>
+ <para>The &man.dmesg.8; output from <command>boot
+ -v</command> with <acronym>ACPI</acronym>
+ disabled, if disabling it helps fix the problem.</para>
+ </listitem>
+
+ <listitem>
+ <para>Output from <command>sysctl hw.acpi</command>. This is also
+ a good way of figuring out what features your system
+ offers.</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>URL</acronym> where your
+ <firstterm><acronym>ACPI</acronym> Source Language</firstterm>
+ (<acronym>ASL</acronym>)
+ can be found. Do <emphasis>not</emphasis> send the
+ <acronym>ASL</acronym> directly to the list as it can be
+ very large. Generate a copy of your <acronym>ASL</acronym>
+ by running this command:</para>
+
+ <screen>&prompt.root; <userinput>acpidump -dt &gt; <replaceable>name</replaceable>-<replaceable>system</replaceable>.asl</userinput></screen>
+
+ <para>(Substitute your login name for
+ <replaceable>name</replaceable> and manufacturer/model for
+ <replaceable>system</replaceable>. Example:
+ <filename>njl-FooCo6000.asl</filename>)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Most of the developers watch the &a.current;
+ but please submit problems to &a.acpi.name; to be sure it is
+ seen. Please be patient, all of us have full-time jobs
+ elsewhere. If your bug is not immediately apparent, we will
+ probably ask you to submit a <acronym>PR</acronym> via
+ &man.send-pr.1;. When entering a <acronym>PR</acronym>, please
+ include the same information as requested above. This will help
+ us track the problem and resolve it. Do not send a
+ <acronym>PR</acronym> without emailing &a.acpi.name; first as we use
+ <acronym>PR</acronym>s as reminders of existing problems, not a
+ reporting mechanism. It is likely that your problem has been
+ reported by someone before.</para>
+ </sect2>
+
+ <sect2 id="ACPI-background">
+ <title>Background</title>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ </indexterm>
+
+ <para><acronym>ACPI</acronym> is present in all modern computers
+ that conform to the ia32 (x86), ia64 (Itanium), and amd64 (AMD)
+ architectures. The full standard has many features including
+ <acronym>CPU</acronym> performance management, power planes
+ control, thermal zones, various battery systems, embedded
+ controllers, and bus enumeration. Most systems implement less
+ than the full standard. For instance, a desktop system usually
+ only implements the bus enumeration parts while a laptop might
+ have cooling and battery management support as well. Laptops
+ also have suspend and resume, with their own associated
+ complexity.</para>
+
+ <para>An <acronym>ACPI</acronym>-compliant system has various
+ components. The <acronym>BIOS</acronym> and chipset vendors
+ provide various fixed tables (e.g., <acronym>FADT</acronym>)
+ in memory that specify things like the <acronym>APIC</acronym>
+ map (used for <acronym>SMP</acronym>), config registers, and
+ simple configuration values. Additionally, a table of bytecode
+ (the <firstterm>Differentiated System Description Table</firstterm>
+ <acronym>DSDT</acronym>) is provided that specifies a
+ tree-like name space of devices and methods.</para>
+
+ <para>The <acronym>ACPI</acronym> driver must parse the fixed
+ tables, implement an interpreter for the bytecode, and modify
+ device drivers and the kernel to accept information from the
+ <acronym>ACPI</acronym> subsystem. For &os;, &intel; has
+ provided an interpreter (<acronym>ACPI-CA</acronym>) that is
+ shared with Linux and NetBSD. The path to the
+ <acronym>ACPI-CA</acronym> source code is
+ <filename class="directory">src/sys/contrib/dev/acpica</filename>.
+ The glue code that allows <acronym>ACPI-CA</acronym> to work on
+ &os; is in
+ <filename>src/sys/dev/acpica/Osd</filename>. Finally, drivers
+ that implement various <acronym>ACPI</acronym> devices are found
+ in
+ <filename class="directory">src/sys/dev/acpica</filename>.</para>
+ </sect2>
+
+ <sect2 id="ACPI-comprob">
+ <title>Common Problems</title>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ <secondary>problems</secondary>
+ </indexterm>
+
+ <para>For <acronym>ACPI</acronym> to work correctly, all the parts
+ have to work correctly. Here are some common problems, in order
+ of frequency of appearance, and some possible workarounds or
+ fixes.</para>
+
+ <sect3>
+ <title>Mouse Issues</title>
+
+ <para>In some cases, resuming from a suspend operation will
+ cause the mouse to fail. A known work around is to add
+ <literal>hint.psm.0.flags="0x3000"</literal> to the
+ <filename>/boot/loader.conf</filename> file. If this
+ does not work then please consider sending a bug report
+ as described above.</para>
+ </sect3>
+
+ <sect3>
+ <title>Suspend/Resume</title>
+
+ <para><acronym>ACPI</acronym> has three suspend to
+ <acronym>RAM</acronym> (<acronym>STR</acronym>) states,
+ <literal>S1</literal>-<literal>S3</literal>, and one suspend
+ to disk state (<literal>STD</literal>), called
+ <literal>S4</literal>. <literal>S5</literal> is
+ <quote>soft off</quote> and is the normal state your system
+ is in when plugged in but not powered up.
+ <literal>S4</literal> can actually be implemented two separate
+ ways. <literal>S4</literal><acronym>BIOS</acronym> is a
+ <acronym>BIOS</acronym>-assisted suspend to disk.
+ <literal>S4</literal><acronym>OS</acronym> is implemented
+ entirely by the operating system.</para>
+
+ <para>Start by checking <command>sysctl hw.acpi</command>
+ for the suspend-related items. Here
+ are the results for a Thinkpad:</para>
+
+ <screen>hw.acpi.supported_sleep_state: S3 S4 S5
+hw.acpi.s4bios: 0</screen>
+
+ <para>This means that we can use <command>acpiconf -s</command>
+ to test <literal>S3</literal>,
+ <literal>S4</literal><acronym>OS</acronym>, and
+ <literal>S5</literal>. If <option>s4bios</option> was one
+ (<literal>1</literal>), we would have
+ <literal>S4</literal><acronym>BIOS</acronym>
+ support instead of <literal>S4</literal>
+ <acronym>OS</acronym>.</para>
+
+ <para>When testing suspend/resume, start with
+ <literal>S1</literal>, if supported. This state is most
+ likely to work since it does not require much driver support.
+ No one has implemented <literal>S2</literal> but if you have
+ it, it is similar to <literal>S1</literal>. The next thing
+ to try is <literal>S3</literal>. This is the deepest
+ <acronym>STR</acronym> state and requires a lot of driver
+ support to properly reinitialize your hardware. If you have
+ problems resuming, feel free to email the &a.acpi.name; list but
+ do not expect the problem to be resolved since there are a lot
+ of drivers/hardware that need more testing and work.</para>
+
+ <para>To help isolate the problem, remove as many drivers from
+ your kernel as possible. If it works, you can narrow down
+ which driver is the problem by loading drivers until it fails
+ again. Typically binary drivers like
+ <filename>nvidia.ko</filename>, X11
+ display drivers, and <acronym>USB</acronym> will have the most
+ problems while Ethernet interfaces usually work fine. If you
+ can properly load/unload the drivers, you can automate this by
+ putting the appropriate commands in
+ <filename>/etc/rc.suspend</filename> and
+ <filename>/etc/rc.resume</filename>. There is a
+ commented-out example for unloading and loading a driver. Try
+ setting <option>hw.acpi.reset_video</option> to zero
+ (<literal>0</literal>) if
+ your display is messed up after resume. Try setting longer or
+ shorter values for <option>hw.acpi.sleep_delay</option> to see
+ if that helps.</para>
+
+ <para>Another thing to try is load a recent Linux distribution
+ with <acronym>ACPI</acronym> support and test their
+ suspend/resume support on the same hardware. If it works
+ on Linux, it is likely a &os; driver problem and narrowing down
+ which driver causes the problems will help us fix the problem.
+ Note that the <acronym>ACPI</acronym> maintainers do not
+ usually maintain other drivers (e.g sound,
+ <acronym>ATA</acronym>, etc.) so any work done on tracking
+ down a driver problem should probably eventually be posted
+ to the &a.current.name; list and mailed to the driver
+ maintainer. If you are feeling adventurous, go ahead and
+ start putting some debugging &man.printf.3;s in a problematic
+ driver to track down where in its resume function it
+ hangs.</para>
+
+ <para>Finally, try disabling <acronym>ACPI</acronym> and
+ enabling <acronym>APM</acronym> instead. If suspend/resume
+ works with <acronym>APM</acronym>, you may be better off
+ sticking with <acronym>APM</acronym>, especially on older
+ hardware (pre-2000). It took vendors a while to get
+ <acronym>ACPI</acronym> support correct and older hardware is
+ more likely to have <acronym>BIOS</acronym> problems with
+ <acronym>ACPI</acronym>.</para>
+ </sect3>
+
+ <sect3>
+ <title>System Hangs (temporary or permanent)</title>
+
+ <para>Most system hangs are a result of lost interrupts or an
+ interrupt storm. Chipsets have a lot of problems based on how
+ the <acronym>BIOS</acronym> configures interrupts before boot,
+ correctness of the <acronym>APIC</acronym>
+ (<acronym>MADT</acronym>) table, and routing of the
+ <firstterm>System Control Interrupt</firstterm>
+ (<acronym>SCI</acronym>).</para>
+
+ <indexterm>
+ <primary>interrupt storms</primary>
+ </indexterm>
+
+ <para>Interrupt storms can be distinguished from lost interrupts
+ by checking the output of <command>vmstat -i</command>
+ and looking at the line that has
+ <literal>acpi0</literal>. If the counter is increasing at more
+ than a couple per second, you have an interrupt storm. If the
+ system appears hung, try breaking to <acronym>DDB</acronym>
+ (<keycombo action="simul"><keycap>CTRL</keycap>
+ <keycap>ALT</keycap><keycap>ESC</keycap></keycombo> on
+ console) and type <literal>show interrupts</literal>.</para>
+
+ <indexterm>
+ <primary>APIC</primary>
+ <secondary>disabling</secondary>
+ </indexterm>
+
+ <para>Your best hope when dealing with interrupt problems is to
+ try disabling <acronym>APIC</acronym> support with
+ <literal>hint.apic.0.disabled="1"</literal> in
+ <filename>loader.conf</filename>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Panics</title>
+
+ <para>Panics are relatively rare for <acronym>ACPI</acronym> and
+ are the top priority to be fixed. The first step is to
+ isolate the steps to reproduce the panic (if possible)
+ and get a backtrace. Follow the advice for enabling
+ <literal>options DDB</literal> and setting up a serial console
+ (see <xref linkend="serialconsole-ddb">)
+ or setting up a &man.dump.8; partition. You can get a
+ backtrace in <acronym>DDB</acronym> with
+ <literal>tr</literal>. If you have to handwrite the
+ backtrace, be sure to at least get the lowest five (5) and top
+ five (5) lines in the trace.</para>
+
+ <para>Then, try to isolate the problem by booting with
+ <acronym>ACPI</acronym> disabled. If that works, you can
+ isolate the <acronym>ACPI</acronym> subsystem by using various
+ values of <option>debug.acpi.disable</option>. See the
+ &man.acpi.4; manual page for some examples.</para>
+ </sect3>
+
+ <sect3>
+ <title>System Powers Up After Suspend or Shutdown</title>
+ <para>First, try setting
+ <literal>hw.acpi.disable_on_poweroff="0"</literal>
+ in &man.loader.conf.5;. This keeps <acronym>ACPI</acronym>
+ from disabling various events during the shutdown process.
+ Some systems need this value set to <literal>1</literal> (the
+ default) for the same reason. This usually fixes
+ the problem of a system powering up spontaneously after a
+ suspend or poweroff.</para>
+ </sect3>
+
+ <sect3>
+ <title>Other Problems</title>
+
+ <para>If you have other problems with <acronym>ACPI</acronym>
+ (working with a docking station, devices not detected, etc.),
+ please email a description to the mailing list as well;
+ however, some of these issues may be related to unfinished
+ parts of the <acronym>ACPI</acronym> subsystem so they might
+ take a while to be implemented. Please be patient and
+ prepared to test patches we may send you.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="ACPI-aslanddump">
+ <title><acronym>ASL</acronym>, <command>acpidump</command>, and
+ <acronym>IASL</acronym></title>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ <secondary>ASL</secondary>
+ </indexterm>
+
+ <para>The most common problem is the <acronym>BIOS</acronym>
+ vendors providing incorrect (or outright buggy!) bytecode. This
+ is usually manifested by kernel console messages like
+ this:</para>
+
+ <screen>ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] \\
+(Node 0xc3f6d160), AE_NOT_FOUND</screen>
+
+ <para>Often, you can resolve these problems by updating your
+ <acronym>BIOS</acronym> to the latest revision. Most console
+ messages are harmless but if you have other problems like
+ battery status not working, they are a good place to start
+ looking for problems in the <acronym>AML</acronym>. The
+ bytecode, known as <acronym>AML</acronym>, is compiled from a
+ source language called <acronym>ASL</acronym>. The
+ <acronym>AML</acronym> is found in the table known as the
+ <acronym>DSDT</acronym>. To get a copy of your
+ <acronym>ASL</acronym>, use &man.acpidump.8;. You should use
+ both the <option>-t</option> (show contents of the fixed tables)
+ and <option>-d</option> (disassemble <acronym>AML</acronym> to
+ <acronym>ASL</acronym>) options. See the
+ <link linkend="ACPI-submitdebug">Submitting Debugging
+ Information</link> section for an example syntax.</para>
+
+ <para>The simplest first check you can do is to recompile your
+ <acronym>ASL</acronym> to check for errors. Warnings can
+ usually be ignored but errors are bugs that will usually prevent
+ <acronym>ACPI</acronym> from working correctly. To recompile
+ your <acronym>ASL</acronym>, issue the following command:</para>
+
+ <screen>&prompt.root; <userinput>iasl your.asl</userinput></screen>
+ </sect2>
+
+ <sect2 id="ACPI-fixasl">
+ <title>Fixing Your <acronym>ASL</acronym></title>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ <secondary>ASL</secondary>
+ </indexterm>
+
+ <para>In the long run, our goal is for almost everyone to have
+ <acronym>ACPI</acronym> work without any user intervention. At
+ this point, however, we are still developing workarounds for
+ common mistakes made by the <acronym>BIOS</acronym> vendors.
+ The &microsoft; interpreter (<filename>acpi.sys</filename> and
+ <filename>acpiec.sys</filename>) does not strictly check for
+ adherence to the standard, and thus many <acronym>BIOS</acronym>
+ vendors who only test <acronym>ACPI</acronym> under &windows;
+ never fix their <acronym>ASL</acronym>. We hope to continue to
+ identify and document exactly what non-standard behavior is
+ allowed by &microsoft;'s interpreter and replicate it so &os; can
+ work without forcing users to fix the <acronym>ASL</acronym>.
+ As a workaround and to help us identify behavior, you can fix
+ the <acronym>ASL</acronym> manually. If this works for you,
+ please send a &man.diff.1; of the old and new
+ <acronym>ASL</acronym> so we can possibly work around the buggy
+ behavior in <acronym>ACPI-CA</acronym> and thus make your fix
+ unnecessary.</para>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ <secondary>error messages</secondary>
+ </indexterm>
+
+ <para>Here is a list of common error messages, their cause, and
+ how to fix them:</para>
+
+ <sect3>
+ <title>_OS dependencies</title>
+
+ <para>Some <acronym>AML</acronym> assumes the world consists of
+ various &windows; versions. You can tell &os; to claim it is
+ any <acronym>OS</acronym> to see if this fixes problems you
+ may have. An easy way to override this is to set
+ <literal>hw.acpi.osname="Windows 2001"</literal>
+ in <filename>/boot/loader.conf</filename> or other similar
+ strings you find in the <acronym>ASL</acronym>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Missing Return statements</title>
+
+ <para>Some methods do not explicitly return a value as the
+ standard requires. While <acronym>ACPI-CA</acronym>
+ does not handle this, &os; has a workaround that allows it to
+ return the value implicitly. You can also add explicit
+ Return statements where required if you know what value should
+ be returned. To force <command>iasl</command> to compile the
+ <acronym>ASL</acronym>, use the <option>-f</option>
+ flag.</para>
+ </sect3>
+
+ <sect3>
+ <title>Overriding the Default <acronym>AML</acronym></title>
+
+ <para>After you customize <filename>your.asl</filename>, you
+ will want to compile it, run:</para>
+
+ <screen>&prompt.root; <userinput>iasl your.asl</userinput></screen>
+
+ <para>You can add the <option>-f</option> flag to force creation
+ of the <acronym>AML</acronym>, even if there are errors during
+ compilation. Remember that some errors (e.g., missing Return
+ statements) are automatically worked around by the
+ interpreter.</para>
+
+ <para><filename>DSDT.aml</filename> is the default output
+ filename for <command>iasl</command>. You can load this
+ instead of your <acronym>BIOS</acronym>'s buggy copy (which
+ is still present in flash memory) by editing
+ <filename>/boot/loader.conf</filename> as
+ follows:</para>
+
+ <programlisting>acpi_dsdt_load="YES"
+acpi_dsdt_name="/boot/DSDT.aml"</programlisting>
+
+ <para>Be sure to copy your <filename>DSDT.aml</filename> to the
+ <filename class="directory">/boot</filename> directory.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="ACPI-debugoutput">
+ <title>Getting Debugging Output From
+ <acronym>ACPI</acronym></title>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ <secondary>problems</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>ACPI</primary>
+ <secondary>debugging</secondary>
+ </indexterm>
+
+ <para>The <acronym>ACPI</acronym> driver has a very flexible
+ debugging facility. It allows you to specify a set of subsystems
+ as well as the level of verbosity. The subsystems you wish to
+ debug are specified as <quote>layers</quote> and are broken down
+ into <acronym>ACPI-CA</acronym> components (ACPI_ALL_COMPONENTS)
+ and <acronym>ACPI</acronym> hardware support (ACPI_ALL_DRIVERS).
+ The verbosity of debugging output is specified as the
+ <quote>level</quote> and ranges from ACPI_LV_ERROR (just report
+ errors) to ACPI_LV_VERBOSE (everything). The
+ <quote>level</quote> is a bitmask so multiple options can be set
+ at once, separated by spaces. In practice, you will want to use
+ a serial console to log the output if it is so long
+ it flushes the console message buffer. A full list of the
+ individual layers and levels is found in the &man.acpi.4; manual
+ page.</para>
+
+ <para>Debugging output is not enabled by default. To enable it,
+ add <literal>options ACPI_DEBUG</literal> to your kernel configuration file
+ if <acronym>ACPI</acronym> is compiled into the kernel. You can
+ add <literal>ACPI_DEBUG=1</literal> to your
+ <filename>/etc/make.conf</filename> to enable it globally. If
+ it is a module, you can recompile just your
+ <filename>acpi.ko</filename> module as follows:</para>
+
+ <screen>&prompt.root; <userinput>cd /sys/modules/acpi/acpi
+&amp;&amp; make clean &amp;&amp;
+make ACPI_DEBUG=1</userinput></screen>
+
+ <para>Install <filename>acpi.ko</filename> in
+ <filename class="directory">/boot/kernel</filename> and add your
+ desired level and layer to <filename>loader.conf</filename>.
+ This example enables debug messages for all
+ <acronym>ACPI-CA</acronym> components and all
+ <acronym>ACPI</acronym> hardware drivers
+ (<acronym>CPU</acronym>, <acronym>LID</acronym>, etc.). It will
+ only output error messages, the least verbose level.</para>
+
+ <programlisting>debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
+debug.acpi.level="ACPI_LV_ERROR"</programlisting>
+
+ <para>If the information you want is triggered by a specific event
+ (say, a suspend and then resume), you can leave out changes to
+ <filename>loader.conf</filename> and instead use
+ <command>sysctl</command> to specify the layer and level after
+ booting and preparing your system for the specific event. The
+ <command>sysctl</command>s are named the same as the tunables
+ in <filename>loader.conf</filename>.</para>
+ </sect2>
+
+ <sect2 id="ACPI-References">
+ <title>References</title>
+
+ <para>More information about <acronym>ACPI</acronym> may be found
+ in the following locations:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The &a.acpi;</para>
+ </listitem>
+
+ <listitem>
+ <para>The <acronym>ACPI</acronym> Mailing List Archives
+ <ulink url="http://lists.freebsd.org/pipermail/freebsd-acpi/"></ulink></para>
+ </listitem>
+
+ <listitem>
+ <para>The old <acronym>ACPI</acronym> Mailing List Archives
+ <ulink url="http://home.jp.FreeBSD.org/mail-list/acpi-jp/"></ulink></para>
+ </listitem>
+
+ <listitem>
+ <para>The <acronym>ACPI</acronym> 2.0 Specification
+ <ulink url="http://acpi.info/spec.htm"></ulink></para>
+ </listitem>
+
+ <listitem>
+ <para>&os; Manual pages: &man.acpi.4;,
+ &man.acpi.thermal.4;, &man.acpidump.8;, &man.iasl.8;,
+ &man.acpidb.8;</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.cpqlinux.com/acpi-howto.html#fix_broken_dsdt">
+ <acronym>DSDT</acronym> debugging resource</ulink>.
+ (Uses Compaq as an example but generally useful.)</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml
new file mode 100644
index 0000000000..77b39e15d4
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/cutting-edge/chapter.sgml
@@ -0,0 +1,3532 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Ενημέρωση και Αναβάθμιση του FreeBSD
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+ %SRCID% 1.256
+
+-->
+
+<chapter id="updating-upgrading">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Αναδομήθηκε, αναδιοργανώθηκε, και τμήματα του ανανεώθηκαν
+ από τον </contrib>
+ </author>
+ <!-- Mar 2000 -->
+ </authorgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Jordan</firstname>
+ <surname>Hubbard</surname>
+ <contrib>Αρχική συνεισφορά από τους </contrib>
+ </author>
+
+ <author>
+ <firstname>Poul-Henning</firstname>
+ <surname>Kamp</surname>
+ </author>
+
+ <author>
+ <firstname>John</firstname>
+ <surname>Polstra</surname>
+ </author>
+
+ <author>
+ <firstname>Nik</firstname>
+ <surname>Clayton</surname>
+ </author>
+ </authorgroup>
+ <!-- with feedback from various others -->
+ </chapterinfo>
+
+ <title>Ενημέρωση και Αναβάθμιση του &os;</title>
+
+ <sect1 id="updating-upgrading-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το &os; βρίσκεται υπό συνεχή εξέλιξη μεταξύ των επίσημων εκδόσεων
+ του. Μερικοί άνθρωποι προτιμούν να χρησιμοποιούν τις επίσημες εκδόσεις,
+ ενώ άλλοι προτιμούν να κρατούν το σύστημα τους ενημερωμένο με τις
+ τελευταίες εξελίξεις. Ωστόσο, ακόμα και οι επίσημες εκδόσεις
+ ενημερώνονται συχνά με διορθώσεις κρίσιμων σφαλμάτων και ασφαλείας.
+ Όποια έκδοση και να χρησιμοποιήσετε, το &os; παρέχει όλα τα
+ απαραίτητα εργαλεία για να κρατήσετε το σύστημα σας ενημερωμένο, και
+ επίσης σας επιτρέπει να αναβαθμιστείτε εύκολα σε κάποια επόμενη
+ έκδοση. Το κεφάλαιο αυτό θα σας βοηθήσει να αποφασίσετε αν θέλετε να
+ παρακολουθείτε το σύστημα ανάπτυξης, ή αν θα προτιμήσετε να παραμείνετε
+ σε μια από τις παγιωμένες εκδόσεις. Θα παρουσιάσουμε επίσης τα βασικά
+ εργαλεία που απαιτούνται για την ενημέρωση και αναβάθμιση του
+ συστήματος.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>Ποια βοηθητικά προγράμματα μπορείτε να χρησιμοποιήσετε για να
+ ενημερώσετε το σύστημα και την Συλλογή των Ports.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να διατηρείτε το σύστημα σας ενημερωμένο με τα προγράμματα
+ <application>freebsd-update</application>
+ <application>CVSup</application>,
+ <application>CVS</application>, ή
+ <application>CTM</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να συγκρίνετε την κατάσταση ενός εγκατεστημένου συστήματος,
+ με αναφορά ένα γνωστό και εγγυημένα σωστό σύστημα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να διατηρήσετε την τεκμηρίωση σας ενημερωμένη μέσω του
+ <application>CVSup</application> ή των ports της τεκμηρίωσης <!--
+ και του <application>Docsnap</application>-->.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τη διαφορά μεταξύ των δύο κλάδων που βρίσκονται σε εξέλιξη: του
+ &os.stable; και του &os.current;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ξαναφτιάξετε και να επανεγκαταστήσετε ολόκληρο
+ το βασικό σύστημα με την <command>make buildworld</command>
+ (κλπ).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να ρυθμίσετε σωστά τη σύνδεση σας στο δίκτυο (<xref
+ linkend="advanced-networking">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό
+ τρίτου κατασκευαστή (<xref linkend="ports">).</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Στο κεφάλαιο αυτό γίνεται συχνά χρήση της εντολής
+ <command>cvsup</command> για την ανάκτηση ή ενημέρωση των αρχείων
+ πηγαίου κώδικα του &os;. Για να την χρησιμοποιήσετε, θα πρέπει να
+ εγκαταστήσετε ένα πακέτο ή port όπως το
+ <filename role="package">net/cvsup</filename> (αν δεν θέλετε να
+ εγκαταστήσετε γραφικό πρόγραμμα <command>cvsup</command>, μπορείτε
+ να εγκαταστήσετε το port <filename
+ role="package">net/cvsup-without-gui</filename>).
+ Μπορείτε να αντικαταστήσετε αυτή την εντολή με την &man.csup.1;
+ η οποία ανήκει στο βασικό σύστημα.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="updating-upgrading-freebsdupdate">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Colin</firstname>
+ <surname>Percival</surname>
+ <contrib>Βασίστηκε σε σημειώσεις που παρείχε ο </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Ενημερώνοντας το &os;</title>
+
+ <indexterm><primary>Updating and Upgrading FreeBSD</primary></indexterm>
+ <indexterm>
+ <primary>freebsd-update</primary>
+ <see>updating-upgrading</see>
+ </indexterm>
+
+ <para>Η εφαρμογή ενημερώσεων ασφαλείας αποτελεί ένα σημαντικό τμήμα της
+ συντήρησης λογισμικού, ειδικά όταν πρόκειται για το λειτουργικό σύστημα.
+ Για μεγάλο διάστημα, η διαδικασία αυτή δεν ήταν εύκολη στο &os;.
+ Έπρεπε να εφαρμοστούν patches στον πηγαίο κώδικα, να γίνει μεταγλώττιση
+ του από την αρχή, και να εγκατασταθούν ξανά τα νέα εκτελέσιμα.</para>
+
+ <para>Αυτό δεν είναι πλέον αναγκαίο, καθώς το &os; διαθέτει τώρα ένα
+ βοηθητικό πρόγραμμα, το <command>freebsd-update</command>. Το πρόγραμμα
+ παρέχει δύο διαφορετικές λειτουργίες. Η πρώτη είναι η δυνατότητα
+ δυαδικής (binary) ενημέρωσης του βασικού συστήματος με τις τελευταίες
+ διορθώσεις ασφάλειας και λαθών, χωρίς να χρειάζεται ξανά μεταγλώττιση
+ και εγκατάσταση. Η δεύτερη είναι η δυνατότητα αναβάθμισης του
+ συστήματος σε μια νέα μικρή ή μεγάλη επίσημη έκδοση (release).</para>
+
+ <note>
+ <para>Δυαδικές διορθώσεις λαθών και ασφάλειας, διατίθενται για όλες
+ τις αρχιτεκτονικές και εκδόσεις που υποστηρίζονται από την ομάδα
+ ασφάλειας. Πριν προχωρήσετε στην αναβάθμιση σε μια νέα έκδοση,
+ θα πρέπει να διαβάσετε τις σχετικές με αυτήν ανακοινώσεις, καθώς
+ μπορεί να περιέχουν σημαντικές πληροφορίες. Μπορείτε να δείτε τις
+ ανακοινώσεις εκδόσεων στην παρακάτω τοποθεσία:
+ <ulink url="http://www.FreeBSD.org/releases/"></ulink>.</para>
+ </note>
+
+ <para>Αν υπάρχει κάποιο <command>crontab</command> που χρησιμοποιεί τις
+ δυνατότητες του <command>freebsd-update</command>, θα πρέπει να
+ απενεργοποιηθεί πριν ξεκινήσει η παρακάτω διαδικασία. Μπορείτε να
+ εγκαταστήσετε την τελευταία έκδοση του
+ <command>freebsd-update</command> κατεβάζοντας το συμπιεσμένο πακέτο
+ από το παραπάνω <acronym>URL</acronym> και εκτελώντας τις παρακάτω
+ εντολές:</para>
+
+ <screen>&prompt.root; <userinput>gunzip -c freebsd-update-upgrade.tgz | tar xvf -</userinput>
+&prompt.root; <userinput>mv freebsd-update.sh /usr/sbin/freebsd-update</userinput>
+&prompt.root; <userinput>mv freebsd-update.conf /etc</userinput></screen>
+
+ <para>Δεν απαιτείται να κατεβάσετε την τελευταία έκδοση, αν χρησιμοποιείτε
+ κάποια από τις τρέχουσες εκδόσεις του &os;.</para>
+
+ <sect2 id="freebsdupdate-config-file">
+ <title>Το Αρχείο Ρυθμίσεων</title>
+
+ <para>Κάποιοι χρήστες ίσως θέλουν να αλλάξουν το προεπιλεγμένο αρχείο
+ ρυθμίσεων <filename>/etc/freebsd-update.conf</filename>, ώστε
+ να έχουν καλύτερο έλεγχο της διαδικασίας. Οι επιλογές είναι γενικά
+ αρκετά καλά τεκμηριωμένες, αλλά οι παρακάτω ίσως να χρειάζονται
+ κάποιες επιπλέον επεξηγήσεις:</para>
+
+ <programlisting># Components of the base system which should be kept updated.
+Components src world kernel</programlisting>
+
+ <para>Αυτή η παράμετρος ελέγχει ποια τμήματα του &os; θα διατηρούνται
+ ενημερωμένα. Η προεπιλογή είναι να ενημερώνεται ο πηγαίος κώδικας,
+ όλο το βασικό σύστημα, και ο πυρήνας. Τα τμήματα είναι τα ίδια
+ που διατίθενται και κατά την εγκατάσταση, για παράδειγμα αν βάλετε
+ την επιλογή <literal>world/games</literal> θα εγκαθίστανται ενημερώσεις
+ για τα παιχνίδια. Αν βάλετε <literal>src/bin</literal> θα επιτρέψετε
+ την ενημέρωση του πηγαίου κώδικα του καταλόγου
+ <filename class="directory">src/bin</filename>.</para>
+
+ <para>Η καλύτερη επιλογή είναι να αφήσετε εδώ την προεπιλεγμένη τιμή,
+ καθώς αν την αλλάξετε ώστε να περιέχει συγκεκριμένα μόνο τμήματα,
+ θα αναγκαστείτε να αναφέρετε χωριστά μέσα στο αρχείο ρυθμίσεων κάθε
+ τμήμα που θέλετε να ενημερώνεται. Αυτό ίσως έχει καταστροφικά
+ αποτελέσματα, καθώς είναι πιθανό ο πηγαίος κώδικας και τα εκτελέσιμα
+ προγράμματα να μην είναι πλέον σε συγχρονισμό μεταξύ τους.</para>
+
+ <programlisting># Paths which start with anything matching an entry in an IgnorePaths
+# statement will be ignored.
+IgnorePaths</programlisting>
+
+ <para>Προσθέστε διαδρομές σε καταλόγους, όπως
+ <filename class="directory">/bin</filename> ή
+ <filename class="directory">/sbin</filename> για να αφήσετε
+ απείραχτους τους συγκεκριμένους καταλόγους κατά την διαδικασία
+ ενημέρωσης. Η επιλογή αυτή μπορεί να χρησιμοποιηθεί για να αποτρέψει
+ το <command>freebsd-update</command> να γράψει πάνω σε πιθανόν
+ δικές σας τοπικές αλλαγές.</para>
+
+ <programlisting># Paths which start with anything matching an entry in an UpdateIfUnmodified
+# statement will only be updated if the contents of the file have not been
+# modified by the user (unless changes are merged; see below).
+UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>
+
+ <para>Η επιλογή αυτή θα ενημερώσει τα αρχεία ρυθμίσεων στους καταλόγους
+ που καθορίζονται, μόνο αν αυτά δεν έχουν μεταβληθεί από το χρήστη.
+ Αν υπάρχουν τοπικές αλλαγές, δεν θα γίνει ενημέρωση. Υπάρχει μια
+ ακόμα επιλογή, η <literal>KeepModifiedMetadata</literal>, η οποία
+ οδηγεί το <command>freebsd-update</command> να αποθηκεύσει τις αλλαγές
+ μεταξύ των δύο εκδόσεων κατά τη διάρκεια της συγχώνευσης
+ (merge).</para>
+
+ <programlisting># When upgrading to a new &os; release, files which match MergeChanges
+# will have any local changes merged into the version from the new release.
+MergeChanges /etc/ /var/named/etc/</programlisting>
+
+ <para>Πρόκειται για τη λίστα των καταλόγων που περιέχουν αρχεία
+ ρυθμίσεων, και στα οποία το <command>freebsd-update</command> θα
+ επιχειρεί την διαδικασία συγχώνευσης αλλαγών. Η διαδικασία
+ συγχώνευσης γίνεται με μια σειρά από patches τύπου &man.diff.1;
+ παρόμοια με το &man.mergemaster.8; αλλά με λιγότερες επιλογές. Οι
+ συγχωνεύσεις είτε γίνονται δεκτές, είτε προκαλούν το άνοιγμα κάποιου
+ συντάκτη κειμένου, διαφορετικά η εκτέλεση του
+ <command>freebsd-update</command> ακυρώνεται. Αν δεν είστε
+ σίγουρος, κρατήστε αντίγραφο ασφαλείας του καταλόγου
+ <filename class="directory">/etc</filename> και απλώς δεχθείτε τις
+ αλλαγές. Δείτε το <xref linkend="mergemaster"> για
+ περισσότερες πληροφορίες σχετικά με την εντολή
+ <command>mergemaster</command>.</para>
+
+ <programlisting># Directory in which to store downloaded updates and temporary
+# files used by &os; Update.
+# WorkDir /var/db/freebsd-update</programlisting>
+
+ <para>Στον κατάλογο αυτό φυλάσσονται όλα τα patches και τα προσωρινά
+ αρχεία. Σε περιπτώσεις όπου ο χρήστης εκτελεί αναβάθμιση σε μια
+ νεότερη έκδοση του &os;, θα πρέπει να διαθέτει τουλάχιστον ένα
+ gigabyte ελεύθερου χώρου.</para>
+
+ <programlisting># When upgrading between releases, should the list of Components be
+# read strictly (StrictComponents yes) or merely as a list of components
+# which *might* be installed of which &os; Update should figure out
+# which actually are installed and upgrade those (StrictComponents no)?
+# StrictComponents no</programlisting>
+
+ <para>Αν θέσετε την παραπάνω επιλογή στο <literal>yes</literal>,
+ το <command>freebsd-update</command> θα υποθέσει ότι η λίστα
+ <literal>Components</literal> είναι πλήρης και δεν θα επιχειρήσει
+ να προχωρήσει σε αλλαγές εκτός λίστας. Ουσιαστικά, το
+ <command>freebsd-update</command> θα προσπαθήσει να ενημερώσει κάθε
+ αρχείο που ανήκει στη λίστα <literal>Components</literal>.</para>
+ </sect2>
+
+ <sect2 id="freebsdupdate-security-patches">
+ <title>Patches Σχετικά με την Ασφάλεια</title>
+
+ <para>Τα patches που σχετίζονται με την ασφάλεια, αποθηκεύονται σε
+ ένα απομακρυσμένο μηχάνημα και μπορούν να μεταφορτωθούν και να
+ εγκατασταθούν με την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
+&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <para>Αν με την παραπάνω εντολή εγκατασταθούν ενημερώσεις στον πυρήνα,
+ θα χρειαστεί να επανεκκινήσετε το σύστημα. Αν όλα πάνε καλά, το
+ σύστημα θα είναι πλέον ενημερωμένο και μπορείτε να εκτελείτε το
+ <command>freebsd-update</command> αυτόματα με την βοήθεια του
+ &man.cron.8;. Μια απλή καταχώριση στο αρχείο
+ <filename>/etc/crontab</filename> είναι επαρκής για αυτό
+ το σκοπό:</para>
+
+ <programlisting>@daily root freebsd-update cron</programlisting>
+
+ <para>Η παραπάνω καταχώριση ορίζει ότι το
+ <command>freebsd-update</command> θα εκτελείται μια φορά την ημέρα.
+ Με τον τρόπο αυτό, και όταν η εκτέλεση είναι μέσω της επιλογής
+ <option>cron</option>, το <command>freebsd-update</command> απλώς
+ θα ελέγχει για ενημερώσεις. Αν υπάρχουν, η εφαρμογή θα τις
+ κατεβάζει, αλλά δεν θα τις εγκαθιστά. Θα στέλνει όμως ένα email
+ στο χρήστη <username>root</username> ώστε να τις εγκαταστήσει
+ χειροκίνητα.</para>
+
+ <para>Αν οτιδήποτε πάει στραβά, το <command>freebsd-update</command>
+ έχει την ικανότητα να επιστρέφει στην προηγούμενη σταθερή κατάσταση,
+ αναιρώντας το τελευταίο σετ αλλαγών με την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen>
+
+ <para>Με την ολοκλήρωση της εντολής, θα πρέπει να επανεκκινήσετε το
+ σύστημα αν έχουν γίνει αλλαγές στον πυρήνα ή σε κάποιο από τα
+ αρθρώματα του. Αυτό θα επιτρέψει στο &os; να φορτώσει τα νέα
+ εκτελέσιμα στη μνήμη.</para>
+
+ <para>Το βοηθητικό πρόγραμμα <command>freebsd-update</command> μπορεί
+ να ενημερώσει αυτόματα μόνο τον πυρήνα <filename>GENERIC</filename>.
+ Αν χρησιμοποιείται προσαρμοσμένος πυρήνας, θα πρέπει να
+ μεταγλωττιστεί ξανά, όταν το <command>freebsd-update</command>
+ τελειώσει με την εγκατάσταση των υπόλοιπων ενημερώσεων. Ωστόσο, το
+ <command>freebsd-update</command> θα ανιχνεύσει και θα ενημερώσει
+ τον πυρήνα <filename>GENERIC</filename> στο <filename
+ class="directory">/boot/GENERIC</filename> (αν υπάρχει), ακόμα
+ και αν δεν είναι ο ενεργός πυρήνας του συστήματος (αυτός που
+ εκτελείται τη συγκεκριμένη στιγμή).</para>
+
+ <note>
+ <para>Είναι γενικά καλή ιδέα να έχετε πάντα ένα αντίγραφο του
+ πυρήνα <filename>GENERIC</filename> στον κατάλογο <filename
+ class="directory">/boot/GENERIC</filename>. Θα σας βοηθήσει στην
+ διάγνωση διάφορων προβλημάτων, καθώς και στην αναβάθμιση σε επόμενες
+ εκδόσεις του &os;, μέσω του <command>freebsd-update</command>.
+ Η διαδικασία αυτή περιγράφεται στο
+ <xref linkend="freebsdupdate-upgrade">.</para>
+ </note>
+
+ <para>Αν δεν έχουν γίνει αλλαγές στις προεπιλεγμένες ρυθμίσεις στο
+ αρχείο <filename>/etc/freebsd-update.conf</filename>, το
+ <command>freebsd-update</command> θα εγκαταστήσει τα ανανεωμένα αρχεία
+ πηγαίου κώδικα μαζί με τις υπόλοιπες ενημερώσεις. Μπορείτε έπειτα να
+ προχωρήσετε στη μεταγλώττιση και εγκατάσταση νέου προσαρμοσμένου
+ πυρήνα, με το συνήθη τρόπο.</para>
+
+ <note>
+ <para>Οι ενημερώσεις που διανέμονται μέσω του
+ <command>freebsd-update</command> δεν περιλαμβάνουν πάντοτε αλλαγές
+ στον πυρήνα. Δεν είναι απαραίτητο να επαναμεταγλωττίσετε τον
+ προσαρμοσμένο πυρήνα σας, αν η εκτέλεση του
+ <command>freebsd-update install</command> δεν επέφερε αλλαγές στα
+ αρχεία πηγαίου κώδικα του πυρήνα. Ωστόσο, το
+ <command>freebsd-update</command> ενημερώνει πάντοτε το αρχείο
+ <filename>/usr/src/sys/conf/newvers.sh</filename>. Το αρχείο αυτό
+ περιέχει το τρέχον επίπεδο ενημερώσεων (patch level) το οποίο και
+ αναφέρεται ως αριθμός <literal>-p</literal> από εντολές όπως η
+ <command>uname -r</command>. Μεταγλωττίζοντας ξανά τον
+ προσαρμοσμένο πυρήνα σας (ακόμα και αν δεν υπάρχουν άλλες αλλαγές)
+ θα δώσετε τη δυνατότητα στην &man.uname.1; να αναφέρει με ακρίβεια
+ το επίπεδο ενημερώσεων. Αυτό μπορεί να είναι ιδιαίτερα χρήσιμο
+ όταν συντηρείτε πολλαπλά συστήματα, καθώς σας επιτρέπει να
+ αξιολογήσετε με μια ματιά τι ενημερώσεις έχουν εγκατασταθεί στο
+ καθένα.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="freebsdupdate-upgrade">
+ <title>Αναβαθμίσεις σε Μικρές και Μεγάλες Εκδόσεις</title>
+
+ <para>Η διαδικασία αυτή θα απομακρύνει τα παλιά αρχεία αντικειμενικού
+ κώδικα (object files) καθώς και τις παλιές βιβλιοθήκες, κάνοντας
+ τις περισσότερες εφαρμογές τρίτων κατασκευαστών να μη λειτουργούν.
+ Σας συνιστούμε είτε να απεγκαταστήσετε όλα τα εγκατεστημένα ports και
+ να τα εγκαταστήσετε ξανά, ή να τα αναβαθμίσετε αργότερα,
+ χρησιμοποιώντας το βοηθητικό πρόγραμμα
+ <filename role="package">ports-mgmt/portupgrade</filename>.
+ Οι περισσότεροι χρήστες θα θέλουν να κάνουν μια δοκιμαστική
+ μεταγλώττιση χρησιμοποιώντας την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
+
+ <para>Με αυτό τον τρόπο εξασφαλίζεται ότι τα πάντα θα επανεγκατασταθούν
+ σωστά. Σημειώστε ότι αν θέσετε την μεταβλητή περιβάλλοντος
+ <makevar>BATCH</makevar> στην τιμή <literal>yes</literal>, όλες οι
+ πιθανές ερωτήσεις που θα εμφανιστούν κατά τη διαδικασία, θα
+ απαντηθούν αυτόματα με <literal>yes</literal>. Έτσι δεν υπάρχει πλέον
+ ανάγκη για παρέμβαση του χρήστη κατά τη διάρκεια της διαδικασίας
+ μεταγλώττισης.</para>
+
+ <para>Αν χρησιμοποιείται προσαρμοσμένος πυρήνας, η διαδικασία
+ αναβάθμισης είναι ελαφρά πιο πολύπλοκη. Θα χρειαστείτε ένα αντίγραφο
+ του πυρήνα <filename>GENERIC</filename> στον κατάλογο <filename
+ class="directory">/boot/GENERIC</filename>. Αν δεν υπάρχει ήδη ο
+ πυρήνας <filename>GENERIC</filename> στο σύστημα σας, μπορείτε να τον
+ ανακτήσετε χρησιμοποιώντας μια από τις παρακάτω μεθόδους:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Αν έχετε μεταγλωττίσει προσαρμοσμένο πυρήνα μόνο μια φορά, ο
+ πυρήνας στον κατάλογο <filename
+ class="directory">/boot/kernel.old</filename> είναι στην
+ πραγματικότητα ο <filename>GENERIC</filename>. Απλώς μετονομάστε
+ τον κατάλογο σε <filename
+ class="directory">/boot/GENERIC</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν έχετε φυσική πρόσβαση στο μηχάνημα, μπορείτε να
+ εγκαταστήσετε ένα αντίγραφο του πυρήνα <filename>GENERIC</filename>
+ από το CD-ROM της εγκατάστασης. Τοποθετήστε το CD-ROM στον οδηγό
+ και χρησιμοποιήστε τις παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>mount /cdrom</userinput>
+&prompt.root; <userinput>cd /cdrom/<replaceable>X.Y-RELEASE</replaceable>/kernels</userinput>
+&prompt.root; <userinput>./install.sh GENERIC</userinput></screen>
+
+ <para>Αντικαταστήστε το <filename
+ class="directory"><replaceable>X.Y-RELEASE</replaceable></filename>
+ με τους πραγματικούς αριθμούς της έκδοσης που χρησιμοποιείτε.
+ Ο πυρήνας <filename>GENERIC</filename> θα εγκατασταθεί από
+ προεπιλογή στον κατάλογο <filename
+ class="directory">/boot/GENERIC</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν δεν έχετε κάποια από τις παραπάνω επιλογές, μπορείτε να
+ μεταγλωττίσετε και να εγκαταστήσετε τον πυρήνα
+ <filename>GENERIC</filename> μέσω του πηγαίου κώδικα:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/</userinput>
+&prompt.root; <userinput>env DESTDIR=/boot/GENERIC make kernel</userinput>
+&prompt.root; <userinput>mv /boot/GENERIC/boot/kernel/* /boot/GENERIC</userinput>
+&prompt.root; <userinput>rm -rf /boot/GENERIC/boot</userinput></screen>
+
+ <para>Για να αναγνωριστεί αυτός ο πυρήνας ως
+ <filename>GENERIC</filename> από το
+ <command>freebsd-update</command>, δεν θα πρέπει να έχουν γίνει
+ αλλαγές στο αρχείο ρυθμίσεων του <filename>GENERIC</filename>.
+ Συνίσταται επίσης η μεταγλώττιση να γίνει χωρίς άλλες
+ εξειδικευμένες ρυθμίσεις (κατά προτίμηση με κενό το
+ <filename>/etc/make.conf</filename>).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Δεν χρειάζεται τη δεδομένη στιγμή να επανεκκινήσετε με τον πυρήνα
+ <filename>GENERIC</filename>.</para>
+
+ <para>Είναι δυνατές οι αναβαθμίσεις τόσο σε μικρές όσο και σε μεγάλες
+ εκδόσεις, δίνοντας στην εντολή <command>freebsd-update</command> τον
+ επιθυμητό αριθμό έκδοσης. Για παράδειγμα, η ακόλουθη εντολή θα
+ αναβαθμίσει το σύστημα σε &os;&nbsp;8.1:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update -r 8.1-RELEASE upgrade</userinput></screen>
+
+ <para>Μετά τη λήψη της εντολής, το
+ <command>freebsd-update</command> θα αξιολογήσει την κατάσταση του
+ συστήματος και του αρχείου ρυθμίσεων του, σε μια απόπειρα να μαζέψει
+ τις απαραίτητες πληροφορίες για την αναβάθμιση του συστήματος.
+ Οι πληροφορίες που ανιχνεύθηκαν θα εμφανιστούν στην οθόνη με τη μορφή
+ μιας λίστας εγκατεστημένων προγραμμάτων. Για παράδειγμα:</para>
+
+ <screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
+Fetching metadata signature for 8.0-RELEASE from update1.FreeBSD.org... done.
+Fetching metadata index... done.
+Inspecting system... done.
+
+The following components of FreeBSD seem to be installed:
+kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
+src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
+src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
+world/base world/info world/lib32 world/manpages
+
+The following components of FreeBSD do not seem to be installed:
+kernel/generic world/catpages world/dict world/doc world/games
+world/proflibs
+
+Does this look reasonable (y/n)? y</screen>
+
+ <para>Στο σημείο αυτό, το <command>freebsd-update</command> θα
+ κατεβάσει όλα τα αρχεία που απαιτούνται για την αναβάθμιση. Σε
+ μερικές περιπτώσεις, ο χρήστης θα κληθεί να απαντήσει σε ερωτήσεις
+ σχετικά με το τι θα εγκατασταθεί ή πως πρέπει να προχωρήσει η
+ διαδικασία.</para>
+
+ <para>Όταν χρησιμοποιείται προσαρμοσμένος πυρήνας, το παραπάνω βήμα
+ θα προκαλέσει την εμφάνιση της παρακάτω προειδοποίησης:</para>
+
+ <screen>WARNING: This system is running a "<replaceable>MYKERNEL</replaceable>" kernel, which is not a
+kernel configuration distributed as part of FreeBSD 8.0-RELEASE.
+This kernel will not be updated: you MUST update the kernel manually
+before running "/usr/sbin/freebsd-update install"</screen>
+
+ <para>Μπορείτε να αγνοήσετε αυτή την προειδοποίηση. Θα χρησιμοποιήσουμε
+ τον ενημερωμένο πυρήνα <filename>GENERIC</filename> ως ενδιάμεσο βήμα
+ στη διαδικασία αναβάθμισης.</para>
+
+ <para>Αφού μεταφορτωθούν όλα τα patches στο τοπικό σύστημα, θα γίνει
+ και η εφαρμογή τους. Η διαδικασία αυτή ίσως πάρει λίγο χρόνο,
+ ανάλογα με την ταχύτητα και το φορτίο του μηχανήματος. Έπειτα θα
+ γίνει η συγχώνευση των αρχείων ρυθμίσεων. Αυτό το μέρος της
+ διαδικασίας απαιτεί παρέμβαση του χρήστη, καθώς σε κάποια αρχεία θα
+ χρειαστεί η συγχώνευση να γίνει χειροκίνητα με τη βοήθεια κάποιου
+ συντάκτη κειμένου. Ο χρήστης θα ενημερώνεται για το αποτέλεσμα κάθε
+ επιτυχημένης συγχώνευσης καθώς εξελίσσεται η διαδικασία. Σε
+ περίπτωση αποτυχημένης συγχώνευσης (ή αγνόησης της), η διαδικασία
+ αναβάθμισης θα διακοπεί. Ενδεχομένως να θέλετε να κρατήσετε αντίγραφο
+ ασφαλείας του καταλόγου <filename class="directory">/etc</filename>
+ και να συγχωνεύσετε αργότερα (χειροκίνητα) κάποια σημαντικά αρχεία,
+ όπως το <filename>master.passwd</filename> ή το
+ <filename>group</filename>.</para>
+
+ <note>
+ <para>Στο σημείο αυτό δεν έχει γίνει ακόμα καμιά αλλαγή στο σύστημα,
+ καθώς όλη η διαδικασία της αναβάθμισης και συγχώνευσης γίνεται σε
+ διαφορετικό κατάλογο. Όταν εφαρμοστούν επιτυχώς όλα τα patches
+ και ολοκληρωθεί με επιτυχία η διαδικασία της συγχώνευσης όλων των
+ αρχείων ρύθμισης, ο χρήστης θα πρέπει να επιβεβαιώσει την τελική
+ εγκατάσταση.</para>
+ </note>
+
+ <para>Με το τέλος αυτής τη διαδικασίας, η αναβάθμιση μπορεί να
+ οριστικοποιηθεί στο δίσκο, με τη χρήση της ακόλουθης εντολής:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <para>Στην πρώτη φάση, θα αλλαχθεί ο πυρήνας και τα σχετικά αρθρώματα.
+ Στο σημείο αυτό, θα πρέπει να γίνει επανεκκίνηση του μηχανήματος.
+ Σε μηχάνημα με προσαρμοσμένο πυρήνα, χρησιμοποιήστε την εντολή
+ &man.nextboot.8; ώστε να θέσετε τον πυρήνα για την επόμενη εκκίνηση
+ στον <filename class="directory">/boot/GENERIC</filename> (ο οποίος
+ έχει ήδη αναβαθμιστεί):</para>
+
+ <screen>&prompt.root; <userinput>nextboot -k GENERIC</userinput></screen>
+
+ <warning>
+ <para>Πριν επανεκκινήσετε με τον πυρήνα <filename>GENERIC</filename>,
+ βεβαιωθείτε ότι περιέχει όλα τα προγράμματα οδήγησης που απαιτούνται
+ για την επιτυχή εκκίνηση του συστήματος σας (και τη λειτουργία του
+ δικτύου, αν αναβαθμίζετε κάποιο απομακρυσμένο μηχάνημα).
+ Ειδικότερα, αν ο προηγούμενος προσαρμοσμένος πυρήνας περιείχε
+ λειτουργίες που συνήθως παρέχονται από αρθρώματα (modules),
+ βεβαιωθείτε ότι φροντίσατε να φορτωθούν προσωρινά στον πυρήνα
+ <filename>GENERIC</filename> χρησιμοποιώντας τις δυνατότητες του
+ αρχείου <filename>/boot/loader.conf</filename>. Ίσως επίσης να
+ θέλετε να απενεργοποιήσετε υπηρεσίες, προσαρτήσεις δίσκων και
+ δικτύου κ.λ.π. που δεν είναι απαραίτητες, μέχρι την ολοκλήρωση της
+ διαδικασίας αναβάθμισης.</para>
+ </warning>
+
+ <para>Μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή για να
+ επανεκκινήσετε το μηχάνημα με τον νέο πυρήνα:</para>
+
+ <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
+
+ <para>Μόλις το σύστημα επανέλθει σε λειτουργία, θα πρέπει να εκτελέσετε
+ ξανά το <command>freebsd-update</command>. Η προηγούμενη λειτουργία
+ έχει αποθηκευθεί, και έτσι το <command>freebsd-update</command> δεν θα
+ ξεκινήσει από την αρχή, αλλά θα απομακρύνει όλες τις παλιές
+ κοινόχρηστες βιβλιοθήκες και τα αρχεία αντικειμενικού κώδικα. Για να
+ συνεχίσετε σε αυτό το στάδιο, δώστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <note>
+ <para>Ανάλογα με το αν υπήρξαν αλλαγές στους αριθμούς εκδόσεων των
+ βιβλιοθηκών, ίσως να υπάρχουν μόνο δύο φάσεις εγκατάστασης αντί για
+ τρεις.</para>
+ </note>
+
+ <para>Όλο το λογισμικό τρίτου κατασκευαστή θα πρέπει τώρα να
+ μεταγλωττιστεί και να επανεγκατασταθεί από την αρχή. Αυτό απαιτείται
+ καθώς το εγκατεστημένο λογισμικό ίσως εξαρτάται από βιβλιοθήκες οι
+ οποίες αφαιρέθηκαν κατά τη διαδικασία της αναβάθμισης. Μπορείτε να
+ χρησιμοποιήσετε την εντολή
+ <filename role="package">ports-mgmt/portupgrade</filename>
+ για να αυτοματοποιήσετε αυτή τη διαδικασία. Για να ξεκινήσετε, δώστε
+ τις παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
+&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
+&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
+&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
+&prompt.root; <userinput>portupgrade -af</userinput></screen>
+
+ <para>Μόλις ολοκληρωθεί το παραπάνω, ολοκληρώστε τη διαδικασία
+ αναβάθμισης με μια τελευταία κλήση της εντολής
+ <command>freebsd-update</command>. Δώστε την παρακάτω εντολή για να
+ ολοκληρώσετε οτιδήποτε έχει απομείνει στη διαδικασία
+ αναβάθμισης:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
+
+ <para>Αν χρησιμοποιούσατε προσωρινά τον πυρήνα
+ <filename>GENERIC</filename>, αυτή είναι η κατάλληλη στιγμή για να
+ μεταγλωττίσετε και να εγκαταστήσετε νέο προσαρμοσμένο πυρήνα, με το
+ συνήθη τρόπο.</para>
+
+ <para>Επανεκκινήστε το μηχάνημα σας στην νέα έκδοση του &os;.
+ Η διαδικασία έχει ολοκληρωθεί.</para>
+ </sect2>
+
+ <sect2 id="freebsdupdate-system-comparison">
+ <title>Σύγκριση Κατάστασης του Συστήματος</title>
+
+ <para>Το βοηθητικό πρόγραμμα <command>freebsd-update</command> μπορεί να
+ χρησιμοποιηθεί για να ελέγξετε την κατάσταση της εγκατεστημένης
+ έκδοσης του &os; σε σχέση με μια γνωστή και σωστή εγκατάσταση.
+ Η επιλογή αυτή συγκρίνει και αξιολογεί την τρέχουσα έκδοση των
+ προγραμμάτων συστήματος, των βιβλιοθηκών και των αρχείων ρύθμισης.
+ Για να ξεκινήσετε τη σύγκριση, δώστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>freebsd-update IDS &gt;&gt; outfile.ids</userinput></screen>
+
+ <warning>
+ <para>Αν και το όνομα της εντολής είναι <acronym>IDS</acronym>, δεν
+ θα πρέπει σε καμιά περίπτωση να θεωρηθεί υποκατάστατο ενός
+ συστήματος ανίχνευσης εισβολέα (intrusion detection system) όπως
+ είναι για παράδειγμα το
+ <filename role="package">security/snort</filename>.
+ Καθώς το <command>freebsd-update</command> αποθηκεύει τα δεδομένα
+ του στο δίσκο, υπάρχει πάντα η πιθανότητα να έχει γίνει αλλοίωση
+ τους. Αν και η πιθανότητα αυτή μπορεί να μειωθεί χρησιμοποιώντας
+ τη ρύθμιση <varname>kern.securelevel</varname> και αποθηκεύοντας
+ τα δεδομένα της εντολής <command>freebsd-update</command> σε ένα
+ σύστημα αρχείων μόνο για ανάγνωση, μια ακόμα καλύτερη λύση θα ήταν
+ να συγκρίνετε το σύστημα με κάποιο δίσκο που θεωρείτε σίγουρα
+ ασφαλή. Μπορείτε να χρησιμοποιήσετε ένα δίσκο
+ <acronym>DVD</acronym> ή ένα εξωτερικό δίσκο <acronym>USB</acronym>
+ που φυλάσσετε σε ασφαλή τοποθεσία.</para>
+ </warning>
+
+ <para>Θα γίνει τώρα μια επιθεώρηση του συστήματος και θα εκτυπωθεί
+ μια λίστα από αρχεία και τιμές hash του τύπου &man.sha256.1;,
+ τόσο για το εγκατεστημένο όσο και για το γνωστό σύστημα. Επειδή
+ πρόκειται για μεγάλη λίστα, την ανακατευθύνουμε στο αρχείο
+ <filename>outfile.ids</filename>. Στην οθόνη το κείμενο θα κυλούσε
+ πολύ γρήγορα, και σύντομα θα γέμιζε την προσωρινή μνήμη απεικόνισης
+ της κονσόλας.</para>
+
+ <para>Οι γραμμές αυτές έχουν γενικά μεγάλο μήκος, αλλά είναι εύκολο
+ να επεξεργαστούμε την έξοδο. Για παράδειγμα, για να δείτε μια λίστα
+ όλων των αρχείων που διαφέρουν από αυτά της επίσημης έκδοσης, δώστε
+ την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cat outfile.ids | awk '{ print $1 }' | more</userinput>
+/etc/master.passwd
+/etc/motd
+/etc/passwd
+/etc/pf.conf</screen>
+
+ <para>Τα παραπάνω είναι μόνο ένα μέρος της εξόδου, υπάρχουν ακόμα
+ πολλά διαφορετικά αρχεία. Κάποια από αυτά τα αρχεία είναι φυσιολογικό
+ να έχουν τροποποιηθεί. Για παράδειγμα, το
+ <filename>/etc/passwd</filename> έχει τροποποιηθεί, καθώς έχουν
+ προστεθεί χρήστες στο σύστημα. Σε μερικές περιπτώσεις, μπορεί να
+ υπάρχουν και άλλα αρχεία, όπως π.χ. αρθρώματα πυρήνα τα οποία
+ διαφέρουν αφού έχουν ενημερωθεί μέσω της
+ <command>freebsd-update</command>. Για να εξαιρέσετε συγκεκριμένα
+ αρχεία ή καταλόγους, προσθέστε τα στην επιλογή
+ <literal>IDSIgnorePaths</literal> στο αρχείο ρυθμίσεων
+ <filename>/etc/freebsd-update.conf</filename>.</para>
+
+ <para>Εκτός από την χρήση που αναφέραμε προηγουμένως, το σύστημα αυτό
+ μπορεί να χρησιμοποιηθεί και ως τμήμα μιας λεπτομερούς διαδικασίας
+ αναβάθμισης.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="updating-upgrading-portsnap">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Colin</firstname>
+ <surname>Percival</surname>
+ <contrib>Βασισμένο σε σημειώσεις που παρείχε ο </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Portsnap: Ένα Εργαλείο Ενημέρωσης της Συλλογής των Ports</title>
+
+ <indexterm><primary>Updating and Upgrading</primary></indexterm>
+ <indexterm>
+ <primary>Portsnap</primary>
+ <see>Updating and Upgrading</see>
+ </indexterm>
+
+ <para>Το βασικό σύστημα του &os; περιλαμβάνει επίσης ένα βοηθητικό
+ πρόγραμμα για την ενημέρωση της Συλλογής των Ports. Πρόκειται για το
+ &man.portsnap.8;. Όταν το εκτελέσετε, θα συνδεθεί σε ένα απομακρυσμένο
+ διακομιστή, θα επαληθεύσει το κλειδί του πηγαίου κώδικα, και θα
+ κατεβάσει ένα νέο αντίγραφο της Συλλογής των Ports. Το κλειδί
+ χρησιμοποιείται για να επαληθεύσει την ακεραιότητα όλων των αρχείων
+ που μεταφορτώνονται, εξασφαλίζοντας ότι δεν έχουν αλλοιωθεί κατά
+ την μεταφορά. Για να κατεβάσετε τα τελευταία αρχεία της Συλλογής των
+ Ports, εκτελέστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portsnap fetch</userinput>
+Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
+Fetching snapshot tag from portsnap1.FreeBSD.org... done.
+Fetching snapshot metadata... done.
+Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
+Fetching 3 metadata patches.. done.
+Applying metadata patches... done.
+Fetching 3 metadata files... done.
+Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
+Applying patches... done.
+Fetching 133 new ports or files... done.</screen>
+
+ <para>Το παραπάνω παράδειγμα δείχνει ότι το &man.portsnap.8;
+ βρήκε και επαλήθευσε αρκετά patches τα οποία πρέπει να εφαρμοστούν
+ στο υπάρχον δέντρο των ports. Αυτό δείχνει επίσης ότι το πρόγραμμα
+ έχει εκτελεστεί κατά το παρελθόν. Αν αυτή ήταν η πρώτη φορά που
+ εκτελούνταν, θα γίνονταν απλώς κατέβασμα της συλλογής.</para>
+
+ <para>Όταν το &man.portsnap.8; εκτελέσει επιτυχώς τη λειτουργία
+ <command>fetch</command>, η Συλλογή των Ports και τα
+ αντίστοιχα patches έχουν αποθηκευθεί στο τοπικό σύστημα και έχει γίνει
+ η επαλήθευση τους. Την πρώτη φορά που θα εκτελέσετε το
+ <command>portsnap</command>, θα πρέπει να χρησιμοποιήσετε το
+ <literal>extract</literal> για να εγκαταστήσετε τα ενημερωμένα
+ αρχεία:</para>
+
+ <screen>&prompt.root; <userinput>portsnap extract</userinput>
+/usr/ports/.cvsignore
+/usr/ports/CHANGES
+/usr/ports/COPYRIGHT
+/usr/ports/GIDs
+/usr/ports/KNOBS
+/usr/ports/LEGAL
+/usr/ports/MOVED
+/usr/ports/Makefile
+/usr/ports/Mk/bsd.apache.mk
+/usr/ports/Mk/bsd.autotools.mk
+/usr/ports/Mk/bsd.cmake.mk
+<replaceable>...</replaceable></screen>
+
+ <para>Αν έχετε ήδη εγκατεστημένη την Συλλογή των Ports, χρησιμοποιήστε
+ την εντολή <command>portsnap update</command> για να την
+ ενημέρωσετε:</para>
+
+ <screen>&prompt.root; <userinput>portsnap update</userinput></screen>
+
+ <para>Η διαδικασία έχει πλέον ολοκληρωθεί, και μπορείτε να εγκαταστήσετε
+ ή να αναβαθμίσετε εφαρμογές χρησιμοποιώντας την ενημερωμένη Συλλογή των
+ Ports.</para>
+
+ <para>Μπορείτε να εκτελέσετε τις διαδικασίες <literal>fetch</literal> και
+ <literal>extract</literal> ή <literal>update</literal> διαδοχικά, όπως
+ φαίνεται στο παρακάτω παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
+ <para>Η παραπάνω εντολή θα κατεβάσει την τελευταία έκδοση της Συλλογής
+ των Ports και θα ενημερώσει τα τοπικά αρχεία σας στον κατάλογο
+ <filename class="directory">/usr/ports</filename>.</para>
+ </sect1>
+
+ <sect1 id="updating-upgrading-documentation">
+ <title>Ενημερώνοντας την Τεκμηρίωση</title>
+
+ <indexterm><primary>Updating and Upgrading</primary></indexterm>
+
+ <indexterm>
+ <primary>Documentation</primary>
+ <see>Updating and Upgrading</see>
+ </indexterm>
+
+ <para>Εκτός από το βασικό σύστημα και την Συλλογή των Ports, η τεκμηρίωση
+ αποτελεί επίσης βασικό τμήμα ενός συστήματος &os;. Αν και πάντα
+ μπορείτε να βρείτε την πιο πρόσφατη τεκμηρίωση στην <ulink
+ url="http://www.freebsd.org/doc/">δικτυακή τοποθεσία του &os;</ulink>,
+ ορισμένοι χρήστες ίσως έχουν αργή ή μη σταθερή σύνδεση με το Διαδίκτυο.
+ Ευτυχώς υπάρχουν αρκετοί τρόποι για να ενημερώσετε την τεκμηρίωση η
+ οποία παρέχεται με κάθε επίσημη έκδοση, διατηρώντας το δικό σας τοπικό
+ αντίγραφο της πιο πρόσφατης τεκμηρίωσης του &os;.</para>
+
+ <sect2 id="csup-doc">
+ <title>Χρησιμοποιώντας το CVSup για την Ενημέρωση της
+ Τεκμηρίωσης</title>
+
+ <para>Ο πηγαίος κώδικας και το εγκατεστημένο αντίγραφο της τεκμηρίωσης
+ του &os;, μπορούν να ενημερωθούν με την βοήθεια του
+ <application>CVSup</application>, χρησιμοποιώντας ένα μηχανισμό
+ παρόμοιο με αυτόν που χρησιμοποιείται στο βασικό σύστημα (δείτε το
+ <xref linkend="makeworld">). Η ενότητα αυτή περιγράφει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να εγκαταστήσετε τα εργαλεία που απαιτούνται για την
+ τεκμηρίωση, με τα οποία μπορείτε να δημιουργήσετε την τεκμηρίωση
+ του &os; ξεκινώντας από τον πηγαίο της κώδικα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να κατεβάσετε ένα αντίγραφο του πηγαίου κώδικα της
+ τεκμηρίωσης στον κατάλογο <filename
+ class="directory">/usr/doc</filename> χρησιμοποιώντας το
+ <application>CVSup</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αναδημιουργήσετε την τεκμηρίωση του &os; από τον
+ πηγαίο της κώδικα, και να την εγκαταστήσετε στον κατάλογο
+ <filename class="directory">/usr/share/doc/</filename>.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="installing-documentation-toolchain">
+ <title>Εγκαθιστώντας το CVSup και τη Σειρά Εργαλείων της
+ Τεκμηρίωσης</title>
+
+ <para>Η αναδημιουργία της τεκμηρίωσης του &os; από τον πηγαίο κώδικα,
+ απαιτεί μια σχετικά μεγάλη συλλογή εργαλείων. Τα εργαλεία αυτά δεν
+ είναι μέρος του βασικού συστήματος του &os;, καθώς χρειάζονται αρκετό
+ χώρο στο δίσκο και δεν είναι χρήσιμα σε όλους τους χρήστες.
+ Είναι χρήσιμα μόνο στους χρήστες που ασχολούνται με τη συγγραφή νέας
+ τεκμηρίωσης για το &os;, ή που ενημερώνουν συχνά την τοπική τους
+ τεκμηρίωση μέσω του πηγαίου κώδικα.</para>
+
+ <para>Όλα τα απαιτούμενα εργαλεία διατίθενται μέσω της Συλλογής των
+ Ports. Το <filename
+ role="package">textproc/docproj</filename> είναι το κύριο port το
+ οποίο έχει αναπτυχθεί από την Ομάδα Τεκμηρίωσης του &os;, για να
+ βοηθήσει στην αρχική εγκατάσταση και τις μελλοντικές αναβαθμίσεις
+ αυτών των εργαλείων.</para>
+
+ <note>
+ <para>Αν δεν απαιτείται η δημιουργία τεκμηρίωσης σε μορφές
+ &postscript; ή PDF, μπορείτε να εγκαταστήσετε το port <filename
+ role="package">textproc/docproj-nojadetex</filename>. Αυτή η
+ έκδοση των εργαλείων περιέχει τα πάντα εκτός από την μηχανή
+ στοιχειοθεσίας <application>teTeX</application>.
+ Το <application>teTeX</application> είναι μια αρκετά μεγάλη συλλογή
+ εργαλείων, και δεν έχει νόημα να το εγκαταστήσετε αν δεν σας
+ είναι απαραίτητη η παραγωγή της τεκμηρίωσης σε μορφή
+ PDF.</para>
+ </note>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με την εγκατάσταση και χρήση
+ του <application>CVSup</application>, δείτε την ενότητα <link
+ linkend="cvsup">Χρησιμοποιώντας το CVSup</link>.</para>
+ </sect2>
+
+ <sect2 id="updating-documentation-sources">
+ <title>Ενημερώνοντας τον Πηγαίο Κώδικα της Τεκμηρίωσης</title>
+
+ <para>Το βοηθητικό πρόγραμμα <application>CVSup</application> μπορεί να
+ κατεβάσει ένα καθαρό αντίγραφο του πηγαίου κώδικα της τεκμηρίωσης,
+ χρησιμοποιώντας το
+ <filename>/usr/share/examples/cvsup/doc-supfile</filename>
+ ως πρότυπο αρχείο ρυθμίσεων. Ο προεπιλεγμένος υπολογιστής ενημερώσεων
+ στο παραπάνω αρχείο είναι ρυθμισμένος σε πλασματική τιμή. Ωστόσο,
+ η &man.cvsup.1; δέχεται όνομα υπολογιστή μέσω της γραμμής εντολών,
+ έτσι μπορείτε να ανακτήσετε τον πηγαίο κώδικα της τεκμηρίωσης μέσω
+ κάποιου εξυπηρετητή <application>CVSup</application> γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>cvsup -h <replaceable>cvsup.FreeBSD.org</replaceable> -g -L 2 <filename>/usr/share/examples/cvsup/doc-supfile</filename></userinput></screen>
+
+ <para>Αλλάξτε το <replaceable>cvsup.FreeBSD.org</replaceable> με τον
+ κοντινότερο σας εξυπηρετητή <application>CVSup</application>. Δείτε
+ το <xref linkend="cvsup-mirrors"> για μια πλήρη λίστα των mirror
+ sites.</para>
+
+ <para>Το αρχικό κατέβασμα του πηγαίου κώδικα της τεκμηρίωσης μπορεί
+ να διαρκέσει αρκετή ώρα. Αφήστε το να εκτελείται μέχρι να
+ ολοκληρωθεί.</para>
+
+ <para>Μπορείτε να συνεχίσετε να ενημερώνετε τον πηγαίο κώδικα της
+ τεκμηρίωσης χρησιμοποιώντας την ίδια εντολή. Το βοηθητικό πρόγραμμα
+ <application>CVSup</application> κατεβάζει και αντιγράφει μόνο τις
+ ενημερώσεις σε σχέση με την τελευταία εκτέλεση του, έτσι κάθε εκτέλεση
+ του <application>CVSup</application> μετά την πρώτη θα πρέπει να
+ είναι αρκετά γρήγορη.</para>
+
+ <para>Μετά την αρχική ανάκτηση του πηγαίου κώδικα, ένας εναλλακτικός
+ τρόπος ενημέρωσης της τεκμηρίωσης είναι μέσω του αρχείου
+ <filename>Makefile</filename> στον κατάλογο <filename
+ class="directory">/usr/doc</filename>. Θέτοντας τις μεταβλητές
+ <makevar>SUP_UPDATE</makevar>, <makevar>SUPHOST</makevar> και
+ <makevar>DOCSUPFILE</makevar> στο αρχείο
+ <filename>/etc/make.conf</filename>, μπορείτε να εκτελέσετε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
+&prompt.root; <userinput>make update</userinput></screen>
+
+ <para>Τυπικές τιμές για τις παραπάνω επιλογές του &man.make.1; στο
+ αρχείο <filename>/etc/make.conf</filename> είναι:</para>
+
+ <programlisting>SUP_UPDATE= yes
+SUPHOST?= cvsup.freebsd.org
+DOCSUPFILE?= /usr/share/examples/cvsup/doc-supfile</programlisting>
+
+ <note>
+ <para>Αν θέσετε τις τιμές των <makevar>SUPHOST</makevar> και
+ <makevar>DOCSUPFILE</makevar> σε <literal>?=</literal>, θα μπορείτε
+ να ορίσετε άλλες τιμές για αυτές στη γραμμή εντολής του make.
+ Αυτός είναι και ο συνιστώμενος τρόπος να προσθέσετε επιλογές στο
+ <filename>make.conf</filename>, ώστε να αποφεύγετε να τροποποιείτε
+ συνέχεια το αρχείο κάθε φορά που θέλετε να δοκιμάσετε μια νέα τιμή
+ σε μια επιλογή.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="updating-documentation-options">
+ <title>Προσαρμογή Επιλογών στον Πηγαίο Κώδικα της Τεκμηρίωσης</title>
+
+ <para>Το σύστημα ενημέρωσης και μεταγλώττισης της τεκμηρίωσης του &os;,
+ υποστηρίζει μερικές επιλογές που διευκολύνουν τη διαδικασία
+ ενημέρωσης ενός μόνο μέρους της τεκμηρίωσης, ή την μεταγλώττιση
+ της τεκμηρίωσης κάποιων συγκεκριμένων μεταφράσεων. Αν θέλετε οι
+ επιλογές αυτές να ισχύουν μόνιμα, μπορείτε να τις ορίσετε μέσα στο
+ αρχείο <filename>/etc/make.conf</filename>, διαφορετικά μπορείτε να
+ τις ορίζετε κάθε φορά στη γραμμή εντολής της &man.make.1;.</para>
+
+ <para>Κάποιες από τις επιλογές αυτές φαίνονται παρακάτω:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><makevar>DOC_LANG</makevar></term>
+
+ <listitem>
+ <para>Λίστα των γλωσσών και κωδικοποιήσεων που θα μεταγλωττιστούν
+ και θα εγκατασταθούν, π.χ. <literal>en_US.ISO8859-1</literal>
+ αν είναι επιθυμητή μόνο η Αγγλική τεκμηρίωση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><makevar>FORMATS</makevar></term>
+
+ <listitem>
+ <para>Η μορφή (ή μια λίστα από μορφές) στην οποία θα παραχθεί η
+ μεταγλωττισμένη τεκμηρίωση. Τη δεδομένη στιγμή υποστηρίζονται
+ οι μορφές <literal>html</literal>,
+ <literal>html-split</literal>, <literal>txt</literal>,
+ <literal>ps</literal>, <literal>pdf</literal> και
+ <literal>rtf</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><makevar>SUPHOST</makevar></term>
+
+ <listitem>
+ <para>Το όνομα του εξυπηρετητή <application>CVSup</application>
+ που θα χρησιμοποιηθεί κατά την ενημέρωση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><makevar>DOCDIR</makevar></term>
+
+ <listitem>
+ <para>Ο κατάλογος στον οποίο θα εγκατασταθεί η τεκμηρίωση. Από
+ προεπιλογή είναι ο <filename
+ class="directory">/usr/share/doc</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με τις μεταβλητές του make
+ που υποστηρίζονται ως επιλογές συστήματος στο &os;, δείτε την σελίδα
+ manual του &man.make.conf.5;.</para>
+
+ <para>Για περισσότερες πληροφορίες και μεταβλητές make που
+ υποστηρίζονται από το σύστημα μεταγλώττισης της τεκμηρίωσης του &os;,
+ παρακαλούμε δείτε τις <ulink
+ url="&url.doc.langbase.en;/books/fdp-primer">Οδηγίες της Ομάδας
+ Τεκμηρίωσης του &os; για Νέους Συγγραφείς</ulink>.</para>
+ </sect2>
+
+ <sect2 id="updating-installed-documentation">
+ <title>Εγκατάσταση της Τεκμηρίωσης του FreeBSD από τον Πηγαίο
+ Κώδικα</title>
+
+ <para>Έχοντας ενημερώσει το τοπικό αντίγραφο του πηγαίου κώδικα της
+ τεκμηρίωσης στον κατάλογο <filename
+ class="directory">/usr/doc</filename>, είμαστε έτοιμοι για την
+ ενημέρωση της εγκατεστημένης τεκμηρίωσης.</para>
+
+ <para>Μπορείτε να προχωρήσετε σε πλήρη ενημέρωση όλων των γλωσσών που
+ ορίζονται στην επιλογή <makevar>DOC_LANG</makevar> του Makefile,
+ γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Αν έχετε ρυθμίσει το <filename>make.conf</filename> με τις σωστές
+ τιμές για τις επιλογές <makevar>DOCSUPFILE</makevar>,
+ <makevar>SUPHOST</makevar> και <makevar>SUP_UPDATE</makevar>, μπορείτε
+ να συνδυάσετε τα βήματα ενημέρωσης και εγκατάστασης του πηγαίου
+ κώδικα σε ένα, γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
+&prompt.root; <userinput>make update install clean</userinput></screen>
+
+ <para>Αν επιθυμείτε την ενημέρωση μιας μόνο συγκεκριμένης γλώσσας,
+ μπορείτε να καλέσετε την &man.make.1; σε ένα συγκεκριμένο
+ υποκατάλογο του <filename class="directory">/usr/doc</filename>,
+ π.χ.:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/doc/en_US.ISO8859-1</userinput>
+&prompt.root; <userinput>make update install clean</userinput></screen>
+
+ <para>Μπορείτε να καθορίσετε τη μορφή της τεκμηρίωσης που θα
+ εγκατασταθεί, ρυθμίζοντας τη μεταβλητή <makevar>FORMATS</makevar> του
+ make, π.χ.:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/doc</userinput>
+&prompt.root; <userinput>make FORMATS='html html-split' install clean</userinput></screen>
+ </sect2>
+
+ <sect2 id="doc-ports">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Βασισμένο σε εργασία του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Χρησιμοποιώντας τα Ports της Τεκμηρίωσης</title>
+
+ <indexterm><primary>Updating and Upgrading</primary></indexterm>
+
+ <indexterm>
+ <primary>documentation package</primary>
+ <see>Updating and Upgrading</see>
+ </indexterm>
+
+ <para>Στην προηγούμενη ενότητα, παρουσιάσαμε μια μέθοδο για την
+ ενημέρωση της τεκμηρίωσης του &os; μέσω του πηγαίου κώδικα.
+ Ωστόσο, οι ενημερώσεις που βασίζονται στον πηγαίο κώδικα μπορεί να
+ μην είναι δυνατές ή πρακτικές για κάθε σύστημα &os;. Η διαδικασία
+ μεταγλώττισης του πηγαίου κώδικα της τεκμηρίωσης απαιτεί σχετικά
+ μεγάλο αριθμό εργαλείων και βοηθητικών προγραμμάτων, γνωστά ως
+ <emphasis>εργαλεία τεκμηρίωσης</emphasis>. Απαιτεί επίσης και μια
+ σχετική εξοικείωση με το <application>CVS</application> και τη
+ διαδικασία ανάκτησης των αρχείων από αυτό, καθώς και μια σειρά
+ από βήματα για τη μεταγλώττιση του κώδικα. Στην ενότητα αυτή
+ περιγράφουμε ένα εναλλακτικό τρόπο ενημέρωσης της τεκμηρίωσης που
+ εγκαθίσταται μαζί με το &os;. Η μέθοδος αυτή χρησιμοποιεί την
+ Συλλογή των Ports και δίνει τις παρακάτω δυνατότητες:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Κατέβασμα και εγκατάσταση προ-μεταγλωττισμένων στιγμιότυπων
+ της τεκμηρίωσης, χωρίς να απαιτείται καμιά τοπική μεταγλώττιση
+ (εξαλείφοντας έτσι και την ανάγκη εγκατάστασης όλων των εργαλείων
+ τεκμηρίωσης).</para>
+ </listitem>
+
+ <listitem>
+ <para>Κατέβασμα του πηγαίου κώδικα της τεκμηρίωσης και
+ μεταγλώττιση του μέσω των δυνατοτήτων που παρέχουν τα εργαλεία
+ των ports (απλοποιώντας με αυτό τον τρόπο τη χειροκίνητη
+ διαδικασία ανάκτησης και μεταγλώττισης).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αυτές οι δύο μέθοδοι ενημέρωσης της τεκμηρίωσης του &os;
+ υποστηρίζονται από μια σειρά από
+ <emphasis>ports τεκμηρίωσης</emphasis> τα οποία ενημερώνονται κάθε
+ μήνα από την &a.doceng;. Στη Συλλογή των Ports, θα τα βρείτε κάτω
+ από την κατηγορία <ulink
+ url="http://www.freshports.org/docs/">docs</ulink>.</para>
+
+ <sect3 id="doc-ports-install-make">
+ <title>Μεταγλώττιση και Εγκατάσταση των Ports της Τεκμηρίωσης</title>
+
+ <para>Τα ports της τεκμηρίωσης χρησιμοποιούν τις δυνατότητες
+ μεταγλώττισης που παρέχει το σύστημα των ports ώστε να διευκολύνουν
+ τη διαδικασία δημιουργίας της τεκμηρίωσης. Με αυτό τον τρόπο
+ η ανάκτηση του πηγαίου κώδικα της τεκμηρίωσης γίνεται αυτόματα με
+ την εκτέλεση της &man.make.1; και τις κατάλληλες ρυθμίσεις στο
+ περιβάλλον. Η εγκατάσταση και απεγκατάσταση της τεκμηρίωσης
+ είναι το ίδιο εύκολη με την εγκατάσταση οποιουδήποτε άλλου port
+ ή πακέτου στο &os;.</para>
+
+ <note>
+ <para>Σε περίπτωση τοπικής μεταγλώττισης των ports της τεκμηρίωσης,
+ απαιτείται και η εγκατάσταση των
+ <emphasis>εργαλείων τεκμηρίωσης</emphasis>. Τα εργαλεία αυτά
+ ωστόσο θα εγκατασταθούν αυτόματα.</para>
+ </note>
+
+ <para>Η οργάνωση των ports τεκμηρίωσης φαίνεται παρακάτω:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Υπάρχει ένα κεντρικό <quote>master port</quote>, το
+ <filename role="package">misc/freebsd-doc-en</filename> το
+ οποίο διαθέτει τα απαραίτητα αρχεία και αποτελεί την
+ βάση όλων των άλλων ports τεκμηρίωσης. Από προεπιλογή, το
+ port αυτό μεταγλωττίζει μόνο την Αγγλική τεκμηρίωση.</para>
+ </listitem>
+
+ <listitem>
+ <para>Υπάρχει ένα port <quote>όλα σε ένα</quote>, το
+ <filename role="package">misc/freebsd-doc-all</filename> το
+ οποίο μεταγλωττίζει και εγκαθιστά όλη την τεκμηρίωση σε όλες τις
+ διαθέσιμες γλώσσες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τέλος, υπάρχει ένα <quote>εξαρτώμενο port</quote> για κάθε
+ μετάφραση, π.χ.: <filename
+ role="package">misc/freebsd-doc-el</filename> για την
+ Ελληνική τεκμηρίωση. Όλα αυτά τα ports εξαρτώνται από το
+ master port και εγκαθιστούν την τεκμηρίωση που έχει μεταφραστεί
+ στην αντίστοιχη γλώσσα.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για να εγκαταστήσετε ένα port τεκμηρίωσης από τον πηγαίο κώδικα,
+ εκτελέστε τις παρακάτω εντολές
+ (ως <username>root</username>):</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/misc/freebsd-doc-en</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Το παραπάνω θα μεταγλωττίσει και θα εγκαταστήσει την Αγγλική
+ τεκμηρίωση σε μορφή τμηματικών <acronym>HTML</acronym> κειμένων
+ (όπως χρησιμοποιούνται και στο <ulink
+ url="http://www.FreeBSD.org"></ulink>), στον κατάλογο <filename
+ class="directory">/usr/local/share/doc/freebsd</filename>.</para>
+
+ <sect4 id="doc-ports-options">
+ <title>Συνηθισμένες Επιλογές και Παράμετροι Μεταγλώττισης</title>
+
+ <para>Μπορείτε να χρησιμοποιήσετε αρκετές επιλογές για την
+ τροποποίηση της προεπιλεγμένης συμπεριφοράς των ports τεκμηρίωσης.
+ Παρακάτω δείχνουμε μερικές μόνο από αυτές:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><makevar>WITH_HTML</makevar></term>
+
+ <listitem>
+ <para>Επιτρέπει τη δημιουργία της τεκμηρίωσης σε μορφή HTML.
+ Θα δημιουργηθεί ένα αρχείο HTML για κάθε κείμενο.
+ Η μορφοποιημένη τεκμηρίωση θα αποθηκευθεί, ανάλογα με την
+ περίπτωση, σε ένα αρχείο με όνομα
+ <filename>article.html</filename> ή
+ <filename>book.html</filename>. Θα γίνει επίσης και
+ αποθήκευση των αντίστοιχων εικόνων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><makevar>WITH_PDF</makevar></term>
+
+ <listitem>
+ <para>Επιτρέπει τη δημιουργία εγγράφου σε μορφή &adobe;
+ Portable Document Format (PDF) για χρήση με τον &adobe;
+ &acrobat.reader;, το <application>Ghostscript</application>,
+ ή άλλα προγράμματα προβολής εγγράφων PDF. Η μορφοποιημένη
+ τεκμηρίωση θα αποθηκευθεί, ανάλογα με την περίπτωση, σε ένα
+ αρχείο <filename>article.pdf</filename> ή
+ <filename>book.pdf</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><makevar>DOCBASE</makevar></term>
+
+ <listitem>
+ <para>Πρόκειται για την θέση στην οποία θα εγκατασταθεί η
+ τεκμηρίωση. Από προεπιλογή, είναι ο κατάλογος <filename
+ class="directory">/usr/local/share/doc/freebsd</filename>.</para>
+
+ <note>
+ <para>Παρατηρήστε ότι ο προεπιλεγμένος κατάλογος διαφέρει
+ από αυτόν που χρησιμοποιείται στη μέθοδο
+ <application>CVSup</application>. Αυτό συμβαίνει επειδή
+ γίνεται εγκατάσταση port, τα οποία από προεπιλογή
+ χρησιμοποιούν τον κατάλογο <filename
+ class="directory">/usr/local</filename>. Μπορείτε
+ να παρακάμψετε αυτή την προεπιλογή, αλλάζοντας την τιμή
+ της μεταβλητής <makevar>PREFIX</makevar>.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Παρακάτω θα βρείτε ένα σύντομο παράδειγμα σχετικό με τη χρήση
+ των μεταβλητών για την εγκατάσταση της Αγγλικής τεκμηρίωσης σε
+ μορφή PDF:</para>
+
+ <screen>&prompt.root; cd /usr/ports/misc/freebsd-doc-en
+&prompt.root; make -DWITH_PDF DOCBASE=share/doc/freebsd/en install clean</screen>
+ </sect4>
+ </sect3>
+
+ <sect3 id="doc-ports-install-package">
+ <title>Χρήση Έτοιμων Πακέτων Τεκμηρίωσης</title>
+
+ <para>Η μεταγλώττιση των ports τεκμηρίωσης από τον πηγαίο κώδικα
+ (όπως είδαμε στην προηγούμενη ενότητα), απαιτεί τοπική εγκατάσταση
+ των αντίστοιχων εργαλείων τεκμηρίωσης και επάρκεια χώρου στο δίσκο
+ για την διαδικασία. Όταν δεν διατίθενται οι απαραίτητοι πόροι για
+ την εγκατάσταση των εργαλείων τεκμηρίωσης (ή επειδή η μεταγλώττιση
+ από τα ports θα χρησιμοποιούσε πολύ χώρο), η εγκατάσταση μπορεί
+ να γίνει μέσω έτοιμων πακέτων τεκμηρίωσης.</para>
+
+ <para>H &a.doceng; προετοιμάζει μηνιαία στιγμιότυπα πακέτων
+ τεκμηρίωσης του &os;. Τα έτοιμα αυτά πακέτα μπορούν να
+ χρησιμοποιηθούν με την βοήθεια οποιουδήποτε εργαλείου διαχείρισης
+ πακέτων που διατίθεται με το &os;, όπως για παράδειγμα τα
+ &man.pkg.add.1;, &man.pkg.delete.1; κ.λ.π.</para>
+
+ <note>
+ <para>Όταν χρησιμοποιείτε έτοιμα πακέτα, η εγκατάσταση της
+ τεκμηρίωσης της επιλεγμένης γλώσσας θα γίνεται σε όλες τις
+ διαθέσιμες μορφές.</para>
+ </note>
+
+ <para>Για παράδειγμα, η παρακάτω εντολή θα εγκαταστήσει την τελευταία
+ έκδοση του έτοιμου πακέτου της Ελληνικής τεκμηρίωσης:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r el-freebsd-doc</userinput></screen>
+
+ <note>
+ <para>Τα πακέτα χρησιμοποιούν τη μορφή
+ <literal><replaceable>lang</replaceable>-freebsd-doc</literal> στο
+ όνομα τους, η οποία διαφέρει από την αντίστοιχη μορφή του port.
+ Το <replaceable>lang</replaceable> είναι η σύντομη μορφή της
+ γλώσσας, π.χ. <literal>el</literal> για Ελληνικά ή
+ <literal>zh_cn</literal> για Απλοποιημένα Κινέζικα.</para>
+ </note>
+ </sect3>
+
+ <sect3 id="doc-ports-update">
+ <title>Ενημερώνοντας τα Ports της Τεκμηρίωσης</title>
+
+ <para>Για να ενημερώσετε ένα ήδη εγκατεστημένο port τεκμηρίωσης,
+ μπορείτε να χρησιμοποιήσετε οποιοδήποτε εργαλείο αναβάθμισης ports.
+ Για παράδειγμα, η παρακάτω εντολή ενημερώνει την εγκατεστημένη
+ Ελληνική τεκμηρίωση μέσω του εργαλείου <filename
+ role="package">ports-mgmt/portupgrade</filename> με τη χρήση μόνο
+ έτοιμων πακέτων:</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -PP el-freebsd-doc</userinput></screen>
+ </sect3>
+ </sect2>
+
+<![ IGNORE [
+ <sect2 id="docsnap">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Pav</firstname>
+ <surname>Lucistnik</surname>
+ <contrib>Βασισμένο σε πληροφορίες που παρείχε ο </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Χρησιμοποιώντας το Docsnap</title>
+
+ <indexterm><primary>Updating and Upgrading</primary></indexterm>
+
+ <indexterm>
+ <primary>Docsnap</primary>
+ <see>Updating and Upgrading</see>
+ </indexterm>
+
+ <para>Το <application>Docsnap</application> είναι ένα αποθετήριο
+ (repository) &man.rsync.1; για την ενημέρωση της εγκατεστημένης
+ τεκμηρίωσης του &os; μέσω ενός σχετικά εύκολου και γρήγορου
+ τρόπου. Ένας
+ <quote>εξυπηρετητής <application>Docsnap</application></quote>
+ ανακτά τον ενημερωμένο πηγαίο κώδικα της τεκμηρίωσης και τον
+ μεταγλωττίζει σε μορφή HTML κάθε μια ώρα. Δεν χρειάζεται να
+ εγκαταστήσετε το <filename role="package">textproc/docproj</filename>
+ με το <application>Docsnap</application>, καθώς σας παρέχει
+ έτοιμες διορθώσεις για την ήδη εγκατεστημένη τεκμηρίωση.</para>
+
+ <para>Η μόνη απαίτηση για την παραπάνω τεχνική, είναι να έχετε
+ εγκαταστήσει το πακέτο ή port <filename
+ role="package">net/rsync</filename>. Για να το προσθέσετε,
+ χρησιμοποιήστε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r rsync</userinput></screen>
+
+ <note>
+ <para>Το <application>Docsnap</application> αναπτύχθηκε αρχικά για
+ την ενημέρωση της τεκμηρίωσης που έχει εγκατασταθεί στον κατάλογο
+ <filename class="directory">/usr/share/doc</filename>, αλλά τα
+ παρακάτω παραδείγματα μπορούν να προσαρμοστούν και για άλλους
+ καταλόγους. Για καταλόγους χρηστών, οι εντολές δεν χρειάζεται να
+ εκτελεστούν με προνόμια <username>root</username>.</para>
+ </note>
+
+ <para>Για την ενημέρωση της τεκμηρίωσης, χρησιμοποιήστε την παρακάτω
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap <replaceable>/usr/share/doc</replaceable></userinput></screen>
+
+ <note>
+ <para>Υπάρχει μόνο ένας εξυπηρετητής
+ <application>Docsnap</application> τη δεδομένη στιγμή:
+ ο εξυπηρετητής <hostid>docsnap.sk.FreeBSD.org</hostid> που φαίνεται
+ παραπάνω.</para>
+ </note>
+
+ <para>Μην χρησιμοποιήσετε την επιλογή <option>--delete</option>, καθώς
+ η <command>make installworld</command> εγκαθιστά κάποια πράγματα στον
+ κατάλογο <filename class="directory">/usr/share/doc</filename> τα
+ οποία θα σβηστούν. Για να καθαρίσετε τα παλιά αρχεία, χρησιμοποιήστε
+ την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>rsync -rltvz --delete <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/??_??\.\* <replaceable>/usr/share/doc</replaceable></userinput></screen>
+
+ <para>Αν επιθυμείτε να ενημερώσετε ένα υποσύνολο της τεκμηρίωσης, για
+ παράδειγμα μόνο την Αγγλική τεκμηρίωση, μπορείτε να χρησιμοποιήσετε
+ την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>rsync -rltvz <replaceable>docsnap.sk.FreeBSD.org</replaceable>::docsnap/en_US.ISO8859-1 <replaceable>/usr/share/doc</replaceable></userinput></screen>
+ </sect2>
+]]>
+ </sect1>
+
+ <sect1 id="current-stable">
+ <title>Παρακολούθηση Ενός Κλάδου Ανάπτυξης</title>
+ <indexterm><primary>-CURRENT</primary></indexterm>
+ <indexterm><primary>-STABLE</primary></indexterm>
+
+ <para>Υπάρχουν δύο κλάδοι ανάπτυξης στο &os;, το &os.current; και το
+ &os.stable;. Στην ενότητα αυτή, θα εξηγήσουμε κάποια πράγματα σχετικά
+ με αυτούς τους κλάδους, και θα περιγράψουμε πως μπορείτε να διατηρήσετε
+ το σύστημα σας ενημερωμένο σε κάποιον από αυτούς. Θα μιλήσουμε αρχικά
+ για το &os.current; και έπειτα για το &os.stable;.</para>
+
+ <sect2 id="current">
+ <title>Παρακολουθώντας το &os.current;</title>
+
+ <para>Καθώς διαβάζετε αυτό το κείμενο, να έχετε υπόψιν σας ότι το
+ &os.current; είναι πράγματι η <quote>κόψη του ξυραφιού</quote> στην
+ ανάπτυξη του &os;. Οι χρήστες του &os.current; αναμένεται να έχουν
+ αυξημένες τεχνικές γνώσεις, και να είναι ικανοί να επιλύουν δύσκολα
+ προβλήματα του συστήματος τους, χωρίς βοήθεια. Αν είστε καινούριος
+ στο &os;, μάλλον θα πρέπει να το ξανασκεφτείτε πριν το
+ εγκαταστήσετε.</para>
+
+ <sect3>
+ <title>Τι Είναι το &os.current;;</title>
+ <indexterm><primary>snapshot</primary></indexterm>
+
+ <para>Το &os.current; αποτελείται από τον πλέον πρόσφατο λειτουργικό
+ πηγαίο κώδικα του &os;. Περιλαμβάνει αλλαγές που βρίσκονται σε
+ εξέλιξη, πειραματικές αλλαγές, και μηχανισμούς μετάβασης οι οποίοι
+ δεν είναι σίγουρο ότι θα περιλαμβάνονται στην επόμενη επίσημη
+ έκδοση του λογισμικού. Αν και πολλά μέλη της ομάδας ανάπτυξης του
+ &os; μεταγλωττίζουν καθημερινά τον πηγαίο κώδικα του &os.current;,
+ υπάρχουν χρονικές περίοδοι που η μεταγλώττιση του είναι αδύνατη.
+ Τα προβλήματα αυτά γενικά επιλύονται όσο πιο γρήγορα γίνεται, αλλά
+ το αν το &os.current; θα σας φέρει την καταστροφή ή κάποιο
+ πολυπόθητο χαρακτηριστικό, είναι περισσότερο θέμα της χρονικής
+ στιγμής που θα επιλέξετε να ανακτήσετε τον πηγαίο κώδικα!</para>
+ </sect3>
+
+ <sect3>
+ <title>Ποιος Χρειάζεται το &os.current;;</title>
+
+ <para>Το &os.current; διατίθεται και ενδιαφέρει κυρίως τις παρακάτω
+ τρεις ομάδες:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Μέλη της κοινότητας του &os; που δουλεύουν ενεργά σε κάποιο
+ τμήμα του πηγαίου κώδικα, και για τους οποίους η παρακολούθηση
+ του &os.current; είναι απόλυτα απαραίτητη.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μέλη της κοινότητας του &os; που είναι ενεργοί testers
+ και είναι πρόθυμοι να αναλώσουν το χρόνο τους για να λύσουν
+ προβλήματα, ώστε να εξασφαλίσουν ότι το &os.current;
+ θα παραμείνει όσο το δυνατόν πιο σωστό. Συνήθως, τα μέλη αυτά
+ κάνουν προτάσεις για τοπικές αλλαγές και για την γενική
+ κατεύθυνση του &os;, και στέλνουν patches για την
+ πραγματοποίηση τους.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αυτοί που απλώς θέλουν να βλέπουν τις τελευταίες
+ ενημερώσεις, ή να χρησιμοποιούν τον τελευταίο πηγαίο κώδικα ως
+ αναφορά (π.χ. για <emphasis>μελέτη</emphasis> και όχι για
+ εκτέλεση). Μέλη αυτής της ομάδας μπορεί επίσης περιστασιακά να
+ συνεισφέρουν σχόλια ή κώδικα.</para>
+ </listitem>
+ </orderedlist>
+ </sect3>
+
+ <sect3>
+ <title>Τι <emphasis>Δεν</emphasis> Είναι το &os.current;;</title>
+
+ <orderedlist>
+ <listitem>
+ <para>Δεν είναι ένας γρήγορος τρόπος να πάρετε κώδικα ο
+ οποίος δεν έχει κυκλοφορήσει ακόμα σε κάποια έκδοση, με την
+ ελπίδα ότι περιέχει κάποια νέα εκπληκτική δυνατότητα και
+ θέλετε να είστε ο πρώτος που τη χρησιμοποιεί. Αν είστε
+ πράγματι ο πρώτος που την χρησιμοποιεί, θα είστε επίσης και ο
+ πρώτος που θα συναντήσετε τα νέα προβλήματα και bugs.</para>
+ </listitem>
+
+ <listitem>
+ <para>Δεν είναι ένας γρήγορος τρόπος για να ανακτήσετε
+ διορθώσεις προβλημάτων. Κάθε νέα έκδοση του &os.current;
+ μπορεί να εισάγει τόσα νέα bugs όσα και αυτά που
+ διορθώνει.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το &os.current; δεν αποτελεί
+ <quote>επίσημα υποστηριζόμενο</quote> κώδικα. Αν και
+ καταβάλλουμε κάθε δυνατή προσπάθεια να βοηθήσουμε όσους
+ ανήκουν <quote>πραγματικά</quote> σε κάποια από τις τρεις
+ ομάδες που αναφέραμε, ωστόσο <emphasis>δεν έχουμε το
+ χρόνο</emphasis> να παρέχουμε τεχνική υποστήριξη. Αυτό δεν
+ συμβαίνει επειδή είμαστε κακοήθεις και δύσκολοι και δεν θέλουμε
+ να βοηθάμε τους ανθρώπους (δεν θα είχαμε καν δημιουργήσει το
+ &os; αν σκεφτόμασταν έτσι). Πολύ απλά, δεν μπορούμε να
+ απαντάμε εκατοντάδες μηνύματα την ημέρα και
+ <emphasis>ταυτόχρονα</emphasis> να δουλεύουμε στο &os;! Αν
+ δώσετε σε οποιοδήποτε μέλος της ομάδας ανάπτυξης την επιλογή
+ να απαντάει σε πολλές ερωτήσεις σχετικά με πειραματικό κώδικα
+ ή να δουλεύει για τη βελτίωση του &os;, θα επιλέξει σίγουρα το
+ δεύτερο.</para>
+ </listitem>
+ </orderedlist>
+ </sect3>
+
+ <sect3>
+ <title>Χρησιμοποιώντας το &os.current;</title>
+
+ <indexterm>
+ <primary>-CURRENT</primary>
+ <secondary>using</secondary>
+ </indexterm>
+ <orderedlist>
+ <listitem>
+ <para>Γραφτείτε στις λίστες &a.current.name; και
+ &a.svn-src-head.name;. Δεν είναι απλώς καλή ιδέα, είναι
+ <emphasis>βασικό</emphasis> να το κάνετε. Αν δεν είστε
+ γραμμένος στη λίστα <emphasis>&a.current.name;</emphasis>, δεν
+ θα βλέπετε τα σχόλια σχετικά με την τρέχουσα κατάσταση του
+ συστήματος από όσους το χρησιμοποιούν, και έτσι πιθανώς θα
+ καταλήξετε να αντιμετωπίζετε πολλά προβλήματα που άλλοι έχουν
+ ήδη ανακαλύψει και λύσει. Ακόμα πιο σημαντικό είναι ότι θα
+ χάνετε σημαντικές ανακοινώσεις, οι οποίες μπορεί να είναι
+ κρίσιμες για την διατήρηση του συστήματος σας σε υγιή
+ κατάσταση.</para>
+
+ <para>Η λίστα &a.svn-src-head.name; θα σας επιτρέψει να βλέπετε
+ τις καταχωρήσεις στο commit log για κάθε αλλαγή που γίνεται,
+ καθώς και πληροφορίες για πιθανές παρενέργειες που μπορεί να
+ έχει.</para>
+
+ <para>Για να γραφτείτε σε αυτές, ή σε οποιεσδήποτε από τις
+ υπάρχουσες λίστες, επισκεφθείτε την τοποθεσία
+ &a.mailman.lists.link; και επιλέξτε τη λίστα στην οποία θέλετε
+ να γίνετε συνδρομητής. Οδηγίες για την υπόλοιπη διαδικασία
+ θα βρείτε επιτόπου. Αν σας ενδιαφέρει να παρακολουθείτε τις
+ αλλαγές σε όλο το δέντρο πηγαίου κώδικα, σας συνιστούμε να
+ εγγραφείτε στη λίστα &a.svn-src-all.name;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ανακτήστε τον πηγαίο κώδικα από ένα
+ <link linkend="mirrors">mirror site</link> του &os;. Αυτό
+ μπορεί να γίνει με δύο τρόπους:</para>
+
+ <orderedlist>
+ <indexterm>
+ <primary><command>cvsup</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary><command>cron</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>-CURRENT</primary>
+ <secondary>Syncing with <application>CVSup</application></secondary>
+ </indexterm>
+
+ <listitem>
+ <para>Χρησιμοποιήστε το πρόγραμμα <link
+ linkend="cvsup">cvsup</link> σε συνδυασμό με το
+ <filename>supfile</filename> με την ονομασία
+ <filename>standard-supfile</filename> το οποίο θα βρείτε
+ στον κατάλογο
+ <filename>/usr/share/examples/cvsup</filename>.
+ Αυτή είναι και η πλέον συνιστώμενη μέθοδος, καθώς σας
+ επιτρέπει να ανακτήσετε όλη τη συλλογή με μια κίνηση, και
+ στις επόμενες ανανεώσεις θα παίρνετε μόνο τις αλλαγές.
+ Πολλοί χρήστες εκτελούν το <command>cvsup</command> μέσω
+ του <command>cron</command> ώστε να κρατάνε τον πηγαίο
+ κώδικα του συστήματος τους πάντα ανανεωμένο αυτόματα. Θα
+ πρέπει να προσαρμόσετε το υπόδειγμα του
+ <filename>supfile</filename> που δίνουμε παραπάνω, και να
+ ρυθμίσετε το <link linkend="cvsup">cvsup</link> για το
+ περιβάλλον σας.</para>
+
+ <note>
+ <para>Το υπόδειγμα του αρχείου
+ <filename>standard-supfile</filename> προορίζεται για
+ χρήση με κάποιο συγκεκριμένο κλάδο ασφάλειας (security
+ branch) του &os;, και όχι με το &os.current;. Θα πρέπει
+ να επεξεργαστείτε το αρχείο και να αντικαταστήσετε την
+ παρακάτω γραμμή:</para>
+
+ <programlisting>*default release=cvs tag=RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></programlisting>
+
+ <para>με την ακόλουθη:</para>
+
+ <programlisting>*default release=cvs tag=.</programlisting>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με τα tags που
+ μπορείτε να χρησιμοποιήσετε, παρακαλούμε διαβάστε στο
+ Εγχειρίδιο την ενότητα <link
+ linkend="cvs-tags">Ετικέτες (Tags) για το CVS</link>.</para>
+ </note>
+ </listitem>
+
+ <indexterm>
+ <primary>-CURRENT</primary>
+ <secondary>Syncing with CTM</secondary>
+ </indexterm>
+ <listitem>
+ <para>Χρησιμοποιήστε την υπηρεσία <application><link
+ linkend="ctm">CTM</link></application>. Αν έχετε πολύ κακή
+ συνδεσιμότητα (υψηλό κόστος σύνδεσης ή πρόσβαση μόνο μέσω
+ email) το <application>CTM</application> αποτελεί για σας
+ μια εναλλακτική λύση. Μπορεί ωστόσο να σας δημιουργήσει
+ διάφορα προβλήματα και να καταλήξετε με χαλασμένα αρχεία.
+ Για το λόγο αυτό, το <application>CTM</application>
+ χρησιμοποιείται σπάνια, κάτι το οποίο αυξάνει ακόμα
+ περισσότερο την πιθανότητα να μη δουλεύει σωστά για μεγάλα
+ χρονικά διαστήματα. Σας συνιστούμε να χρησιμοποιήσετε το
+ <application><link linkend="cvsup">CVSup</link></application>
+ αν διαθέτετε modem 9600&nbsp;bps ή ταχύτερο.</para>
+ </listitem>
+ </orderedlist>
+ </listitem>
+
+ <listitem>
+ <para>Αν σκοπεύετε να ανακτήσετε τον πηγαίο κώδικα για κανονική
+ χρήση (εκτέλεση) και όχι απλώς για να τον δείτε, τότε
+ ανακτήστε <emphasis>ολόκληρο</emphasis> το &os.current; και όχι
+ κάποια επιλεγμένα τμήματα. Σε διαφορετική περίπτωση, είναι
+ αρκετά πιθανό να συναντήσετε προβλήματα, καθώς πολλά κομμάτια
+ του κώδικα εξαρτώνται από ανανεώσεις σε άλλα, και δεν μπορούν
+ να μεταγλωττιστούν αυτόνομα.</para>
+
+ <indexterm>
+ <primary>-CURRENT</primary>
+ <secondary>compiling</secondary>
+ </indexterm>
+ <para>Πριν μεταγλωττίσετε το &os.current;, διαβάστε προσεκτικά το
+ <filename>Makefile</filename> στον κατάλογο
+ <filename>/usr/src</filename>. Θα πρέπει να <link
+ linkend="makeworld">μεταγλωττίσετε τον πυρήνα και όλο το
+ βασικό σύστημα (world)</link> την πρώτη φορά, ως μέρος της
+ διαδικασίας αναβάθμισης. Διαβάζοντας την &a.current;
+ και το <filename>/usr/src/UPDATING</filename> θα είστε
+ ενημερωμένοι για νέες διαδικασίες όσο αφορά την εκκίνηση στο νέο
+ σας σύστημα. Οι διαδικασίες αυτές είναι συχνά απαραίτητες όσο
+ πλησιάζουμε σε μια νέα επίσημη έκδοση.</para>
+ </listitem>
+
+ <listitem>
+ <para>Γίνετε ενεργό μέλος! Αν χρησιμοποιείτε το &os.current;,
+ θέλουμε να ξέρουμε τη γνώμη σας για αυτό, ειδικά αν έχετε
+ προτάσεις για βελτιώσεις ή διορθώσεις λαθών. Προτάσεις που
+ συνοδεύονται και από κώδικα γίνονται δεκτές με
+ ενθουσιασμό!</para>
+ </listitem>
+ </orderedlist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="stable">
+ <title>Χρησιμοποιώντας το &os;-STABLE</title>
+
+ <sect3>
+ <title>Τι Είναι το &os.stable;;</title>
+ <indexterm><primary>-STABLE</primary></indexterm>
+
+ <para>Το &os.stable; είναι ένας κλάδος ανάπτυξης από τον οποίο
+ προκύπτουν οι <quote>μεγάλες</quote> (major) εκδόσεις. Οι αλλαγές
+ εισάγονται σε αυτό τον κλάδο με διαφορετικό ρυθμό, και με τη γενική
+ παραδοχή ότι έχουν πρώτα περάσει από το &os.current; για δοκιμή.
+ Ωστόσο, <emphasis>δεν παύει</emphasis> να είναι ένας κλάδος
+ ανάπτυξης, και αυτό σημαίνει ότι ο κώδικας του &os.stable; μπορεί
+ μια δεδομένη χρονική στιγμή να είναι ακατάλληλος για συγκεκριμένες
+ εφαρμογές. Πρόκειται για μια ακόμα γραμμή ανάπτυξης για τους
+ προγραμματιστές, και δεν είναι απαραίτητα κατάλληλη για τους
+ τελικούς χρήστες.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ποιος Χρειάζεται το &os.stable;;</title>
+
+ <para>Αν σας ενδιαφέρει να παρακολουθείτε ή να συμβάλλετε στην
+ ανάπτυξη του &os;, και ειδικά όσο αφορά την επόμενη επίσημη
+ έκδοση του από τον ίδιο κλάδο (point release), είναι καλή ιδέα να
+ παρακολουθείτε το &os.stable;.</para>
+
+ <para>Αν και είναι αλήθεια ότι οι διορθώσεις ασφάλειας γίνονται και
+ στον κλάδο &os.stable;, ωστόσο <emphasis>δεν χρειάζεται</emphasis>
+ να παρακολουθείτε το &os.stable; μόνο για αυτό το λόγο. Κάθε
+ αναφορά προβλήματος ασφάλειας του &os; εξηγεί πως να διορθώσετε το
+ πρόβλημα για κάθε επίσημη έκδοση η οποία επηρεάζεται από αυτό
+ <footnote><para>Αυτό βέβαια δεν είναι απόλυτα αληθινό. Δεν μπορούμε
+ να συνεχίσουμε να υποστηρίζουμε τις παλιές εκδόσεις του &os; για
+ πάντα, αν και τις υποστηρίζουμε για πολλά χρόνια. Για πλήρη
+ περιγραφή της τρέχουσας πολιτικής όσο αφορά την ασφάλεια των
+ παλιών εκδόσεων του &os;, δείτε <ulink
+ url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</para>
+ </footnote>,
+ και η παρακολούθηση ενός κλάδου ανάπτυξης μόνο για λόγους
+ ασφαλείας, πιθανόν να φέρει επίσης και άλλες ανεπιθύμητες αλλαγές
+ μαζί της.</para>
+
+ <para>Αν και καταβάλλουμε κάθε δυνατή προσπάθεια ώστε να εξασφαλίσουμε
+ ότι ο κλάδος &os.stable; μπορεί να μεταγλωττιστεί και να εκτελεστεί
+ σε κάθε δεδομένη χρονική στιγμή, δεν μπορούμε ωστόσο να το
+ εγγυηθούμε. Επιπρόσθετα, αν και ο κώδικας αναπτύσσεται στο
+ &os.current; πριν περάσει στο &os.stable;, ο κόσμος που εκτελεί το
+ &os.stable; είναι περισσότερος, και έτσι είναι αναπόφευκτο να
+ ανακαλύπτονται πιο πολλά σφάλματα και ακραίες περιπτώσεις στο
+ &os.stable; τα οποία δεν έχουν γίνει εμφανή στο &os.current;.</para>
+
+ <para>Για τους λόγους αυτούς, <emphasis>δεν</emphasis> συνιστούμε να
+ παρακολουθείτε τυφλά το &os.stable;, και ειδικότερα είναι σημαντικό
+ να μην αναβαθμίζετε σε αυτό εξυπηρετητές σε περιβάλλοντα παραγωγής,
+ χωρίς να έχετε πρώτα ελέγξει αναλυτικά τον κώδικα στο δικό σας
+ περιβάλλον ανάπτυξης.</para>
+
+ <para>Αν δεν διαθέτετε τους πόρους για να το κάνετε αυτό, σας
+ συνιστούμε να χρησιμοποιείτε την τελευταία επίσημη έκδοση του &os;,
+ και να αναβαθμίζεστε από τη μια έκδοση στην επόμενη μέσω του
+ μηχανισμού δυαδικών ενημερώσεων.</para>
+ </sect3>
+
+ <sect3>
+ <title>Χρησιμοποιώντας το &os.stable;</title>
+
+ <indexterm>
+ <primary>-STABLE</primary>
+ <secondary>using</secondary>
+ </indexterm>
+ <orderedlist>
+ <listitem>
+ <para>Γραφτείτε συνδρομητής στη λίστα &a.stable.name;. Θα είστε
+ έτσι ενημερωμένοι για εξαρτήσεις μεταγλώττισης που ίσως
+ εμφανιστούν στο &os.stable;, ή για άλλα προβλήματα που χρήζουν
+ ειδικής προσοχής. Στη λίστα αυτή θα βρίσκετε επίσης
+ ανακοινώσεις από μέλη της ομάδας ανάπτυξης, όταν πρόκειται να
+ συμπεριληφθεί κάποια αμφιλεγόμενη ανανέωση ή διόρθωση, δίνοντας
+ έτσι στους χρήστες την ευκαιρία να εκφέρουν γνώμη σχετικά με τα
+ προβλήματα που θα προκαλέσει η προτεινόμενη αλλαγή.</para>
+
+ <para>Θα πρέπει να εγγραφείτε στην κατάλληλη λίστα
+ <application>SVN</application> ανάλογα με τον κλάδο που
+ παρακολουθείτε. Για παράδειγμα, αν παρακολουθείτε τον κλάδο
+ 7-STABLE, η κατάλληλη λίστα είναι η &a.svn-src-stable-7.name;.
+ Αυτό θα σας επιτρέψει να βλέπετε τις
+ καταχωρήσεις στο commit log για κάθε αλλαγή που γίνεται, καθώς
+ και πληροφορίες για πιθανές παρενέργειες που μπορεί να
+ έχει.</para>
+
+ <para>Για να γραφτείτε σε αυτές, ή σε οποιεσδήποτε από τις
+ υπάρχουσες λίστες, επισκεφθείτε την τοποθεσία
+ &a.mailman.lists.link; και επιλέξτε τη λίστα στην οποία θέλετε
+ να γίνετε συνδρομητής. Οδηγίες για την υπόλοιπη διαδικασία
+ θα βρείτε επιτόπου. Αν σας ενδιαφέρει να παρακολουθείτε τις
+ αλλαγές σε όλο το δέντρο πηγαίου κώδικα, σας συνιστούμε να
+ εγγραφείτε στη λίστα &a.svn-src-all.name;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν πρόκειται να εγκαταστήσετε ένα νέο σύστημα με σκοπό να
+ εκτελείτε τα μηνιαία snapshot του &os.stable;, παρακαλούμε να
+ ελέγξετε την τοποθεσία <ulink
+ url="&url.base;/snapshots/">Snapshots</ulink> για
+ περισσότερες πληροφορίες. Εναλλακτικά, είναι δυνατόν να
+ εγκαταστήσετε το πιο πρόσφατο &os.stable; από κάποιο
+ <link linkend="mirrors">mirror site</link> ακολουθώντας τις
+ παρακάτω οδηγίες ώστε να αναβαθμίσετε το σύστημα σας στην πλέον
+ πρόσφατη έκδοση πηγαίου κώδικα του &os.stable;.</para>
+
+ <para>Αν διαθέτετε ήδη κάποια προηγούμενη έκδοση του &os; και
+ επιθυμείτε να αναβαθμιστείτε μέσω του πηγαίου κώδικα, μπορείτε
+ εύκολα να χρησιμοποιήσετε κάποιο <link
+ linkend="mirrors">mirror site</link> του &os;. Υπάρχουν δύο
+ τρόποι για να γίνει αυτό:</para>
+
+ <orderedlist>
+ <indexterm>
+ <primary><command>cvsup</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary><command>cron</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>-STABLE</primary>
+ <secondary>syncing with <application>CVSup</application></secondary>
+ </indexterm>
+ <listitem>
+
+ <para>Χρησιμοποιήστε το πρόγραμμα <link
+ linkend="cvsup">cvsup</link> σε συνδυασμό με το
+ <filename>supfile</filename> με την ονομασία
+ <filename>stable-supfile</filename> το οποίο θα βρείτε
+ στον κατάλογο
+ <filename>/usr/share/examples/cvsup</filename>.
+ Αυτή είναι και η πλέον συνιστώμενη μέθοδος, καθώς σας
+ επιτρέπει να ανακτήσετε όλη τη συλλογή με μια κίνηση, και
+ στις επόμενες ανανεώσεις θα παίρνετε μόνο τις αλλαγές.
+ Πολλοί χρήστες εκτελούν το <command>cvsup</command> μέσω
+ του <command>cron</command> ώστε να κρατάνε τον πηγαίο
+ κώδικα του συστήματος τους πάντα ανανεωμένο αυτόματα. Θα
+ πρέπει να προσαρμόσετε το υπόδειγμα του
+ <filename>supfile</filename> που δίνουμε παραπάνω, και να
+ ρυθμίσετε το <link linkend="cvsup">cvsup</link> για το
+ περιβάλλον σας.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>-STABLE</primary>
+ <secondary>syncing with CTM</secondary>
+ </indexterm>
+ <listitem>
+ <para>Χρησιμοποιήστε την υπηρεσία <application><link
+ linkend="ctm">CTM</link></application>. Αν δεν έχετε
+ γρήγορη και φτηνή σύνδεση με το Internet, αυτή είναι η
+ συνιστώμενη μέθοδος.</para>
+ </listitem>
+ </orderedlist>
+ </listitem>
+
+ <listitem>
+ <para>Ουσιαστικά, αν χρειάζεστε γρήγορη και κατά απαίτηση
+ πρόσβαση στον πηγαίο κώδικα, και το εύρος ζώνης της σύνδεσης
+ δεν αποτελεί πρόβλημα, χρησιμοποιήστε το
+ <command>cvsup</command> ή το <command>ftp</command>.
+ Διαφορετικά, χρησιμοποιήστε το
+ <application>CTM</application>.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>-STABLE</primary>
+ <secondary>compiling</secondary>
+ </indexterm>
+ <listitem>
+ <para>Πριν μεταγλωττίσετε το &os.stable;, διαβάστε προσεκτικά το
+ <filename>Makefile</filename> στον κατάλογο
+ <filename>/usr/src</filename>. Θα πρέπει να <link
+ linkend="makeworld">μεταγλωττίσετε τον πυρήνα και όλο το
+ βασικό σύστημα (world)</link> την πρώτη φορά, ως μέρος της
+ διαδικασίας αναβάθμισης. Διαβάζοντας την &a.stable;
+ και το <filename>/usr/src/UPDATING</filename> θα είστε
+ ενημερωμένοι για νέες διαδικασίες όσο αφορά την εκκίνηση στο νέο
+ σας σύστημα. Οι διαδικασίες αυτές είναι συχνά απαραίτητες όσο
+ πλησιάζουμε σε μια νέα επίσημη έκδοση.</para>
+ </listitem>
+ </orderedlist>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="synching">
+ <title>Συγχρονίζοντας τον Πηγαίο σας Κώδικα</title>
+
+ <para>Υπάρχουν διάφοροι τρόποι να χρησιμοποιήσετε μια σύνδεση Internet
+ (ή email) για να ενημερώνετε οποιοδήποτε τμήμα πηγαίου
+ κώδικα του &os;&nbsp;Project σας ενδιαφέρει, ή και όλα αν το
+ επιθυμείτε. Οι βασικές υπηρεσίες που προσφέρουμε είναι το
+ <link linkend="anoncvs">Ανώνυμο CVS</link>, το
+ <link linkend="cvsup">CVSup</link>, και το <link
+ linkend="ctm">CTM</link>.</para>
+
+ <warning>
+ <para>Αν και είναι δυνατόν να ενημερώσετε μόνο κάποια τμήματα του
+ δέντρου πηγαίου κώδικα, η μόνη διαδικασία ενημέρωσης που
+ υποστηρίζεται αφορά την ενημέρωση ολόκληρου του δέντρου. Μετά την
+ ενημέρωση, θα πρέπει να μεταγλωττίσετε ξανά τόσο το userland (δηλ. τα
+ προγράμματα που εκτελούνται στην περιοχή χρήστη, όπως αυτά που
+ βρίσκονται στους καταλόγους <filename>/bin</filename> και
+ <filename>/sbin</filename>) όσο και τον πηγαίο κώδικα του πυρήνα.
+ Αν ενημερώσετε μόνο ένα τμήμα του πηγαίου κώδικα, μόνο τον πυρήνα ή
+ μόνο το userland, θα αντιμετωπίσετε προβλήματα. Τα προβλήματα αυτά
+ μπορεί να κυμαίνονται από σφάλματα μεταγλώττισης μέχρι kernel panic
+ και καταστροφή δεδομένων.</para>
+ </warning>
+
+ <indexterm>
+ <primary>CVS</primary>
+ <secondary>anonymous</secondary>
+ </indexterm>
+
+ <para>Το <application>Ανώνυμο CVS</application> και το
+ <application>CVSup</application> χρησιμοποιούν τη μέθοδο
+ <emphasis>pull</emphasis> για την ενημέρωση του πηγαίου κώδικα. Στην
+ περίπτωση του <application>CVSup</application>, ο χρήστης (η κάποιο
+ script που εκτελείται μέσω <command>cron</command>) εκτελεί το πρόγραμμα
+ <command>cvsup</command> το οποίο αλληλεπιδρά με ένα αντίστοιχο
+ εξυπηρετητή <command>cvsupd</command> ώστε να ενημερώσει τα σχετικά
+ αρχεία. Οι ενημερώσεις που λαμβάνετε είναι πάντοτε οι τελευταίες
+ διαθέσιμες, και θα τις λάβετε μόνο όταν τις ζητήσετε. Μπορείτε εύκολα
+ να περιορίσετε τις ενημερώσεις σε συγκεκριμένα αρχεία ή καταλόγους τα
+ οποία σας ενδιαφέρουν. Οι ενημερώσεις δημιουργούνται δυναμικά από τον
+ εξυπηρετητή, ανάλογα με το τι έχετε εγκατεστημένο και τι επιθυμείτε να
+ λάβετε. Το <application>Ανώνυμο CVS</application> είναι κάπως πιο
+ απλοϊκό από το <application>CVSup</application>, δεδομένου ότι είναι
+ απλώς μια επέκταση του <application>CVS</application> που επιτρέπει την
+ ανάκτηση αλλαγών απευθείας από κάποιο απομακρυσμένο CVS repository. Το
+ <application>CVSup</application> είναι αρκετά πιο αποτελεσματικό σε
+ αυτόν το τομέα, αλλά το <application>Ανώνυμο CVS</application> είναι
+ απλούστερο στη χρήση.</para>
+
+ <indexterm>
+ <primary><application>CTM</application></primary>
+ </indexterm>
+ <para>Από την άλλη μεριά, το <application>CTM</application> δεν συγκρίνει
+ άμεσα τον πηγαίο κώδικα που έχετε με αυτόν που υπάρχει στον κεντρικό
+ εξυπηρετητή ώστε να ανακτήσει μόνο τις αλλαγές. Αντίθετα, στο κεντρικό
+ μηχάνημα CTM, εκτελείται αρκετές φορές την ημέρα ένα script. Το script
+ αυτό αναγνωρίζει τις αλλαγές στα αρχεία σε σχέση με την προηγούμενη
+ εκτέλεση του, και έπειτα πακετάρει και συμπιέζει τις αλλαγές με τρόπο
+ κατάλληλο για αποστολή μέσω email (μόνο εκτυπώσιμοι ASCII χαρακτήρες).
+ Σε κάθε τέτοιο πακέτο αλλαγών αντιστοιχίζεται ένας μοναδιαίος αριθμός
+ ακολουθίας (sequence number) που το αναγνωρίζει. Μετά τη λήψη τους,
+ μπορείτε να δώσετε αυτά τα αρχεία διαφορών του
+ <application>CTM</application> (<quote>CTM deltas</quote>) στο βοηθητικό
+ πρόγραμμα &man.ctm.rmail.1; το οποίο αυτόματα θα τα αποκωδικοποιήσει,
+ θα τα επαληθεύσει, και θα εφαρμόσει τις αλλαγές στο αντίγραφο πηγαίου
+ κώδικα του χρήστη. Η διαδικασία αυτή είναι πολύ πιο αποδοτική από το
+ <application>CVSup</application>, και επιβαρύνει λιγότερο τους
+ εξυπηρετητές μας, καθώς είναι μια διαδικασία τύπου
+ <emphasis>push</emphasis> αντί για <emphasis>pull</emphasis>.</para>
+
+ <para>Υπάρχουν φυσικά κάποια σημεία που υστερεί. Αν από λάθος διαγράψετε
+ κάποια τμήματα του πηγαίου σας κώδικα, το
+ <application>CVSup</application> θα ανιχνεύσει και θα διορθώσει αυτόματα
+ τη βλάβη για σας. Το <application>CTM</application> δεν θα το κάνει
+ αυτό, και αν σβήσετε κάποιο τμήμα του δέντρου σας (και δεν έχετε
+ αντίγραφο ασφαλείας) θα πρέπει να ξεκινήσετε από την αρχή (από το πιο
+ πρόσφατο CVS <quote>base delta</quote>) και να το ξανακτίσετε από την
+ αρχή με το <application>CTM</application>. Με το
+ <application>Ανώνυμο CVS</application>, μπορείτε απλώς να διαγράψετε
+ τα προβληματικά αρχεία και να συγχρονίσετε ξανά τον πηγαίο σας
+ κώδικα.</para>
+ </sect1>
+
+ <sect1 id="makeworld">
+ <title>Μεταγλωττίζοντας το Βασικό Σύστημα (<quote>world</quote>)</title>
+
+ <indexterm>
+ <primary>Rebuilding <quote>world</quote></primary>
+ </indexterm>
+ <para>Έχοντας συγχρονίσει το τοπικό σας δέντρο πηγαίου κώδικα σε κάποια
+ συγκεκριμένη έκδοση του &os; (&os.stable;, &os.current;, κ.ο.κ.),
+ μπορείτε έπειτα να το χρησιμοποιήσετε για να μεταγλωττίσετε το
+ σύστημα σας από την αρχή.</para>
+
+ <warning>
+ <title>Δημιουργήστε Ένα Αντίγραφο Ασφαλείας</title>
+
+ <para>Δεν μπορούμε παρά να τονίσουμε πόσο σημαντικό είναι να
+ δημιουργήσετε ένα αντίγραφο ασφαλείας του συστήματος σας
+ <emphasis>πριν</emphasis> ξεκινήσετε αυτή τη διαδικασία. Αν και η
+ μεταγλώττιση του βασικού συστήματος είναι (όσο τουλάχιστον ακολουθείτε
+ αυτές τις οδηγίες) μια σχετικά απλή διαδικασία, αναμφίβολα θα υπάρξουν
+ και περιπτώσεις που λάθη δικά σας, ή άλλων (στο δέντρο πηγαίου
+ κώδικα), θα σας οδηγήσουν σε ένα σύστημα που δεν θα μπορεί να
+ εκκινήσει.</para>
+
+ <para>Βεβαιωθείτε ότι έχετε ενημερωμένο αντίγραφο ασφαλείας. Καλό θα
+ είναι να έχετε επίσης πρόχειρη μια δισκέτα fixit ή ένα CD εκκίνησης.
+ Ίσως να μην χρειαστεί ποτέ να τα χρησιμοποιήσετε, αλλά καλύτερα να
+ είστε ασφαλής παρά να το μετανοιώνετε αργότερα!</para>
+ </warning>
+
+ <warning>
+ <title>Γίνετε Συνδρομητής στη Σωστή Λίστα Ηλ. Ταχυδρομείου</title>
+
+ <indexterm><primary>mailing list</primary></indexterm>
+ <para>Από τη φύση τους, οι κλάδοι &os.stable; και &os.current;
+ βρίσκονται σε συνεχή <emphasis>ανάπτυξη</emphasis>. Όσοι συνεισφέρουν
+ στο &os; είναι απλώς άνθρωποι, και περιστασιακά λάθη απλώς
+ συμβαίνουν.</para>
+
+ <para>Ορισμένες φορές τα λάθη αυτά είναι μάλλον ακίνδυνα, και το μόνο
+ που κάνουν είναι να εμφανίζουν μερικές διαγνωστικές προειδοποιήσεις
+ στο σύστημα σας. Ή μπορεί η αλλαγή να είναι καταστροφική, και να
+ οδηγήσει το σύστημα σας σε αδυναμία εκκίνησης ή ακόμα και να
+ καταστρέψει τα συστήματα αρχείων σας (ή και ακόμα χειρότερες
+ συνέπειες).</para>
+
+ <para>Αν συμβούν τέτοια προβλήματα, σύντομα θα εμφανιστεί ένα μήνυμα
+ τύπου <quote>heads up</quote> στις σχετικές λίστες ταχυδρομείου, το
+ οποίο θα εξηγεί το πρόβλημα και ποια συστήματα επηρεάζει. Όταν το
+ πρόβλημα λυθεί, θα γίνει μια αντίστοιχη <quote>all clear</quote>
+ ανακοίνωση.</para>
+
+ <para>Αν προσπαθείτε να ακολουθήσετε το &os.stable; ή το &os.current;,
+ και δεν διαβάζετε τις αντίστοιχες λίστες &a.stable.name; και
+ &a.current.name;, ψάχνετε για μπελάδες.</para>
+ </warning>
+
+ <warning>
+ <title>Μην Χρησιμοποιήσετε την εντολή
+ <command>make world</command></title>
+
+ <para>Μεγάλο μέρος της παλαιότερης τεκμηρίωσης, συνιστά τη χρήση της
+ εντολής <command>make world</command>. Αν την χρησιμοποιήσετε, θα
+ παραλειφθούν ορισμένα σημαντικά βήματα της διαδικασίας.
+ Χρησιμοποιήστε τη μόνο αν είστε απόλυτα σίγουροι για αυτό που κάνετε.
+ Για τις περισσότερες περιπτώσεις, η εντολή
+ <command>make world</command> είναι λανθασμένη, και αντί για αυτή
+ θα πρέπει να ακολουθήσετε τη διαδικασία που περιγράφουμε
+ παρακάτω.</para>
+ </warning>
+
+ <sect2 id="canonical-build">
+ <title>Ο Κανονικός Τρόπος να Ενημερώσετε το Σύστημα σας</title>
+
+ <para>Πριν ενημερώσετε το σύστημα σας, θα πρέπει να ελέγξετε το
+ <filename>/usr/src/UPDATING</filename> για τυχόν βήματα που θα πρέπει
+ να εκτελέσετε πριν την εκκίνηση της μεταγλώττισης. Τα βήματα αυτά
+ εξαρτώνται από την έκδοση του πηγαίου κώδικα που πρόκειται να
+ χρησιμοποιήσετε. Έπειτα, ακολουθήστε τη διαδικασία που περιγράφεται
+ στις επόμενες παραγράφους.</para>
+
+ <para>Η διαδικασία αναβάθμισης η οποία περιγράφεται εδώ βασίζεται στην
+ υπόθεση ότι έχετε ήδη εγκαταστήσει μια παλιότερη έκδοση του &os;, με
+ μια παλιά έκδοση του μεταγλωττιστή, ένα παλιό πυρήνα,
+ παλιά <quote>εργαλεία χρήστη</quote> και αρχεία ρυθμίσεων. Εργαλεία
+ χρήστη θεωρούνται τα βασικά εκτελέσιμα, οι βιβλιοθήκες και τα αρχεία
+ προγραμματισμού. Ο μεταγλωττιστής είναι κι αυτός μέρος των
+ <quote>εργαλείων χρήστη</quote> στο &os;, αλλά χρειάζεται ειδική
+ μεταχείριση κατά τη διαδικασία αναβάθμισης.</para>
+
+ <para>Υποθέτουμε, επίσης, ότι έχετε ήδη κατεβάσει μια ενημερωμένη έκδοση
+ από τον πηγαίο κώδικα του συστήματος. Αν ο πηγαίος κώδικας στο
+ συγκεκριμένο σύστημα είναι από παλιότερη έκδοση, δείτε
+ το <xref linkend="synching"> για λεπτομερείς οδηγίες σχετικά με το πως
+ να συγχρονίσετε τον πηγαίο κώδικα σε μια νεότερη έκδοση.</para>
+
+ <para>Η αναβάθμιση του &os; από τον πηγαίο κώδικά του φαίνεται να είναι
+ πολύ απλή διαδικασία. Στην πραγματικότητα, έχει κάποιες
+ ιδιαιτερότητες. Με τα χρόνια, καθώς οι εξαρτήσεις μεταξύ των βημάτων
+ της αναβάθμισης ανακαλύπτονται ή αναλύονται καλύτερα, οι
+ προγραμματιστές του &os; αλλάζουν σιγά-σιγά αυτή τη διαδικασία. Οι
+ παρακάτω παράγραφοι περιγράφουν τη λογική με την οποία έχει σχεδιασθεί
+ η προτεινόμενη διαδικασία αναβάθμισης.</para>
+
+ <para>Μια επιτυχής διαδικασία αναβάθμισης πρέπει να καλύψει τουλάχιστον
+ τις δύο πιο βασικές ιδιαιτερότητες μιας αναβάθμισης από πηγαίο
+ κώδικα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ο παλιός μεταγλωττιστής συστήματος μπορεί να είναι ακατάλληλος
+ για μεταγλώττιση του νέου πυρήνα. (Και οι μεταγλωττιστές έχουν
+ ορισμένες φορές προβλήματα, όπως κάθε άλλο λογισμικό.) Οπότε ο
+ νέος πυρήνας πρέπει να μεταγλωττιστεί με το νέο μεταγλωττιστή.
+ Πιο συγκεκριμένα, ο νέος μεταγλωττιστής πρέπει να αναβαθμιστεί
+ πριν από το νέο πυρήνα. Αυτό δε σημαίνει βέβαια ότι αυτός ο νέος
+ μεταγλωττιστής πρέπει να <emphasis>εγκατασταθεί</emphasis> πριν
+ μεταγλωττιστεί ο νέος πυρήνας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα νέα εργαλεία χρήστη από το βασικό σύστημα του &os; μπορεί
+ να εξαρτώνται από τον τρόπο λειτουργίας του νέου πυρήνα. Οπότε ο
+ νέος πυρήνας πρέπει να εγκατασταθεί πριν από το νέο βασικό
+ σύστημα.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αυτά τα δύο σημεία είναι οι βασικοί λόγοι για τους οποίους
+ προτείνονται τα κεντρικά βήματα μιας αναβάθμισης, τα
+ βήματα <maketarget>buildworld</maketarget>,
+ <maketarget>buildkernel</maketarget>,
+ <maketarget>installkernel</maketarget>,
+ και <maketarget>installworld</maketarget>. Στις επόμενες παραγράφους
+ θα περιγράψουμε πιο αναλυτικά αυτά τα βήματα. Υπάρχουν κι άλλοι λόγοι
+ όμως για τους οποίους χρειάζεται προσοχή όταν κάνετε μια τέτοια
+ αναβάθμιση. Μερικοί από αυτούς είναι οι εξής:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τα παλιά εργαλεία του βασικού συστήματος μπορεί να μην τρέχουν
+ σωστά με το νέο πυρήνα. Γι αυτό πρέπει να εγκατασταθεί το
+ ενημερωμένο βασικό σύστημα αμέσως μετά την εγκατάσταση του νέου
+ πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μερικές φορές χρειάζονται αλλαγές στα αρχεία ρυθμίσεων πριν
+ εγκατασταθεί το νέο βασικό σύστημα. Άλλες φορές η εγκατάσταση
+ όλων των αρχείων ρυθμίσεων μπορεί να δημιουργήσει προβλήματα στην
+ εγκατάσταση. Γι αυτό έχουμε χωρίσει την ενημέρωση των αρχείων
+ ρυθμίσεων σε δύο ξεχωριστά βήματα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στην πλειοψηφία των περιπτώσεων η διαδικασία εγκατάστασης
+ αντικαθιστά ή προσθέτει αρχεία του συστήματος· δε σβήνει κανένα
+ υπάρχον αρχείο. Σε μερικές περιπτώσεις αυτό μπορεί να
+ δημιουργήσει προβλήματα. Όταν υπάρχει τέτοια περίπτωση, η
+ διαδικασία εγκατάστασης τυπώνει ενημερωτικά μηνύματα για τα αρχεία
+ τα οποία πρέπει να σβηστούν χειροκίνητα. Αυτό το βήμα μπορεί να
+ αυτοματοποιηθεί στο μέλλον.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Έχοντας όλες αυτές τις ιδιαιτερότητες μιας αναβάθμισης από πηγαίο
+ κώδικα, καταλήξαμε στην παρακάτω διαδικασία αναβάθμισης. Ορισμένες
+ φορές μπορεί να χρειάζεται να προσθέσετε κάποια βήματα σε αυτή τη
+ διαδικασία. Τα βασικά βήματα όμως παραμένουν τα ίδια, κι είναι τα
+ εξής:</para>
+
+ <orderedlist>
+ <listitem>
+ <para><command>make <maketarget>buildworld</maketarget></command></para>
+
+ <para>Αυτό το βήμα μεταγλωττίζει πρώτα μια ενημερωμένη έκδοση του
+ ίδιου του μεταγλωττιστή συστήματος και μερικών απαραίτητων
+ εργαλείων. Ύστερα, χρησιμοποιώντας το νέο μεταγλωττιστή,
+ προετοιμάζει μια νέα έκδοση όλου του βασικού συστήματος του &os;.
+ Τα ενημερωμένα εκτελέσιμα, βιβλιοθήκες και αρχεία προγραμματισμού
+ καταλήγουν στον
+ κατάλογο <filename class="directory">/usr/obj</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para><command>make <maketarget>buildkernel</maketarget></command></para>
+
+ <para>Σε αντίθεση με παλιότερες διαδικασίες αναβάθμισης (οι οποίες
+ καλούσαν χειροκίνητα το &man.config.8; και το &man.make.1;) αυτό
+ το βήμα μεταγλωττίζει τον πυρήνα του &os; χρησιμοποιώντας τον
+ ενημερωμένο μεταγλωττιστή συστήματος από τον
+ κατάλογο <filename class="directory">/usr/obj</filename>. Αυτό
+ σας προστατεύει από προβλήματα ασυμβατότητας μεταξύ του
+ μεταγλωττιστή και του πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para><command>make <maketarget>installkernel</maketarget></command></para>
+
+ <para>Εγκατάσταση του νέου πυρήνα και των αρθρωμάτων του στο δίσκο
+ του συστήματος. Έτσι μπορεί πλέον το σύστημα να ξεκινήσει με το
+ νέο, ενημερωμένο πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Εκκίνηση σε λειτουργία single user.</para>
+
+ <para>Η λειτουργία single user ελαχιστοποιεί την πιθανότητα να έχετε
+ προβλήματα επειδή αναβαθμίσατε κάποιο πρόγραμμα που τρέχει ήδη.
+ Είναι επίσης πιο ασφαλής, αφού δε χρειάζεται να τρέξετε τις
+ εφαρμογές του παλιού βασικού συστήματος με το νέο πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para><command>mergemaster <option>-p</option></command></para>
+
+ <para>Αυτό το βήμα ενημερώνει τα απολύτως βασικά αρχεία ρυθμίσεων
+ του &os;, για να μπορέσετε να εγκαταστήσετε σωστά το νέο βασικό
+ σύστημα. Ενημερώνει, για παράδειγμα, τη βάση χρηστών και ομάδων
+ χρηστών του &os;. Κάθε φορά που προστίθεται ένας νέος χρήστης
+ συστήματος ή μια νέα ομάδα χρηστών, το
+ βήμα <maketarget>installworld</maketarget> της αναβάθμισης θεωρεί
+ ότι έχετε ήδη ρυθμίσει τους νέους χρήστες ή τις νέες ομάδες. Αυτό
+ ακριβώς κάνει σε αυτό το σημείο το εργαλείο
+ &man.mergemaster.8;.</para>
+ </listitem>
+
+ <listitem>
+ <para><command>make <maketarget>installworld</maketarget></command></para>
+
+ <para>Το επόμενο βήμα είναι να εγκαταστήσετε το ενημερωμένο βασικό
+ σύστημα από τον
+ κατάλογο <filename class="directory">/usr/obj</filename>. Μετά
+ από αυτό έχετε πλέον ένα νέο πυρήνα και ένα ενημερωμένο βασικό
+ σύστημα, το οποίο ταιριάζει με τον νέο πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para><command>mergemaster</command></para>
+
+ <para>Ένα από τα τελευταία βήματα είναι η αναβάθμιση των αρχείων
+ ρυθμίσεων του συστήματος. Το εργαλείο &man.mergemaster.8; μπορεί
+ να σας βοηθήσει σε αυτό το βήμα, αφού ενημερώνει τα αρχεία
+ ρυθμίσεων κρατώντας και οποιεσδήποτε τοπικές αλλαγές έχετε κάνει
+ στο σύστημά σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Επανεκκινήστε το σύστημα.</para>
+
+ <para>Μια τελευταία επανεκκίνηση του συστήματος σας εξασφαλίζει ότι
+ το σύστημα ξεκινάει με το νέο πυρήνα, το ενημερωμένο βασικό
+ σύστημα και τα καινούρια αρχεία ρυθμίσεων.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Αν η αναβάθμιση που κάνετε είναι από μια έκδοση του &os; σε μια
+ πιο καινούρια έκδοση του ίδιου κλάδου ανάπτυξης, π.χ. από 7.0 σε 7.1,
+ τότε μερικά από τα βήματα αυτή της διαδικασίας μπορεί να μη
+ χρειάζονται αφού είναι λιγότερο πιθανό να συναντήσετε ασυμβατότητες
+ μεταξύ του μεταγλωττιστή συστήματος, του πυρήνα, του βασικού
+ συστήματος και των αρχείων ρυθμίσεων. Η αναβάθμιση σε τέτοιες
+ περιπτώσεις, μεταξύ δύο minor εκδόσεων του &os;, ίσως μπορεί να γίνει
+ και με την παλιότερη διαδικασία:
+ τρέχοντας<command>make <maketarget>world</maketarget></command> και
+ ύστερα μεταγλωττίζοντας και στήνοντας ένα νέο πυρήνα.</para>
+
+ <para>Όταν όμως αναβαθμίσετε το &os; μεταξύ major εκδόσεων, καλύτερα να
+ χρησιμοποιήσετε τη διαδικασία που περιγράφουμε εδώ. Αλλιώς μπορεί να
+ αντιμετωπίσετε προβλήματα είτε κατά τη διάρκεια της αναβάθμισης ή αφού
+ έχει πλέον ολοκληρωθεί.</para>
+
+ <para>Κάποιες από τις αναβαθμίσεις (π.χ. από μια έκδοση
+ &nbsp;4.<replaceable>X</replaceable> σε 5.0) μπορεί να απαιτούν μερικά
+ χειροκίνητα βήματα (όπως το να μετακινήσετε ή να σβήσετε συγκεκριμένα
+ αρχεία πριν το βήμα <maketarget>installworld</maketarget>). Πριν από
+ κάθε αναβάθμιση διαβάστε προσεκτικά τις οδηγίες στο
+ αρχείο <filename>/usr/src/UPDATING</filename>· ειδικά τις οδηγίες στο
+ τέλος του αρχείου, οι οποίες περιγράφουν αναλυτικά την προτεινόμενη
+ διαδικασία αναβάθμισης.</para>
+
+ <para>Αυτή η διαδικασία αναβάθμισης εξελίσσεται και διορθώνεται καθώς οι
+ προγραμματιστές του &os; ανακαλύπτουν καινούριες εξαρτήσεις μεταξύ των
+ συστατικών του συστήματος ή κάνουν διορθώσεις για να αποφύγουν
+ ασυμβατότητες μεταξύ των διαφορετικών υποσυστημάτων. Ελπίζουμε ότι τα
+ κεντρικά βήματα της διαδικασίας που περιγράφεται εδώ δε θα αλλάξουν
+ πολύ για αρκετό καιρό πλέον.</para>
+
+ <para>Ανακεφαλαιώνοντας όλα τα βήματα τα οποία περιγράψαμε
+ παραπάνω, η προτεινόμενη διαδικασία αναβάθμισης του &os; από τον
+ πηγαίο κώδικα του συστήματος είναι:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make buildworld</userinput>
+&prompt.root; <userinput>make buildkernel</userinput>
+&prompt.root; <userinput>make installkernel</userinput>
+&prompt.root; <userinput>shutdown -r now</userinput></screen>
+
+ <note>
+ <para>Υπάρχουν κάποιες μάλλον σπάνιες περιπτώσεις, που απαιτείται
+ μια επιπλέον εκτέλεση του <command>mergemaster -p</command> πριν
+ το βήμα <maketarget>buildworld</maketarget>. Οι περιπτώσεις αυτές
+ περιγράφονται στο <filename>UPDATING</filename>. Σε γενικές
+ γραμμές πάντως, μπορείτε με ασφάλεια να παραλείψετε αυτό το βήμα,
+ αν δεν αναβαθμίζετε το σύστημα σας μεταξύ πολλαπλών εκδόσεων του
+ &os;.</para>
+ </note>
+
+ <para>Μετά την επιτυχή ολοκλήρωση του
+ <maketarget>installkernel</maketarget>, θα πρέπει να επανεκκινήσετε
+ σε κατάσταση ενός χρήστη (π.χ. χρησιμοποιώντας την εντολή
+ <command>boot -s</command> στην προτροπή του φορτωτή εκκίνησης).
+ Έπειτα εκτελέστε:</para>
+
+ <screen>&prompt.root; <userinput>mount -u /</userinput>
+&prompt.root; <userinput>mount -a -t ufs</userinput>
+&prompt.root; <userinput>adjkerntz -i</userinput>
+&prompt.root; <userinput>mergemaster -p</userinput>
+&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make installworld</userinput>
+&prompt.root; <userinput>mergemaster</userinput>
+&prompt.root; <userinput>reboot</userinput></screen>
+
+ <warning>
+ <title>Διαβάστε τις Επιπλέον Εξηγήσεις</title>
+
+ <para>Η διαδικασία που περιγράψαμε παραπάνω είναι μια απλή περίληψη
+ για να σας βοηθήσει να ξεκινήσετε. Θα πρέπει ωστόσο να διαβάσετε
+ τις παρακάτω ενότητες για να κατανοήσετε πλήρως κάθε βήμα, ειδικά
+ αν θέλετε να χρησιμοποιήσετε δικό σας προσαρμοσμένο πυρήνα.</para>
+ </warning>
+ </sect2>
+
+ <sect2 id="src-updating">
+ <title>Διαβάστε το <filename>/usr/src/UPDATING</filename></title>
+
+ <para>Πριν κάνετε οτιδήποτε άλλο, διαβάστε το
+ <filename>/usr/src/UPDATING</filename> (ή το αντίστοιχο αρχείο, αν
+ έχετε αποθηκεύσει τον πηγαίο κώδικα σε άλλο κατάλογο). Το αρχείο
+ αυτό περιέχει σημαντικές πληροφορίες σχετικά με προβλήματα που μπορεί
+ να συναντήσετε ή ίσως να καθορίζει τη σειρά με την οποία πρέπει να
+ εκτελεστούν κάποιες εντολές. Αν το αρχείο
+ <filename>UPDATING</filename> έρχεται σε σύγκρουση με κάτι που
+ διαβάσατε εδώ, προτεραιότητα έχει το αρχείο
+ <filename>UPDATING</filename>.</para>
+
+ <important>
+ <para>Η ανάγνωση του αρχείου <filename>UPDATING</filename> δεν είναι
+ αποδεκτό υποκατάστατο της συνδρομής στη σωστή λίστα ηλεκτρονικού
+ ταχυδρομείου, όπως περιγράψαμε προηγουμένως. Οι δύο απαιτήσεις
+ είναι συμπληρωματικές, δεν αλληλοαναιρούνται.</para>
+ </important>
+ </sect2>
+
+ <sect2 id="make-conf">
+ <title>Ελέγξτε το <filename>/etc/make.conf</filename></title>
+ <indexterm>
+ <primary><filename>make.conf</filename></primary>
+ </indexterm>
+
+ <para>Εξετάστε τα αρχεία
+ <filename>/usr/share/examples/etc/make.conf</filename>
+ και
+ <filename>/etc/make.conf</filename>. Το πρώτο περιέχει κάποιες
+ προεπιλεγμένες μεταβλητές (defines), οι περισσότερες από τις οποίες
+ είναι ως σχόλια. Για να τα χρησιμοποιήσετε όταν μεταγλωττίζετε το
+ σύστημα σας, προσθέστε τα στο <filename>/etc/make.conf</filename>.
+ Να έχετε υπόψη σας, πως οτιδήποτε προσθέτετε στο αρχείο
+ <filename>/etc/make.conf</filename> χρησιμοποιείτε επίσης κάθε φορά
+ που εκτελείτε την εντολή <command>make</command>, έτσι είναι γενικά
+ καλή ιδέα να βάλετε τιμές που είναι λογικές για το
+ σύστημα σας.</para>
+
+ <para>Ένας τυπικός χρήστης θα θέλει πιθανώς να αντιγράψει τις γραμμές
+ <makevar>CFLAGS</makevar> και
+ <makevar>NO_PROFILE</makevar> από το αρχείο
+ <filename>/usr/share/examples/etc/make.conf</filename>
+ στο
+ <filename>/etc/make.conf</filename> αφαιρώντας ταυτόχρονα και το
+ σύμβολο του σχολίου.</para>
+
+ <para>Εξετάστε και τις άλλες μεταβλητές (<makevar>COPTFLAGS</makevar>,
+ <makevar>NOPORTDOCS</makevar> κ.ο.κ.) και αποφασίστε αν σχετίζονται
+ με το επιθυμητό για σας αποτέλεσμα.</para>
+ </sect2>
+
+ <sect2 id="updating-etc">
+ <title>Ενημερώστε τα Αρχεία στο <filename>/etc</filename></title>
+
+ <para>Ο κατάλογος <filename>/etc</filename> περιέχει μεγάλο μέρος των
+ πληροφοριών ρύθμισης του συστήματος σας, όπως επίσης και scripts που
+ εκτελούνται κατά την εκκίνηση του συστήματος. Μερικά από τα scripts
+ αυτά αλλάζουν από έκδοση σε έκδοση του &os;.</para>
+
+ <para>Ορισμένα από τα αρχεία ρυθμίσεων χρησιμοποιούνται επίσης κατά την
+ καθημερινή χρήση του συστήματος. Το <filename>/etc/group</filename>
+ είναι ένα από αυτά.</para>
+
+ <para>Έχουν υπάρξει περιπτώσεις στο παρελθόν, όπου το
+ <command>make installworld</command> ανέμενε από πριν την ύπαρξη
+ συγκεκριμένων ονομάτων χρηστών (usernames) ή ομάδων (groups). Κατά
+ τη διαδικασία της αναβάθμισης ήταν αρκετά πιθανό αυτοί οι χρήστες ή
+ ομάδες να μην υπήρχαν. Αυτό δημιουργούσε προβλήματα στην
+ διαδικασία. Σε κάποιες περιπτώσεις, το
+ <command>make buildworld</command> θα ελέγξει αν υπάρχουν αυτοί οι
+ χρήστες ή ομάδες.</para>
+
+ <para>Μια τέτοια περίπτωση παρουσιάστηκε όταν προστέθηκε ο χρήστης
+ <username>smmsp</username>. Η διαδικασία αναβάθμισης αποτύγχανε σε
+ πολλούς χρήστες, τη στιγμή που το &man.mtree.8; προσπαθούσε να
+ δημιουργήσει τον κατάλογο
+ <filename>/var/spool/clientmqueue</filename>.</para>
+
+ <para>Η λύση είναι να εκτελέσετε το &man.mergemaster.8; σε κατάσταση
+ προ-εγκατάστασης, δίνοντας την επιλογή <option>-p</option>. Αυτή
+ θα συγκρίνει μόνο τα αρχεία που είναι απαραίτητα για την επιτυχία
+ εκτέλεσης του <maketarget>buildworld</maketarget> ή του
+ <maketarget>installworld</maketarget>. Αν η έκδοση του
+ <command>mergemaster</command> που έχετε είναι παλιά και δεν
+ υποστηρίζει το <option>-p</option>, χρησιμοποιήστε την νέα έκδοση
+ από το δέντρο του πηγαίου κώδικα όταν την εκτελέσετε για πρώτη
+ φορά:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/mergemaster</userinput>
+&prompt.root; <userinput>./mergemaster.sh -p</userinput></screen>
+
+ <tip>
+ <para>Αν αισθάνεστε ιδιαίτερα παρανοϊκός, μπορείτε να ελέγξετε το
+ σύστημα σας για να δείτε ποια αρχεία ανήκουν στην ομάδα που
+ μετονομάζετε ή διαγράφετε:</para>
+
+ <screen>&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput></screen>
+
+ <para>Η παραπάνω εντολή θα σας δείξει όλα τα αρχεία τα οποία ανήκουν
+ στην ομάδα <replaceable>GID</replaceable> (μπορείτε να δώσετε όνομα
+ ή αριθμητικό αναγνωριστικό της ομάδας).</para>
+ </tip>
+ </sect2>
+
+ <sect2 id="makeworld-singleuser">
+ <title>Μεταβείτε σε Κατάσταση Ενός Χρήστη</title>
+ <indexterm><primary>single-user mode</primary></indexterm>
+
+ <para>Ίσως προτιμάτε να μεταγλωττίσετε το σύστημα σε κατάσταση ενός
+ χρήστη. Εκτός από το προφανές πλεονέκτημα της ελαφρά μεγαλύτερης
+ ταχύτητας, η επανεγκατάσταση του συστήματος θα επηρεάσει πολλά
+ σημαντικά αρχεία του συστήματος, όλα τα εκτελέσιμα αρχεία του βασικού
+ συστήματος, τις βιβλιοθήκες, τα αρχεία include κ.α. Αν τα αλλάξετε
+ αυτά σε ένα σύστημα που βρίσκεται σε κανονική λειτουργία (και ειδικά
+ αν υπάρχουν ενεργοί χρήστες την δεδομένη στιγμή), ψάχνετε για
+ μπελάδες.</para>
+
+ <indexterm><primary>multi-user mode</primary></indexterm>
+ <para>Μια άλλη μέθοδος είναι να μεταγλωττίσετε το σύστημα σε κατάσταση
+ κανονικής λειτουργίας, αλλά να μεταβείτε σε κατάσταση ενός χρήστη για
+ την εγκατάσταση. Αν θέλετε να το κάνετε με αυτό τον τρόπο, απλώς
+ μην εκτελέσετε τα ακόλουθα βήματα μέχρι το τέλος της μεταγλώττισης.
+ Μπορείτε να αναβάλλετε τη μετάβαση σε κατάσταση ενός χρήστη μέχρι
+ να είστε έτοιμοι για το <maketarget>installkernel</maketarget> ή
+ <maketarget>installworld</maketarget>.</para>
+
+ <para>Ως υπερχρήστης μπορείτε να εκτελέσετε:</para>
+
+ <screen>&prompt.root; <userinput>shutdown now</userinput></screen>
+
+ <para>σε ένα σύστημα σε κανονική λειτουργία για να μεταβείτε σε
+ κατάσταση ενός χρήστη.</para>
+
+ <para>Εναλλακτικά, επανεκκινήστε το σύστημα και στην προτροπή του
+ φορτωτή εκκίνησης, επιλέξτε <quote>single user</quote>. Το σύστημα
+ θα ξεκινήσει σε κατάσταση ενός χρήστη. Στην προτροπή της γραμμής
+ εντολών θα πρέπει να γράψετε:</para>
+
+ <screen>&prompt.root; <userinput>fsck -p</userinput>
+&prompt.root; <userinput>mount -u /</userinput>
+&prompt.root; <userinput>mount -a -t ufs</userinput>
+&prompt.root; <userinput>swapon -a</userinput></screen>
+
+ <para>Θα γίνει έλεγχος στα συστήματα αρχείων, και προσάρτηση του
+ <filename>/</filename> με δυνατότητα ανάγνωσης/εγγραφής. Έπειτα θα
+ προσαρτηθούν όλα τα άλλα συστήματα αρχείων UFS τα οποία αναφέρονται
+ στο <filename>/etc/fstab</filename>, και θα ενεργοποιηθεί το
+ swap.</para>
+
+ <note>
+ <para>Αν το CMOS ρολόι του υπολογιστή σας είναι ρυθμισμένο σε
+ τοπική ώρα και όχι σε GMT (αυτό είναι αλήθεια αν η έξοδος της
+ εντολής &man.date.1; δεν δείχνει σωστή ημερομηνία και ώρα), ίσως
+ χρειαστεί να εκτελέσετε επίσης την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
+
+ <para>Με αυτό τον τρόπο θα βεβαιωθείτε ότι οι τοπικές σας ρυθμίσεις
+ ώρας έχουν ρυθμιστεί σωστά. Διαφορετικά, μπορεί να συναντήσετε
+ προβλήματα αργότερα.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="cleaning-usr-obj">
+ <title>Διαγράψτε το <filename>/usr/obj</filename></title>
+
+ <para>Καθώς γίνεται η επαναμεταγλώττιση, τμήματα του συστήματος
+ τοποθετούνται από προεπιλογή σε υποκαταλόγους του
+ <filename>/usr/obj</filename>. Οι υποκατάλογοι αυτοί αντιγράφουν τη
+ δομή που ακολουθείται στο <filename>/usr/src</filename>.</para>
+
+ <para>Μπορείτε να επιταχύνετε τη διαδικασία του
+ <command>make buildworld</command> και επίσης να γλυτώσετε από κάποια
+ πιθανά προβλήματα, αν διαγράψετε και αυτό τον κατάλογο.</para>
+
+ <para>Κάποια αρχεία σε υποκαταλόγους του <filename>/usr/obj</filename>
+ μπορεί να έχουν χαρακτηριστεί ως immutable μέσω του αντίστοιχου flag
+ (για περισσότερες λεπτομέρειες δείτε το &man.chflags.1;). Πριν
+ διαγράψετε αυτά τα αρχεία, θα πρέπει πρώτα να καταργήσετε αυτό το
+ flag.</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/obj</userinput>
+&prompt.root; <userinput>chflags -R noschg *</userinput>
+&prompt.root; <userinput>rm -rf *</userinput></screen>
+ </sect2>
+
+ <sect2 id="updating-upgrading-compilebase">
+ <title>Επαναμεταγλωττίστε το Βασικό Σύστημα</title>
+
+ <sect3>
+ <title>Αποθηκεύστε την Έξοδο</title>
+
+ <para>Καθώς εκτελείται η &man.make.1;, είναι καλή ιδέα η έξοδος της
+ να αποθηκεύεται σε κάποιο άλλο αρχείο. Αν κάτι πάει στραβά, θα
+ έχετε ένα αντίγραφο του μηνύματος λάθους. Αν και αυτό ίσως δεν σας
+ βοηθήσει να βρείτε τι πήγε στραβά, μπορεί να διευκολύνει άλλους αν
+ στείλετε το μήνυμα σας σε μια από τις λίστες ηλεκτρονικού
+ ταχυδρομείου του &os;.</para>
+
+ <para>Ο ευκολότερος τρόπος για να γίνει αυτό, είναι χρησιμοποιώντας
+ την εντολή &man.script.1; με μια παράμετρο που να καθορίζει το όνομα
+ του αρχείου στο οποίο θα αποθηκευτεί η έξοδος. Θα πρέπει να
+ το εκτελέσετε αμέσως πριν ξεκινήσετε την μεταγλώττιση του βασικού
+ συστήματος, και να γράψετε <userinput>exit</userinput> μόλις
+ η διαδικασία ολοκληρωθεί.</para>
+
+ <screen>&prompt.root; <userinput>script /var/tmp/mw.out</userinput>
+Script started, output file is /var/tmp/mw.out
+&prompt.root; <userinput>make TARGET</userinput>
+<emphasis>&hellip; μεταγλώττιση, μεταγλώττιση, μεταγλώττιση &hellip;</emphasis>
+&prompt.root; <userinput>exit</userinput>
+Script done, &hellip;</screen>
+
+ <para>Αν αποφασίσετε να αποθηκεύσετε την έξοδο,
+ <emphasis>μη χρησιμοποιήσετε</emphasis> για αυτό το σκοπό τον
+ κατάλογο <filename>/tmp</filename>. Τα περιεχόμενα αυτού του
+ καταλόγου πιθανώς να διαγραφούν την επόμενη φορά που θα εκκινήσετε
+ το σύστημα σας. Ένας καλύτερος κατάλογος για την αποθήκευση του
+ είναι ο <filename>/var/tmp</filename> (όπως στο προηγούμενο
+ παράδειγμα) ή ο προσωπικός κατάλογος του
+ <username>root</username>.</para>
+ </sect3>
+
+ <sect3 id="make-buildworld">
+ <title>Μεταγλωττίστε το Βασικό Σύστημα</title>
+
+ <para>Θα πρέπει να βρίσκεστε στον κατάλογο
+ <filename>/usr/src</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
+
+ <para>(εκτός αν φυσικά έχετε αποθηκεύσει τον πηγαίο κώδικα σε κάποιο
+ άλλο κατάλογο, οπότε απλώς μετακινηθείτε σε αυτόν).</para>
+ <indexterm><primary><command>make</command></primary></indexterm>
+
+ <para>Για να επαναμεταγλωττίσετε το βασικό σύστημα, χρησιμοποιήστε
+ την εντολή &man.make.1;. Η εντολή αυτή διαβάζει τις σχετικές
+ οδηγίες από το αρχείο <filename>Makefile</filename>, το οποίο
+ περιγράφει με ποιο τρόπο πρέπει να μεταγλωττιστούν τα προγράμματα
+ από τα οποία αποτελείται το &os;, τη σειρά με την οποία πρέπει να
+ γίνει η μεταγλώττιση κ.ο.κ.</para>
+
+ <para>Η γενική μορφή της εντολής που θα πληκτρολογήσετε είναι η
+ παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>make -<replaceable>x</replaceable> -D<replaceable>VARIABLE</replaceable> <replaceable>target</replaceable></userinput></screen>
+
+ <para>Στο παράδειγμα αυτό, το
+ <option>-<replaceable>x</replaceable></option> αντιπροσωπεύει μια
+ επιλογή που θέλετε να δώσετε στην &man.make.1;. Δείτε την σελίδα
+ manual του &man.make.1; για παραδείγματα δυνατών επιλογών.</para>
+
+ <para>Η επιλογή <option>-D<replaceable>VARIABLE</replaceable></option>
+ περνάει μια μεταβλητή στο <filename>Makefile</filename>.
+ Η συμπεριφορά του <filename>Makefile</filename> ελέγχεται από
+ τέτοιου είδους μεταβλητές. Πρόκειται για τις ίδιες μεταβλητές που
+ καθορίζονται και στο <filename>/etc/make.conf</filename>, και αυτός
+ είναι ένας ακόμα τρόπος καθορισμού τους.</para>
+
+ <screen>&prompt.root; <userinput>make -DNO_PROFILE <replaceable>target</replaceable></userinput></screen>
+
+ <para>Το παραπάνω δείχνει ένα επιπλέον τρόπο να καθορίσετε ότι δεν
+ θέλετε να μεταγλωττιστούν οι βιβλιοθήκες με πληροφορίες profiling,
+ και αντιστοιχεί με την παρακάτω γραμμή στο
+ <filename>/etc/make.conf</filename>:</para>
+
+ <programlisting>NO_PROFILE= true # Avoid compiling profiled libraries</programlisting>
+
+ <para>Το <replaceable>target</replaceable> δηλώνει στο &man.make.1;
+ τι θέλετε να κάνετε. Σε κάθε <filename>Makefile</filename> ορίζεται
+ ένας αριθμός διαφορετικών <quote>targets</quote>, και η επιλογή που
+ θα κάνετε, καθορίζει τι ακριβώς θα γίνει.</para>
+
+ <para>Κάποια από τα targets που καθορίζονται στο
+ <filename>Makefile</filename>, δεν προορίζονται για άμεση εκτέλεση
+ από το χρήστη. Αντί για αυτό, χρησιμοποιούνται από τη διαδικασία
+ μεταγλώττισης για να μοιραστεί ο αριθμός των βημάτων που απαιτούνται
+ για τη μεταγλώττιση του συστήματος, σε ένα αριθμό
+ υπo-βημάτων.</para>
+
+ <para>Στις περισσότερες περιπτώσεις δεν θα χρειαστεί να δώσετε καμία
+ παράμετρο στο &man.make.1;, και έτσι η εντολή σας θα μοιάζει με την
+ παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>make <replaceable>target</replaceable></userinput></screen>
+
+ <para>Όπου το <replaceable>target</replaceable> θα είναι μια από τις
+ πολλές επιλογές μεταγλώττισης. Το πρώτο target θα πρέπει πάντα να
+ είναι το <makevar>buildworld</makevar>.</para>
+
+ <para>Όπως εννοείται και από το όνομα, το
+ <maketarget>buildworld</maketarget> μεταγλωττίζει ένα πλήρες δέντρο
+ μέσα στον κατάλογο <filename>/usr/obj</filename>, ενώ το
+ <maketarget>installworld</maketarget>, εγκαθιστά αυτό το δέντρο στο
+ τρέχον μηχάνημα.</para>
+
+ <para>Η ύπαρξη διαφορετικών επιλογών, είναι χρήσιμη για δύο λόγους.
+ Πρώτα από όλα, σας επιτρέπει να εκτελέσετε τη διαδικασία
+ μεταγλώττισης με ασφάλεια, γνωρίζοντας ότι δεν πρόκειται να
+ επηρεαστεί κανένα τμήμα του τρέχοντος συστήματος σας. Η διαδικασία
+ μεταγλώττισης είναι <quote>self hosted</quote>, απομονωμένη από την
+ υπόλοιπη λειτουργία του μηχανήματος. Μπορείτε έτσι να εκτελέσετε
+ το <maketarget>buildworld</maketarget> σε ένα μηχάνημα που βρίσκεται
+ σε κανονική λειτουργία (πολλαπλών χρηστών) χωρίς να υπάρχει φόβος
+ παρενεργειών. Ωστόσο, συνίσταται να εκτελέσετε το
+ <maketarget>installworld</maketarget> σε κατάσταση λειτουργίας
+ ενός χρήστη.</para>
+
+ <para>Ο δεύτερος λόγος είναι ότι σας επιτρέπει να χρησιμοποιήσετε
+ προσαρτήσεις NFS για να αναβαθμίσετε πολλά μηχανήματα του δικτύου
+ σας. Αν έχετε τρία μηχανήματα, τα
+ <hostid>A</hostid>, <hostid>B</hostid> και <hostid>C</hostid>
+ τα οποία θέλετε να αναβαθμίσετε, εκτελέστε το
+ <command>make buildworld</command> και το
+ <command>make installworld</command> στο μηχάνημα
+ <hostid>A</hostid>. Το <hostid>B</hostid> και το
+ <hostid>C</hostid> μπορούν να προσαρτήσουν τον κατάλογο
+ <filename>/usr/src</filename> και τον
+ <filename>/usr/obj</filename> από τον <hostid>A</hostid> μέσω NFS,
+ και έπειτα μπορείτε να εκτελέσετε το
+ <command>make installworld</command> για να εγκαταστήσετε το
+ έτοιμο πλέον σύστημα στον <hostid>B</hostid> και
+ <hostid>C</hostid>.</para>
+
+ <para>Αν και υπάρχει ακόμα το target <maketarget>world</maketarget>,
+ δεν συνίσταται πλέον η χρήση του.</para>
+
+ <para>Εκτελέστε την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>make buildworld</userinput></screen>
+
+ <para>Μπορείτε να καθορίσετε την επιλογή <option>-j</option> στην
+ <command>make</command> ώστε να εκτελεστεί σε πολλαπλές διεργασίες.
+ Αυτό είναι περισσότερο χρήσιμο σε μηχανήματα με πολλούς
+ επεξεργαστές, ωστόσο καθώς το μεγαλύτερο μέρος της διαδικασίας
+ μεταγλώττισης καθυστερεί εξαιτίας του σκληρού δίσκου (IO bound)
+ και όχι της CPU, μπορεί να σας φανεί χρήσιμο ακόμα και σε μηχανήματα
+ με ένα επεξεργαστή.</para>
+
+ <para>Σε ένα τυπικό μηχάνημα με μια CPU, θα μπορούσατε να
+ δώσετε:</para>
+
+ <screen>&prompt.root; <userinput>make -j4 buildworld</userinput></screen>
+
+ <para>Με την παραπάνω εντολή, το &man.make.1; θα χρησιμοποιεί μέχρι
+ 4 διεργασίες κάθε χρονική στιγμή. Από την εμπειρία που έχουμε
+ και από ότι αναφέρουν οι χρήστες στις λίστες, φαίνεται ότι η
+ ρύθμιση αυτή δίνει γενικά την καλύτερη απόδοση.</para>
+
+ <para>Αν έχετε μηχάνημα με πολλούς επεξεργαστές, και χρησιμοποιείτε
+ πυρήνα με δυνατότητα SMP, δοκιμάστε τιμές μεταξύ του 6 και του 10
+ για να δείτε ποια επιταχύνει καλύτερα το αποτέλεσμα.</para>
+ </sect3>
+
+ <sect3>
+ <title>Χρόνος Μεταγλώττισης</title>
+ <indexterm>
+ <primary>rebuilding <quote>world</quote></primary>
+ <secondary>timings</secondary>
+ </indexterm>
+
+ <para>Ο χρόνος που απαιτείται για την μεταγλώττιση επηρεάζεται από
+ πολλούς παράγοντες. Ωστόσο, σε σύγχρονα μηχανήματα η διαδικασία
+ δεν κρατάει συνήθως παραπάνω από μία ή δύο ώρες, όταν γίνεται
+ μεταγλώττιση του δέντρου &os.stable;, και μάλιστα χωρίς να
+ χρειάζεται να γίνουν ειδικές ρυθμίσεις ή κόλπα. Το δέντρο
+ &os.current; χρειάζεται γενικά λίγο περισσότερο χρόνο για να
+ μεταγλωττιστεί.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="new-kernel">
+ <title>Μεταγλωττίστε και Εγκαταστήστε Νέο Πυρήνα</title>
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>compiling</secondary>
+ </indexterm>
+
+ <para>Για να εκμεταλλευθείτε πλήρως το νέο σας σύστημα, θα πρέπει να
+ επαναμεταγλωττίσετε τον πυρήνα. Αυτό είναι πρακτικά αναγκαίο, καθώς
+ κάποιες δομές στη μνήμη πιθανώς να έχουν αλλάξει, και έτσι
+ προγράμματα όπως τα &man.ps.1; και &man.top.1; δεν θα λειτουργούν
+ σωστά μέχρι να συγχρονίσετε τον πυρήνα με την έκδοση πηγαίου
+ κώδικα του βασικού συστήματος.</para>
+
+ <para>Ο απλούστερος και πλέον ασφαλής τρόπος, είναι να μεταγλωττίσετε
+ και να εγκαταστήσετε ένα πυρήνα βασισμένο στον
+ <filename>GENERIC</filename>. Αν και ο <filename>GENERIC</filename>
+ μπορεί να μην περιέχει όλες τις απαραίτητες συσκευές για το σύστημα
+ σας, θα πρέπει να περιέχει ότι χρειάζεται ώστε να ξεκινήσετε ξανά
+ το σύστημα σας σε κατάσταση λειτουργίας ενός χρήστη. Αυτό είναι ένα
+ καλό τεστ σωστής λειτουργίας του συστήματος. Μετά την εκκίνηση με
+ τον <filename>GENERIC</filename>, και αφού επαληθεύσετε τη σωστή
+ λειτουργία του συστήματος, μπορείτε να μεταγλωττίσετε ένα νέο
+ πυρήνα βασισμένο στο δικό σας προσαρμοσμένο αρχείο ρυθμίσεων.</para>
+
+ <para>Στο &os; είναι σημαντικό να εκτελέσετε το <link
+ linkend="make-buildworld">build world</link> πριν μεταγλωττίσετε νέο
+ πυρήνα.</para>
+
+ <note><para>Αν θέλετε να μεταγλωττίσετε νέο πυρήνα, και έχετε ήδη ένα
+ αρχείο με προσαρμοσμένες ρυθμίσεις, χρησιμοποιήστε απλώς την επιλογή
+ <literal>KERNCONF=<replaceable>MYKERNEL</replaceable></literal>
+ με τον τρόπο που φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput>
+&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
+ </note>
+
+ <para>Σημειώστε ότι αν έχετε ανεβάσει την τιμή του
+ <literal>kern.securelevel</literal> πάνω από το 1,
+ <emphasis>και</emphasis> έχετε θέσει το flag
+ <literal>noschg</literal> ή κάποιο αντίστοιχο στο εκτελέσιμο αρχείο
+ του πυρήνα, μάλλον θα χρειαστεί να μεταβείτε σε κατάσταση λειτουργίας
+ ενός χρήστη για να χρησιμοποιήσετε το
+ <maketarget>installkernel</maketarget>. Διαφορετικά, μπορείτε να
+ εκτελέσετε και τις δύο αυτές εντολές από την κανονική κατάσταση
+ λειτουργίας (πολλών χρηστών) χωρίς να δημιουργηθούν προβλήματα.
+ Δείτε τη σελίδα manual του &man.init.8; για λεπτομέρειες σχετικά με
+ τη ρύθμιση <literal>kern.securelevel</literal> και τη σελίδα
+ του &man.chflags.1; για λεπτομέρειες σχετικά με τα διάφορα flags
+ που χρησιμοποιούνται σε αρχεία.</para>
+ </sect2>
+
+ <sect2 id="new-kernel-singleuser">
+ <title>Επανεκκινήστε σε Κατάσταση Λειτουργίας Ενός Χρήστη</title>
+ <indexterm><primary>single-user mode</primary></indexterm>
+
+ <para>Θα πρέπει να επανεκκινήσετε σε κατάσταση λειτουργίας ενός χρήστη
+ για να επαληθεύσετε τη λειτουργία του νέου πυρήνα. Για το σκοπό
+ αυτό, χρησιμοποιήστε τις οδηγίες που είδαμε στο
+ <xref linkend="makeworld-singleuser">.</para>
+ </sect2>
+
+ <sect2 id="make-installworld">
+ <title>Εγκαταστήστε τα Νέα Εκτελέσιμα του Συστήματος</title>
+
+ <para>Θα πρέπει τώρα να χρησιμοποιήσετε το
+ <maketarget>installworld</maketarget> για να εγκαταστήσετε τα νέα
+ εκτελέσιμα του συστήματος.</para>
+
+ <para>Εκτελέστε τις παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make installworld</userinput></screen>
+
+ <note>
+ <para>Αν έχετε καθορίσει μεταβλητές στη γραμμή εντολών του
+ <command>make buildworld</command> θα πρέπει να καθορίσετε τις
+ ίδιες μεταβλητές και στην γραμμή εντολών του
+ <command>make installworld</command>. Αυτό δεν είναι απαραίτητα
+ αλήθεια για άλλες επιλογές. Για παράδειγμα, η επιλογή
+ <option>-j</option> δεν πρέπει ποτέ να χρησιμοποιείτε με το
+ <maketarget>installworld</maketarget>.</para>
+
+ <para>Για παράδειγμα αν εκτελέσετε:</para>
+
+ <screen>&prompt.root; <userinput>make -DNO_PROFILE buildworld</userinput></screen>
+
+ <para>Θα πρέπει να εγκαταστήσετε το αποτέλεσμα χρησιμοποιώντας:</para>
+
+ <screen>&prompt.root; <userinput>make -DNO_PROFILE installworld</userinput></screen>
+
+ <para>διαφορετικά το &man.make.1; θα προσπαθήσει να εγκαταστήσει
+ βιβλιοθήκες με profiling, τις οποίες όμως δεν μεταγλωττίσατε κατά
+ τη διάρκεια της φάσης <command>make buildworld</command>.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="post-installworld-updates">
+ <title>Ενημερώστε Όσα Αρχεία δεν Ενημερώθηκαν από το
+ <command>make installworld</command></title>
+
+ <para>Η επαναμεταγλώττιση του βασικού συστήματος δεν θα ενημερώσει
+ ορισμένους καταλόγους (ειδικότερα τους
+ <filename>/etc</filename>, <filename>/var</filename> και
+ <filename>/usr</filename>) με τα νέα ή αλλαγμένα αρχεία
+ ρυθμίσεων.</para>
+
+ <para>Ο απλούστερος τρόπος για να ενημερώσετε τα αρχεία αυτά είναι να
+ χρησιμοποιήσετε το &man.mergemaster.8;, αν και μπορείτε να το κάνετε
+ και χειροκίνητα αν προτιμάτε. Άσχετα από τον τρόπο που θα
+ προτιμήσετε, βεβαιωθείτε ότι έχετε πάρει αντίγραφο ασφαλείας του
+ <filename>/etc</filename> σε περίπτωση που κάτι πάει στραβά.</para>
+
+ <sect3 id="mergemaster">
+ <sect3info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect3info>
+
+ <title><command>mergemaster</command></title>
+ <indexterm><primary><command>mergemaster</command></primary></indexterm>
+
+ <para>Το βοηθητικό πρόγραμμα &man.mergemaster.8; είναι ένα Bourne
+ script το οποίο θα σας βοηθήσει να καθορίσετε τις διαφορές μεταξύ
+ των εγκατεστημένων στο <filename>/etc</filename> αρχείων ρυθμίσεων,
+ και των αντίστοιχων στο δέντρο πηγαίου κώδικα στο
+ <filename>/usr/src/etc</filename>. Αυτή είναι και η συνιστώμενη
+ λύση για να ενημερώσετε τα αρχεία ρυθμίσεων του συστήματος με τυχόν
+ αλλαγές που έχουν γίνει στον νέο πηγαίο κώδικα.</para>
+
+ <para>Για να ξεκινήσετε, απλώς γράψτε <command>mergemaster</command>
+ στην προτροπή της γραμμής εντολών και παρακολουθήστε την καθώς
+ λειτουργεί. Το <command>mergemaster</command> θα δημιουργήσει ένα
+ προσωρινό περιβάλλον root, από το <filename>/</filename> και κάτω,
+ και θα το γεμίσει με διάφορα αρχεία ρυθμίσεων του συστήματος. Έπειτα
+ θα γίνει σύγκριση αυτών των αρχείων με τα αντίστοιχα που βρίσκονται
+ ήδη εγκατεστημένα στο σύστημα σας. Στο σημείο αυτό, θα σας δείξει
+ τα αρχεία που διαφέρουν με μορφή &man.diff.1;, όπου οι γραμμές που
+ έχουν τροποποιηθεί ή είναι νέες θα φαίνονται με ένα
+ <option>+</option>, ενώ με το <option>-</option> θα φαίνονται οι
+ γραμμές που είτε αφαιρούνται εντελώς ή που αντικαθίστανται από μια
+ νέα γραμμή. Δείτε τη σελίδα manual του &man.diff.1; για περισσότερες
+ πληροφορίες σχετικά με τη σύνταξη του &man.diff.1; και για τον τρόπο
+ με τον οποίο φαίνονται οι διαφορές μεταξύ των αρχείων.</para>
+
+ <para>Το &man.mergemaster.8; θα σας δείξει έπειτα κάθε αρχείο που
+ παρουσιάζει διαφορές, και στο σημείο αυτό θα έχετε την δυνατότητα
+ είτε να διαγράψετε το νέο αρχείο (το οποίο αναφέρεται ως προσωρινό
+ αρχείο), είτε να εγκαταστήσετε το προσωρινό αρχείο χωρίς να κάνετε
+ σε αυτό καμιά αλλαγή, είτε να συγχωνεύσετε τις αλλαγές των δύο
+ αρχείων, ή τέλος να ξαναδείτε τις διαφορές μέσω της
+ &man.diff.1;.</para>
+
+ <para>Αν επιλέξετε να διαγράψετε το προσωρινό αρχείο, το
+ &man.mergemaster.8; θα καταλάβει ότι επιθυμείτε να διατηρήσετε το
+ τρέχον αρχείο σας χωρίς αλλαγές, και να διαγράψετε τη νέα έκδοση.
+ Η επιλογή αυτή γενικά δεν συνίσταται, εκτός αν δεν βλέπετε κανένα
+ λόγο να αλλάξετε το τρέχον αρχείο. Μπορείτε να δείτε βοήθεια
+ οποιαδήποτε στιγμή κατά τη διάρκεια της διαδικασίας, πληκτρολογώντας
+ <keycap>?</keycap> στην προτροπή του &man.mergemaster.8;. Αν
+ αποφασίσετε να παραλείψετε κάποιο αρχείο, αυτό θα εμφανιστεί
+ ξανά μετά το τέλος όλων των άλλων αρχείων.</para>
+
+ <para>Αν επιλέξετε να εγκαταστήσετε το προσωρινό αρχείο χωρίς αλλαγές,
+ αυτό θα αντικαταστήσει το ήδη εγκατεστημένο σας αρχείο. Αυτή είναι
+ και η καλύτερη επιλογή για τα αρχεία τα οποία δεν έχετε αλλάξει
+ εσείς χειροκίνητα.</para>
+
+ <para>Αν επιλέξετε να συγχωνεύσετε τα δύο αρχεία, θα εμφανιστεί ένας
+ επεξεργαστής κειμένου με τα περιεχόμενα και των δύο αρχείων.
+ Μπορείτε τώρα να τα συγχωνεύσετε παρατηρώντας ταυτόχρονα και τα δύο
+ αρχεία δίπλα-δίπλα, και επιλέγοντας τμήματα και από τα δύο για να
+ δημιουργήσετε την τελική έκδοση. Κατά τη σύγκριση αυτή, μπορείτε να
+ χρησιμοποιήσετε το πλήκτρο <keycap>l</keycap> για να επιλέξετε τα
+ περιεχόμενα που φαίνονται στην αριστερή πλευρά, ή το
+ <keycap>r</keycap> για τα αντίστοιχα περιεχόμενα στη δεξιά.
+ Το τελικό αποτέλεσμα θα είναι ένα αρχείο που θα αποτελείται από
+ τμήματα και των δύο αρχείων, και το οποίο μπορείτε να εγκαταστήσετε.
+ Η επιλογή αυτή χρησιμοποιείται συνήθως για αρχεία των οποίων το
+ περιεχόμενο έχει μεταβληθεί από το χρήστη.</para>
+
+ <para>Αν επιλέξετε να δείτε ξανά τις διαφορές μέσω της &man.diff.1;,
+ αυτές θα εμφανιστούν ακριβώς όπως έγινε και πριν
+ σας ρωτήσει το &man.mergemaster.8; να επιλέξετε τι θέλετε να κάνετε
+ με το αρχείο.</para>
+
+ <para>Μόλις ολοκληρωθεί η λειτουργία του &man.mergemaster.8; στα αρχεία
+ συστήματος, θα σας ρωτήσει για άλλες επιλογές.
+ Το &man.mergemaster.8; ίσως σας ρωτήσει αν θέλετε να αναδημιουργήσετε
+ το αρχείο των κωδικών (password file), και θα τελειώσει δίνοντας σας
+ την επιλογή να διαγράψετε τυχόν προσωρινά αρχεία που δημιουργήθηκαν
+ κατά την διαδικασία.</para>
+ </sect3>
+
+ <sect3>
+ <title>Χειροκίνητη Ενημέρωση</title>
+
+ <para>Αν επιθυμείτε να κάνετε την ενημέρωση χειροκίνητα, δεν μπορείτε
+ απλώς να αντιγράψετε τα αρχεία από τον κατάλογο
+ <filename>/usr/src/etc</filename> στον <filename>/etc</filename> και
+ να περιμένετε ότι το σύστημα σας θα λειτουργήσει σωστά. Κάποια από
+ αυτά τα αρχεία θα πρέπει να <quote>εγκατασταθούν</quote> πρώτα. Αυτό
+ συμβαίνει επειδή ο κατάλογος <filename>/usr/src/etc</filename>
+ <emphasis>δεν είναι</emphasis> κανονικό αντίγραφο του
+ <filename>/etc</filename>. Επιπρόσθετα, υπάρχουν αρχεία τα οποία
+ πρέπει να βρίσκονται στον κατάλογο <filename>/etc</filename>, αλλά
+ δεν υπάρχουν στον <filename>/usr/src/etc</filename>.</para>
+
+ <para>Αν χρησιμοποιείτε το &man.mergemaster.8; (όπως και συνίσταται),
+ μπορείτε να διαβάσετε κατευθείαν την <link
+ linkend="updating-upgrading-rebooting">επόμενη ενότητα</link>.</para>
+
+ <para>Ο απλούστερος τρόπος να το κάνετε αυτό χειροκίνητα, είναι να
+ εγκαταστήσετε τα αρχεία σε ένα νέο κατάλογο, και έπειτα να τα
+ εξετάσετε ένα-ένα ψάχνοντας για τις αλλαγές.</para>
+
+ <warning>
+ <title>Κρατήστε Ένα Αντίγραφο Ασφαλείας του Καταλόγου
+ <filename>/etc</filename></title>
+
+ <para>Αν και θεωρητικά, τίποτα δεν πρόκειται να πειράξει αυτό τον
+ κατάλογο αυτόματα, είναι πάντα καλύτερα να είμαστε σίγουροι.
+ Για το λόγο αυτό, αντιγράψτε τον υπάρχοντα κατάλογο
+ <filename>/etc</filename> σε κάποιο ασφαλές μέρος. Χρησιμοποιήστε
+ μια εντολή όπως η παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput></screen>
+
+ <para>Η επιλογή <option>-R</option> πραγματοποιεί αναδρομική
+ αντιγραφή, ενώ η <option>-p</option> διατηρεί τα δικαιώματα, την
+ ιδιοκτησία, τις ημερομηνίες των αρχείων, κ.ο.κ.</para>
+ </warning>
+
+ <para>θα πρέπει να δημιουργήσετε μια ψευτο-δομή καταλόγων για να
+ εγκαταστήσετε το νέο κατάλογο <filename>/etc</filename> και άλλα
+ αρχεία. Μια λογική επιλογή είναι ο κατάλογος
+ <filename>/var/tmp/root</filename>, και κάτω από αυτόν, θα πρέπει
+ επίσης να δημιουργήσετε και μια ολόκληρη σειρά από τους υποκαταλόγους
+ που απαιτούνται.</para>
+
+ <screen>&prompt.root; <userinput>mkdir /var/tmp/root</userinput>
+&prompt.root; <userinput>cd /usr/src/etc</userinput>
+&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen>
+
+ <para>Οι παραπάνω εντολές θα δημιουργήσουν την απαιτούμενη δομή
+ καταλόγων και θα εγκαταστήσουν τα αρχεία. Μεγάλο μέρος των
+ υποκαταλόγων που έχουν δημιουργηθεί κάτω από τον
+ <filename>/var/tmp/root</filename> είναι άδειοι, και πρέπει να
+ διαγραφούν. Ο απλούστερος τρόπος για να γίνει αυτό, φαίνεται
+ παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>cd /var/tmp/root</userinput>
+&prompt.root; <userinput>find -d . -type d | xargs rmdir 2&gt;/dev/null</userinput></screen>
+
+ <para>Αυτό θα διαγράψει όλους τους άδειους υποκαταλόγους. (Η έξοδος
+ σφάλματος ανακατευθύνεται στο <filename>/dev/null</filename> ώστε
+ να μην εμφανίζονται στην οθόνη προειδοποιήσεις για καταλόγους που
+ δεν είναι άδειοι.)</para>
+
+ <para>Τώρα, ο <filename>/var/tmp/root</filename> περιέχει όλα τα αρχεία
+ που θα πρέπει να τοποθετηθούν σε κατάλληλες θέσεις κάτω από τον
+ <filename>/</filename>. Θα πρέπει τώρα να διατρέξετε καθένα από
+ αυτά τα αρχεία, και να καθορίσετε πως καθένα από αυτά διαφέρει από
+ το αντίστοιχο υπάρχον (εγκατεστημένο) αρχείο.</para>
+
+ <para>Σημειώστε ότι κάποια από τα αρχεία τα οποία έχουν
+ εγκατασταθεί στον <filename>/var/tmp/root</filename> έχουν μια
+ αρχική <quote>.</quote>. Τη στιγμή που γράφονται αυτές οι γραμμές,
+ τα μόνα αρχεία στα οποία συμβαίνει αυτό είναι τα αρχεία εκκίνησης
+ του κελύφους στον κατάλογο <filename>/var/tmp/root/</filename> και
+ <filename>/var/tmp/root/root/</filename>, αν και μπορεί να υπάρχουν
+ και άλλα (ανάλογα με το πότε διαβάζετε το κείμενο). Βεβαιωθείτε ότι
+ χρησιμοποιείτε την εντολή <command>ls -a</command> για να τα δείτε
+ όλα.</para>
+
+ <para>Ο απλούστερος τρόπος για να συγκρίνετε δύο αρχεία, είναι να
+ χρησιμοποιήσετε την εντολή &man.diff.1;:</para>
+
+ <screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
+
+ <para>Η παραπάνω εντολή θα σας δείξει τις διαφορές μεταξύ του αρχείου
+ <filename>/etc/shells</filename> και του νέου αρχείου
+ <filename>/var/tmp/root/etc/shells</filename>. Χρησιμοποιήστε τις
+ διαφορές αυτές για να αποφασίσετε αν θα πρέπει να συγχωνεύσετε τις
+ αλλαγές που έχετε κάνει, ή απλώς να αντιγράψετε το παλιό σας αρχείο
+ πάνω από το νέο.</para>
+
+ <tip>
+ <title>Προσθέστε την Ημερομηνία στο Όνομα του Νέου Root Καταλόγου,
+ (<filename>/var/tmp/root</filename>) Ώστε να Μπορείτε Εύκολα να
+ Συγκρίνετε Διαφορετικές Εκδόσεις Μεταξύ τους</title>
+
+ <para>Αν μεταγλωττίζετε συχνά το βασικό σύστημα, θα πρέπει επίσης
+ να ενημερώνετε συχνά τον κατάλογο <filename>/etc</filename>, το
+ οποίο μπορεί να είναι ενοχλητικό.</para>
+
+ <para>Μπορείτε να επιταχύνετε αυτή τη διαδικασία, τηρώντας ένα
+ αντίγραφο του τελευταίου σετ αλλαγμένων αρχείων τα οποία
+ συγχωνεύσατε στον κατάλογο <filename>/etc</filename>. Η παρακάτω
+ διαδικασία θα σας δώσει μια ιδέα για το πως μπορεί να
+ γίνει αυτό:</para>
+
+ <procedure>
+ <step>
+ <para>Μεταγλωττίστε το βασικό σύστημα όπως κάνετε συνήθως. Όταν
+ θέλετε να ενημερώσετε τον <filename>/etc</filename> και τους
+ άλλους καταλόγους, δώστε στον κατάλογο προορισμού ένα όνομα
+ βασισμένο στην τρέχουσα ημερομηνία. Αν το κάνατε αυτό
+ στις 14 Φεβρουαρίου 1998, θα γράφατε κάτι σαν το
+ παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput>
+&prompt.root; <userinput>cd /usr/src/etc</userinput>
+&prompt.root; <userinput>make DESTDIR=/var/tmp/root-19980214 \
+ distrib-dirs distribution</userinput></screen>
+ </step>
+
+ <step>
+ <para>Συγχωνεύστε τις αλλαγές από αυτό τον κατάλογο, με τον τρόπο
+ που περιγράψαμε παραπάνω.</para>
+
+ <para><emphasis>Μην διαγράψετε</emphasis> τον κατάλογο
+ <filename>/var/tmp/root-19980214</filename> όταν τελειώσετε
+ με την παραπάνω διαδικασία.</para>
+ </step>
+
+ <step>
+ <para>Όταν κατεβάσετε την τελευταία έκδοση του πηγαίου κώδικα και
+ τον μεταγλωττίσετε ξανά, ακολουθήστε το βήμα 1. Αυτό θα σας
+ δώσει ένα κατάλογο που μπορεί να ονομάζεται
+ <filename>/var/tmp/root-19980221</filename> (αν ανάμεσα στις
+ δύο μεταγλωττίσεις παρεμβάλλεται διάστημα μιας
+ εβδομάδας).</para>
+ </step>
+
+ <step>
+ <para>Μπορείτε τώρα να δείτε τις διαφορές που υπάρχουν ανάμεσα
+ στις δύο εβδομάδες, χρησιμοποιώντας την εντολή
+ &man.diff.1; σε αναδρομική λειτουργία για να δημιουργήσετε τις
+ διαφορές μεταξύ των δύο καταλόγων:</para>
+
+ <screen>&prompt.root; <userinput>cd /var/tmp</userinput>
+&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen>
+
+ <para>Τυπικά, αυτό το σετ αλλαγών θα είναι πολύ μικρότερο από
+ αυτό μεταξύ του <filename>/var/tmp/root-19980221/etc</filename>
+ και του <filename>/etc</filename>. Καθώς αυτό το σετ αλλαγών
+ είναι μικρότερο, είναι και πιο εύκολο να εφαρμόσετε αυτές
+ τις αλλαγές στον κατάλογο <filename>/etc</filename>.</para>
+ </step>
+
+ <step>
+ <para>Μπορείτε τώρα να διαγράψετε τον παλιότερο από τους δύο
+ καταλόγους <filename>/var/tmp/root-*</filename>:</para>
+
+ <screen>&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput></screen>
+ </step>
+
+ <step>
+ <para>Επαναλάβετε αυτή τη διαδικασία κάθε φορά που θέλετε να
+ συγχωνεύσετε τις αλλαγές στον κατάλογο
+ <filename>/etc</filename>.</para>
+ </step>
+ </procedure>
+
+ <para>Μπορείτε επίσης να χρησιμοποιήσετε την εντολή &man.date.1; για
+ να αυτοματοποιήσετε την δημιουργία των ονομάτων καταλόγων:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput></screen>
+ </tip>
+ </sect3>
+ </sect2>
+
+ <sect2 id="updating-upgrading-rebooting">
+ <title>Επανεκκίνηση</title>
+
+ <para>Η διαδικασία έχει πλέον ολοκληρωθεί. Αφού επαληθεύσετε ότι όλα
+ βρίσκονται στις σωστές θέσεις, μπορείτε να επανεκκινήσετε το σύστημα.
+ Μια απλή εντολή &man.shutdown.8; είναι επαρκής:</para>
+
+ <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Ολοκλήρωση</title>
+
+ <para>Έχετε πλέον αναβαθμίσει το &os; σύστημα σας. Συγχαρητήρια.</para>
+
+ <para>Αν τα πράγματα δεν πήγαν εντελώς σωστά, είναι εύκολο να
+ μεταγλωττίσετε ξανά οποιοδήποτε τμήμα του συστήματος.
+ Για παράδειγμα, αν διαγράψετε κατά λάθος το
+ <filename>/etc/magic</filename> ως μέρος μιας αναβάθμισης ή
+ συγχώνευσης του <filename>/etc</filename>, η εντολή &man.file.1;
+ θα σταματήσει να λειτουργεί. Στην περίπτωση αυτή, η διόρθωση είναι
+ να εκτελέσετε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
+&prompt.root; <userinput>make all install</userinput></screen>
+ </sect2>
+
+ <sect2 id="updating-questions">
+ <title>Ερωτήσεις</title>
+
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>Πρέπει να μεταγλωττίσω ξανά ολόκληρο το βασικό σύστημα σε
+ κάθε αλλαγή;</para>
+ </question>
+
+ <answer>
+ <para>Δεν υπάρχει εύκολη απάντηση σε αυτό το ερώτημα, καθώς
+ εξαρτάται από τη φύση της αλλαγής. Για παράδειγμα, αν
+ εκτελέσετε το <application>CVSup</application>, και δείτε ότι
+ ενημερώθηκαν τα παρακάτω αρχεία:</para>
+
+ <screen><filename>src/games/cribbage/instr.c</filename>
+<filename>src/games/sail/pl_main.c</filename>
+<filename>src/release/sysinstall/config.c</filename>
+<filename>src/release/sysinstall/media.c</filename>
+<filename>src/share/mk/bsd.port.mk</filename></screen>
+
+ <para>Το πιθανότερο είναι ότι δεν χρειάζεται να μεταγλωττίσετε
+ ξανά όλο το βασικό σύστημα. Μπορείτε απλώς να μεταβείτε στους
+ σχετικούς υποκαταλόγους και να εκτελέσετε το
+ <command>make all install</command>, και θα έχετε τελειώσει.
+ Αν όμως υπάρχει κάποια σημαντική αλλαγή, για παράδειγμα το
+ <filename>src/lib/libc/stdlib</filename>, θα πρέπει είτε να
+ επαναμεταγλωττίσετε το βασικό σύστημα, ή τουλάχιστον αυτά τα
+ κομμάτια τα οποία είναι στατικά συνδεδεμένα (όπως και οτιδήποτε
+ άλλο έχετε προσθέσει εσείς και το οποίο είναι στατικά
+ συνδεδεμένο).</para>
+
+ <para>Τελικά, η απόφαση είναι δική σας. Μπορεί να είστε
+ ικανοποιημένος αν μεταγλωττίζετε το βασικό σύστημα κάθε δύο
+ βδομάδες, αφήνοντας τις αλλαγές να συγκεντρωθούν στη διάρκεια
+ αυτού του διαστήματος. Ή μπορεί να θέλετε να μεταγλωττίσετε
+ μόνο τις αλλαγές, αν έχετε την πεποίθηση ότι μπορείτε να
+ εντοπίσετε όλες τις εξαρτήσεις τους.</para>
+
+ <para>Και φυσικά, όλα αυτά εξαρτώνται από το πόσο συχνά θέλετε να
+ ενημερώνετε το σύστημα σας, και από το αν ακολουθείτε το
+ &os.stable; ή το &os.current;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Η μεταγλώττιση μου απέτυχε με πλήθος μηνυμάτων signal 11
+ (ή λάθη με άλλα σήματα). Τι έχει συμβεί;</para>
+ </question>
+ <indexterm><primary>signal 11</primary></indexterm>
+
+ <answer>
+ <para>Αυτό συνήθως δείχνει προβλήματα υλικού. Η διαδικασία
+ μεταγλώττισης του βασικού συστήματος είναι ένας αποτελεσματικός
+ τρόπος να δοκιμάσετε το υλικό σας στα όρια του, και συχνά θα
+ δείξει προβλήματα που σχετίζονται με τη μνήμη. Το πιο σύνηθες
+ σύμπτωμα, είναι η απότομη διακοπή της μεταγλώττισης, με τον
+ μεταγλωττιστή να φαίνεται ότι έχει λάβει κάποιο μυστηριώδες
+ σήμα.</para>
+
+ <para>Ένα σίγουρο σημάδι για το παραπάνω, είναι να επανεκκινήσετε
+ τη διαδικασία, και αυτή να σταματήσει σε διαφορετικό
+ σημείο.</para>
+
+ <para>Στην περίπτωση αυτή, δεν υπάρχουν και πολλά που μπορείτε να
+ κάνετε, εκτός από το να αρχίσετε να αλλάζετε εξαρτήματα στο
+ μηχάνημα σας μέχρι να βρείτε αυτό που είναι υπαίτιο.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Μπορώ να διαγράψω το <filename>/usr/obj</filename> όταν
+ τελειώσω;</para>
+ </question>
+
+ <answer>
+ <para>Η σύντομη απάντηση είναι ναι.</para>
+
+ <para>Το <filename>/usr/obj</filename> περιέχει όλα τα
+ αντικειμενικά αρχεία που παράγονται κατά τη διάρκεια της
+ μεταγλώττισης. Συνήθως, ένα από τα πρώτα βήματα στην
+ διαδικασία <command>make buildworld</command> είναι η διαγραφή
+ αυτού του καταλόγου και η αναδημιουργία του. Στην περίπτωση
+ αυτή, το να κρατήσετε τον κατάλογο
+ <filename>/usr/obj</filename> αφού έχετε τελειώσει, δεν έχει
+ και πολύ νόημα, ενώ αν τον σβήσετε θα κερδίσετε ένα μεγάλο
+ κομμάτι ελεύθερου χώρου (την παρούσα στιγμή περίπου
+ 2&nbsp;GB).</para>
+
+ <para>Όμως, αν ξέρετε τι κάνετε, μπορείτε να οδηγήσετε το
+ <command>make buildworld</command> να παραλείψει αυτό το βήμα.
+ Αυτό θα επιταχύνει ιδιαίτερα τις νέες μεταγλωττίσεις, καθώς
+ τα περισσότερα τμήματα του πηγαίου κώδικα δεν θα χρειάζονται
+ ξανά μεταγλώττιση. Το μειονέκτημα είναι ότι ορισμένες φορές
+ εμφανίζονται προβλήματα που έχουν σχέση με όχι και τόσο
+ εμφανείς εξαρτήσεις, και μπορεί να οδηγήσουν σε μυστηριώδη
+ αποτυχία της μεταγλώττισης. Τέτοια προβλήματα συχνά δημιουργούν
+ <quote>θόρυβο</quote> στις λίστες του &os;, όταν κάποιος χρήστης
+ παραπονιέται ότι η μεταγλώττιση του αποτυγχάνει, χωρίς να
+ αντιλαμβάνεται ότι αυτό οφείλεται στην προσπάθεια του να
+ συντομεύσει την διαδικασία.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Μπορώ να συνεχίσω μια μεταγλώττιση που διέκοψα;</para>
+ </question>
+
+ <answer>
+ <para>Αυτό εξαρτάται από το πόσο έχετε προχωρήσει στη διαδικασία
+ μέχρι τη στιγμή που βρήκατε το πρόβλημα.</para>
+
+ <para><emphasis>Σε γενικές γραμμές</emphasis> (και αυτός δεν
+ είναι κανόνας που ισχύει πάντα), η διεργασία του
+ <command>make buildworld</command> μεταγλωττίζει νέα αντίγραφα
+ βασικών εργαλείων (όπως τα &man.gcc.1;, και &man.make.1;) καθώς
+ και των βιβλιοθηκών συστήματος. Έπειτα εγκαθιστώνται αυτά
+ τα εργαλεία και οι βιβλιοθήκες. Τα νέα εργαλεία και
+ βιβλιοθήκες χρησιμοποιούνται έπειτα για να επαναμεταγλωττίσουν
+ τους εαυτούς τους, και εγκαθίστανται ξανά. Ολόκληρο το σύστημα
+ (το οποίο τώρα περιλαμβάνει και τα συνηθισμένα προγράμματα
+ χρήστη όπως το &man.ls.1; ή το &man.grep.1;)
+ επαναμεταγλωττίζεται χρησιμοποιώντας τα νέα αρχεία του
+ συστήματος.</para>
+
+ <para>Αν βρίσκεστε στο τελευταίο στάδιο, το οποίο θα το γνωρίζετε
+ κοιτάζοντας την έξοδο που έχετε αποθηκεύσει, είναι σχετικά
+ ασφαλές να κάνετε:</para>
+
+ <screen><emphasis>&hellip; fix the problem &hellip;</emphasis>
+&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make -DNO_CLEAN all</userinput></screen>
+
+ <para>Με τον τρόπο αυτό δεν θα αναιρέσετε την εργασία που έχει
+ γίνει από το προηγούμενο
+ <command>make buildworld</command>.</para>
+
+ <para>Αν δείτε το μήνυμα:</para>
+
+ <screen>--------------------------------------------------------------
+Building everything..
+--------------------------------------------------------------</screen>
+
+ <para>στην έξοδο της εντολής <command>make buildworld</command>,
+ τότε είναι μάλλον ασφαλές να προχωρήσετε με αυτό τον
+ τρόπο.</para>
+
+ <para>Αν δεν δείτε αυτό το μήνυμα, ή αν δεν είστε σίγουρος, τότε
+ είναι καλύτερα να κάνετε πλήρη μεταγλώττιση παρά να μετανιώνετε
+ αργότερα.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Πως μπορώ να επιταχύνω τη μεταγλώττιση του βασικού
+ συστήματος;</para>
+ </question>
+
+ <answer>
+ <itemizedlist>
+ <listitem>
+ <para>Εκτελέστε την σε κατάσταση ενός χρήστη.</para>
+ </listitem>
+
+ <listitem>
+ <para>Βάλτε τους καταλόγους <filename>/usr/src</filename>
+ και <filename>/usr/obj</filename> σε διαφορετικά συστήματα
+ αρχείων τα οποία βρίσκονται και σε διαφορετικούς φυσικούς
+ δίσκους. Αν είναι δυνατόν, βάλτε αυτούς τους δίσκους σε
+ χωριστούς ελεγκτές.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ακόμα καλύτερα, μοιράστε αυτά τα συστήματα αρχείων
+ σε πολλαπλούς δίσκους, χρησιμοποιώντας το πρόγραμμα
+ οδήγησης &man.ccd.4; (concatenated disk driver, οδήγησης
+ συνενωμένων δίσκων).</para>
+ </listitem>
+
+ <listitem>
+ <para>Απενεργοποιήστε το profiling (θέστε την μεταβλητή
+ <quote>NO_PROFILE=true</quote> στο
+ <filename>/etc/make.conf</filename>). Είναι σχεδόν σίγουρο
+ ότι δεν το χρειάζεστε.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στο αρχείο <filename>/etc/make.conf</filename>, θέστε
+ το <makevar>CFLAGS</makevar> σε κάτι όπως
+ <option>-O -pipe</option>. Η βελτιστοποίηση
+ <option>-O2</option> χρειάζεται αρκετά περισσότερο χρόνο,
+ και η διαφορά απόδοσης μεταξύ
+ <option>-O</option> και <option>-O2</option> είναι συνήθως
+ αμελητέα. Το <option>-pipe</option> επιτρέπει στον
+ μεταγλωττιστή να χρησιμοποιήσει pipes για επικοινωνία αντί
+ για προσωρινά αρχεία. Αυτό καταναλώνει περισσότερη μνήμη,
+ αλλά χρησιμοποιεί λιγότερο το σκληρό δίσκο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Χρησιμοποιήστε την επιλογή
+ <option>-j<replaceable>n</replaceable></option> στο
+ &man.make.1; ώστε να εκτελούνται παράλληλα πολλαπλές
+ διεργασίες μεταγλώττισης. Αυτό συνήθως βοηθάει ακόμα και
+ σε περίπτωση που έχετε μηχάνημα με ένα επεξεργαστή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορείτε να προσαρτήσετε (ή να επαναπροσαρτήσετε) το
+ σύστημα αρχείων στο οποίο είναι αποθηκευμένο το
+ <filename>/usr/src</filename> με την επιλογή
+ <option>noatime</option>. Αυτό αποτρέπει την καταγραφή
+ ημερομηνίας / ώρας πρόσβασης στο σύστημα αρχείων. Κατά πάσα
+ πιθανότητα, δεν χρειάζεστε αυτή την πληροφορία έτσι και
+ αλλιώς.</para>
+
+ <screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
+
+ <warning>
+ <para>Το παράδειγμα προϋποθέτει ότι έχετε το
+ <filename>/usr/src</filename> στο δικό του σύστημα
+ αρχείων. Αν αυτό δεν συμβαίνει (αν είναι μέρος του
+ <filename>/usr</filename> για παράδειγμα) θα χρειαστεί
+ να χρησιμοποιήσετε αυτό το σημείο προσάρτησης, και όχι
+ το <filename>/usr/src</filename>.</para>
+ </warning>
+ </listitem>
+
+ <listitem>
+ <para>Μπορείτε να προσαρτήσετε (ή να επαναπροσαρτήσετε) το
+ σύστημα αρχείων που περιέχει το
+ <filename>/usr/obj</filename> με την επιλογή
+ <option>async</option>. Με τον τρόπο αυτό, οι εγγραφές στο
+ δίσκο θα γίνονται ασύγχρονα. Με άλλα λόγια, οι εγγραφές
+ φαίνεται ότι ολοκληρώνονται άμεσα, ενώ η πραγματική εγγραφή
+ στο δίσκο γίνεται λίγα δευτερόλεπτα αργότερα. Αυτό
+ επιτρέπει την ομαδοποίηση των εγγραφών, το οποίο μπορεί να
+ προσφέρει δραματική βελτίωση απόδοσης.</para>
+
+ <warning>
+ <para>Να έχετε υπόψιν σας ότι αυτή η επιλογή μπορεί να
+ κάνει το σύστημα αρχείων σας πολύ πιο ευαίσθητο. Με την
+ επιλογή αυτή, υπάρχει αυξημένη πιθανότητα το σύστημα
+ αρχείων να βρεθεί σε μη
+ επισκευάσιμη κατάσταση αν υπάρξει διακοπή
+ ρεύματος.</para>
+
+ <para>Αν το σύστημα αρχείων περιέχει μόνο το
+ <filename>/usr/obj</filename>, το παραπάνω δεν είναι
+ πρόβλημα. Αν ωστόσο έχετε και άλλα πολύτιμα δεδομένα
+ στο ίδιο σύστημα αρχείων, σιγουρευτείτε ότι έχετε
+ ενημερωμένα αντίγραφα ασφαλείας πριν ενεργοποιήσετε αυτή
+ την επιλογή.</para>
+ </warning>
+
+ <screen>&prompt.root; <userinput>mount -u -o async /usr/obj</userinput></screen>
+
+ <warning>
+ <para>Όπως και προηγουμένως, αν το
+ <filename>/usr/obj</filename> δεν είναι σύστημα αρχείων
+ από μόνο του, αντικαταστήστε το στο παράδειγμα με το
+ όνομα του πραγματικού σημείου προσάρτησης.</para>
+ </warning>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Τι να κάνω αν κάτι πάει στραβά;</para>
+ </question>
+
+ <answer>
+ <para>Σιγουρευτείτε ότι το περιβάλλον σας δεν έχει υπολείμματα
+ από προηγούμενες μεταγλωττίσεις. Αυτό είναι αρκετά απλό.</para>
+
+ <screen>&prompt.root; <userinput>chflags -R noschg /usr/obj/usr</userinput>
+&prompt.root; <userinput>rm -rf /usr/obj/usr</userinput>
+&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make cleandir</userinput>
+&prompt.root; <userinput>make cleandir</userinput></screen>
+
+ <para>Ναι, θα πρέπει να εκτελέσετε το
+ <command>make cleandir</command> δύο φορές.</para>
+
+ <para>Επανεκκινήστε έπειτα όλη τη διαδικασία, ξεκινώντας με το
+ <command>make buildworld</command>.</para>
+
+ <para>Αν έχετε ακόμα προβλήματα, στείλτε το μήνυμα λάθους και την
+ έξοδο του <command>uname -a</command> στην &a.questions;. Να
+ είστε προετοιμασμένοι να απαντήσετε επιπλέον ερωτήσεις σχετικά
+ με την εγκατάσταση σας!</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect2>
+ </sect1>
+
+ <sect1 id="make-delete-old">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Anton</firstname>
+ <surname>Shterenlikht</surname>
+ <contrib>Βασισμένο σε σημειώσεις που παρείχε ο </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Διαγραφή Παρωχημένων Αρχείων, Καταλόγων και Βιβλιοθηκών</title>
+ <indexterm>
+ <primary>Delete obsolete files, directories and libraries</primary>
+ </indexterm>
+
+ <para>Κατά την συνεχή ανάπτυξη του &os; είναι φυσιολογικό κάποια αρχεία
+ κατά καιρούς να χαρακτηρίζονται ως παρωχημένα. Αυτό μπορεί να συμβεί
+ αν οι λειτουργίες που παρείχαν υλοποιούνται πλέον διαφορετικά, αν ο
+ ο αριθμός έκδοσης της βιβλιοθήκης έχει αλλάξει ή ακόμα και αν έχει
+ διαγραφεί οριστικά από το σύστημα. Στα αρχεία αυτά περιλαμβάνονται
+ επίσης βιβλιοθήκες κατάλογοι που πρέπει να διαγραφούν όταν γίνεται
+ αναβάθμιση του συστήματος. Το όφελος για το χρήστη είναι ότι το
+ σύστημα του δεν γεμίζει από παλιά αρχεία τα οποία καταλαμβάνουν
+ άχρηστο χώρο στο μέσο αποθήκευσης και στο backup. Επιπρόσθετα, αν
+ κάποια παλιά βιβλιοθήκη είχε προβλήματα σταθερότητας ή ασφάλειας
+ θα πρέπει να την αναβαθμίσετε για να κρατήσετε το σύστημα σας
+ σταθτερό και ασφαλές. Τα αρχεία, οι κατάλογοι και οι βιβλιοθήκες που
+ θεωρούνται παρωχημένες φαίνονται στο
+ <filename>/usr/src/ObsoleteFiles.inc</filename>. Οι παρακάτω οδηγίες
+ θα σας βοηθήσουν να διαγράψετε αυτά τα αρχεία κατά τη διαδικασία
+ αναβάθμισης του συστήματος.</para>
+
+ <para>Υποθέτουμε ότι χρησιμοποιείτε τα βήματα που περιγράφονται στο
+ <xref linkend="canonical-build">. Μετά την επιτυχή εκτέλση της εντολής
+ <command>make <maketarget>installworld</maketarget></command> και του
+ <command>mergemaster</command> που ακολουθεί, θα πρέπει να ελέγξετε για
+ παρωχημένα αρχεία και βιβλιοθήκες όπως φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make check-old</userinput></screen>
+
+ <para>Αν βρεθούν παρωχημένα αρχεία, μπορείτε να τα διαγράψετε με τις
+ παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>make delete-old</userinput></screen>
+
+ <tip>
+ <para>Δείτε το <filename>/usr/src/Makefile</filename> για περισσότερες
+ ενδιαφέρουσες επιλογές της <command>make</command>.</para>
+ </tip>
+
+ <para>Για κάθε αρχείο που θα διαγραφεί, θα σας ζητηθεί να επιβεβαιώσετε
+ την ενέργεια. Μπορείτε να παραλείψετε την ερώτηση και να αφήσετε το
+ σύστημα να διαγράψει αυτά τα αρχεία αυτόματα χρησιμοποιώντας την
+ μεταβλητή του make <makevar>BATCH_DELETE_OLD_FILES</makevar> με τον
+ τρόπο που φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
+
+ <warning>
+ <title>Προειδοποίηση</title>
+
+ <para>Η διαγραφή παρωχημένων αρχείων, θα προκαλέσει δυσλειτουργία των
+ εφαρμογών που εξακολουθούν να βασίζονται σε αυτά. Αυτό συμβαίνει
+ ιδιαίτερα σε παλιές βιβλιοθήκες. Στις περισσότερες περιπτώσεις, θα
+ πρέπει να επαναμεταγλωττίσετε τα προγράμματα, ports ή βιβλιοθήκες που
+ χρησιμοποιούσαν την παλιά βιβλιοθήκη πριν εκτελέσετε την εντολή
+ <command>make <maketarget>delete-old-libs</maketarget></command>.</para>
+ </warning>
+
+ <para>Μπορείτε να βρείτε προγράμματα που ελέγχουν τις εξαρτήσεις των
+ κοινόχρηστων βιβλιοθηκών στη Συλλογή των Ports, στο <filename
+ role="package">sysutils/libchk</filename> ή <filename
+ role="package">sysuilts/bsdadminscripts</filename>.</para>
+
+ <para>Οι παρωχημένες κοινόχρηστες βιβλιοθήκες μπορούν να δημιουργήσουν
+ προβλήματα λόγω συγκρούσεων με νεώτερες εκδόσεις. Σε αυτές τις
+ περιπτώσεις, θα δείτει μηνύματα όπως τα παρακάτω:</para>
+
+ <screen>/usr/bin/ld: warning libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5
+/usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so may conflict with librpcsvc.so.5</screen>
+
+ <para>Για να επιλύσετε τέτοιου είδους προβλήματα, βρείτε ποιο port
+ εγκατέστησε την βιβλιοθήκη:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info -W /usr/local/lib/libtiff.so</userinput>
+/usr/local/lib/libtiff.so was installed by package tiff-3.9.4
+&prompt.root; <userinput>pkg_info -W /usr/local/lib/libXext.so</userinput>
+/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1</screen>
+
+ <para>Έπειτα, απεγκαταστήστε, επαναμεταγλωττίστε και επανεγκατασήστε το
+ port. Για να αυτοματοποιήσετε αυτή τη διαδικασία μπορείτε να
+ χρησιμοποιήσετε τα βοηθητικά προγράμματα <filename
+ role="package">ports-mgmt/portmaster</filename> και <filename
+ role="package">ports-mgmt/portupgrade</filename>. Αφού βεβαιωθείτε
+ ότι οι παλιές βιβλιοθήκες δεν χρησιμοποιούνται πλέον από κανένα
+ πρόγραμμα, μπορείτε να τις διαγράψετε με την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
+ </sect1>
+
+ <sect1 id="small-lan">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Mike</firstname>
+ <surname>Meyer</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Διαδικασία για Πολλαπλά Μηχανήματα</title>
+ <indexterm>
+ <primary>NFS</primary>
+ <secondary>installing multiple machines</secondary>
+ </indexterm>
+
+ <para>Αν έχετε πολλαπλά μηχανήματα στα οποία πρόκειται να χρησιμοποιήσετε
+ το ίδιο δέντρο πηγαίου κώδικα, είναι σπατάλη πόρων (δίσκου, δικτύου και
+ επεξεργαστή) να επαναλαμβάνετε σε όλα τη διαδικασία ανάκτησης και
+ μεταγλώττισης. Η λύση είναι να ορίσετε ένα μηχάνημα να εκτελεί το
+ μεγαλύτερο μέρος της εργασίας, ενώ τα υπόλοιπα θα μπορούν να την
+ ανακτούν μέσω NFS. Στην ενότητα αυτή θα παρουσιάσουμε ένα τρόπο με
+ τον οποίο μπορεί να γίνει αυτό.</para>
+
+ <sect2 id="small-lan-preliminaries">
+ <title>Προκαταρκτικά</title>
+
+ <para>Πρώτα από όλα, αναγνωρίστε το σετ των μηχανημάτων στα οποία
+ σκοπεύετε να χρησιμοποιήσετε τα ίδια εκτελέσιμα. Θα ονομάσουμε αυτή
+ την ομάδα <emphasis>σετ μεταγλώττισης</emphasis>. Κάθε μηχάνημα
+ μπορεί να έχει δικό του προσαρμοσμένο πυρήνα, αλλά θα έχουν όλα τα
+ ίδια εκτελέσιμα userland. Από το σετ αυτό, επιλέξτε ένα μηχάνημα το
+ οποίο θα γίνει το <emphasis>μηχάνημα μεταγλώττισης</emphasis>.
+ Θα είναι το μηχάνημα στο οποίο θα μεταγλωττίζεται το βασικό σύστημα
+ και ο πυρήνας. Το ιδανικό είναι να επιλέξετε ένα γρήγορο μηχάνημα,
+ στο οποίο να υπάρχει αρκετός ελεύθερος χρόνος στον επεξεργαστή για να
+ εκτελεί τα <command>make buildworld</command> και
+ <command>make buildkernel</command>. Θα πρέπει επίσης να επιλέξετε
+ ένα <emphasis>μηχάνημα δοκιμών</emphasis> στο οποίο θα δοκιμάζετε τις
+ ενημερώσεις λογισμικού πριν τις μεταφέρετε στην παραγωγή. Μπορεί να
+ είναι και το ίδιο το μηχάνημα μεταγλώττισης, αλλά αυτό δεν είναι
+ απαραίτητο.</para>
+
+ <para>Όλα τα μηχανήματα στο σετ μεταγλώττισης χρειάζεται να
+ προσαρτήσουν το <filename>/usr/obj</filename> και το
+ <filename>/usr/src</filename> από το ίδιο μηχάνημα, και στο ίδιο
+ σημείο προσάρτησης. Το ιδανικό είναι αυτά τα δύο συστήματα αρχείων
+ να βρίσκονται σε διαφορετικό φυσικό δίσκο στο μηχάνημα μεταγλώττισης,
+ αλλά μπορείτε να τα προσαρτήσετε μέσω NFS ακόμα και σε αυτό το
+ μηχάνημα. Αν έχετε πολλαπλά σετ μεταγλώττισης, το
+ <filename>/usr/src</filename> θα πρέπει να βρίσκεται σε ένα από τα
+ μηχανήματα μεταγλώττισης, και να προσαρτάται στα υπόλοιπα μέσω
+ NFS.</para>
+
+ <para>Τέλος, βεβαιωθείτε ότι τα αρχεία
+ <filename>/etc/make.conf</filename> και
+ <filename>/etc/src.conf</filename> σε όλα τα μηχανήματα του σετ
+ μεταγλώττισης, είναι ίδια με τα αντίστοιχα στο μηχάνημα μεταγλώττισης.
+ Αυτό σημαίνει ότι το μηχάνημα μεταγλώττισης θα πρέπει να
+ μεταγλωττίζει όλα τα τμήματα του βασικού συστήματος τα οποία θα
+ εγκατασταθούν σε κάθε μηχάνημα του σετ. Επίσης, σε κάθε μηχάνημα
+ στο σετ μεταγλώττισης θα πρέπει να οριστεί το όνομα του δικού του
+ προσαρμοσμένου πυρήνα μέσω της μεταβλητής
+ <makevar>KERNCONF</makevar> στο <filename>/etc/make.conf</filename>,
+ ενώ και το μηχάνημα μεταγλώττισης θα πρέπει να έχει μια λίστα όλων
+ των άλλων στο <makevar>KERNCONF</makevar>, ξεκινώντας από το δικό
+ του. Το μηχάνημα μεταγλώττισης, θα πρέπει να έχει τα αρχεία ρύθμισης
+ του πυρήνα όλων των άλλων μηχανημάτων στον κατάλογο
+ <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>
+ αν πρόκειται να μεταγλωττίζει τους πυρήνες τους.</para>
+ </sect2>
+
+ <sect2 id="small-lan-base-system">
+ <title>Το Βασικό Σύστημα</title>
+
+ <para>Έχοντας πραγματοποιήσει όλα τα παραπάνω, είστε έτοιμος να
+ μεταγλωττίσετε τα πάντα. Μεταγλωττίστε τον πυρήνα και το βασικό
+ σύστημα όπως περιγράψαμε στο <xref linkend="make-buildworld">
+ χρησιμοποιώντας το μηχάνημα μεταγλώττισης, αλλά μην εγκαταστήσετε
+ τίποτα. Μετά το τέλος της μεταγλώττισης, χρησιμοποιήστε το μηχάνημα
+ δοκιμών και εγκαταστήστε τον πυρήνα που μόλις δημιουργήσατε. Αν το
+ μηχάνημα αυτό προσαρτά το <filename>/usr/src</filename> και το
+ <filename>/usr/obj</filename> μέσω NFS, όταν το επανεκκινήσετε σε
+ κατάσταση ενός χρήστη, θα χρειαστεί να ενεργοποιήσετε το δίκτυο και
+ να τα προσαρτήσετε. Ο ευκολότερος τρόπος για αυτό, είναι να
+ εκκινήσετε σε κατάσταση πολλαπλών χρηστών και έπειτα να εκτελέσετε
+ <command>shutdown now</command> για να μεταβείτε σε κατάσταση ενός
+ χρήστη. Μόλις γίνει αυτό, μπορείτε να εγκαταστήσετε τον νέο πυρήνα
+ και το βασικό σύστημα, και να εκτελέσετε το
+ <command>mergemaster</command> όπως θα κάνατε συνήθως. Όταν
+ τελειώσετε, επανεκκινήστε αυτό το μηχάνημα στην κανονική λειτουργία
+ πολλαπλών χρηστών.</para>
+
+ <para>Όταν βεβαιωθείτε ότι όλα λειτουργούν σωστά στο μηχάνημα δοκιμών,
+ χρησιμοποιήστε την ίδια διαδικασία για να εγκαταστήσετε το νέο
+ λογισμικό σε κάθε ένα από τα υπόλοιπα μηχανήματα του σετ
+ μεταγλώττισης.</para>
+ </sect2>
+
+ <sect2 id="small-lan-ports">
+ <title>Ports</title>
+
+ <para>Μπορείτε να χρησιμοποιήσετε τις ίδιες ιδέες και για το δέντρο
+ των ports. Το πρώτο κρίσιμο βήμα είναι να προσαρτήσετε το
+ <filename>/usr/ports</filename> από το ίδιο μηχάνημα, σε όλα τα
+ μηχανήματα του σετ μεταγλώττισης. Μπορείτε έπειτα να ρυθμίσετε το
+ <filename>/etc/make.conf</filename> ώστε να διαμοιράζονται τα
+ distfiles. Θα πρέπει να θέσετε το <makevar>DISTDIR</makevar> σε ένα
+ κοινόχρηστο κατάλογο, στον οποίο θα δώσετε δικαιώματα εγγραφής σε
+ οποιοδήποτε χρήστη έχετε δηλώσει ως <username>root</username> στο
+ NFS. Σε κάθε μηχάνημα θα πρέπει επίσης να οριστεί η μεταβλητή
+ <makevar>WRKDIRPREFIX</makevar> ώστε να δείχνει σε ένα τοπικό
+ κατάλογο. Τέλος, αν σκοπεύετε να μεταγλωττίζετε και να διανέμετε
+ έτοιμα πακέτα, θα πρέπει να θέσετε την μεταβλητή
+ <makevar>PACKAGES</makevar> σε ένα κατάλογο, όπως κάνατε και με την
+ <makevar>DISTDIR</makevar>.</para>
+ </sect2>
+ </sect1>
+</chapter>
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml b/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml
new file mode 100644
index 0000000000..3de3c8f35c
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/desktop/chapter.sgml
@@ -0,0 +1,1421 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Desktop Εφαρμογές
+
+ The FreeBSD Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/desktop/chapter.sgml
+ %SRCID% 1.120
+
+-->
+
+<chapter id="desktop">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Christophe</firstname>
+ <surname>Juniet</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Desktop Εφαρμογές</title>
+
+ <sect1 id="desktop-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το &os; μπορεί να εκτελέσει μια ευρεία γκάμα desktop εφαρμογών, όπως
+ φυλλομετρητές (browsers) και επεξεργαστές κειμένου. Οι περισσότερες από
+ αυτές είναι διαθέσιμες ως πακέτα (packages) ή μπορούν να εγκατασταθούν
+ αυτόματα από την Συλλογή των Ports. Πολλοί νέοι χρήστες αναμένουν να
+ βρουν τέτοιου είδους εφαρμογές στο desktop τους. Το κεφάλαιο αυτό θα
+ σας δείξει πως να εγκαταστήσετε χωρίς κόπο τις πιο δημοφιλείς desktop
+ εφαρμογές, είτε από πακέτα είτε από τη Συλλογή των Ports.</para>
+
+ <para>Σημειώστε ότι όταν εγκαθιστάτε προγράμματα από τη Συλλογή των Ports,
+ γίνεται μεταγλώττιση από τον πηγαίο κώδικα. Αυτό μπορεί να χρειαστεί
+ πολύ χρόνο, καθώς εξαρτάται από το πρόγραμμα το οποίο μεταγλωττίζετε και
+ την υπολογιστική ισχύ του μηχανήματός σας. Αν το χρονικό διάστημα το
+ οποίο χρειάζεται η μεταγλώττιση είναι απαγορευτικά μεγάλο, μπορείτε να
+ εγκαταστήσετε τα περισσότερα προγράμματα της Συλλογής των Ports από
+ προ-μεταγλωττισμένα πακέτα.</para>
+
+ <para>Καθώς το &os; διαθέτει συμβατότητα με εκτελέσιμα προγράμματα για
+ Linux, πολλές εφαρμογές που αναπτύχθηκαν αρχικά για το Linux είναι
+ διαθέσιμες για το desktop σας. Σας συνιστούμε θερμά να διαβάσετε το
+ <xref linkend="linuxemu"> πριν εγκαταστήσετε οποιαδήποτε από τις
+ εφαρμογές Linux. Πολλά από τα ports που χρησιμοποιούν τη συμβατότητα με
+ Linux έχουν ονόματα που ξεκινούν με <quote>linux-</quote>. Θυμηθείτε το
+ όταν ψάχνετε για κάποιο συγκεκριμένο port, για παράδειγμα με την
+ &man.whereis.1;. Στο κείμενο που ακολουθεί θεωρείται ότι έχετε
+ ενεργοποιήσει την συμβατότητα με εκτελέσιμα προγράμματα Linux πριν
+ εγκαταστήσετε οποιαδήποτε από τις εφαρμογές του Linux.</para>
+
+ <para>Οι κατηγορίες που καλύπτονται από αυτό το κεφάλαιο είναι οι
+ εξής:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Φυλλομετρητές (όπως <application>Firefox</application>,
+ <application>Opera</application>,
+ <application>Konqueror</application>
+ <application>Chromium</application>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Εφαρμογές γραφείου (όπως
+ <application>KOffice</application>,
+ <application>AbiWord</application>,
+ <application>The GIMP</application>,
+ <application>OpenOffice.org</application>,
+ <application>LibreOffice</application>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Προγράμματα προβολής εγγράφων
+ (όπως <application>&acrobat.reader;</application>,
+ <application>gv</application>,
+ <application>Xpdf</application>,
+ <application>GQview</application>)</para>
+ </listitem>
+
+ <listitem>
+ <para>Χρηματοοικονομικές εφαρμογές (όπως
+ <application>GnuCash</application>,
+ <application>Gnumeric</application>,
+ <application>Abacus</application>)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να ξέρετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου
+ κατασκευαστή (<xref linkend="ports">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να ξέρετε πως να εγκαταστήσετε πρόσθετο λογισμικό Linux
+ (<xref linkend="linuxemu">).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για πληροφορίες σχετικά με την εγκατάσταση πολυμεσικού περιβάλλοντος
+ διαβάστε το <xref linkend="multimedia">. Αν θέλετε να ρυθμίσετε και να
+ χρησιμοποιήσετε κάποια υπηρεσία ηλεκτρονικού ταχυδρομείου δείτε
+ το <xref linkend="mail">.</para>
+ </sect1>
+
+ <sect1 id="desktop-browsers">
+ <title>Φυλλομετρητές (Browsers)</title>
+
+ <indexterm>
+ <primary>browsers</primary>
+ <secondary>web</secondary>
+ </indexterm>
+
+ <para>Το &os; δεν έχει προεγκατεστημένο κάποιο συγκεκριμένο φυλλομετρητή.
+ Στον κατάλογο
+ <ulink url="http://www.FreeBSD.org/ports/www.html">www</ulink>
+ της συλλογής Ports μπορείτε να βρείτε αρκετούς φυλλομετρητές, έτοιμους
+ για εγκατάσταση. Αν δεν έχετε χρόνο για να μεταγλωττίσετε
+ ότι χρειάζεστε (ίσως χρειαστείτε αρκετή ώρα), πολλοί
+ από αυτούς είναι διαθέσιμοι και ως έτοιμα πακέτα.</para>
+
+ <para>Τα <application>KDE</application> και
+ <application>GNOME</application>, ως πλήρη περιβάλλοντα εργασίας,
+ παρέχουν τους δικούς τους φυλλομετρητές HTML. Δείτε το
+ <xref linkend="x11-wm"> για περισσότερες πληροφορίες σχετικά με την
+ εγκατάσταση τους.</para>
+
+ <para>Αν ενδιαφέρεστε για ελαφρείς (από άποψη κατανάλωσης πόρων)
+ φυλλομετρητές, δείτε τις ακόλουθες εφαρμογές στη συλλογή των Ports:
+ <filename role="package">www/dillo2</filename>,
+ <filename role="package">www/links</filename>, ή
+ <filename role="package">www/w3m</filename>.</para>
+
+ <para>Το τμήμα αυτό καλύπτει τις παρακάτω εφαρμογές:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Όνομα Εφαρμογής</entry>
+ <entry>Απαιτούμενοι Πόροι</entry>
+ <entry>Εγκατάσταση από Ports</entry>
+ <entry>Βασικές Εξαρτήσεις</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>Firefox</application></entry>
+ <entry>μεσαία</entry>
+ <entry>βαριά</entry>
+ <entry><application>Gtk+</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Opera</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>ελαφριά</entry>
+ <entry>Υπάρχουν διαθέσιμες εκδόσεις για &os; και Linux. Η έκδοση
+ για Linux εξαρτάται από την δυαδική συμβατότητα με Linux (Linux
+ Binary Compatibility) και το
+ <application>linux-openmotif</application>.</entry>
+ </row>
+
+ <row>
+ <entry><application>Konqueror</application></entry>
+ <entry>μεσαία</entry>
+ <entry>βαριά</entry>
+ <entry>Βιβλιοθήκες <application>KDE</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Chromium</application></entry>
+ <entry>μεσαία</entry>
+ <entry>μεσαία</entry>
+ <entry><application>Gtk+</application></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>Firefox</title>
+ <indexterm>
+ <primary><application>Firefox</application></primary>
+ </indexterm>
+
+ <para>Ο <application>Firefox</application> είναι ένας μοντέρνος,
+ ελεύθερος, ανοιχτός και σταθερός φυλλομετρητής, ο οποίος είναι πλήρως
+ προσαρμοσμένος για χρήση στο &os;. Διαθέτει μηχανή απεικόνισης η
+ οποία εναρμονίζεται πλήρως με τις τυποποιήσεις της HTML, και
+ δυνατότητες όπως εμφάνιση πολλαπλών σελίδων σε tabs, μπλοκάρισμα
+ αναδυόμενων παραθύρων (popups), πρόσθετα προγράμματα, βελτιωμένη
+ ασφάλεια και πολλά ακόμη. Ο <application>Firefox</application>
+ βασίζεται στον αρχικό πηγαίο κώδικα του
+ <application>Mozilla</application>.</para>
+
+ <para>Εγκαταστήστε το πακέτο γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r firefox</userinput></screen>
+
+ <para>Η παραπάνω εντολή θα εγκαταστήσει τον
+ <application>Firefox</application> 9.0. Αν θέλετε να εγκαταστήσετε
+ τον <application>Firefox</application> 3.6, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r firefox36</userinput></screen>
+
+ <para>Μπορείτε επίσης να χρησιμοποιήσετε την Συλλογή των Ports αν
+ προτιμάτε να μεταγλωττίσετε από τον πηγαίο κώδικα:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/www/firefox</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Για τον <application>Firefox</application> 3.6, αντικαταστήστε
+ στην παραπάνω εντολή τη λέξη <literal>firefox</literal> με
+ <literal>firefox36</literal>.</para>
+ </sect2>
+
+ <sect2 id="moz-java-plugin">
+ <title>Ο Firefox και το Πρόσθετο (plugin) της &java;</title>
+
+ <note>
+ <para>Σε αυτό το τμήμα και τα δύο επόμενα, θεωρούμε ότι έχετε ήδη
+ εγκαταστήσει τον <application>Firefox</application>.</para>
+ </note>
+
+ <para>Εγκαταστήστε το <application>OpenJDK 6</application> από τη
+ Συλλογή των Ports, πληκτρολογώντας:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/java/openjdk6</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Εγκαταστήστε έπειτα το port <filename
+ role="package">java/icedtea-web</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/java/icedtea-web</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Βεβαιωθείτε ότι δεν αλλάξατε τις προεπιλεγμένες επιλογές στις
+ οθόνες ρυθμίσεων και των δύο ports.</para>
+
+ <para>Ξεκινήστε το φυλλομετρητή σας, γράψτε
+ <literal>about:plugins</literal> στη γραμμή διευθύνσεων και
+ πιέστε <keycap>Enter</keycap>. Θα δείτε μια σελίδα με όλα τα
+ εγκατεστημένα πρόσθετα. Στη σελίδα αυτή θα πρέπει να δείτε
+ και την καταχώριση για το πρόσθετο της
+ <application>&java;</application>.</para>
+
+ <para>Αν ο φυλλομετρητής δεν καταφέρει να εντοπίσει το πρόσθετο,
+ κάθε χρήστης θα χρειαστεί να εκτελέσει την παρακάτω εντολή και
+ να επανεκκινήσει το φυλλομετρητή του:</para>
+
+ <screen>&prompt.user; <userinput>ln -s /usr/local/lib/IcedTeaPlugin.so \
+ $HOME/.mozilla/plugins/</userinput></screen>
+ </sect2>
+
+ <sect2 id="moz-flash-plugin">
+ <title>Ο Firefox και το &adobe; &flash; Plugin</title>
+ <indexterm>
+ <primary>Flash</primary>
+ </indexterm>
+
+ <para>Το &adobe; &flash; plugin δεν διατίθεται για το &os;.
+ Ωστόσο, υπάρχει ένα επίπεδο εξομοίωσης (software layer, wrapper) για
+ την εκτέλεση του αντίστοιχου plugin του Linux. To wrapper αυτό
+ υποστηρίζει επίσης και τα plugins για τον &adobe; &acrobat;, το
+ RealPlayer και άλλα.</para>
+
+ <para>Εκτελέστε τα παρακάτω βήματα, ανάλογα με την έκδοση του &os; που
+ χρησιμοποιείτε:</para>
+
+ <procedure>
+ <step>
+ <title>Για το &os;&nbsp;7.<replaceable>X</replaceable></title>
+
+ <para>Εγκαταστήστε το port
+ <filename role="package">www/nspluginwrapper</filename>.
+ Το port αυτό απαιτεί το
+ <filename role="package">emulators/linux_base-fc4</filename>
+ το οποίο είναι μεγάλο.</para>
+
+ <para>Το επόμενο βήμα είναι η εγκατάσταση του port
+ <filename role="package">www/linux-flashplugin9</filename>.
+ Θα εγκατασταθεί η έκδοση
+ &flash;&nbsp;9.<replaceable>X</replaceable> η οποία
+ γνωρίζουμε ότι δουλεύει σωστά στο
+ &os;&nbsp;7.<replaceable>X</replaceable>.</para>
+
+ <note>
+ <para>Σε εκδόσεις του &os; παλαιότερες από την 7.1-RELEASE, θα
+ πρέπει να εγκαταστήσετε το πακέτο <filename
+ role="package">www/linux-flashplugin7</filename> και να
+ παραλείψετε το βήμα σχετικά με το &man.linprocfs.5; που
+ φαίνεται παρακάτω.</para>
+ </note>
+ </step>
+
+ <step>
+ <title>Για το &os;&nbsp;8.<replaceable>X</replaceable></title>
+
+ <para>Εγκαταστήστε το port
+ <filename role="package">www/nspluginwrapper</filename>.
+ Το port αυτό απαιτεί το
+ <filename role="package">emulators/linux_base-f10</filename>
+ το οποίο είναι μεγάλο.</para>
+
+ <para>Το επόμενο βήμα είναι η εγκατάσταση του port
+ <filename role="package">www/linux-f10-flashplugin10</filename>.
+ Θα εγκατασταθεί η έκδοση
+ &flash;&nbsp;10.<replaceable>X</replaceable> η οποία
+ γνωρίζουμε ότι δουλεύει σωστά στο
+ &os;&nbsp;8.<replaceable>X</replaceable>.</para>
+
+ <para>Για να λειτουργήσει σωστά αυτή η έκδοση, θα χρειαστεί να
+ δημιουργήσετε τον συμβολικό σύνδεσμο που φαίνεται
+ παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>ln -s /usr/local/lib/npapi/linux-f10-flashplugin/libflashplayer.so \
+ /usr/local/lib/browser_plugins/</userinput></screen>
+
+ <para>Θα χρειαστεί να δημιουργήσετε χειροκίνητα τον κατάλογο
+ <filename class="directory">/usr/local/lib/browser_plugins</filename>
+ αν δεν υπάρχει στο σύστημα σας.</para>
+ </step>
+ </procedure>
+
+ <para>Μετά την εγκατάσταση του σωστού (σύμφωνα με την έκδοση του &os;)
+ &flash; port, ο κάθε χρήστης θα πρέπει να ολοκληρώσει την προσωπική
+ του εγκατάσταση του plugin εκτελώντας την παρακάτω εντολή του
+ <command>nspluginwrapper</command>:</para>
+
+ <screen>&prompt.user; <userinput>nspluginwrapper -v -a -i</userinput></screen>
+
+ <para>Θα πρέπει να προσαρτήσετε το σύστημα αρχείων διεργασιών του
+ &linux;, &man.linprocfs.5; στον κατάλογο <filename
+ class="directory">/compat/linux/proc</filename>, αν επιθυμείτε
+ να αναπαράγετε &flash; σκηνές (animations). Αυτό μπορεί να γίνει με
+ την επομένη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>mount -t linprocfs linproc /compat/linux/proc</userinput></screen>
+
+ <para>Η προσάρτηση μπορεί επίσης να γίνεται αυτόματα κατά την εκκίνηση,
+ προσθέτοντας την παρακάτω γραμμή στο
+ <filename>/etc/fstab</filename>:</para>
+
+ <programlisting>linproc /compat/linux/proc linprocfs rw 0 0</programlisting>
+
+ <para>Μετά την εγκατάσταση του plugin, ξεκινήστε το φυλλομετρητή σας,
+ γράψτε <literal>about:plugins</literal> στη γραμμή διευθύνσεων και
+ πιέστε <keycap>Enter</keycap>. Θα πρέπει να δείτε μια λίστα με όλα
+ τα τρέχοντα διαθέσιμα plugins.</para>
+ </sect2>
+
+ <sect2 id="moz-swfdec-flash-plugin">
+ <title>Ο Firefox και το Swfdec &flash; Plugin</title>
+
+ <para>To Swfdec είναι μια βιβλιοθήκη για αποκωδικοποίηση και αναπαραγωγή
+ σκηνών &flash;. Το Swfdec-Mozilla είναι ένα plugin για τους
+ φυλλομετρητές <application>Firefox</application> το οποίο χρησιμοποιεί
+ αυτή τη βιβλιοθήκη για την αναπαραγωγή αρχείων SWF. Είναι ακόμα στο
+ στάδιο της ανάπτυξης.</para>
+
+ <para>Αν δεν μπορείτε ή δεν θέλετε να το μεταγλωττίσετε, απλώς
+ εγκαταστήστε το πακέτο από το δίκτυο:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r swfdec-plugin</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να το μεταγλωττίσετε
+ και να το εγκαταστήσετε από τη Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/www/swfdec-plugin</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Μετά την εγκατάσταση, επανεκκινήστε το φυλλομετρητή σας για να
+ ενεργοποιηθεί το plugin.</para>
+ </sect2>
+
+ <sect2>
+ <title>Opera</title>
+ <indexterm>
+ <primary><application>Opera</application></primary>
+ </indexterm>
+
+ <para>Ο <application>Opera</application> είναι ένας φυλλομετρητής με
+ πλήρεις δυνατότητες και συμβατός με τα πρότυπα. Έρχεται επίσης με
+ ενσωματωμένο πρόγραμμα ανάγνωσης ταχυδρομείου (mail) και ειδήσεων
+ (news), πρόγραμμα για IRC, αναγνώστη για RSS/Atom και πολλά ακόμα.
+ Παρ'όλα αυτά, ο <application>Opera</application> είναι μια σχετικά
+ ελαφριά και πολύ γρήγορη εφαρμογή. Έρχεται σε δύο τύπους: μια
+ <quote>εγγενής</quote> έκδοση για το &os; και μια έκδοση που
+ εκτελείται μέσω της συμβατότητας με το Linux.</para>
+
+ <para>Για να χρησιμοποιήσετε την &os; έκδοση του
+ <application>Opera</application>, εγκαταστήστε το πακέτο:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r opera</userinput></screen>
+
+ <para>Ορισμένες τοποθεσίες FTP δεν διαθέτουν όλα τα πακέτα, αλλά
+ μπορείτε να έχετε το ίδιο αποτέλεσμα μέσω της συλλογής των Ports,
+ γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/www/opera</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Για να εγκαταστήσετε την Linux έκδοση του
+ <application>Opera</application>, αντικαταστήστε με
+ <literal>linux-opera</literal> το
+ <literal>opera</literal> στα παραπάνω παραδείγματα.</para>
+
+ <para>Το πρόσθετο &adobe; &flash; δεν είναι διαθέσιμο για το &os;.
+ Διατίθεται ωστόσο μια έκδοση κατάλληλη για το &linux;. Για να την
+ χρησιμοποιήσετε θα πρέπει αρχικά να εγκαταστήσετε το port <filename
+ role="package">www/linux-f10-flashplugin10</filename> και έπειτα
+ το port <filename role="package">www/opera-linuxplugins</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/www/linux-f10-flashplugin10</userinput>
+&prompt.root; <userinput>make install clean</userinput>
+&prompt.root; <userinput>cd /usr/ports/www/opera-linuxplugins</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Μπορείτε να ελέγξετε εύκολα την ύπαρξη του plugin: ξεκινήστε τον
+ φυλλομετρητή σας, γράψτε <literal>opera:plugins</literal> στη
+ γραμμή διευθύνσεων και πιέστε <keycap>Enter</keycap>. Θα πρέπει να
+ δείτε μια λίστα με όλα τα διαθέσιμα πρόσθετα.</para>
+
+ <para>Για να προσθέσετε το πρόσθετο της
+ <application>&java;</application>, ακολουθήστε τις <link
+ linkend="moz-java-plugin"> αντίστοιχες οδηγίες για τον
+ Firefox</link>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Konqueror</title>
+ <indexterm>
+ <primary><application>Konqueror</application></primary>
+ </indexterm>
+
+ <para>Ο <application>Konqueror</application> είναι κομμάτι του
+ <application>KDE</application> αλλά μπορεί να χρησιμοποιηθεί και έξω
+ από το <application>KDE</application> με την εγκατάσταση του
+ <filename role="package">x11/kdebase3</filename>. Ο
+ <application>Konqueror</application> είναι πολύ περισσότερο από ένας
+ απλός φυλλομετρητής, είναι επίσης διαχειριστής αρχείων και πρόγραμμα
+ προβολής αρχείων πολυμέσων.</para>
+
+ <para>Ο <application>Konqueror</application> διατίθεται επίσης με ένα
+ σετ από plugins, στο
+ <filename role="package">misc/konq-plugins</filename>.</para>
+
+ <para>Ο <application>Konqueror</application> υποστηρίζει επίσης
+ <application>&flash;</application> και οι σχετικές οδηγίες (How To)
+ είναι διαθέσιμες στο <ulink
+ url="http://freebsd.kde.org/howtos/konqueror-flash.php"></ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Chromium</title>
+ <indexterm>
+ <primary><application>Chromium</application></primary>
+ </indexterm>
+
+ <para>Ο <application>Chromium</application> είναι μια εφαρμογή
+ browser ανοικτού κώδικα που στοχεύει στη βελτίωση της εμπειρίας
+ του χρήστη παρέχοντας ένα φυλλομετρητή ο οποίος είναι ασφαλέστερος,
+ ταχύτερος και πιο σταθερός. Ο <application>Chromium</application>
+ παρέχει δυνατότητα εμφάνισης σελίδων σε καρτέλες, αποκλεισμό
+ αναδυόμενων παραθύρων (popup blocker), πρόσθετα (extensions) και
+ πολλά ακόμα. Ο <application>Chromium</application> είναι το Έργο
+ ανοικτού κώδικα στο οποίο βασίζεται ο φυλλομετρητής
+ Google Chrome.</para>
+
+ <para>Ο <application>Chromium</application> μπορεί να εγκατασταθεί
+ από πακέτο, με την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r chromium</userinput></screen>
+
+ <para>Εναλλακτικά, μπορείτε να μεταγλωττίσετε τον
+ <application>Chromium</application> χρησιμοποιώντας τη Συλλογή των
+ Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/www/chromium</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <note>
+ <para>Ο <application>Chromium</application> εγκαθιστάται ως
+ <filename>/usr/local/bin/chrome</filename> και όχι ως
+ <filename>/usr/local/bin/chromium</filename>.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="chromium-java-plugin">
+ <title>Ο Chromium και το Πρόσθετο της &java;</title>
+
+ <note>
+ <para>Στην ενότητα αυτή θεωρούμε ότι έχετε ήδη εγκαταστήσει τον
+ <application>Chromium</application>.</para>
+ </note>
+
+ <para>Εγκαταστήστε το <application>OpenJDK&nbsp;6</application>
+ μέσω της Συλλογής των Ports, γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/java/openjdk6</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Έπειτα, εγκαταστήστε το <filename
+ role="package">java/icedtea-web</filename> από τη Συλλογή των
+ Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/java/icedtea-web</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Ξεκινήστε τον <application>Chromium</application> και
+ πληκτρολογήστε <literal>about:plugins</literal> στη γραμμή
+ διευθύνσεων. Θα πρέπει να δείτε το IcedTea-Web να εμφανίζεται
+ ως ένα από τα πρόσθετα.</para>
+
+ <para>Αν το πρόσθετο δεν εμφανίζεται στον
+ <application>Chromium</application>, εκτελέστε τις παρακάτω
+ εντολές και επανεκκινήστε το φυλλομετρητή σας:</para>
+
+ <screen>&prompt.root; <userinput>mkdir -p /usr/local/share/chromium/plugins
+&prompt.root; ln -s /usr/local/lib/IcedTeaPlugin.so \
+ /usr/local/share/chromium/plugins/</userinput></screen>
+ </sect2>
+
+ <sect2 id="chromium-flash-plugin">
+ <title>Ο Chromium και το Πρόσθετο &adobe;&nbsp;&flash;</title>
+
+ <note>
+ <para>Στην ενότητα αυτή θεωρούμε ότι έχετε ήδη εγκαταστήσει τον
+ <application>Chromium</application>.</para>
+ </note>
+
+ <para>Για τη ρύθμιση του <application>Chromium</application> για χρήση
+ με το πρόσθετο &adobe;&nbsp;&flash;, χρησιμοποιήστε τις <link
+ linkend="moz-flash-plugin">οδηγίες για τον Firefox</link>.
+ Στον προηγούμενο σύνδεσμο θα βρείτε πλήρεις οδηγίες για την
+ εγκατάσταση του &adobe;&nbsp;&flash; στο &os;. Δεν απαιτούνται
+ επιπλέον βήματα, καθώς ο <application>Chromium</application> μπορεί
+ να χρησιμοποιήσει κάποια πρόσθετα από άλλους φυλλομετρητές.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="desktop-productivity">
+ <title>Εφαρμογές Γραφείου</title>
+
+ <para>Όσο αφορά τις εφαρμογές γραφείου, οι νέοι χρήστες συχνά αναζητούν
+ μια καλή σουίτα εφαρμογών ή ένα φιλικό επεξεργαστή κειμένου. Αν και
+ κάποια <link linkend="x11-wm">γραφικά περιβάλλοντα</link> όπως το
+ <application>KDE</application> παρέχουν τη δική τους
+ σουίτα εφαρμογών γραφείου, δεν υπάρχει ωστόσο προεπιλεγμένη εφαρμογή.
+ Το &os; παρέχει ότι χρειάζεστε, άσχετα από το περιβάλλον εργασίας
+ σας.</para>
+
+ <para>Το τμήμα αυτό καλύπτει τις παρακάτω εφαρμογές:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Όνομα Εφαρμογής</entry>
+ <entry>Απαιτούμενοι Πόροι</entry>
+ <entry>Εγκατάσταση από Ports</entry>
+ <entry>Βασικές Εξαρτήσεις</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>KOffice</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>βαριά</entry>
+ <entry><application>KDE</application></entry>
+ </row>
+
+ <row>
+ <entry><application>AbiWord</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>ελαφριά</entry>
+ <entry><application>Gtk+</application> ή <application>GNOME</application></entry>
+ </row>
+
+ <row>
+ <entry><application>The Gimp</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>βαριά</entry>
+ <entry><application>Gtk+</application></entry>
+ </row>
+
+ <row>
+ <entry><application>OpenOffice.org</application></entry>
+ <entry>πολλοί (βαριά)</entry>
+ <entry>εξαιρετικά βαριά</entry>
+ <entry><application>&jdk;</application>, <application>Mozilla</application></entry>
+ </row>
+
+ <row>
+ <entry><application>LibreOffice</application></entry>
+ <entry>σχετικά βαριά</entry>
+ <entry>τεράστια</entry>
+ <entry><application>Gtk+</application> ή <application>KDE</application>/
+ <application>GNOME</application> ή <application>&jdk;</application>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>KOffice</title>
+ <indexterm>
+ <primary><application>KOffice</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>office suite</primary>
+ <secondary><application>KOffice</application></secondary>
+ </indexterm>
+
+ <para>Η κοινότητα του KDE εξοπλίζει το γραφικό της περιβάλλον με μια
+ σουίτα εφαρμογών γραφείου που μπορεί να χρησιμοποιηθεί και έξω από
+ το <application>KDE</application>. Περιλαμβάνει τα τέσσερα βασικά
+ προγράμματα που μπορείτε επίσης να βρείτε και σε άλλες σουίτες
+ γραφείου. Το <application>KWord</application> είναι ο επεξεργαστής
+ κειμένου, το <application>KSpread</application> είναι το πρόγραμμα
+ υπολογιστικών φύλλων, το <application>KPresenter</application>
+ διαχειρίζεται τις παρουσιάσεις, ενώ το
+ <application>Kontour</application> σας επιτρέπει να δημιουργήσετε
+ έγγραφα με γραφικά.</para>
+
+ <para>Πριν εγκαταστήσετε το τελευταίο
+ <application>KOffice</application>, βεβαιωθείτε ότι έχετε ανανεωμένη
+ έκδοση του <application>KDE</application>.</para>
+
+ <para>Για να εγκαταστήσετε το <application>KOffice</application> ως
+ πακέτο, δώστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r koffice</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την
+ Συλλογή των Ports. Για παράδειγμα, για να εγκαταστήσετε το
+ <application>KOffice</application> για το
+ <application>KDE3</application>, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/koffice-kde3</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>AbiWord</title>
+ <indexterm>
+ <primary><application>AbiWord</application></primary>
+ </indexterm>
+
+ <para>Το <application>AbiWord</application> είναι ένα ελεύθερο πρόγραμμα
+ επεξεργασίας κειμένου, όμοιο στην αίσθηση και την εμφάνιση με το
+ <application>&microsoft; Word</application>.
+ Είναι κατάλληλο για την πληκτρολόγηση άρθρων, γραμμάτων, αναφορών,
+ υπενθυμίσεων κ.ο.κ. Είναι πολύ γρήγορο, έχει αρκετές δυνατότητες και
+ είναι ιδιαίτερα φιλικό στο χρήστη.</para>
+
+ <para>Το <application>AbiWord</application> μπορεί να εισάγει ή να
+ εξάγει αρχεία διάφορων μορφών, περιλαμβανομένων και κάποιων
+ κλειστών όπως το <filename>.doc</filename> της &microsoft;.</para>
+
+ <para>Το <application>AbiWord</application> είναι διαθέσιμο ως πακέτο.
+ Μπορείτε να το εγκαταστήσετε γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r abiword</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο για κάποιο λόγο, μπορείτε να το
+ μεταγλωττίσετε από την Συλλογή των Ports. Σε αυτή την περίπτωση
+ πιθανώς να εγκαταστήσετε νεώτερη έκδοση σε σχέση με το έτοιμο πακέτο.
+ Μπορείτε να το κάνετε ως εξής:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/abiword</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Το GIMP</title>
+ <indexterm>
+ <primary><application>The GIMP</application></primary>
+ </indexterm>
+
+ <para>Το <application>The GIMP</application> είναι ένα ιδιαίτερα
+ εξελιγμένο πρόγραμμα διαχείρισης γραφικών για δημιουργία εικόνων ή
+ επεξεργασία φωτογραφιών. Μπορεί να χρησιμοποιηθεί ως απλό
+ πρόγραμμα ζωγραφικής ή σαν σουίτα επεξεργασίας και διόρθωσης
+ φωτογραφιών. Περιέχει μεγάλο αριθμό από plugins ενώ διαθέτει και
+ scripting interface. Το <application>The GIMP</application> μπορεί να
+ διαβάσει και να γράψει μεγάλο φάσμα αρχείων εικόνας. Περιλαμβάνει
+ επίσης διεπαφές διασύνδεσης με σαρωτές και tablets.</para>
+
+ <para>Μπορείτε να εγκαταστήσετε το πακέτο δίνοντας την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gimp</userinput></screen>
+
+ <para>Αν η τοποθεσία FTP που χρησιμοποιείτε δεν διαθέτει αυτό το
+ πακέτο, μπορείτε να χρησιμοποιήσετε την Συλλογή των Ports.
+ Ο κατάλογος <ulink
+ url="http://www.FreeBSD.org/ports/graphics.html">graphics</ulink>
+ της Συλλογής των Ports περιέχει επίσης και το
+ <application>The Gimp Manual (εγχειρίδιο χρήσης)</application>. Δείτε
+ παρακάτω πως να το εγκαταστήσετε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/graphics/gimp</userinput>
+&prompt.root; <userinput>make install clean</userinput>
+&prompt.root; <userinput>cd /usr/ports/graphics/gimp-manual-pdf</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <note>
+ <para>Ο κατάλογος <ulink
+ url="http://www.FreeBSD.org/ports/graphics.html">graphics</ulink>
+ της συλλογής των Ports έχει επίσης την υπό εξέλιξη έκδοση
+ της εφαρμογής <application>The GIMP</application> στο
+ <filename role="package">graphics/gimp-devel</filename>.
+ Μπορείτε να βρείτε την HTML έκδοση του εγχειριδίου,
+ <application>The Gimp Manual</application> στο
+ <filename role="package">graphics/gimp-manual-html</filename>.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>OpenOffice.org</title>
+ <indexterm>
+ <primary><application>OpenOffice.org</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>office suite</primary>
+ <secondary><application>OpenOffice.org</application></secondary>
+ </indexterm>
+
+ <para>Το <application>OpenOffice.org</application> περιέχει όλες τις
+ απαραίτητες εφαρμογές σε μια πλήρη σουίτα εφαρμογών γραφείου:
+ επεξεργαστή κειμένου, υπολογιστικό φύλλο, διαχειριστή
+ παρουσιάσεων και πρόγραμμα σχεδίασης. Το περιβάλλον εργασίας του
+ είναι πολύ όμοιο με άλλες σουίτες γραφείου, και μπορεί να
+ χρησιμοποιήσει διάφορους δημοφιλείς τύπους αρχείων. Είναι διαθέσιμο
+ σε πολλές διαφορετικές γλώσσες, τόσο ως προς το περιβάλλον εργασίας
+ όσο και ως προς τα λεξικά και τον ορθογραφικό έλεγχο.</para>
+
+ <para>Ο επεξεργαστής κειμένου του
+ <application>OpenOffice.org</application> χρησιμοποιεί εγγενώς
+ μορφή αρχείου XML για αυξημένη φορητότητα και ευελιξία. Το πρόγραμμα
+ υπολογιστικών φύλλων διαθέτει γλώσσα μακροεντολών και μπορεί να
+ διασυνδεθεί με εξωτερικές βάσεις δεδομένων. Το
+ <application>OpenOffice.org</application> είναι σταθερή εφαρμογή και
+ εκτελείται εγγενώς στα &windows;, το &solaris;, το Linux, το &os;,
+ καθώς και στο &macos;&nbsp;X. Περισσότερες πληροφορίες για το
+ <application>OpenOffice.org</application> μπορείτε να βρείτε
+ στη <ulink
+ url="http://www.openoffice.org/">δικτυακή τοποθεσία του
+ OpenOffice.org </ulink>.
+ Για πληροφορίες σχετικά με την έκδοση για &os;, καθώς και για
+ απευθείας κατέβασμα πακέτων, χρησιμοποιήστε την δικτυακή τοποθεσία
+ <ulink
+ url="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice.org
+ Porting Team</ulink>.</para>
+
+ <para>Για να εγκαταστήσετε το <application>OpenOffice.org</application>,
+ γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r openoffice.org</userinput></screen>
+
+ <note>
+ <para>Αν χρησιμοποιείτε -RELEASE έκδοση του &os;, το παραπάνω πρέπει
+ να δουλέψει. Διαφορετικά, θα πρέπει να δείτε την δικτυακή τοποθεσία
+ του &os; <application>OpenOffice.org</application> Porting Team για
+ να κατεβάσετε και να εγκαταστήσετε το αντίστοιχο πακέτο
+ χρησιμοποιώντας την &man.pkg.add.1;. Τόσο η τρέχουσα όσο και η υπό
+ εξέλιξη έκδοση είναι διαθέσιμες για κατέβασμα από την παραπάνω
+ τοποθεσία.</para>
+ </note>
+
+ <para>Από τη στιγμή που το πακέτο εγκατασταθεί, πρέπει να γράψετε απλώς
+ την παρακάτω εντολή για να εκτελέσετε το
+ <application>OpenOffice.org</application>:</para>
+
+ <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
+
+ <note>
+ <para>Κατά την πρώτη εκκίνηση, θα σας γίνουν διάφορες ερωτήσεις και
+ θα δημιουργηθεί ένας κατάλογος με όνομα
+ <filename>.openoffice.org</filename> μέσα στον προσωπικό σας
+ κατάλογο.</para>
+ </note>
+
+ <para>Αν τα πακέτα του <application>OpenOffice.org</application> δεν
+ είναι διαθέσιμα, έχετε πάντα την επιλογή να μεταγλωττίσετε το
+ αντίστοιχο port. Ωστόσο, να έχετε υπόψη σας ότι αυτό απαιτεί αρκετό
+ χώρο στο δίσκο και θα χρειαστεί και πάρα πολύ χρόνο για να
+ ολοκληρωθεί.</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/openoffice.org-3</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <note>
+ <para>Αν θέλετε να δημιουργήσετε μια έκδοση με τις δικές σας τοπικές
+ ρυθμίσεις, αντικαταστήστε την προηγούμενη γραμμή εντολών με την
+ επόμενη:</para>
+
+ <screen>&prompt.root; <userinput>make LOCALIZED_LANG=<replaceable>your_language</replaceable> install clean</userinput></screen>
+
+ <para>Πρέπει να αντικαταστήσετε το
+ <replaceable>your_language</replaceable> με το σωστό ISO κωδικό για
+ τη γλώσσα σας. Η λίστα με τους υποστηριζόμενους κωδικούς γλωσσών
+ είναι διαθέσιμη στο αρχείο
+ <filename>files/Makefile.localized</filename>, το οποίο βρίσκεται
+ στον κατάλογο του port.</para>
+ </note>
+
+ <para>Μόλις γίνει αυτό, μπορείτε να ξεκινήσετε την εφαρμογή
+ <application>OpenOffice.org</application> δίνοντας την εντολή:</para>
+
+ <screen>&prompt.user; <userinput>openoffice.org</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>LibreOffice</title>
+ <indexterm>
+ <primary><application>LibreOffice</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>εφαρμογή γραφείου</primary>
+ <secondary><application>LibreOffice</application></secondary>
+ </indexterm>
+
+ <para>Το <application>LibreOffice</application> είναι μια ελεύθερη
+ σουίτα εφαρμογών γραφείου η οποία αναπτύσσεται από το <ulink
+ url="http://www.documentfoundation.org/">The Document
+ Foundation</ulink>. Είναι συμβατή με τις άλλες
+ γνωστές σουίτες γραφείου και διατίθεται για τις περισσότερες
+ πλατφόρμες. Πρόκειται για fork της γνωστής εφαρμογής
+ <application>OpenOffice.org</application> η οποία περιλαμβάνει όλα
+ τα απαραίτητα μιας σουίτας γραφείου: επεξεργαστή κειμένου,
+ υπολογιστικό φύλλο, πρόγραμμα παρουσιάσεων, πρόγραμμα σχεδίασης και
+ ένα εργαλείο για δημιουργία και επεξεργασία μαθηματικών τύπων.
+ Διατίθεται σε πλήθος γλωσσών &mdash; η διεθνής υποστήριξη
+ επεκτείνεται μάλιστα τόσο στο περιβάλλον όσο και στα επιπλέον
+ προγράμματα ελέγχου ορθογραφίας και λεξικών.</para>
+
+ <para>Ο επεξεργαστής κειμένου του <application>OpenOffice</application>
+ χρησιμοποιεί εγγενώς μορφή αρχείου XML το οποίο εξασφαλίζει
+ αυξημένη φορητότητα και ευελιξία. Το υπολογιστικό φύλλο διαθέτει
+ μια γλώσσα μακροεντολών και μπορεί να διασυνδεθεί με εξωτερικές
+ βάσεις δεδομένων. Το <application>LibreOffice</application> είναι
+ ήδη σταθερό και διατίθεται σε εκδόσεις για &windows;, &linux;, &os;
+ και &macos;&nbsp;X. Για περισσότερες πληροφορίες σχετικά με το
+ <application>LibreOffice</application> επισκεφθείτε την
+ <ulink url="http://www.libreoffice.org/">δικτυακή τοποθεσία του</ulink>.</para>
+
+ <para>Για να εγκαταστήσετε το <application>LibreOffice</application>
+ από έτοιμο πακετό, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r libreoffice</userinput></screen>
+
+ <note>
+ <para>Το παραπάνω θα λειτουργήσει αν τρέχετε κάποιο επίσημο
+ -RELEASE του &os;.</para>
+ </note>
+
+ <para>Μετά την εγκατάσταση του πακέτου, χρειάζεται να γράψετε το
+ παρακάτω για να εκτελέσετε το
+ <application>LibreOffice</application>:</para>
+
+ <screen>&prompt.user; <userinput>libreoffice</userinput></screen>
+
+ <note>
+ <para>Κατά την πρώτη εκκίνηση, θα σας γίνουν κάποιες ερωτήσεις και
+ θα δημιουργηθεί ένας κατάλογος <filename
+ class="directory">.libreoffice</filename> μέσα στον προσωπικό
+ σας κατάλογο.</para>
+ </note>
+
+ <para>Αν δεν υπάρχουν διαθέσιμα πακέτα για το
+ <application>LibreOffice</application>, έχετε επίσης την επιλογή
+ να το μεταγλωττίσετε από το αντίστοιχο port. Θα πρέπει ωστόσο να
+ γνωρίζετε ότι απαιτείται αρκετός χώρος στο δίσκο και αρκετός χρόνος
+ για τη μεταγλώττιση.</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/editors/libreoffice</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <note>
+ <para>Αν θέλετε να δημιουργήσετε μια έκδοση με υποστήριξη κάποιας
+ συγκεκριμένης γλώσσας, αντικαταστήστε την προηγούμενη εντολή
+ με:</para>
+
+ <screen>&prompt.root; <userinput>make LOCALIZED_LANG=<replaceable>your_language</replaceable> install clean</userinput></screen>
+
+ <para>Θα πρέπει να αντικαταστήσετε το
+ <replaceable>your_language</replaceable> με το σωστό ISO κωδικό της
+ γλώσσας που επιθυμείτε να χρησιμοποιήσετε. Για να βρείτε τον
+ κωδικό, δείτε το αρχείο <filename>Makefile</filename> του port και
+ ειδικότερα την ενότητα <maketarget>pre-fetch</maketarget>.</para>
+ </note>
+
+ <para>Μπορείτε έπειτα να εκτελέσετε το
+ <application>LibreOffice</application> χρησιμοποιώντας την παρακάτω
+ εντολή:</para>
+
+ <screen>&prompt.user; <userinput>libreoffice</userinput></screen>
+ </sect2>
+ </sect1>
+
+ <sect1 id="desktop-viewers">
+ <title>Προγράμματα Προβολής Εγγράφων</title>
+
+ <para>Πρόσφατα έχουν γίνει αρκετά δημοφιλείς κάποιες νέες μορφές αρχείων.
+ Τα προγράμματα προβολής που απαιτούνται για τα αρχεία αυτά ίσως να μην
+ είναι διαθέσιμα στο βασικό σύστημα. Στο τμήμα αυτό θα δούμε πως
+ μπορείτε να τα εγκαταστήσετε.</para>
+
+ <para>Το τμήμα αυτό καλύπτει τις εφαρμογές:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Όνομα Εφαρμογής</entry>
+ <entry>Απαιτούμενοι Πόροι</entry>
+ <entry>Εγκατάσταση από Ports</entry>
+ <entry>Βασικές Εξαρτήσεις</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>&acrobat.reader;</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>ελαφριά</entry>
+ <entry>Δυαδική συμβατότητα με Linux (Linux Binary Compatibility)</entry>
+ </row>
+
+ <row>
+ <entry><application>gv</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>ελαφριά</entry>
+ <entry><application>Xaw3d</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Xpdf</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>ελαφριά</entry>
+ <entry><application>FreeType</application></entry>
+ </row>
+
+ <row>
+ <entry><application>GQview</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>ελαφριά</entry>
+ <entry><application>Gtk+</application> ή <application>GNOME</application></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>&acrobat.reader;</title>
+ <indexterm>
+ <primary><application>Acrobat Reader</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>PDF</primary>
+ <secondary>viewing</secondary>
+ </indexterm>
+
+ <para>Πολλά έγγραφα διανέμονται πλέον ως αρχεία PDF το οποίο σημαίνει
+ <quote>Portable Document Format</quote> (Φορητή Μορφή Εγγράφου). Ένα
+ από τα συνιστώμενα προγράμματα προβολής για αυτό τον τύπο αρχείων
+ είναι το <application>&acrobat.reader;</application>, το οποίο η Adobe
+ διαθέτει για Linux. Καθώς το &os; μπορεί να χρησιμοποιήσει εκτελέσιμα
+ του Linux, η εφαρμογή είναι επίσης διαθέσιμη για το &os;.</para>
+
+ <para>Για να εγκαταστήσετε το
+ <application>&acrobat.reader; 8</application> από τη Συλλογή των
+ Ports, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/print/acroread8</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Δεν υπάρχει διαθέσιμο πακέτο, λόγω περιορισμών στην άδεια
+ χρήσης.</para>
+ </sect2>
+
+ <sect2>
+ <title>gv</title>
+ <indexterm>
+ <primary><application>gv</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>PDF</primary>
+ <secondary>viewing</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>PostScript</primary>
+ <secondary>viewing</secondary>
+ </indexterm>
+
+ <para>Το <application>gv</application> είναι ένα πρόγραμμα προβολής
+ εγγράφων για αρχεία &postscript; και PDF. Είναι αρχικά βασισμένο
+ στην εφαρμογή <application>ghostview</application> αλλά έχει καλύτερη
+ εμφάνιση χάρη στη βιβλιοθήκη <application>Xaw3d</application>. Είναι
+ γρήγορο, και το interface του είναι ξεκάθαρο. Το
+ <application>gv</application> έχει πολλές δυνατότητες, όπως
+ προσανατολισμό και μέγεθος χαρτιού, εμφάνιση υπό κλίμακα και βελτίωση
+ εμφάνισης γραμματοσειρών (antialias). Σχεδόν κάθε λειτουργία του
+ μπορεί να εκτελεστεί τόσο από το πληκτρολόγιο όσο και από το
+ ποντίκι.</para>
+
+ <para>Για να εγκαταστήσετε το <application>gv</application> ως πακέτο,
+ γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gv</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την
+ Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/print/gv</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Xpdf</title>
+ <indexterm>
+ <primary><application>Xpdf</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>PDF</primary>
+ <secondary>viewing</secondary>
+ </indexterm>
+
+ <para>Αν θέλετε ένα μικρό πρόγραμμα προβολής αρχείων PDF για το &os;, το
+ <application>Xpdf</application> είναι ελαφρύ και αποδοτικό. Απαιτεί
+ ελάχιστους πόρους και είναι ιδιαίτερα σταθερό. Χρησιμοποιεί τις
+ βασικές γραμματοσειρές των X και δεν απαιτεί χρήση του
+ <application>&motif;</application> ή άλλης εργαλειοθήκης των Χ.</para>
+
+ <para>Για να εγκαταστήσετε το <application>Xpdf</application> ως
+ πακέτο, δώστε την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r xpdf</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο ή προτιμάτε να χρησιμοποιήσετε
+ την Συλλογή των Ports, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/graphics/xpdf</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Μόλις ολοκληρωθεί η εγκατάσταση, μπορείτε να ξεκινήσετε το
+ <application>Xpdf</application> και να χρησιμοποιήσετε το δεξί
+ πλήκτρο του ποντικιού για να ενεργοποιήσετε το μενού.<para>
+ </sect2>
+
+ <sect2>
+ <title>GQview</title>
+ <indexterm>
+ <primary><application>GQview</application></primary>
+ </indexterm>
+
+ <para>Το <application>GQview</application> είναι ένας διαχειριστής
+ εικόνων. Μπορείτε να δείτε ένα αρχείο με ένα απλό κλικ, να
+ ξεκινήσετε ένα εξωτερικό πρόγραμμα επεξεργασίας, να δείτε
+ προεπισκόπηση σε μορφή thumbnail και πολλά άλλα. Διαθέτει επίσης
+ προβολή παρουσίασης και κάποιες βασικές λειτουργίες
+ αρχείων. Μπορείτε να διαχειριστείτε συλλογές εικόνων και να βρείτε με
+ εύκολο τρόπο τις διπλές. Το <application>GQview</application> μπορεί
+ να χρησιμοποιηθεί για προβολή σε πλήρη οθόνη και υποστηρίζει τοπικές
+ / διεθνείς ρυθμίσεις.</para>
+
+ <para>Αν θέλετε να εγκαταστήσετε το
+ <application>GQview</application> ως πακέτο, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gqview</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, ή προτιμάτε να χρησιμοποιήσετε
+ την Συλλογή των Ports, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/graphics/gqview</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+ </sect1>
+
+ <sect1 id="desktop-finance">
+ <title>Χρηματοοικονομικές Εφαρμογές</title>
+
+ <para>Αν, για οποιοδήποτε λόγο, θέλετε να διαχειρίζεστε τα
+ χρηματοοικονομικά σας μέσω του &os; desktop σας, υπάρχουν κάποιες
+ ισχυρές και εύκολες στη χρήση εφαρμογές, έτοιμες προς εγκατάσταση.
+ Ορισμένες από αυτές είναι συμβατές με διαδεδομένες μορφές αρχείων, όπως
+ αυτές που χρησιμοποιούνται στα έγγραφα του
+ <application><trademark class="registered">Quicken</trademark></application> ή του <application>Excel</application>.</para>
+
+ <para>Το τμήμα αυτό καλύπτει τις εφαρμογές:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Όνομα Εφαρμογής</entry>
+ <entry>Απαιτούμενοι Πόροι</entry>
+ <entry>Εγκατάσταση Από Ports</entry>
+ <entry>Βασικές Εξαρτήσεις</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>GnuCash</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>βαριά</entry>
+ <entry><application>GNOME</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Gnumeric</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>βαριά</entry>
+ <entry><application>GNOME</application></entry>
+ </row>
+
+ <row>
+ <entry><application>Abacus</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>ελαφριά</entry>
+ <entry><application>Tcl/Tk</application></entry>
+ </row>
+
+ <row>
+ <entry><application>KMyMoney</application></entry>
+ <entry>λίγοι (ελαφριά)</entry>
+ <entry>βαριά</entry>
+ <entry><application>KDE</application></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title>GnuCash</title>
+ <indexterm>
+ <primary><application>GnuCash</application></primary>
+ </indexterm>
+
+ <para>Το <application>GnuCash</application> είναι μέρος της προσπάθειας
+ του <application>GNOME</application> να παρέχει φιλικές εφαρμογές
+ στους τελικούς χρήστες. Με το <application>GnuCash</application>,
+ μπορείτε να κρατάτε λογαριασμό των εσόδων και εξόδων σας, των
+ τραπεζικών σας λογαριασμών και των μετοχών σας. Διαθέτει περιβάλλον
+ εργασίας το οποίο είναι εύκολο στη χρήση χωρίς να χρειάζεται
+ ιδιαίτερη εκμάθηση, αλλά είναι ταυτόχρονα και πολύ
+ επαγγελματικό.</para>
+
+ <para>Το <application>GnuCash</application> παρέχει έξυπνο σύστημα
+ καταχώρησης, ιεραρχικό σύστημα λογαριασμών, πολλά πλήκτρα συντομεύσεων
+ πληκτρολογίου, καθώς και μεθόδους αυτόματης συμπλήρωσης. Μπορεί να
+ διαχωρίσει μια συναλλαγή σε πολλά λεπτομερή τμήματα. Το
+ <application>GnuCash</application> μπορεί να εισάγει και να
+ συγχωνεύσει αρχεία QIF του <application>Quicken</application>. Μπορεί
+ επίσης να χειριστεί τις περισσότερες διεθνείς μορφές ημερομηνιών και
+ νομισματικών μονάδων.</para>
+
+ <para>Για να εγκαταστήσετε το <application>GnuCash</application> στο
+ σύστημα σας, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gnucash</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την
+ Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/finance/gnucash</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Gnumeric</title>
+ <indexterm>
+ <primary><application>Gnumeric</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>spreadsheet</primary>
+ <secondary><application>Gnumeric</application></secondary>
+ </indexterm>
+
+ <para>Το <application>Gnumeric</application> είναι ένα υπολογιστικό
+ φύλλο και αποτελεί μέρος του περιβάλλοντος εργασίας
+ <application>GNOME</application>. Διαθέτει βολική αυτόματη
+ <quote>πρόβλεψη</quote> της εισόδου του χρήστη σύμφωνα με τη μορφή του
+ κελιού καθώς και σύστημα αυτόματης συμπλήρωσης (autofill) για διάφορες
+ ακολουθίες. Μπορεί να εισάγει αρχεία διάφορων δημοφιλών μορφών, όπως
+ αυτά που χρησιμοποιούνται στο <application>Excel</application>, το
+ <application>Lotus 1-2-3</application>, ή το
+ <application>Quattro Pro</application>.
+ Το <application>Gnumeric</application> υποστηρίζει γραφήματα μέσω του
+ προγράμματος γραφικών
+ <filename role="package">math/guppi</filename>. Έχει μεγάλο αριθμό
+ ενσωματωμένων συναρτήσεων και επιτρέπει όλες τις συνήθεις μορφές
+ κελιών, όπως αριθμούς, νομισματικές μονάδες, ημερομηνίες, ώρες και
+ πολλές ακόμα.</para>
+
+ <para>Για να εγκαταστήσετε το <application>Gnumeric</application> ως
+ πακέτο, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gnumeric</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την
+ Συλλογή των Ports, γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/math/gnumeric</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Abacus</title>
+ <indexterm>
+ <primary><application>Abacus</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary>spreadsheet</primary>
+ <secondary><application>Abacus</application></secondary>
+ </indexterm>
+
+ <para>Το <application>Abacus</application> είναι ένα μικρό και εύκολο
+ στη χρήση υπολογιστικό φύλλο. Περιλαμβάνει πολλές ενσωματωμένες
+ συναρτήσεις οι οποίες είναι χρήσιμες σε διάφορα πεδία, όπως η
+ στατιστική, τα χρηματοοικονομικά και τα μαθηματικά. Μπορεί να εισάγει
+ και να εξάγει αρχεία του <application>Excel</application>. Το
+ <application>Abacus</application> μπορεί να παράγει έξοδο μορφής
+ &postscript;.</para>
+
+ <para>Για να εγκαταστήσετε το <application>Abacus</application> ως
+ πακέτο, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r abacus</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την
+ Συλλογή των Ports, γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/deskutils/abacus</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>KMyMoney</title>
+
+ <indexterm><primary><application>KMyMoney</application></primary></indexterm>
+
+ <indexterm>
+ <primary>spreadsheet</primary>
+ <secondary><application>KMyMoney</application></secondary>
+ </indexterm>
+
+ <para>Το <application>KMyMoney</application> είναι μια εφαρμογή
+ διαχείρισης των προσωπικών σας οικονομικών, φτιαγμένη για το
+ περιβάλλον <application>KDE</application>. To
+ <application>KMyMoney</application> στοχεύει να παρέχει και
+ να ενσωματώσει όλες τις λειτουργίες που διατίθενται σε αντίστοιχες
+ εμπορικές εφαρμογές. Το <application>KMyMoney</application> μπορεί
+ να εισάγει αρχεία του προτύπου QIF (Quicken Interchange Format),
+ να τηρεί καταγραφή των επενδύσεων σας, να χειρίζεται πολλαπλές
+ νομισματικές μονάδες και να παρέχει πλήθος αναφορών. Μέσα από
+ ξεχωριστό plugin, παρέχεται επίσης η δυνατότητα εισαγωγής αρχείων
+ OFX.</para>
+
+ <para>Για να εγκαταστήσετε το <application>KMyMoney</application> ως
+ πακέτο, εκτελέστε την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r kmymoney2</userinput></screen>
+
+ <para>Αν το πακέτο δεν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την
+ Συλλογή των Ports, όπως φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/finance/kmymoney2</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+ </sect2>
+ </sect1>
+
+ <sect1 id="desktop-summary">
+ <title>Περίληψη</title>
+
+ <para>Αν και το &os; είναι δημοφιλές στους παροχείς Internet (ISPs) για
+ την απόδοση και τη σταθερότητα του, είναι επίσης έτοιμο και για
+ καθημερινή χρήση ως desktop. Με αρκετές χιλιάδες εφαρμογές διαθέσιμες
+ ως <ulink url="http://www.FreeBSD.org/applications.html">πακέτα</ulink> ή
+ <ulink url="http://www.FreeBSD.org/ports/index.html">ports</ulink>,
+ μπορείτε να δημιουργήσετε το τέλειο desktop που καλύπτει όλες τις
+ ανάγκες σας.</para>
+
+ <para>Παρακάτω, φαίνεται μια γρήγορη περίληψη όλων των desktop εφαρμογών
+ που παρουσιάστηκαν σε αυτό το κεφάλαιο:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Όνομα Εφαρμογής</entry>
+ <entry>Όνομα Πακέτου</entry>
+ <entry>Όνομα Port</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><application>Opera</application></entry>
+ <entry><literal>opera</literal></entry>
+ <entry><filename role="package">www/opera</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>Firefox</application></entry>
+ <entry><literal>firefox</literal></entry>
+ <entry><filename role="package">www/firefox</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>Chromium</application></entry>
+ <entry><literal>chromium</literal></entry>
+ <entry><filename role="package">www/chromium</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>KOffice</application></entry>
+ <entry><literal>koffice</literal></entry>
+ <entry><filename role="package">editors/koffice-kde3</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>AbiWord</application></entry>
+ <entry><literal>abiword</literal></entry>
+ <entry><filename role="package">editors/abiword</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>The GIMP</application></entry>
+ <entry><literal>gimp</literal></entry>
+ <entry><filename role="package">graphics/gimp</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>OpenOffice.org</application></entry>
+ <entry><literal>openoffice</literal></entry>
+ <entry><filename role="package">editors/openoffice.org-3</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>LibreOffice</application></entry>
+ <entry><literal>libreoffice</literal></entry>
+ <entry><filename role="package">editors/libreoffice</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>&acrobat.reader;</application></entry>
+ <entry><literal>acroread</literal></entry>
+ <entry><filename role="package">print/acroread8</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>gv</application></entry>
+ <entry><literal>gv</literal></entry>
+ <entry><filename role="package">print/gv</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>Xpdf</application></entry>
+ <entry><literal>xpdf</literal></entry>
+ <entry><filename role="package">graphics/xpdf</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>GQview</application></entry>
+ <entry><literal>gqview</literal></entry>
+ <entry><filename role="package">graphics/gqview</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>GnuCash</application></entry>
+ <entry><literal>gnucash</literal></entry>
+ <entry><filename role="package">finance/gnucash</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>Gnumeric</application></entry>
+ <entry><literal>gnumeric</literal></entry>
+ <entry><filename role="package">math/gnumeric</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>Abacus</application></entry>
+ <entry><literal>abacus</literal></entry>
+ <entry><filename role="package">deskutils/abacus</filename></entry>
+ </row>
+
+ <row>
+ <entry><application>KMyMoney</application></entry>
+ <entry><literal>kmymoney2</literal></entry>
+ <entry><filename role="package">finance/kmymoney2</filename></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/disks/chapter.sgml b/el_GR.ISO8859-7/books/handbook/disks/chapter.sgml
new file mode 100644
index 0000000000..d9ae80a372
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/disks/chapter.sgml
@@ -0,0 +1,4161 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Αποθηκευτικά Μέσα
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/disks/chapter.sgml
+ %SRCID% 1.1
+
+-->
+
+<chapter id="disks">
+ <title>Αποθηκευτικά Μέσα</title>
+
+ <sect1 id="disks-synopsis">
+ <title>Σύνοψη</title>
+
+
+ <para>Το κεφάλαιο αυτό καλύπτει την χρήση των δίσκων στο &os;.
+ Περιλαμβάνει δίσκους που υποστηρίζονται από μνήμη, δίσκους συνδεδεμένους
+ απευθείας στο δίκτυο, τις τυπικές συσκευές αποθήκευσης SCSI/IDE, καθώς
+ και συσκευές που χρησιμοποιούν διεπαφή USB.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+ <itemizedlist>
+ <listitem><para>Την ορολογία που χρησιμοποιεί το &os; για να περιγράψει
+ την οργάνωση των δεδομένων στο φυσικό μέσο του δίσκου
+ (partitions - κατατμήσεις - και slices).</para>
+ </listitem>
+
+ <listitem><para>Πως να προσθέσετε νέους σκληρούς δίσκους στο
+ σύστημα σας.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να ρυθμίσετε το &os; να χρησιμοποιεί συσκευές
+ αποθήκευσης USB.</para>
+ </listitem>
+ <listitem><para>Πως να ρυθμίσετε εικονικά συστήματα αρχείων, όπως
+ δίσκους που αποθηκεύονται σε μνήμη RAM.</para></listitem>
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε quotas για να περιορίσετε τη χρήση
+ χώρου στο δίσκο.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να κρυπτογραφήσετε δίσκους για να τους ασφαλίσετε
+ από επιθέσεις.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να δημιουργήσετε και να γράψετε CD και DVD
+ στο &os;.</para>
+ </listitem>
+ <listitem>
+ <para>Τα διάφορα διαθέσιμα μέσα αποθήκευσης για αντίγραφα
+ ασφαλείας.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε προγράμματα λήψης αντιγράφων
+ ασφαλείας στο &os;.</para>
+ </listitem>
+ <listitem>
+ <para>Πως να πάρετε αντίγραφα ασφαλείας σε δισκέττες.</para>
+ </listitem>
+ <listitem>
+ <para>Τι είναι οι εικόνες (snapshots) σε ένα σύστημα αρχείων και πως
+ να τις χρησιμοποιήσετε αποδοτικά.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να ξέρετε πως θα ρυθμίσετε και θα εγκαταστήσετε ένα νέο πυρήνα
+ του &os; (<xref linkend="kernelconfig">).</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect1>
+
+ <sect1 id="disks-naming">
+ <title>Device Names</title>
+
+ <para>The following is a list of physical storage devices
+ supported in FreeBSD, and the device names associated with
+ them.</para>
+
+ <table id="disk-naming-physical-table" frame="none">
+ <title>Physical Disk Naming Conventions</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Drive type</entry>
+ <entry>Drive device name</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>IDE hard drives</entry>
+ <entry><literal>ad</literal></entry>
+ </row>
+ <row>
+ <entry>IDE CDROM drives</entry>
+ <entry><literal>acd</literal></entry>
+ </row>
+ <row>
+ <entry>SCSI hard drives and USB Mass storage devices</entry>
+ <entry><literal>da</literal></entry>
+ </row>
+ <row>
+ <entry>SCSI CDROM drives</entry>
+ <entry><literal>cd</literal></entry>
+ </row>
+ <row>
+ <entry>Assorted non-standard CDROM drives</entry>
+ <entry><literal>mcd</literal> for Mitsumi CD-ROM and
+ <literal>scd</literal> for Sony CD-ROM devices
+ </entry>
+ </row>
+ <row>
+ <entry>Floppy drives</entry>
+ <entry><literal>fd</literal></entry>
+ </row>
+ <row>
+ <entry>SCSI tape drives</entry>
+ <entry><literal>sa</literal></entry>
+ </row>
+ <row>
+ <entry>IDE tape drives</entry>
+ <entry><literal>ast</literal></entry>
+ </row>
+ <row>
+ <entry>Flash drives</entry>
+ <entry><literal>fla</literal> for &diskonchip; Flash device</entry>
+ </row>
+ <row>
+ <entry>RAID drives</entry>
+ <entry><literal>aacd</literal> for &adaptec; AdvancedRAID,
+ <literal>mlxd</literal> and <literal>mlyd</literal>
+ for &mylex;,
+ <literal>amrd</literal> for AMI &megaraid;,
+ <literal>idad</literal> for Compaq Smart RAID,
+ <literal>twed</literal> for &tm.3ware; RAID.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect1>
+
+ <sect1 id="disks-adding">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>David</firstname>
+ <surname>O'Brien</surname>
+ <contrib>Originally contributed by </contrib>
+ </author>
+ </authorgroup>
+ <!-- 26 Apr 1998 -->
+ </sect1info>
+
+ <title>Adding Disks</title>
+
+ <indexterm>
+ <primary>disks</primary>
+ <secondary>adding</secondary>
+ </indexterm>
+
+ <para>Lets say we want to add a new SCSI disk to a machine that
+ currently only has a single drive. First turn off the computer
+ and install the drive in the computer following the instructions
+ of the computer, controller, and drive manufacturer. Due to the
+ wide variations of procedures to do this, the details are beyond
+ the scope of this document.</para>
+
+ <para>Login as user <username>root</username>. After you have installed the
+ drive, inspect <filename>/var/run/dmesg.boot</filename> to ensure the new
+ disk was found. Continuing with our example, the newly added drive will
+ be <devicename>da1</devicename> and we want to mount it on
+ <filename>/1</filename> (if you are adding an IDE drive, the device name
+ will be <devicename>ad1</devicename>).</para>
+
+ <indexterm><primary>partitions</primary></indexterm>
+ <indexterm><primary>slices</primary></indexterm>
+ <indexterm>
+ <primary><command>fdisk</command></primary>
+ </indexterm>
+
+ <para>FreeBSD runs on IBM-PC compatible computers, therefore it must
+ take into account the PC BIOS partitions. These are different
+ from the traditional BSD partitions. A PC disk has up to four
+ BIOS partition entries. If the disk is going to be truly
+ dedicated to FreeBSD, you can use the
+ <emphasis>dedicated</emphasis> mode. Otherwise, FreeBSD will
+ have to live within one of the PC BIOS partitions. FreeBSD
+ calls the PC BIOS partitions <emphasis>slices</emphasis> so as
+ not to confuse them with traditional BSD partitions. You may
+ also use slices on a disk that is dedicated to FreeBSD, but used
+ in a computer that also has another operating system installed.
+ This is a good way to avoid confusing the <command>fdisk</command> utility of
+ other, non-FreeBSD operating systems.</para>
+
+ <para>In the slice case the drive will be added as
+ <filename>/dev/da1s1e</filename>. This is read as: SCSI disk,
+ unit number 1 (second SCSI disk), slice 1 (PC BIOS partition 1),
+ and <filename>e</filename> BSD partition. In the dedicated
+ case, the drive will be added simply as
+ <filename>/dev/da1e</filename>.</para>
+
+ <para>Due to the use of 32-bit integers to store the number of sectors,
+ &man.bsdlabel.8; is
+ limited to 2^32-1 sectors per disk or 2TB in most cases. The
+ &man.fdisk.8; format allows a starting sector of no more than
+ 2^32-1 and a length of no more than 2^32-1, limiting partitions to
+ 2TB and disks to 4TB in most cases. The &man.sunlabel.8; format
+ is limited to 2^32-1 sectors per partition and 8 partitions for
+ a total of 16TB. For larger disks, &man.gpt.8; partitions may be
+ used.</para>
+
+ <sect2>
+ <title>Using &man.sysinstall.8;</title>
+ <indexterm>
+ <primary><application>sysinstall</application></primary>
+ <secondary>adding disks</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>su</primary>
+ </indexterm>
+ <procedure>
+ <step>
+ <title>Navigating <application>Sysinstall</application></title>
+
+ <para>You may use <command>sysinstall</command> to
+ partition and label a new disk using its easy to use menus.
+ Either login as user <username>root</username> or use the
+ <command>su</command> command. Run
+ <command>sysinstall</command> and enter the
+ <literal>Configure</literal> menu. Within the
+ <literal>FreeBSD Configuration Menu</literal>, scroll down and
+ select the <literal>Fdisk</literal> option.</para>
+ </step>
+
+ <step>
+ <title><application>fdisk</application> Partition Editor</title>
+ <para>Once inside <application>fdisk</application>, typing <userinput>A</userinput> will
+ use the entire disk for FreeBSD. When asked if you want to
+ <quote>remain cooperative with any future possible operating
+ systems</quote>, answer <literal>YES</literal>. Write the
+ changes to the disk using <userinput>W</userinput>. Now exit the
+ FDISK editor by typing <userinput>q</userinput>. Next you will be
+ asked about the <quote>Master Boot Record</quote>. Since you are adding a
+ disk to an already running system, choose
+ <literal>None</literal>.</para>
+ </step>
+
+ <step>
+ <title>Disk Label Editor</title>
+ <indexterm><primary>BSD partitions</primary></indexterm>
+
+ <para>Next, you need to exit <application>sysinstall</application>
+ and start it again. Follow the directions above, although this
+ time choose the <literal>Label</literal> option. This will
+ enter the <literal>Disk Label Editor</literal>. This
+ is where you will create the traditional BSD partitions. A
+ disk can have up to eight partitions, labeled
+ <literal>a-h</literal>.
+ A few of the partition labels have special uses. The
+ <literal>a</literal> partition is used for the root partition
+ (<filename>/</filename>). Thus only your system disk (e.g,
+ the disk you boot from) should have an <literal>a</literal>
+ partition. The <literal>b</literal> partition is used for
+ swap partitions, and you may have many disks with swap
+ partitions. The <literal>c</literal> partition addresses the
+ entire disk in dedicated mode, or the entire FreeBSD slice in
+ slice mode. The other partitions are for general use.</para>
+
+ <para><application>sysinstall</application>'s Label editor
+ favors the <literal>e</literal>
+ partition for non-root, non-swap partitions. Within the
+ Label editor, create a single file system by typing
+ <userinput>C</userinput>. When prompted if this will be a FS
+ (file system) or swap, choose <literal>FS</literal> and type in a
+ mount point (e.g, <filename>/mnt</filename>). When adding a
+ disk in post-install mode, <application>sysinstall</application>
+ will not create entries
+ in <filename>/etc/fstab</filename> for you, so the mount point
+ you specify is not important.</para>
+
+ <para>You are now ready to write the new label to the disk and
+ create a file system on it. Do this by typing
+ <userinput>W</userinput>. Ignore any errors from
+ <application>sysinstall</application> that
+ it could not mount the new partition. Exit the Label Editor
+ and <application>sysinstall</application> completely.</para>
+ </step>
+
+ <step>
+ <title>Finish</title>
+
+ <para>The last step is to edit <filename>/etc/fstab</filename>
+ to add an entry for your new disk.</para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2>
+ <title>Using Command Line Utilities</title>
+
+ <sect3>
+ <title>Using Slices</title>
+
+ <para>This setup will allow your disk to work correctly with
+ other operating systems that might be installed on your
+ computer and will not confuse other operating systems'
+ <command>fdisk</command> utilities. It is recommended
+ to use this method for new disk installs. Only use
+ <literal>dedicated</literal> mode if you have a good reason
+ to do so!</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 bs=1k count=1</userinput>
+&prompt.root; <userinput>fdisk -BI da1</userinput> #Initialize your new disk
+&prompt.root; <userinput>bsdlabel -B -w -r da1s1 auto</userinput> #Label it.
+&prompt.root; <userinput>bsdlabel -e da1s1</userinput> # Edit the bsdlabel just created and add any partitions.
+&prompt.root; <userinput>mkdir -p /1</userinput>
+&prompt.root; <userinput>newfs /dev/da1s1e</userinput> # Repeat this for every partition you created.
+&prompt.root; <userinput>mount /dev/da1s1e /1</userinput> # Mount the partition(s)
+&prompt.root; <userinput>vi /etc/fstab</userinput> # Add the appropriate entry/entries to your <filename>/etc/fstab</filename>.</screen>
+
+ <para>If you have an IDE disk, substitute <filename>ad</filename>
+ for <filename>da</filename>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Dedicated</title>
+ <indexterm><primary>OS/2</primary></indexterm>
+
+ <para>If you will not be sharing the new drive with another operating
+ system, you may use the <literal>dedicated</literal> mode. Remember
+ this mode can confuse Microsoft operating systems; however, no damage
+ will be done by them. IBM's &os2; however, will
+ <quote>appropriate</quote> any partition it finds which it does not
+ understand.</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 bs=1k count=1</userinput>
+&prompt.root; <userinput>bsdlabel -Brw da1 auto</userinput>
+&prompt.root; <userinput>bsdlabel -e da1</userinput> # create the `e' partition
+&prompt.root; <userinput>newfs -d0 /dev/da1e</userinput>
+&prompt.root; <userinput>mkdir -p /1</userinput>
+&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e
+&prompt.root; <userinput>mount /1</userinput></screen>
+
+ <para>An alternate method is:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da1 count=2</userinput>
+&prompt.root; <userinput>bsdlabel /dev/da1 | bsdlabel -BrR da1 /dev/stdin</userinput>
+&prompt.root; <userinput>newfs /dev/da1e</userinput>
+&prompt.root; <userinput>mkdir -p /1</userinput>
+&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e
+&prompt.root; <userinput>mount /1</userinput></screen>
+
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="raid">
+ <title>RAID</title>
+
+ <sect2 id="raid-soft">
+ <title>Software RAID</title>
+
+ <sect3 id="ccd">
+ <sect3info>
+ <authorgroup>
+ <author>
+ <firstname>Christopher</firstname>
+ <surname>Shumway</surname>
+ <contrib>Original work by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Brown</surname>
+ <contrib>Revised by </contrib>
+ </author>
+ </authorgroup>
+ </sect3info>
+
+<indexterm><primary>RAID</primary><secondary>software</secondary></indexterm>
+<indexterm>
+ <primary>RAID</primary><secondary>CCD</secondary>
+</indexterm>
+
+ <title>Concatenated Disk Driver (CCD) Configuration</title>
+ <para>When choosing a mass storage solution the most important
+ factors to consider are speed, reliability, and cost. It is
+ rare to have all three in balance; normally a fast, reliable mass
+ storage device is expensive, and to cut back on cost either speed
+ or reliability must be sacrificed.</para>
+
+ <para>In designing the system described below, cost was chosen
+ as the most important factor, followed by speed, then reliability.
+ Data transfer speed for this system is ultimately
+ constrained by the network. And while reliability is very important,
+ the CCD drive described below serves online data that is already
+ fully backed up on CD-R's and can easily be replaced.</para>
+
+ <para>Defining your own requirements is the first step
+ in choosing a mass storage solution. If your requirements prefer
+ speed or reliability over cost, your solution will differ from
+ the system described in this section.</para>
+
+
+ <sect4 id="ccd-installhw">
+ <title>Installing the Hardware</title>
+
+ <para>In addition to the IDE system disk, three Western
+ Digital 30GB, 5400 RPM IDE disks form the core
+ of the CCD disk described below providing approximately
+ 90GB of online storage. Ideally,
+ each IDE disk would have its own IDE controller
+ and cable, but to minimize cost, additional
+ IDE controllers were not used. Instead the disks were
+ configured with jumpers so that each IDE controller has
+ one master, and one slave.</para>
+
+ <para>Upon reboot, the system BIOS was configured to
+ automatically detect the disks attached. More importantly,
+ FreeBSD detected them on reboot:</para>
+
+ <programlisting>ad0: 19574MB &lt;WDC WD205BA&gt; [39770/16/63] at ata0-master UDMA33
+ad1: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata0-slave UDMA33
+ad2: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata1-master UDMA33
+ad3: 29333MB &lt;WDC WD307AA&gt; [59598/16/63] at ata1-slave UDMA33</programlisting>
+
+ <note><para>If FreeBSD does not detect all the disks, ensure
+ that you have jumpered them correctly. Most IDE drives
+ also have a <quote>Cable Select</quote> jumper. This is
+ <emphasis>not</emphasis> the jumper for the master/slave
+ relationship. Consult the drive documentation for help in
+ identifying the correct jumper.</para></note>
+
+ <para>Next, consider how to attach them as part of the file
+ system. You should research both &man.vinum.8; (<xref
+ linkend="vinum-vinum">) and &man.ccd.4;. In this
+ particular configuration, &man.ccd.4; was chosen.</para>
+ </sect4>
+
+ <sect4 id="ccd-setup">
+ <title>Setting Up the CCD</title>
+
+ <para>The &man.ccd.4; driver allows you to take
+ several identical disks and concatenate them into one
+ logical file system. In order to use
+ &man.ccd.4;, you need a kernel with
+ &man.ccd.4; support built in.
+ Add this line to your kernel configuration file, rebuild, and
+ reinstall the kernel:</para>
+
+ <programlisting>device ccd</programlisting>
+
+ <para>The &man.ccd.4; support can also be
+ loaded as a kernel loadable module.</para>
+
+ <para>To set up &man.ccd.4;, you must first use
+ &man.bsdlabel.8; to label the disks:</para>
+
+ <programlisting>bsdlabel -r -w ad1 auto
+bsdlabel -r -w ad2 auto
+bsdlabel -r -w ad3 auto</programlisting>
+
+ <para>This creates a bsdlabel for <devicename>ad1c</devicename>, <devicename>ad2c</devicename> and <devicename>ad3c</devicename> that
+ spans the entire disk.</para>
+
+ <para>The next step is to change the disk label type. You
+ can use &man.bsdlabel.8; to edit the
+ disks:</para>
+
+ <programlisting>bsdlabel -e ad1
+bsdlabel -e ad2
+bsdlabel -e ad3</programlisting>
+
+ <para>This opens up the current disk label on each disk with
+ the editor specified by the <envar>EDITOR</envar>
+ environment variable, typically &man.vi.1;.</para>
+
+ <para>An unmodified disk label will look something like
+ this:</para>
+
+ <programlisting>8 partitions:
+# size offset fstype [fsize bsize bps/cpg]
+ c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)</programlisting>
+
+ <para>Add a new <literal>e</literal> partition for &man.ccd.4; to use. This
+ can usually be copied from the <literal>c</literal> partition,
+ but the <option>fstype</option> <emphasis>must</emphasis>
+ be <userinput>4.2BSD</userinput>. The disk label should
+ now look something like this:</para>
+
+ <programlisting>8 partitions:
+# size offset fstype [fsize bsize bps/cpg]
+ c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)
+ e: 60074784 0 4.2BSD 0 0 0 # (Cyl. 0 - 59597)</programlisting>
+
+ </sect4>
+
+ <sect4 id="ccd-buildingfs">
+ <title>Building the File System</title>
+
+ <para>Now that you have all the disks labeled, you must
+ build the &man.ccd.4;. To do that,
+ use &man.ccdconfig.8;, with options similar to the following:</para>
+
+ <programlisting>ccdconfig ccd0<co id="co-ccd-dev"> 32<co id="co-ccd-interleave"> 0<co id="co-ccd-flags"> /dev/ad1e<co id="co-ccd-devs"> /dev/ad2e /dev/ad3e</programlisting>
+
+ <para>The use and meaning of each option is shown below:</para>
+
+ <calloutlist>
+ <callout arearefs="co-ccd-dev">
+ <para>The first argument is the device to configure, in this case,
+ <filename>/dev/ccd0c</filename>. The <filename>/dev/</filename>
+ portion is optional.</para>
+ </callout>
+
+ <callout arearefs="co-ccd-interleave">
+
+ <para>The interleave for the file system. The interleave
+ defines the size of a stripe in disk blocks, each normally 512 bytes.
+ So, an interleave of 32 would be 16,384 bytes.</para>
+ </callout>
+
+ <callout arearefs="co-ccd-flags">
+ <para>Flags for &man.ccdconfig.8;. If you want to enable drive
+ mirroring, you can specify a flag here. This
+ configuration does not provide mirroring for
+ &man.ccd.4;, so it is set at 0 (zero).</para>
+ </callout>
+
+ <callout arearefs="co-ccd-devs">
+ <para>The final arguments to &man.ccdconfig.8;
+ are the devices to place into the array. Use the complete pathname
+ for each device.</para>
+ </callout>
+ </calloutlist>
+
+
+ <para>After running &man.ccdconfig.8; the &man.ccd.4;
+ is configured. A file system can be installed. Refer to &man.newfs.8;
+ for options, or simply run: </para>
+
+ <programlisting>newfs /dev/ccd0c</programlisting>
+
+
+ </sect4>
+
+ <sect4 id="ccd-auto">
+ <title>Making it All Automatic</title>
+
+ <para>Generally, you will want to mount the
+ &man.ccd.4; upon each reboot. To do this, you must
+ configure it first. Write out your current configuration to
+ <filename>/etc/ccd.conf</filename> using the following command:</para>
+
+ <programlisting>ccdconfig -g &gt; /etc/ccd.conf</programlisting>
+
+ <para>During reboot, the script <command>/etc/rc</command>
+ runs <command>ccdconfig -C</command> if <filename>/etc/ccd.conf</filename>
+ exists. This automatically configures the
+ &man.ccd.4; so it can be mounted.</para>
+
+ <note><para>If you are booting into single user mode, before you can
+ &man.mount.8; the &man.ccd.4;, you
+ need to issue the following command to configure the
+ array:</para>
+
+ <programlisting>ccdconfig -C</programlisting>
+ </note>
+
+ <para>To automatically mount the &man.ccd.4;,
+ place an entry for the &man.ccd.4; in
+ <filename>/etc/fstab</filename> so it will be mounted at
+ boot time:</para>
+
+ <programlisting>/dev/ccd0c /media ufs rw 2 2</programlisting>
+ </sect4>
+ </sect3>
+
+ <sect3 id="vinum">
+ <title>The Vinum Volume Manager</title>
+
+<indexterm><primary>RAID</primary><secondary>software</secondary></indexterm>
+<indexterm>
+ <primary>RAID</primary>
+ <secondary>Vinum</secondary>
+</indexterm>
+
+ <para>The Vinum Volume Manager is a block device driver which
+ implements virtual disk drives. It isolates disk hardware
+ from the block device interface and maps data in ways which
+ result in an increase in flexibility, performance and
+ reliability compared to the traditional slice view of disk
+ storage. &man.vinum.8; implements the RAID-0, RAID-1 and
+ RAID-5 models, both individually and in combination.</para>
+
+ <para>See <xref linkend="vinum-vinum"> for more
+ information about &man.vinum.8;.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="raid-hard">
+ <title>Hardware RAID</title>
+
+ <indexterm>
+ <primary>RAID</primary>
+ <secondary>hardware</secondary>
+ </indexterm>
+
+ <para>FreeBSD also supports a variety of hardware <acronym>RAID</acronym>
+ controllers. These devices control a <acronym>RAID</acronym> subsystem
+ without the need for FreeBSD specific software to manage the
+ array.</para>
+
+ <para>Using an on-card <acronym>BIOS</acronym>, the card controls most of the disk operations
+ itself. The following is a brief setup description using a Promise <acronym>IDE</acronym> <acronym>RAID</acronym>
+ controller. When this card is installed and the system is started up, it
+ displays a prompt requesting information. Follow the instructions
+ to enter the card's setup screen. From here, you have the ability to
+ combine all the attached drives. After doing so, the disk(s) will look like
+ a single drive to FreeBSD. Other <acronym>RAID</acronym> levels can be set up
+ accordingly.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Rebuilding ATA RAID1 Arrays</title>
+
+ <para>FreeBSD allows you to hot-replace a failed disk in an array. This requires
+ that you catch it before you reboot.</para>
+
+ <para>You will probably see something like the following in <filename>/var/log/messages</filename> or in the &man.dmesg.8;
+ output:</para>
+
+ <programlisting>ad6 on monster1 suffered a hard error.
+ad6: READ command timeout tag=0 serv=0 - resetting
+ad6: trying fallback to PIO mode
+ata3: resetting devices .. done
+ad6: hard error reading fsbn 1116119 of 0-7 (ad6 bn 1116119; cn 1107 tn 4 sn 11)\\
+status=59 error=40
+ar0: WARNING - mirror lost</programlisting>
+
+ <para>Using &man.atacontrol.8;, check for further information:</para>
+
+ <screen>&prompt.root; <userinput>atacontrol list</userinput>
+ATA channel 0:
+ Master: no device present
+ Slave: acd0 &lt;HL-DT-ST CD-ROM GCR-8520B/1.00&gt; ATA/ATAPI rev 0
+
+ATA channel 1:
+ Master: no device present
+ Slave: no device present
+
+ATA channel 2:
+ Master: ad4 &lt;MAXTOR 6L080J4/A93.0500&gt; ATA/ATAPI rev 5
+ Slave: no device present
+
+ATA channel 3:
+ Master: ad6 &lt;MAXTOR 6L080J4/A93.0500&gt; ATA/ATAPI rev 5
+ Slave: no device present
+
+&prompt.root; <userinput>atacontrol status ar0</userinput>
+ar0: ATA RAID1 subdisks: ad4 ad6 status: DEGRADED</screen>
+
+ <procedure>
+ <step>
+ <para>You will first need to detach the ata channel with the failed
+ disk so you can safely remove it:</para>
+
+ <screen>&prompt.root; <userinput>atacontrol detach ata3</userinput></screen>
+ </step>
+
+ <step>
+ <para>Replace the disk.</para>
+ </step>
+
+ <step>
+ <para>Reattach the ata channel:</para>
+
+ <screen>&prompt.root; <userinput>atacontrol attach ata3</userinput>
+Master: ad6 &lt;MAXTOR 6L080J4/A93.0500&gt; ATA/ATAPI rev 5
+Slave: no device present</screen>
+ </step>
+
+ <step>
+ <para>Add the new disk to the array as a spare:</para>
+
+ <screen>&prompt.root; <userinput>atacontrol addspare ar0 ad6</userinput></screen>
+ </step>
+
+ <step>
+ <para>Rebuild the array:</para>
+
+ <screen>&prompt.root; <userinput>atacontrol rebuild ar0</userinput></screen>
+ </step>
+
+ <step>
+ <para>It is possible to check on the progress by issuing the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>dmesg | tail -10</userinput>
+[output removed]
+ad6: removed from configuration
+ad6: deleted from ar0 disk1
+ad6: inserted into ar0 disk1 as spare
+
+&prompt.root; <userinput>atacontrol status ar0</userinput>
+ar0: ATA RAID1 subdisks: ad4 ad6 status: REBUILDING 0% completed</screen>
+ </step>
+
+ <step>
+ <para>Wait until this operation completes.</para>
+ </step>
+ </procedure>
+ </sect2>
+ </sect1>
+
+ <sect1 id="usb-disks">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <!-- Jul 2004 -->
+ </sect1info>
+
+ <title>USB Storage Devices</title>
+ <indexterm>
+ <primary>USB</primary>
+ <secondary>disks</secondary>
+ </indexterm>
+
+ <para>A lot of external storage solutions, nowadays, use the
+ Universal Serial Bus (USB): hard drives, USB thumbdrives, CD-R
+ burners, etc. &os; provides support for these devices.</para>
+
+ <sect2>
+ <title>Configuration</title>
+
+ <para>The USB mass storage devices driver, &man.umass.4;,
+ provides the support for USB storage devices. If you use the
+ <filename>GENERIC</filename> kernel, you do not have to change
+ anything in your configuration. If you use a custom kernel,
+ be sure that the following lines are present in your kernel
+ configuration file:</para>
+
+ <programlisting>device scbus
+device da
+device pass
+device uhci
+device ohci
+device usb
+device umass</programlisting>
+
+ <para>The &man.umass.4; driver uses the SCSI subsystem to access
+ to the USB storage devices, your USB device will be seen as a
+ SCSI device by the system. Depending on the USB chipset on
+ your motherboard, you only need either <literal>device
+ uhci</literal> or <literal>device ohci</literal>, however
+ having both in the kernel configuration file is harmless. Do
+ not forget to compile and install the new kernel if you added
+ any lines.</para>
+
+ <note>
+ <para>If your USB device is a CD-R or DVD burner, the SCSI CD-ROM
+ driver, &man.cd.4;, must be added to the kernel via the
+ line:</para>
+
+ <programlisting>device cd</programlisting>
+
+ <para>Since the burner is seen as a SCSI drive, the driver
+ &man.atapicam.4; should not be used in the kernel
+ configuration.</para>
+ </note>
+
+ <para>Support for USB 2.0 controllers is provided on
+ &os;; however, you must add:</para>
+
+ <programlisting>device ehci</programlisting>
+
+ <para>to your configuration file for USB 2.0 support. Note
+ &man.uhci.4; and &man.ohci.4; drivers are still needed if you
+ want USB 1.X support.</para>
+ </sect2>
+
+ <sect2>
+ <title>Testing the Configuration</title>
+
+ <para>The configuration is ready to be tested: plug in your USB
+ device, and in the system message buffer (&man.dmesg.8;), the
+ drive should appear as something like:</para>
+
+ <screen>umass0: USB Solid state disk, rev 1.10/1.00, addr 2
+GEOM: create disk da0 dp=0xc2d74850
+da0 at umass-sim0 bus 0 target 0 lun 0
+da0: &lt;Generic Traveling Disk 1.11&gt; Removable Direct Access SCSI-2 device
+da0: 1.000MB/s transfers
+da0: 126MB (258048 512 byte sectors: 64H 32S/T 126C)</screen>
+
+ <para>Of course, the brand, the device node
+ (<devicename>da0</devicename>) and other details can differ
+ according to your configuration.</para>
+
+ <para>Since the USB device is seen as a SCSI one, the
+ <command>camcontrol</command> command can be used to list the
+ USB storage devices attached to the system:</para>
+
+ <screen>&prompt.root; <userinput>camcontrol devlist</userinput>
+&lt;Generic Traveling Disk 1.11&gt; at scbus0 target 0 lun 0 (da0,pass0)</screen>
+
+ <para>If the drive comes with a file system, you should be able
+ to mount it. The <xref linkend="disks-adding"> will help you
+ to format and create partitions on the USB drive if
+ needed.</para>
+
+ <para>To make this device mountable as a normal user, certain
+ steps have to be taken. First, the devices that are created
+ when a USB storage device is connected need to be accessible
+ by the user. A solution is to make all users of these devices
+ a member of the <groupname>operator</groupname> group. This
+ is done with &man.pw.8;. Second, when the devices are
+ created, the <groupname>operator</groupname> group should be
+ able to read and write them. This is accomplished by adding
+ these lines to
+ <filename>/etc/devfs.rules</filename>:</para>
+
+ <programlisting>[localrules=1]
+add path 'da*' mode 0660 group operator</programlisting>
+
+ <note>
+ <para>If there already are SCSI disks in the system, it must
+ be done a bit different. E.g., if the system already
+ contains disks <devicename>da0</devicename> through
+ <devicename>da2</devicename> attached to the system, change
+ the second line as follows:</para>
+
+ <programlisting>add path 'da[3-9]*' mode 0660 group operator</programlisting>
+
+ <para>This will exclude the already existing disks from
+ belonging to the <groupname>operator</groupname>
+ group.</para>
+ </note>
+
+ <para>You also have to enable your &man.devfs.rules.5; ruleset
+ in your <filename>/etc/rc.conf</filename> file:</para>
+
+ <programlisting>devfs_system_ruleset="localrules"</programlisting>
+
+ <para>Next, the kernel has to be configured to allow regular
+ users to mount file systems. The easiest way is to add the
+ following line to
+ <filename>/etc/sysctl.conf</filename>:</para>
+
+ <programlisting>vfs.usermount=1</programlisting>
+
+ <para>Note that this only takes effect after the next reboot.
+ Alternatively, one can also use &man.sysctl.8; to set this
+ variable.</para>
+
+ <para>The final step is to create a directory where the file
+ system is to be mounted. This directory needs to be owned by
+ the user that is to mount the file system. One way to do that
+ is for <username>root</username> to create a subdirectory
+ owned by that user as
+ <filename>/mnt/<replaceable>$USER</replaceable></filename>
+ (replace <replaceable>$USER</replaceable> by the login name of
+ the actual user):</para>
+
+ <screen>&prompt.root; <userinput>mkdir /mnt/$USER</userinput>
+&prompt.root; <userinput>chown <replaceable>$USER</replaceable>:<replaceable>$USER</replaceable> /mnt/<replaceable>$USER</replaceable></userinput></screen>
+
+ <para>Suppose a USB thumbdrive is plugged in, and a device
+ <filename>/dev/da0s1</filename> appears. Since these devices
+ usually come preformatted with a FAT file system, one can
+ mount them like this:</para>
+
+ <screen>&prompt.user; <userinput>mount_msdosfs -m 644 -M 755 /dev/da0s1 /mnt/<replaceable>$USER</replaceable></userinput></screen>
+
+ <para>If you unplug the device (the disk must be unmounted
+ before), you should see, in the system message buffer,
+ something like the following:</para>
+
+ <screen>umass0: at uhub0 port 1 (addr 2) disconnected
+(da0:umass-sim0:0:0:0): lost device
+(da0:umass-sim0:0:0:0): removing device entry
+GEOM: destroy disk da0 dp=0xc2d74850
+umass0: detached</screen>
+ </sect2>
+
+ <sect2>
+ <title>Further Reading</title>
+
+ <para>Beside the <link linkend="disks-adding">Adding
+ Disks</link> and <link linkend="mount-unmount">Mounting and
+ Unmounting File Systems</link> sections, reading various
+ manual pages may be also useful: &man.umass.4;,
+ &man.camcontrol.8;, and &man.usbdevs.8;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="creating-cds">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Mike</firstname>
+ <surname>Meyer</surname>
+ <contrib>Contributed by </contrib>
+ <!-- mwm@mired.org -->
+ </author>
+ </authorgroup>
+ <!-- Apr 2001 -->
+ </sect1info>
+
+ <title>Creating and Using Optical Media (CDs)</title>
+ <indexterm>
+ <primary>CDROMs</primary>
+ <secondary>creating</secondary>
+ </indexterm>
+
+ <sect2>
+ <title>Introduction</title>
+
+ <para>CDs have a number of features that differentiate them from
+ conventional disks. Initially, they were not writable by the
+ user. They are designed so that they can be read continuously without
+ delays to move the head between tracks. They are also much easier
+ to transport between systems than similarly sized media were at the
+ time.</para>
+
+ <para>CDs do have tracks, but this refers to a section of data to
+ be read continuously and not a physical property of the disk. To
+ produce a CD on FreeBSD, you prepare the data files that are going
+ to make up the tracks on the CD, then write the tracks to the
+ CD.</para>
+
+ <indexterm><primary>ISO 9660</primary></indexterm>
+ <indexterm>
+ <primary>file systems</primary>
+ <secondary>ISO 9660</secondary>
+ </indexterm>
+ <para>The ISO 9660 file system was designed to deal with these
+ differences. It unfortunately codifies file system limits that were
+ common then. Fortunately, it provides an extension mechanism that
+ allows properly written CDs to exceed those limits while still
+ working with systems that do not support those extensions.</para>
+
+ <indexterm>
+ <primary><filename role="package">sysutils/cdrtools</filename></primary>
+ </indexterm>
+ <para>The <filename role="package">sysutils/cdrtools</filename>
+ port includes &man.mkisofs.8;, a program that you can use to
+ produce a data file containing an ISO 9660 file
+ system. It has options that support various extensions, and is
+ described below.</para>
+
+ <indexterm>
+ <primary>CD burner</primary>
+ <secondary>ATAPI</secondary>
+ </indexterm>
+ <para>Which tool to use to burn the CD depends on whether your CD burner
+ is ATAPI or something else. ATAPI CD burners use the <command><link
+ linkend="burncd">burncd</link></command> program that is part of
+ the base system. SCSI and USB CD burners should use
+ <command><link linkend="cdrecord">cdrecord</link></command> from
+ the <filename role="package">sysutils/cdrtools</filename> port.
+ It is also possible to use <command><link
+ linkend="cdrecord">cdrecord</link></command> and other tools
+ for SCSI drives on ATAPI hardware with the <link
+ linkend="atapicam">ATAPI/CAM module</link>.</para>
+
+ <para>If you want CD burning software with a graphical user
+ interface, you may wish to take a look at either
+ <application>X-CD-Roast</application> or
+ <application>K3b</application>. These tools are available as
+ packages or from the <filename
+ role="package">sysutils/xcdroast</filename> and <filename
+ role="package">sysutils/k3b</filename> ports.
+ <application>X-CD-Roast</application> and
+ <application>K3b</application> require the <link
+ linkend="atapicam">ATAPI/CAM module</link> with ATAPI
+ hardware.</para>
+ </sect2>
+
+ <sect2 id="mkisofs">
+ <title>mkisofs</title>
+
+ <para>The &man.mkisofs.8; program, which is part of the
+ <filename role="package">sysutils/cdrtools</filename> port,
+ produces an ISO 9660 file system
+ that is an image of a directory tree in the &unix; file system name
+ space. The simplest usage is:</para>
+
+ <screen>&prompt.root; <userinput>mkisofs -o <replaceable>imagefile.iso</replaceable> <replaceable>/path/to/tree</replaceable></userinput></screen>
+
+ <indexterm>
+ <primary>file systems</primary>
+ <secondary>ISO 9660</secondary>
+ </indexterm>
+ <para>This command will create an <replaceable>imagefile.iso</replaceable>
+ containing an ISO 9660 file system that is a copy of the tree at
+ <replaceable>/path/to/tree</replaceable>. In the process, it will
+ map the file names to names that fit the limitations of the
+ standard ISO 9660 file system, and will exclude files that have
+ names uncharacteristic of ISO file systems.</para>
+
+ <indexterm>
+ <primary>file systems</primary>
+ <secondary>HFS</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>file systems</primary>
+ <secondary>Joliet</secondary>
+ </indexterm>
+ <para>A number of options are available to overcome those
+ restrictions. In particular, <option>-R</option> enables the
+ Rock Ridge extensions common to &unix; systems, <option>-J</option>
+ enables Joliet extensions used by Microsoft systems, and
+ <option>-hfs</option> can be used to create HFS file systems used
+ by &macos;.</para>
+
+ <para>For CDs that are going to be used only on FreeBSD systems,
+ <option>-U</option> can be used to disable all filename
+ restrictions. When used with <option>-R</option>, it produces a
+ file system image that is identical to the FreeBSD tree you started
+ from, though it may violate the ISO 9660 standard in a number of
+ ways.</para>
+
+ <indexterm>
+ <primary>CDROMs</primary>
+ <secondary>creating bootable</secondary>
+ </indexterm>
+ <para>The last option of general use is <option>-b</option>. This is
+ used to specify the location of the boot image for use in producing an
+ <quote>El Torito</quote> bootable CD. This option takes an
+ argument which is the path to a boot image from the top of the
+ tree being written to the CD. By default, &man.mkisofs.8; creates an
+ ISO image in the so-called <quote>floppy disk emulation</quote> mode,
+ and thus expects the boot image to be exactly 1200, 1440 or
+ 2880&nbsp;KB in size. Some boot loaders, like the one used by the
+ FreeBSD distribution disks, do not use emulation mode; in this case,
+ the <option>-no-emul-boot</option> option should be used. So, if
+ <filename>/tmp/myboot</filename> holds a bootable FreeBSD system
+ with the boot image in
+ <filename>/tmp/myboot/boot/cdboot</filename>, you could produce the
+ image of an ISO 9660 file system in
+ <filename>/tmp/bootable.iso</filename> like so:</para>
+
+ <screen>&prompt.root; <userinput>mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot</userinput></screen>
+
+ <para>Having done that, if you have <devicename>md</devicename>
+ configured in your kernel, you can mount the file system with:</para>
+
+ <screen>&prompt.root; <userinput>mdconfig -a -t vnode -f /tmp/bootable.iso -u 0</userinput>
+&prompt.root; <userinput>mount -t cd9660 /dev/md0 /mnt</userinput></screen>
+
+ <para>At which point you can verify that <filename>/mnt</filename>
+ and <filename>/tmp/myboot</filename> are identical.</para>
+
+ <para>There are many other options you can use with
+ &man.mkisofs.8; to fine-tune its behavior. In particular:
+ modifications to an ISO 9660 layout and the creation of Joliet
+ and HFS discs. See the &man.mkisofs.8; manual page for details.</para>
+ </sect2>
+
+ <sect2 id="burncd">
+ <title>burncd</title>
+ <indexterm>
+ <primary>CDROMs</primary>
+ <secondary>burning</secondary>
+ </indexterm>
+ <para>If you have an ATAPI CD burner, you can use the
+ <command>burncd</command> command to burn an ISO image onto a
+ CD. <command>burncd</command> is part of the base system, installed
+ as <filename>/usr/sbin/burncd</filename>. Usage is very simple, as
+ it has few options:</para>
+
+ <screen>&prompt.root; <userinput>burncd -f <replaceable>cddevice</replaceable> data <replaceable>imagefile.iso</replaceable> fixate</userinput></screen>
+
+ <para>Will burn a copy of <replaceable>imagefile.iso</replaceable> on
+ <replaceable>cddevice</replaceable>. The default device is
+ <filename>/dev/acd0</filename>. See &man.burncd.8; for options to
+ set the write speed, eject the CD after burning, and write audio
+ data.</para>
+ </sect2>
+
+ <sect2 id="cdrecord">
+ <title>cdrecord</title>
+
+ <para>If you do not have an ATAPI CD burner, you will have to use
+ <command>cdrecord</command> to burn your
+ CDs. <command>cdrecord</command> is not part of the base system;
+ you must install it from either the port at <filename role="package">sysutils/cdrtools</filename>
+ or the appropriate
+ package. Changes to the base system can cause binary versions of
+ this program to fail, possibly resulting in a
+ <quote>coaster</quote>. You should therefore either upgrade the
+ port when you upgrade your system, or if you are <link
+ linkend="stable">tracking -STABLE</link>, upgrade the port when a
+ new version becomes available.</para>
+
+ <para>While <command>cdrecord</command> has many options, basic usage
+ is even simpler than <command>burncd</command>. Burning an ISO 9660
+ image is done with:</para>
+
+ <screen>&prompt.root; <userinput>cdrecord dev=<replaceable>device</replaceable> <replaceable>imagefile.iso</replaceable></userinput></screen>
+
+ <para>The tricky part of using <command>cdrecord</command> is finding
+ the <option>dev</option> to use. To find the proper setting, use
+ the <option>-scanbus</option> flag of <command>cdrecord</command>,
+ which might produce results like this:</para>
+ <indexterm>
+ <primary>CDROMs</primary>
+ <secondary>burning</secondary>
+ </indexterm>
+ <screen>&prompt.root; <userinput>cdrecord -scanbus</userinput>
+Cdrecord-Clone 2.01 (i386-unknown-freebsd7.0) Copyright (C) 1995-2004 J&ouml;rg Schilling
+Using libscg version 'schily-0.1'
+scsibus0:
+ 0,0,0 0) 'SEAGATE ' 'ST39236LW ' '0004' Disk
+ 0,1,0 1) 'SEAGATE ' 'ST39173W ' '5958' Disk
+ 0,2,0 2) *
+ 0,3,0 3) 'iomega ' 'jaz 1GB ' 'J.86' Removable Disk
+ 0,4,0 4) 'NEC ' 'CD-ROM DRIVE:466' '1.26' Removable CD-ROM
+ 0,5,0 5) *
+ 0,6,0 6) *
+ 0,7,0 7) *
+scsibus1:
+ 1,0,0 100) *
+ 1,1,0 101) *
+ 1,2,0 102) *
+ 1,3,0 103) *
+ 1,4,0 104) *
+ 1,5,0 105) 'YAMAHA ' 'CRW4260 ' '1.0q' Removable CD-ROM
+ 1,6,0 106) 'ARTEC ' 'AM12S ' '1.06' Scanner
+ 1,7,0 107) *</screen>
+
+ <para>This lists the appropriate <option>dev</option> value for the
+ devices on the list. Locate your CD burner, and use the three
+ numbers separated by commas as the value for
+ <option>dev</option>. In this case, the CRW device is 1,5,0, so the
+ appropriate input would be
+ <option>dev=1,5,0</option>. There are easier
+ ways to specify this value; see &man.cdrecord.1; for
+ details. That is also the place to look for information on writing
+ audio tracks, controlling the speed, and other things.</para>
+ </sect2>
+
+ <sect2 id="duplicating-audiocds">
+ <title>Duplicating Audio CDs</title>
+
+ <para>You can duplicate an audio CD by extracting the audio data from
+ the CD to a series of files, and then writing these files to a blank
+ CD. The process is slightly different for ATAPI and SCSI
+ drives.</para>
+
+ <procedure>
+ <title>SCSI Drives</title>
+
+ <step>
+ <para>Use <command>cdda2wav</command> to extract the audio.</para>
+
+ <screen>&prompt.user; <userinput>cdda2wav -v255 -D2,0 -B -Owav</userinput></screen>
+ </step>
+
+ <step>
+ <para>Use <command>cdrecord</command> to write the
+ <filename>.wav</filename> files.</para>
+
+ <screen>&prompt.user; <userinput>cdrecord -v dev=<replaceable>2,0</replaceable> -dao -useinfo *.wav</userinput></screen>
+
+ <para>Make sure that <replaceable>2,0</replaceable> is set
+ appropriately, as described in <xref linkend="cdrecord">.</para>
+ </step>
+ </procedure>
+
+ <procedure>
+ <title>ATAPI Drives</title>
+
+ <step>
+ <para>The ATAPI CD driver makes each track available as
+ <filename>/dev/acd<replaceable>d</replaceable>t<replaceable>nn</replaceable></filename>,
+ where <replaceable>d</replaceable> is the drive number, and
+ <replaceable>nn</replaceable> is the track number written with two
+ decimal digits, prefixed with zero as needed.
+ So the first track on the first disk is
+ <filename>/dev/acd0t01</filename>, the second is
+ <filename>/dev/acd0t02</filename>, the third is
+ <filename>/dev/acd0t03</filename>, and so on.</para>
+
+ <para>Make sure the appropriate files exist in
+ <filename>/dev</filename>. If the entries are missing,
+ force the system to retaste the media:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/acd0 of=/dev/null count=1</userinput></screen>
+ </step>
+
+ <step>
+ <para>Extract each track using &man.dd.1;. You must also use a
+ specific block size when extracting the files.</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/acd0t01 of=track1.cdr bs=2352</userinput>
+&prompt.root; <userinput>dd if=/dev/acd0t02 of=track2.cdr bs=2352</userinput>
+...
+</screen>
+ </step>
+
+ <step>
+ <para>Burn the extracted files to disk using
+ <command>burncd</command>. You must specify that these are audio
+ files, and that <command>burncd</command> should fixate the disk
+ when finished.</para>
+
+ <screen>&prompt.root; <userinput>burncd -f <replaceable>/dev/acd0</replaceable> audio track1.cdr track2.cdr <replaceable>...</replaceable> fixate</userinput></screen>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2 id="imaging-cd">
+ <title>Duplicating Data CDs</title>
+
+ <para>You can copy a data CD to a image file that is
+ functionally equivalent to the image file created with
+ &man.mkisofs.8;, and you can use it to duplicate
+ any data CD. The example given here assumes that your CDROM
+ device is <devicename>acd0</devicename>. Substitute your
+ correct CDROM device.</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/acd0 of=file.iso bs=2048</userinput></screen>
+
+ <para>Now that you have an image, you can burn it to CD as
+ described above.</para>
+ </sect2>
+
+ <sect2 id="mounting-cd">
+ <title>Using Data CDs</title>
+
+ <para>Now that you have created a standard data CDROM, you
+ probably want to mount it and read the data on it. By
+ default, &man.mount.8; assumes that a file system is of type
+ <literal>ufs</literal>. If you try something like:</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/cd0 /mnt</userinput></screen>
+
+ <para>you will get a complaint about <errorname>Incorrect super
+ block</errorname>, and no mount. The CDROM is not a
+ <literal>UFS</literal> file system, so attempts to mount it
+ as such will fail. You just need to tell &man.mount.8; that
+ the file system is of type <literal>ISO9660</literal>, and
+ everything will work. You do this by specifying the
+ <option>-t cd9660</option> option &man.mount.8;. For
+ example, if you want to mount the CDROM device,
+ <filename>/dev/cd0</filename>, under
+ <filename>/mnt</filename>, you would execute:</para>
+
+ <screen>&prompt.root; <userinput>mount -t cd9660 /dev/cd0 /mnt</userinput></screen>
+
+ <para>Note that your device name
+ (<filename>/dev/cd0</filename> in this example) could be
+ different, depending on the interface your CDROM uses. Also,
+ the <option>-t cd9660</option> option just executes
+ &man.mount.cd9660.8;. The above example could be shortened
+ to:</para>
+
+<screen>&prompt.root; <userinput>mount_cd9660 /dev/cd0 /mnt</userinput></screen>
+
+ <para>You can generally use data CDROMs from any vendor in this
+ way. Disks with certain ISO 9660 extensions might behave
+ oddly, however. For example, Joliet disks store all filenames
+ in two-byte Unicode characters. The FreeBSD kernel does not
+ speak Unicode, but the &os; CD9660 driver is able to convert
+ Unicode characters on the fly. If some non-English characters
+ show up as question marks you will need to specify the local
+ charset you use with the <option>-C</option> option. For more
+ information, consult the &man.mount.cd9660.8; manual
+ page.</para>
+
+ <note>
+ <para>To be able to do this character conversion with the help
+ of the <option>-C</option> option, the kernel will require
+ the <filename>cd9660_iconv.ko</filename> module to be
+ loaded. This can be done either by adding this line to
+ <filename>loader.conf</filename>:</para>
+
+ <programlisting>cd9660_iconv_load="YES"</programlisting>
+
+ <para>and then rebooting the machine, or by directly loading the
+ module with &man.kldload.8;.</para>
+ </note>
+
+ <para>Occasionally, you might get <errorname>Device not
+ configured</errorname> when trying to mount a CDROM. This
+ usually means that the CDROM drive thinks that there is no
+ disk in the tray, or that the drive is not visible on the bus.
+ It can take a couple of seconds for a CDROM drive to realize
+ that it has been fed, so be patient.</para>
+
+ <para>Sometimes, a SCSI CDROM may be missed because it did not
+ have enough time to answer the bus reset. If you have a SCSI
+ CDROM please add the following option to your kernel
+ configuration and <link linkend="kernelconfig-building">rebuild your kernel</link>.</para>
+
+ <programlisting>options SCSI_DELAY=15000</programlisting>
+
+ <para>This tells your SCSI bus to pause 15 seconds during boot,
+ to give your CDROM drive every possible chance to answer the
+ bus reset.</para>
+ </sect2>
+
+ <sect2 id="rawdata-cd">
+ <title>Burning Raw Data CDs</title>
+
+ <para>You can choose to burn a file directly to CD, without
+ creating an ISO 9660 file system. Some people do this for
+ backup purposes. This runs more quickly than burning a
+ standard CD:</para>
+
+ <screen>&prompt.root; <userinput>burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate</userinput></screen>
+
+ <para>In order to retrieve the data burned to such a CD, you
+ must read data from the raw device node:</para>
+
+ <screen>&prompt.root; <userinput>tar xzvf /dev/acd1</userinput></screen>
+
+ <para>You cannot mount this disk as you would a normal CDROM.
+ Such a CDROM cannot be read under any operating system
+ except FreeBSD. If you want to be able to mount the CD, or
+ share data with another operating system, you must use
+ &man.mkisofs.8; as described above.</para>
+ </sect2>
+
+ <sect2 id="atapicam">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <indexterm>
+ <primary>CD burner</primary>
+ <secondary>ATAPI/CAM driver</secondary>
+ </indexterm>
+ <title>Using the ATAPI/CAM Driver</title>
+
+ <para>This driver allows ATAPI devices (CD-ROM, CD-RW, DVD
+ drives etc...) to be accessed through the SCSI subsystem, and
+ so allows the use of applications like <filename
+ role="package">sysutils/cdrdao</filename> or
+ &man.cdrecord.1;.</para>
+
+ <para>To use this driver, you will need to add the following
+ line to the <filename>/boot/loader.conf</filename>
+ file:</para>
+
+ <programlisting>atapicam_load="YES"</programlisting>
+
+ <para>then, reboot your machine.</para>
+
+ <note>
+ <para>If you prefer to statically compile the &man.atapicam.4;
+ support in your kernel, you will have to add this line to
+ your kernel configuration file:</para>
+
+ <programlisting>device atapicam</programlisting>
+
+ <para>You also need the following lines in your kernel
+ configuration file:</para>
+
+ <programlisting>device ata
+device scbus
+device cd
+device pass</programlisting>
+
+ <para>which should already be present. Then rebuild, install
+ your new kernel, and reboot your machine.</para>
+ </note>
+
+ <para>During the boot process, your burner should show up,
+ like so:</para>
+
+ <screen>acd0: CD-RW &lt;MATSHITA CD-RW/DVD-ROM UJDA740&gt; at ata1-master PIO4
+cd0 at ata1 bus 0 target 0 lun 0
+cd0: &lt;MATSHITA CDRW/DVD UJDA740 1.00&gt; Removable CD-ROM SCSI-0 device
+cd0: 16.000MB/s transfers
+cd0: Attempt to query device size failed: NOT READY, Medium not present - tray closed</screen>
+
+ <para>The drive could now be accessed via the
+ <filename>/dev/cd0</filename> device name, for example to
+ mount a CD-ROM on <filename>/mnt</filename>, just type the
+ following:</para>
+
+ <screen>&prompt.root; <userinput>mount -t cd9660 <replaceable>/dev/cd0</replaceable> /mnt</userinput></screen>
+
+ <para>As <username>root</username>, you can run the following
+ command to get the SCSI address of the burner:</para>
+
+ <screen>&prompt.root; <userinput>camcontrol devlist</userinput>
+&lt;MATSHITA CDRW/DVD UJDA740 1.00&gt; at scbus1 target 0 lun 0 (pass0,cd0)</screen>
+
+ <para>So <literal>1,0,0</literal> will be the SCSI address to
+ use with &man.cdrecord.1; and other SCSI application.</para>
+
+ <para>For more information about ATAPI/CAM and SCSI system,
+ refer to the &man.atapicam.4; and &man.cam.4; manual
+ pages.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="creating-dvds">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Andy</firstname>
+ <surname>Polyakov</surname>
+ <contrib>With inputs from </contrib>
+ </author>
+ </authorgroup>
+ <!-- Feb 2004 -->
+ </sect1info>
+
+ <title>Creating and Using Optical Media (DVDs)</title>
+ <indexterm>
+ <primary>DVD</primary>
+ <secondary>burning</secondary>
+ </indexterm>
+
+ <sect2>
+ <title>Introduction</title>
+
+ <para>Compared to the CD, the DVD is the next generation of
+ optical media storage technology. The DVD can hold more data
+ than any CD and is nowadays the standard for video
+ publishing.</para>
+
+ <para>Five physical recordable formats can be defined for what
+ we will call a recordable DVD:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>DVD-R: This was the first DVD recordable format
+ available. The DVD-R standard is defined by the <ulink
+ url="http://www.dvdforum.com/forum.shtml">DVD Forum</ulink>.
+ This format is write once.</para>
+ </listitem>
+
+ <listitem>
+ <para>DVD-RW: This is the rewritable version of
+ the DVD-R standard. A DVD-RW can be rewritten about 1000
+ times.</para>
+ </listitem>
+
+ <listitem>
+ <para>DVD-RAM: This is also a rewritable format
+ supported by the DVD Forum. A DVD-RAM can be seen as a
+ removable hard drive. However, this media is not
+ compatible with most DVD-ROM drives and DVD-Video players;
+ only a few DVD writers support the DVD-RAM format. Read
+ the <xref linkend="creating-dvd-ram"> for more information
+ on DVD-RAM use.</para>
+ </listitem>
+
+ <listitem>
+ <para>DVD+RW: This is a rewritable format defined by
+ the <ulink url="http://www.dvdrw.com/">DVD+RW
+ Alliance</ulink>. A DVD+RW can be rewritten about 1000
+ times.</para>
+ </listitem>
+
+ <listitem>
+ <para>DVD+R: This format is the write once variation
+ of the DVD+RW format.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>A single layer recordable DVD can hold up to
+ 4,700,000,000&nbsp;bytes which is actually 4.38&nbsp;GB or
+ 4485&nbsp;MB (1 kilobyte is 1024 bytes).</para>
+
+ <note>
+ <para>A distinction must be made between the physical media and
+ the application. For example, a DVD-Video is a specific
+ file layout that can be written on any recordable DVD
+ physical media: DVD-R, DVD+R, DVD-RW etc. Before choosing
+ the type of media, you must be sure that both the burner and the
+ DVD-Video player (a standalone player or a DVD-ROM drive on
+ a computer) are compatible with the media under consideration.</para></note>
+ </sect2>
+
+ <sect2>
+ <title>Configuration</title>
+
+ <para>The program &man.growisofs.1; will be used to perform DVD
+ recording. This command is part of the
+ <application>dvd+rw-tools</application> utilities (<filename
+ role="package">sysutils/dvd+rw-tools</filename>). The
+ <application>dvd+rw-tools</application> support all DVD media
+ types.</para>
+
+ <para>These tools use the SCSI subsystem to access to the
+ devices, therefore the <link linkend="atapicam">ATAPI/CAM
+ support</link> must be added to your kernel. If your burner
+ uses the USB interface this addition is useless, and you should
+ read the <xref linkend="usb-disks"> for more details on USB
+ devices configuration.</para>
+
+ <para>You also have to enable DMA access for ATAPI devices, this
+ can be done in adding the following line to the
+ <filename>/boot/loader.conf</filename> file:</para>
+
+ <programlisting>hw.ata.atapi_dma="1"</programlisting>
+
+ <para>Before attempting to use the
+ <application>dvd+rw-tools</application> you should consult the
+ <ulink
+ url="http://fy.chalmers.se/~appro/linux/DVD+RW/hcn.html">dvd+rw-tools'
+ hardware compatibility notes</ulink> for any information
+ related to your DVD burner.</para>
+
+ <note>
+ <para>If you want a graphical user interface, you should have
+ a look to <application>K3b</application> (<filename
+ role="package">sysutils/k3b</filename>) which provides a
+ user friendly interface to &man.growisofs.1; and many other
+ burning tools.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Burning Data DVDs</title>
+
+ <para>The &man.growisofs.1; command is a frontend to <link
+ linkend="mkisofs">mkisofs</link>, it will invoke
+ &man.mkisofs.8; to create the file system layout and will
+ perform the write on the DVD. This means you do not need to
+ create an image of the data before the burning process.</para>
+
+ <para>To burn onto a DVD+R or a DVD-R the data from the <filename
+ class="directory">/path/to/data</filename> directory, use the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -dvd-compat -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen>
+
+ <para>The options <option>-J -R</option> are passed to
+ &man.mkisofs.8; for the file system creation (in this case: an
+ ISO 9660 file system with Joliet and Rock Ridge extensions),
+ consult the &man.mkisofs.8; manual page for more
+ details.</para>
+
+ <para>The option <option>-Z</option> is used for the initial
+ session recording in any case: multiple sessions or not. The
+ DVD device, <replaceable>/dev/cd0</replaceable>, must be
+ changed according to your configuration. The
+ <option>-dvd-compat</option> parameter will close the disk,
+ the recording will be unappendable. In return this should provide better
+ media compatibility with DVD-ROM drives.</para>
+
+ <para>It is also possible to burn a pre-mastered image, for
+ example to burn the image
+ <replaceable>imagefile.iso</replaceable>, we will run:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -dvd-compat -Z <replaceable>/dev/cd0</replaceable>=<replaceable>imagefile.iso</replaceable></userinput></screen>
+
+ <para>The write speed should be detected and automatically set
+ according to the media and the drive being used. If you want
+ to force the write speed, use the <option>-speed=</option>
+ parameter. For more information, read the &man.growisofs.1;
+ manual page.</para>
+ </sect2>
+
+ <indexterm>
+ <primary>DVD</primary>
+ <secondary>DVD-Video</secondary>
+ </indexterm>
+
+ <sect2>
+ <title>Burning a DVD-Video</title>
+
+ <para>A DVD-Video is a specific file layout based on ISO 9660
+ and the micro-UDF (M-UDF) specifications. The DVD-Video also
+ presents a specific data structure hierarchy, it is the reason
+ why you need a particular program such as <filename
+ role="package">multimedia/dvdauthor</filename> to author the
+ DVD.</para>
+
+ <para>If you already have an image of the DVD-Video file system,
+ just burn it in the same way as for any image, see the
+ previous section for an example. If you have made the DVD
+ authoring and the result is in, for example, the directory
+ <filename class="directory">/path/to/video</filename>, the
+ following command should be used to burn the DVD-Video:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -dvd-video <replaceable>/path/to/video</replaceable></userinput></screen>
+
+ <para>The <option>-dvd-video</option> option will be passed down to
+ &man.mkisofs.8; and will instruct it to create a DVD-Video file system
+ layout. Beside this, the <option>-dvd-video</option> option
+ implies <option>-dvd-compat</option> &man.growisofs.1;
+ option.</para>
+ </sect2>
+
+ <indexterm>
+ <primary>DVD</primary>
+ <secondary>DVD+RW</secondary>
+ </indexterm>
+
+ <sect2>
+ <title>Using a DVD+RW</title>
+
+ <para>Unlike CD-RW, a virgin DVD+RW needs to be formatted before
+ first use. The &man.growisofs.1; program will take care of it
+ automatically whenever appropriate, which is the
+ <emphasis>recommended</emphasis> way. However you can use the
+ <command>dvd+rw-format</command> command to format the
+ DVD+RW:</para>
+
+ <screen>&prompt.root; <userinput>dvd+rw-format <replaceable>/dev/cd0</replaceable></userinput></screen>
+
+ <para>You need to perform this operation just once, keep in mind
+ that only virgin DVD+RW medias need to be formatted. Then you
+ can burn the DVD+RW in the way seen in previous
+ sections.</para>
+
+ <para>If you want to burn new data (burn a totally new file
+ system not append some data) onto a DVD+RW, you do not need to
+ blank it, you just have to write over the previous recording
+ (in performing a new initial session), like this:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/newdata</replaceable></userinput></screen>
+
+ <para>DVD+RW format offers the possibility to easily append data
+ to a previous recording. The operation consists in merging a
+ new session to the existing one, it is not multisession
+ writing, &man.growisofs.1; will <emphasis>grow</emphasis> the
+ ISO 9660 file system present on the media.</para>
+
+ <para>For example, if we want to append data to our previous
+ DVD+RW, we have to use the following:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -M <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/nextdata</replaceable></userinput></screen>
+
+ <para>The same &man.mkisofs.8; options we used to burn the
+ initial session should be used during next writes.</para>
+
+ <note>
+ <para>You may want to use the <option>-dvd-compat</option>
+ option if you want better media compatibility with DVD-ROM
+ drives. In the DVD+RW case, this will not prevent you from
+ adding data.</para>
+ </note>
+
+ <para>If for any reason you really want to blank the media, do
+ the following:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable>=<replaceable>/dev/zero</replaceable></userinput></screen>
+ </sect2>
+
+ <indexterm>
+ <primary>DVD</primary>
+ <secondary>DVD-RW</secondary>
+ </indexterm>
+
+ <sect2>
+ <title>Using a DVD-RW</title>
+
+ <para>A DVD-RW accepts two disc formats: the incremental
+ sequential one and the restricted overwrite. By default
+ DVD-RW discs are in sequential format.</para>
+
+ <para>A virgin DVD-RW can be directly written without the need
+ of a formatting operation, however a non-virgin DVD-RW in
+ sequential format needs to be blanked before to be able to
+ write a new initial session.</para>
+
+ <para>To blank a DVD-RW in sequential mode, run:</para>
+
+ <screen>&prompt.root; <userinput>dvd+rw-format -blank=full <replaceable>/dev/cd0</replaceable></userinput></screen>
+
+ <note>
+ <para>A full blanking (<option>-blank=full</option>) will take
+ about one hour on a 1x media. A fast blanking can be
+ performed using the <option>-blank</option> option if the
+ DVD-RW will be recorded in Disk-At-Once (DAO) mode. To burn
+ the DVD-RW in DAO mode, use the command:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -use-the-force-luke=dao -Z <replaceable>/dev/cd0</replaceable>=<replaceable>imagefile.iso</replaceable></userinput></screen>
+
+ <para>The <option>-use-the-force-luke=dao</option> option
+ should not be required since &man.growisofs.1; attempts to
+ detect minimally (fast blanked) media and engage DAO
+ write.</para>
+
+ <para>In fact one should use restricted overwrite mode with
+ any DVD-RW, this format is more flexible than the default
+ incremental sequential one.</para>
+ </note>
+
+ <para>To write data on a sequential DVD-RW, use the same
+ instructions as for the other DVD formats:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen>
+
+ <para>If you want to append some data to your previous
+ recording, you will have to use the &man.growisofs.1;
+ <option>-M</option> option. However, if you perform data
+ addition on a DVD-RW in incremental sequential mode, a new
+ session will be created on the disc and the result will be a
+ multi-session disc.</para>
+
+ <para>A DVD-RW in restricted overwrite format does not need to
+ be blanked before a new initial session, you just have to
+ overwrite the disc with the <option>-Z</option> option, this
+ is similar to the DVD+RW case. It is also possible to grow an
+ existing ISO 9660 file system written on the disc in a same
+ way as for a DVD+RW with the <option>-M</option> option. The
+ result will be a one-session DVD.</para>
+
+ <para>To put a DVD-RW in the restricted overwrite format, the
+ following command must be used:</para>
+
+ <screen>&prompt.root; <userinput>dvd+rw-format <replaceable>/dev/cd0</replaceable></userinput></screen>
+
+ <para>To change back to the sequential format use:</para>
+
+ <screen>&prompt.root; <userinput>dvd+rw-format -blank=full <replaceable>/dev/cd0</replaceable></userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Multisession</title>
+
+ <para>Very few DVD-ROM drives support
+ multisession DVDs, they will most of time, hopefully, only read
+ the first session. DVD+R, DVD-R and DVD-RW in sequential
+ format can accept multiple sessions, the notion of multiple
+ sessions does not exist for the DVD+RW and the DVD-RW
+ restricted overwrite formats.</para>
+
+ <para>Using the following command after an initial (non-closed)
+ session on a DVD+R, DVD-R, or DVD-RW in sequential format,
+ will add a new session to the disc:</para>
+
+ <screen>&prompt.root; <userinput>growisofs -M <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/nextdata</replaceable></userinput></screen>
+
+ <para>Using this command line with a DVD+RW or a DVD-RW in restricted
+ overwrite mode, will append data in merging the new session to
+ the existing one. The result will be a single-session disc.
+ This is the way used to add data after an initial write on these
+ medias.</para>
+
+ <note>
+ <para>Some space on the media is used between each session for
+ end and start of sessions. Therefore, one should add
+ sessions with large amount of data to optimize media space.
+ The number of sessions is limited to 154 for a DVD+R,
+ about 2000 for a DVD-R, and 127 for a DVD+R Double
+ Layer.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>For More Information</title>
+
+ <para>To obtain more information about a DVD, the
+ <command>dvd+rw-mediainfo
+ <replaceable>/dev/cd0</replaceable></command> command can be
+ ran with the disc in the drive.</para>
+
+ <para>More information about the
+ <application>dvd+rw-tools</application> can be found in
+ the &man.growisofs.1; manual page, on the <ulink
+ url="http://fy.chalmers.se/~appro/linux/DVD+RW/">dvd+rw-tools
+ web site</ulink> and in the <ulink
+ url="http://lists.debian.org/cdwrite/">cdwrite mailing
+ list</ulink> archives.</para>
+
+ <note>
+ <para>The <command>dvd+rw-mediainfo</command> output of the
+ resulting recording or the media with issues is mandatory
+ for any problem report. Without this output, it will be
+ quite impossible to help you.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="creating-dvd-ram">
+ <title>Using a DVD-RAM</title>
+ <indexterm>
+ <primary>DVD</primary>
+ <secondary>DVD-RAM</secondary>
+ </indexterm>
+
+ <sect3>
+ <title>Configuration</title>
+
+ <para>DVD-RAM writers come with either SCSI or ATAPI
+ interface. DMA access for ATAPI devices has to be enabled,
+ this can be done by adding the following line to the
+ <filename>/boot/loader.conf</filename> file:</para>
+
+ <programlisting>hw.ata.atapi_dma="1"</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Preparing the Medium</title>
+
+ <para>As previously mentioned in the chapter introduction, a
+ DVD-RAM can be seen as a removable hard drive. As any other
+ hard drive the DVD-RAM must be <quote>prepared</quote>
+ before the first use. In the example, the whole
+ disk space will be used with a standard UFS2 file system:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>/dev/acd0</replaceable> count=2</userinput>
+&prompt.root; <userinput>bsdlabel -Bw <replaceable>acd0</replaceable></userinput>
+&prompt.root; <userinput>newfs <replaceable>/dev/acd0</replaceable></userinput></screen>
+
+ <para>The DVD device, <devicename>acd0</devicename>, must be
+ changed according to the configuration.</para>
+ </sect3>
+
+ <sect3>
+ <title>Using the Medium</title>
+
+ <para>Once the previous operations have been performed on the
+ DVD-RAM, it can be mounted as a normal hard drive:</para>
+
+ <screen>&prompt.root; <userinput>mount <replaceable>/dev/acd0</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
+
+ <para>After this the DVD-RAM will be both readable and writeable.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="floppies">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Julio</firstname>
+ <surname>Merino</surname>
+ <contrib>Original work by </contrib>
+ </author>
+ </authorgroup>
+ <!-- 24 Dec 2001 -->
+ <authorgroup>
+ <author>
+ <firstname>Martin</firstname>
+ <surname>Karlsson</surname>
+ <contrib>Rewritten by </contrib>
+ </author>
+ </authorgroup>
+ <!-- 27 Apr 2003 -->
+ </sect1info>
+
+ <title>Creating and Using Floppy Disks</title>
+
+ <para>Storing data on floppy disks is sometimes useful, for
+ example when one does not have any other removable storage media
+ or when one needs to transfer small amounts of data to another
+ computer.</para>
+
+ <para>This section will explain how to use floppy disks in
+ FreeBSD. It will primarily cover formatting and usage of
+ 3.5inch DOS floppies, but the concepts are similar for other
+ floppy disk formats.</para>
+
+ <sect2>
+ <title>Formatting Floppies</title>
+
+ <sect3>
+ <title>The Device</title>
+
+ <para>Floppy disks are accessed through entries in
+ <filename>/dev</filename>, just like other devices. To
+ access the raw floppy disk, simply use
+ <filename>/dev/fd<replaceable>N</replaceable></filename>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Formatting</title>
+
+ <para>A floppy disk needs to be low-level formated before it
+ can be used. This is usually done by the vendor, but
+ formatting is a good way to check media integrity. Although
+ it is possible to force larger (or smaller) disk sizes,
+ 1440kB is what most floppy disks are designed for.</para>
+
+ <para>To low-level format the floppy disk you need to use
+ &man.fdformat.1;. This utility expects the device name as an
+ argument.</para>
+
+ <para>Make note of any error messages, as these can help
+ determine if the disk is good or bad.</para>
+
+ <sect4>
+ <title>Formatting Floppy Disks</title>
+
+ <para>Use the
+ <filename>/dev/fd<replaceable>N</replaceable></filename>
+ devices to format the floppy. Insert a new 3.5inch floppy
+ disk in your drive and issue:</para>
+
+ <screen>&prompt.root; <userinput>/usr/sbin/fdformat -f 1440 /dev/fd0</userinput></screen>
+
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>The Disk Label</title>
+
+ <para>After low-level formatting the disk, you will need to
+ place a disk label on it. This disk label will be destroyed
+ later, but it is needed by the system to determine the size of
+ the disk and its geometry later.</para>
+
+ <para>The new disk label will take over the whole disk, and will
+ contain all the proper information about the geometry of the
+ floppy. The geometry values for the disk label are listed in
+ <filename>/etc/disktab</filename>.</para>
+
+ <para>You can run now &man.bsdlabel.8; like so:</para>
+
+ <screen>&prompt.root; <userinput>/sbin/bsdlabel -B -r -w /dev/fd0 fd1440</userinput></screen>
+
+ </sect2>
+
+ <sect2>
+ <title>The File System</title>
+
+ <para>Now the floppy is ready to be high-level formated. This
+ will place a new file system on it, which will let FreeBSD read
+ and write to the disk. After creating the new file system, the
+ disk label is destroyed, so if you want to reformat the disk, you
+ will have to recreate the disk label.</para>
+
+ <para>The floppy's file system can be either UFS or FAT.
+ FAT is generally a better choice for floppies.</para>
+
+ <para>To put a new file system on the floppy, issue:</para>
+
+ <screen>&prompt.root; <userinput>/sbin/newfs_msdos /dev/fd0</userinput></screen>
+
+ <para>The disk is now ready for use.</para>
+ </sect2>
+
+
+ <sect2>
+ <title>Using the Floppy</title>
+
+ <para>To use the floppy, mount it with &man.mount.msdosfs.8;. One can also use
+ <filename role="package">emulators/mtools</filename> from the ports
+ collection.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="backups-tapebackups">
+ <title>Creating and Using Data Tapes</title>
+
+ <indexterm><primary>tape media</primary></indexterm>
+ <para>The major tape media are the 4mm, 8mm, QIC, mini-cartridge and
+ DLT.</para>
+
+ <sect2 id="backups-tapebackups-4mm">
+ <title>4mm (DDS: Digital Data Storage)</title>
+
+ <indexterm>
+ <primary>tape media</primary>
+ <secondary>DDS (4mm) tapes</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>tape media</primary>
+ <secondary>QIC tapes</secondary>
+ </indexterm>
+ <para>4mm tapes are replacing QIC as the workstation backup media of
+ choice. This trend accelerated greatly when Conner purchased Archive,
+ a leading manufacturer of QIC drives, and then stopped production of
+ QIC drives. 4mm drives are small and quiet but do not have the
+ reputation for reliability that is enjoyed by 8mm drives. The
+ cartridges are less expensive and smaller (3 x 2 x 0.5 inches, 76 x 51
+ x 12 mm) than 8mm cartridges. 4mm, like 8mm, has comparatively short
+ head life for the same reason, both use helical scan.</para>
+
+ <para>Data throughput on these drives starts ~150&nbsp;kB/s, peaking at ~500&nbsp;kB/s.
+ Data capacity starts at 1.3&nbsp;GB and ends at 2.0&nbsp;GB. Hardware
+ compression, available with most of these drives, approximately
+ doubles the capacity. Multi-drive tape library units can have 6
+ drives in a single cabinet with automatic tape changing. Library
+ capacities reach 240&nbsp;GB.</para>
+
+ <para>The DDS-3 standard now supports tape capacities up to 12&nbsp;GB (or
+ 24&nbsp;GB compressed).</para>
+
+ <para>4mm drives, like 8mm drives, use helical-scan. All the benefits
+ and drawbacks of helical-scan apply to both 4mm and 8mm drives.</para>
+
+ <para>Tapes should be retired from use after 2,000 passes or 100 full
+ backups.</para>
+ </sect2>
+
+ <sect2 id="backups-tapebackups-8mm">
+ <title>8mm (Exabyte)</title>
+ <indexterm>
+ <primary>tape media</primary>
+ <secondary>Exabyte (8mm) tapes</secondary>
+ </indexterm>
+
+ <para>8mm tapes are the most common SCSI tape drives; they are the best
+ choice of exchanging tapes. Nearly every site has an Exabyte 2&nbsp;GB 8mm
+ tape drive. 8mm drives are reliable, convenient and quiet. Cartridges
+ are inexpensive and small (4.8 x 3.3 x 0.6 inches; 122 x 84 x 15 mm).
+ One downside of 8mm tape is relatively short head and tape life due to
+ the high rate of relative motion of the tape across the heads.</para>
+
+ <para>Data throughput ranges from ~250&nbsp;kB/s to ~500&nbsp;kB/s. Data sizes start
+ at 300&nbsp;MB and go up to 7&nbsp;GB. Hardware compression, available with
+ most of these drives, approximately doubles the capacity. These
+ drives are available as single units or multi-drive tape libraries
+ with 6 drives and 120 tapes in a single cabinet. Tapes are changed
+ automatically by the unit. Library capacities reach 840+&nbsp;GB.</para>
+
+ <para>The Exabyte <quote>Mammoth</quote> model supports 12&nbsp;GB on one tape
+ (24&nbsp;GB with compression) and costs approximately twice as much as
+ conventional tape drives.</para>
+
+ <para>Data is recorded onto the tape using helical-scan, the heads are
+ positioned at an angle to the media (approximately 6 degrees). The
+ tape wraps around 270 degrees of the spool that holds the heads. The
+ spool spins while the tape slides over the spool. The result is a
+ high density of data and closely packed tracks that angle across the
+ tape from one edge to the other.</para>
+ </sect2>
+
+ <sect2 id="backups-tapebackups-qic">
+ <title>QIC</title>
+ <indexterm>
+ <primary>tape media</primary>
+ <secondary>QIC-150</secondary>
+ </indexterm>
+
+ <para>QIC-150 tapes and drives are, perhaps, the most common tape drive
+ and media around. QIC tape drives are the least expensive <quote>serious</quote>
+ backup drives. The downside is the cost of media. QIC tapes are
+ expensive compared to 8mm or 4mm tapes, up to 5 times the price per GB
+ data storage. But, if your needs can be satisfied with a half-dozen
+ tapes, QIC may be the correct choice. QIC is the
+ <emphasis>most</emphasis> common tape drive. Every site has a QIC
+ drive of some density or another. Therein lies the rub, QIC has a
+ large number of densities on physically similar (sometimes identical)
+ tapes. QIC drives are not quiet. These drives audibly seek before
+ they begin to record data and are clearly audible whenever reading,
+ writing or seeking. QIC tapes measure 6&nbsp;x 4&nbsp;x 0.7 inches
+ (152&nbsp;x 102&nbsp;x 17 mm).</para>
+
+ <para>Data throughput ranges from ~150&nbsp;kB/s to ~500&nbsp;kB/s. Data capacity
+ ranges from 40&nbsp;MB to 15&nbsp;GB. Hardware compression is available on many
+ of the newer QIC drives. QIC drives are less frequently installed;
+ they are being supplanted by DAT drives.</para>
+
+ <para>Data is recorded onto the tape in tracks. The tracks run along
+ the long axis of the tape media from one end to the other. The number
+ of tracks, and therefore the width of a track, varies with the tape's
+ capacity. Most if not all newer drives provide backward-compatibility
+ at least for reading (but often also for writing). QIC has a good
+ reputation regarding the safety of the data (the mechanics are simpler
+ and more robust than for helical scan drives).</para>
+
+ <para>Tapes should be retired from use after 5,000 backups.</para>
+ </sect2>
+
+ <sect2 id="backups-tapebackups-dlt">
+ <title>DLT</title>
+ <indexterm>
+ <primary>tape media</primary>
+ <secondary>DLT</secondary>
+ </indexterm>
+
+ <para>DLT has the fastest data transfer rate of all the drive types
+ listed here. The 1/2" (12.5mm) tape is contained in a single spool
+ cartridge (4 x 4 x 1 inches; 100 x 100 x 25 mm). The cartridge has a
+ swinging gate along one entire side of the cartridge. The drive
+ mechanism opens this gate to extract the tape leader. The tape leader
+ has an oval hole in it which the drive uses to <quote>hook</quote> the tape. The
+ take-up spool is located inside the tape drive. All the other tape
+ cartridges listed here (9 track tapes are the only exception) have
+ both the supply and take-up spools located inside the tape cartridge
+ itself.</para>
+
+ <para>Data throughput is approximately 1.5&nbsp;MB/s, three times the throughput of
+ 4mm, 8mm, or QIC tape drives. Data capacities range from 10&nbsp;GB to 20&nbsp;GB
+ for a single drive. Drives are available in both multi-tape changers
+ and multi-tape, multi-drive tape libraries containing from 5 to 900
+ tapes over 1 to 20 drives, providing from 50&nbsp;GB to 9&nbsp;TB of
+ storage.</para>
+
+ <para>With compression, DLT Type IV format supports up to 70&nbsp;GB
+ capacity.</para>
+
+ <para>Data is recorded onto the tape in tracks parallel to the direction
+ of travel (just like QIC tapes). Two tracks are written at once.
+ Read/write head lifetimes are relatively long; once the tape stops
+ moving, there is no relative motion between the heads and the
+ tape.</para>
+ </sect2>
+
+ <sect2>
+ <title id="backups-tapebackups-ait">AIT</title>
+ <indexterm>
+ <primary>tape media</primary>
+ <secondary>AIT</secondary>
+ </indexterm>
+
+ <para>AIT is a new format from Sony, and can hold up to 50&nbsp;GB (with
+ compression) per tape. The tapes contain memory chips which retain an
+ index of the tape's contents. This index can be rapidly read by the
+ tape drive to determine the position of files on the tape, instead of
+ the several minutes that would be required for other tapes. Software
+ such as <application>SAMS:Alexandria</application> can operate forty or more AIT tape libraries,
+ communicating directly with the tape's memory chip to display the
+ contents on screen, determine what files were backed up to which
+ tape, locate the correct tape, load it, and restore the data from the
+ tape.</para>
+
+ <para>Libraries like this cost in the region of $20,000, pricing them a
+ little out of the hobbyist market.</para>
+ </sect2>
+
+ <sect2>
+ <title>Using a New Tape for the First Time</title>
+
+ <para>The first time that you try to read or write a new, completely
+ blank tape, the operation will fail. The console messages should be
+ similar to:</para>
+
+ <screen>sa0(ncr1:4:0): NOT READY asc:4,1
+sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
+
+ <para>The tape does not contain an Identifier Block (block number 0).
+ All QIC tape drives since the adoption of QIC-525 standard write an
+ Identifier Block to the tape. There are two solutions:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><command>mt fsf 1</command> causes the tape drive to write an
+ Identifier Block to the tape.</para>
+ </listitem>
+
+ <listitem>
+ <para>Use the front panel button to eject the tape.</para>
+
+ <para>Re-insert the tape and <command>dump</command> data to
+ the tape.</para>
+
+ <para><command>dump</command> will report <errorname>DUMP: End of tape
+ detected</errorname> and the console will show: <errorname>HARDWARE
+ FAILURE info:280 asc:80,96</errorname>.</para>
+
+ <para>rewind the tape using: <command>mt rewind</command>.</para>
+
+ <para>Subsequent tape operations are successful.</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="backups-floppybackups">
+ <title>Backups to Floppies</title>
+
+ <sect2 id="floppies-using">
+ <title>Can I Use Floppies for Backing Up My Data?</title>
+ <indexterm><primary>backup floppies</primary></indexterm>
+ <indexterm><primary>floppy disks</primary></indexterm>
+
+ <para>Floppy disks are not really a suitable media for
+ making backups as:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The media is unreliable, especially over long periods of
+ time.</para>
+ </listitem>
+
+ <listitem>
+ <para>Backing up and restoring is very slow.</para>
+ </listitem>
+
+ <listitem>
+ <para>They have a very limited capacity (the days of backing up
+ an entire hard disk onto a dozen or so floppies has long since
+ passed).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>However, if you have no other method of backing up your data then
+ floppy disks are better than no backup at all.</para>
+
+ <para>If you do have to use floppy disks then ensure that you use good
+ quality ones. Floppies that have been lying around the office for a
+ couple of years are a bad choice. Ideally use new ones from a
+ reputable manufacturer.</para>
+ </sect2>
+
+ <sect2 id="floppies-creating">
+ <title>So How Do I Backup My Data to Floppies?</title>
+
+ <para>The best way to backup to floppy disk is to use
+ &man.tar.1; with the <option>-M</option> (multi
+ volume) option, which allows backups to span multiple
+ floppies.</para>
+
+ <para>To backup all the files in the current directory and sub-directory
+ use this (as <username>root</username>):</para>
+
+ <screen>&prompt.root; <userinput>tar Mcvf /dev/fd0 *</userinput></screen>
+
+ <para>When the first floppy is full &man.tar.1; will prompt you to
+ insert the next volume (because &man.tar.1; is media independent it
+ refers to volumes; in this context it means floppy disk).</para>
+
+ <screen>Prepare volume #2 for /dev/fd0 and hit return:</screen>
+
+ <para>This is repeated (with the volume number incrementing) until all
+ the specified files have been archived.</para>
+ </sect2>
+
+ <sect2 id="floppies-compress">
+ <title>Can I Compress My Backups?</title>
+ <indexterm>
+ <primary><command>tar</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary><command>gzip</command></primary>
+ </indexterm>
+ <indexterm><primary>compression</primary></indexterm>
+
+ <para>Unfortunately, &man.tar.1; will not allow the
+ <option>-z</option> option to be used for multi-volume archives.
+ You could, of course, &man.gzip.1; all the files,
+ &man.tar.1; them to the floppies, then
+ &man.gunzip.1; the files again!</para>
+ </sect2>
+
+ <sect2 id="floppies-restoring">
+ <title>How Do I Restore My Backups?</title>
+
+ <para>To restore the entire archive use:</para>
+
+ <screen>&prompt.root; <userinput>tar Mxvf /dev/fd0</userinput></screen>
+
+ <para>There are two ways that you can use to restore only
+ specific files. First, you can start with the first floppy
+ and use:</para>
+
+ <screen>&prompt.root; <userinput>tar Mxvf /dev/fd0 <replaceable>filename</replaceable></userinput></screen>
+
+ <para>The utility &man.tar.1; will prompt you to insert subsequent floppies until it
+ finds the required file.</para>
+
+ <para>Alternatively, if you know which floppy the file is on then you
+ can simply insert that floppy and use the same command as above. Note
+ that if the first file on the floppy is a continuation from the
+ previous one then &man.tar.1; will warn you that it cannot
+ restore it, even if you have not asked it to!</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="backup-strategies">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Lowell</firstname>
+ <surname>Gilbert</surname>
+ <contrib>Original work by </contrib>
+ </author>
+ </authorgroup>
+ <!-- 3 Dec 2005 -->
+ </sect1info>
+
+ <title>Backup Strategies</title>
+
+ <para>The first requirement in devising a backup plan is to make sure that
+ all of the following problems are covered:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Disk failure</para>
+ </listitem>
+ <listitem>
+ <para>Accidental file deletion</para>
+ </listitem>
+ <listitem>
+ <para>Random file corruption</para>
+ </listitem>
+ <listitem>
+ <para>Complete machine destruction (e.g. fire), including destruction
+ of any on-site backups.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>It is perfectly possible that some systems will be best served by
+ having each of these problems covered by a completely different
+ technique. Except for strictly personal systems with very low-value
+ data, it is unlikely that one technique would cover all of them.</para>
+
+ <para>Some of the techniques in the toolbox are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Archives of the whole system, backed up onto permanent media
+ offsite. This actually provides protection against all of the
+ possible problems listed above, but is slow and inconvenient to
+ restore from. You can keep copies of the backups onsite and/or
+ online, but there will still be inconveniences in restoring files,
+ especially for non-privileged users.</para>
+ </listitem>
+
+ <listitem>
+ <para>Filesystem snapshots. This is really only helpful in the
+ accidental file deletion scenario, but it can be
+ <emphasis>very</emphasis> helpful in that case, and is quick and
+ easy to deal with.</para>
+ </listitem>
+
+ <listitem>
+ <para>Copies of whole filesystems and/or disks (e.g. periodic &man.rsync.1; of
+ the whole machine). This is generally most useful in networks with
+ unique requirements. For general protection against disk failure,
+ it is usually inferior to <acronym>RAID</acronym>. For restoring
+ accidentally deleted files, it can be comparable to
+ <acronym>UFS</acronym> snapshots, but that depends on your
+ preferences.</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>RAID</acronym>. Minimizes or avoids downtime when a
+ disk fails. At the expense of having to deal with disk failures
+ more often (because you have more disks), albeit at a much lower
+ urgency.</para>
+ </listitem>
+
+ <listitem>
+ <para>Checking fingerprints of files. The &man.mtree.8; utility is
+ very useful for this. Although it is not a backup technique, it
+ helps guarantee that you will notice when you need to resort to your
+ backups. This is particularly important for offline backups, and
+ should be checked periodically.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>It is quite easy to come up with even more techniques, many of them
+ variations on the ones listed above. Specialized requirements will
+ usually lead to specialized techniques (for example, backing up a live
+ database usually requires a method particular to the database software
+ as an intermediate step). The important thing is to know what dangers
+ you want to protect against, and how you will handle each.</para>
+ </sect1>
+
+ <sect1 id="backup-basics">
+ <title>Backup Basics</title>
+
+ <para>The three major backup programs are
+ &man.dump.8;,
+ &man.tar.1;,
+ and
+ &man.cpio.1;.</para>
+
+ <sect2>
+ <title>Dump and Restore</title>
+ <indexterm>
+ <primary>backup software</primary>
+ <secondary>dump / restore</secondary>
+ </indexterm>
+ <indexterm><primary><command>dump</command></primary></indexterm>
+ <indexterm><primary><command>restore</command></primary></indexterm>
+
+ <para>The traditional &unix; backup programs are
+ <command>dump</command> and <command>restore</command>. They
+ operate on the drive as a collection of disk blocks, below the
+ abstractions of files, links and directories that are created by
+ the file systems. <command>dump</command> backs up an entire
+ file system on a device. It is unable to backup only part of a
+ file system or a directory tree that spans more than one
+ file system. <command>dump</command> does not write files and
+ directories to tape, but rather writes the raw data blocks that
+ comprise files and directories.</para>
+
+ <note><para>If you use <command>dump</command> on your root directory, you
+ would not back up <filename>/home</filename>,
+ <filename>/usr</filename> or many other directories since
+ these are typically mount points for other file systems or
+ symbolic links into those file systems.</para></note>
+
+ <para><command>dump</command> has quirks that remain from its early days in
+ Version 6 of AT&amp;T UNIX (circa 1975). The default
+ parameters are suitable for 9-track tapes (6250 bpi), not the
+ high-density media available today (up to 62,182 ftpi). These
+ defaults must be overridden on the command line to utilize the
+ capacity of current tape drives.</para>
+
+ <indexterm><primary><filename>.rhosts</filename></primary></indexterm>
+ <para>It is also possible to backup data across the network to a
+ tape drive attached to another computer with <command>rdump</command> and
+ <command>rrestore</command>. Both programs rely upon &man.rcmd.3; and
+ &man.ruserok.3; to access the remote tape drive. Therefore,
+ the user performing the backup must be listed in the
+ <filename>.rhosts</filename> file on the remote computer. The
+ arguments to <command>rdump</command> and <command>rrestore</command> must be suitable
+ to use on the remote computer. When
+ <command>rdump</command>ing from a FreeBSD computer to an
+ Exabyte tape drive connected to a Sun called
+ <hostid>komodo</hostid>, use:</para>
+
+ <screen>&prompt.root; <userinput>/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&amp;1</userinput></screen>
+
+ <para>Beware: there are security implications to
+ allowing <filename>.rhosts</filename> authentication. Evaluate your
+ situation carefully.</para>
+
+ <para>It is also possible to use <command>dump</command> and
+ <command>restore</command> in a more secure fashion over
+ <command>ssh</command>.</para>
+
+ <example>
+ <title>Using <command>dump</command> over <application>ssh</application></title>
+
+ <screen>&prompt.root; <userinput>/sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
+ targetuser@targetmachine.example.com dd of=/mybigfiles/dump-usr-l0.gz</userinput></screen>
+
+ </example>
+
+ <para>Or using <command>dump</command>'s built-in method,
+ setting the environment variable <envar>RSH</envar>:</para>
+
+ <example>
+ <title>Using <command>dump</command> over <application>ssh</application> with <envar>RSH</envar> set</title>
+
+ <screen>&prompt.root; <userinput>RSH=/usr/bin/ssh /sbin/dump -0uan -f targetuser@targetmachine.example.com:/dev/sa0 /usr</userinput></screen>
+
+ </example>
+
+ </sect2>
+
+ <sect2>
+ <title><command>tar</command></title>
+ <indexterm>
+ <primary>backup software</primary>
+ <secondary><command>tar</command></secondary>
+ </indexterm>
+
+ <para>&man.tar.1; also dates back to Version 6 of AT&amp;T UNIX
+ (circa 1975). <command>tar</command> operates in cooperation
+ with the file system; it writes files and
+ directories to tape. <command>tar</command> does not support the
+ full range of options that are available from &man.cpio.1;, but
+ it does not require the unusual command
+ pipeline that <command>cpio</command> uses.</para>
+
+ <indexterm><primary><command>tar</command></primary></indexterm>
+
+ <para>On FreeBSD 5.3 and later, both GNU <command>tar</command>
+ and the default <command>bsdtar</command> are available. The
+ GNU version can be invoked with <command>gtar</command>. It
+ supports remote devices using the same syntax as
+ <command>rdump</command>. To <command>tar</command> to an
+ Exabyte tape drive connected to a Sun called
+ <hostid>komodo</hostid>, use:</para>
+
+ <screen>&prompt.root; <userinput>/usr/bin/gtar cf komodo:/dev/nsa8 . 2>&amp;1</userinput></screen>
+
+ <para>The same could be accomplished with
+ <command>bsdtar</command> by using a pipeline and
+ <command>rsh</command> to send the data to a remote tape
+ drive.</para>
+
+ <screen>&prompt.root; <userinput>tar cf - . | rsh <replaceable>hostname</replaceable> dd of=<replaceable>tape-device</replaceable> obs=20b</userinput></screen>
+
+ <para>If you are worried about the security of backing up over a
+ network you should use the <command>ssh</command> command
+ instead of <command>rsh</command>.</para>
+ </sect2>
+
+ <sect2>
+ <title><command>cpio</command></title>
+ <indexterm>
+ <primary>backup software</primary>
+ <secondary><command>cpio</command></secondary>
+ </indexterm>
+
+ <para>&man.cpio.1; is the original &unix; file interchange tape
+ program for magnetic media. <command>cpio</command> has options
+ (among many others) to perform byte-swapping, write a number of
+ different archive formats, and pipe the data to other programs.
+ This last feature makes <command>cpio</command> an excellent
+ choice for installation media. <command>cpio</command> does not
+ know how to walk the directory tree and a list of files must be
+ provided through <filename>stdin</filename>.</para>
+ <indexterm><primary><command>cpio</command></primary></indexterm>
+
+ <para><command>cpio</command> does not support backups across
+ the network. You can use a pipeline and <command>rsh</command>
+ to send the data to a remote tape drive.</para>
+
+ <screen>&prompt.root; <userinput>for f in <replaceable>directory_list; do</replaceable></userinput>
+<userinput>find $f &gt;&gt; backup.list</userinput>
+<userinput>done</userinput>
+&prompt.root; <userinput>cpio -v -o --format=newc &lt; backup.list | ssh <replaceable>user</replaceable>@<replaceable>host</replaceable> "cat &gt; <replaceable>backup_device</replaceable>"</userinput></screen>
+
+ <para>Where <replaceable>directory_list</replaceable> is the list of
+ directories you want to back up,
+ <replaceable>user</replaceable>@<replaceable>host</replaceable> is the
+ user/hostname combination that will be performing the backups, and
+ <replaceable>backup_device</replaceable> is where the backups should
+ be written to (e.g., <filename>/dev/nsa0</filename>).</para>
+ </sect2>
+
+ <sect2>
+ <title><command>pax</command></title>
+ <indexterm>
+ <primary>backup software</primary>
+ <secondary><command>pax</command></secondary>
+ </indexterm>
+ <indexterm><primary><command>pax</command></primary></indexterm>
+ <indexterm><primary>POSIX</primary></indexterm>
+ <indexterm><primary>IEEE</primary></indexterm>
+
+ <para>&man.pax.1; is IEEE/&posix;'s answer to
+ <command>tar</command> and <command>cpio</command>. Over the
+ years the various versions of <command>tar</command> and
+ <command>cpio</command> have gotten slightly incompatible. So
+ rather than fight it out to fully standardize them, &posix;
+ created a new archive utility. <command>pax</command> attempts
+ to read and write many of the various <command>cpio</command>
+ and <command>tar</command> formats, plus new formats of its own.
+ Its command set more resembles <command>cpio</command> than
+ <command>tar</command>.</para>
+ </sect2>
+
+ <sect2 id="backups-programs-amanda">
+ <title><application>Amanda</application></title>
+ <indexterm>
+ <primary>backup software</primary>
+ <secondary><application>Amanda</application></secondary>
+ </indexterm>
+ <indexterm><primary><application>Amanda</application></primary></indexterm>
+
+ <!-- Remove link until <port> tag is available -->
+ <para><application>Amanda</application> (Advanced Maryland
+ Network Disk Archiver) is a client/server backup system,
+ rather than a single program. An <application>Amanda</application> server will backup to
+ a single tape drive any number of computers that have <application>Amanda</application>
+ clients and a network connection to the <application>Amanda</application> server. A
+ common problem at sites with a number of large disks is
+ that the length of time required to backup to data directly to tape
+ exceeds the amount of time available for the task. <application>Amanda</application>
+ solves this problem. <application>Amanda</application> can use a <quote>holding disk</quote> to
+ backup several file systems at the same time. <application>Amanda</application> creates
+ <quote>archive sets</quote>: a group of tapes used over a period of time to
+ create full backups of all the file systems listed in <application>Amanda</application>'s
+ configuration file. The <quote>archive set</quote> also contains nightly
+ incremental (or differential) backups of all the file systems.
+ Restoring a damaged file system requires the most recent full
+ backup and the incremental backups.</para>
+
+ <para>The configuration file provides fine control of backups and the
+ network traffic that <application>Amanda</application> generates. <application>Amanda</application> will use any of the
+ above backup programs to write the data to tape. <application>Amanda</application> is available
+ as either a port or a package, it is not installed by default.</para>
+ </sect2>
+
+ <sect2>
+ <title>Do Nothing</title>
+
+ <para><quote>Do nothing</quote> is not a computer program, but it is the
+ most widely used backup strategy. There are no initial costs. There
+ is no backup schedule to follow. Just say no. If something happens
+ to your data, grin and bear it!</para>
+
+ <para>If your time and your data is worth little to nothing, then
+ <quote>Do nothing</quote> is the most suitable backup program for your
+ computer. But beware, &unix; is a useful tool, you may find that within
+ six months you have a collection of files that are valuable to
+ you.</para>
+
+ <para><quote>Do nothing</quote> is the correct backup method for
+ <filename>/usr/obj</filename> and other directory trees that can be
+ exactly recreated by your computer. An example is the files that
+ comprise the HTML or &postscript; version of this Handbook.
+ These document formats have been created from SGML input
+ files. Creating backups of the HTML or &postscript; files is
+ not necessary. The SGML files are backed up regularly.</para>
+ </sect2>
+
+ <sect2>
+ <title>Which Backup Program Is Best?</title>
+ <indexterm>
+ <primary>LISA</primary>
+ </indexterm>
+
+ <para>&man.dump.8; <emphasis>Period.</emphasis> Elizabeth D. Zwicky
+ torture tested all the backup programs discussed here. The clear
+ choice for preserving all your data and all the peculiarities of &unix;
+ file systems is <command>dump</command>. Elizabeth created file systems containing
+ a large variety of unusual conditions (and some not so unusual ones)
+ and tested each program by doing a backup and restore of those
+ file systems. The peculiarities included: files with holes, files with
+ holes and a block of nulls, files with funny characters in their
+ names, unreadable and unwritable files, devices, files that change
+ size during the backup, files that are created/deleted during the
+ backup and more. She presented the results at LISA V in Oct. 1991.
+ See <ulink
+ url="http://berdmann.dyndns.org/zwicky/testdump.doc.html">torture-testing
+ Backup and Archive Programs</ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Emergency Restore Procedure</title>
+
+ <sect3>
+ <title>Before the Disaster</title>
+
+ <para>There are only four steps that you need to perform in
+ preparation for any disaster that may occur.</para>
+ <indexterm>
+ <primary><command>bsdlabel</command></primary>
+ </indexterm>
+
+ <para>First, print the bsdlabel from each of your disks
+ (e.g. <command>bsdlabel da0 | lpr</command>), your file system table
+ (<filename>/etc/fstab</filename>) and all boot messages,
+ two copies of
+ each.</para>
+
+ <indexterm><primary>fix-it floppies</primary></indexterm>
+ <para>Second, determine that the boot and fix-it floppies
+ (<filename>boot.flp</filename> and <filename>fixit.flp</filename>)
+ have all your devices. The easiest way to check is to reboot your
+ machine with the boot floppy in the floppy drive and check the boot
+ messages. If all your devices are listed and functional, skip on to
+ step three.</para>
+
+ <para>Otherwise, you have to create two custom bootable
+ floppies which have a kernel that can mount all of your disks
+ and access your tape drive. These floppies must contain:
+ <command>fdisk</command>, <command>bsdlabel</command>,
+ <command>newfs</command>, <command>mount</command>, and
+ whichever backup program you use. These programs must be
+ statically linked. If you use <command>dump</command>, the
+ floppy must contain <command>restore</command>.</para>
+
+ <para>Third, create backup tapes regularly. Any changes that you make
+ after your last backup may be irretrievably lost. Write-protect the
+ backup tapes.</para>
+
+ <para>Fourth, test the floppies (either <filename>boot.flp</filename>
+ and <filename>fixit.flp</filename> or the two custom bootable
+ floppies you made in step two.) and backup tapes. Make notes of the
+ procedure. Store these notes with the bootable floppy, the
+ printouts and the backup tapes. You will be so distraught when
+ restoring that the notes may prevent you from destroying your backup
+ tapes (How? In place of <command>tar xvf /dev/sa0</command>, you
+ might accidentally type <command>tar cvf /dev/sa0</command> and
+ over-write your backup tape).</para>
+
+ <para>For an added measure of security, make bootable floppies and two
+ backup tapes each time. Store one of each at a remote location. A
+ remote location is NOT the basement of the same office building. A
+ number of firms in the World Trade Center learned this lesson the
+ hard way. A remote location should be physically separated from
+ your computers and disk drives by a significant distance.</para>
+
+ <example>
+ <title>A Script for Creating a Bootable Floppy</title>
+
+ <programlisting><![ CDATA [#!/bin/sh
+#
+# create a restore floppy
+#
+# format the floppy
+#
+PATH=/bin:/sbin:/usr/sbin:/usr/bin
+
+fdformat -q fd0
+if [ $? -ne 0 ]
+then
+ echo "Bad floppy, please use a new one"
+ exit 1
+fi
+
+# place boot blocks on the floppy
+#
+bsdlabel -w -B /dev/fd0c fd1440
+
+#
+# newfs the one and only partition
+#
+newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a
+
+#
+# mount the new floppy
+#
+mount /dev/fd0a /mnt
+
+#
+# create required directories
+#
+mkdir /mnt/dev
+mkdir /mnt/bin
+mkdir /mnt/sbin
+mkdir /mnt/etc
+mkdir /mnt/root
+mkdir /mnt/mnt # for the root partition
+mkdir /mnt/tmp
+mkdir /mnt/var
+
+#
+# populate the directories
+#
+if [ ! -x /sys/compile/MINI/kernel ]
+then
+ cat << EOM
+The MINI kernel does not exist, please create one.
+Here is an example config file:
+#
+# MINI -- A kernel to get FreeBSD onto a disk.
+#
+machine "i386"
+cpu "I486_CPU"
+ident MINI
+maxusers 5
+
+options INET # needed for _tcp _icmpstat _ipstat
+ # _udpstat _tcpstat _udb
+options FFS #Berkeley Fast File System
+options FAT_CURSOR #block cursor in syscons or pccons
+options SCSI_DELAY=15 #Be pessimistic about Joe SCSI device
+options NCONS=2 #1 virtual consoles
+options USERCONFIG #Allow user configuration with -c XXX
+
+config kernel root on da0 swap on da0 and da1 dumps on da0
+
+device isa0
+device pci0
+
+device fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
+device fd0 at fdc0 drive 0
+
+device ncr0
+
+device scbus0
+
+device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
+device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
+
+device da0
+device da1
+device da2
+
+device sa0
+
+pseudo-device loop # required by INET
+pseudo-device gzip # Exec gzipped a.out's
+EOM
+ exit 1
+fi
+
+cp -f /sys/compile/MINI/kernel /mnt
+
+gzip -c -best /sbin/init > /mnt/sbin/init
+gzip -c -best /sbin/fsck > /mnt/sbin/fsck
+gzip -c -best /sbin/mount > /mnt/sbin/mount
+gzip -c -best /sbin/halt > /mnt/sbin/halt
+gzip -c -best /sbin/restore > /mnt/sbin/restore
+
+gzip -c -best /bin/sh > /mnt/bin/sh
+gzip -c -best /bin/sync > /mnt/bin/sync
+
+cp /root/.profile /mnt/root
+
+cp -f /dev/MAKEDEV /mnt/dev
+chmod 755 /mnt/dev/MAKEDEV
+
+chmod 500 /mnt/sbin/init
+chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt
+chmod 555 /mnt/bin/sh /mnt/bin/sync
+chmod 6555 /mnt/sbin/restore
+
+#
+# create the devices nodes
+#
+cd /mnt/dev
+./MAKEDEV std
+./MAKEDEV da0
+./MAKEDEV da1
+./MAKEDEV da2
+./MAKEDEV sa0
+./MAKEDEV pty0
+cd /
+
+#
+# create minimum file system table
+#
+cat > /mnt/etc/fstab <<EOM
+/dev/fd0a / ufs rw 1 1
+EOM
+
+#
+# create minimum passwd file
+#
+cat > /mnt/etc/passwd <<EOM
+root:*:0:0:Charlie &:/root:/bin/sh
+EOM
+
+cat > /mnt/etc/master.passwd <<EOM
+root::0:0::0:0:Charlie &:/root:/bin/sh
+EOM
+
+chmod 600 /mnt/etc/master.passwd
+chmod 644 /mnt/etc/passwd
+/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd
+
+#
+# umount the floppy and inform the user
+#
+/sbin/umount /mnt
+echo "The floppy has been unmounted and is now ready."]]></programlisting>
+
+ </example>
+
+ </sect3>
+
+ <sect3>
+ <title>After the Disaster</title>
+
+ <para>The key question is: did your hardware survive? You have been
+ doing regular backups so there is no need to worry about the
+ software.</para>
+
+ <para>If the hardware has been damaged, the parts should be replaced
+ before attempting to use the computer.</para>
+
+ <para>If your hardware is okay, check your floppies. If you are using
+ a custom boot floppy, boot single-user (type <literal>-s</literal>
+ at the <prompt>boot:</prompt> prompt). Skip the following
+ paragraph.</para>
+
+ <para>If you are using the <filename>boot.flp</filename> and
+ <filename>fixit.flp</filename> floppies, keep reading. Insert the
+ <filename>boot.flp</filename> floppy in the first floppy drive and
+ boot the computer. The original install menu will be displayed on
+ the screen. Select the <literal>Fixit--Repair mode with CDROM or
+ floppy.</literal> option. Insert the
+ <filename>fixit.flp</filename> when prompted.
+ <command>restore</command> and the other programs that you need are
+ located in <filename class="directory">/mnt2/rescue</filename>
+ (<filename class="directory">/mnt2/stand</filename> for
+ &os; versions older than 5.2).</para>
+
+ <para>Recover each file system separately.</para>
+
+ <indexterm>
+ <primary><command>mount</command></primary>
+ </indexterm>
+ <indexterm><primary>root partition</primary></indexterm>
+ <indexterm>
+ <primary><command>bsdlabel</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary><command>newfs</command></primary>
+ </indexterm>
+ <para>Try to <command>mount</command> (e.g. <command>mount /dev/da0a
+ /mnt</command>) the root partition of your first disk. If the
+ bsdlabel was damaged, use <command>bsdlabel</command> to re-partition and
+ label the disk to match the label that you printed and saved. Use
+ <command>newfs</command> to re-create the file systems. Re-mount the root
+ partition of the floppy read-write (<command>mount -u -o rw
+ /mnt</command>). Use your backup program and backup tapes to
+ recover the data for this file system (e.g. <command>restore vrf
+ /dev/sa0</command>). Unmount the file system (e.g. <command>umount
+ /mnt</command>). Repeat for each file system that was
+ damaged.</para>
+
+ <para>Once your system is running, backup your data onto new tapes.
+ Whatever caused the crash or data loss may strike again. Another
+ hour spent now may save you from further distress later.</para>
+ </sect3>
+
+<![ %not.published; [
+
+ <sect3>
+ <title>* I Did Not Prepare for the Disaster, What Now?</title>
+
+ <para></para>
+ </sect3>
+]]>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="disks-virtual">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Network, Memory, and File-Backed File Systems</title>
+ <indexterm><primary>virtual disks</primary></indexterm>
+ <indexterm>
+ <primary>disks</primary>
+ <secondary>virtual</secondary>
+ </indexterm>
+
+ <para>Aside from the disks you physically insert into your computer:
+ floppies, CDs, hard drives, and so forth; other forms of disks
+ are understood by FreeBSD - the <firstterm>virtual
+ disks</firstterm>.</para>
+
+ <indexterm><primary>NFS</primary></indexterm>
+ <indexterm><primary>Coda</primary></indexterm>
+ <indexterm>
+ <primary>disks</primary>
+ <secondary>memory</secondary>
+ </indexterm>
+ <para>These include network file systems such as the <link
+ linkend="network-nfs">Network File System</link> and Coda, memory-based
+ file systems and
+ file-backed file systems.</para>
+
+ <para>According to the FreeBSD version you run, you will have to use
+ different tools for creation and use of file-backed and
+ memory-based file systems.</para>
+
+ <note>
+ <para>Use &man.devfs.5; to allocate device nodes transparently for the
+ user.</para>
+ </note>
+
+ <sect2 id="disks-mdconfig">
+ <title>File-Backed File System</title>
+ <indexterm>
+ <primary>disks</primary>
+ <secondary>file-backed</secondary>
+ </indexterm>
+
+ <para>The utility &man.mdconfig.8; is used to configure and enable
+ memory disks, &man.md.4;, under FreeBSD. To use
+ &man.mdconfig.8;, you have to load &man.md.4; module or to add
+ the support in your kernel configuration file:</para>
+
+ <programlisting>device md</programlisting>
+
+ <para>The &man.mdconfig.8; command supports three kinds of
+ memory backed virtual disks: memory disks allocated with
+ &man.malloc.9;, memory disks using a file or swap space as
+ backing. One possible use is the mounting of floppy
+ or CD images kept in files.</para>
+
+ <para>To mount an existing file system image:</para>
+
+ <example>
+ <title>Using <command>mdconfig</command> to Mount an Existing File System
+ Image</title>
+
+ <screen>&prompt.root; <userinput>mdconfig -a -t vnode -f <replaceable>diskimage</replaceable> -u <replaceable>0</replaceable></userinput>
+&prompt.root; <userinput>mount /dev/md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
+ </example>
+
+ <para>To create a new file system image with &man.mdconfig.8;:</para>
+
+ <example>
+ <title>Creating a New File-Backed Disk with <command>mdconfig</command></title>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>
+5120+0 records in
+5120+0 records out
+&prompt.root; <userinput>mdconfig -a -t vnode -f <replaceable>newimage</replaceable> -u <replaceable>0</replaceable></userinput>
+&prompt.root; <userinput>bsdlabel -w md<replaceable>0</replaceable> auto</userinput>
+&prompt.root; <userinput>newfs md<replaceable>0</replaceable>a</userinput>
+/dev/md0a: 5.0MB (10224 sectors) block size 16384, fragment size 2048
+ using 4 cylinder groups of 1.25MB, 80 blks, 192 inodes.
+super-block backups (for fsck -b #) at:
+ 160, 2720, 5280, 7840
+&prompt.root; <userinput>mount /dev/md<replaceable>0</replaceable>a <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/md0a 4710 4 4330 0% /mnt</screen>
+ </example>
+
+ <para>If you do not specify the unit number with the
+ <option>-u</option> option, &man.mdconfig.8; will use the
+ &man.md.4; automatic allocation to select an unused device.
+ The name of the allocated unit will be output on stdout like
+ <devicename>md4</devicename>. For more details about
+ &man.mdconfig.8;, please refer to the manual page.</para>
+
+ <para>The utility &man.mdconfig.8; is very useful, however it
+ asks many command lines to create a file-backed file system.
+ FreeBSD also comes with a tool called &man.mdmfs.8;,
+ this program configures a &man.md.4; disk using
+ &man.mdconfig.8;, puts a UFS file system on it using
+ &man.newfs.8;, and mounts it using &man.mount.8;. For example,
+ if you want to create and mount the same file system image as
+ above, simply type the following:</para>
+
+ <example>
+ <title>Configure and Mount a File-Backed Disk with <command>mdmfs</command></title>
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>
+5120+0 records in
+5120+0 records out
+&prompt.root; <userinput>mdmfs -F <replaceable>newimage</replaceable> -s <replaceable>5</replaceable>m md<replaceable>0</replaceable> <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/md0 4718 4 4338 0% /mnt</screen>
+ </example>
+
+ <para>If you use the option <option>md</option> without unit
+ number, &man.mdmfs.8; will use &man.md.4; auto-unit feature to
+ automatically select an unused device. For more details
+ about &man.mdmfs.8;, please refer to the manual page.</para>
+
+ </sect2>
+
+ <sect2 id="disks-md-freebsd5">
+ <title>Memory-Based File System</title>
+ <indexterm>
+ <primary>disks</primary>
+ <secondary>memory file system</secondary>
+ </indexterm>
+
+ <para>For a
+ memory-based file system the <quote>swap backing</quote>
+ should normally be used. Using swap backing does not mean
+ that the memory disk will be swapped out to disk by default,
+ but merely that the memory disk will be allocated from a
+ memory pool which can be swapped out to disk if needed. It is
+ also possible to create memory-based disk which are
+ &man.malloc.9; backed, but using malloc backed memory disks,
+ especially large ones, can result in a system panic if the
+ kernel runs out of memory.</para>
+
+ <example>
+ <title>Creating a New Memory-Based Disk with
+ <command>mdconfig</command></title>
+
+ <screen>&prompt.root; <userinput>mdconfig -a -t swap -s <replaceable>5</replaceable>m -u <replaceable>1</replaceable></userinput>
+&prompt.root; <userinput>newfs -U md<replaceable>1</replaceable></userinput>
+/dev/md1: 5.0MB (10240 sectors) block size 16384, fragment size 2048
+ using 4 cylinder groups of 1.27MB, 81 blks, 192 inodes.
+ with soft updates
+super-block backups (for fsck -b #) at:
+ 160, 2752, 5344, 7936
+&prompt.root; <userinput>mount /dev/md<replaceable>1</replaceable> <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/md1 4718 4 4338 0% /mnt</screen>
+ </example>
+
+ <example>
+ <title>Creating a New Memory-Based Disk with
+ <command>mdmfs</command></title>
+ <screen>&prompt.root; <userinput>mdmfs -s <replaceable>5</replaceable>m md<replaceable>2</replaceable> <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/md2 4846 2 4458 0% /mnt</screen>
+ </example>
+ </sect2>
+
+ <sect2>
+ <title>Detaching a Memory Disk from the System</title>
+ <indexterm>
+ <primary>disks</primary>
+ <secondary>detaching a memory disk</secondary>
+ </indexterm>
+
+ <para>When a memory-based or file-based file system
+ is not used, you should release all resources to the system.
+ The first thing to do is to unmount the file system, then use
+ &man.mdconfig.8; to detach the disk from the system and release
+ the resources.</para>
+
+ <para>For example to detach and free all resources used by
+ <filename>/dev/md4</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mdconfig -d -u <replaceable>4</replaceable></userinput></screen>
+
+ <para>It is possible to list information about configured
+ &man.md.4; devices in using the command <command>mdconfig
+ -l</command>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="snapshots">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <!-- 15 JUL 2002 -->
+ </sect1info>
+
+ <title>File System Snapshots</title>
+
+ <indexterm>
+ <primary>file systems</primary>
+ <secondary>snapshots</secondary>
+ </indexterm>
+
+ <para>FreeBSD offers a feature in conjunction with
+ <link linkend="soft-updates">Soft Updates</link>: File system snapshots.</para>
+
+ <para>Snapshots allow a user to create images of specified file
+ systems, and treat them as a file.
+ Snapshot files must be created in the file system that the
+ action is performed on, and a user may create no more than 20
+ snapshots per file system. Active snapshots are recorded
+ in the superblock so they are persistent across unmount and
+ remount operations along with system reboots. When a snapshot
+ is no longer required, it can be removed with the standard &man.rm.1;
+ command. Snapshots may be removed in any order,
+ however all the used space may not be acquired because another snapshot will
+ possibly claim some of the released blocks.</para>
+
+ <para>The un-alterable <option>snapshot</option> file flag is set
+ by &man.mksnap.ffs.8; after initial creation of a snapshot file.
+ The &man.unlink.1; command makes an exception for snapshot files
+ since it allows them to be removed.</para>
+
+ <para>Snapshots are created with the &man.mount.8; command. To place
+ a snapshot of <filename>/var</filename> in the file
+ <filename>/var/snapshot/snap</filename> use the following
+ command:</para>
+
+<screen>&prompt.root; <userinput>mount -u -o snapshot /var/snapshot/snap /var</userinput></screen>
+
+ <para>Alternatively, you can use &man.mksnap.ffs.8; to create
+ a snapshot:</para>
+<screen>&prompt.root; <userinput>mksnap_ffs /var /var/snapshot/snap</userinput></screen>
+
+ <para>One can find snapshot files on a file system (e.g. <filename>/var</filename>)
+ by using the &man.find.1; command:</para>
+<screen>&prompt.root; <userinput>find /var -flags snapshot</userinput></screen>
+
+ <para>Once a snapshot has been created, it has several
+ uses:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Some administrators will use a snapshot file for backup purposes,
+ because the snapshot can be transfered to CDs or tape.</para>
+ </listitem>
+
+ <listitem>
+ <para>The file system integrity checker, &man.fsck.8;, may be run on the snapshot.
+ Assuming that the file system was clean when it was mounted, you
+ should always get a clean (and unchanging) result.
+ This is essentially what the
+ background &man.fsck.8; process does.</para>
+ </listitem>
+
+ <listitem>
+ <para>Run the &man.dump.8; utility on the snapshot.
+ A dump will be returned that is consistent with the
+ file system and the timestamp of the snapshot. &man.dump.8;
+ can also take a snapshot, create a dump image and then
+ remove the snapshot in one command using the
+ <option>-L</option> flag.</para>
+ </listitem>
+
+ <listitem>
+ <para>&man.mount.8; the snapshot as a frozen image of the file system.
+ To &man.mount.8; the snapshot
+ <filename>/var/snapshot/snap</filename> run:</para>
+
+<screen>&prompt.root; <userinput>mdconfig -a -t vnode -f /var/snapshot/snap -u 4</userinput>
+&prompt.root; <userinput>mount -r /dev/md4 /mnt</userinput></screen>
+
+ </listitem>
+ </itemizedlist>
+
+ <para>You can now walk the hierarchy of your frozen <filename>/var</filename>
+ file system mounted at <filename>/mnt</filename>. Everything will
+ initially be in the same state it was during the snapshot creation time.
+ The only exception is that any earlier snapshots will appear
+ as zero length files. When the use of a snapshot has delimited,
+ it can be unmounted with:</para>
+
+<screen>&prompt.root; <userinput>umount /mnt</userinput>
+&prompt.root; <userinput>mdconfig -d -u 4</userinput></screen>
+
+ <para>For more information about <option>softupdates</option> and
+ file system snapshots, including technical papers, you can visit
+ Marshall Kirk McKusick's website at
+ <ulink url="http://www.mckusick.com/"></ulink>.</para>
+ </sect1>
+
+ <sect1 id="quotas">
+ <title>File System Quotas</title>
+ <indexterm>
+ <primary>accounting</primary>
+ <secondary>disk space</secondary>
+ </indexterm>
+ <indexterm><primary>disk quotas</primary></indexterm>
+
+ <para>Quotas are an optional feature of the operating system that
+ allow you to limit the amount of disk space and/or the number of
+ files a user or members of a group may allocate on a per-file
+ system basis. This is used most often on timesharing systems where
+ it is desirable to limit the amount of resources any one user or
+ group of users may allocate. This will prevent one user or group
+ of users from consuming all of the available disk space.</para>
+
+ <sect2>
+ <title>Configuring Your System to Enable Disk Quotas</title>
+
+ <para>Before attempting to use disk quotas, it is necessary to make
+ sure that quotas are configured in your kernel. This is done by
+ adding the following line to your kernel configuration
+ file:</para>
+
+ <programlisting>options QUOTA</programlisting>
+
+ <para>The stock <filename>GENERIC</filename> kernel does not have
+ this enabled by default, so you will have to configure, build and
+ install a custom kernel in order to use disk quotas. Please refer
+ to <xref linkend="kernelconfig"> for more information on kernel
+ configuration.</para>
+
+ <para>Next you will need to enable disk quotas in
+ <filename>/etc/rc.conf</filename>. This is done by adding the
+ line:</para>
+
+ <programlisting>enable_quotas="YES"</programlisting>
+ <indexterm>
+ <primary>disk quotas</primary>
+ <secondary>checking</secondary>
+ </indexterm>
+ <para>For finer control over your quota startup, there is an
+ additional configuration variable available. Normally on bootup,
+ the quota integrity of each file system is checked by the
+ &man.quotacheck.8; program. The
+ &man.quotacheck.8; facility insures that the data in
+ the quota database properly reflects the data on the file system.
+ This is a very time consuming process that will significantly
+ affect the time your system takes to boot. If you would like to
+ skip this step, a variable in <filename>/etc/rc.conf</filename>
+ is made available for the purpose:</para>
+
+ <programlisting>check_quotas="NO"</programlisting>
+
+ <para>Finally you will need to edit <filename>/etc/fstab</filename>
+ to enable disk quotas on a per-file system basis. This is where
+ you can either enable user or group quotas or both for all of your
+ file systems.</para>
+
+ <para>To enable per-user quotas on a file system, add the
+ <option>userquota</option> option to the options field in the
+ <filename>/etc/fstab</filename> entry for the file system you want
+ to enable quotas on. For example:</para>
+
+ <programlisting>/dev/da1s2g /home ufs rw,userquota 1 2</programlisting>
+
+ <para>Similarly, to enable group quotas, use the
+ <option>groupquota</option> option instead of
+ <option>userquota</option>. To enable both user and
+ group quotas, change the entry as follows:</para>
+
+ <programlisting>/dev/da1s2g /home ufs rw,userquota,groupquota 1 2</programlisting>
+
+ <para>By default, the quota files are stored in the root directory of
+ the file system with the names <filename>quota.user</filename> and
+ <filename>quota.group</filename> for user and group quotas
+ respectively. See &man.fstab.5; for more
+ information. Even though the &man.fstab.5; manual page says that
+ you can specify
+ an alternate location for the quota files, this is not recommended
+ because the various quota utilities do not seem to handle this
+ properly.</para>
+
+ <para>At this point you should reboot your system with your new
+ kernel. <filename>/etc/rc</filename> will automatically run the
+ appropriate commands to create the initial quota files for all of
+ the quotas you enabled in <filename>/etc/fstab</filename>, so
+ there is no need to manually create any zero length quota
+ files.</para>
+
+ <para>In the normal course of operations you should not be required
+ to run the &man.quotacheck.8;,
+ &man.quotaon.8;, or &man.quotaoff.8;
+ commands manually. However, you may want to read their manual pages
+ just to be familiar with their operation.</para>
+ </sect2>
+
+ <sect2>
+ <title>Setting Quota Limits</title>
+ <indexterm>
+ <primary>disk quotas</primary>
+ <secondary>limits</secondary>
+ </indexterm>
+
+ <para>Once you have configured your system to enable quotas, verify
+ that they really are enabled. An easy way to do this is to
+ run:</para>
+
+ <screen>&prompt.root; <userinput>quota -v</userinput></screen>
+
+ <para>You should see a one line summary of disk usage and current
+ quota limits for each file system that quotas are enabled
+ on.</para>
+
+ <para>You are now ready to start assigning quota limits with the
+ &man.edquota.8; command.</para>
+
+ <para>You have several options on how to enforce limits on the
+ amount of disk space a user or group may allocate, and how many
+ files they may create. You may limit allocations based on disk
+ space (block quotas) or number of files (inode quotas) or a
+ combination of both. Each of these limits are further broken down
+ into two categories: hard and soft limits.</para>
+
+ <indexterm><primary>hard limit</primary></indexterm>
+ <para>A hard limit may not be exceeded. Once a user reaches his
+ hard limit he may not make any further allocations on the file
+ system in question. For example, if the user has a hard limit of
+ 500 kbytes on a file system and is currently using 490 kbytes, the
+ user can only allocate an additional 10 kbytes. Attempting to
+ allocate an additional 11 kbytes will fail.</para>
+
+ <indexterm><primary>soft limit</primary></indexterm>
+ <para>Soft limits, on the other hand, can be exceeded for a limited
+ amount of time. This period of time is known as the grace period,
+ which is one week by default. If a user stays over his or her
+ soft limit longer than the grace period, the soft limit will
+ turn into a hard limit and no further allocations will be allowed.
+ When the user drops back below the soft limit, the grace period
+ will be reset.</para>
+
+ <para>The following is an example of what you might see when you run
+ the &man.edquota.8; command. When the
+ &man.edquota.8; command is invoked, you are placed into
+ the editor specified by the <envar>EDITOR</envar> environment
+ variable, or in the <application>vi</application> editor if the
+ <envar>EDITOR</envar> variable is not set, to allow you to edit
+ the quota limits.</para>
+
+ <screen>&prompt.root; <userinput>edquota -u test</userinput></screen>
+
+ <programlisting>Quotas for user test:
+/usr: kbytes in use: 65, limits (soft = 50, hard = 75)
+ inodes in use: 7, limits (soft = 50, hard = 60)
+/usr/var: kbytes in use: 0, limits (soft = 50, hard = 75)
+ inodes in use: 0, limits (soft = 50, hard = 60)</programlisting>
+
+ <para>You will normally see two lines for each file system that has
+ quotas enabled. One line for the block limits, and one line for
+ inode limits. Simply change the value you want updated to modify
+ the quota limit. For example, to raise this user's block limit
+ from a soft limit of 50 and a hard limit of 75 to a soft limit of
+ 500 and a hard limit of 600, change:</para>
+
+ <programlisting>/usr: kbytes in use: 65, limits (soft = 50, hard = 75)</programlisting>
+
+ <para>to:</para>
+
+ <programlisting>/usr: kbytes in use: 65, limits (soft = 500, hard = 600)</programlisting>
+
+ <para>The new quota limits will be in place when you exit the
+ editor.</para>
+
+ <para>Sometimes it is desirable to set quota limits on a range of
+ UIDs. This can be done by use of the <option>-p</option> option
+ on the &man.edquota.8; command. First, assign the
+ desired quota limit to a user, and then run
+ <command>edquota -p protouser startuid-enduid</command>. For
+ example, if user <username>test</username> has the desired quota
+ limits, the following command can be used to duplicate those quota
+ limits for UIDs 10,000 through 19,999:</para>
+
+ <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
+
+ <para>For more information see &man.edquota.8; manual page.</para>
+ </sect2>
+
+ <sect2>
+ <title>Checking Quota Limits and Disk Usage</title>
+ <indexterm>
+ <primary>disk quotas</primary>
+ <secondary>checking</secondary>
+ </indexterm>
+
+ <para>You can use either the &man.quota.1; or the
+ &man.repquota.8; commands to check quota limits and
+ disk usage. The &man.quota.1; command can be used to
+ check individual user or group quotas and disk usage. A user
+ may only examine his own quota, and the quota of a group he
+ is a member of. Only the super-user may view all user and group
+ quotas. The
+ &man.repquota.8; command can be used to get a summary
+ of all quotas and disk usage for file systems with quotas
+ enabled.</para>
+
+ <para>The following is some sample output from the
+ <command>quota -v</command> command for a user that has quota
+ limits on two file systems.</para>
+
+ <programlisting>Disk quotas for user test (uid 1002):
+ Filesystem usage quota limit grace files quota limit grace
+ /usr 65* 50 75 5days 7 50 60
+ /usr/var 0 50 75 0 50 60</programlisting>
+
+ <indexterm><primary>grace period</primary></indexterm>
+ <para>On the <filename>/usr</filename> file system in the above
+ example, this user is currently 15 kbytes over the soft limit of
+ 50 kbytes and has 5 days of the grace period left. Note the
+ asterisk <literal>*</literal> which indicates that the user is
+ currently over his quota limit.</para>
+
+ <para>Normally file systems that the user is not using any disk
+ space on will not show up in the output from the
+ &man.quota.1; command, even if he has a quota limit
+ assigned for that file system. The <option>-v</option> option
+ will display those file systems, such as the
+ <filename>/usr/var</filename> file system in the above
+ example.</para>
+ </sect2>
+
+ <sect2>
+ <title>Quotas over NFS</title>
+ <indexterm><primary>NFS</primary></indexterm>
+
+ <para>Quotas are enforced by the quota subsystem on the NFS server.
+ The &man.rpc.rquotad.8; daemon makes quota information available
+ to the &man.quota.1; command on NFS clients, allowing users on
+ those machines to see their quota statistics.</para>
+
+ <para>Enable <command>rpc.rquotad</command> in
+ <filename>/etc/inetd.conf</filename> like so:</para>
+
+ <programlisting>rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad</programlisting>
+
+ <para>Now restart <command>inetd</command>:</para>
+
+ <screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen>
+ </sect2>
+ </sect1>
+
+
+ <sect1 id="disks-encrypting">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Lucky</firstname>
+ <surname>Green</surname>
+ <contrib>Contributed by </contrib>
+ <affiliation>
+ <address><email>shamrock@cypherpunks.to</email></address>
+ </affiliation>
+ </author>
+ </authorgroup>
+ <!-- 11 MARCH 2003 -->
+ </sect1info>
+
+ <title>Encrypting Disk Partitions</title>
+ <indexterm>
+ <primary>disks</primary>
+ <secondary>encrypting</secondary></indexterm>
+
+ <para>FreeBSD offers excellent online protections against
+ unauthorized data access. File permissions and Mandatory
+ Access Control (MAC) (see <xref linkend="mac">) help prevent
+ unauthorized third-parties from accessing data while the operating
+ system is active and the computer is powered up. However,
+ the permissions enforced by the operating system are irrelevant if an
+ attacker has physical access to a computer and can simply move
+ the computer's hard drive to another system to copy and analyze
+ the sensitive data.</para>
+
+ <para>Regardless of how an attacker may have come into possession of
+ a hard drive or powered-down computer, both <application>GEOM
+ Based Disk Encryption (gbde)</application> and
+ <command>geli</command> cryptographic subsystems in &os; are able
+ to protect the data on the computer's file systems against even
+ highly-motivated attackers with significant resources. Unlike
+ cumbersome encryption methods that encrypt only individual files,
+ <command>gbde</command> and <command>geli</command> transparently
+ encrypt entire file systems. No cleartext ever touches the hard
+ drive's platter.</para>
+
+ <sect2>
+ <title>Disk Encryption with <application>gbde</application></title>
+
+ <procedure>
+ <step>
+ <title>Become <username>root</username></title>
+
+ <para>Configuring <application>gbde</application> requires
+ super-user privileges.</para>
+
+ <screen>&prompt.user; <userinput>su -</userinput>
+Password:</screen>
+ </step>
+
+ <step>
+ <title>Add &man.gbde.4; Support to the Kernel Configuration File</title>
+
+ <para>Add the following line to the kernel configuration
+ file:</para>
+
+ <para><literal>options GEOM_BDE</literal></para>
+
+ <para>Rebuild the kernel as described in <xref
+ linkend="kernelconfig">.</para>
+
+ <para>Reboot into the new kernel.</para>
+ </step>
+
+ <step>
+ <para>An alternative to recompiling the kernel is to use
+ <command>kldload</command> to load &man.gbde.4;:</para>
+
+ <screen>&prompt.root; <userinput>kldload geom_bde</userinput></screen>
+ </step>
+ </procedure>
+
+ <sect3>
+ <title>Preparing the Encrypted Hard Drive</title>
+
+ <para>The following example assumes that you are adding a new hard
+ drive to your system that will hold a single encrypted partition.
+ This partition will be mounted as <filename>/private</filename>.
+ <application>gbde</application> can also be used to encrypt
+ <filename>/home</filename> and <filename>/var/mail</filename>, but
+ this requires more complex instructions which exceed the scope of
+ this introduction.</para>
+
+ <procedure>
+ <step>
+ <title>Add the New Hard Drive</title>
+
+ <para>Install the new drive to the system as explained in <xref
+ linkend="disks-adding">. For the purposes of this example,
+ a new hard drive partition has been added as
+ <filename>/dev/ad4s1c</filename>. The
+ <filename>/dev/ad0s1<replaceable>*</replaceable></filename>
+ devices represent existing standard FreeBSD partitions on
+ the example system.</para>
+
+ <screen>&prompt.root; <userinput>ls /dev/ad*</userinput>
+/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
+/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
+/dev/ad0s1a /dev/ad0s1d /dev/ad4</screen>
+ </step>
+
+ <step>
+ <title>Create a Directory to Hold gbde Lock Files</title>
+
+ <screen>&prompt.root; <userinput>mkdir /etc/gbde</userinput></screen>
+
+ <para>The <application>gbde</application> lock file contains
+ information that <application>gbde</application> requires to
+ access encrypted partitions. Without access to the lock file,
+ <application>gbde</application> will not be able to decrypt
+ the data contained in the encrypted partition without
+ significant manual intervention which is not supported by the
+ software. Each encrypted partition uses a separate lock
+ file.</para>
+ </step>
+
+ <step>
+ <title>Initialize the gbde Partition</title>
+
+ <para>A <application>gbde</application> partition must be
+ initialized before it can be used. This initialization needs to
+ be performed only once:</para>
+
+ <screen>&prompt.root; <userinput>gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c</userinput></screen>
+
+ <para>&man.gbde.8; will open your editor, permitting you to set
+ various configuration options in a template. For use with UFS1
+ or UFS2, set the sector_size to 2048:</para>
+
+ <programlisting>$<!-- This is not the space you are looking
+for-->FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
+#
+# Sector size is the smallest unit of data which can be read or written.
+# Making it too small decreases performance and decreases available space.
+# Making it too large may prevent filesystems from working. 512 is the
+# minimum and always safe. For UFS, use the fragment size
+#
+sector_size = 2048
+[...]
+</programlisting>
+
+ <para>&man.gbde.8; will ask you twice to type the passphrase that
+ should be used to secure the data. The passphrase must be the
+ same both times. <application>gbde</application>'s ability to
+ protect your data depends entirely on the quality of the
+ passphrase that you choose.
+ <footnote>
+ <para>For tips on how to select a secure passphrase that is easy
+ to remember, see the <ulink
+ url="http://world.std.com/~reinhold/diceware.html">Diceware
+ Passphrase</ulink> website.</para></footnote></para>
+
+ <para>The <command>gbde init</command> command creates a lock
+ file for your <application>gbde</application> partition that in
+ this example is stored as
+ <filename>/etc/gbde/ad4s1c</filename>.</para>
+
+ <caution>
+ <para><application>gbde</application> lock files
+ <emphasis>must</emphasis> be backed up together with the
+ contents of any encrypted partitions. While deleting a lock
+ file alone cannot prevent a determined attacker from
+ decrypting a <application>gbde</application> partition,
+ without the lock file, the legitimate owner will be unable
+ to access the data on the encrypted partition without a
+ significant amount of work that is totally unsupported by
+ &man.gbde.8; and its designer.</para>
+ </caution>
+ </step>
+
+ <step>
+ <title>Attach the Encrypted Partition to the Kernel</title>
+
+ <screen>&prompt.root; <userinput>gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c</userinput></screen>
+
+ <para> You will be asked to provide the passphrase that you
+ selected during the initialization of the encrypted partition.
+ The new encrypted device will show up in
+ <filename>/dev</filename> as
+ <filename>/dev/device_name.bde</filename>:</para>
+
+ <screen>&prompt.root; <userinput>ls /dev/ad*</userinput>
+/dev/ad0 /dev/ad0s1b /dev/ad0s1e /dev/ad4s1
+/dev/ad0s1 /dev/ad0s1c /dev/ad0s1f /dev/ad4s1c
+/dev/ad0s1a /dev/ad0s1d /dev/ad4 /dev/ad4s1c.bde</screen>
+ </step>
+
+ <step>
+ <title>Create a File System on the Encrypted Device</title>
+
+ <para>Once the encrypted device has been attached to the kernel,
+ you can create a file system on the device. To create a file
+ system on the encrypted device, use &man.newfs.8;. Since it is
+ much faster to initialize a new UFS2 file system than it is to
+ initialize the old UFS1 file system, using &man.newfs.8; with
+ the <option>-O2</option> option is recommended.</para>
+
+ <screen>&prompt.root; <userinput>newfs -U -O2 /dev/ad4s1c.bde</userinput></screen>
+
+ <note>
+ <para>The &man.newfs.8; command must be performed on an
+ attached <application>gbde</application> partition which
+ is identified by a
+ <filename><replaceable>*</replaceable>.bde</filename>
+ extension to the device name.</para>
+ </note>
+ </step>
+
+ <step>
+ <title>Mount the Encrypted Partition</title>
+
+ <para>Create a mount point for the encrypted file system.</para>
+
+ <screen>&prompt.root; <userinput>mkdir /private</userinput></screen>
+
+ <para>Mount the encrypted file system.</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/ad4s1c.bde /private</userinput></screen>
+ </step>
+
+ <step>
+ <title>Verify That the Encrypted File System is Available</title>
+
+ <para>The encrypted file system should now be visible to
+ &man.df.1; and be available for use.</para>
+
+ <screen>&prompt.user; <userinput>df -H</userinput>
+Filesystem Size Used Avail Capacity Mounted on
+/dev/ad0s1a 1037M 72M 883M 8% /
+/devfs 1.0K 1.0K 0B 100% /dev
+/dev/ad0s1f 8.1G 55K 7.5G 0% /home
+/dev/ad0s1e 1037M 1.1M 953M 0% /tmp
+/dev/ad0s1d 6.1G 1.9G 3.7G 35% /usr
+/dev/ad4s1c.bde 150G 4.1K 138G 0% /private</screen>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3>
+ <title>Mounting Existing Encrypted File Systems</title>
+
+ <para>After each boot, any encrypted file systems must be
+ re-attached to the kernel, checked for errors, and mounted, before
+ the file systems can be used. The required commands must be
+ executed as user <username>root</username>.</para>
+
+ <procedure>
+ <step>
+ <title>Attach the gbde Partition to the Kernel</title>
+
+ <screen>&prompt.root; <userinput>gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c</userinput></screen>
+
+ <para>You will be asked to provide the passphrase that you
+ selected during initialization of the encrypted
+ <application>gbde</application> partition.</para>
+ </step>
+
+ <step>
+ <title>Check the File System for Errors</title>
+
+ <para>Since encrypted file systems cannot yet be listed in
+ <filename>/etc/fstab</filename> for automatic mounting, the
+ file systems must be checked for errors by running &man.fsck.8;
+ manually before mounting.</para>
+
+ <screen>&prompt.root; <userinput>fsck -p -t ffs /dev/ad4s1c.bde</userinput></screen>
+ </step>
+
+ <step>
+ <title>Mount the Encrypted File System</title>
+
+ <screen>&prompt.root; <userinput>mount /dev/ad4s1c.bde /private</userinput></screen>
+
+ <para>The encrypted file system is now available for use.</para>
+ </step>
+ </procedure>
+
+ <sect4>
+ <title>Automatically Mounting Encrypted Partitions</title>
+
+ <para>It is possible to create a script to automatically attach,
+ check, and mount an encrypted partition, but for security reasons
+ the script should not contain the &man.gbde.8; password. Instead,
+ it is recommended that such scripts be run manually while
+ providing the password via the console or &man.ssh.1;.</para>
+
+ <para>As an alternative, an <filename>rc.d</filename> script is
+ provided. Arguments for this script can be passed via
+ &man.rc.conf.5;, for example:</para>
+
+ <screen>gbde_autoattach_all="YES"
+gbde_devices="ad4s1c"</screen>
+
+ <para>This will require that the <application>gbde</application>
+ passphrase be entered at boot time. After typing the correct
+ passphrase, the <application>gbde</application> encrypted
+ partition will be mounted automatically. This can be very
+ useful when using <application>gbde</application> on
+ notebooks.</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Cryptographic Protections Employed by gbde</title>
+
+ <para>&man.gbde.8; encrypts the sector payload using 128-bit AES in
+ CBC mode. Each sector on the disk is encrypted with a different
+ AES key. For more information on <application>gbde</application>'s
+ cryptographic design, including how the sector keys are derived
+ from the user-supplied passphrase, see &man.gbde.4;.</para>
+ </sect3>
+
+ <sect3>
+ <title>Compatibility Issues</title>
+
+ <para>&man.sysinstall.8; is incompatible with
+ <application>gbde</application>-encrypted devices. All
+ <devicename><replaceable>*</replaceable>.bde</devicename> devices must be detached from the
+ kernel before starting &man.sysinstall.8; or it will crash during
+ its initial probing for devices. To detach the encrypted device
+ used in our example, use the following command:</para>
+ <screen>&prompt.root; <userinput>gbde detach /dev/ad4s1c</userinput></screen>
+
+ <para>Also note that, as &man.vinum.4; does not use the
+ &man.geom.4; subsystem, you cannot use
+ <application>gbde</application> with
+ <application>vinum</application> volumes.</para>
+ </sect3>
+
+ </sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Daniel</firstname>
+ <surname>Gerzo</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <!-- Date of writing: 28 November 2005 -->
+ </sect2info>
+
+ <title>Disk Encryption with <command>geli</command></title>
+
+ <para>A new cryptographic GEOM class is available as of &os; 6.0 -
+ <command>geli</command>. It is currently being developed by
+ &a.pjd;. <command>Geli</command> is different to
+ <command>gbde</command>; it offers different features and uses
+ a different scheme for doing cryptographic work.</para>
+
+ <para>The most important features of &man.geli.8; are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Utilizes the &man.crypto.9; framework &mdash; when
+ cryptographic hardware is available, <command>geli</command>
+ will use it automatically.</para>
+ </listitem>
+ <listitem>
+ <para>Supports multiple cryptographic algorithms (currently
+ AES, Blowfish, and 3DES).</para>
+ </listitem>
+ <listitem>
+ <para>Allows the root partition to be encrypted. The
+ passphrase used to access the encrypted root partition will
+ be requested during the system boot.</para>
+ </listitem>
+ <listitem>
+ <para>Allows the use of two independent keys (e.g. a
+ <quote>key</quote> and a <quote>company key</quote>).</para>
+ </listitem>
+ <listitem>
+ <para><command>geli</command> is fast - performs simple
+ sector-to-sector encryption.</para>
+ </listitem>
+ <listitem>
+ <para>Allows backup and restore of Master Keys. When a user
+ has to destroy his keys, it will be possible to get access
+ to the data again by restoring keys from the backup.</para>
+ </listitem>
+ <listitem>
+ <para>Allows to attach a disk with a random, one-time key
+ &mdash; useful for swap partitions and temporary file
+ systems.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>More <command>geli</command> features can be found in the
+ &man.geli.8; manual page.</para>
+
+ <para>The next steps will describe how to enable support for
+ <command>geli</command> in the &os; kernel and will explain how
+ to create a new <command>geli</command> encryption provider. At
+ the end it will be demonstrated how to create an encrypted swap
+ partition using features provided by <command>geli</command>.</para>
+
+ <para>In order to use <command>geli</command>, you must be running
+ &os; 6.0-RELEASE or later. Super-user privileges will be
+ required since modifications to the kernel are necessary.</para>
+
+ <procedure>
+ <step>
+ <title>Adding <command>geli</command> Support to the Kernel
+ Configuration File</title>
+
+ <para>Add the following lines to the kernel configuration
+ file:</para>
+
+ <screen>options GEOM_ELI
+device crypto</screen>
+
+ <para>Rebuild the kernel as described in <xref
+ linkend="kernelconfig">.</para>
+
+ <para>Alternatively, the <command>geli</command> module can
+ be loaded at boot time. Add the following line to the
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <para><literal>geom_eli_load="YES"</literal></para>
+
+ <para>&man.geli.8; should now be supported by the kernel.</para>
+ </step>
+
+ <step>
+ <title>Generating the Master Key</title>
+
+ <para>The following example will describe how to generate a
+ key file, which will be used as part of the Master Key for
+ the encrypted provider mounted under
+ <filename role="directory">/private</filename>. The key
+ file will provide some random data used to encrypt the
+ Master Key. The Master Key will be protected by a
+ passphrase as well. Provider's sector size will be 4kB big.
+ Furthermore, the discussion will describe how to attach the
+ <command>geli</command> provider, create a file system on
+ it, how to mount it, how to work with it, and finally how to
+ detach it.</para>
+
+ <para>It is recommended to use a bigger sector size (like 4kB) for
+ better performance.</para>
+
+ <para>The Master Key will be protected with a passphrase and
+ the data source for key file will be
+ <filename>/dev/random</filename>. The sector size of
+ <filename>/dev/da2.eli</filename>, which we call provider,
+ will be 4kB.</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/random of=/root/da2.key bs=64 count=1</userinput>
+&prompt.root; <userinput>geli init -s 4096 -K /root/da2.key /dev/da2</userinput>
+Enter new passphrase:
+Reenter new passphrase:</screen>
+
+ <para>It is not mandatory that both a passphrase and a key
+ file are used; either method of securing the Master Key can
+ be used in isolation.</para>
+
+ <para>If key file is given as <quote>-</quote>, standard
+ input will be used. This example shows how more than one
+ key file can be used.</para>
+
+ <screen>&prompt.root; <userinput>cat keyfile1 keyfile2 keyfile3 | geli init -K - /dev/da2</userinput></screen>
+ </step>
+
+ <step>
+ <title>Attaching the Provider with the generated Key</title>
+
+ <screen>&prompt.root; <userinput>geli attach -k /root/da2.key /dev/da2</userinput>
+Enter passphrase:</screen>
+
+ <para>The new plaintext device will be named
+ <filename>/dev/<replaceable>da2</replaceable>.eli</filename>.</para>
+
+ <screen>&prompt.root; <userinput>ls /dev/da2*</userinput>
+/dev/da2 /dev/da2.eli</screen>
+ </step>
+
+ <step>
+ <title>Creating the new File System</title>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/random of=/dev/da2.eli bs=1m</userinput>
+&prompt.root; <userinput>newfs /dev/da2.eli</userinput>
+&prompt.root; <userinput>mount /dev/da2.eli /private</userinput></screen>
+
+ <para>The encrypted file system should be visible to &man.df.1;
+ and be available for use now.</para>
+
+ <screen>&prompt.root; <userinput>df -H</userinput>
+Filesystem Size Used Avail Capacity Mounted on
+/dev/ad0s1a 248M 89M 139M 38% /
+/devfs 1.0K 1.0K 0B 100% /dev
+/dev/ad0s1f 7.7G 2.3G 4.9G 32% /usr
+/dev/ad0s1d 989M 1.5M 909M 0% /tmp
+/dev/ad0s1e 3.9G 1.3G 2.3G 35% /var
+/dev/da2.eli 150G 4.1K 138G 0% /private</screen>
+
+ </step>
+
+ <step>
+ <title>Unmounting and Detaching the Provider</title>
+
+ <para>Once the work on the encrypted partition is done, and
+ the <filename role="directory">/private</filename> partition
+ is no longer needed, it is prudent to consider unmounting
+ and detaching the <command>geli</command> encrypted
+ partition from the kernel.</para>
+
+ <screen>&prompt.root; <userinput>umount /private</userinput>
+&prompt.root; <userinput>geli detach da2.eli</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>More information about the use of &man.geli.8; can be
+ found in the manual page.</para>
+
+ <sect3>
+ <title>Using the <filename>geli</filename> <filename>rc.d</filename> Script</title>
+
+ <para><command>geli</command> comes with a <filename>rc.d</filename> script which
+ can be used to simplify the usage of <command>geli</command>.
+ An example of configuring <command>geli</command> through
+ &man.rc.conf.5; follows:</para>
+
+ <screen>geli_devices="da2"
+geli_da2_flags="-p -k /root/da2.key"</screen>
+
+ <para>This will configure <filename>/dev/da2</filename> as a
+ <command>geli</command> provider of which the Master Key file
+ is located in <filename>/root/da2.key</filename>, and
+ <command>geli</command> will not use a passphrase when
+ attaching the provider (note that this can only be used if -P
+ was given during the <command>geli</command> init phase). The
+ system will detach the <command>geli</command> provider from
+ the kernel before the system shuts down.</para>
+
+ <para>More information about configuring <filename>rc.d</filename> is provided in the
+ <link linkend="configtuning-rcd">rc.d</link> section of the
+ Handbook.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+
+ <sect1 id="swap-encrypting">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Christian</firstname>
+ <surname>Br&uuml;ffer</surname>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Encrypting Swap Space</title>
+ <indexterm>
+ <primary>swap</primary>
+ <secondary>encrypting</secondary>
+ </indexterm>
+
+ <para>Swap encryption in &os; is easy to configure and has been
+ available since &os; 5.3-RELEASE. Depending on which version
+ of &os; is being used, different options are available
+ and configuration can vary slightly. From &os; 6.0-RELEASE onwards,
+ the &man.gbde.8; or &man.geli.8; encryption systems can be used
+ for swap encryption. With earlier versions, only &man.gbde.8; is
+ available. Both systems use the <filename>encswap</filename>
+ <link linkend="configtuning-rcd">rc.d</link> script.</para>
+
+ <para>The previous section, <link linkend="disks-encrypting">Encrypting
+ Disk Partitions</link>, includes a short discussion on the different
+ encryption systems.</para>
+
+ <sect2>
+ <title>Why should Swap be Encrypted?</title>
+
+ <para>Like the encryption of disk partitions, encryption of swap space
+ is done to protect sensitive information. Imagine an application
+ that e.g. deals with passwords. As long as these passwords stay in
+ physical memory, all is well. However, if the operating system starts
+ swapping out memory pages to free space for other applications, the
+ passwords may be written to the disk platters unencrypted and easy to
+ retrieve for an adversary. Encrypting swap space can be a solution for
+ this scenario.</para>
+ </sect2>
+
+ <sect2>
+ <title>Preparation</title>
+
+ <note>
+ <para>For the remainder of this section, <devicename>ad0s1b</devicename>
+ will be the swap partition.</para>
+ </note>
+
+ <para>Up to this point the swap has been unencrypted. It is possible that
+ there are already passwords or other sensitive data on the disk platters
+ in cleartext. To rectify this, the data on the swap partition should be
+ overwritten with random garbage:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/random of=/dev/ad0s1b bs=1m</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Swap Encryption with &man.gbde.8;</title>
+
+ <para>If &os; 6.0-RELEASE or newer is being used, the
+ <literal>.bde</literal> suffix should be added to the device in the
+ respective <filename>/etc/fstab</filename> swap line:</para>
+
+ <screen>
+# Device Mountpoint FStype Options Dump Pass#
+/dev/ad0s1b.bde none swap sw 0 0
+ </screen>
+
+ <para>For systems prior to &os; 6.0-RELEASE, the following line
+ in <filename>/etc/rc.conf</filename> is also needed:</para>
+
+ <programlisting>gbde_swap_enable="YES"</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Swap Encryption with &man.geli.8;</title>
+
+ <para>Alternatively, the procedure for using &man.geli.8; for swap
+ encryption is similar to that of using &man.gbde.8;. The
+ <literal>.eli</literal> suffix should be added to the device in the
+ respective <filename>/etc/fstab</filename> swap line:</para>
+
+ <screen>
+# Device Mountpoint FStype Options Dump Pass#
+/dev/ad0s1b.eli none swap sw 0 0
+ </screen>
+
+ <para>&man.geli.8; uses the <acronym>AES</acronym> algorithm with
+ a key length of 256 bit by default.</para>
+
+ <para>Optionally, these defaults can be altered using the
+ <literal>geli_swap_flags</literal> option in
+ <filename>/etc/rc.conf</filename>. The following line tells the
+ <filename>encswap</filename> rc.d script to create &man.geli.8; swap
+ partitions using the Blowfish algorithm with a key length of 128 bit,
+ a sectorsize of 4 kilobytes and the <quote>detach on last close</quote>
+ option set:</para>
+
+ <programlisting>geli_swap_flags="-a blowfish -l 128 -s 4096 -d"</programlisting>
+
+ <para>Please refer to the description of the <command>onetime</command> command
+ in the &man.geli.8; manual page for a list of possible options.</para>
+ </sect2>
+
+ <sect2>
+ <title>Verifying that it Works</title>
+
+ <para>Once the system has been rebooted, proper operation of the
+ encrypted swap can be verified using the
+ <command>swapinfo</command> command.</para>
+
+ <para>If &man.gbde.8; is being used:</para>
+
+ <screen>&prompt.user; <userinput>swapinfo</userinput>
+Device 1K-blocks Used Avail Capacity
+/dev/ad0s1b.bde 542720 0 542720 0%
+ </screen>
+
+ <para>If &man.geli.8; is being used:</para>
+
+ <screen>&prompt.user; <userinput>swapinfo</userinput>
+Device 1K-blocks Used Avail Capacity
+/dev/ad0s1b.eli 542720 0 542720 0%
+ </screen>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/dtrace/Makefile b/el_GR.ISO8859-7/books/handbook/dtrace/Makefile
new file mode 100644
index 0000000000..be94ef2c90
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/dtrace/Makefile
@@ -0,0 +1,18 @@
+#
+# Build the Handbook with just the content from this chapter.
+#
+# $FreeBSD$
+#
+# %SOURCE% en_US.ISO8859-1/books/handbook/dtrace/Makefile
+# %SRCID% 1.1
+#
+
+CHAPTERS= dtrace/chapter.sgml
+
+VPATH= ..
+
+MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
+
+DOC_PREFIX?= ${.CURDIR}/../../../..
+
+.include "../Makefile"
diff --git a/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml b/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml
new file mode 100644
index 0000000000..5d84cd7f48
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/dtrace/chapter.sgml
@@ -0,0 +1,418 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: DTrace
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/dtrace/chapter.sgml
+ %SRCID% 1.8
+
+-->
+
+<chapter id="dtrace">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>&dtrace;</title>
+
+ <sect1 id="dtrace-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>&dtrace;</primary></indexterm>
+ <indexterm>
+ <primary>&dtrace; support</primary>
+ <see>&dtrace;</see>
+ </indexterm>
+
+ <para>Το &dtrace;, γνωστό επίσης ως Dynamic Tracing, είναι ένα εργαλείο το
+ οποίο αναπτύχθηκε από την &sun; για τον εντοπισμό προβλημάτων απόδοσης
+ σε συστήματα που πρόκειται να χρησιμοποιηθούν ή χρησιμοποιούνται ήδη
+ στην παραγωγή. Δεν πρόκειται για εργαλείο αποσφαλμάτωσης, αλλά για
+ εργαλείο ανάλυσης πραγματικού χρόνου, με το οποίο μπορούν να
+ εντοπιστούν προβλήματα απόδοσης και άλλες καταστάσεις.</para>
+
+ <para>Το &dtrace; είναι ένα θαυμάσιο εργαλείο profiling και διαθέτει
+ εντυπωσιακό πλήθος χαρακτηριστικών για την διάγνωση προβλημάτων του
+ συστήματος. Μπορεί επίσης να χρησιμοποιηθεί για να εκτελέσει από πριν
+ έτοιμα scripts, με τα οποία μπορείτε να εκμεταλλευθείτε καλύτερα τις
+ δυνατότητες του. Οι χρήστες μπορούν ακόμα να γράψουν και τα δικά τους
+ βοηθητικά προγράμματα, χρησιμοποιώντας την Γλώσσα D που παρέχει το
+ &dtrace;, και να προσαρμόσουν με αυτό τον τρόπο το profiling στις δικές
+ τους ανάγκες.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα γνωρίζετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τι είναι το &dtrace; και τι δυνατότητες παρέχει.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τις διαφορές υλοποίησης μεταξύ του &dtrace; του &solaris; και
+ του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ενεργοποιήσετε και να χρησιμοποιήσετε το &dtrace;
+ στο &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε βασικές έννοιες του &unix; και του &os;
+ (<xref linkend="basics">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τις βασικές διαδικασίες ρύθμισης και
+ μεταγλώττισης προσαρμοσμένου πυρήνα
+ (<xref linkend="kernelconfig">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με την ασφάλεια και τον τρόπο που αυτή
+ σχετίζεται με το &os; (<xref linkend="security">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να κατανοείτε πως μπορείτε να ανακτήσετε τον πηγαίο κώδικα του
+ &os; και να τον χρησιμοποιήσετε ώστε να επαναμεταγλωττίσετε το
+ σύστημα σας (<xref linkend="updating-upgrading">).</para>
+ </listitem>
+ </itemizedlist>
+
+ <!--
+ Temporary warning to avoid listing experimental versions
+ and production versions of FreeBSD with this technology.
+ -->
+ <warning>
+ <para>Τη δεδομένη στιγμή, το &dtrace; θεωρείται ότι είναι σε πειραματικό
+ στάδιο. Ορισμένες επιλογές μπορεί να υπολείπονται σε λειτουργικότητα,
+ και κάποια τμήματα ίσως να μη λειτουργούν καθόλου. Με την πάροδο του
+ χρόνου, οι παραπάνω δυνατότητες θα θεωρηθούν έτοιμες για χρήση σε
+ μηχανήματα παραγωγής, και η παρούσα τεκμηρίωση θα ανανεωθεί ώστε να
+ αντιπροσωπεύει αυτή την κατάσταση.</para>
+ </warning>
+ </sect1>
+
+ <sect1 id="dtrace-implementation">
+ <title>Διαφορές στην Υλοποίηση</title>
+
+ <para>Αν και το &dtrace; στο &os; είναι αρκετά όμοιο με αυτό του &solaris;,
+ υπάρχουν κάποιες διαφορές που θα πρέπει να τις εξηγήσουμε πριν
+ συνεχίσουμε. Η μεγαλύτερη διαφορά που θα παρατηρήσουν οι χρήστες,
+ είναι ότι στο &os; το &dtrace; πρέπει να ενεργοποιηθεί χειροκίνητα.
+ Υπάρχουν διάφορες επιλογές και αρθρώματα για τον πυρήνα που πρέπει να
+ ενεργοποιηθούν ώστε το &dtrace; να λειτουργεί σωστά. Θα εξηγήσουμε
+ αργότερα αυτές τις ρυθμίσεις.</para>
+
+ <para>Η επιλογή <literal>DDB_CTF</literal> του πυρήνα χρησιμοποιείται για
+ να ενεργοποιήσει την υποστήριξη φορτώματος των δεδομένων
+ <acronym>CTF</acronym> από τον πυρήνα και τα αρθρώματα του. Το
+ <acronym>CTF</acronym> είναι το Compact C Type format του &solaris;,
+ το οποίο ενθυλακώνει μια ελαττωμένη μορφή πληροφοριών αποσφαλμάτωσης
+ (debugging), όμοια με το <acronym>DWARF</acronym> και τα
+ stabs. Αυτά τα δεδομένα <acronym>CTF</acronym> προστίθενται στα
+ εκτελέσιμα μέσω των εργαλείων <command>ctfconvert</command> και
+ <command>ctfmerge</command>. Το βοηθητικό πρόγραμμα
+ <command>ctfconvert</command> ερμηνεύει τα τμήματα των
+ <acronym>DWARF</acronym> <acronym>ELF</acronym> που περιέχουν
+ πληροφορίες debug (δημιουργούνται από το μεταγλωττιστή), και
+ το <command>ctfmerge</command> συγχωνεύει τα
+ τμήματα <acronym>CTF</acronym> και <acronym>ELF</acronym> από τα
+ αντικείμενα σε άλλα εκτελέσιμα ή κοινόχρηστες βιβλιοθήκες.
+ Περισσότερες πληροφορίες για την ενεργοποίηση των παραπάνω στη
+ μεταγλώττιση του πυρήνα και του συστήματος του &os;, θα δούμε
+ παρακάτω.</para>
+
+ <para>Στο &os; κάποιοι παροχείς είναι διαφορετικοί σε σχέση με το
+ &solaris;. Ο πιο αξιοσημείωτος είναι ο παροχέας
+ <literal>dtmalloc</literal> ο οποίος επιτρέπει το tracing του
+ <function>malloc()</function> ανάλογα με τον τύπο του, στον πυρήνα του
+ &os;.</para>
+
+ <para>Μόνο ο <username>root</username> μπορεί να χρησιμοποιήσει το
+ &dtrace; στο &os;. Αυτό σχετίζεται με διαφορές στην ασφάλεια, καθώς το
+ &solaris; διαθέτει κάποιους ελέγχους ασφάλειας χαμηλού επιπέδου, οι
+ οποίοι δεν υπάρχουν ακόμα στο &os;. Για το λόγο αυτό, η χρήση της
+ συσκευής <devicename>/dev/dtrace/dtrace</devicename> απαγορεύεται
+ αυστηρά για όλους τους χρήστες εκτός από τον
+ <username>root</username>.</para>
+
+ <para>Τέλος, το λογισμικό &dtrace; βρίσκεται υπό την άδεια
+ <acronym>CDDL</acronym> της &sun;. Μπορείτε να διαβάσετε το κείμενο
+ της άδειας <literal>Common Development and Distribution
+ License</literal> στο &os;, στο αρχείο
+ <filename>/usr/src/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE</filename>
+ ή να το διαβάσετε online στη διεύθυνση
+ <ulink url="http://www.opensolaris.org/os/licensing">http://www.opensolaris.org/os/licensing</ulink>.</para>
+
+ <para>Η άδεια ουσιαστικά σημαίνει ότι ένας πυρήνας &os; με τις επιλογές
+ του &dtrace;, εξακολουθεί να βρίσκεται υπό την άδεια
+ <acronym>BSD</acronym>. Ωστόσο το <acronym>CDDL</acronym> εμπλέκεται
+ τη στιγμή που γίνεται διανομή των αρθρωμάτων σε δυαδική μορφή, ή τη
+ στιγμή που φορτώνονται.</para>
+ </sect1>
+
+ <sect1 id="dtrace-enable">
+ <title>Ενεργοποίηση της Υποστήριξης &dtrace;</title>
+
+ <para>Για να ενεργοποιήσετε την υποστήριξη για το &dtrace;, προσθέστε τις
+ ακόλουθες γραμμές στο αρχείο ρυθμίσεων του πυρήνα:</para>
+
+ <programlisting>options KDTRACE_HOOKS
+options DDB_CTF</programlisting>
+
+ <note>
+ <para>Οι χρήστες της αρχιτεκτονικής AMD64 θα θέλουν να προσθέσουν την
+ ακόλουθη γραμμή στο αρχείο ρυθμίσεων του πυρήνα τους:</para>
+
+ <programlisting>options KDTRACE_FRAME</programlisting>
+
+ <para>Η επιλογή αυτή παρέχει υποστήριξη για τη λειτουργία
+ <acronym>FBT</acronym>. Το &dtrace; μπορεί να λειτουργήσει και χωρίς
+ αυτήν. Ωστόσο, θα παρέχει περιορισμένη υποστήριξη για
+ function boundary tracing.</para>
+ </note>
+
+ <para>Όλος ο πηγαίος κώδικας θα πρέπει να μεταγλωττιστεί ξανά με τις
+ επιλογές <acronym>CTF</acronym>. Για να γίνει αυτό, μεταγλωττίστε
+ ξανά το &os; χρησιμοποιώντας:</para>
+
+ <!-- XXXTR: WITH_CTF has been reported to leave a user with a
+ broken system when used with buildworld. Until this is
+ fixed, comment out those parts. When uncommenting, kill
+ the extra screen.
+ -->
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput>
+<!-- &prompt.root; <userinput>make WITH_CTF=1 buildworld</userinput>-->
+&prompt.root; <userinput>make WITH_CTF=1 kernel</userinput></screen>
+<!-- &prompt.root; <userinput>make WITH_CTF=1 installworld</userinput>
+&prompt.root; <userinput>mergemaster -Ui</userinput></screen> -->
+
+ <para>Θα χρειαστεί να επανεκκινήσετε το σύστημα.</para>
+
+ <para>Μετά την επανεκκίνηση, και με τον νέο πυρήνα φορτωμένο πλέον στη
+ μνήμη, θα πρέπει να προσθέσετε υποστήριξη για το κέλυφος Korn. Αυτό
+ απαιτείται, καθώς τα εργαλεία &dtrace; περιλαμβάνουν διάφορα βοηθητικά
+ προγράμματα τα οποία είναι γραμμένα σε
+ <command>ksh</command>. Εγκαταστήστε το port
+ <filename role="package">shells/ksh93</filename>. Μπορείτε επίσης να
+ εκτελέσετε αυτά τα εργαλεία και μέσω του
+ <filename role="package">shells/pdksh</filename> ή του
+ <filename role="package">shells/mksh</filename>.</para>
+
+ <para>Τέλος, ανακτήστε την τρέχουσα σειρά εργαλείων &dtrace;. Η τελευταία
+ έκδοση διατίθεται στην τοποθεσία
+ <ulink url="http://www.opensolaris.org/os/community/dtrace/dtracetoolkit/"></ulink>.
+ Διατίθεται και πρόγραμμα εγκατάστασης, το οποίο δεν είναι ωστόσο
+ απαραίτητο να εκτελέσετε προκειμένου να χρησιμοποιήσετε τα
+ εργαλεία.</para>
+ </sect1>
+
+ <sect1 id="dtrace-using">
+ <title>Χρησιμοποιώντας το &dtrace;</title>
+
+ <para>Πριν χρησιμοποιήσετε τις λειτουργίες του &dtrace;, θα πρέπει να
+ υπάρχει η αντίστοιχη συσκευή. Για να φορτώσετε τη συσκευή, θα πρέπει
+ να δώσετε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>kldload dtraceall</userinput></screen>
+
+ <para>Θα πρέπει να έχετε πλέον υποστήριξη &dtrace;. Για να δείτε όλα τα
+ probes, θα πρέπει να εκτελέσετε ως διαχειριστής την παρακάτω
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>dtrace -l | more</userinput></screen>
+
+ <para>Όλη η έξοδος περνάει μέσω του βοηθητικού προγράμματος
+ <command>more</command>, διαφορετικά γρήγορα θα υπερχείλιζε την
+ προσωρινή μνήμη της οθόνης. Στο σημείο αυτό, θα πρέπει να θεωρηθεί ότι
+ το &dtrace; λειτουργεί. Είναι πλέον ώρα να εξετάσουμε αυτή τη σειρά
+ εργαλείων.</para>
+
+ <para>Η σειρά των εργαλείων είναι μια συλλογή από έτοιμα scripts που
+ εκτελούνται με το &dtrace; ώστε να συλλέξουν πληροφορίες σχετικά με το
+ σύστημα. Υπάρχουν scripts που ελέγχουν για ανοικτά αρχεία, τη μνήμη,
+ τη χρήση της <acronym>CPU</acronym> και πολλά ακόμα. Κάντε εξαγωγή των
+ scripts με την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>gunzip -c DTraceToolkit* | tar xvf -</userinput></screen>
+
+ <para>Μετακινηθείτε στον κατάλογο που τα αποσυμπιέσατε με την εντολή
+ <command>cd</command> και αλλάξτε τα δικαιώματα εκτέλεσης σε όλα τα
+ αρχεία, όπως στα αρχεία με τα μικρά γράμματα, σε
+ <literal>755</literal>.</para>
+
+ <para>Θα χρειαστεί να γίνουν αλλαγές στο περιεχόμενο σε όλα τα scripts.
+ Όσα περιέχουν το
+ <filename>/usr/bin/ksh</filename> θα πρέπει να αλλαχθούν σε
+ <filename>/usr/local/bin/ksh</filename>, τα άλλα που περιέχουν το
+ <filename>/usr/bin/sh</filename> θα πρέπει να αλλαχθούν σε
+ <filename>/bin/sh</filename>, και τέλος αυτά που περιέχουν το
+ <filename>/usr/bin/perl</filename> θα πρέπει να αλλαχθούν σε
+ <filename>/usr/local/bin/perl</filename>.</para>
+
+ <important>
+ <para>Στο σημείο αυτό είναι σημαντικό να υπενθυμίσουμε στον αναγνώστη
+ ότι η υποστήριξη &dtrace; στο &os; είναι <emphasis>ατελής</emphasis>
+ και πειραματική. Πολλά από αυτά τα scripts δεν θα λειτουργήσουν,
+ καθώς είναι είτε πολύ προσανατολισμένα στο &solaris;, ή χρησιμοποιούν
+ probes τα οποία δεν υποστηρίζονται τη δεδομένη στιγμή.</para>
+ </important>
+
+ <para>Τη στιγμή που γράφονται αυτές οι γραμμές, μόνο δύο scripts από τη
+ σειρά εργαλείων του &dtrace; υποστηρίζονται πλήρως στο &os;: το
+ <filename>hotkernel</filename> και το <filename>procsystime</filename>.
+ Αυτά τα δύο θα εξερευνήσουμε στα επόμενα τμήματα αυτής της
+ ενότητας.</para>
+
+ <para>Το <filename>hotkernel</filename> έχει σχεδιαστεί να αναγνωρίζει
+ ποια συνάρτηση καταναλώνει το μεγαλύτερο χρόνο στον πυρήνα. Εκτελώντας
+ το υπό κανονικές συνθήκες, θα δείτε έξοδο παρόμοια με την
+ παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>./hotkernel</userinput>
+Sampling... Hit Ctrl-C to end.</screen>
+
+ <para>Ο διαχειριστής του συστήματος θα πρέπει να χρησιμοποιήσει το
+ συνδυασμό πλήκτρων <keycombo
+ action="simul"><keycap>Ctrl</keycap><keycap>C</keycap></keycombo> για
+ να σταματήσει τη διεργασία. Με τον τερματισμό του, το script θα
+ απεικονίσει μια σειρά από συναρτήσεις του πυρήνα και πληροφορίες σχετικά
+ με το χρόνο τους, ταξινομώντας τις σε αύξουσα σειρά ανάλογα με το
+ χρόνο:</para>
+
+ <screen>kernel`_thread_lock_flags 2 0.0%
+0xc1097063 2 0.0%
+kernel`sched_userret 2 0.0%
+kernel`kern_select 2 0.0%
+kernel`generic_copyin 3 0.0%
+kernel`_mtx_assert 3 0.0%
+kernel`vm_fault 3 0.0%
+kernel`sopoll_generic 3 0.0%
+kernel`fixup_filename 4 0.0%
+kernel`_isitmyx 4 0.0%
+kernel`find_instance 4 0.0%
+kernel`_mtx_unlock_flags 5 0.0%
+kernel`syscall 5 0.0%
+kernel`DELAY 5 0.0%
+0xc108a253 6 0.0%
+kernel`witness_lock 7 0.0%
+kernel`read_aux_data_no_wait 7 0.0%
+kernel`Xint0x80_syscall 7 0.0%
+kernel`witness_checkorder 7 0.0%
+kernel`sse2_pagezero 8 0.0%
+kernel`strncmp 9 0.0%
+kernel`spinlock_exit 10 0.0%
+kernel`_mtx_lock_flags 11 0.0%
+kernel`witness_unlock 15 0.0%
+kernel`sched_idletd 137 0.3%
+0xc10981a5 42139 99.3%</screen>
+
+ <!-- XXXTR: I attempted to use objdump and nm on /boot/kernel/kernel
+ to find 0xc10981a5, but to no avail. It would be nice to know
+ how we should look that up. -->
+
+ <para>Το script αυτό λειτουργεί επίσης με αρθρώματα του πυρήνα. Για να
+ χρησιμοποιήσετε αυτό το χαρακτηριστικό, εκτελέστε το με την επιλογή
+ <option>-m</option>:</para>
+
+ <screen>&prompt.root; <userinput>./hotkernel -m</userinput>
+Sampling... Hit Ctrl-C to end.
+^C
+MODULE COUNT PCNT
+0xc107882e 1 0.0%
+0xc10e6aa4 1 0.0%
+0xc1076983 1 0.0%
+0xc109708a 1 0.0%
+0xc1075a5d 1 0.0%
+0xc1077325 1 0.0%
+0xc108a245 1 0.0%
+0xc107730d 1 0.0%
+0xc1097063 2 0.0%
+0xc108a253 73 0.0%
+kernel 874 0.4%
+0xc10981a5 213781 99.6%</screen>
+
+ <!-- XXXTR: I was unable to match these up with output from
+ kldstat and kldstat -v and grep. Maybe I'm missing something
+ seriously obvious. It is 5AM btw. -->
+
+ <para>Το <filename>procsystime</filename> script συλλαμβάνει και τυπώνει
+ τον χρόνο των κλήσεων συστήματος για μια συγκεκριμένη διεργασία μέσω
+ του <acronym>PID</acronym> ή του ονόματος της. Στο παρακάτω παράδειγμα
+ έχουμε ξεκινήσει μια νέα διεργασία του <filename>/bin/csh</filename>.
+ Εκτελέσαμε το <filename>procsystime</filename> και το αφήσαμε στην
+ αναμονή καθώς γράφαμε μερικές εντολές στο <command>csh</command> που
+ είχαμε ανοίξει. Αυτά είναι τα αποτελέσματα της δοκιμής μας:</para>
+
+ <screen>&prompt.root; <userinput>./procsystime -n csh</userinput>
+Tracing... Hit Ctrl-C to end...
+^C
+
+Elapsed Times for processes csh,
+
+ SYSCALL TIME (ns)
+ getpid 6131
+ sigreturn 8121
+ close 19127
+ fcntl 19959
+ dup 26955
+ setpgid 28070
+ stat 31899
+ setitimer 40938
+ wait4 62717
+ sigaction 67372
+ sigprocmask 119091
+ gettimeofday 183710
+ write 263242
+ execve 492547
+ ioctl 770073
+ vfork 3258923
+ sigsuspend 6985124
+ read 3988049784</screen>
+
+ <para>Όπως φαίνεται, η κλήση του συστήματος για ανάγνωση
+ (<function>read()</function>) είναι αυτή που καταναλώνει τον
+ περισσότερο χρόνο σε νανοδευτερόλεπτα, ενώ το λιγότερο τον καταναλώνει
+ η κλήση συστήματος <function>getpid()</function>.</para>
+ </sect1>
+
+ <sect1 id="dtrace-language">
+ <title>Η Γλώσσα D</title>
+
+ <para>Η σειρά εργαλείων &dtrace;, περιλαμβάνει αρκετά scripts γραμμένα στην
+ ειδική γλώσσα του &dtrace;. Η γλώσσα αυτή ονομάζεται
+ <quote>η γλώσσα D</quote> στην τεκμηρίωση της &sun;, και είναι αρκετά
+ όμοια με τη C++. Αναλυτική περιγραφή αυτής της γλώσσας είναι πέρα από
+ τους σκοπούς αυτού του κειμένου. Υπάρχει ενεργή συζήτηση σχετικά με
+ αυτή, στη διεύθυνση <ulink
+ url="http://wikis.sun.com/display/DTrace/Documentation"></ulink>.</para>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml b/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml
new file mode 100644
index 0000000000..4088efcfff
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/eresources/chapter.sgml
@@ -0,0 +1,2254 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Πηγές Πληροφόρησης στο Διαδίκτυο
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/eresources/chapter.sgml
+ %SRCID% 1.216
+
+-->
+
+<appendix id="eresources">
+ <title>Πηγές Πληροφόρησης στο Διαδίκτυο</title>
+
+ <para>Η ραγδαία εξέλιξη του &os; καθιστά τα έντυπα μέσα ανίκανα να
+ ακολουθήσουν τις τελευταίες εξελίξεις. Οι ηλεκτρονικές πηγές είναι ο
+ καλύτερος (αν όχι ο μόνος) τρόπος για να παραμείνετε ενήμερος για τις
+ τελευταίες εξελίξεις. Καθώς το &os; είναι μια εθελοντική προσπάθεια, η
+ κοινότητα των χρηστών λειτουργεί και ως
+ <quote>τμήμα τεχνικής υποστήριξης</quote>, με το ηλεκτρονικό ταχυδρομείο,
+ τα web forums, και τα USENET news να είναι οι πλέον αποτελεσματικοί
+ τρόποι για να έλθετε σε επαφή με αυτή την κοινότητα.</para>
+
+ <para>Στις παρακάτω ενότητες, θα βρείτε τα σημαντικότερα σημεία
+ επικοινωνίας με την κοινότητα χρηστών του &os;. Αν γνωρίζετε και άλλες
+ πηγές, οι οποίες δεν αναφέρονται εδώ, παρακαλούμε να τις στείλετε στην
+ &a.doc; ώστε να ενταχθούν και αυτές.</para>
+
+ <sect1 id="eresources-mail">
+ <title>Λίστες Ηλεκτρονικού Ταχυδρομείου</title>
+
+ <para>Οι λίστες ηλεκτρονικού ταχυδρομείου είναι ο πιο άμεσος τρόπος για
+ να απευθύνετε τις ερωτήσεις σας ή να ανοίξετε μια τεχνική συζήτηση που
+ να απευθύνεται σε κοινό ειδικευμένο στο &os;. Υπάρχει μεγάλη ποικιλία
+ από λίστες, οι οποίες καλύπτουν ευρύ φάσμα θεμάτων του &os;.
+ Κατευθύνοντας τις ερωτήσεις σας στη σωστή λίστα, θα εξασφαλίσετε
+ ταχύτερη και ακριβέστερη απόκριση.</para>
+
+ <para>Στο τέλος αυτού του κειμένου θα βρείτε ένα πίνακα με τη θεματολογία
+ της κάθε λίστας. <emphasis>Παρακαλούμε να τον διαβάσετε πριν αρχίσετε
+ να συμμετέχετε ή να στέλνετε μηνύματα σε οποιαδήποτε λίστα</emphasis>.
+ Οι περισσότεροι από τους συνδρομητές μας δέχονται καθημερινά
+ εκατοντάδες μηνύματα σχετικά με το &os;. Οι κανόνες που έχουμε
+ καθιερώσει, βοηθάνε να γίνεται σωστή χρήση και να διατηρείται σε υψηλό
+ επίπεδο η αναλογία σήματος προς θόρυβο της κάθε λίστας. Εάν ήμασταν
+ πιο χαλαροί, οι λίστες μας θα έχαναν την αποτελεσματικότητα τους ως
+ μέσο επικοινωνίας για το Project.</para>
+
+ <note>
+ <para><emphasis>Αν θέλετε να δοκιμάσετε την ικανότητα σας να στέλνετε
+ μηνύματα στις λίστες του &os;, στείλτε ένα δοκιμαστικό μήνυμα στην
+ λίστα &a.test.name;.</emphasis> Παρακαλούμε μη στέλνετε δοκιμαστικά
+ μηνύματα σε οποιαδήποτε άλλη λίστα.</para>
+ </note>
+
+ <para>Αν βρίσκεστε σε δίλημμα σχετικά με το ποια λίστα να στείλετε μια
+ ερώτηση, δείτε το <ulink url="&url.articles.freebsd-questions;">Πως να
+ χρησιμοποιείτε με επιτυχία την λίστα ηλεκτρονικού ταχυδρομείου
+ &os;-questions</ulink>.</para>
+
+ <para>Πριν στείλετε κάτι σε οποιαδήποτε λίστα, μάθετε πως να
+ χρησιμοποιείτε καλύτερα τις λίστες ηλεκτρονικού ταχυδρομείου. Για
+ παράδειγμα, δείτε πως μπορείτε να βοηθήσετε ώστε να αποφεύγονται συχνά
+ επαναλαμβανόμενες συζητήσεις, διαβάζοντας το κείμενο <ulink
+ url="&url.articles.mailing-list-faq;"> Συχνές Ερωτήσεις Σχετικά με
+ τις Λίστες Ταχυδρομείου</ulink> (FAQ).</para>
+
+ <para>Για όλες τις λίστες ηλεκτρονικού ταχυδρομείου διατηρείται αρχείο με
+ τις παλιές δημοσιεύσεις, στο οποίο μπορεί να γίνει αναζήτηση
+ χρησιμοποιώντας την <ulink url="&url.base;/search/index.html">Δικτυακή
+ Τοποθεσία του &os;</ulink>. Είναι δυνατή η αναζήτηση στο αρχείο μέσω
+ λέξεων-κλειδιών, το οποίο αποτελεί ένα άριστο τρόπο για να βρείτε
+ απαντήσεις σε συχνές ερωτήσεις. Πριν στείλετε μια ερώτηση, καλό θα
+ είναι να πραγματοποιήσετε μια τέτοια αναζήτηση. Σημειώστε επίσης ότι
+ τα μηνύματα που στέλνονται σε αυτές τις λίστες αποθηκεύονται για πάντα.
+ Αν σας προβληματίζει η προστασία των προσωπικών σας δεδομένων, σας
+ συνιστούμε να χρησιμοποιήσετε μια δευτερεύουσα διεύθυνση email, και να
+ μην γράφετε ποτέ προσωπικές σας πληροφορίες.</para>
+
+ <sect2 id="eresources-summary">
+ <title>Σύνοψη Λιστών</title>
+
+ <para><emphasis>Γενικές λίστες:</emphasis> Οι ακόλουθες είναι γενικές
+ λίστες όπου ο καθένας είναι ελεύθερος (και ενθαρρύνεται) να
+ συμμετέχει:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Λίστα</entry>
+ <entry>Σκοπός</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>&a.advocacy.name;</entry>
+ <entry>Διαφήμιση και προώθηση του &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.announce.name;</entry>
+ <entry>Σημαντικά γεγονότα και ανακοινώσεις</entry>
+ </row>
+
+ <row>
+ <entry>&a.arch.name;</entry>
+ <entry>Συζητήσεις αρχιτεκτονικής και σχεδιασμού</entry>
+ </row>
+
+ <row>
+ <entry>&a.bugbusters.name;</entry>
+ <entry>Συζητήσεις που αναφέρονται στην συντήρηση της
+ βάσης δεδομένων αναφοράς προβλημάτων του &os;, και των
+ σχετικών εργαλείων της</entry>
+ </row>
+
+ <row>
+ <entry>&a.bugs.name;</entry>
+ <entry>Αναφορές σφαλμάτων</entry>
+ </row>
+
+ <row>
+ <entry>&a.chat.name;</entry>
+ <entry>Μη-τεχνικά θέματα που σχετίζονται με την κοινότητα του
+ &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.chromium.name;</entry>
+ <entry>Θέματα σχετικά με το Chromium στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.current.name;</entry>
+ <entry>Συζητήσεις που σχετίζονται με τη χρήση
+ &os.current;</entry>
+ </row>
+
+ <row>
+ <entry>&a.isp.name;</entry>
+ <entry>Θέματα για Παροχείς Υπηρεσιών Διαδικτύου που
+ χρησιμοποιούν το &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.jobs.name;</entry>
+ <entry>Συμβουλευτικές υπηρεσίες και θέσεις εργασίας σχετικές
+ με &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.policy.name;</entry>
+ <entry>Κατευθυντήριες αποφάσεις (policy) της ομάδας &os; Core.
+ Λίστα με μικρή κίνηση, και μόνο για ανάγνωση</entry>
+ </row>
+
+ <row>
+ <entry>&a.questions.name;</entry>
+ <entry>Απορίες χρηστών και τεχνική υποστήριξη</entry>
+ </row>
+
+ <row>
+ <entry>&a.security-notifications.name;</entry>
+ <entry>Ειδοποιήσεις ασφαλείας</entry>
+ </row>
+
+ <row>
+ <entry>&a.stable.name;</entry>
+ <entry>Συζητήσεις που σχετίζονται με την χρήση του
+ &os.stable;</entry>
+ </row>
+
+ <row>
+ <entry>&a.test.name;</entry>
+ <entry>Στείλτε εδώ τα δοκιμαστικά σας μηνύματα αντί για μια
+ από τις πραγματικές λίστες</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para><emphasis>Τεχνικές λίστες:</emphasis> Οι ακόλουθες λίστες είναι
+ για τεχνικές συζητήσεις. Πριν αρχίσετε να συμμετέχετε και να
+ στέλνετε μηνύματα σε αυτές, θα πρέπει να διαβάσετε προσεκτικά την
+ περιγραφή τους. Υπάρχουν αυστηρές οδηγίες για τη χρήση και το
+ περιεχόμενο τους.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Λίστα</entry>
+ <entry>Σκοπός</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>&a.acpi.name;</entry>
+ <entry>Ανάπτυξη της διαχείρισης ενέργειας και του ACPI</entry>
+ </row>
+
+ <row>
+ <entry>&a.afs.name;</entry>
+ <entry>Μεταφορά του AFS στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.aic7xxx.name;</entry>
+ <entry>Ανάπτυξη οδηγών για κάρτες &adaptec; AIC 7xxx</entry>
+ </row>
+
+ <row>
+ <entry>&a.amd64.name;</entry>
+ <entry>Μεταφορά του &os; σε συστήματα AMD64</entry>
+ </row>
+
+ <row>
+ <entry>&a.apache.name;</entry>
+ <entry>Συζήτηση για ports σχετικά με τον
+ <application>Apache</application></entry>
+ </row>
+
+ <row>
+ <entry>&a.arm.name;</entry>
+ <entry>Μεταφορά του &os; σε επεξεργαστές &arm;</entry>
+ </row>
+
+ <row>
+ <entry>&a.atm.name;</entry>
+ <entry>Χρήση δικτύωσης ATM στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.audit.name;</entry>
+ <entry>Project ελέγχου πηγαίου κώδικα</entry>
+ </row>
+
+ <row>
+ <entry>&a.binup.name;</entry>
+ <entry>Σχεδίαση και ανάπτυξη του συστήματος έτοιμων ενημερώσεων
+ (binary updates)</entry>
+ </row>
+
+ <row>
+ <entry>&a.bluetooth.name;</entry>
+ <entry>Χρήση της τεχνολογίας &bluetooth; στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.cluster.name;</entry>
+ <entry>Χρήση του &os; σε παράλληλα συστήματα</entry>
+ </row>
+
+ <row>
+ <entry>&a.cvsweb.name;</entry>
+ <entry>Συντήρηση του CVSweb</entry>
+ </row>
+
+ <row>
+ <entry>&a.database.name;</entry>
+ <entry>Συζήτηση για την χρήση και ανάπτυξη βάσεων δεδομένων στο
+ &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.doc.name;</entry>
+ <entry>Δημιουργία τεκμηρίωσης για το &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.desktop.name;</entry>
+ <entry>Χρήση και βελτίωση του &os; ως desktop</entry>
+ </row>
+
+ <row>
+ <entry>&a.drivers.name;</entry>
+ <entry>Δημιουργία οδηγών συσκευών για το &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.eclipse.name;</entry>
+ <entry>Συζήτηση για τη χρήση του Eclipse IDE, των εργαλείων
+ του, καθώς και rich client εφαρμογών και ports
+ στο &os;.</entry>
+ </row>
+
+ <row>
+ <entry>&a.embedded.name;</entry>
+ <entry>Χρήση του &os; σε embedded εφαρμογές</entry>
+ </row>
+
+ <row>
+ <entry>&a.eol.name;</entry>
+ <entry>Ομότιμη υποστήριξη για λογισμικό σχετικό με &os;, που
+ δεν υποστηρίζεται πλέον από το &os;&nbsp;Project.</entry>
+ </row>
+
+ <row>
+ <entry>&a.emulation.name;</entry>
+ <entry>Εξομοίωση άλλων συστημάτων, όπως είναι τα
+ Linux/&ms-dos;/&windows;</entry>
+ </row>
+
+ <row>
+ <entry>&a.firewire.name;</entry>
+ <entry>Τεχνική συζήτηση για &os; &firewire;
+ (iLink, IEEE 1394)</entry>
+ </row>
+
+ <row>
+ <entry>&a.fs.name;</entry>
+ <entry>Συστήματα αρχείων</entry>
+ </row>
+
+ <row>
+ <entry>&a.gecko.name;</entry>
+ <entry>Συζήτηση σχετικά με το
+ <application>Gecko Rendering Engine</application></entry>
+ </row>
+
+ <row>
+ <entry>&a.geom.name;</entry>
+ <entry>Συζητήσεις σχετικές με το GEOM και τις υλοποιήσεις
+ του</entry>
+ </row>
+
+ <row>
+ <entry>&a.gnome.name;</entry>
+ <entry>Μεταφορά του <application>GNOME</application> και των
+ εφαρμογών του</entry>
+ </row>
+
+ <row>
+ <entry>&a.hackers.name;</entry>
+ <entry>Γενικές τεχνικές συζητήσεις</entry>
+ </row>
+
+ <row>
+ <entry>&a.hardware.name;</entry>
+ <entry>Γενική συζήτηση για συμβατότητα υλικού με το
+ &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.i18n.name;</entry>
+ <entry>Διεθνοποίηση του &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.ia32.name;</entry>
+ <entry>Το &os; στην αρχιτεκτονική IA-32 (&intel; x86)</entry>
+ </row>
+
+ <row>
+ <entry>&a.ia64.name;</entry>
+ <entry>Μεταφορά του &os; στα νέα συστήματα IA64 της
+ &intel;</entry>
+ </row>
+
+ <row>
+ <entry>&a.ipfw.name;</entry>
+ <entry>Τεχνική συζήτηση που επικεντρώνεται στον επανασχεδιασμό
+ του κώδικα IP του firewall</entry>
+ </row>
+
+ <row>
+ <entry>&a.isdn.name;</entry>
+ <entry>Ομάδα ανάπτυξης του ISDN</entry>
+ </row>
+
+ <row>
+ <entry>&a.jail.name;</entry>
+ <entry>Συζήτηση σχετικά με τις δυνατότητες του
+ &man.jail.8;</entry>
+ </row>
+
+ <row>
+ <entry>&a.java.name;</entry>
+ <entry>Ομάδα ανάπτυξης &java; και άτομα που μεταφέρουν τα
+ &jdk;s στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.kde.name;</entry>
+ <entry>Μεταφορά του <application>KDE</application> και των
+ εφαρμογών του</entry>
+ </row>
+
+ <row>
+ <entry>&a.lfs.name;</entry>
+ <entry>Μεταφορά του LFS στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.mips.name;</entry>
+ <entry>Μεταφορά του &os; σε επεξεργαστές &mips;</entry>
+ </row>
+
+ <row>
+ <entry>&a.mobile.name;</entry>
+ <entry>Συζητήσεις σχετικές με φορητά υπολογιστικά
+ συστήματα</entry>
+ </row>
+
+ <row>
+ <entry>&a.mono.name;</entry>
+ <entry>Εφαρμογές Mono και C# στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.mozilla.name;</entry>
+ <entry>Μεταφορά του <application>Mozilla</application>
+ στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.multimedia.name;</entry>
+ <entry>Εφαρμογές πολυμέσων</entry>
+ </row>
+
+ <row>
+ <entry>&a.newbus.name;</entry>
+ <entry>Τεχνικές συζητήσεις σχετικές με την αρχιτεκτονική
+ διαύλων</entry>
+ </row>
+
+ <row>
+ <entry>&a.net.name;</entry>
+ <entry>Συζητήσεις δικτύωσης και πηγαίος κώδικας TCP/IP</entry>
+ </row>
+
+ <row>
+ <entry>&a.office.name;</entry>
+ <entry>Εφαρμογές γραφείου στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.performance.name;</entry>
+ <entry>Ερωτήσεις σχετικές με βελτιστοποίηση απόδοσης για
+ εγκαταστάσεις υψηλής απόδοσης και μεγάλου φορτίου</entry>
+ </row>
+
+ <row>
+ <entry>&a.perl.name;</entry>
+ <entry>Υποστήριξη ενός αριθμού από ports σχετικά με Perl</entry>
+ </row>
+
+ <row>
+ <entry>&a.pf.name;</entry>
+ <entry>Συζήτηση και ερωτήσεις σχετικές με το σύστημα packet
+ filter firewall</entry>
+ </row>
+
+ <row>
+ <entry>&a.platforms.name;</entry>
+ <entry>Συζήτηση για μεταφορά σε μη-&intel;
+ αρχιτεκτονικές</entry>
+ </row>
+
+ <row>
+ <entry>&a.ports.name;</entry>
+ <entry>Συζήτηση για την Συλλογή των Ports</entry>
+ </row>
+
+ <row>
+ <entry>&a.ports-announce.name;</entry>
+ <entry>Σημαντικές ειδήσεις και οδηγίες σχετικές με την
+ Συλλογή των Ports</entry>
+ </row>
+
+ <row>
+ <entry>&a.ports-bugs.name;</entry>
+ <entry>Συζήτηση για σφάλματα και αναφορές σφαλμάτων (PRs) που
+ αφορούν ports</entry>
+ </row>
+
+ <row>
+ <entry>&a.ppc.name;</entry>
+ <entry>Μεταφορά του &os; στο &powerpc;</entry>
+ </row>
+
+ <row>
+ <entry>&a.proliant.name;</entry>
+ <entry>Τεχνική συζήτηση για χρήση του &os; σε διακομιστές HP
+ ProLiant</entry>
+ </row>
+
+ <row>
+ <entry>&a.python.name;</entry>
+ <entry>Θέματα σχετικά με Python στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.rc.name;</entry>
+ <entry>Συζήτηση σχετικά με το σύστημα <filename>rc.d</filename>
+ και την ανάπτυξή του</entry>
+ </row>
+
+ <row>
+ <entry>&a.realtime.name;</entry>
+ <entry>Ανάπτυξη επεκτάσεων πραγματικού χρόνου του &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.ruby.name;</entry>
+ <entry>Συζήτηση σχετικά με τη Ruby στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.scsi.name;</entry>
+ <entry>Το υποσύστημα SCSI</entry>
+ </row>
+
+ <row>
+ <entry>&a.security.name;</entry>
+ <entry>Θέματα ασφαλείας που επηρεάζουν το &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.small.name;</entry>
+ <entry>Χρήση του &os; σε embedded συστήματα
+ (Δεν χρησιμοποιείται πλέον: αντί για αυτή τη λίστα,
+ χρησιμοποιήστε την &a.embedded.name;)</entry>
+ </row>
+
+ <row>
+ <entry>&a.sparc.name;</entry>
+ <entry>Μεταφορά του &os; σε &sparc; συστήματα</entry>
+ </row>
+
+ <row>
+ <entry>&a.standards.name;</entry>
+ <entry>Συμμόρφωση του &os; με τα πρότυπα C99
+ και &posix;</entry>
+ </row>
+
+ <row>
+ <entry>&a.sysinstall.name;</entry>
+ <entry>Συζήτηση για την ανάπτυξη του &man.sysinstall.8;</entry>
+ </row>
+
+ <row>
+ <entry>&a.threads.name;</entry>
+ <entry>Πολυνηματική επεξεργασία στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.testing.name;</entry>
+ <entry>Δοκιμές απόδοσης και σταθερότητας του &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.tilera.name;</entry>
+ <entry>Μεταφορά του &os; στην οικογένεια CPU Tilera</entry>
+ </row>
+
+ <row>
+ <entry>&a.tokenring.name;</entry>
+ <entry>Υποστήριξη του Token Ring στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.toolchain.name;</entry>
+ <entry>Συντήρηση των εργαλείων του &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.usb.name;</entry>
+ <entry>Συζήτηση υποστήριξης του USB στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.virtualization.name;</entry>
+ <entry>Συζήτηση σχετικά με διάφορες τεχνικές εικονικοποίησης
+ που υποστηρίζονται από το &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.vuxml.name;</entry>
+ <entry>Συζήτηση για την υποδομή VuXML</entry>
+ </row>
+
+ <row>
+ <entry>&a.x11.name;</entry>
+ <entry>Συντήρηση και υποστήριξη του X11 στο &os;</entry>
+ </row>
+
+ <row>
+ <entry>&a.xen.name;</entry>
+ <entry>Συζήτηση για τη μεταφορά του &os; στο &xen; &mdash;
+ υλοποίηση και χρήση</entry>
+ </row>
+
+ <row>
+ <entry>&a.xfce.name;</entry>
+ <entry><application>XFCE</application> στο &os; &mdash;
+ Μεταφορά και συντήρηση</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para><emphasis>Περιορισμένες λίστες:</emphasis> Οι ακόλουθες λίστες
+ είναι για πιο ειδικό (και απαιτητικό) κοινό και πιθανώς δεν
+ ενδιαφέρουν το γενικό κοινό. Πριν αρχίσετε να συμμετέχετε σε κάποια
+ από αυτές, καλό θα είναι να έχετε παρακολουθήσει τις τεχνικές λίστες,
+ ώστε να αντιλαμβάνεστε τον κώδικα επικοινωνίας και συμπεριφοράς που
+ ισχύει σε αυτές.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Λίστα</entry>
+ <entry>Σκοπός</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>&a.hubs.name;</entry>
+ <entry>Άτομα που διατηρούν mirror sites (υποστήριξη
+ υποδομών)</entry>
+ </row>
+
+ <row>
+ <entry>&a.usergroups.name;</entry>
+ <entry>Οργάνωση των συλλόγων χρηστών</entry>
+ </row>
+
+ <row>
+ <entry>&a.vendors.name;</entry>
+ <entry>Οργάνωση μεταπωλητών πριν από επίσημες εκδόσεις</entry>
+ </row>
+
+ <row>
+ <entry>&a.wip-status.name;</entry>
+ <entry>Κατάσταση εργασιών του &os; που βρίσκονται σε εξέλιξη
+ (Work-in-Progress).</entry>
+ </row>
+
+ <row>
+ <entry>&a.wireless.name;</entry>
+ <entry>Συζήτηση σχετικά με τη στοίβα 802.11, τα εργαλεία
+ ασύρματου δικτύου και την ανάπτυξη προγραμμάτων
+ οδήγησης.</entry>
+ </row>
+
+ <row>
+ <entry>&a.www.name;</entry>
+ <entry>Συντηρητές του <ulink
+ url="&url.base;/index.html">www.FreeBSD.org</ulink></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para><emphasis>Λίστες digest:</emphasis> Όλες οι παραπάνω λίστες
+ διατίθενται και σε μορφή digest (περίληψης). Μόλις εγγραφείτε σε μία
+ λίστα, μπορείτε να αλλάξετε τις επιλογές digest στο τμήμα ρυθμίσεων
+ του λογαριασμού σας.</para>
+
+ <para><emphasis>Λίστες CVS &amp; SVN:</emphasis> Οι ακόλουθες λίστες
+ είναι για όσους ενδιαφέρονται να βλέπουν τα μηνύματα (log) που
+ δείχνουν τις αλλαγές σε διάφορες περιοχές του πηγαίου κώδικα. Είναι
+ λίστες <emphasis>μόνο για ανάγνωση</emphasis> και δεν πρέπει να
+ στέλνετε μηνύματα σε αυτές.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Λίστα</entry>
+ <entry>Περιοχή πηγαίου κώδικα</entry>
+ <entry>Περιγραφή περιοχής (κώδικας για)</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>&a.cvsall.name;</entry>
+ <entry><filename>/usr/(CVSROOT|doc|ports)</filename></entry>
+ <entry>Όλες οι αλλαγές σε κάθε μέρος του δέντρου (περιέχει όλες
+ τις άλλες λίστες CVS)</entry>
+ </row>
+
+ <row>
+ <entry>&a.cvs-doc.name;</entry>
+ <entry><filename>/usr/(doc|www)</filename></entry>
+ <entry>Όλες οι αλλαγές στα δέντρα doc και www</entry>
+ </row>
+
+ <row>
+ <entry>&a.cvs-ports.name;</entry>
+ <entry><filename>/usr/ports</filename></entry>
+ <entry>Όλες οι αλλαγές στο δέντρο των ports</entry>
+ </row>
+
+ <row>
+ <entry>&a.cvs-projects.name;</entry>
+ <entry><filename>/usr/projects</filename></entry>
+ <entry>Όλες οι αλλαγές στο δέντρο των projects</entry>
+ </row>
+
+ <row>
+ <entry>&a.cvs-src.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στο δέντρο src (δημιουργείται από τα
+ commit του προγράμματος μετατροπής svn-to-cvs)</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-all.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στο Subversion repository (εκτός από
+ τις περιοχές <filename>user</filename> και
+ <filename>projects</filename>)</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-head.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στον κλάδο <quote>head</quote> του
+ Subversion repository (πρόκειται για τον κλάδο
+ &os;-CURRENT)</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-projects.name;</entry>
+ <entry><filename>/usr/projects</filename></entry>
+ <entry>Όλες οι αλλαγές στην περιοχή πηγαίου κώδικα
+ <filename>projects</filename> του Subversion
+ repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-release.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στην περιοχή πηγαίου κώδικα
+ <filename>releases</filename> του Subversion
+ repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-releng.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές σε όλους τους κλάδους πηγαίου κώδικα
+ <filename>releng</filename> του Subversion repository
+ (πρόκειται για τους κλάδους security&nbsp;/ release
+ engineering)</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-stable.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές σε όλους τους κλάδους πηγαίου κώδικα
+ stable του Subversion repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-stable-6.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στον κλάδο πηγαίου κώδικα
+ <filename>stable/6</filename> του Subversion
+ repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-stable-7.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στον κλάδο πηγαίου κώδικα
+ <filename>stable/7</filename> του Subversion
+ repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-stable-8.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στον κλάδο πηγαίου κώδικα
+ <filename>stable/8</filename> του Subversion
+ repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-stable-9.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στον κλάδο πηγαίου κώδικα
+ <filename>stable/9</filename> του Subversion
+ repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-stable-other.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στους παλιούς
+ <filename>stable</filename> κλάδους πηγαίου κώδικα
+ του Subversion repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-svnadmin.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στα scripts διαχείρισης, τα hooks,
+ και άλλα δεδομένα που αφορούν τις ρυθμίσεις του
+ Subversion repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-user.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στην πειραματική περιοχή πηγαίου
+ κώδικα <filename>user</filename> του Subversion
+ repository</entry>
+ </row>
+
+ <row>
+ <entry>&a.svn-src-vendor.name;</entry>
+ <entry><filename>/usr/src</filename></entry>
+ <entry>Όλες οι αλλαγές στην περιοχή εργασίας πηγαίου κώδικα
+ vendor του Subversion repository</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2 id="eresources-subscribe">
+ <title>Πως να Εγγραφείτε</title>
+
+ <para>Για να εγγραφείτε σε μία λίστα, επιλέξτε το όνομα της από τους
+ παραπάνω δεσμούς ή πηγαίνετε στο &a.mailman.lists.link;
+ και επιλέξτε την λίστα για την οποία ενδιαφέρεστε. Η σελίδα της
+ λίστας πρέπει να περιέχει όλες τις απαραίτητες πληροφορίες
+ εγγραφής.</para>
+
+ <para>Για να γράψετε σε μια λίστα, απλώς στείλτε το μήνυμα σας στο
+ <email><replaceable>όνομα-λίστας</replaceable>@FreeBSD.org</email>.
+ Το μήνυμα σας θα διανεμηθεί σε όλα τα μέλη της λίστας, σε οποιοδήποτε
+ σημείο του κόσμου και αν βρίσκονται.</para>
+
+ <para>Για να διαγραφείτε από μια λίστα, επιλέξτε το URL που
+ βρίσκεται στο τέλος κάθε μηνύματος που λαμβάνετε από την λίστα.
+ Μπορείτε επίσης να στείλετε ένα μήνυμα στο
+ <email><replaceable>όνομα-λίστας</replaceable>-unsubscribe@FreeBSD.org</email>
+ για να διαγραφείτε μόνος σας.</para>
+
+ <para>Για ακόμα μια φορά, θα θέλαμε να σας ζητήσουμε να διατηρήσετε τη
+ συζήτηση των τεχνικών λιστών στα αντίστοιχα τεχνικά θέματα. Αν
+ ενδιαφέρεστε μόνο για σημαντικές ανακοινώσεις, τότε προτείνουμε να
+ εγγραφείτε στην &a.announce;, η οποία έχει μικρή κίνηση.</para>
+ </sect2>
+
+ <sect2 id="eresources-charters">
+ <title>Πίνακες Λιστών</title>
+
+ <para><emphasis>Όλες</emphasis> οι &os; λίστες έχουν συγκεκριμένους
+ βασικούς κανόνες οι οποίοι πρέπει να ακολουθούνται από οποιονδήποτε
+ τις χρησιμοποιεί. Όποιος αποτύχει να ακολουθήσει αυτούς τους κανόνες
+ θα λάβει δύο (2) γραπτές προειδοποιήσεις από τον &os; Postmaster
+ <email>postmaster@FreeBSD.org</email>. Σε περίπτωση τρίτης
+ παραβίασης, το άτομο αυτό θα απομακρυνθεί από όλες τις λίστες του
+ &os; και τα μηνύματα του προς αυτές θα φιλτράρονται. Λυπόμαστε που
+ χρειάζεται να επιβάλλουμε αυτούς τους κανόνες και μέτρα, αλλά το
+ σημερινό Διαδίκτυο είναι καθώς φαίνεται ένα πολύ σκληρό περιβάλλον,
+ και πολλοί δεν εκτιμούν πόσο εύθραυστοι είναι μερικοί μηχανισμοί
+ του.</para>
+
+ <para>Κανόνες:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το θέμα κάθε μηνύματος πρέπει να είναι σχετικό με τον βασικό
+ σκοπό της λίστας που στάλθηκε, π.χ. αν η λίστα σχετίζεται με
+ τεχνικά θέματα τότε το μήνυμα σας πρέπει να περιέχει τεχνικό
+ περιεχόμενο. Η άσχετη φλυαρία ή το flaming μειώνει την αξία της
+ λίστας για όλους που την παρακολουθούν και δεν μπορούμε να
+ ανεχτούμε αυτή τη συμπεριφορά. Για ελεύθερες συζητήσεις χωρίς
+ κάποιο συγκεκριμένο θέμα, διατίθεται η &a.chat; την οποία και θα
+ πρέπει να χρησιμοποιείτε.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κανένα μήνυμα δεν θα πρέπει να σταλεί σε περισσότερες από 2
+ λίστες, και σε 2 μόνο όταν υπάρχει ξεκάθαρος και προφανής λόγος
+ για κάτι τέτοιο. Πολλοί συνδρομητές είναι έτσι και αλλιώς
+ γραμμένοι σε περισσότερες από μία λίστες. Έτσι, αν δεν πρόκειται
+ να κάνετε κάποιο περίεργο συνδυασμό
+ (π.χ. <quote>-stable &amp; -scsi</quote>), δεν υπάρχει λόγος να
+ στείλετε μήνυμα σε περισσότερες από μία λίστα κάθε φορά. Αν
+ λάβετε κάποιο μήνυμα στο οποίο φαίνονται πολλαπλές λίστες στην
+ γραμμή <literal>Cc</literal>, καλό θα είναι να περικόψετε κάποιες
+ από αυτές πριν στείλετε απάντηση. <emphasis>Θεωρείστε υπεύθυνος
+ για τα δικά σας cross-postings, ανεξάρτητα ποιος είναι ο
+ δημιουργός τους.</emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>Προσωπικές επιθέσεις και ασέβεια (στο περιεχόμενο μιας
+ αντιπαράθεσης) δεν επιτρέπονται, και αυτό αφορά τόσο τους χρήστες
+ όσο και τους developers. Μεγάλες παραβάσεις των κανόνων
+ (netiquette), όπως χρήση τμημάτων ή ολόκληρων προσωπικών
+ μηνυμάτων όταν δεν έχει δοθεί άδεια για να γίνει αυτό και δεν
+ ήταν αναμενόμενο, αποδοκιμάζονται αλλά δεν απαγορεύονται ρητά.
+ <emphasis>Όμως</emphasis>, υπάρχουν μερικές περιπτώσεις όπου
+ τέτοιο περιεχόμενο εμπίπτει στους κανονισμούς κάποιας λίστας και
+ μπορεί να οδηγήσει σε προειδοποίηση (ή ακόμα και αποκλεισμό) από
+ αυτήν.</para>
+ </listitem>
+
+ <listitem>
+ <para>Διαφήμιση προϊόντων ή υπηρεσιών που δεν σχετίζονται με το &os;
+ απαγορεύεται αυστηρά και θα οδηγήσει σε άμεσο αποκλεισμό αν είναι
+ φανερό ότι ο πταίστης διαφημίζεται με spam.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><emphasis>Ατομικοί πίνακες λιστών:</emphasis></para>
+
+ <variablelist>
+ <varlistentry>
+ <term>&a.acpi.name;</term>
+
+ <listitem>
+ <para><emphasis>Ανάπτυξη της διαχείρισης ενέργειας και του
+ ACPI</emphasis></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.afs.name;</term>
+
+ <listitem>
+ <para><emphasis>Andrew File System</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για συζήτηση της μεταφοράς και της
+ χρήσης του AFS από το CMU/Transarc</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.announce.name;</term>
+
+ <listitem>
+ <para><emphasis>Σημαντικά γεγονότα και
+ ανακοινώσεις</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για άτομα που ενδιαφέρονται μόνο για
+ περιστασιακές ανακοινώσεις σημαντικών γεγονότων του &os;.
+ Περιλαμβάνει ανακοινώσεις σχετικά με snapshots και άλλα
+ releases. Επίσης δημοσιεύονται σε αυτήν ανακοινώσεις για νέες
+ ικανότητες του &os;. Μπορεί να περιέχει εκκλήσεις για
+ εθελοντές κτλ. Πρόκειται για μία λίστα με μικρή κίνηση, και οι
+ δημοσιεύσεις ελέγχονται αυστηρά.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.arch.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζητήσεις αρχιτεκτονικής και
+ σχεδιασμού</emphasis></para>
+
+ <para>Σε αυτή την λίστα συζητείται η αρχιτεκτονική του &os;.
+ Τα μηνύματα είναι κατά κύριο λόγο αρκετά τεχνικά. Παραδείγματα
+ σχετικών θεμάτων είναι:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να επανασχεδιαστεί το σύστημα μεταγλώττισης ώστε να
+ εκτελεί ταυτόχρονα πολλές προσαρμοσμένες
+ μεταγλωττίσεις.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τι πρέπει να επισκευαστεί στο VFS ώστε να λειτουργούν
+ τα Heidemann layers.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πώς πρέπει να μετατρέψουμε τη διεπαφή (interface) των
+ οδηγών συσκευών ώστε να μπορούμε να χρησιμοποιήσουμε τα
+ ίδια προγράμματα οδήγησης σε πολλούς διαύλους και
+ αρχιτεκτονικές.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να γράψετε ένα οδηγό δικτύου.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.audit.name;</term>
+
+ <listitem>
+ <para><emphasis>Project ελέγχου πηγαίου κώδικα</emphasis></para>
+
+ <para>Αυτή η λίστα χρησιμοποιείται για το project ελέγχου του
+ πηγαίου κώδικα του &os;. Αν και αρχικά προορίζονταν για
+ συζητήσεις αλλαγών που σχετίζονταν με την ασφάλεια, διευρύνθηκε
+ ώστε να ασχολείται με οποιαδήποτε αλλαγή κώδικα.</para>
+
+ <para>Η λίστα είναι γεμάτη με <quote>patches</quote>, και
+ πιθανότατα δεν θα ενδιαφέρει έναν απλό χρήστη του &os;.
+ Συζητήσεις ασφαλείας που δεν σχετίζονται με συγκεκριμένη
+ αλλαγή στον κώδικα, γίνονται στην λίστα freebsd-security.
+ Αντίθετα, όλοι οι developers παροτρύνονται να στέλνουν εδώ τα
+ <quote>patches</quote> τους για έλεγχο, ειδικά αν σχετίζονται
+ με ένα μέρος του συστήματος όπου ένα σφάλμα μπορεί να επηρεάσει
+ ολόκληρη την ακεραιότητα του.</para>
+
+<!-- I can't actually find a charter for this, but there's this email: http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=223347+225804+/usr/local/www/db/text/2000/cvs-all/20001210.cvs-all -->
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.binup.name;</term>
+
+ <listitem>
+ <para><emphasis>Project αναβάθμισης του &os; μέσω έτοιμων
+ (δυαδικών) αρχείων</emphasis></para>
+
+ <para>Σε αυτή την λίστα συζητείται το σύστημα αναβάθμισης μέσω
+ έτοιμων (binary) αρχείων, ή <application>binup</application>.
+ Σε αυτή τη λίστα ανήκουν θέματα σχεδιασμού, λεπτομέρειες
+ υλοποίησης, <quote>patches</quote>, αναφορές σφαλμάτων,
+ αναφορές κατάστασης, αιτήσεις για πρόσθετα χαρακτηριστικά,
+ commit logs, και ότι άλλο σχετίζεται με το
+ <application>binup</application>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.bluetooth.name;</term>
+
+ <listitem>
+ <para><emphasis>Χρήση της τεχνολογίας &bluetooth;
+ στο &os;</emphasis></para>
+
+ <para>Σε αυτή τη λίστα συναθροίζονται οι χρήστες του &bluetooth;
+ στο &os;. Η λίστα ασχολείται με θέματα σχεδιασμού,
+ λεπτομέρειες υλοποίησης, <quote>patches</quote>, αναφορές
+ σφαλμάτων, αναφορές κατάστασης, αιτήσεις για πρόσθετα
+ χαρακτηριστικά, και ότι άλλο σχετίζεται με το
+ &bluetooth;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.bugbusters.name;</term>
+
+ <listitem>
+ <para><emphasis>Προσπάθεια οργάνωσης του χειρισμού των αναφορών
+ προβλημάτων</emphasis></para>
+
+ <para>Σκοπός αυτής της λίστας είναι να λειτουργεί ως χώρος
+ οργάνωσης και συζήτησης για τον Bugmeister, τους Bugbusters,
+ και όσους άλλους ενδιαφέρονται για την βάση δεδομένων PR.
+ Αυτή ή λίστα δεν είναι για συζητήσεις σχετικά με ιδιαίτερα
+ σφάλματα, <quote>patches</quote> ή PRs.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.bugs.name;</term>
+
+ <listitem>
+ <para><emphasis>Αναφορές σφαλμάτων</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για αναφορές σφαλμάτων του &os;.
+ Όποτε είναι δυνατό, τα σφάλματα πρέπει να στέλνονται με την
+ εντολή &man.send-pr.1; ή μέσω της αντίστοιχης <ulink
+ url="&url.base;/send-pr.html">διεπαφή WEB</ulink>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.chat.name;</term>
+
+ <listitem>
+ <para><emphasis>Μη τεχνικά θέματα που σχετίζονται με την
+ κοινότητα του &os;</emphasis></para>
+
+ <para>Αυτή η λίστα περιέχει κοινωνικές συζητήσεις, και γενικότερα
+ ότι δεν σχετίζεται με τεχνικές πληροφορίες με τις οποίες
+ ασχολούνται οι υπόλοιπες λίστες. Περιέχει συζητήσεις για το αν
+ ο Jordan μοιάζει με μικρό κουνάβι ή όχι, για το αν πρέπει ή όχι
+ να γράφουμε με κεφαλαία, ποιος πίνει πολύ καφέ, που φτιάχνεται η
+ καλύτερη μπύρα, ποιος φτιάχνει μπύρα στο υπόγειο του, και άλλα.
+ Περιστασιακές ανακοινώσεις σημαντικών γεγονότων (όπως
+ πάρτυ, γάμοι, γεννήσεις, καινούργιες δουλειές κλπ) μπορούν να
+ γίνουν στις τεχνικές λίστες, αλλά οι απαντήσεις τους πρέπει να
+ στέλνονται στην λίστα -chat.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.chromium.name;</term>
+
+ <listitem>
+ <para><emphasis>Θέματα σχετικά με το Chromium στο
+ &os;</emphasis></para>
+
+ <para>Λίστα συζητήσεων για την υποστήριξη του Chromium στο &os;.
+ Πρόκειται για τεχνική λίστα σχετική με την ανάπτυξη και
+ εγκατάσταση του Chromium.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.core.name;</term>
+
+ <listitem>
+ <para><emphasis>Ομάδα core του &os;</emphasis></para>
+
+ <para>Αυτή είναι μία εσωτερική λίστα για χρήση από τα μέλη του
+ core. Σε αυτή τη λίστα μπορείτε να στείλετε μηνύματα, όταν
+ προκύψει κάποιο θέμα σχετικό με το &os; το οποίο απαιτεί
+ διαιτησία ή λεπτομερή εξέταση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.current.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζητήσεις σχετικά με την χρήση του
+ &os.current;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για χρήστες του &os.current;. Περιέχει
+ προειδοποιήσεις για νέα χαρακτηριστικά που πρόκειται να
+ προστεθούν στο -CURRENT και τα οποία θα επηρεάσουν τους
+ χρήστες, και οδηγίες για τις κινήσεις που πρέπει να γίνουν
+ ώστε να παραμείνετε στο -CURRENT. Όποιος εκτελεί το
+ <quote>CURRENT</quote> πρέπει να εγγραφεί σε αυτήν την λίστα.
+ Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.cvsweb.name;</term>
+
+ <listitem>
+ <para><emphasis>&os; CVSweb Project</emphasis></para>
+
+ <para>Τεχνικές συζητήσεις για την χρήση, την ανάπτυξη και την
+ συντήρηση του &os;-CVSweb.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.desktop.name;</term>
+
+ <listitem>
+ <para><emphasis>Χρήση και βελτίωση του &os; ως
+ desktop</emphasis></para>
+
+ <para>Ή λίστα αυτή προορίζεται για συζητήσεις σχετικές με
+ τη χρήση του &os; ως desktop. Απευθύνεται κυρίως σε χρήστες
+ και προγραμματιστές που επιθυμούν να συζητήσουν τα προβλήματα
+ που παρουσιάζει το &os; σε desktop εφαρμογές, καθώς και
+ αντίστοιχες βελτιώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.doc.name;</term>
+
+ <listitem>
+ <para><emphasis>Project τεκμηρίωσης του &os;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για συζήτηση θεμάτων και
+ projects που σχετίζονται με την δημιουργία τεκμηρίωσης για το
+ &os;. Τα μέλη αυτής της λίστας αποκαλούνται συνολικά ως
+ <quote>The &os; Documentation Project</quote>. Είναι μια
+ ανοικτή λίστα και είστε ελεύθερος να συμμετέχετε και να
+ συνεισφέρετε!</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.drivers.name;</term>
+
+ <listitem>
+ <para><emphasis>Δημιουργία οδηγών συσκευών για
+ το &os;</emphasis></para>
+
+ <para>Αυτή η λίστα προορίζεται για τεχνικές συζητήσεις σχετικές με
+ οδηγούς συσκευών στο &os;. Χρησιμοποιείται κυρίως από τους
+ δημιουργούς οδηγών συσκευών για ερωτήσεις σχετικές με τη
+ συγγραφή οδηγών, χρησιμοποιώντας τα APIs που παρέχει ο πυρήνας
+ του &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.eclipse.name;</term>
+
+ <listitem>
+ <para><emphasis>&os; χρήστες του Eclipse IDE, των εργαλείων του,
+ rich client εφαρμογών, και ports.</emphasis></para>
+
+ <para>Πρόθεση της λίστας αυτής είναι να προσφέρει αμοιβαία
+ υποστήριξη για ότι έχει να κάνει με την επιλογή, εγκατάσταση,
+ χρήση, ανάπτυξη και συντήρηση του Eclipse IDE, των
+ εργαλείων του, εφαρμογών rich client στην πλατφόρμα του &os;
+ και για βοήθεια σχετικά με την μεταφορά του Eclipse IDE και των
+ πρόσθετων του στο περιβάλλον του &os;.</para>
+
+ <para>Πρόθεση της είναι επίσης να διευκολύνει την ανταλλαγή
+ πληροφοριών ανάμεσα στην κοινότητα του Eclipse και στην
+ κοινότητα του &os;, προς όφελος και των δύο.</para>
+
+ <para>Αν και η λίστα επικεντρώνεται κυρίως στις ανάγκες των
+ χρηστών του Eclipse, προσφέρει επίσης ένα χώρο συζήτησης για
+ όσους θέλουν να αναπτύξουν εφαρμογές σχετικές με το &os;
+ χρησιμοποιώντας το Eclipse.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.embedded.name;</term>
+
+ <listitem>
+ <para><emphasis>Χρήση του &os; σε embedded
+ εφαρμογές</emphasis></para>
+
+ <para>Η λίστα συζητά θέματα σχετικά με την χρήση του &os; σε
+ embedded συστήματα. Είναι μια τεχνική λίστα
+ και συζητούνται μόνο αυστηρά τεχνικά θέματα. Για τον σκοπό της
+ λίστας αυτής, ορίζουμε ως embedded συστήματα τις υπολογιστικές
+ συσκευές που δεν προορίζονται για desktop εφαρμογές, και που
+ συνήθως καλύπτουν μια μόνο ανάγκη, αντίθετα με τα γενικά
+ υπολογιστικά περιβάλλοντα. Συμπεριλαμβάνονται, εκτός των άλλων,
+ όλα τα τηλέφωνα, δικτυακός εξοπλισμός όπως routers, switches
+ και PBXs, εξοπλισμός μετρήσεων από απόσταση, PDAs, συστήματα
+ Point Of Sale, και πάει λέγοντας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.emulation.name;</term>
+
+ <listitem>
+ <para><emphasis>Εξομοίωση άλλων συστημάτων όπως είναι τα
+ Linux/&ms-dos;/&windows;</emphasis></para>
+
+ <para>Είναι μια λίστα για τεχνικές συζητήσεις, σχετικές με την
+ εκτέλεση στο &os; προγραμμάτων που δημιουργήθηκαν για άλλα
+ λειτουργικά.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.eol.name;</term>
+
+ <listitem>
+ <para><emphasis>Ομότιμη υποστήριξη για λογισμικό σχετικό με το
+ &os; που δεν υποστηρίζεται πλέον από το
+ &os;&nbsp;Project.</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για όσους ενδιαφέρονται να παρέχουν ή να
+ χρησιμοποιήσουν την ομότιμη υποστήριξη για λογισμικό σχετικό με
+ το &os; που δεν υποστηρίζεται πλέον από το &os;&nbsp;Project
+ (π.χ., με την μορφή <quote>patches</quote> και ανακοινώσεων
+ ασφαλείας).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.firewire.name;</term>
+
+ <listitem>
+ <para><emphasis>&firewire; (iLink, IEEE 1394)</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για την συζήτηση της σχεδίασης και
+ υλοποίησης ενός υποσυστήματος &firewire; (γνωστό και ως
+ IEEE 1394 ή iLink) για το &os;. Σχετικά θέματα
+ είναι τα πρότυπα, οι συσκευές διαύλου και τα
+ πρωτόκολλά τους, κάρτες, προσαρμογείς και chipsets, και
+ η αρχιτεκτονική και η υλοποίηση του κώδικα για την
+ σωστή υποστήριξη τους.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.fs.name;</term>
+
+ <listitem>
+ <para><emphasis>Συστήματα αρχείων</emphasis></para>
+
+ <para>Συζητήσεις σχετικές με τα συστήματα αρχείων του &os;. Είναι
+ μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.gecko.name;</term>
+
+ <listitem>
+ <para><emphasis>Gecko Rendering Engine</emphasis></para>
+
+ <para>Συζητήσεις σχετικές με εφαρμογές που χρησιμοποιούν την
+ μηχανή Gecko στο &os;.</para>
+
+ <para>Η συζήτηση επικεντρώνεται σε εφαρμογές της Συλλογής των
+ Ports που χρησιμοποιούν τη μηχανή Gecko, και ειδικότερα την
+ εγκατάσταση, ανάπτυξη και υποστήριξη τους στο &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.geom.name;</term>
+
+ <listitem>
+ <para><emphasis>GEOM</emphasis></para>
+
+ <para>Συζητήσεις σχετικές με το GEOM και παρόμοιες υλοποιήσεις.
+ Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.gnome.name;</term>
+
+ <listitem>
+ <para><emphasis>GNOME</emphasis></para>
+
+ <para>Συζητήσεις σχετικές με το περιβάλλον
+ <application>GNOME</application> για συστήματα &os;. Είναι μια
+ τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.ipfw.name;</term>
+
+ <listitem>
+ <para><emphasis>IP Firewall</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για τεχνικές συζητήσεις που αφορούν τον
+ επανασχεδιασμό του κώδικα IP firewall στο &os;. Είναι μια
+ τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.ia64.name;</term>
+
+ <listitem>
+ <para><emphasis>Μεταφορά του &os; στην αρχιτεκτονική
+ IA64</emphasis></para>
+
+ <para>Πρόκειται για μια τεχνική λίστα, για άτομα που δουλεύουν
+ ενεργά στην μεταφορά του &os; στην πλατφόρμα IA-64 της &intel;,
+ για να αναφέρουν προβλήματα ή να συζητήσουν εναλλακτικές
+ λύσεις. Άτομα που ενδιαφέρονται να παρακολουθήσουν την
+ τεχνική συζήτηση είναι επίσης ευπρόσδεκτα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.isdn.name;</term>
+
+ <listitem>
+ <para><emphasis>Ανάπτυξη του ISDN</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για άτομα που συζητούν την
+ ανάπτυξη της υποστήριξης ISDN στο &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.java.name;</term>
+
+ <listitem>
+ <para><emphasis>Ανάπτυξη της &java;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για άτομα που συζητούν την
+ ανάπτυξη σημαντικών εφαρμογών &java; για το &os; και την
+ μεταφορά και συντήρηση των &jdk;s.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry id="eresources-charters-jobs">
+ <term>&a.jobs.name;</term>
+
+ <listitem>
+ <para><emphasis>Ζήτηση και προσφορά εργασίας</emphasis></para>
+
+ <para>Αυτός είναι ένας χώρος για δημοσίευση ανακοινώσεων για
+ προσφορά και ζήτηση εργασίας που σχετίζεται με το &os;, καθώς
+ και βιογραφικών σχετικών με το &os;. Αν για παράδειγμα
+ αναζητάτε εργασία σχετική με το &os;, ή προσφέρετε μια θέση
+ εργασίας σχετική με το &os;, αυτό είναι το σωστό μέρος για να
+ τη διαφημίσετε. Η λίστα αυτή <emphasis>δεν</emphasis> είναι
+ για γενικά θέματα εργασίας, για τα οποία υπάρχει πληθώρα από
+ άλλες λίστες στο Διαδίκτυο.</para>
+
+ <para>Αυτή η λίστα, όπως και οι υπόλοιπες λίστες του
+ <hostid role="domainname">FreeBSD.org</hostid>, διανέμονται
+ παγκόσμια. Έτσι, πρέπει να είστε σαφής για την τοποθεσία και
+ την δυνατότητα τηλεργασίας ή βοήθειας στην μετοίκηση.</para>
+
+ <para>Το μήνυμα σας θα πρέπει να χρησιμοποιεί μόνο ανοιχτά
+ πρότυπα &mdash; κατά προτίμηση απλό κείμενο, αν και βασικής
+ μορφής Portable Document Format (<acronym>PDF</acronym>), HTML,
+ και μερικά άλλα είναι αποδεκτά από πολλούς χρήστες. Κλειστά
+ πρότυπα όπως το &microsoft; Word (<filename>.doc</filename>) θα
+ απορριφθούν από τον διακομιστή της λίστας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.kde.name;</term>
+
+ <listitem>
+ <para><emphasis>KDE</emphasis></para>
+
+ <para>Συζητήσεις που αφορούν το <application>KDE</application> σε
+ συστήματα &os;. Είναι μια τεχνική λίστα και συζητούνται μόνο
+ αυστηρά τεχνικά θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.hackers.name;</term>
+
+ <listitem>
+ <para><emphasis>Τεχνικές συζητήσεις</emphasis></para>
+
+ <para>Είναι ένας χώρος για τεχνικές συζητήσεις σχετικές με το
+ &os;. Αυτή είναι η κύρια τεχνική λίστα. Είναι για άτομα
+ που αναπτύσσουν ενεργά το &os;, για να αναφέρουν προβλήματα ή
+ να συζητήσουν εναλλακτικές λύσεις. Άτομα που ενδιαφέρονται να
+ παρακολουθήσουν την τεχνική συζήτηση είναι ευπρόσδεκτα. Είναι
+ μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.hardware.name;</term>
+
+ <listitem>
+ <para><emphasis>Γενική συζήτηση για υλικό κι εξαρτήματα
+ υπολογιστών στο &os;</emphasis></para>
+
+ <para>Γενικές συζητήσεις για τύπους υλικού που λειτουργούν στο
+ &os;, διάφορα προβλήματα και προτάσεις σχετικά με το τι να
+ αγοράσετε ή να αποφύγετε.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.hubs.name;</term>
+
+ <listitem>
+ <para><emphasis>Mirror sites</emphasis></para>
+
+ <para>Ανακοινώσεις και συζητήσεις για άτομα που συντηρούν
+ mirror sites του &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.isp.name;</term>
+
+ <listitem>
+ <para><emphasis>Θέματα για Παροχείς Υπηρεσιών
+ Διαδικτύου</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για συζήτηση θεμάτων σχετικών με
+ Παροχείς Υπηρεσιών Διαδικτύου (ISPs) που χρησιμοποιούν &os;.
+ Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.mono.name;</term>
+
+ <listitem>
+ <para><emphasis>Εφαρμογές Mono και C# στο &os;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για συζήτηση θεμάτων σχετικών με το
+ σύστημα ανάπτυξης εφαρμογών Mono στο &os;. Πρόκειται για μια
+ τεχνική λίστα. Προορίζεται για οποιονδήποτε ασχολείται ενεργά
+ με την ανάπτυξη ή τη μεταφορά εφαρμογών Mono ή C# στο &os;.
+ Η συζήτηση αφορά την επίλυση προβλημάτων η την εύρεση
+ εναλλακτικών λύσεων. Άτομα που ενδιαφέρονται να παρακολουθήσουν
+ την τεχνική συζήτηση είναι επίσης ευπρόσδεκτα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.office.name;</term>
+
+ <listitem>
+ <para><emphasis>Εφαρμογές γραφείου στο &os;</emphasis></para>
+
+ <para>Συζητήσεις σχετικές με την εγκατάσταση, ανάπτυξη
+ και υποστήριξη εφαρμογών γραφείου στο &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.performance.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζητήσεις για την ρύθμιση και την βελτιστοποίηση
+ του &os;</emphasis></para>
+
+ <para>Αυτή η λίστα υπάρχει για να παρέχει ένα μέρος όπου οι
+ hackers, οι διαχειριστές, και όσοι άλλοι ενδιαφέρονται, να
+ συζητούν θέματα σχετικά με την απόδοση του &os;.
+ Αποδεκτά θέματα είναι οι συζητήσεις που αναφέρονται σε
+ εγκαταστάσεις &os; που υπόκεινται σε μεγάλο φόρτο,
+ έχουν προβλήματα απόδοσης, ή φτάνουν το &os; στα όρια του.
+ Συνιστούμε ανεπιφύλακτα να γραφούν στη λίστα όσοι ενδιαφέρονται
+ να βελτιώσουν την απόδοση του &os;. Είναι μία τεχνική λίστα
+ που απευθύνεται σε έμπειρους χρήστες του &os;, hackers, ή
+ διαχειριστές που ενδιαφέρονται να κάνουν το &os; γρήγορο και
+ αξιόπιστο. Δεν πρόκειται για μια λίστα ερωτήσεων και απαντήσεων
+ που μπορεί να αντικαταστήσει την μελέτη της τεκμηρίωσης, αλλά
+ ένα μέρος για συνεισφορές ή για απαντήσεις σε αναπάντητα θέματα
+ σχετικά με την απόδοση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.pf.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζητήσεις και ερωτήσεις για το σύστημα packet
+ filter firewall</emphasis></para>
+
+ <para>Συζητήσεις σχετικές με το packet filter (pf) firewall
+ system στο &os;. Τεχνικές συζητήσεις και ερωτήσεις χρηστών
+ είναι ευπρόσδεκτες. Η λίστα είναι επίσης ένα μέρος για
+ συζήτηση του ALTQ QoS framework.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.platforms.name;</term>
+
+ <listitem>
+ <para><emphasis>Μεταφορά του &os; σε μη-&intel;
+ πλατφόρμες</emphasis></para>
+
+ <para>Προβλήματα του &os; που εμφανίζονται σε περισσότερες από
+ μία πλατφόρμες, καθώς και γενικές συζητήσεις και προτάσεις για
+ μεταφορά του &os; σε μη-&intel; πλατφόρμες. Είναι μια τεχνική
+ λίστα και συζητούνται μόνο αυστηρά τεχνικά θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.policy.name;</term>
+
+ <listitem>
+ <para><emphasis>Κατευθυντήριες αποφάσεις (policy) της ομάδας
+ Core του &os;</emphasis></para>
+
+ <para>Αυτή είναι μία λίστα με μικρή κίνηση, μόνο για ανάγνωση,
+ για τις αποφάσεις της Core ομάδας του &os; σχετικά με κάποια
+ θέματα κατεύθυνσης του Project (policies).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.ports.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζήτηση για τα
+ <quote>ports</quote></emphasis></para>
+
+ <para>Συζητήσεις σχετικές με την <quote>Συλλογή των Ports</quote>
+ του &os; (<filename>/usr/ports</filename>), την υποδομή των
+ ports, και γενικά τις προσπάθειες συντονισμού των ports. Είναι
+ μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.ports-announce.name;</term>
+
+ <listitem>
+ <para><emphasis>Σημαντικές ειδήσεις και οδηγίες σχετικές με
+ την <quote>Συλλογή των Ports</quote> του &os;.</emphasis></para>
+
+ <para>Σημαντικές ειδήσεις σχετικές με την
+ <quote>Συλλογή των Ports</quote> (<filename
+ role="directory">/usr/ports</filename>) που απευθυνόνται σε
+ όσους αναπτύσσουν ή μεταφέρουν λογισμικό στο &os; αλλά και στους
+ τελικούς χρήστες. Περιλαμβάνονται ειδήσεις σχετικές με
+ αλλαγές στην αρχιτεκτονική και την υποδομή, νέες δυνατότητες
+ αλλά και σημαντικές πληροφορίες αναβάθμισης και νέων εκδόσεων.
+ Πρόκειται για λίστα με μικρή κίνηση που προορίζεται για
+ ανακοινώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.ports-bugs.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζήτηση για τα σφάλματα
+ των <quote>ports</quote></emphasis></para>
+
+ <para>Συζητήσεις που σχετίζονται με τις αναφορές προβλημάτων της
+ <quote>Συλλογής των Ports</quote>
+ (<filename>/usr/ports</filename>) του &os;, προτάσεις για νέα
+ ports ή για αλλαγές σε υπάρχοντα ports. Είναι μια τεχνική λίστα
+ και συζητούνται μόνο αυστηρά τεχνικά θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.proliant.name;</term>
+
+ <listitem>
+ <para><emphasis>Τεχνική συζήτηση για το &os; σε διακομιστές HP
+ ProLiant</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για τεχνικές συζητήσεις σχετικά με την
+ χρήση του &os; σε διακομιστές HP ProLiant. Η συζήτηση
+ περιλαμβάνει θέματα προγραμμάτων οδήγησης για ProLiant,
+ λογισμικό διαχείρισης, εργαλεία ρυθμίσεων, και ανανεώσεις του
+ BIOS. Η λίστα αυτή είναι το καταλληλότερο μέρος για συζήτηση
+ σχετικά με τα αρθρώματα hpasmd, hpasmcli, και hpacucli.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.python.name;</term>
+
+ <listitem>
+ <para><emphasis>Η Python στο &os;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για συζητήσεις σχετικές με την
+ βελτιστοποίηση της υποστήριξης της Python στο &os;. Είναι μια
+ τεχνική λίστα. Προορίζεται για άτομα που ασχολούνται με την
+ μεταφορά της Python, των αρθρωμάτων της (modules) και του
+ <application>Zope</application> στο &os;. Όσοι ενδιαφέρονται
+ να παρακολουθήσουν την τεχνική συζήτηση, είναι
+ ευπρόσδεκτοι.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.questions.name;</term>
+
+ <listitem>
+ <para><emphasis>Ερωτήσεις χρηστών</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για ερωτήσεις σχετικές με το &os;. Δεν
+ πρέπει να στέλνετε ερωτήσεις τύπου <quote>how to</quote> σε
+ τεχνικές λίστες εκτός αν πιστεύετε ότι η ερώτηση σας είναι πολύ
+ εξειδικευμένη.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.ruby.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζήτηση σχετικά με τη Ruby
+ στο &os;</emphasis></para>
+
+ <para>Η λίστα αυτή είναι για συζητήσεις που σχετίζονται με την
+ υποστήριξη της Ruby στο &os;. Πρόκειται για μια λίστα τεχνικών
+ ερωτήσεων. Απευθύνεται σε άτομα που δουλεύουν σε Ports της
+ Ruby, σε βιβλιοθήκες τρίτων κατασκευαστών, και σε άλλα
+ πλαίσια λειτουργιών.</para>
+
+ <para>Είναι επίσης ευπρόσδεκτοι όσοι ενδιαφέρονται για αυτού του
+ είδους την τεχνική συζήτηση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.scsi.name;</term>
+
+ <listitem>
+ <para><emphasis>Το υποσύστημα SCSI</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για άτομα που εργάζονται στο SCSI
+ υποσύστημα του &os;. Είναι μια τεχνική λίστα και συζητούνται
+ μόνο αυστηρά τεχνικά θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.security.name;</term>
+
+ <listitem>
+ <para><emphasis>Θέματα ασφαλείας</emphasis></para>
+
+ <para>Αφορά θέματα ασφαλείας υπολογιστών που εκτελούν &os;
+ (DES, Kerberos, γνωστά θέματα ασφαλείας και διορθώσεις, κτλ).
+ Είναι μια τεχνική λίστα και συζητούνται μόνο αυστηρά τεχνικά
+ θέματα. Σημειώστε ότι δεν πρόκειται για λίστα ερωτήσεων και
+ απαντήσεων, αλλά η συνεισφορά (τόσο ερωτήσεων όσο ΚΑΙ
+ απαντήσεων) στο FAQ είναι ευπρόσδεκτη.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.security-notifications.name;</term>
+
+ <listitem>
+ <para><emphasis>Ειδοποιήσεις ασφαλείας</emphasis></para>
+
+ <para>Ειδοποιήσεις για προβλήματα ασφαλείας και διορθώσεις στο
+ &os;. Δεν πρόκειται για λίστα συζητήσεων. Η λίστα συζητήσεων
+ είναι η &os;-security.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.small.name;</term>
+
+ <listitem>
+ <para><emphasis>Χρήση του &os; σε embedded
+ εφαρμογές</emphasis></para>
+
+ <para>Αυτή η λίστα συζητά θέματα σχετικά με ασυνήθιστα μικρές και
+ embedded εγκαταστάσεις του &os;. Είναι μια τεχνική λίστα
+ και συζητούνται μόνο αυστηρά τεχνικά θέματα.</para>
+
+ <note>
+ <para>Η λίστα αυτή έχει αντικατασταθεί από την
+ &a.embedded.name;.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.stable.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζητήσεις σχετικές με την χρήση του
+ &os.stable;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για τους χρήστες του &os.stable;.
+ Περιέχει προειδοποιήσεις για νέα χαρακτηριστικά που πρόκειται
+ να ενσωματωθούν στο -STABLE και τα οποία ενδεχομένως να
+ επηρεάσουν τους χρήστες του. Επίσης περιέχει οδηγίες για τα
+ βήματα που πρέπει να ακολουθήσετε ώστε να παραμείνετε στο
+ -STABLE. Θα πρέπει να εγγραφείτε σε αυτή τη λίστα, αν
+ ακολουθείτε το <quote>STABLE</quote>. Είναι μια τεχνική λίστα
+ και συζητούνται μόνο αυστηρά τεχνικά θέματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.standards.name;</term>
+
+ <listitem>
+ <para><emphasis>Συμμόρφωση με τα πρότυπα C99 &amp;
+ POSIX</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για τεχνικές συζητήσεις σχετικά με την
+ συμμόρφωση του &os; με τα πρότυπα C99 και POSIX.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.toolchain.name;</term>
+
+ <listitem>
+ <para><emphasis>Συντήρηση των ενσωματωμένων εργαλείων του
+ &os;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για συζητήσεις που σχετίζονται με την
+ σειρά εργαλείων (toolchain) που έρχονται με το &os;.
+ Η συζήτηση μπορεί να περιλαμβάνει θέματα σχετικά με την
+ κατάσταση του Clang και του GCC, αλλά και θέματα σχετικά με
+ προγράμματα όπως μεταγλωττιστές, assemblers, linkers και
+ debuggers.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.usb.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζήτηση για την υποστήριξη του διαύλου USB
+ στο &os;</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για τεχνικές συζητήσεις σχετικά με την
+ υποστήριξη του διαύλου USB στο &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.usergroups.name;</term>
+
+ <listitem>
+ <para><emphasis>Οργάνωση των συλλόγων χρηστών</emphasis></para>
+
+ <para>Αυτή η λίστα είναι για τους συντονιστές των επιμέρους
+ τοπικών συλλόγων χρηστών για συζήτηση θεμάτων μεταξύ τους
+ και με κάποιο μέλος της ομάδας Core. Αυτή η λίστα
+ θα πρέπει να αναφέρει μόνο τις συναντήσεις και την οργάνωση
+ projects που αναφέρονται σε περισσότερους από ένα συλλόγους
+ χρηστών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.vendors.name;</term>
+
+ <listitem>
+ <para><emphasis>Πωλητές</emphasis></para>
+
+ <para>Οργάνωση συζητήσεων μεταξύ του &os;&nbsp;Project και των
+ πωλητών λογισμικού και υλικού σχετικού με το &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.virtualization.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζήτηση διάφορων τεχνικών εικονικοποίησης που
+ υποστηρίζονται από το &os;.</emphasis></para>
+
+ <para>Μια λίστα για τη συζήτηση των διάφορων τεχνικών
+ εικονικοποίησης που υποστηρίζονται από το &os;. Από τη μια
+ μεριά εστιάζει στην υλοποίηση των βασικών λειτουργιών αλλά και
+ την προσθήκη νέων δυνατοτήτων. Από την άλλη, οι χρήστες θα
+ έχουν μια ομάδα συζητήσεων όπου μπορούν να ζητούν βοήθεια σε
+ περίπτωση προβλημάτων, ή να συζητούν τις δικές τους
+ χρήσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.wip-status.name;</term>
+
+ <listitem>
+ <para><emphasis>Κατάσταση εργασιών σε εξέλιξη
+ στο &os;</emphasis></para>
+
+ <para>Στη λίστα αυτή μπορείτε να ανακοινώσετε την έναρξη και την
+ πρόοδο κάποιας εργασίας σας που σχετίζεται με το &os;. Τα
+ μηνύματα σε αυτή τη λίστα ελέγχονται. Συνίσταται να στείλετε το
+ μήνυμα σας με παραλήπτη μια πιο τοπική σας λίστα του &os;, και
+ απλώς να κοινοποιήσετε το μήνυμα σας σε αυτή τη λίστα. Με τον
+ τρόπο αυτό, μπορείτε επίσης να συζητήσετε για την εργασία σας
+ στην τοπική λίστα, καθώς η συζήτηση σε αυτή τη λίστα δεν
+ επιτρέπεται.</para>
+
+ <para>Δείτε τα αρχεία της λίστας για να πάρετε μια ιδέα της μορφής
+ των μηνυμάτων που μπορείτε να στείλετε.</para>
+
+ <para>Μια περίληψη των περιεχομένων της λίστας ενδέχεται να
+ δημοσιεύεται κατά τακτά διαστήματα στη δικτυακή τοποθεσία του
+ &os;, ως μέρος των Αναφορών Κατάστασης (Status Reports)
+ <footnote><para><ulink url="http://www.freebsd.org/news/status/"></ulink></para></footnote>.
+ Στην ίδια τοποθεσία, μπορείτε επίσης να βρείτε περισσότερα
+ παραδείγματα και προηγούμενες αναφορές.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.wireless.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζήτηση σχετικά με τη στοίβα 802.11, τα
+ εργαλεία ασύρματου δικτύου και την ανάπτυξη προγραμμάτων
+ οδήγησης</emphasis></para>
+
+ <para>H λίστα αυτή εστιάζει στη στοίβα δικτύου 802.11
+ (sys/net80211), την ανάπτυξη προγραμμάτων οδήγησης και
+ εργαλείων. Περιλαμβάνει αναφορές προβλημάτων, νέα
+ χαρακτηριστικά και πληροφορίες συντήρησης.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.xen.name;</term>
+
+ <listitem>
+ <para><emphasis>Συζήτηση για τη μεταφορά του &os; στο &xen;
+ &mdash; υλοποίηση και χρήση</emphasis></para>
+
+ <para>Πρόκειται για μια λίστα που εστιάζει στην μεταφορά του &os;
+ στο &xen;. Η κίνηση σε αυτή τη λίστα αναμένεται να είναι μικρή,
+ και έτσι θα χρησιμοποιηθεί τόσο για τεχνικές συζητήσεις σχετικά
+ με το σχεδιασμό και την υλοποίηση, όσο και με προβλήματα
+ εγκατάστασης και διαχείρισης.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&a.xfce.name;</term>
+
+ <listitem>
+ <para><emphasis>XFCE</emphasis></para>
+
+ <para>Συζήτηση για τη μεταφορά του
+ <application>XFCE</application> στο &os;. Πρόκειται για μια
+ λίστα τεχνικών συζητήσεων. Προορίζεται για όσους ασχολούνται
+ ενεργά με τη μεταφορά του <application>XFCE</application> στο
+ &os; ώστε να συζητούν προβλήματα και εναλλακτικές λύσεις.
+ Η λίστα είναι επίσης ανοικτή σε όσους ενδιαφέρονται για
+ τεχνική συζήτηση αυτού του είδους.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="eresources-mailfiltering">
+ <title>Φιλτράρισμα στις Λίστες Ηλεκτρονικού Ταχυδρομείου</title>
+
+ <para>Οι λίστες ηλεκτρονικού ταχυδρομείου του &os; φιλτράρονται με
+ πολλαπλούς τρόπους για να αποφύγουμε την διανομή spam, ιών, και άλλων
+ ανεπιθύμητων μηνυμάτων. Το φιλτράρισμα που περιγράφεται σε αυτή την
+ ενότητα, αποτελεί ένα μόνο μέρος των συνολικών μέτρων που λαμβάνουμε
+ για την προστασία των λιστών ηλεκτρονικού ταχυδρομείου.</para>
+
+ <para>Στις λίστες επιτρέπονται μόνο συγκεκριμένοι τύποι συνημμένων
+ αρχείων. Όλα τα συνημμένα αρχεία με τύπο MIME που δεν βρίσκεται
+ στην παρακάτω λίστα, διαγράφονται πριν διανεμηθεί το μήνυμα στις
+ λίστες.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>application/octet-stream</para>
+ </listitem>
+
+ <listitem>
+ <para>application/pdf</para>
+ </listitem>
+
+ <listitem>
+ <para>application/pgp-signature</para>
+ </listitem>
+
+ <listitem>
+ <para>application/x-pkcs7-signature</para>
+ </listitem>
+
+ <listitem>
+ <para>message/rfc822</para>
+ </listitem>
+
+ <listitem>
+ <para>multipart/alternative</para>
+ </listitem>
+
+ <listitem>
+ <para>multipart/related</para>
+ </listitem>
+
+ <listitem>
+ <para>multipart/signed</para>
+ </listitem>
+
+ <listitem>
+ <para>text/html</para>
+ </listitem>
+
+ <listitem>
+ <para>text/plain</para>
+ </listitem>
+
+ <listitem>
+ <para>text/x-diff</para>
+ </listitem>
+
+ <listitem>
+ <para>text/x-patch</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Μερικές λίστες μπορεί να επιτρέπουν συνημμένα αρχεία
+ και άλλων τύπων MIME, αλλά οι παραπάνω τύποι ισχύουν
+ στις περισσότερες λίστες.</para>
+ </note>
+
+ <para>Εάν το κείμενο ενός μηνύματος περιέχεται τόσο σε μορφή HTML όσο
+ και απλού κειμένου, το τμήμα HTML θα αφαιρεθεί. Εάν ένα μήνυμα
+ περιέχει μόνο HTML, θα μετατραπεί σε απλό κείμενο.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="eresources-news">
+ <title>Usenet Newsgroups</title>
+
+ <para>Εκτός από δύο newsgroups που ασχολούνται με το &os;, υπάρχουν πολλά
+ ακόμα στα οποία γίνεται συζήτηση για το &os; ή άλλα θέματα που
+ ενδεχομένως ενδιαφέρουν τους χρήστες του. Για κάποια από αυτά τα
+ newsgroups, μπορείτε να κάνετε <ulink
+ url="http://minnie.tuhs.org/BSD-info/bsdnews_search.html">αναζήτηση
+ με λέξεις-κλειδιά στις παλιές δημοσιεύσεις</ulink>, χάρη στην
+ υπηρεσία που προσφέρει ο Warren Toomey
+ <email>wkt@cs.adfa.edu.au</email>.</para>
+
+ <sect2>
+ <title>Newsgroups Σχετικά με το BSD</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.bsd.freebsd.announce">comp.unix.bsd.freebsd.announce</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:de.comp.os.unix.bsd">de.comp.os.unix.bsd</ulink> (Στα Γερμανικά)</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:fr.comp.os.bsd">fr.comp.os.bsd</ulink> (Στα Γαλλικά)</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:it.comp.os.freebsd">it.comp.os.freebsd</ulink> (Στα Ιταλικά)</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:tw.bbs.comp.386bsd">tw.bbs.comp.386bsd</ulink> (Σε Παραδοσιακά Κινέζικα)</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Άλλα Ενδιαφέροντα &unix; Newsgroups</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="news:comp.unix">comp.unix</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.questions">comp.unix.questions</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.admin">comp.unix.admin</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.programmer">comp.unix.programmer</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.shell">comp.unix.shell</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.user-friendly">comp.unix.user-friendly</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.security.unix">comp.security.unix</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.sources.unix">comp.sources.unix</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.advocacy">comp.unix.advocacy</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.misc">comp.unix.misc</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.bugs.4bsd">comp.bugs.4bsd</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.bugs.4bsd.ucb-fixes">comp.bugs.4bsd.ucb-fixes</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.unix.bsd">comp.unix.bsd</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Σύστημα X Window</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="news:comp.windows.x.i386unix">comp.windows.x.i386unix</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.windows.x">comp.windows.x</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.windows.x.apps">comp.windows.x.apps</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.windows.x.announce">comp.windows.x.announce</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.windows.x.intrinsics">comp.windows.x.intrinsics</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.windows.x.motif">comp.windows.x.motif</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.windows.x.pex">comp.windows.x.pex</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="news:comp.emulators.ms-windows.wine">comp.emulators.ms-windows.wine</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="eresources-web">
+ <title>Διακομιστές Ιστοσελίδων</title>
+
+ <sect2 id="eresources-web-social">
+ <title>Forums, Blogs, και Κοινωνικά Δίκτυα</title>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="http://forums.freebsd.org/">Τα Forums
+ του &os;</ulink> βασίζονται σε διεπαφή web και είναι κατάλληλα
+ για τεχνικές συζητήσεις και ερωτήσεις που αφορούν το &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://planet.freebsdish.org/">Το Planet
+ &os;</ulink> συγκεντρώνει σε ένα σημείο τις ροές από δεκάδες
+ ιστολόγια μελών της ομάδας ανάπτυξης του &os;. Πολλά από τα μέλη,
+ χρησιμοποιούν αυτή τη δυνατότητα για να γνωστοποιήσουν την εργασία
+ που κάνουν τη δεδομένη στιγμή, τυχόν νέες διορθώσεις, καθώς και τα
+ μελλοντικά τους σχέδια.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.youtube.com/bsdconferences">Το κανάλι
+ BSDConferences στο Youtube</ulink> παρέχει μια συλλογή βίντεο
+ υψηλής ποιότητας, από διάφορα BSD συνέδρια σε όλο τον κόσμο.
+ Πρόκειται για ένα θαυμάσιο τρόπο να παρακολουθήσετε σημαντικά μέλη
+ της ομάδας ανάπτυξης να παρουσιάζουν τη νέα τους δουλειά στο
+ &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="eresources-web-mirrors">
+ <title>Επίσημα Mirrors</title>
+
+ &chap.eresources.www.inc;
+ </sect2>
+ </sect1>
+
+ <sect1 id="eresources-email">
+ <title>Διευθύνσεις Ηλεκτρονικού Ταχυδρομείου</title>
+
+ <para>Οι ακόλουθες ενώσεις χρηστών παρέχουν στα μέλη τους διευθύνσεις
+ ηλεκτρονικού ταχυδρομείου που σχετίζονται με το &os;. Ο διαχειριστής
+ που αναφέρεται παρακάτω, διατηρεί το δικαίωμα να ανακαλέσει την
+ διεύθυνση, αν γίνει κατάχρηση της με οποιοδήποτε τρόπο.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry>Τομέας</entry>
+ <entry>Υπηρεσίες</entry>
+ <entry>Ένωση Χρηστών</entry>
+ <entry>Διαχειριστής</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>ukug.uk.FreeBSD.org</entry>
+ <entry>Μόνο προώθηση</entry>
+ <entry><email>ukfreebsd@uk.FreeBSD.org</email></entry>
+ <entry>Lee Johnston
+ <email>lee@uk.FreeBSD.org</email></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect1>
+</appendix>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../appendix.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "appendix")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/filesystems/Makefile b/el_GR.ISO8859-7/books/handbook/filesystems/Makefile
new file mode 100644
index 0000000000..cb61bfe236
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/filesystems/Makefile
@@ -0,0 +1,18 @@
+#
+# Build the Handbook with just the content from this chapter.
+#
+# $FreeBSD$
+#
+# %SOURCE% en_US.ISO8859-1/books/handbook/filesystems/Makefile
+# %SRCID% 1.1
+#
+
+CHAPTERS= filesystems/chapter.sgml
+
+VPATH= ..
+
+MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
+
+DOC_PREFIX?= ${.CURDIR}/../../../..
+
+.include "../Makefile"
diff --git a/el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml b/el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml
new file mode 100644
index 0000000000..63c1dbcf30
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/filesystems/chapter.sgml
@@ -0,0 +1,667 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Συστήματα Αρχείων
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/filesystems/chapter.sgml
+ %SRCID% 1.10
+
+-->
+
+<chapter id="filesystems">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Υποστήριξη Συστημάτων Αρχείων</title>
+
+ <sect1 id="filesystems-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>File Systems</primary></indexterm>
+ <indexterm>
+ <primary>File Systems Support</primary>
+ <see>File Systems</see>
+ </indexterm>
+
+ <para>Τα συστήματα αρχείων αποτελούν αναπόσπαστο τμήμα κάθε λειτουργικού
+ συστήματος. Επιτρέπουν στους χρήστες να δημιουργούν και να αποθηκεύουν
+ αρχεία, παρέχουν πρόσβαση σε δεδομένα, και φυσικά αξιοποιούν τους
+ σκληρούς δίσκους. Διαφορετικά λειτουργικά συστήματα χρησιμοποιούν
+ συνήθως διαφορετικά εγγενή συστήματα αρχείων. Το σύστημα αρχείων του
+ &os; είναι το Fast File System ή <acronym>FFS</acronym>, το
+ οποίο προήλθε από το αρχικό σύστημα αρχείων του Unix&trade;, γνωστό
+ επίσης και ως <acronym>UFS</acronym>. Αυτό είναι και το εγγενές
+ σύστημα αρχείων του &os;, το οποίο χρησιμοποιείται στους σκληρούς
+ δίσκους και προσφέρει πρόσβαση στα δεδομένα.</para>
+
+ <para>Το &os; προσφέρει επίσης πληθώρα διαφορετικών συστημάτων αρχείων,
+ ώστε να παρέχει τοπική πρόσβαση σε δεδομένα που έχουν δημιουργηθεί από
+ άλλα λειτουργικά συστήματα, π.χ.&nbsp;δεδομένα που βρίσκονται σε τοπικά
+ <acronym>USB</acronym> αποθηκευτικά μέσα, οδηγούς flash, και σκληρούς
+ δίσκους. Υπάρχει επίσης υποστήριξη για άλλα, μη-εγγενή συστήματα
+ αρχείων, όπως το Extended File System (<acronym>EXT</acronym>) του
+ &linux; καθώς και το σύστημα Z File System (<acronym>ZFS</acronym>) της
+ &sun;.</para>
+
+ <para>Το &os; παρέχει διαφορετικό επίπεδο υποστήριξης για κάθε σύστημα
+ αρχείων. Για ορισμένα θα χρειαστεί να φορτωθεί κάποιο άρθρωμα στον
+ πυρήνα, ενώ για άλλα θα πρέπει να εγκατασταθούν κάποια εργαλεία.
+ Το κεφάλαιο αυτό έχει σχεδιαστεί να βοηθήσει τους χρήστες του &os; να
+ αποκτήσουν πρόσβαση σε άλλα συστήματα αρχείων στο σύστημα τους,
+ ξεκινώντας από το Ζ File System της &sun;.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα γνωρίζετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τη διαφορά μεταξύ των εγγενών και των υποστηριζόμενων
+ συστημάτων αρχείων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ποια συστήματα αρχείων υποστηρίζονται από το &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ενεργοποιήσετε, να ρυθμίσετε, να αποκτήσετε πρόσβαση και
+ να χρησιμοποιήσετε μη-εγγενή συστήματα αρχείων.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε βασικές έννοιες του &unix; και του &os;
+ (<xref linkend="basics">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τις βασικές διαδικασίες ρύθμισης και
+ εγκατάστασης προσαρμοσμένου πυρήνα
+ (<xref linkend="kernelconfig">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να αισθάνεστε άνετα με την εγκατάσταση εφαρμογών τρίτου
+ κατασκευαστή στο &os; (<xref linkend="ports">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τους δίσκους, τα μέσα
+ αποθήκευσης, και τα αντίστοιχα ονόματα συσκευών στο
+ &os; (<xref linkend="disks">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="filesystems-zfs">
+ <title>Το Σύστημα Αρχείων Z (ZFS)</title>
+
+ <para>Το σύστημα αρχείων Z, αναπτύχθηκε από την &sun;, και είναι μια νέα
+ τεχνολογία που σχεδιάστηκε για να παρέχει αποθήκευση μέσω της μεθόδου
+ pool. Αυτό σημαίνει ότι όλος ο ελεύθερος χώρος διατίθεται ως
+ απόθεμα, και διανέμεται δυναμικά σε κάθε σύστημα αρχείων ανάλογα με τις
+ ανάγκες αποθήκευσης δεδομένων. Έχει επίσης σχεδιαστεί για τη μέγιστη
+ ακεραιότητα δεδομένων και υποστηρίζει στιγμιότυπα (snapshots) δεδομένων,
+ πολλαπλά αντίγραφα και αθροίσματα ελέγχου δεδομένων (checksums). Έχει
+ ακόμα προστεθεί ένα νέο μοντέλο για τη διατήρηση αντιγράφων των
+ δεδομένων, γνωστό ως <acronym>RAID</acronym>-Z. Το μοντέλο
+ <acronym>RAID</acronym>-Z είναι παρόμοιο με το
+ <acronym>RAID</acronym>5 αλλά είναι σχεδιασμένο να παρέχει προστασία
+ των δεδομένων κατά την εγγραφή τους.</para>
+
+ <sect2>
+ <title>Βελτιστοποίηση του ZFS</title>
+
+ <para>Το υποσύστημα <acronym>ZFS</acronym> χρησιμοποιεί αρκετούς πόρους
+ του συστήματος. Βελτιστοποιώντας τις ρυθμίσεις του συστήματος σας, θα
+ επιτύχετε τη μέγιστη απόδοση στην καθημερινή χρήση. Καθώς το
+ <acronym>ZFS</acronym> είναι ακόμα σε πειραματικό στάδιο στο &os;,
+ αυτό ίσως αλλάξει μελλοντικά. Ωστόσο, για την ώρα, συνίσταται να
+ ακολουθήσετε τα παρακάτω βήματα:</para>
+
+ <sect3>
+ <title>Μνήμη</title>
+
+ <para>Το συνολικό μέγεθος μνήμης του συστήματος πρέπει να είναι
+ τουλάχιστον ένα gigabyte, ενώ το συνιστώμενο μέγεθος είναι δύο
+ gigabytes ή και περισσότερο. Σε όλα τα παραδείγματα που φαίνονται
+ εδώ, το σύστημα έχει ένα gigabyte μνήμης και έχουμε επίσης
+ βελτιστοποιήσει τις ρυθμίσεις του.</para>
+
+ <para>Ορισμένοι χρήστες φαίνεται να τα καταφέρνουν και με λιγότερο
+ από ένα gigabyte μνήμης, αλλά με τέτοιους περιορισμούς φυσικής
+ μνήμης, είναι αρκετά πιθανό να δημιουργηθεί panic κάτω από βαρύ
+ φορτίο εργασίας, εξαιτίας εξάντλησης της.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ρύθμιση του Πυρήνα</title>
+
+ <para>Συνίσταται να αφαιρέσετε τα προγράμματα οδήγησης και τις
+ επιλογές που δεν χρησιμοποιείτε από το αρχείο ρυθμίσεων του
+ πυρήνα. Καθώς οι περισσότεροι οδηγοί συσκευών διατίθενται επίσης
+ και σε μορφή αρθρωμάτων, μπορείτε απλά να τους φορτώσετε
+ χρησιμοποιώντας το αρχείο
+ <filename>/boot/loader.conf</filename>.</para>
+
+ <para>Οι χρήστες της αρχιτεκτονικής &i386; θα πρέπει να προσθέσουν την
+ παρακάτω επιλογή στο αρχείο ρυθμίσεων του πυρήνα τους, να τον
+ επαναμεταγλωττίσουν και να επανεκκινήσουν το σύστημα τους:</para>
+
+ <programlisting>options KVA_PAGES=512</programlisting>
+
+ <para>Η επιλογή αυτή θα διευρύνει την περιοχή διευθύνσεων του πυρήνα,
+ επιτρέποντας έτσι την αύξηση τιμής της ρυθμιστικής μεταβλητής
+ <varname>vm.kvm_size</varname> πέρα από το τρέχον όριο του
+ 1&nbsp;GB (2&nbsp;GB για πυρήνες <acronym>PAE</acronym>). Για να
+ βρείτε την καταλληλότερη τιμή για αυτή την επιλογή, διαιρέστε το
+ επιθυμητό μέγεθος της περιοχής διευθύνσεων με το τέσσερα (4). Στην
+ περίπτωση αυτή, έχουμε <literal>512</literal> για μέγεθος
+ 2&nbsp;GB.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ρυθμίσεις στις Μεταβλητές του Loader</title>
+
+ <para>Θα πρέπει να αυξηθεί η περιοχή διευθύνσεων
+ <devicename>kmem</devicename> σε όλες τις αρχιτεκτονικές του &os;.
+ Στο δοκιμαστικό μας σύστημα, με ένα gigabyte φυσικής μνήμης,
+ είχαμε επιτυχημένο αποτέλεσμα χρησιμοποιώντας τις ακόλουθες
+ επιλογές στο αρχείο <filename>/boot/loader.conf</filename> και
+ επανεκκινώντας το σύστημα μας:</para>
+
+ <programlisting>vm.kmem_size="330M"
+vm.kmem_size_max="330M"
+vfs.zfs.arc_max="40M"
+vfs.zfs.vdev.cache.size="5M"</programlisting>
+
+ <para>Για αναλυτικότερες ρυθμίσεις σχετικά με την βελτιστοποίηση του
+ ZFS, δείτε το <ulink
+ url="http://wiki.freebsd.org/ZFSTuningGuide"></ulink>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας το <acronym>ZFS</acronym></title>
+
+ <para>Υπάρχει ένας μηχανισμός εκκίνησης που επιτρέπει στο &os; να
+ προσαρτήσει <acronym>ZFS</acronym> pools κατά τη διάρκεια της
+ εκκίνησης του συστήματος. Για να τον ρυθμίσετε, εκτελέστε τις
+ ακόλουθες εντολές:</para>
+
+ <screen>&prompt.root; <userinput>echo 'zfs_enable="YES"' &gt;&gt; /etc/rc.conf</userinput>
+&prompt.root; <userinput>/etc/rc.d/zfs start</userinput></screen>
+
+ <para>Το υπόλοιπο αυτού του κειμένου υποθέτει ότι έχετε διαθέσιμους
+ τρεις <acronym>SCSI</acronym> δίσκους, και ότι τα ονόματα συσκευών
+ τους είναι <devicename><replaceable>da0</replaceable></devicename>,
+ <devicename><replaceable>da1</replaceable></devicename> και
+ <devicename><replaceable>da2</replaceable></devicename>.
+ Όσοι διαθέτουν δίσκους <acronym>IDE</acronym> θα
+ πρέπει να χρησιμοποιήσουν συσκευές του τύπου
+ <devicename><replaceable>ad</replaceable></devicename>
+ αντί για τις αντίστοιχες <acronym>SCSI</acronym>.</para>
+
+ <sect3>
+ <title>Pool με Ένα Μόνο Δίσκο</title>
+
+ <para>Για την δημιουργία ενός <acronym>ZFS</acronym> pool με ένα
+ μόνο δίσκο (χωρίς δυνατότητα ανοχής σφαλμάτων), χρησιμοποιήστε την
+ εντολή <command>zpool</command>:</para>
+
+ <screen>&prompt.root; <userinput>zpool create example /dev/da0</userinput></screen>
+
+ <para>Για να δείτε το νέο pool, εξετάστε την έξοδο της εντολής
+ <command>df</command>:</para>
+
+ <screen>&prompt.root; <userinput>df</userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/ad0s1a 2026030 235230 1628718 13% /
+devfs 1 1 0 100% /dev
+/dev/ad0s1d 54098308 1032846 48737598 2% /usr
+example 17547136 0 17547136 0% /example</screen>
+
+ <para>Η έξοδος αυτή δείχνει καθαρά ότι το <literal>example</literal>
+ pool όχι μόνο έχει δημιουργηθεί, αλλά έχει επίσης
+ <emphasis>προσαρτηθεί</emphasis> κιόλας. Είναι επίσης διαθέσιμο ως
+ κανονικό σύστημα αρχείων, μπορείτε να δημιουργήσετε αρχεία σε αυτό,
+ και άλλοι χρήστες μπορούν επίσης να το δουν, όπως φαίνεται στο
+ παρακάτω παράδειγμα:</para>
+
+ <screen>&prompt.root <userinput>cd /example</userinput>
+&prompt.root; <userinput>ls</userinput>
+&prompt.root; <userinput>touch testfile</userinput>
+&prompt.root; <userinput>ls -al</userinput>
+total 4
+drwxr-xr-x 2 root wheel 3 Aug 29 23:15 .
+drwxr-xr-x 21 root wheel 512 Aug 29 23:12 ..
+-rw-r--r-- 1 root wheel 0 Aug 29 23:15 testfile</screen>
+
+ <para>Δυστυχώς αυτό το pool δεν χρησιμοποιεί κάποιο από τα
+ πλεονεκτήματα του <acronym>ZFS</acronym>. Δημιουργήστε ένα σύστημα
+ αρχείων σε αυτό το pool και ενεργοποιήστε σε αυτό τη
+ συμπίεση:</para>
+
+ <screen>&prompt.root; <userinput>zfs create example/compressed</userinput>
+&prompt.root; <userinput>zfs set compression=gzip example/compressed</userinput></screen>
+
+ <para>Το σύστημα αρχείων <literal>example/compressed</literal>
+ είναι πλέον ένα συμπιεσμένο <acronym>ZFS</acronym> σύστημα.
+ Δοκιμάστε να αντιγράψετε μερικά μεγάλα αρχεία σε αυτό, απευθείας
+ στον κατάλογο
+ <filename class="directory">/example/compressed</filename>.</para>
+
+ <para>Μπορείτε τώρα να απενεργοποιήσετε τη συμπίεση γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>zfs set compression=off example/compressed</userinput></screen>
+
+ <para>Για να αποπροσαρτήσετε το σύστημα αρχείων, εκτελέστε την
+ ακόλουθη εντολή και επαληθεύστε το αποτέλεσμα μέσω του βοηθητικού
+ προγράμματος <command>df</command>:</para>
+
+ <screen>&prompt.root; <userinput>zfs umount example/compressed</userinput>
+&prompt.root; <userinput>df</userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/ad0s1a 2026030 235232 1628716 13% /
+devfs 1 1 0 100% /dev
+/dev/ad0s1d 54098308 1032864 48737580 2% /usr
+example 17547008 0 17547008 0% /example</screen>
+
+ <para>Προσαρτήστε ξανά το σύστημα αρχείων, ώστε να είναι και πάλι
+ προσβάσιμο, και επαληθεύστε το χρησιμοποιώντας όπως και πριν, την
+ εντολή <command>df</command>:</para>
+
+ <screen>&prompt.root; <userinput>zfs mount example/compressed</userinput>
+&prompt.root; <userinput>df</userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/ad0s1a 2026030 235234 1628714 13% /
+devfs 1 1 0 100% /dev
+/dev/ad0s1d 54098308 1032864 48737580 2% /usr
+example 17547008 0 17547008 0% /example
+example/compressed 17547008 0 17547008 0% /example/compressed</screen>
+
+ <para>Μπορείτε επίσης να δείτε το pool και το σύστημα αρχείων
+ εξετάζοντας την έξοδο της εντολής <command>mount</command>:</para>
+
+ <screen>&prompt.root; <userinput>mount</userinput>
+/dev/ad0s1a on / (ufs, local)
+devfs on /dev (devfs, local)
+/dev/ad0s1d on /usr (ufs, local, soft-updates)
+example on /example (zfs, local)
+example/data on /example/data (zfs, local)
+example/compressed on /example/compressed (zfs, local)</screen>
+
+ <para>Όπως παρατηρούμε, το σύστημα αρχείων <acronym>ZFS</acronym>
+ μπορεί να χρησιμοποιηθεί ως κοινό σύστημα αρχείων μετά τη
+ δημιουργία του. Ωστόσο, διαθέτει πολλές ακόμα λειτουργίες. Στο
+ παρακάτω παράδειγμα δημιουργούμε ένα νέο σύστημα αρχείων, το
+ <literal>data</literal>. θα αποθηκεύσουμε σημαντικά δεδομένα σε
+ αυτό, και έτσι το ρυθμίζουμε ώστε να κρατάει δύο αντίγραφα από
+ κάθε μπλοκ δεδομένων:</para>
+
+ <screen>&prompt.root; <userinput>zfs create example/data</userinput>
+&prompt.root; <userinput>zfs set copies=2 example/data</userinput></screen>
+
+ <para>Μπορούμε τώρα να δούμε τα δεδομένα και την κατανάλωση χώρου
+ δίνοντας ξανά την εντολή <command>df</command>:</para>
+
+ <screen>&prompt.root; <userinput>df</userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/ad0s1a 2026030 235234 1628714 13% /
+devfs 1 1 0 100% /dev
+/dev/ad0s1d 54098308 1032864 48737580 2% /usr
+example 17547008 0 17547008 0% /example
+example/compressed 17547008 0 17547008 0% /example/compressed
+example/data 17547008 0 17547008 0% /example/data</screen>
+
+ <para>Παρατηρήστε ότι κάθε σύστημα αρχείων στο pool δείχνει το ίδιο
+ μέγεθος διαθέσιμου χώρου. Αυτός είναι και ο λόγος που
+ χρησιμοποιούμε την εντολή <command>df</command> σε όλα τα
+ παραδείγματα, για να δείξουμε ότι τα συστήματα αρχείων
+ χρησιμοποιούν μόνο το χώρο που χρειάζονται και ότι όλα μοιράζονται
+ τον ίδιο χώρο (το κοινόχρηστο απόθεμα &mdash; pool). Στο σύστημα
+ αρχείων <acronym>ZFS</acronym> έννοιες όπως οι τόμοι (volumes) και
+ οι κατατμήσεις (partitions) δεν έχουν νόημα. Αντίθετα, πολλά
+ συστήματα αρχείων μοιράζονται τον ίδιο χώρο, το pool. Μπορείτε να
+ καταργήσετε το σύστημα αρχείων και κατόπιν το ίδιο το pool όταν
+ δεν τα χρειάζεστε πλέον:</para>
+
+ <screen>&prompt.root; <userinput>zfs destroy example/compressed</userinput>
+&prompt.root; <userinput>zfs destroy example/data</userinput>
+&prompt.root; <userinput>zpool destroy example</userinput></screen>
+
+ <para>Οι σκληροί δίσκοι με τον καιρό χαλάνε, είναι αναπόφευκτο.
+ Όταν ένας δίσκος χαλάσει, τα δεδομένα του χάνονται. Μια μέθοδος
+ για να αποφύγουμε την απώλεια δεδομένων εξαιτίας ενός χαλασμένου
+ δίσκου είναι να δημιουργήσουμε μια συστοιχία
+ <acronym>RAID</acronym>. Τα pools του <acronym>ZFS</acronym> έχουν
+ σχεδιασθεί ώστε να υποστηρίζουν αυτό το χαρακτηριστικό.
+ Η λειτουργία αυτή αναλύεται στην επόμενη ενότητα.</para>
+ </sect3>
+
+ <sect3>
+ <title><acronym>ZFS</acronym> RAID-Z</title>
+
+ <para>Όπως αναφέραμε προηγουμένως, η ενότητα αυτή προϋποθέτει ότι
+ χρησιμοποιούμε τρεις συσκευές
+ <acronym>SCSI</acronym> με ονόματα συσκευών
+ <devicename>da0</devicename>, <devicename>da1</devicename> και
+ <devicename>da2</devicename>. Για να δημιουργήσουμε ένα pool τύπου
+ <acronym>RAID</acronym>-Z, εκτελούμε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>zpool create storage raidz da0 da1 da2</userinput></screen>
+
+ <note>
+ <para>Η &sun; συνιστά να χρησιμοποιούνται από τρεις ως εννιά
+ συσκευές σε συστοιχίες τύπου <acronym>RAID</acronym>-Z.
+ Αν χρειάζεται να δημιουργήσετε ένα pool με περισσότερους από
+ δέκα δίσκους, είναι προτιμότερο να το χωρίσετε σε ομάδες από
+ μικρότερα <acronym>RAID</acronym>-Z pools. Αν διαθέτετε μόνο
+ δύο δίσκους αλλά χρειάζεστε την δυνατότητα ανοχής σφαλμάτων,
+ ίσως είναι καλύτερο να χρησιμοποιήσετε ένα
+ <acronym>ZFS</acronym> mirror. Δείτε τη σελίδα manual του
+ &man.zpool.8; για περισσότερες λεπτομέρειες.</para>
+ </note>
+
+ <para>Θα δημιουργηθεί το <literal>storage</literal> zpool. Μπορείτε
+ να επαληθεύσετε το αποτέλεσμα χρησιμοποιώντας, όπως και
+ προηγουμένως, τις εντολές &man.mount.8; και &man.df.1;. Θα
+ μπορούσαμε να χρησιμοποιήσουμε περισσότερους δίσκους, προσθέτοντας
+ τα ονόματα συσκευών τους στο τέλος της παραπάνω λίστας.
+ Δημιουργήστε ένα νέο σύστημα αρχείων στο pool, το οποίο θα
+ ονομάζεται <literal>home</literal> και όπου θα αποθηκεύονται τελικά
+ τα αρχεία των χρηστών:</para>
+
+ <screen>&prompt.root; <userinput>zfs create storage/home</userinput></screen>
+
+ <para>Μπορούμε τώρα να ενεργοποιήσουμε την συμπίεση και να κρατάμε
+ επιπλέον αντίγραφα των καταλόγων και των δεδομένων των χρηστών.
+ Όπως και προηγουμένως, μπορούμε να το επιτύχουμε χρησιμοποιώντας
+ τις παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>zfs set copies=2 storage/home</userinput>
+&prompt.root; <userinput>zfs set compression=gzip storage/home</userinput></screen>
+
+ <para>Για να γίνει αυτός ο νέος κατάλογος των χρηστών, αντιγράψτε τα
+ δεδομένα τους σε αυτόν και δημιουργήστε τους κατάλληλους
+ συμβολικούς δεσμούς:</para>
+
+ <screen>&prompt.root; <userinput>cp -rp /home/* /storage/home</userinput>
+&prompt.root; <userinput>rm -rf /home /usr/home</userinput>
+&prompt.root; <userinput>ln -s /storage/home /home</userinput>
+&prompt.root; <userinput>ln -s /storage/home /usr/home</userinput></screen>
+
+ <para>Τα δεδομένα των χρηστών θα αποθηκεύονται τώρα στο νέο σύστημα
+ αρχείων <filename class="directory">/storage/home</filename>.
+ Για να το επαληθεύσετε, δημιουργήστε ένα νέο χρήστη και εισέλθετε
+ στο σύστημα με το νέο λογαριασμό.</para>
+
+ <para>Δοκιμάστε να δημιουργήσετε ένα στιγμιότυπο (snapshot) στο
+ οποίο θα μπορείτε να επανέλθετε αργότερα:</para>
+
+ <screen>&prompt.root; <userinput>zfs snapshot storage/home@08-30-08</userinput></screen>
+
+ <para>Σημειώστε ότι η επιλογή δημιουργίας στιγμιότυπου λειτουργεί
+ μόνο σε πραγματικό σύστημα αρχείων, και όχι σε κάποιο μεμονωμένο
+ κατάλογο ή αρχείο. Ο χαρακτήρας <literal>@</literal>
+ χρησιμοποιείται ως διαχωριστικό μεταξύ του συστήματος αρχείων και
+ του ονόματος τόμου. Αν καταστραφεί ο κατάλογος δεδομένων κάποιου
+ χρήστη αποκαταστήστε τον με την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>zfs rollback storage/home@08-30-08</userinput></screen>
+
+ <para>Για να δείτε μια λίστα των διαθέσιμων στιγμιότυπων, εκτελέστε
+ την εντολή <command>ls</command> στον κατάλογο
+ <filename class="directory">.zfs/snapshot</filename> του συστήματος
+ αρχείων. Για παράδειγμα, για να δείτε το στιγμιότυπο που
+ δημιουργήσαμε προηγουμένως, εκτελέστε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>ls /storage/home/.zfs/snapshot</userinput></screen>
+
+ <para>Είναι δυνατόν να γράψετε κάποιο script που να δημιουργεί
+ μηνιαία στιγμιότυπα των δεδομένων των χρηστών. Ωστόσο, με την
+ πάροδο του χρόνου, τα στιγμιότυπα θα καταναλώσουν μεγάλο ποσοστό
+ του χώρου στο δίσκο. Μπορείτε να διαγράψετε το προηγούμενο
+ στιγμιότυπο χρησιμοποιώντας την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>zfs destroy storage/home@08-30-08</userinput></screen>
+
+ <para>Δεν υπάρχει λόγος, μετά από όλες αυτές τις δοκιμές, να
+ κρατήσουμε το <filename class="directory">/storage/home</filename>
+ στην παρούσα κατάσταση του. Μετατρέψτε το στο πραγματικό σύστημα
+ αρχείων <filename class="directory">/home</filename>:</para>
+
+ <screen>&prompt.root; <userinput>zfs set mountpoint=/home storage/home</userinput></screen>
+
+ <para>Χρησιμοποιώντας τις εντολές <command>df</command> και
+ <command>mount</command> θα δούμε ότι το σύστημα χειρίζεται πλέον
+ αυτό το σύστημα αρχείων ως το πραγματικό
+ <filename class="directory">/home</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mount</userinput>
+/dev/ad0s1a on / (ufs, local)
+devfs on /dev (devfs, local)
+/dev/ad0s1d on /usr (ufs, local, soft-updates)
+storage on /storage (zfs, local)
+storage/home on /home (zfs, local)
+&prompt.root; <userinput>df</userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/ad0s1a 2026030 235240 1628708 13% /
+devfs 1 1 0 100% /dev
+/dev/ad0s1d 54098308 1032826 48737618 2% /usr
+storage 26320512 0 26320512 0% /storage
+storage/home 26320512 0 26320512 0% /home</screen>
+
+ <para>Εδώ ολοκληρώνεται η ρύθμιση του <acronym>RAID</acronym>-Z.
+ Για να δέχεστε αναφορές κατάστασης σχετικά με τα συστήματα
+ αρχείων κατά τη νυκτερινή εκτέλεση του &man.periodic.8;, δώστε την
+ παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>echo 'daily_status_zfs_enable="YES"' &gt;&gt; /etc/periodic.conf</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>Ανάκτηση του <acronym>RAID</acronym>-Z</title>
+
+ <para>Κάθε λογισμικό <acronym>RAID</acronym> έχει μια μέθοδο για
+ επίβλεψη της κατάστασής του, και το <acronym>ZFS</acronym> δεν
+ αποτελεί εξαίρεση. Μπορείτε να δείτε την κατάσταση των συσκευών
+ του <acronym>RAID</acronym>-Z χρησιμοποιώντας την ακόλουθη
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>zpool status -x</userinput></screen>
+
+ <para>Αν όλα τα pools είναι σε υγιή κατάσταση, θα πάρετε το ακόλουθο
+ μήνυμα:</para>
+
+ <screen>all pools are healthy</screen>
+
+ <para>Αν υπάρχει κάποιο πρόβλημα, π.χ. κάποιος δίσκος έχει βγει
+ εκτός λειτουργίας, θα δείτε την περιγραφή της κατάστασης σε
+ ένα μήνυμα όπως το παρακάτω:</para>
+
+ <screen> pool: storage
+ state: DEGRADED
+status: One or more devices has been taken offline by the administrator.
+ Sufficient replicas exist for the pool to continue functioning in a
+ degraded state.
+action: Online the device using 'zpool online' or replace the device with
+ 'zpool replace'.
+ scrub: none requested
+config:
+
+ NAME STATE READ WRITE CKSUM
+ storage DEGRADED 0 0 0
+ raidz1 DEGRADED 0 0 0
+ da0 ONLINE 0 0 0
+ da1 OFFLINE 0 0 0
+ da2 ONLINE 0 0 0
+
+errors: No known data errors</screen>
+
+ <para>Το παραπάνω δείχνει ότι η συσκευή τέθηκε εκτός λειτουργίας
+ από τον διαχειριστή. Αυτό είναι αλήθεια για το συγκεκριμένο
+ παράδειγμα. Για να τεθεί ο δίσκος εκτός, χρησιμοποιήθηκε η
+ παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>zpool offline storage da1</userinput></screen>
+
+ <para>Μπορούμε τώρα να αντικαταστήσουμε το δίσκο
+ <devicename>da1</devicename> μετά την απενεργοποίηση του
+ συστήματος. Όταν το σύστημα επανέλθει σε λειτουργία, μπορούμε να
+ χρησιμοποιήσουμε την ακόλουθη εντολή για να ενημερώσουμε το
+ σύστημα για την αντικατάσταση του δίσκου:</para>
+
+ <screen>&prompt.root; <userinput>zpool replace storage da1</userinput></screen>
+
+ <para>Από εδώ, μπορούμε να ελέγξουμε ξανά την κατάσταση, αυτή τη
+ φορά χωρίς την επιλογή <option>-x</option>:</para>
+
+ <screen>&prompt.root; <userinput>zpool status storage</userinput>
+ pool: storage
+ state: ONLINE
+ scrub: resilver completed with 0 errors on Sat Aug 30 19:44:11 2008
+config:
+
+ NAME STATE READ WRITE CKSUM
+ storage ONLINE 0 0 0
+ raidz1 ONLINE 0 0 0
+ da0 ONLINE 0 0 0
+ da1 ONLINE 0 0 0
+ da2 ONLINE 0 0 0
+
+errors: No known data errors</screen>
+
+ <para>Όπως φαίνεται στο παράδειγμα, τα πάντα φαίνεται να λειτουργούν
+ φυσιολογικά.</para>
+ </sect3>
+
+ <sect3>
+ <title>Επαλήθευση Δεδομένων</title>
+
+ <para>Όπως αναφέραμε προηγουμένως, το <acronym>ZFS</acronym>
+ χρησιμοποιεί <literal>checksums</literal> (αθροίσματα ελέγχου) για
+ να επαληθεύσει την ακεραιότητα των αποθηκευμένων δεδομένων.
+ Τα αθροίσματα ελέγχου ενεργοποιούνται αυτόματα κατά την δημιουργία
+ των συστημάτων αρχείων, και μπορούν να απενεργοποιηθούν μέσω της
+ επόμενης εντολής:</para>
+
+ <screen>&prompt.root; <userinput>zfs set checksum=off storage/home</userinput></screen>
+
+ <para>Αυτό δεν είναι γενικά καλή ιδέα, καθώς τα checksums
+ καταλαμβάνουν ελάχιστο αποθηκευτικό χώρο, και είναι πολύ πιο
+ χρήσιμο να τα έχουμε ενεργοποιημένα. Επίσης δεν φαίνεται να
+ προκαλούν κάποια σημαντική καθυστέρηση ή επιβάρυνση. Με τα
+ checksums ενεργοποιημένα, μπορούμε να ζητήσουμε από το
+ <acronym>ZFS</acronym> να ελέγξει την ακεραιότητα των δεδομένων
+ χρησιμοποιώντας τα για επαλήθευση. Η διαδικασία αυτή είναι
+ γνωστή ως <quote>scrubbing.</quote> Για να ελέγξετε την
+ ακεραιότητα δεδομένων του pool <literal>storage</literal>,
+ χρησιμοποιήστε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>zpool scrub storage</userinput></screen>
+
+ <para>Η διαδικασία αυτή μπορεί να πάρει αρκετή ώρα, ανάλογα με την
+ ποσότητα των αποθηκευμένων δεδομένων. Επίσης χρησιμοποιεί πάρα
+ πολύ το δίσκο (<acronym>I/O</acronym>), τόσο ώστε σε κάθε
+ δεδομένη στιγμή μπορεί να εκτελείται μόνο μια τέτοια διαδικασία.
+ Μετά την ολοκλήρωση του scrub, θα ανανεωθεί και η αναφορά
+ κατάστασης, την οποία μπορείτε να δείτε ζητώντας την με την
+ παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>zpool status storage</userinput>
+ pool: storage
+ state: ONLINE
+ scrub: scrub completed with 0 errors on Sat Aug 30 19:57:37 2008
+config:
+
+ NAME STATE READ WRITE CKSUM
+ storage ONLINE 0 0 0
+ raidz1 ONLINE 0 0 0
+ da0 ONLINE 0 0 0
+ da1 ONLINE 0 0 0
+ da2 ONLINE 0 0 0
+
+errors: No known data errors</screen>
+
+ <para>Στο παράδειγμα μας εμφανίζεται και η χρονική στιγμή που
+ ολοκληρώθηκε η εντολή scrub. Η δυνατότητα αυτή μας εξασφαλίζει
+ ακεραιότητα δεδομένων σε μεγάλο βάθος χρόνου.</para>
+
+ <para>Υπάρχουν πολλές ακόμα επιλογές για το σύστημα αρχείων Ζ. Δείτε
+ τις σελίδες manual &man.zfs.8; και &man.zpool.8;.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+
+ <!--
+ XXXTR: stub sections (added later, as needed, as desire,
+ after I get opinions from -doc people):
+
+ Still need to discuss native and foreign file systems.
+
+ <sect1>
+ <title>Device File System</title>
+ </sect1>
+
+ <sect1>
+ <title>DOS and NTFS File Systems</title>
+ <para>This is a good section for those who transfer files, using
+ USB devices, from Windows to FreeBSD and vice-versa. My camera,
+ and many other cameras I have seen default to using FAT16. There
+ is (was?) a kde utility, I think called kamera, that could be used
+ to access camera devices. A section on this would be useful.</para>
+
+ <para>XXXTR: Though! The disks chapter, covers a bit of this and
+ devfs under it's USB devices. It leaves a lot to be desired though,
+ see:
+http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/usb-disks.html
+ It may be better to flesh out that section a bit more. Add the
+ word "camera" to it so that others can easily notice.</para>
+ </sect1>
+
+ <sect1>
+ <title>Linux EXT File System</title>
+
+ <para>Probably NOT as useful as the other two, but it requires
+ knowledge of the existence of the tools. Which are hidden in
+ the ports collection. Most Linux guys would probably only use
+ Linux, BSD guys would be smarter and use NFS.</para>
+ </sect1>
+
+ <sect1>
+ <title>HFS</title>
+
+ <para>I think this is the file system used on Apple OSX. There are
+ tools in the ports collection, and with Apple being a big
+ FreeBSD supporter and user of our technologies, surely there
+ is enough cross over to cover this?</para>
+ </sect1>
+ -->
+
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/firewalls/chapter.sgml b/el_GR.ISO8859-7/books/handbook/firewalls/chapter.sgml
new file mode 100644
index 0000000000..6aa5455713
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/firewalls/chapter.sgml
@@ -0,0 +1,3557 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Firewalls
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/firewalls/chapter.sgml
+ %SRCID% 1.97
+
+-->
+
+<chapter id="firewalls">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Joseph J.</firstname>
+ <surname>Barbish</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Brad</firstname>
+ <surname>Davis</surname>
+ <contrib>Μετατράπηκε σε SGML και ανανεώθηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Firewalls</title>
+
+ <indexterm><primary>firewall</primary></indexterm>
+
+ <indexterm>
+ <primary>ασφάλεια</primary>
+ <secondary>firewalls</secondary>
+ </indexterm>
+
+ <sect1 id="firewalls-intro">
+ <title>Σύνοψη</title>
+
+ <para>Το firewall (τείχος προστασίας) καθιστά δυνατό το φιλτράρισμα της
+ εισερχόμενης και εξερχόμενης κίνησης που διέρχεται από το σύστημα σας.
+ Ένα firewall μπορεί να χρησιμοποιεί ένα ή περισσότερα σετ
+ <quote>κανόνων</quote> για να επιθεωρεί τα πακέτα κατά την είσοδο ή
+ έξοδο τους από μια δικτυακή σύνδεση, και να τα επιτρέπει ή να τα
+ απορρίπτει. Οι κανόνες του firewall μπορούν να ελέγχουν ένα ή
+ περισσότερα χαρακτηριστικά των πακέτων, συμπεριλαμβανομένων μεταξύ άλλων
+ και του τύπου του πρωτοκόλλου, καθώς και την διεύθυνση ή/και θύρα
+ (port) της αφετηρίας ή του προορισμού.</para>
+
+ <para>Τα firewalls μπορούν να ενισχύσουν σημαντικά την ασφάλεια ενός
+ κόμβου ή ενός δικτύου. Μπορούν να χρησιμοποιηθούν για μία ή
+ περισσότερες από τις ακόλουθες λειτουργίες:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να προστατεύουν και να απομονώνουν τις εφαρμογές, τις υπηρεσίες
+ και τα μηχανήματα του εσωτερικού σας δικτύου από ανεπιθύμητη κίνηση
+ που προέρχεται από το Internet.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να περιορίζουν ή να αποκλείουν την πρόσβαση μηχανημάτων του
+ εσωτερικού δικτύου σε υπηρεσίες του Internet.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να υποστηρίζουν μετάφραση δικτυακών διευθύνσεων
+ (<acronym>NAT</acronym>), η οποία επιτρέπει στο εσωτερικό σας
+ δίκτυο να χρησιμοποιεί ιδιωτικές <acronym>IP</acronym> διευθύνσεις
+ και να μοιράζεται μία μοναδική σύνδεση με το Internet (είτε μέσω
+ μίας μοναδικής δημόσιας <acronym>IP</acronym> διεύθυνσης, είτε μέσω
+ ενός πλήθους δημοσίων διευθύνσεων που ανατίθενται αυτόματα).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να δημιουργήσετε σωστούς κανόνες φιλτραρίσματος
+ πακέτων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τους διάφορους τύπους firewall που υπάρχουν στο &os; και τις
+ διαφορές τους.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε και να χρησιμοποιήσετε το
+ <application>PF</application> firewall του OpenBSD.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε και να χρησιμοποιήσετε το
+ <application>IPFILTER</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε και να χρησιμοποιήσετε το
+ <application>IPFW</application>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε βασικές αρχές του &os; και του Internet.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="firewalls-concepts">
+ <title>Βασικές Έννοιες των Firewalls</title>
+
+ <indexterm>
+ <primary>firewall</primary>
+ <secondary>rulesets</secondary>
+ </indexterm>
+
+ <para>Υπάρχουν δύο βασικοί τρόποι για τη δημιουργία κανόνων σε ένα
+ firewall: ο <quote>inclusive</quote> και ο <quote>exclusive</quote>.
+ Ένα exclusive firewall επιτρέπει τη διέλευση όλης της κίνησης, εκτός
+ από αυτή που ταιριάζει με τους κανόνες του. Ένα inclusive firewall
+ κάνει το ανάποδο. Επιτρέπει μόνο τη διέλευση της κίνησης που ταιριάζει
+ με τους κανόνες του, και αποκλείει οτιδήποτε άλλο.</para>
+
+ <para>Τα inclusive firewalls προσφέρουν πολύ καλύτερο έλεγχο της
+ εξερχόμενης κίνησης και για το λόγο αυτό είναι καλύτερα για συστήματα
+ που προσφέρουν υπηρεσίες στο δημόσιο Internet. Ελέγχουν επίσης και
+ τα πακέτα που προέρχονται από το δημόσιο Internet με προορισμό το
+ ιδιωτικό σας δίκτυο. Από προεπιλογή, όλη η κίνηση που δεν ταιριάζει
+ με τους κανόνες απορρίπτεται και καταγράφεται. Τα inclusive firewalls
+ είναι γενικά ασφαλέστερα από τα exclusive, καθώς μειώνουν σημαντικά
+ την πιθανότητα διέλευσης ανεπιθύμητης κίνησης μέσα από αυτά.</para>
+
+ <note>
+ <para>Εκτός και αν αναφέρεται διαφορετικά, όλα τα παραδείγματα
+ ρυθμίσεων και κανόνων που φαίνονται σε αυτό το κεφάλαιο, δημιουργούν
+ inclusive firewalls.</para>
+ </note>
+
+ <para>Η ασφάλεια μπορεί να γίνει ακόμα ισχυρότερη με τη χρήση ενός
+ <quote>stateful firewall</quote>. Αυτός ο τύπος firewall αποθηκεύει
+ την κατάσταση των συνδέσεων που μεταφέρουν δεδομένα μέσα από αυτό, και
+ επιτρέπει μόνο την κίνηση που είτε ταιριάζει με μια από τις υπάρχουσες
+ συνδέσεις, ή που ξεκινά μια νέα σύνδεση. Το μειονέκτημα ενός stateful
+ firewall είναι ότι μπορεί να είναι ευάλωτο σε επιθέσεις Denial of
+ Service (Άρνησης Υπηρεσίας, <acronym>DoS</acronym>) αν δεχθεί
+ ταυτόχρονα πολλές αιτήσεις για άνοιγμα νέων συνδέσεων σε μικρό χρονικό
+ διάστημα. Με τα περισσότερα firewalls, είναι δυνατόν να γίνει
+ συνδυασμός και των δύο συμπεριφορών (τόσο stateful όσο και μη-stateful)
+ ώστε να δημιουργηθεί το βέλτιστο firewall για την συγκεκριμένη
+ χρήση.</para>
+ </sect1>
+
+ <sect1 id="firewalls-apps">
+ <title>Προγράμματα Firewall</title>
+
+ <para>Το &os; έχει τρία διαφορετικά προγράμματα firewall ενσωματωμένα στο
+ βασικό σύστημα. Είναι τα: <emphasis>IPFILTER</emphasis> (γνωστό επίσης
+ και ως <acronym>IPF</acronym>), το <emphasis>IPFIREWALL</emphasis>
+ (γνωστό επίσης και ως <acronym>IPFW</acronym>), και το
+ <emphasis>PacketFilter</emphasis> του <emphasis>OpenBSD</emphasis>
+ (γνωστό επίσης και ως <acronym>PF</acronym>). Το &os; ενσωματώνει
+ επίσης δύο προγράμματα για διαμόρφωση κυκλοφορίας (traffic shaping,
+ έλεγχος του διαθέσιμου εύρους ζώνης): το &man.altq.4; και το
+ &man.dummynet.4;. Το Dummynet είναι κατά παράδοση στενά συνδεμένο με
+ το <acronym>IPFW</acronym>, και το <acronym>ALTQ</acronym> με το
+ <acronym>PF</acronym>. Η διαμόρφωση κυκλοφορίας για το IPFILTER μπορεί
+ τη δεδομένη στιγμή να γίνει με το IPFILTER για το NAT και το
+ φιλτράρισμα και με το <acronym>IPFW</acronym> σε συνδυασμό με το
+ &man.dummynet.4; <emphasis>ή</emphasis> χρησιμοποιώντας το
+ <acronym>PF</acronym> σε συνδυασμό με το <acronym>ALTQ</acronym>.
+ Τόσο το IPFW όσο και το PF χρησιμοποιούν κανόνες για να ελέγξουν την
+ κίνηση των πακέτων από και προς το σύστημά σας, αν και διαθέτουν
+ διαφορετικούς τρόπους για να το επιτύχουν, και οι κανόνες τους
+ χρησιμοποιούν διαφορετική σύνταξη.</para>
+
+ <para>Ο λόγος για τον οποίο το &os; διαθέτει πολλαπλά firewall, είναι ότι
+ διαφορετικοί άνθρωποι έχουν διαφορετικές ανάγκες και προτιμήσεις. Δεν
+ υπάρχει ένα και μοναδικό firewall που να είναι το καλύτερο.</para>
+
+ <para>Ο συγγραφέας προτιμά το IPFILTER, καθώς οι κανόνες τύπου stateful
+ που διαθέτει είναι λιγότερο πολύπλοκοι όταν χρησιμοποιούνται σε ένα
+ περιβάλλον <acronym>NAT</acronym>, ενώ διαθέτει και ενσωματωμένο ftp
+ proxy το οποίο τους απλοποιεί ακόμα περισσότερο, επιτρέποντας ασφαλή
+ σύνδεση σε εξωτερικούς εξυπηρετητές FTP.</para>
+
+ <para>Καθώς όλα τα firewall βασίζονται στην επιθεώρηση τιμών ελέγχου των
+ πακέτων, ο διαχειριστής που πρόκειται να δημιουργήσει τους κανόνες
+ πρέπει να κατανοεί τον τρόπο λειτουργίας του <acronym>TCP/IP</acronym>,
+ το ρόλο των διαφόρων τιμών στα πεδία ελέγχου των πακέτων και πως
+ χρησιμοποιούνται στην ανταλλαγή πληροφοριών σε μια συνηθισμένη
+ συνεδρία. Για περισσότερες λεπτομέρειες, διαβάστε το <ulink
+ url="http://www.ipprimer.com/overview.cfm"></ulink>.</para>
+ </sect1>
+
+ <sect1 id="firewalls-pf">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>John</firstname>
+ <surname>Ferrell</surname>
+ <contrib>Αναθεωρήθηκε και ενημερώθηκε από τον </contrib>
+ <!-- 24 March 2008 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Το Packet Filter (PF) και το <acronym>ALTQ</acronym> του
+ OpenBSD</title>
+
+ <indexterm>
+ <primary>firewall</primary>
+ <secondary>PF</secondary>
+ </indexterm>
+
+ <para>Τον Ιούλιο του 2003, η εφαρμογή firewall του OpenBSD (γνωστή ως
+ <acronym>PF</acronym>) μεταφέρθηκε στο &os; και έγινε διαθέσιμη στην
+ Συλλογή των Ports. Το &os;&nbsp;5.3 που κυκλοφόρησε το 2004, ήταν η
+ πρώτη επίσημη έκδοση η οποία περιείχε το <acronym>PF</acronym> ως
+ τμήμα του βασικού πλέον συστήματος. Το <acronym>PF</acronym> είναι
+ ένα ολοκληρωμένο firewall, με πλήθος χαρακτηριστικών, το οποίο επίσης
+ διαθέτει προαιρετικά υποστήριξη για το <acronym>ALTQ</acronym>
+ (Alternate Queuing). Το <acronym>ALTQ</acronym> προσφέρει υπηρεσίες
+ Διασφάλισης Ποιότητας (Quality of Service,
+ <acronym>QoS</acronym>).</para>
+
+ <para>Το OpenBSD&nbsp;Project κάνει εξαιρετική δουλειά στη συντήρηση του
+ <ulink url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink>. Για το
+ λόγο αυτό, η παρούσα ενότητα του Εγχειριδίου εστιάζει κυρίως στις
+ ιδιαιτερότητες του <acronym>PF</acronym> όσο αφορά το &os;, ενώ παρέχει
+ και μερικές γενικές πληροφορίες σχετικά με τη χρήση του. Για πιο
+ λεπτομερείς πληροφορίες σχετικά με τη χρήση του <acronym>PF</acronym>,
+ παρακαλούμε διαβάστε το <ulink
+ url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink>.</para>
+
+ <para>Περισσότερες πληροφορίες σχετικά με το <acronym>PF</acronym> στο
+ &os; μπορείτε να βρείτε στο <ulink
+ url="http://pf4freebsd.love2party.net/"></ulink>.</para>
+
+ <sect2>
+ <title>Χρησιμοποιώντας τα Αρθρώματα Πυρήνα για το PF</title>
+
+ <para>Για να φορτώσετε το άρθρωμα πυρήνα για το PF, προσθέστε την
+ παρακάτω γραμμή στο στο <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>pf_enable="YES"</programlisting>
+
+ <para>Εκτελέστε έπειτα το script εκκίνησης για να φορτώσετε το
+ άρθρωμα:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/pf start</userinput></screen>
+
+ <para>Σημειώστε ότι το άρθρωμα PF δεν πρόκειται να φορτωθεί αν δεν
+ βρει το καθορισμένο αρχείο κανόνων. Το προεπιλεγμένο αρχείο είναι
+ το <filename>/etc/pf.conf</filename>. Αν το αρχείο κανόνων βρίσκεται
+ σε κάποια άλλη τοποθεσία, μπορείτε να την καθορίσετε προσθέτοντας
+ μια γραμμή όπως την παρακάτω στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>pf_rules="<replaceable>/path/to/pf.conf</replaceable>"</programlisting>
+
+ <para>Μπορείτε να βρείτε ένα παράδειγμα του αρχείου
+ <filename>pf.conf</filename> στον κατάλογο <filename
+ class="directory">/usr/share/examples/pf</filename></para>
+
+ <para>Το άρθρωμα <acronym>PF</acronym> μπορεί επίσης να φορτωθεί
+ χειροκίνητα από την γραμμή εντολών:</para>
+
+ <screen>&prompt.root; <userinput>kldload pf.ko</userinput></screen>
+
+ <para>Η υποστήριξης καταγραφής του PF παρέχεται από το άρθρωμα
+ <literal>pflog.ko</literal> και μπορείτε να την φορτώσετε
+ προσθέτοντας την παρακάτω γραμμή στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>pflog_enable="YES"</programlisting>
+
+ <para>Εκτελέστε έπειτα το script εκκίνησης για να φορτώσετε το
+ άρθρωμα:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/pflog start</userinput></screen>
+
+ <para>Αν χρειάζεστε κάποιο από τα προχωρημένα χαρακτηριστικά του
+ <acronym>PF</acronym>, θα πρέπει να μεταγλωττίσετε την υποστήριξη
+ για το <acronym>PF</acronym> απευθείας μέσα στον πυρήνα.</para>
+ </sect2>
+
+ <sect2>
+ <title>Επιλογές του PF για τον Πυρήνα</title>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>device pf</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>device pflog</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>device pfsync</secondary>
+ </indexterm>
+
+ <para>Αν και δεν είναι απαραίτητο να μεταγλωττίσετε την υποστήριξη
+ <acronym>PF</acronym> μέσα στον πυρήνα του &os;, ίσως να θέλετε να
+ χρησιμοποιήσετε ένα από τα προχωρημένα χαρακτηριστικά του PF το
+ οποίο δεν περιλαμβάνεται στο άρθρωμα του πυρήνα: το &man.pfsync.4;.
+ Πρόκειται για μια ψευδο-συσκευή η οποία αποκαλύπτει συγκεκριμένες
+ αλλαγές στον πίνακα καταστάσεων που χρησιμοποιείται από το
+ <acronym>PF</acronym>. Μπορεί να συνδυαστεί με το &man.carp.4; για
+ να δημιουργηθούν με το <acronym>PF</acronym> firewalls με δυνατότητα
+ αυτόματης αλλαγής σε περίπτωση αποτυχίας (failover). Περισσότερες
+ πληροφορίες σχετικά με το <acronym>CARP</acronym> μπορείτε να βρείτε
+ στο <xref linkend="carp"> του Εγχειριδίου.</para>
+
+ <para>Μπορείτε να δείτε όλες τις επιλογές πυρήνα για το
+ <acronym>PF</acronym> στο αρχείο
+ <filename>/usr/src/sys/conf/NOTES</filename>. Οι επιλογές φαίνονται
+ επίσης παρακάτω:</para>
+
+ <programlisting>device pf
+device pflog
+device pfsync</programlisting>
+
+ <para>Η επιλογή <literal>device pf</literal> ενεργοποιεί την υποστήριξη
+ για το firewall <quote>Packet Filter</quote> (&man.pf.4;).</para>
+
+ <para>Η επιλογή <literal>device pflog</literal> ενεργοποιεί την
+ προαιρετική ψευδο-δικτυακή συσκευή &man.pflog.4; που μπορεί να
+ χρησιμοποιηθεί για την καταγραφή της κίνησης σε ένα &man.bpf.4;
+ descriptor. Ο δαίμονας &man.pflogd.8; μπορεί να αποθηκεύσει την
+ καταγραφή αυτή στο σκληρό δίσκο.</para>
+
+ <para>Η επιλογή <literal>device pfsync</literal> ενεργοποιεί την
+ προαιρετική ψευδό-δικτυακή συσκευή &man.pfsync.4; η οποία
+ χρησιμοποιείται για να ανιχνεύει
+ <quote>αλλαγές κατάστασης</quote>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Επιλογές στο rc.conf</title>
+
+ <para>Το <acronym>PF</acronym> και το &man.pflog.4; μπορούν να
+ ρυθμιστούν κατά την εκκίνηση με τις παρακάτω καταχωρίσεις στο
+ &man.rc.conf.5;:</para>
+
+ <programlisting>pf_enable="YES" # Enable PF (load module if required)
+pf_rules="/etc/pf.conf" # rules definition file for pf
+pf_flags="" # additional flags for pfctl startup
+pflog_enable="YES" # start pflogd(8)
+pflog_logfile="/var/log/pflog" # where pflogd should store the logfile
+pflog_flags="" # additional flags for pflogd startup</programlisting>
+
+ <para>Αν πίσω από αυτό το firewall υπάρχει κάποιο τοπικό δίκτυο (LAN)
+ προς το οποίο επιθυμείτε να προωθήσετε πακέτα, ή αν θέλετε να
+ χρησιμοποιήσετε NAT, θα χρειαστείτε επίσης και την παρακάτω
+ επιλογή:</para>
+
+ <programlisting>gateway_enable="YES" # Enable as LAN gateway</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Δημιουργία Κανόνων Φιλτραρίσματος</title>
+
+ <para>Το <acronym>PF</acronym> διαβάζει τις ρυθμίσεις του από το
+ &man.pf.conf.5; (η προεπιλεγμένη τοποθεσία είναι στο
+ <filename>/etc/pf.conf</filename>) και τροποποιεί, απορρίπτει ή
+ αποδέχεται πακέτα σύμφωνα με τους κανόνες και τους ορισμούς που
+ περιέχονται σε αυτό. Η εγκατάσταση του &os; περιλαμβάνει αρκετά
+ υποδείγματα αρχείων ρύθμισης, στην τοποθεσία
+ <filename>/usr/share/examples/pf/</filename>. Παρακαλούμε να
+ διαβάσετε το <ulink
+ url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink> για πλήρη
+ ανάλυση των κανόνων του <acronym>PF</acronym>.</para>
+
+ <warning>
+ <para>Καθώς διαβάζετε το <ulink
+ url="http://www.openbsd.org/faq/pf/">PF FAQ</ulink>,
+ να έχετε υπόψη σας ότι διαφορετικές εκδόσεις του &os; περιέχουν
+ διαφορετικές εκδόσεις του PF. Τη δεδομένη στιγμή, το
+ &os;&nbsp;8.<replaceable>X</replaceable> και οι προηγούμενες
+ εκδόσεις χρησιμοποιούν την ίδια έκδοση του <acronym>PF</acronym>
+ που χρησιμοποιεί και το OpenBSD&nbsp;4.1.
+ Το &os;&nbsp;9.<replaceable>X</replaceable> και νεώτερες
+ εκδόσεις χρησιμοποιούν την ίδια έκδοση του
+ <acronym>PF</acronym> με το OpenBSD&nbsp;4.5.</para>
+ </warning>
+
+ <para>Η &a.pf; είναι ένα καλό μέρος για να κάνετε ερωτήσεις
+ σχετικές με τη ρύθμιση και τη λειτουργία του <acronym>PF</acronym>
+ firewall. Μη ξεχάσετε να ελέγξετε τα αρχεία της λίστας πριν
+ ξεκινήσετε τις ερωτήσεις!</para>
+ </sect2>
+
+ <sect2>
+ <title>Δουλεύοντας με το PF</title>
+
+ <para>Χρησιμοποιήστε το &man.pfctl.8; για να ελέγξετε το
+ <acronym>PF</acronym>. Παρακάτω θα βρείτε κάποιες χρήσιμες εντολές
+ (βεβαιωθείτε ότι έχετε διαβάσει τη σελίδα manual του &man.pfctl.8; για
+ να δείτε όλες τις διαθέσιμες επιλογές):</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Εντολή</entry>
+ <entry>Σκοπός</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><command>pfctl <option>-e</option></command></entry>
+ <entry>Ενεργοποίηση του PF</entry>
+ </row>
+
+ <row>
+ <entry><command>pfctl <option>-d</option></command></entry>
+ <entry>Απενεργοποίηση του PF</entry>
+ </row>
+
+ <row>
+ <entry><command>pfctl <option>-F</option> all <option>-f</option> /etc/pf.conf</command></entry>
+ <entry>Διαγραφή όλων των κανόνων (nat, filter, state, table,
+ κ.λ.π.) και εκ νέου ανάγνωση από το αρχείο
+ <filename>/etc/pf.conf</filename></entry>
+ </row>
+
+ <row>
+ <entry><command>pfctl <option>-s</option> [ rules | nat | state ]</command></entry>
+ <entry>Εκτύπωση αναφοράς σχετικά με τους κανόνες του φίλτρου,
+ του NAT, ή του πίνακα κατάστασης</entry>
+ </row>
+
+ <row>
+ <entry><command>pfctl <option>-vnf</option> /etc/pf.conf</command></entry>
+ <entry>Ελέγχει το <filename>/etc/pf.conf</filename> για λάθη,
+ αλλά δεν φορτώνει τους κανόνες</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>Ενεργοποίηση του <acronym>ALTQ</acronym></title>
+
+ <para>Το <acronym>ALTQ</acronym> διατίθεται μόνο αν μεταγλωττίσετε
+ απευθείας την υποστήριξη του μέσα στον πυρήνα του &os;.
+ Το <acronym>ALTQ</acronym> δεν υποστηρίζεται από όλα τα προγράμματα
+ οδήγησης καρτών δικτύου. Παρακαλούμε δείτε τη σελίδα manual του
+ &man.altq.4; για τη λίστα των οδηγών που υποστηρίζονται στην έκδοση
+ του &os; που διαθέτετε.</para>
+
+ <para>Οι παρακάτω επιλογές του πυρήνα ενεργοποιούν το
+ <acronym>ALTQ</acronym> και παρέχουν επιπρόσθετες λειτουργίες:</para>
+
+ <programlisting>options ALTQ
+options ALTQ_CBQ # Class Bases Queuing (CBQ)
+options ALTQ_RED # Random Early Detection (RED)
+options ALTQ_RIO # RED In/Out
+options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC)
+options ALTQ_PRIQ # Priority Queuing (PRIQ)
+options ALTQ_NOPCC # Required for SMP build</programlisting>
+
+ <para>Η γραμμή <literal>options ALTQ</literal> ενεργοποιεί το πλαίσιο
+ λειτουργιών <acronym>ALTQ</acronym>.</para>
+
+ <para>Η γραμμή <literal>options ALTQ_CBQ</literal> ενεργοποιεί το
+ <emphasis>Class Based Queuing</emphasis> (<acronym>CBQ</acronym>).
+ Το <acronym>CBQ</acronym> σας επιτρέπει να χωρίσετε το εύρος ζώνης
+ μιας σύνδεσης σε διαφορετικές κλάσεις ή ουρές, ώστε να δίνονται
+ προτεραιότητες στην κίνηση ανάλογα με τους κανόνες του φίλτρου.</para>
+
+ <para>Η γραμμή <literal>options ALTQ_RED</literal> ενεργοποιεί το
+ <emphasis>Random Early Detection</emphasis> (<acronym>RED</acronym>).
+ Το <acronym>RED</acronym> χρησιμοποιείται για να αποφευχθεί η
+ συμφόρηση του δικτύου. Για το σκοπό αυτό, το <acronym>RED</acronym>
+ μετράει το μήκος της ουράς και το συγκρίνει με το μέγιστο και
+ ελάχιστο όριο της. Αν η ουρά είναι πάνω από το μέγιστο, όλα
+ τα νέα πακέτα θα απορρίπτονται. Σύμφωνα και με το όνομα του, το
+ <acronym>RED</acronym> απορρίπτει πακέτα από διάφορες συνδέσεις με
+ τυχαίο τρόπο.</para>
+
+ <para>Η γραμμή <literal>options ALTQ_RIO</literal> ενεργοποιεί το
+ <emphasis>Random Early Detection In and Out</emphasis>.</para>
+
+ <para>Η γραμμή <literal>options ALTQ_HFSC</literal> ενεργοποιεί το
+ <emphasis>Hierarchical Fair Service Curve Packet Scheduler</emphasis>.
+ Για περισσότερες πληροφορίες σχετικά με το <acronym>HFSC</acronym>
+ δείτε: <ulink
+ url="http://www-2.cs.cmu.edu/~hzhang/HFSC/main.html"></ulink>.</para>
+
+ <para>Η γραμμή <literal>options ALTQ_PRIQ</literal> ενεργοποιεί το
+ <emphasis>Priority Queuing</emphasis> (<acronym>PRIQ</acronym>).
+ Το <acronym>PRIQ</acronym> πάντοτε περνάει πρώτα την κίνηση με τη
+ μεγαλύτερη προτεραιότητα.</para>
+
+ <para>Η γραμμή <literal>options ALTQ_NOPCC</literal> ενεργοποιεί την
+ υποστήριξη <acronym>SMP</acronym> για το <acronym>ALTQ</acronym>.
+ Η επιλογή αυτή απαιτείται σε συστήματα <acronym>SMP</acronym>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="firewalls-ipf">
+ <title>Το IPFILTER (IPF) Firewall</title>
+
+ <indexterm>
+ <primary>firewall</primary>
+ <secondary>IPFILTER</secondary>
+ </indexterm>
+
+ <para>Ο συγγραφέας του IPFILTER είναι ο Darren Reed. Το IPFILTER δεν
+ εξαρτάται από το λειτουργικό σύστημα: είναι μια εφαρμογή ανοικτού
+ κώδικα που έχει μεταφερθεί στο &os;, το NetBSD, το OpenBSD, το
+ &sunos;, το HP/UX και το &solaris;. Το IPFILTER είναι υπό διαρκή
+ και ενεργή ανάπτυξη και συντήρηση, και κυκλοφορούν τακτικά οι νέες
+ εκδόσεις του.</para>
+
+ <para>Το IPFILTER είναι ένα firewall και μηχανισμός
+ <acronym>NAT</acronym> που λειτουργεί στον πυρήνα και μπορεί να
+ ελέγχεται και να παρακολουθείται από προγράμματα χρήστη. Οι κανόνες
+ του firewall μπορούν να τίθενται σε ισχύ ή να διαγράφονται μέσω του
+ βοηθητικού προγράμματος &man.ipf.8;. Οι κανόνες για το
+ <acronym>NAT</acronym> μπορούν να τίθενται σε ισχύ ή να διαγράφονται
+ μέσω του βοηθητικού προγράμματος &man.ipnat.1;. Το βοηθητικό πρόγραμμα
+ &man.ipfstat.8; μπορεί να εκτυπώσει στατιστικά εκτέλεσης για το τμήμα
+ του IPFILTER που εκτελείται στον πυρήνα. Το πρόγραμμα &man.ipmon.8;
+ μπορεί να καταγράψει τις ενέργειες του IPFILTER στο αρχεία καταγραφής
+ συμβάντων του συστήματος.</para>
+
+ <para>Το IPF γράφηκε αρχικά χρησιμοποιώντας μια λογική επεξεργασίας
+ κανόνων του τύπου <quote>ο τελευταίο κανόνας που ταιριάζει, είναι και
+ ο νικητής</quote> και χρησιμοποιούσε μόνο κανόνες τύπου stateless.
+ Με την πάροδο του χρόνου, το IPF βελτιώθηκε για να περιλαμβάνει την
+ επιλογή <quote>quick</quote> και την επιλογή <quote>keep state</quote>
+ για stateful κανόνες. Οι επιλογές αυτές εκσυγχρόνισαν δραματικά τη
+ λογική επεξεργασίας των κανόνων. Η επίσημη τεκμηρίωση του IPF καλύπτει
+ μόνο τις παλιές παραμέτρους ρύθμισης και επεξεργασίας των κανόνων.
+ Οι σύγχρονες λειτουργίες καλύπτονται μόνο ως πρόσθετες επιλογές, και
+ έτσι δεν τονίζονται αρκετά τα πλεονεκτήματα τους στη δημιουργία ενός
+ πολύ καλύτερου και ασφαλέστερου firewall.</para>
+
+ <para>Οι οδηγίες που περιέχονται σε αυτή την ενότητα, βασίζονται στη
+ χρήση κανόνων που περιέχουν την επιλογή <quote>quick</quote> καθώς και
+ την stateful επιλογή <quote>keep state</quote>. Αυτό είναι και το
+ βασικό πλαίσιο λειτουργιών για την δημιουργία του σετ κανόνων ενός
+ inclusive firewall.</para>
+
+ <para>Για λεπτομέρειες σχετικά με τον παλιότερο τρόπο επεξεργασίας των
+ κανόνων, δείτε: <ulink
+ url="http://www.obfuscation.org/ipf/ipf-howto.html#TOC_1"></ulink>
+ και <ulink
+ url="http://coombs.anu.edu.au/~avalon/ip-filter.html"></ulink>.</para>
+
+ <para>Μπορείτε να δείτε το IPF FAQ στην τοποθεσία <ulink
+ url="http://www.phildev.net/ipf/index.html"></ulink>.</para>
+
+ <para>Μπορείτε να βρείτε τις παλαιότερες δημοσιεύσεις τις λίστας
+ ταχυδρομείου του IPFILTER στο <ulink
+ url="http://marc.theaimsgroup.com/?l=ipfilter"></ulink>. Παρέχεται
+ δυνατότητα αναζήτησης.</para>
+
+ <sect2>
+ <title>Ενεργοποιώντας το IPF</title>
+
+ <indexterm>
+ <primary>IPFILTER</primary>
+ <secondary>enabling</secondary>
+ </indexterm>
+
+ <para>Το IPF περιλαμβάνεται στη βασική εγκατάσταση του &os; ως άρθρωμα
+ το οποίο μπορεί να φορτωθεί χωριστά. Το σύστημα θα φορτώσει δυναμικά
+ το άρθρωμα του IPF αν υπάρχει η καταχώριση
+ <literal>ipfilter_enable="YES"</literal> στο αρχείο
+ <filename>/etc/rc.conf</filename>. Το άρθρωμα έχει δημιουργηθεί με
+ ενεργοποιημένη την δυνατότητα καταγραφής και με την επιλογή
+ <literal>default pass all</literal>. Για να αλλάξετε αυτή την
+ προεπιλογή σε <literal>block all</literal>, μπορείτε απλώς να
+ προσθέσετε τον κανόνα απόρριψης (block all) στο τέλος των κανόνων σας.
+ Δεν χρειάζεται να μεταγλωττίσετε την επιλογή IPF στο πυρήνα του &os;
+ για το σκοπό αυτό.</para>
+ </sect2>
+
+ <sect2>
+ <title>Επιλογές για τον Πυρήνα</title>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPFILTER</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPFILTER_LOG</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPFILTER_DEFAULT_BLOCK</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>IPFILTER</primary>
+ <secondary>kernel options</secondary>
+ </indexterm>
+
+ <para>Δεν είναι υποχρεωτικό να μεταγλωττίσετε τις παρακάτω επιλογές στον
+ πυρήνα του &os; για να ενεργοποιήσετε το IPF. Η παρουσίαση τους εδώ
+ είναι καθαρά ενημερωτική. Αν μεταγλωττίσετε το IPF απευθείας
+ στον πυρήνα, δεν θα χρησιμοποιηθεί ποτέ το αντίστοιχο άρθρωμα.</para>
+
+ <para>Στο αρχείο <filename>/usr/src/sys/conf/NOTES</filename> θα βρείτε
+ παραδείγματα καταχωρίσεων IPF για το αρχείο ρύθμισης του πυρήνα. Οι
+ επιλογές αυτές φαίνονται επίσης παρακάτω:</para>
+
+ <programlisting>options IPFILTER
+options IPFILTER_LOG
+options IPFILTER_DEFAULT_BLOCK</programlisting>
+
+ <para>Η επιλογή <literal>options IPFILTER</literal> ενεργοποιεί την
+ υποστήριξη για το <quote>IPFILTER</quote> firewall.</para>
+
+ <para>Η επιλογή <literal>options IPFILTER_LOG</literal> ενεργοποιεί την
+ υποστήριξη καταγραφής του IPF, η οποία γράφει στην ψευδο-συσκευή
+ καταγραφής πακέτων <devicename>ipl</devicename> για κάθε κανόνα που
+ περιλαμβάνει την επιλογή <literal>log</literal>.</para>
+
+ <para>Η επιλογή <literal>options IPFILTER_DEFAULT_BLOCK</literal>
+ αλλάζει την προεπιλεγμένη συμπεριφορά, ώστε κάθε πακέτο που δεν
+ ταιριάζει με κάποιο κανόνα <literal>pass</literal> του firewall,
+ να απορρίπτεται αυτόματα.</para>
+
+ <para>Οι παραπάνω επιλογές θα ενεργοποιηθούν μόνο αφού μεταγλωττίσετε
+ και εγκαταστήσετε ένα προσαρμοσμένο πυρήνα που να τις
+ περιλαμβάνει.</para>
+ </sect2>
+
+ <sect2>
+ <title>Διαθέσιμες Επιλογές για το rc.conf</title>
+
+ <para>Χρειάζεστε τις παρακάτω καταχωρίσεις στο
+ <filename>/etc/rc.conf</filename> για να ενεργοποιήσετε το IPF κατά
+ την εκκίνηση του υπολογιστή:</para>
+
+ <programlisting>ipfilter_enable="YES" # Start ipf firewall
+ipfilter_rules="/etc/ipf.rules" # loads rules definition text file
+ipmon_enable="YES" # Start IP monitor log
+ipmon_flags="-Ds" # D = start as daemon
+ # s = log to syslog
+ # v = log tcp window, ack, seq
+ # n = map IP &amp; port to names</programlisting>
+
+ <para>Αν πίσω από αυτό το firewall υπάρχει κάποιο LAN που χρησιμοποιεί
+ δεσμευμένες ιδιωτικές διευθύνσεις, θα χρειαστεί να προσθέσετε τις
+ παρακάτω καταχωρίσεις για να ενεργοποιήσετε τη λειτουργία
+ <acronym>NAT</acronym>:</para>
+
+ <programlisting>gateway_enable="YES" # Enable as LAN gateway
+ipnat_enable="YES" # Start ipnat function
+ipnat_rules="/etc/ipnat.rules" # rules definition file for ipnat</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>IPF</title>
+
+ <indexterm><primary><command>ipf</command></primary></indexterm>
+
+ <para>Η εντολή &man.ipf.8; χρησιμοποιείται για να φορτώσει το αρχείο
+ των κανόνων. Φυσιολογικά, θα δημιουργήσετε ένα αρχείο με τους δικούς
+ σας προσαρμοσμένους κανόνες και θα αντικαταστήσετε με αυτό
+ εξ'ολοκλήρου τους ενσωματωμένους κανόνες του firewall:</para>
+
+ <screen>&prompt.root; <userinput>ipf -Fa -f /etc/ipf.rules</userinput></screen>
+
+ <para>Η επιλογή <option>-Fa</option> αδειάζει τους κανόνες από τους
+ εσωτερικούς πίνακες του firewall.</para>
+
+ <para>Η επιλογή <option>-f</option> καθορίζει το αρχείο των κανόνων που
+ θα φορτωθεί.</para>
+
+ <para>Αυτό σας δίνει την δυνατότητα να αλλάξετε το αρχείο κανόνων σας,
+ να εκτελέσετε την εντολή IPF που αναφέραμε παραπάνω, και
+ να ανανεώσετε με αυτό τον τρόπο τους κανόνες στο firewall που
+ εκτελείται ήδη με καινούργιους, χωρίς να χρειαστεί να επανεκκινήσετε
+ το σύστημα σας. Η μέθοδος αυτή είναι πολύ βολική για να δοκιμάσετε
+ νέους κανόνες, καθώς μπορεί να επαναληφθεί όσες φορές θέλετε.</para>
+
+ <para>Δείτε τη σελίδα manual του &man.ipf.8; για λεπτομέρειες σχετικά με
+ τις υπόλοιπες επιλογές που μπορείτε να χρησιμοποιήσετε με την εντολή
+ αυτή.</para>
+
+ <para>Η εντολή &man.ipf.8; αναμένει ένα απλό αρχείο κειμένου ως αρχείο
+ κανόνων. Δεν θα δεχθεί αρχείο κανόνων γραμμένο ως script με
+ συμβολικές αντικαταστάσεις.</para>
+
+ <para>Υπάρχει ωστόσο τρόπος να γράψετε κανόνες IPF που να χρησιμοποιούν
+ την ισχύ των συμβολικών αντικαταστάσεων. Για περισσότερες
+ πληροφορίες, δείτε το
+ <xref linkend="firewalls-ipf-rules-script">.</para>
+ </sect2>
+
+ <sect2>
+ <title>IPFSTAT</title>
+
+ <indexterm><primary><command>ipfstat</command></primary></indexterm>
+ <indexterm>
+ <primary>IPFILTER</primary>
+ <secondary>statistics</secondary>
+ </indexterm>
+
+ <para>Η προεπιλεγμένη συμπεριφορά του &man.ipfstat.8; είναι να ανακτά
+ και να απεικονίζει το σύνολο των στατιστικών που συγκεντρώθηκαν ως
+ αποτέλεσμα της εφαρμογής των κανόνων του χρήστη στα πακέτα που
+ εισέρχονται και εξέρχονται από το firewall, από τη στιγμή της
+ τελευταίας του εκκίνησης ή από τον τελευταίο τους μηδενισμό μέσω της
+ εντολής <command>ipf -Z</command>.</para>
+
+ <para>Δείτε τη σελίδα manual &man.ipfstat.8; για λεπτομέρειες.</para>
+
+ <para>Η προεπιλεγμένη έξοδος της εντολής &man.ipfstat.8; θα μοιάζει με
+ την παρακάτω:</para>
+
+ <screen>input packets: blocked 99286 passed 1255609 nomatch 14686 counted 0
+ output packets: blocked 4200 passed 1284345 nomatch 14687 counted 0
+ input packets logged: blocked 99286 passed 0
+ output packets logged: blocked 0 passed 0
+ packets logged: input 0 output 0
+ log failures: input 3898 output 0
+ fragment state(in): kept 0 lost 0
+ fragment state(out): kept 0 lost 0
+ packet state(in): kept 169364 lost 0
+ packet state(out): kept 431395 lost 0
+ ICMP replies: 0 <acronym>TCP</acronym> RSTs sent: 0
+ Result cache hits(in): 1215208 (out): 1098963
+ IN Pullups succeeded: 2 failed: 0
+ OUT Pullups succeeded: 0 failed: 0
+ Fastroute successes: 0 failures: 0
+ <acronym>TCP</acronym> cksum fails(in): 0 (out): 0
+ Packet log flags set: (0)</screen>
+
+ <para>Όταν χρησιμοποιηθεί η επιλογή <option>-i</option> για τα
+ εισερχόμενα ή η επιλογή <option>-o</option> για τα εξερχόμενα πακέτα,
+ η εντολή θα ανακτήσει και θα απεικονίσει την αντίστοιχη λίστα
+ κανόνων που είναι εγκατεστημένη και χρησιμοποιείται από τον πυρήνα τη
+ δεδομένη στιγμή.</para>
+
+ <para>Η εντολή <command>ipfstat -in</command> δείχνει ένα αριθμημένο
+ πίνακα κανόνων για εισερχόμενα πακέτα.</para>
+
+ <para>Η εντολή <command>ipfstat -on</command> δείχνει ένα αριθμημένο
+ πίνακα κανόνων για εξερχόμενα πακέτα.</para>
+
+ <para>Η έξοδος θα μοιάζει με την παρακάτω:</para>
+
+ <screen>@1 pass out on xl0 from any to any
+@2 block out on dc0 from any to any
+@3 pass out quick on dc0 proto tcp/udp from any to any keep state</screen>
+
+ <para>Η εντολή <command>ipfstat -ih</command> δείχνει τον πίνακα
+ κανόνων για τα εισερχόμενα πακέτα, τοποθετώντας μπροστά από τον
+ κάθε κανόνα ένα αριθμό που δείχνει πόσες φορές έχει
+ χρησιμοποιηθεί.</para>
+
+ <para>Η εντολή <command>ipfstat -oh</command> δείχνει τον πίνακα
+ κανόνων για τα εξερχόμενα πακέτα, τοποθετώντας μπροστά από τον
+ κάθε κανόνα ένα αριθμό που δείχνει πόσες φορές έχει
+ χρησιμοποιηθεί.</para>
+
+ <para>Η έξοδος θα μοιάζει με την παρακάτω:</para>
+
+ <screen>2451423 pass out on xl0 from any to any
+354727 block out on dc0 from any to any
+430918 pass out quick on dc0 proto tcp/udp from any to any keep state</screen>
+
+ <para>Μια από τις πιο σημαντικές λειτουργίες της εντολής
+ <command>ipfstat</command> είναι η επιλογή <option>-t</option> η
+ οποία απεικονίζει τον πίνακα καταστάσεων, με τρόπο όμοιο με αυτό
+ που χρησιμοποιεί η εντολή &man.top.1; για να δείξει τον πίνακα
+ διεργασιών που εκτελούνται στο &os;. Όταν το firewall σας δέχεται
+ επίθεση, η λειτουργία αυτή σας δίνει την δυνατότητα να αναγνωρίσετε
+ και να εστιάσετε στα ίδια τα πακέτα που την αποτελούν.
+ Οι προαιρετικές υπο-επιλογές σας δίνουν την δυνατότητα να επιλέξετε
+ το IP αφετηρίας ή προορισμού, την θύρα, ή το πρωτόκολλο το οποίο
+ θέλετε να παρακολουθήσετε σε πραγματικό χρόνο. Δείτε τη σελίδα
+ manual του &man.ipfstat.8; για περισσότερες λεπτομέρειες.</para>
+ </sect2>
+
+ <sect2>
+ <title>IPMON</title>
+
+ <indexterm><primary><command>ipmon</command></primary></indexterm>
+ <indexterm>
+ <primary>IPFILTER</primary>
+ <secondary>logging</secondary>
+ </indexterm>
+
+ <para>Για να λειτουργήσει σωστά η εντολή <command>ipmon</command>,
+ θα πρέπει να ενεργοποιηθεί η επιλογή <literal>IPFILTER_LOG</literal>
+ στον πυρήνα. Η εντολή αυτή διαθέτει δύο διαφορετικούς τρόπους
+ λειτουργίας. Ο προεπιλεγμένος κανονικός τρόπος λειτουργίας
+ ενεργοποιείται όταν η εντολή χρησιμοποιείται χωρίς την επιλογή
+ <option>-D</option>.</para>
+
+ <para>Η εντολή μπορεί να χρησιμοποιηθεί σε λειτουργία δαίμονα όταν
+ επιθυμείτε να έχετε ένα συνεχόμενο αρχείο καταγραφής ώστε να μπορείτε
+ να εξετάσετε τις προηγούμενες εγγραφές. Αυτός είναι και ο τρόπος με
+ τον οποίο έχει ρυθμιστεί να συνεργάζεται το &os; με το IPFILTER.
+ Το &os; έχει ενσωματωμένη δυνατότητα εναλλαγής αρχείων καταγραφής.
+ Για αυτό το λόγο, είναι καλύτερο η καταγραφή να γίνεται μέσω του
+ &man.syslogd.8; παρά σε ένα συνηθισμένο αρχείο. Από προεπιλογή, η
+ ρύθμιση <literal>ipmon_flags</literal> στο αρχείο
+ <filename>rc.conf</filename> χρησιμοποιεί τις επιλογές
+ <option>-Ds</option>:</para>
+
+ <programlisting>ipmon_flags="-Ds" # D = start as daemon
+ # s = log to syslog
+ # v = log tcp window, ack, seq
+ # n = map IP &amp; port to names</programlisting>
+
+ <para>Τα πλεονεκτήματα της καταγραφής είναι προφανή. Παρέχει την
+ δυνατότητα επισκόπησης πληροφοριών όπως τα πακέτα που απορρίφθηκαν,
+ τις διευθύνσεις από τις οποίες λήφθηκαν, και τον προορισμό τους.
+ Έχετε έτσι ένα σημαντικό πλεονέκτημα όταν προσπαθείτε να αναγνωρίσετε
+ ένα εισβολέα.</para>
+
+ <para>Ακόμα και όταν ενεργοποιήσετε την δυνατότητα καταγραφής, το IPF
+ δεν θα καταγράψει τίποτα αν δεν έχει γίνει η αντίστοιχη ρύθμιση στους
+ κανόνες. Ο διαχειριστής του firewall αποφασίζει για ποιους κανόνες
+ του σετ θέλει να ενεργοποιήσει την καταγραφή, και προσθέτει σε αυτούς
+ την λέξη log. Φυσιολογικά, η καταγραφή ενεργοποιείται μόνο σε κανόνες
+ που απορρίπτουν πακέτα.</para>
+
+ <para>Είναι πολύ συνηθισμένο να περιλαμβάνεται ένας κανόνας στο τέλος
+ του συνόλου, που να απορρίπτει από προεπιλογή όλα τα πακέτα που
+ φτάνουν μέχρι εκεί (default deny). Με τον τρόπο αυτό μπορείτε να
+ δείτε όλα τα πακέτα που δεν ταίριαξαν με κανένα κανόνα του σετ.</para>
+ </sect2>
+
+ <sect2>
+ <title>Καταγραφή του IPMON</title>
+
+ <para>Το <application>syslogd</application> χρησιμοποιεί τη δική του
+ ειδική μέθοδο για το διαχωρισμό των δεδομένων καταγραφής.
+ Διαθέτει ειδικές ομαδοποιήσεις που ονομάζονται
+ <quote>facility</quote> και <quote>level</quote>. Όταν το IPMON
+ χρησιμοποιείται με την επιλογή <option>-Ds</option>, χρησιμοποιεί
+ από προεπιλογή το <literal>local0</literal> ως όνομα
+ <quote>facility</quote>. Αν το επιθυμείτε, μπορείτε να
+ χρησιμοποιήσετε τα παρακάτω επίπεδα για περαιτέρω διαχωρισμό των
+ δεδομένων καταγραφής:</para>
+
+ <screen>LOG_INFO - packets logged using the "log" keyword as the action rather than pass or block.
+LOG_NOTICE - packets logged which are also passed
+LOG_WARNING - packets logged which are also blocked
+LOG_ERR - packets which have been logged and which can be considered short</screen>
+
+ <!-- XXX: "can be considered short" == "with incomplete header" -->
+
+ <para>Για να ρυθμίσετε το IPFILTER να καταγράφει όλα τα δεδομένα στο
+ <filename>/var/log/ipfilter.log</filename>, θα χρειαστεί να
+ δημιουργήσετε από πριν το αρχείο. Αυτό μπορεί να γίνει με την
+ παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>touch /var/log/ipfilter.log</userinput></screen>
+
+ <para>Η λειτουργία του &man.syslogd.8; μπορεί να ρυθμιστεί με
+ καταχωρίσεις στο αρχείο <filename>/etc/syslog.conf</filename>.
+ Το αρχείο <filename>syslog.conf</filename> προσφέρει σημαντική
+ ευελιξία στον τρόπο με τον οποίο το <application>syslog</application>
+ αντιμετωπίζει τα μηνύματα συστήματος που προέρχονται από εφαρμογές
+ όπως το IPF.</para>
+
+ <para>Προσθέστε την παρακάτω καταχώριση στο αρχείο
+ <filename>/etc/syslog.conf</filename>:</para>
+
+ <programlisting>local0.* /var/log/ipfilter.log</programlisting>
+
+ <para>Το <literal>local0.*</literal> σημαίνει ότι θα γίνεται
+ καταγραφή όλων των μηνυμάτων αυτού του τύπου στην τοποθεσία που έχει
+ οριστεί.</para>
+
+ <para>Για να ενεργοποιήσετε τις αλλαγές στο
+ <filename>/etc/syslog.conf</filename> θα πρέπει να επανεκκινήσετε το
+ μηχάνημα ή να αναγκάσετε το &man.syslogd.8; να ξαναδιαβάσει το
+ <filename>/etc/syslog.conf</filename>, εκτελώντας την εντολή
+ <command>/etc/rc.d/syslogd reload</command></para>
+
+ <para>Μην ξεχάσετε να τροποποιήσετε το
+ <filename>/etc/newsyslog.conf</filename> ώστε να εναλλάσσει το αρχείο
+ καταγραφής που δημιουργήσατε παραπάνω.</para>
+ </sect2>
+
+ <sect2>
+ <title>Η Μορφή των Μηνυμάτων Καταγραφής</title>
+
+ <para>Τα μηνύματα που παράγονται από την <command>ipmon</command>
+ αποτελούνται από πεδία δεδομένων που χωρίζονται από λευκό διάστημα.
+ Τα πεδία που είναι κοινά σε όλα τα μηνύματα, είναι τα παρακάτω:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Η ημερομηνία παραλαβής του πακέτου</para>
+ </listitem>
+
+ <listitem>
+ <para>Η ώρα παραλαβής του πακέτου. Έχει την μορφή HH:MM:SS.F,
+ η οποία υποδηλώνει ώρες, λεπτά, δευτερόλεπτα και κλάσματα
+ δευτερολέπτου (τα οποία μπορεί να είναι πολλά δεκαδικά
+ ψηφία).</para>
+ </listitem>
+
+ <listitem>
+ <para>Το όνομα της διεπαφής στην οποία έγινε η επεξεργασία του
+ πακέτου π.χ. <devicename>dc0</devicename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ο αριθμός ομάδας και ο αύξων αριθμός του κανόνα, π.χ.
+ <literal>@0:17</literal>.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Μπορείτε να δείτε τα παρακάτω με την εντολή
+ <command>ipfstat -in</command>:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Το είδος της ενέργειας: p αν το πακέτο πέρασε, b αν το πακέτο
+ απορρίφθηκε, S για σύντομο πακέτο, n αν δεν ταίριαξε με κανένα
+ κανόνα, L για κανόνα με καταγραφή. Η σειρά προτεραιότητας στην
+ απεικόνιση των παραπάνω, είναι S, p, b, n, L. Το κεφαλαίο P ή
+ το B σημαίνουν ότι η καταγραφή του πακέτου έγινε λόγω κάποιας
+ γενικής ρύθμισης καταγραφής και όχι εξαιτίας κάποιου
+ κανόνα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι διευθύνσεις. Πρόκειται στην πραγματικότητα για τρία
+ πεδία: τη διεύθυνση και τη θύρα αφετηρίας (χωρίζονται με κόμμα),
+ το σύμβολο -&gt; και την διεύθυνση και θύρα προορισμού, π.χ.
+ <literal>209.53.17.22,80 -&gt; 198.73.220.17,1722</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <literal>PR</literal> ακολουθούμενο από το όνομα ή τον
+ αριθμό του πρωτοκόλλου, π.χ. <literal>PR tcp</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <literal>len</literal> ακολουθούμενο από το μήκος της
+ επικεφαλίδας και το συνολικό μήκος του πακέτου, π.χ.
+ <literal>len 20 40</literal>.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Αν πρόκειται για πακέτο <acronym>TCP</acronym>, θα υπάρχει ένα
+ επιπλέον πεδίο το οποίο θα ξεκινάει με μια παύλα και θα ακολουθείται
+ από γράμματα τα οποία αντιστοιχούν στις επιλογές (flags) που έχουν
+ τεθεί. Δείτε τη σελίδα manual &man.ipf.5; για τη λίστα των
+ γραμμάτων και των αντίστοιχων flags.</para>
+
+ <para>Αν πρόκειται για πακέτο ICMP, θα υπάρχουν δύο πεδία στο τέλος,
+ το πρώτο θα είναι πάντα <quote>ICMP</quote> και το επόμενο θα είναι
+ ο τύπος του μηνύματος και του υπό-μηνύματος ICMP, χωρισμένα με μια
+ κάθετο, π.χ. ICMP 3/3 για ένα μήνυμα μη προσβάσιμης θύρας (port
+ unreachable).</para>
+ </sect2>
+
+ <sect2 id="firewalls-ipf-rules-script">
+ <title>Δημιουργία Script Κανόνων με Συμβολική Υποκατάσταση</title>
+
+ <para>Ορισμένοι έμπειροι χρήστες του IPF δημιουργούν ένα αρχείο
+ κανόνων το οποίο μπορεί να εκτελεστεί ως script με δυνατότητα
+ συμβολικής υποκατάστασης. Το βασικό όφελος του παραπάνω, είναι ότι
+ χρειάζεται να αλλάξετε μόνο την τιμή που σχετίζεται με το συμβολικό
+ όνομα και όταν το script εκτελεστεί, η τιμή θα υποκατασταθεί σε όλους
+ τους κανόνες που περιέχουν το όνομα αυτό. Καθώς πρόκειται για
+ script, μπορείτε να χρησιμοποιήσετε συμβολική υποκατάσταση για να
+ κωδικοποιήσετε συχνά χρησιμοποιούμενες τιμές και να τις υποκαθιστάτε
+ σε πολλαπλούς κανόνες. Αυτό φαίνεται και στο παράδειγμα που
+ ακολουθεί.</para>
+
+ <para>Η σύνταξη του script που χρησιμοποιείται εδώ, είναι συμβατή με τα
+ κελύφη &man.sh.1;, &man.csh.1;, και &man.tcsh.1;.</para>
+
+ <para>Τα πεδία στα οποία γίνεται συμβολική υποκατάσταση προσημειώνονται
+ με το σήμα του δολαρίου: <literal>&dollar;</literal>.</para>
+
+ <para>Τα συμβολικά πεδία δεν έχουν την προσημείωση με το
+ &dollar;.</para>
+
+ <para>Η τιμή που θα χρησιμοποιηθεί στο συμβολικό πεδίο, θα πρέπει να
+ εσωκλείεται σε διπλά εισαγωγικά (<literal>"</literal>).</para>
+
+ <para>Ξεκινήστε το αρχείο των κανόνων σας με κάτι αντίστοιχο με το
+ παρακάτω:</para>
+
+ <programlisting>############# Start of IPF rules script ########################
+
+oif="dc0" # name of the outbound interface
+odns="192.0.2.11" # ISP's DNS server IP address
+myip="192.0.2.7" # my static IP address from ISP
+ks="keep state"
+fks="flags S keep state"
+
+# You can choose between building /etc/ipf.rules file
+# from this script or running this script "as is".
+#
+# Uncomment only one line and comment out another.
+#
+# 1) This can be used for building /etc/ipf.rules:
+#cat &gt; /etc/ipf.rules &lt;&lt; EOF
+#
+# 2) This can be used to run script "as is":
+/sbin/ipf -Fa -f - &lt;&lt; EOF
+
+# Allow out access to my ISP's Domain name server.
+pass out quick on &dollar;oif proto tcp from any to &dollar;odns port = 53 &dollar;fks
+pass out quick on &dollar;oif proto udp from any to &dollar;odns port = 53 &dollar;ks
+
+# Allow out non-secure standard www function
+pass out quick on &dollar;oif proto tcp from &dollar;myip to any port = 80 &dollar;fks
+
+# Allow out secure www function https over TLS SSL
+pass out quick on &dollar;oif proto tcp from &dollar;myip to any port = 443 &dollar;fks
+EOF
+################## End of IPF rules script ########################</programlisting>
+
+ <para>Αυτό είναι όλο. Στο παραπάνω παράδειγμα δεν είναι σημαντικοί
+ οι κανόνες, αλλά ο τρόπος με τον οποίο λειτουργούν και παίρνουν τιμές
+ τα πεδία υποκατάστασης. Αν το παραπάνω παράδειγμα βρίσκονταν σε ένα
+ αρχείο με το όνομα <filename>/etc/ipf.rules.script</filename>,
+ θα μπορούσατε να επαναφορτώσετε αυτούς τους κανόνες με την παρακάτω
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>sh /etc/ipf.rules.script</userinput></screen>
+
+ <para>Υπάρχει ένα πρόβλημα όταν χρησιμοποιούνται αρχεία κανόνων με
+ ενσωματωμένους συμβολισμούς: Το IPF δεν καταλαβαίνει τη συμβολική
+ υποκατάσταση, και δεν μπορεί να διαβάσει αυτά τα scripts άμεσα.</para>
+
+ <para>Ένα τέτοιο script μπορεί να χρησιμοποιηθεί με ένα από τους δύο
+ παρακάτω τρόπους:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Αφαιρέστε το σχόλιο από τη γραμμή που ξεκινάει με
+ <literal>cat</literal>, και μετατρέψτε σε σχόλιο τη γραμμή που
+ ξεκινάει με <literal>/sbin/ipf</literal>. Τοποθετήστε το
+ <literal>ipfilter_enable="YES"</literal> στο αρχείο
+ <filename>/etc/rc.conf</filename> όπως συνήθως, και εκτελέστε
+ το script μια φορά μετά από κάθε αλλαγή για να δημιουργήσετε ή να
+ ενημερώσετε το <filename>/etc/ipf.rules</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Απενεργοποιήστε το IPFILTER στα scripts εκκίνησης του
+ συστήματος, προσθέτοντας την καταχώριση
+ <literal>ipfilter_enable="NO"</literal> (πρόκειται για την
+ προεπιλεγμένη τιμή) στο αρχείο
+ <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Προσθέστε ένα script όπως το παρακάτω στον κατάλογο εκκίνησης
+ <filename class="directory">/usr/local/etc/rc.d/</filename>. Το
+ script θα πρέπει να έχει ένα προφανές όνομα, όπως
+ <filename>ipf.loadrules.sh</filename>. Η επέκταση
+ <filename>.sh</filename> είναι υποχρεωτική.</para>
+
+ <programlisting>#!/bin/sh
+sh /etc/ipf.rules.script</programlisting>
+
+ <para>Οι άδειες σε αυτό το αρχείο, θα πρέπει να επιτρέπουν ανάγνωση,
+ εγγραφή και εκτέλεση για τον χρήστη
+ <username>root</username>.</para>
+
+ <screen>&prompt.root; <userinput>chmod 700 /usr/local/etc/rc.d/ipf.loadrules.sh</userinput></screen>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οι κανόνες του IPF θα φορτώνονται πλέον κατά την εκκίνηση του
+ συστήματος σας.</para>
+ </sect2>
+
+ <sect2>
+ <title>Το Σύνολο Κανόνων του IPF</title>
+
+ <para>Ως <quote>σύνολο κανόνων</quote> στο IPF, ορίζουμε μια ομάδα
+ κανόνων που έχουν γραφεί για να επιτρέπουν ή να απορρίπτουν πακέτα
+ ανάλογα με τις τιμές που περιέχονται σε αυτά. Η διπλής κατεύθυνσης
+ ανταλλαγή πακέτων μεταξύ υπολογιστών αποτελεί μια συνεδρία.
+ Το σύνολο κανόνων του firewall επεξεργάζεται τόσο τα πακέτα που
+ έρχονται από το Internet, όσο και τα πακέτα που παράγονται από το
+ σύστημα ως απάντηση σε αυτά. Κάθε υπηρεσία <acronym>TCP/IP</acronym>
+ (π.χ. telnet, www, mail, κ.λ.π.) καθορίζεται από το πρωτόκολλο και
+ την προνομιακή (privileged) θύρα που χρησιμοποιεί για να δέχεται
+ αιτήματα εξυπηρέτησης. Τα πακέτα που προορίζονται για μια
+ συγκεκριμένη υπηρεσία, ξεκινούν από τη διεύθυνση αφετηρίας
+ χρησιμοποιώντας μια μη-προνομιακή θύρα και καταλήγουν στη
+ συγκεκριμένη θύρα υπηρεσίας στον προορισμό. Όλες οι παραπάνω
+ παράμετροι (θύρες και διευθύνσεις) μπορούν να χρησιμοποιηθούν
+ ως κριτήρια επιλογής για την δημιουργία κανόνων που επιτρέπουν
+ ή εμποδίζουν την πρόσβαση σε υπηρεσίες.</para>
+
+ <indexterm>
+ <primary>IPFILTER</primary>
+ <secondary>rule processing order</secondary>
+ </indexterm>
+
+ <para>Το IPF γράφτηκε αρχικά χρησιμοποιώντας μια λογική επεξεργασίας
+ κανόνων του τύπου <quote>ο τελευταίος κανόνας που ταιριάζει, είναι ο
+ νικητής</quote> και χρησιμοποιούσε μόνο κανόνες stateless. Με την
+ πάροδο του χρόνου, το IPF ενισχύθηκε με την επιλογή
+ <quote>quick</quote> και με δυνατότητα αποθήκευσης κατάστασης
+ μέσω της επιλογής <quote>keep state</quote>. Με τον τρόπο αυτό,
+ εκσυγχρονίστηκε δραματικά η λογική επεξεργασίας των κανόνων.<para>
+
+ <para>Οι οδηγίες που περιέχονται σε αυτή την ενότητα βασίζονται στη
+ χρήση κανόνων που περιέχουν την επιλογή <quote>quick</quote> και την
+ επιλογή <quote>keep state</quote> για τη διατήρηση της κατάστασης.
+ Αυτές είναι και οι βασικές λειτουργίες για την κωδικοποίηση του
+ συνόλου κανόνων ενός inclusive firewall.</para>
+
+ <warning>
+ <para>Όταν δουλεύετε με τους κανόνες του firewall, θα πρέπει να είστε
+ <emphasis>πολύ προσεκτικοί</emphasis>. Αν βάλετε λανθασμένες
+ ρυθμίσεις, μπορεί να <emphasis>κλειδωθείτε έξω</emphasis> από τον
+ εξυπηρετητή σας. Για να είστε ασφαλείς, είναι προτιμότερο να
+ κάνετε τις αρχικές σας ρυθμίσεις από την τοπική κονσόλα, παρά μέσω
+ απομακρυσμένης σύνδεσης (π.χ. μέσω
+ <application>ssh</application>).</para>
+ </warning>
+ </sect2>
+
+ <sect2>
+ <title>Συντακτικό Κανόνων</title>
+
+ <indexterm>
+ <primary>IPFILTER</primary>
+ <secondary>rule syntax</secondary>
+ </indexterm>
+
+ <para>Το συντακτικό των κανόνων που παρουσιάζουμε εδώ, έχει απλοποιηθεί
+ ώστε να απεικονίζει τη σύγχρονη stateful υλοποίηση και τη λογική
+ του τύπου <quote>ο πρώτος κανόνας που ταιριάζει είναι και ο
+ νικητής</quote>. Για την περιγραφή του παλιότερου τρόπου λειτουργίας,
+ διαβάστε τη σελίδα manual του &man.ipf.8;.</para>
+
+ <para>Ο χαρακτήρας <literal>#</literal> χρησιμοποιείται για να
+ επισημάνει την αρχή ενός σχολίου, και μπορεί να εμφανίζεται στο τέλος
+ μιας γραμμής κανόνα ή στη δική του γραμμή. Οι κενές γραμμές
+ αγνοούνται.</para>
+
+ <para>Οι κανόνες περιέχουν λέξεις-κλειδιά. Οι λέξεις αυτές θα πρέπει
+ να κωδικοποιηθούν με συγκεκριμένη σειρά από τα αριστερά προς τα δεξιά
+ της γραμμής. Οι λέξεις-κλειδιά φαίνονται παρακάτω με έντονα γράμματα.
+ Μερικές λέξεις έχουν υπο-επιλογές οι οποίες μπορεί να είναι επίσης
+ λέξεις-κλειδιά και να περιλαμβάνουν επίσης περισσότερες υπο-επιλογές.
+ Κάθε μια από τις επικεφαλίδες στο παράδειγμα που φαίνεται παρακάτω
+ έχει μια κεφαλίδα με έντονα γράμματα η οποία επεξηγεί το περιεχόμενο
+ της.</para>
+
+ <!-- This section is probably wrong. See the OpenBSD flag -->
+ <!-- What is the "OpenBSD flag"? Reference please -->
+
+ <para><replaceable>ACTION IN-OUT OPTIONS SELECTION STATEFUL PROTO
+ SRC_ADDR,DST_ADDR OBJECT PORT_NUM TCP_FLAG
+ STATEFUL</replaceable></para>
+
+ <para><replaceable>ACTION</replaceable> = block | pass</para>
+
+ <para><replaceable>IN-OUT</replaceable> = in | out</para>
+
+ <para><replaceable>OPTIONS</replaceable> = log | quick | on
+ interface-name</para>
+
+ <para><replaceable>SELECTION</replaceable> = proto value |
+ source/destination IP | port = number | flags
+ flag-value</para>
+
+ <para><replaceable>PROTO</replaceable> = tcp/udp | udp | tcp |
+ icmp</para>
+
+ <para><replaceable>SRC_ADD,DST_ADDR</replaceable> = all | from
+ object to object</para>
+
+ <para><replaceable>OBJECT</replaceable> = IP address | any</para>
+
+ <para><replaceable>PORT_NUM</replaceable> = port number</para>
+
+ <para><replaceable>TCP_FLAG</replaceable> = S</para>
+
+ <para><replaceable>STATEFUL</replaceable> = keep state</para>
+
+ <sect3>
+ <title>ACTION</title>
+
+ <para>Η ενέργεια (action) δείχνει τι πρέπει να γίνει με το πακέτο αν
+ ταιριάζει με τον κανόνα του φίλτρου. Κάθε κανόνας
+ <emphasis>πρέπει</emphasis> να διαθέτει μια ενέργεια. Οι ενέργειες
+ που αναγνωρίζονται, φαίνονται παρακάτω:</para>
+
+ <para>Το <literal>block</literal> δείχνει ότι το πακέτο θα πρέπει να
+ απορριφθεί αν ταιριάζει με τις παραμέτρους επιλογής του
+ κανόνα.</para>
+
+ <para>Το <literal>pass</literal> δείχνει ότι το πακέτο θα πρέπει να
+ εξέλθει από το firewall, αν ταιριάζει με τις παραμέτρους επιλογής
+ του κανόνα.</para>
+ </sect3>
+
+ <sect3>
+ <title>IN-OUT</title>
+
+ <para>Κάθε κανόνας του φίλτρου πρέπει υποχρεωτικά να διευκρινίζει
+ με σαφήνεια αν αναφέρεται στην είσοδο ή την έξοδο πακέτων.
+ Η επόμενη λέξη-κλειδί πρέπει να είναι <literal>in</literal> ή
+ <literal>out</literal> και αν δεν υπάρχει, ο κανόνας θα αποτύχει
+ κατά το συντακτικό έλεγχο.</para>
+
+ <para>Το <literal>in</literal> σημαίνει ότι ο κανόνας θα εφαρμοστεί
+ σε ένα εισερχόμενο πακέτο το οποίο μόλις λήφθηκε στη διεπαφή που
+ συνδέεται με το Διαδίκτυο.</para>
+
+ <para>Το <literal>out</literal> σημαίνει ότι ο κανόνας θα εφαρμοστεί
+ σε ένα πακέτο που προορίζεται για έξοδο μέσω της διεπαφής που
+ συνδέεται με το Διαδίκτυο.</para>
+ </sect3>
+
+ <sect3>
+ <title>OPTIONS</title>
+
+ <note>
+ <para>Οι παρακάτω επιλογές πρέπει να χρησιμοποιηθούν με τη σειρά
+ που φαίνονται εδώ.</para>
+ </note>
+
+ <para>Το <literal>log</literal> δείχνει ότι η επικεφαλίδα του πακέτου
+ θα γραφεί στο αρχείο καταγραφής του
+
+ <!-- XXX - xref here -->
+
+ <devicename>ipl</devicename> (όπως περιγράφεται στην ενότητα
+ LOGGING που ακολουθεί) αν οι παράμετροι της επιλογής ταιριάζουν με
+ το πακέτο.</para>
+
+ <para>To <literal>quick</literal> δείχνει ότι αν οι παράμετροι της
+ επιλογής ταιριάζουν με το πακέτο, ο συγκεκριμένος κανόνας θα είναι
+ και ο τελευταίος κανόνας που θα ελεγχθεί. Η επιλογή αυτή είναι
+ υποχρεωτική για τη σύγχρονη λογική επεξεργασίας πακέτων.</para>
+
+ <para>Το <literal>on</literal> δείχνει το όνομα της διεπαφής που θα
+ ενσωματωθεί στις παραμέτρους επιλογής. Τα ονόματα των διεπαφών
+ φαίνονται όταν εκτελείται η εντολή &man.ifconfig.8;.
+ Χρησιμοποιώντας την επιλογή αυτή, ο κανόνας θα ελεγχθεί μόνο αν το
+ πακέτο διέρχεται μέσω της συγκεκριμένης διεπαφής και προς τη
+ συγκεκριμένη κατεύθυνση (εισερχόμενα/εξερχόμενα). Η επιλογή αυτή
+ είναι υποχρεωτική για την σύγχρονη λογική επεξεργασίας των
+ κανόνων.</para>
+
+ <para>Όταν γίνεται καταγραφή ενός πακέτου, οι επικεφαλίδες γράφονται
+ στην ψευδο-συσκευή καταγραφής πακέτων <acronym>IPL</acronym>.
+ Μετά την εντολή <literal>log</literal>, μπορούν να χρησιμοποιηθούν
+ οι παρακάτω παράμετροι (με τη σειρά που φαίνονται):</para>
+
+ <para>Το <literal>body</literal> δείχνει ότι θα γίνει καταγραφή των
+ πρώτων 128 bytes των περιεχομένων του πακέτου, που βρίσκονται αμέσως
+ μετά την επικεφαλίδα.</para>
+
+ <para>Η επιλογή <literal>first</literal> συνίσταται να χρησιμοποιηθεί
+ αν η επιλογή <literal>log</literal> χρησιμοποιείται σε συνδυασμό
+ με την <literal>keep state</literal>. Με τον τρόπο αυτό γίνεται
+ καταγραφή μόνο του πρώτου πακέτου (με το οποίο ξεκίνησε η
+ επικοινωνία), και όχι όλων των υπολοίπων τα οποία ταιριάζουν με την
+ πληροφορία <quote>keep state</quote>.</para>
+ </sect3>
+
+ <sect3>
+ <title>SELECTION</title>
+
+ <para>Οι λέξεις κλειδιά που περιγράφονται σε αυτή την ενότητα,
+ χρησιμοποιούνται για να περιγράψουν ποιες ιδιότητες του πακέτου
+ θα διερευνηθούν για να καθοριστεί αν ταιριάζει ή όχι με τους
+ κανόνες. Μια λέξη-κλειδί ορίζει το κεντρικό θέμα και ακολουθείται
+ από άλλες λέξεις που ορίζουν τις ακριβείς επιλογές. Πρέπει πάντοτε
+ να επιλέγεται μια από αυτές τις λέξεις. Παρέχονται οι παρακάτω
+ ιδιότητες γενικής χρήσης οι οποίες πρέπει να χρησιμοποιηθούν με
+ αυτή τη σειρά:</para>
+ </sect3>
+
+ <sect3>
+ <title>PROTO</title>
+
+ <para>Το <literal>proto</literal> είναι η βασική λέξη, και πρέπει
+ να γράφεται μαζί με κάποια αντίστοιχη τιμή για περαιτέρω επιλογή.
+ Η τιμή επιτρέπει το ταίριασμα με ένα συγκεκριμένο πρωτόκολλο. Είναι
+ υποχρεωτικό να χρησιμοποιηθεί για να λειτουργεί η σύγχρονη λογική
+ επεξεργασίας των κανόνων.</para>
+
+ <para>Τα ονόματα πρωτοκόλλων που αναγνωρίζονται και μπορούν να
+ χρησιμοποιηθούν, είναι τα
+ <literal>tcp/udp | udp | tcp | icmp</literal> ή οποιαδήποτε άλλα
+ εμφανίζονται στο <filename>/etc/protocols</filename>. Μπορείτε να
+ χρησιμοποιήσετε το ειδικό όνομα <literal>tcp/udp</literal> το οποίο
+ ταιριάζει είτε με πακέτο <acronym>TCP</acronym> είτε με
+ <acronym>UDP</acronym>. Η ειδική αυτή ονομασία προστέθηκε ώστε να
+ αποφεύγονται διπλοί, αλλά κατά τα άλλα όμοιοι, κανόνες.</para>
+ </sect3>
+
+ <sect3>
+ <title>SRC_ADDR/DST_ADDR</title>
+
+ <para>Η λέξη <literal>all</literal> είναι ουσιαστικά συνώνυμη με την
+ φράση <quote>from any to any</quote> χωρίς να υπάρχουν άλλες
+ παράμετροι για το ταίριασμα.</para>
+
+ <para>Όταν χρησιμοποιείται το <literal>from src to dst</literal>, οι
+ λέξεις <literal>from</literal> και <literal>to</literal> δηλώνουν
+ διευθύνσεις IP που θα χρησιμοποιηθούν για το ταίριασμα. Οι κανόνες
+ πρέπει να καθορίζουν τις παραμέτρους τόσο της αφετηρίας όσο και του
+ προορισμού. Η λέξη <literal>any</literal> έχει την ειδική ιδιότητα
+ να ταιριάζει με οποιαδήποτε διεύθυνση IP. Παραδείγματα χρήσης:
+ <literal>from any to any</literal> ή
+ <literal>from 0.0.0.0/0 to any</literal> ή
+ <literal>from any to 0.0.0.0/0</literal> ή
+ <literal>from 0.0.0.0 to any</literal> ή
+ <literal>from any to 0.0.0.0</literal>.</para>
+
+ <para>Δεν υπάρχει τρόπος να περιγραφούν περιοχές IP διευθύνσεων που
+ δεν μπορούν να εκφραστούν εύκολα με τη μορφή αριθμών χωρισμένων με
+ τελείες / μάσκας υποδικτύου. Μπορείτε να χρησιμοποιήσετε το
+ βοηθητικό πρόγραμμα <filename
+ role="package">net-mgmt/ipcalc</filename> για διευκόλυνση σας
+ στους υπολογισμούς. Δείτε την δικτυακή τοποθεσία του προγράμματος
+ για περισσότερες πληροφορίες: <ulink
+ url="http://jodies.de/ipcalc"></ulink>.</para>
+ </sect3>
+
+ <sect3>
+ <title>PORT</title>
+
+ <para>Το ταίριασμα με κάποια συγκεκριμένη θύρα αφετηρίας ή/και
+ προορισμού (αν υπάρχει) εφαρμόζεται μόνο σε πακέτα
+ <acronym>TCP</acronym> και <acronym>UDP</acronym>. Κατά την
+ δημιουργία συγκρίσεων με θύρες, μπορείτε είτε να χρησιμοποιήσετε τον
+ αριθμό της θύρας, είτε το όνομα της αντίστοιχης υπηρεσίας
+ από το αρχείο <filename>/etc/services</filename>. Όταν η θύρα
+ εμφανίζεται ως τμήμα του αντικειμένου <literal>from</literal>, το
+ ταίριασμα θα γίνει με την θύρα της αφετηρίας. Όταν εμφανίζεται ως
+ τμήμα του αντικειμένου <literal>to</literal>, το ταίριασμα θα γίνει
+ με τη θύρα προορισμού. Για να λειτουργεί η σύγχρονη λογική
+ ταιριάσματος κανόνων, θα πρέπει οπωσδήποτε να υπάρχει η επιλογή
+ θύρας στο αντικείμενο <literal>to</literal>. Παράδειγμα χρήσης:
+ <literal>from any to any port = 80</literal></para>
+
+ <!-- XXX: Μάλλον θέλει και άλλες διορθώσεις -->
+
+ <para>Οι συγκρίσεις που αναφέρονται σε μια μόνο θύρα, μπορούν να
+ γίνουν με πολλούς διαφορετικούς τρόπους, χρησιμοποιώντας
+ διαφορετικούς τελεστές σύγκρισης. Είναι επίσης δυνατόν να
+ καθοριστούν ολόκληρες περιοχές από θύρες.</para>
+
+ <para>port "=" | "!=" | "&lt;" | "&gt;" | "&lt;=" | "&gt;=" |
+ "eq" | "ne" | "lt" | "gt" | "le" | "ge".</para>
+
+ <para>Για να καθορίσετε περιοχές θυρών, χρησιμοποιήστε
+ port "&lt;&gt;" | "&gt;&lt;"</para>
+
+ <warning>
+ <para>Μετά τις παραμέτρους για το ταίριασμα της αφετηρίας και του
+ προορισμού, οι παρακάτω δύο παράμετροι είναι υποχρεωτικές για να
+ λειτουργεί η σύγχρονη λογική επεξεργασίας των κανόνων.</para>
+ </warning>
+ </sect3>
+
+ <sect3>
+ <title><acronym>TCP</acronym>_FLAG</title>
+
+ <para>Τα flags είναι ενεργά μόνο στο φιλτράρισμα του πρωτοκόλλου
+ <acronym>TCP</acronym>. Το κάθε γράμμα αντιπροσωπεύει ένα πιθανό
+ flag το για το οποίο γίνεται ανίχνευση στην επικεφαλίδα του πακέτου
+ <acronym>TCP</acronym>.</para>
+
+ <para>Η σύγχρονη λογική επεξεργασίας των κανόνων, χρησιμοποιεί την
+ παράμετρο <literal>flags S</literal> για την αναγνώριση της έναρξης
+ μια συνεδρίας tcp.</para>
+ </sect3>
+
+ <sect3>
+ <title>STATEFUL</title>
+
+ <para>Σε ένα κανόνα που επιτρέπει (pass) το πέρασμα των πακέτων, η
+ επιλογή <literal>keep state</literal> δείχνει ότι θα πρέπει να
+ ενεργοποιείται η λειτουργία stateful filtering όταν το πακέτο
+ ταιριάζει με τα κριτήρια επιλογής.</para>
+
+ <note>
+ <para>Η επιλογή αυτή είναι υποχρεωτική για τη λειτουργία της
+ σύγχρονης λογικής επεξεργασίας κανόνων.</para>
+ </note>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Φιλτράρισμα με Διατήρηση της Κατάστασης (stateful)</title>
+
+ <indexterm>
+ <primary>IPFILTER</primary>
+ <secondary>stateful filtering</secondary>
+ </indexterm>
+
+ <!-- XXX: duplicated -->
+
+ <para>Το stateful φιλτράρισμα, αντιμετωπίζει την κίνηση του δικτύου ως
+ μιας διπλής κατεύθυνσης ανταλλαγή πακέτων τα οποία δημιουργούν μια
+ συνεδρία. Όταν ενεργοποιηθεί, η διατήρηση της κατάστασης
+ (keep-state) δημιουργεί δυναμικά εσωτερικούς κανόνες για κάθε πακέτο
+ το οποίο ανταλλάσσεται κατά τη διάρκεια αυτής της συνεδρίας.
+ Έχει επίσης τη δυνατότητα να διερευνήσει αν ακολουθούνται οι έγκυροι
+ κανόνες ανταλλαγής μηνυμάτων μεταξύ του αποστολέα και του παραλήπτη.
+ Οποιαδήποτε πακέτα δεν ταιριάζουν με το πρότυπο αυτής της
+ επικοινωνίας, απορρίπτονται ως ψεύτικα.</para>
+
+ <para>Η διατήρηση της κατάστασης επιτρέπει επίσης να περάσουν τα
+ πακέτα <acronym>ICMP</acronym> που σχετίζονται με μια συνεδρία
+ <acronym>TCP</acronym> ή <acronym>UDP</acronym>. Έτσι, αν ληφθούν
+ πακέτα <acronym>ICMP</acronym> τύπου 3 code 4 ως απάντηση κατά τη
+ διάρκεια της επίσκεψης σας σε μια ιστοσελίδα, (η οποία επιτρέπεται
+ από τον αντίστοιχο κανόνα εξερχομένων), θα τους επιτραπεί η είσοδος.
+ Οποιοδήποτε πακέτο για το οποίο το IPF είναι σίγουρο ότι πρόκειται
+ για τμήμα μιας ενεργής συνεδρίας, θα περάσει ακόμα και αν είναι
+ διαφορετικό πρωτόκολλο.</para>
+
+ <para>Αυτό που συμβαίνει είναι το παρακάτω:</para>
+
+ <para>Τα πακέτα που προορίζονται να εξέλθουν μέσω της διεπαφής που
+ συνδέεται στο Internet, ελέγχονται αρχικά σύμφωνα με το δυναμικό
+ πίνακα καταστάσεων. Αν το πακέτο ταιριάζει με το επόμενο που
+ αναμένεται σε μια ενεργή συνεδρία, εξέρχεται από το firewall και
+ ταυτόχρονα ενημερώνεται η κατάσταση της συγκεκριμένης συνεδρίας στον
+ παραπάνω δυναμικό πίνακα. Τα υπόλοιπα πακέτα (που δεν ταιριάζουν με
+ κάποια συνεδρία σε εξέλιξη) ελέγχονται σύμφωνα με το σύνολο κανόνων
+ για τα εξερχόμενα πακέτα.</para>
+
+ <para>Τα πακέτα που έρχονται από τη διεπαφή που είναι συνδεμένη με το
+ Internet, ελέγχονται αρχικά μέσω του δυναμικού πίνακα καταστάσεων.
+ Αν το πακέτο ταιριάζει με το επόμενο που αναμένεται σε μια ενεργή
+ συνεδρία, εξέρχεται από το firewall και ταυτόχρονα ενημερώνεται
+ η κατάσταση της συγκεκριμένης συνεδρίας στον παραπάνω πίνακα. Τα
+ υπόλοιπα πακέτα (που δεν ταιριάζουν με κάποια συνεδρία σε εξέλιξη)
+ ελέγχονται σύμφωνα με το σύνολο κανόνων για τα εισερχόμενα
+ πακέτα.</para>
+
+ <para>Όταν η επικοινωνία ολοκληρωθεί, διαγράφεται από τον δυναμικό
+ πίνακα καταστάσεων.</para>
+
+ <para>Το stateful φιλτράρισμα επιτρέπει να εστιάσουμε την προσοχή μας
+ στην αποδοχή ή απόρριψη των νέων συνδέσεων. Αν επιτραπεί μια νέα
+ συνεδρία, όλα τα υπόλοιπα πακέτα της θα επιτρέπονται αυτόματα, ενώ
+ τυχόν ψεύτικα πακέτα θα απορρίπτονται επίσης αυτόματα. Το stateful
+ φιλτράρισμα διαθέτει μια σειρά από προχωρημένες ικανότητες διερεύνησης
+ των πακέτων, με δυνατότητα να αμύνεται σε πολλές διαφορετικές
+ μεθόδους που χρησιμοποιούν οι επιτιθέμενοι.</para>
+ </sect2>
+
+ <sect2>
+ <!-- XXX: This section needs a rewrite -->
+
+ <title>Παράδειγμα Συνόλου Κανόνων για ένα Inclusive Firewall</title>
+
+ <para>Το παρακάτω σύνολο κανόνων δίνεται ως παράδειγμα για
+ να φτιάξετε ένα ιδιαίτερα ασφαλές inclusive firewall. Ένα inclusive
+ firewall επιτρέπει το πέρασμα μόνο των υπηρεσιών που ταιριάζουν με
+ τους κανόνες που έχει για αποδοχή πακέτων, και απορρίπτει όλα τα
+ υπόλοιπα. Τα firewalls που προστατεύουν άλλα μηχανήματα (τα οποία
+ καλούνται και <quote>network firewalls</quote>) θα πρέπει να διαθέτουν
+ τουλάχιστον δύο διεπαφές. Η μια διεπαφή συνδέεται με το τοπικό δίκτυο
+ (<acronym>LAN</acronym>) το οποίο θεωρείται έμπιστο, και η άλλη με
+ το δημόσιο Internet. Εναλλακτικά, ένα firewall μπορεί να
+ προστατεύει μόνο το σύστημα στο οποίο εκτελείται&mdash;αυτό καλείται
+ <quote>host based firewall</quote> και είναι κατάλληλο ιδιαίτερα
+ για εξυπηρετητές που λειτουργούν σε μη έμπιστα δίκτυα.</para>
+
+ <para>Όλα τα συστήματα τύπου &unix;, συμπεριλαμβανομένου και του &os;,
+ έχουν σχεδιαστεί να χρησιμοποιούν την διεπαφή
+ <devicename>lo0</devicename> και την IP διεύθυνση
+ <hostid role="ipaddr">127.0.0.1</hostid> για εσωτερική επικοινωνία
+ μέσα στο ίδιο το λειτουργικό σύστημα. Το firewall πρέπει να περιέχει
+ κανόνες που να επιτρέπουν την ελεύθερη και χωρίς περιορισμούς κίνηση
+ των ειδικών αυτών εσωτερικών πακέτων.</para>
+
+ <para>Οι κανόνες που εξουσιοδοτούν την πρόσβαση προς το Internet,
+ ορίζονται στην διεπαφή του δικτύου που συνδέεται σε αυτό. Οι κανόνες
+ αυτοί ελέγχουν τόσο την εισερχόμενη όσο και την εξερχόμενη κίνηση
+ στο Internet. Η διεπαφή αυτή μπορεί να είναι η
+ <devicename>tun0</devicename> που χρησιμοποιείται στο PPP χρήστη, ή
+ ακόμα και η κάρτα δικτύου που συνδέεται σε ένα DSL router ή
+ modem.</para>
+
+ <para>Σε περίπτωση που μια ή περισσότερες κάρτες δικτύου συνδέονται σε
+ εσωτερικά ιδιωτικά δίκτυα πίσω από το firewall, θα πρέπει να υπάρχουν
+ οι αντίστοιχοι κανόνες που να επιτρέπουν την ελεύθερη διακίνηση των
+ πακέτων ανάμεσα στις διεπαφές αυτές ή/και στο Internet.</para>
+
+ <para>Οι κανόνες πρέπει να οργανώνονται σε τρεις κύριες ενότητες: αρχικά
+ όλες οι διεπαφές στις οποίες επιτρέπεται η ελεύθερη διακίνηση
+ δεδομένων, έπειτα η διεπαφή από την οποία εξέρχονται τα πακέτα προς
+ το δημόσιο δίκτυο (Internet) και τέλος η διεπαφή από την οποία
+ λαμβάνονται πακέτα από το Internet.</para>
+
+ <para>Σε κάθε μια από τις ενότητες των διεπαφών που
+ συνδέονται στο Internet, πρέπει να τοποθετούνται πρώτοι οι κανόνες
+ που ταιριάζουν συχνότερα με την αντίστοιχη κίνηση. Ο τελευταίος
+ κανόνας της ενότητας θα πρέπει να απορρίπτει και να καταγράφει όλα τα
+ πακέτα της συγκεκριμένης διεπαφής/κατεύθυνσης.</para>
+
+ <para>Η ενότητα των Εξερχομένων (Outbound) στο ακόλουθο σύνολο κανόνων,
+ περιέχει μόνο κανόνες τύπου <literal>pass</literal> οι οποίοι
+ επιτρέπουν (μέσω κατάλληλων τιμών στις παραμέτρους τους) σε
+ συγκεκριμένες υπηρεσίες να αποκτήσουν πρόσβαση στο Internet. Όλοι οι
+ κανόνες διαθέτουν τις επιλογές <literal>quick</literal>,
+ <literal>on</literal>, <literal>proto</literal>,
+ <literal>port</literal> και <literal>keep state</literal>. Οι κανόνες
+ <literal>proto tcp</literal> περιλαμβάνουν την επιλογή
+ <literal>flag</literal> ώστε να αναγνωρίζουν την αίτηση έναρξης της
+ συνεδρίας και να ενεργοποιούν τη λειτουργία διατήρησης της
+ κατάστασης (stateful).</para>
+
+ <para>Στην ενότητα των εισερχόμενων πακέτων (Inbound) που φαίνεται
+ παρακάτω, πρώτοι εμφανίζονται οι κανόνες που χρησιμοποιούνται για την
+ απόρριψη των ανεπιθύμητων πακέτων. Αυτό γίνεται για δύο διαφορετικούς
+ λόγους. Ο πρώτος είναι ότι τα κακόβουλα πακέτα μπορεί εν μέρει να
+ ταιριάζουν με κάποια χαρακτηριστικά της έγκυρης κίνησης. Τα πακέτα
+ αυτά θα πρέπει να απορριφθούν, αντί να γίνουν δεκτά από κάποιο
+ επόμενο κανόνα <literal>allow</literal>. Ο δεύτερος είναι ότι
+ μπορείτε να απορρίψετε συγκεκριμένα πακέτα τα οποία γνωρίζετε ότι δεν
+ είναι έγκυρα, αλλά σας είναι αδιάφορη η καταγραφή τους. Με τον τρόπο
+ αυτό εμποδίζεται η λήψη και καταγραφή τους από τον τελευταίο κανόνα.
+ Ο τελευταίος κανόνας τυπικά απορρίπτει και καταγράφει όλα τα πακέτα
+ που έφτασαν μέχρι αυτόν. Ο κανόνας αυτός χρησιμοποιείται για την
+ παροχή νομικών αποδείξεων σε περίπτωση που κινήσετε δικαστική
+ διαδικασία κατά ατόμων που προέβησαν σε επιθέσεις στο σύστημα
+ σας.</para>
+
+ <para>Θα πρέπει επίσης να εξασφαλίσετε ότι το σύστημα σας δεν θα δώσει
+ καμιά απάντηση σε κανένα από τα ανεπιθύμητα πακέτα. Τα πακέτα αυτά
+ θα πρέπει να απορριφθούν και να εξαφανιστούν. Με τον τρόπο αυτό, ο
+ επιτιθέμενος δεν έχει καμιά γνώση αν τα πακέτα του έφτασαν μέχρι το
+ σύστημα σας. Όσο λιγότερα μπορούν να μάθουν οι επιτιθέμενοι σχετικά
+ με το σύστημα σας, τόσο περισσότερο χρόνο θα χρειαστεί να επενδύσουν
+ για να καταφέρουν να σας βλάψουν στα αλήθεια. Οι κανόνες με την
+ επιλογή <literal>log first</literal> καταγράφουν το συμβάν μόνο την
+ πρώτη φορά που ενεργοποιούνται. Η επιλογή αυτή περιλαμβάνεται στον
+ κανόνα <literal>nmap OS fingerprint</literal> στο παράδειγμα που
+ φαίνεται παρακάτω. Το βοηθητικό πρόγραμμα <filename
+ role="package">security/nmap</filename> χρησιμοποιείται συχνά
+ από κακόβουλα άτομα, που προσπαθούν με αυτό τον τρόπο να
+ αναγνωρίσουν το λειτουργικό σύστημα του μηχανήματος σας.</para>
+
+ <para>Κάθε φορά που υπάρχει καταγραφή από κάποιο κανόνα με την επιλογή
+ <literal>log first</literal>, θα πρέπει να εκτελέσετε την εντολή
+ <command>ipfstat -hio</command> για να δείτε πόσες φορές έχει
+ ενεργοποιηθεί αυτός ο κανόνας συνολικά. Έτσι θα ξέρετε αν π.χ. σας
+ κάνουν επίθεση υπερχείλισης (flood).</para>
+
+ <para>Δείτε το αρχείο <filename>/etc/services</filename> για να βρείτε
+ αριθμούς θυρών που δεν αναγνωρίζετε. Μπορείτε επίσης να επισκεφθείτε
+ την τοποθεσία <ulink
+ url="http://www.securitystats.com/tools/portsearch.php"></ulink>
+ και να κάνετε αναζήτηση για τη συγκεκριμένη θύρα, ώστε να δείτε ποια
+ υπηρεσία εξυπηρετεί.</para>
+
+ <para>Δείτε την επόμενη τοποθεσία για τις θύρες που χρησιμοποιούνται
+ συνήθως από κακόβουλα προγράμματα (trojans): <ulink
+ url="http://www.simovits.com/trojans/trojans.html"></ulink>.</para>
+
+ <para>Το παρακάτω σύνολο κανόνων είναι αρκετά πλήρες και πολύ ασφαλές.
+ Δημιουργεί firewall τύπου <literal>inclusive</literal>, και έχει
+ δοκιμαστεί σε πραγματικές συνθήκες λειτουργίας. Μπορεί να
+ εξυπηρετήσει το ίδιο καλά και το δικό σας σύστημα. Απλώς μετατρέψτε
+ σε σχόλιο τους κανόνες για τις υπηρεσίες που δεν θέλετε να
+ ενεργοποιήσετε.</para>
+
+ <para>Για να αποφύγετε την καταγραφή ανεπιθύμητων μηνυμάτων,
+ απλώς προσθέστε ένα αντίστοιχο κανόνα απόρριψης
+ (<literal>block</literal>) στην ενότητα των εισερχομένων
+ (inbound).</para>
+
+ <para>Θα πρέπει να αλλάξετε το όνομα της διεπαφής
+ <devicename>dc0</devicename> του παραδείγματος, με το πραγματικό όνομα
+ της κάρτας δικτύου που συνδέει το σύστημα σας με το Internet. Για
+ όσους χρησιμοποιούν το PPP χρήστη, το όνομα θα είναι
+ <devicename>tun0</devicename>.</para>
+
+ <para>Προσθέστε τις ακόλουθες καταχωρίσεις στο αρχείο
+ <filename>/etc/ipf.rules</filename>:</para>
+
+ <programlisting>#################################################################
+# No restrictions on Inside LAN Interface for private network
+# Not needed unless you have LAN
+#################################################################
+
+#pass out quick on xl0 all
+#pass in quick on xl0 all
+
+#################################################################
+# No restrictions on Loopback Interface
+#################################################################
+pass in quick on lo0 all
+pass out quick on lo0 all
+
+#################################################################
+# Interface facing Public Internet (Outbound Section)
+# Match session start requests originating from behind the
+# firewall on the private network
+# or from this gateway server destined for the public Internet.
+#################################################################
+
+# Allow out access to my ISP's Domain name server.
+# xxx must be the IP address of your ISP's DNS.
+# Dup these lines if your ISP has more than one DNS server
+# Get the IP addresses from /etc/resolv.conf file
+pass out quick on dc0 proto tcp from any to xxx port = 53 flags S keep state
+pass out quick on dc0 proto udp from any to xxx port = 53 keep state
+
+# Allow out access to my ISP's DHCP server for cable or DSL networks.
+# This rule is not needed for 'user ppp' type connection to the
+# public Internet, so you can delete this whole group.
+# Use the following rule and check log for IP address.
+# Then put IP address in commented out rule &amp; delete first rule
+pass out log quick on dc0 proto udp from any to any port = 67 keep state
+#pass out quick on dc0 proto udp from any to z.z.z.z port = 67 keep state
+
+
+# Allow out non-secure standard www function
+pass out quick on dc0 proto tcp from any to any port = 80 flags S keep state
+
+# Allow out secure www function https over TLS SSL
+pass out quick on dc0 proto tcp from any to any port = 443 flags S keep state
+
+# Allow out send &amp; get email function
+pass out quick on dc0 proto tcp from any to any port = 110 flags S keep state
+pass out quick on dc0 proto tcp from any to any port = 25 flags S keep state
+
+# Allow out Time
+pass out quick on dc0 proto tcp from any to any port = 37 flags S keep state
+
+# Allow out nntp news
+pass out quick on dc0 proto tcp from any to any port = 119 flags S keep state
+
+# Allow out gateway &amp; LAN users' non-secure FTP ( both passive &amp; active modes)
+# This function uses the IP<acronym>NAT</acronym> built in FTP proxy function coded in
+# the nat rules file to make this single rule function correctly.
+# If you want to use the pkg_add command to install application packages
+# on your gateway system you need this rule.
+pass out quick on dc0 proto tcp from any to any port = 21 flags S keep state
+
+# Allow out ssh/sftp/scp (telnet/rlogin/FTP replacements)
+# This function is using SSH (secure shell)
+pass out quick on dc0 proto tcp from any to any port = 22 flags S keep state
+
+# Allow out insecure Telnet
+pass out quick on dc0 proto tcp from any to any port = 23 flags S keep state
+
+# Allow out FreeBSD CVSup function
+pass out quick on dc0 proto tcp from any to any port = 5999 flags S keep state
+
+# Allow out ping to public Internet
+pass out quick on dc0 proto icmp from any to any icmp-type 8 keep state
+
+# Allow out whois from LAN to public Internet
+pass out quick on dc0 proto tcp from any to any port = 43 flags S keep state
+
+# Block and log only the first occurrence of everything
+# else that's trying to get out.
+# This rule implements the default block
+block out log first quick on dc0 all
+
+#################################################################
+# Interface facing Public Internet (Inbound Section)
+# Match packets originating from the public Internet
+# destined for this gateway server or the private network.
+#################################################################
+
+# Block all inbound traffic from non-routable or reserved address spaces
+block in quick on dc0 from 192.168.0.0/16 to any #RFC 1918 private IP
+block in quick on dc0 from 172.16.0.0/12 to any #RFC 1918 private IP
+block in quick on dc0 from 10.0.0.0/8 to any #RFC 1918 private IP
+block in quick on dc0 from 127.0.0.0/8 to any #loopback
+block in quick on dc0 from 0.0.0.0/8 to any #loopback
+block in quick on dc0 from 169.254.0.0/16 to any #DHCP auto-config
+block in quick on dc0 from 192.0.2.0/24 to any #reserved for docs
+block in quick on dc0 from 204.152.64.0/23 to any #Sun cluster interconnect
+block in quick on dc0 from 224.0.0.0/3 to any #Class D &amp; E multicast
+
+##### Block a bunch of different nasty things. ############
+# That I do not want to see in the log
+
+# Block frags
+block in quick on dc0 all with frags
+
+# Block short tcp packets
+block in quick on dc0 proto tcp all with short
+
+# block source routed packets
+block in quick on dc0 all with opt lsrr
+block in quick on dc0 all with opt ssrr
+
+# Block nmap OS fingerprint attempts
+# Log first occurrence of these so I can get their IP address
+block in log first quick on dc0 proto tcp from any to any flags FUP
+
+# Block anything with special options
+block in quick on dc0 all with ipopts
+
+# Block public pings
+block in quick on dc0 proto icmp all icmp-type 8
+
+# Block ident
+block in quick on dc0 proto tcp from any to any port = 113
+
+# Block all Netbios service. 137=name, 138=datagram, 139=session
+# Netbios is MS/Windows sharing services.
+# Block MS/Windows hosts2 name server requests 81
+block in log first quick on dc0 proto tcp/udp from any to any port = 137
+block in log first quick on dc0 proto tcp/udp from any to any port = 138
+block in log first quick on dc0 proto tcp/udp from any to any port = 139
+block in log first quick on dc0 proto tcp/udp from any to any port = 81
+
+# Allow traffic in from ISP's DHCP server. This rule must contain
+# the IP address of your ISP's DHCP server as it's the only
+# authorized source to send this packet type. Only necessary for
+# cable or DSL configurations. This rule is not needed for
+# 'user ppp' type connection to the public Internet.
+# This is the same IP address you captured and
+# used in the outbound section.
+pass in quick on dc0 proto udp from z.z.z.z to any port = 68 keep state
+
+# Allow in standard www function because I have apache server
+pass in quick on dc0 proto tcp from any to any port = 80 flags S keep state
+
+# Allow in non-secure Telnet session from public Internet
+# labeled non-secure because ID/PW passed over public Internet as clear text.
+# Delete this sample group if you do not have telnet server enabled.
+#pass in quick on dc0 proto tcp from any to any port = 23 flags S keep state
+
+# Allow in secure FTP, Telnet, and SCP from public Internet
+# This function is using SSH (secure shell)
+pass in quick on dc0 proto tcp from any to any port = 22 flags S keep state
+
+# Block and log only first occurrence of all remaining traffic
+# coming into the firewall. The logging of only the first
+# occurrence avoids filling up disk with Denial of Service logs.
+# This rule implements the default block.
+block in log first quick on dc0 all
+################### End of rules file #####################################</programlisting>
+ </sect2>
+
+ <sect2>
+ <title><acronym>NAT</acronym></title>
+ <indexterm><primary>NAT</primary></indexterm>
+
+ <indexterm>
+ <primary>IP masquerading</primary>
+ <see>NAT</see>
+ </indexterm>
+
+ <indexterm>
+ <primary>network address translation</primary>
+ <see>NAT</see>
+ </indexterm>
+
+ <para>Το <acronym>NAT</acronym> είναι ακρωνύμιο των λέξεων
+ <emphasis>Network Address Translation</emphasis> ή Μετάφραση
+ Διευθύνσεων Δικτύου. Για όσους είναι εξοικειωμένοι με το &linux;,
+ βασίζεται στην αρχή του IP Masquerading. Στην πραγματικότητα το
+ <acronym>NAT</acronym> και το IP Masquerading είναι το ίδιο πράγμα.
+ Μια από τις πολλές δυνατότητες που παρέχει η λειτουργία
+ <acronym>NAT</acronym> του IPF, είναι και η δυνατότητα να έχουμε ένα
+ ιδιωτικό τοπικό δίκτυο (LAN) πίσω από το firewall το οποίο να
+ μοιράζεται μια μοναδική δημόσια διεύθυνση IP στο Internet.</para>
+
+ <para>Ίσως να αναρωτηθείτε γιατί να θέλει κάποιος να το κάνει αυτό.
+ Οι ISPs συνήθως αποδίδουν δυναμικές διευθύνσεις σε μη εταιρικούς
+ πελάτες. Αυτό ουσιαστικά σημαίνει ότι η διεύθυνση IP που
+ αποδίδεται στο μηχάνημα σας, μπορεί να είναι διαφορετική κάθε φορά
+ που κάνετε κλήση για να συνδεθείτε. Για τους χρήστες DSL modem και
+ router, η αλλαγή διεύθυνσης πραγματοποιείται κάθε φορά που
+ ενεργοποιείται το modem. Η διεύθυνση IP που σας αποδίδεται από
+ τον ISP σας, είναι αυτή με την οποία φαίνεστε στο Internet.</para>
+
+ <para>Ας υποθέσουμε τώρα ότι έχετε πέντε PC στο σπίτι σας, και
+ χρειάζεστε σε όλα σύνδεση Internet. Κανονικά, θα έπρεπε να πληρώσετε
+ τον ISP σας χωριστό λογαριασμό για κάθε PC και να διαθέτετε πέντε
+ γραμμές τηλεφώνου.</para>
+
+ <para>Με το <acronym>NAT</acronym>, χρειάζεστε μόνο ένα λογαριασμό με
+ τον ISP σας. Μπορείτε απλώς να συνδέσετε τα τέσσερα PC σε ένα
+ διανομέα ή switch στο οποίο θα συνδέσετε επίσης και το &os; μηχάνημα
+ σας. Το μηχάνημα αυτό θα ενεργεί ως πύλη του τοπικού σας δικτύου για
+ το Internet. Το <acronym>NAT</acronym> θα μεταφράσει αυτόματα τις
+ ιδιωτικές διευθύνσεις IP του κάθε μηχανήματος στην μοναδική δημόσια
+ IP διεύθυνση που έχετε, καθώς το πακέτο φεύγει από το firewall και
+ κατευθύνεται προς το Internet. Εκτελεί επίσης και την αντίστροφη
+ μετάφραση για τα πακέτα που επιστρέφουν.</para>
+
+ <para>Υπάρχει μια ειδική περιοχή διευθύνσεων IP που έχουν παραχωρηθεί
+ για χρήση σε τοπικά δίκτυα με <acronym>NAT</acronym>. Σύμφωνα με το
+ RFC 1918, μπορείτε να χρησιμοποιήσετε για αυτό το σκοπό τις παρακάτω
+ περιοχές, οι οποίες δεν δρομολογούνται ποτέ απευθείας στο δημόσιο
+ Internet:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+
+ <colspec colwidth="1*">
+
+ <colspec colwidth="1*">
+
+ <tbody>
+ <row>
+ <entry>Αρχικό IP <hostid role="ipaddr">10.0.0.0</hostid></entry>
+
+ <entry>-</entry>
+
+ <entry>Τελικό IP <hostid role="ipaddr">10.255.255.255</hostid></entry>
+ </row>
+
+ <row>
+ <entry>Αρχικό IP <hostid role="ipaddr">172.16.0.0</hostid></entry>
+
+ <entry>-</entry>
+
+ <entry>Τελικό IP <hostid role="ipaddr">172.31.255.255</hostid></entry>
+ </row>
+
+ <row>
+ <entry>Αρχικό IP <hostid role="ipaddr">192.168.0.0</hostid></entry>
+
+ <entry>-</entry>
+
+ <entry>Τελικό IP <hostid role="ipaddr">192.168.255.255</hostid></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>IP<acronym>NAT</acronym></title>
+
+ <indexterm>
+ <primary>NAT</primary>
+ <secondary>and IPFILTER</secondary>
+ </indexterm>
+
+ <indexterm><primary><command>ipnat</command></primary></indexterm>
+
+ <para>Οι κανόνες του <acronym>NAT</acronym> φορτώνονται με τη χρήση της
+ εντολής <command>ipnat</command>. Τυπικά, οι κανόνες του
+ <acronym>NAT</acronym> αποθηκεύονται στο αρχείο
+ <filename>/etc/ipnat.rules</filename>. Δείτε τη σελίδα manual του
+ &man.ipnat.1; για λεπτομέρειες.</para>
+
+ <para>Για να αλλάξετε τους κανόνες του <acronym>NAT</acronym> καθώς αυτό
+ εκτελείται, τροποποιήστε το αρχείο που τους περιέχει, και εκτελέστε
+ την εντολή <command>ipnat</command> με την παράμετρο
+ <option>-CF</option> για να διαγράψετε τους εσωτερικούς κανόνες του
+ <acronym>NAT</acronym> και να αδειάσετε όλες τις ενεργές καταχωρίσεις
+ του πίνακα μεταφράσεων.</para>
+
+ <para>Για να φορτώσετε τους κανόνες του <acronym>NAT</acronym> από την
+ αρχή, εκτελέστε μια εντολή όπως την παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>ipnat -CF -f /etc/ipnat.rules</userinput></screen>
+
+ <para>Για να δείτε κάποια στατιστικά σχετικά με το
+ <acronym>NAT</acronym>, χρησιμοποιήστε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>ipnat -s</userinput></screen>
+
+ <para>Για να δείτε μια λίστα με τις τρέχουσες καταχωρίσεις του πίνακα
+ <acronym>NAT</acronym>, χρησιμοποιήστε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>ipnat -l</userinput></screen>
+
+ <para>Για να ενεργοποιήσετε την λεπτομερή απεικόνιση μηνυμάτων και να
+ δείτε πληροφορίες που σχετίζονται με την επεξεργασία των κανόνων και
+ τους ενεργούς κανόνες και καταχωρίσεις στον πίνακα, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>ipnat -v</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Κανόνες του IP<acronym>NAT</acronym></title>
+
+ <para>Οι κανόνες του <acronym>NAT</acronym> είναι αρκετά ευέλικτοι,
+ και διαθέτουν πλήθος δυνατοτήτων ώστε να καλύπτουν τις ανάγκες
+ των οικιακών αλλά και των επιχειρησιακών χρηστών.</para>
+
+ <para>Η σύνταξη των κανόνων που παρουσιάζεται εδώ, έχει απλοποιηθεί
+ ώστε να συμβαδίζει με τη συνήθη χρήση σε μη-εμπορικά περιβάλλοντα.
+ Για πιο πλήρη περιγραφή της σύνταξης, δείτε τη σελίδα manual του
+ &man.ipnat.5;.</para>
+
+ <para>Η σύνταξη ενός κανόνα <acronym>NAT</acronym> μοιάζει με την
+ παρακάτω:</para>
+
+ <programlisting>map <replaceable>IF</replaceable> <replaceable>LAN_IP_RANGE</replaceable> -&gt; <replaceable>PUBLIC_ADDRESS</replaceable></programlisting>
+
+ <para>Ο κανόνας ξεκινάει με τη λέξη <literal>map</literal>.</para>
+
+ <para>Αντικαταστήστε το <replaceable>IF</replaceable> με την εξωτερική
+ διεπαφή (τη κάρτα δικτύου που συνδέεται στο Internet).</para>
+
+ <para>Η παράμετρος <replaceable>LAN_IP_RANGE</replaceable> είναι η
+ περιοχή διευθύνσεων που χρησιμοποιείται από το εσωτερικό σας δίκτυο.
+ Στην πραγματικότητα θα μοιάζει με κάτι σαν το <hostid
+ role="ipaddr">192.168.1.0/24</hostid>.</para>
+
+ <para>Η παράμετρος <replaceable>PUBLIC_ADDRESS</replaceable> μπορεί να
+ είναι είτε η εξωτερική IP διεύθυνση, είτε η ειδική λέξη
+ <literal>0/32</literal>, η οποία σημαίνει ότι θα χρησιμοποιηθεί η
+ IP διεύθυνση που έχει αποδοθεί στο
+ <replaceable>IF</replaceable>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Πως λειτουργεί το <acronym>NAT</acronym></title>
+
+ <para>Ένα πακέτο φτάνει στο firewall από το LAN με προορισμό το
+ Internet. Περνάει διαμέσου των κανόνων φιλτραρίσματος εξερχομένων,
+ όπου γίνεται η επεξεργασία του από το <acronym>NAT</acronym>.
+ Οι κανόνες εφαρμόζονται από τον πρώτο και προς τα κάτω, και κερδίζει
+ ο πρώτος που ταιριάζει. Ο έλεγχος γίνεται με βάση τη διεπαφή από την
+ οποία λήφθηκε το πακέτο και τη διεύθυνση IP από την οποία προέρχεται.
+ Όταν το όνομα της διεπαφής ενός πακέτου ταιριάζει με κάποιο κανόνα του
+ <acronym>NAT</acronym>, η διεύθυνση IP της αφετηρίας (που προέρχεται
+ από το ιδιωτικό δίκτυο) ελέγχεται για να εξακριβωθεί αν ταιριάζει με
+ την περιοχή διευθύνσεων που καθορίζεται στην αριστερά πλευρά του
+ συμβόλου (βέλος) του κανόνα <acronym>NAT</acronym>. Αν ταιριάζει, η
+ διεύθυνση του πακέτου ξαναγράφεται, χρησιμοποιώντας τη δημόσια
+ διεύθυνση IP η οποία παρέχεται από το <literal>0/32</literal>. Το
+ <acronym>NAT</acronym> δημιουργεί μια καταχώριση στον εσωτερικό του
+ πίνακα, έτσι ώστε όταν επιστρέψει η απάντηση από το Internet, να
+ μπορεί να αντιστοιχηθεί ξανά στην αρχική ιδιωτική διεύθυνση IP και να
+ περάσει έπειτα από τους κανόνες του φίλτρου για περαιτέρω
+ επεξεργασία.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ενεργοποιώντας το IP<acronym>NAT</acronym></title>
+
+ <para>Για να ενεργοποιήσετε το IP<acronym>NAT</acronym>, προσθέστε τις
+ παρακάτω γραμμές στο <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Για να επιτρέψετε στο μηχάνημα σας να δρομολογεί πακέτα μεταξύ
+ διεπαφών δικτύου:</para>
+
+ <programlisting>gateway_enable="YES"</programlisting>
+
+ <para>Για να ξεκινάει αυτόματα το IP<acronym>NAT</acronym> σε κάθε
+ εκκίνηση:</para>
+
+ <programlisting>ipnat_enable="YES"</programlisting>
+
+ <para>Για να καθορίσετε από που επιθυμείτε να φορτώνονται οι κανόνες
+ του IP<acronym>NAT</acronym>:</para>
+
+ <programlisting>ipnat_rules="/etc/ipnat.rules"</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Το <acronym>NAT</acronym> σε Ένα Μεγάλο Τοπικό Δίκτυο</title>
+
+ <para>Για τοπικά δίκτυα με μεγάλο αριθμό υπολογιστών, ή για δίκτυα που
+ διασυνδέουν περισσότερα από ένα LAN, η διαδικασία της μετατροπής όλων
+ αυτών των ιδιωτικών διευθύνσεων σε μια μοναδική δημόσια διεύθυνση,
+ δημιουργεί πρόβλημα κατανομής πόρων, καθώς χρησιμοποιούνται πολλές
+ φορές οι ίδιοι αριθμοί θυρών, οδηγώντας τα PC του δικτύου σε
+ συγκρούσεις. Υπάρχουν δύο τρόποι για να ελαττώσουμε αυτό το
+ πρόβλημα.</para>
+
+ <sect3>
+ <title>Ανάθεση των θυρών που θα Χρησιμοποιηθούν</title>
+
+ <!-- What does it mean ? Is there something missing ?-->
+ <!-- XXXBLAH <- Apparently you can't start a sect
+ with a <programlisting> tag ?-->
+
+ <para>Ένα συνηθισμένος κανόνας NAT μοιάζει με τον παρακάτω:</para>
+
+ <programlisting>map dc0 192.168.1.0/24 -&gt; 0/32</programlisting>
+
+ <para>Στον παραπάνω κανόνα, η θύρα αφετηρίας του πακέτου παραμένει
+ αναλλοίωτη καθώς το πακέτο διέρχεται μέσω του
+ IP<acronym>NAT</acronym>. Αν προσθέσετε την λέξη-κλειδί
+ <literal>portmap</literal>, μπορείτε να ρυθμίσετε το
+ IP<acronym>NAT</acronym> να χρησιμοποιεί θύρες που ανήκουν σε μια
+ καθορισμένη περιοχή. Για παράδειγμα, ο παρακάτω κανόνας θα
+ οδηγήσει το <acronym>NAT</acronym> να τροποποιήσει την θύρα της
+ αφετηρίας, ώστε να είναι μέσα στην περιοχή που φαίνεται:</para>
+
+ <programlisting>map dc0 192.168.1.0/24 -&gt; 0/32 portmap tcp/udp 20000:60000</programlisting>
+
+ <para>Μπορούμε επίσης να απλοποιήσουμε ακόμα περισσότερο τη
+ διαδικασία χρησιμοποιώντας τη λέξη <literal>auto</literal> ώστε το
+ IP<acronym>NAT</acronym> να καθορίζει από μόνο του ποιες θύρες είναι
+ διαθέσιμες για χρήση:</para>
+
+ <programlisting>map dc0 192.168.1.0/24 -&gt; 0/32 portmap tcp/udp auto</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Χρησιμοποιώντας ένα Απόθεμα Δυναμικών Διευθύνσεων</title>
+
+ <para>Σε ένα πολύ μεγάλο τοπικό δίκτυο, αργά ή γρήγορα φτάνουμε στο
+ σημείο που μια μοναδική δημόσια διεύθυνση δεν επαρκεί για να καλύψει
+ τόσες πολλές ιδιωτικές. Αν υπάρχει διαθέσιμο ένα εύρος δημοσίων
+ διευθύνσεων, μπορούν να χρησιμοποιηθούν ως
+ <quote>απόθεμα (pool)</quote>, επιτρέποντας στην
+ IP<acronym>NAT</acronym> να επιλέξει μια από αυτές καθώς αντιστοιχεί
+ τα πακέτα κατά την έξοδο τους προς το δημόσιο δίκτυο.</para>
+
+ <para>Για παράδειγμα, αντί να αντιστοιχούν όλα τα πακέτα μέσω μιας
+ μοναδικής δημόσιας IP διεύθυνσης όπως παρακάτω:</para>
+
+ <programlisting>map dc0 192.168.1.0/24 -&gt; 204.134.75.1</programlisting>
+
+ <para>μπορούμε να χρησιμοποιήσουμε ένα εύρος IP διευθύνσεων, είτε με
+ τη χρήση μάσκας δικτύου:</para>
+
+ <programlisting>map dc0 192.168.1.0/24 -&gt; 204.134.75.0/255.255.255.0</programlisting>
+
+ <para>είτε με συμβολισμό CIDR:</para>
+
+ <programlisting>map dc0 192.168.1.0/24 -&gt; 204.134.75.0/24</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ανακατεύθυνση Θυρών</title>
+
+ <para>Είναι κοινή πρακτική να εγκαθίστανται υπηρεσίες όπως ο
+ εξυπηρετητής ιστοσελίδων, ταχυδρομείου, βάσης δεδομένων και DNS σε
+ διαφορετικά PC στο τοπικό δίκτυο. Στην περίπτωση αυτή, η κίνηση
+ πακέτων από αυτά τα μηχανήματα εξακολουθεί να χρειάζεται το
+ <acronym>NAT</acronym>, αλλά χρειάζεται επίσης να υπάρχει κάποιος
+ τρόπος να κατευθύνεται η εισερχόμενη κίνηση στα σωστά PC του δικτύου.
+ Το IP<acronym>NAT</acronym> έχει τις κατάλληλες δυνατότητες για την
+ επίλυση αυτού του προβλήματος. Για παράδειγμα, έστω ότι ένας
+ εξυπηρετητής ιστοσελίδων βρίσκεται στην διεύθυνση LAN <hostid
+ role="ipaddr">10.0.10.25</hostid> και η μοναδική δημόσια IP
+ είναι <hostid role="ipaddr">20.20.20.5</hostid>. Ο κανόνας που θα
+ γράφατε θα έμοιαζε με τον παρακάτω:</para>
+
+ <programlisting>rdr dc0 20.20.20.5/32 port 80 -&gt; 10.0.10.25 port 80</programlisting>
+
+ <para>ή:</para>
+
+ <programlisting>rdr dc0 0.0.0.0/0 port 80 -&gt; 10.0.10.25 port 80</programlisting>
+
+ <para>ή για ένα εξυπηρετητή DNS με διεύθυνση στο τοπικό δίκτυο <hostid
+ role="ipaddr">10.0.10.33</hostid> ο οποίος πρέπει να δέχεται
+ αναζητήσεις από το δημόσιο δίκτυο:</para>
+
+ <programlisting>rdr dc0 20.20.20.5/32 port 53 -&gt; 10.0.10.33 port 53 udp</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>FTP και <acronym>NAT</acronym></title>
+
+ <para>Το FTP είναι ένας δεινόσαυρος που έχει απομείνει από την εποχή
+ που το Internet ήταν στα αρχικά του στάδια, όπου τα ερευνητικά
+ εργαστήρια των πανεπιστήμιων ήταν συνδεμένα μεταξύ τους με
+ μισθωμένες γραμμές και οι ερευνητές το χρησιμοποιούσαν για να
+ στέλνουν αρχεία ο ένας στον άλλο. Την εποχή εκείνη, δεν υπήρχαν
+ ανησυχίες σχετικά με την ασφάλεια. Με το πέρασμα του χρόνου, το
+ FTP θάφτηκε στο πίσω μέρος του ταχέως εξελισσόμενου Internet. Δεν
+ εξελίχθηκε ποτέ ώστε να ξεπεράσει προβλήματα ασφάλειας, όπως π.χ. το
+ γεγονός ότι στέλνει το όνομα και τον κωδικό του χρήστη ως απλό
+ κείμενο. Το FTP έχει δυο καταστάσεις λειτουργίας, την ενεργή και την
+ παθητική. Η διαφορά είναι στο πως γίνεται η ανάκτηση του καναλιού
+ δεδομένων. Η παθητική λειτουργία είναι πιο ασφαλής, καθώς το
+ κανάλι δεδομένων αποτελεί το κύριο κανάλι της συνεδρίας. Μπορείτε να
+ βρείτε πολύ καλή περιγραφή του πρωτοκόλλου και των διαφορετικών τρόπων
+ λειτουργίας του, στο <ulink
+ url="http://www.slacksite.com/other/ftp.html"></ulink>.</para>
+
+ <sect3>
+ <title>Κανόνες του IP<acronym>NAT</acronym></title>
+
+ <para>Το IP<acronym>NAT</acronym> διαθέτει μια ειδική επιλογή για
+ διαμεσολάβηση FTP (proxy) η οποία μπορεί να καθοριστεί στον
+ κατάλληλο κανόνα του <acronym>NAT</acronym>. Μπορεί να
+ παρακολουθήσει όλα τα εξερχόμενα πακέτα για να ανιχνεύσει την
+ έναρξη μιας ενεργής ή παθητικής συνεδρίας FTP, και να δημιουργήσει
+ δυναμικά προσωρινούς κανόνες στο φίλτρο που να περιέχουν μόνο τον
+ αριθμό της θύρας που χρησιμοποιείται από το κανάλι δεδομένων. Αυτό
+ εξαλείφει το πρόβλημα ασφάλειας που δημιουργείται από το γεγονός
+ ότι διαφορετικά θα χρειαζόταν να ανοιχθεί μια μεγάλη περιοχή θυρών
+ (στην υψηλή περιοχή) στο firewall.</para>
+
+ <para>Ο παρακάτω κανόνας χειρίζεται όλα τα δεδομένα για το εσωτερικό
+ δίκτυο (LAN):</para>
+
+ <programlisting>map dc0 10.0.10.0/29 -&gt; 0/32 proxy port 21 ftp/tcp</programlisting>
+
+ <para>Ο παρακάτω κανόνας χειρίζεται την κίνηση FTP από την
+ πύλη (gateway):</para>
+
+ <programlisting>map dc0 0.0.0.0/0 -&gt; 0/32 proxy port 21 ftp/tcp</programlisting>
+
+ <para>Ο παρακάτω κανόνας χειρίζεται όλη την κίνηση από το εσωτερικό
+ LAN που δεν ανήκει στο πρωτόκολλο FTP:</para>
+
+ <programlisting>map dc0 10.0.10.0/29 -&gt; 0/32</programlisting>
+
+ <para>Ο κανόνας χαρτογράφησης του FTP τοποθετείται πριν από τον
+ κανονικό κανόνα χαρτογράφησης. Κάθε πακέτο ελέγχεται αρχικά από
+ τον κανόνα που βρίσκεται στην κορυφή. Αν ταιριάζει στη διεπαφή και
+ στην ιδιωτική διεύθυνση IP και πρόκειται για πακέτο FTP,
+ ο διαμεσολαβητής FTP δημιουργεί προσωρινούς κανόνες στο φίλτρο
+ οι οποίοι επιτρέπουν την εισερχόμενη και εξερχόμενη κίνηση FTP ενώ
+ ταυτόχρονα εκτελούν και την απαραίτητη μετάφραση
+ <acronym>NAT</acronym>. Όλα τα πακέτα που δεν ανήκουν σε μετάδοση
+ FTP δεν ταιριάζουν με τον πρώτο κανόνα, έτσι κατευθύνονται στον
+ τρίτο κανόνα, εξετάζονται όσο αφορά τη διεπαφή και το IP από το
+ οποίο προέρχονται, και γίνεται η αντίστοιχη μετάφραση τους από το
+ <acronym>NAT</acronym>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Κανόνες Φίλτρου για το IP<acronym>NAT</acronym></title>
+
+ <para>Όταν χρησιμοποιείται ο μεσολαβητής FTP, χρειάζεται μόνο ένας
+ κανόνας για το <acronym>NAT</acronym>.</para>
+
+ <para>Χωρίς το μεσολαβητή FTP, χρειάζονται οι παρακάτω τρεις
+ κανόνες:</para>
+
+ <programlisting># Allow out LAN PC client FTP to public Internet
+# Active and passive modes
+pass out quick on rl0 proto tcp from any to any port = 21 flags S keep state
+
+# Allow out passive mode data channel high order port numbers
+pass out quick on rl0 proto tcp from any to any port &gt; 1024 flags S keep state
+
+# Active mode let data channel in from FTP server
+pass in quick on rl0 proto tcp from any to any port = 20 flags S keep state</programlisting>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="firewalls-ipfw">
+ <title>IPFW</title>
+
+ <indexterm>
+ <primary>firewall</primary>
+ <secondary>IPFW</secondary>
+ </indexterm>
+
+ <para>Το IPFIREWALL (<acronym>IPFW</acronym>) είναι λογισμικό που
+ αναπτύχθηκε για το &os;. Έχει γραφεί και συντηρείται από εθελοντές που
+ ανήκουν στο Project. Χρησιμοποιεί τους κλασικούς κανόνες χωρίς
+ διατήρηση της κατάστασης (stateless) καθώς και μια τεχνική
+ κωδικοποίησης που επιτυγχάνει αυτό που αναφέρεται ως Απλή Stateful
+ Λογική (Simple Stateful Logic).</para>
+
+ <para>Το υπόδειγμα κανόνων για το IPFW (στα αρχεία
+ <filename>/etc/rc.firewall</filename> και
+ <filename>/etc/rc.firewall6</filename>) της τυπικής εγκατάστασης του
+ &os; είναι μάλλον απλό και θα χρειαστεί να κάνετε κάποιες αλλαγές
+ πριν το χρησιμοποιήσετε. Το παράδειγμα δεν χρησιμοποιεί φιλτράρισμα
+ τύπου stateful. Η stateful λειτουργία είναι ευεργετική στις
+ περισσότερες περιπτώσεις, έτσι δεν θα χρησιμοποιήσουμε αυτό το
+ παράδειγμα ως βάση αυτής της ενότητας.</para>
+
+ <para>Η σύνταξη των κανόνων stateless του IPFW έχει ενισχυθεί με
+ εξελιγμένες δυνατότητες επιλογής οι οποίες συνήθως ξεπερνάνε κατά πολύ
+ τις τυπικές γνώσεις του ατόμου που καλείται να το ρυθμίσει. Το IPFW
+ απευθύνεται στον επαγγελματία χρήστη ή τον τεχνικά προχωρημένο χομπίστα,
+ ο οποίος έχει ανάγκη προχωρημένου φιλτραρίσματος πακέτων. Η πραγματική
+ δύναμη των κανόνων του IPFW αποκαλύπτεται μόνο αν διαθέτετε προχωρημένες
+ γνώσεις σχετικά με το πως διαφορετικά πρωτόκολλα δημιουργούν και
+ χρησιμοποιούν την επικεφαλίδα των πακέτων τους. Τέτοιο επίπεδο
+ επεξηγήσεων είναι πέρα από το σκοπό αυτής της ενότητας του
+ Εγχειριδίου.</para>
+
+ <para>Το IPFW αποτελείται από επτά εξαρτήματα. Το βασικό εξάρτημα είναι
+ ο επεξεργαστής κανόνων του firewall στον πυρήνα, με ενσωματωμένη τη
+ δυνατότητα καταγραφής. Τα υπόλοιπα εξαρτήματα είναι το σύστημα
+ καταγραφής (logging), ο κανόνας <literal>divert</literal> ο οποίος
+ ενεργοποιεί τη λειτουργία <acronym>NAT</acronym>, καθώς και οι
+ προχωρημένες δυνατότητες ειδικού σκοπού: το σύστημα διαμόρφωσης κίνησης
+ (traffic shaper) dummynet, η δυνατότητα προώθησης μέσω του
+ <literal>fwd rule</literal>, η δυνατότητα γεφύρωσης (bridge) καθώς και
+ η δυνατότητα απόκρυψης (ipstealth). To IPFW υποστηρίζει τόσο το
+ πρωτόκολλο IPv4 όσο και το IPv6.</para>
+
+ <sect2 id="firewalls-ipfw-enable">
+ <title>Ενεργοποιώντας το IPFW</title>
+
+ <indexterm>
+ <primary>IPFW</primary>
+ <secondary>enabling</secondary>
+ </indexterm>
+
+ <para>Το IPFW περιλαμβάνεται στην βασική εγκατάσταση του &os; ως άρθρωμα
+ του πυρήνα το οποίο μπορεί να φορτωθεί δυναμικά. Το σύστημα θα
+ φορτώσει δυναμικά το άρθρωμα όταν βρει την καταχώριση
+ <literal>firewall_enable="YES"</literal> στο αρχείο
+ <filename>/etc/rc.conf</filename>. Δεν χρειάζεται να μεταγλωττίσετε
+ το IPFW μέσα στον πυρήνα, εκτός αν θέλετε να χρησιμοποιήσετε τις
+ λειτουργίες <acronym>NAT</acronym> που παρέχει.</para>
+
+ <para>Αφού επανεκκινήσετε το σύστημα σας με την καταχώριση
+ <literal>firewall_enable="YES"</literal> στο
+ <filename>rc.conf</filename>, θα δείτε με άσπρα έντονα γράμματα το
+ ακόλουθο μήνυμα κατά τη διαδικασία της εκκίνησης:</para>
+
+ <screen>ipfw2 initialized, divert disabled, rule-based forwarding disabled, default to deny, logging disabled</screen>
+
+ <para>Το άρθρωμα έχει ενσωματωμένη τη δυνατότητα καταγραφής. Για να
+ ενεργοποιήσετε την καταγραφή και να θέσετε το επίπεδο λεπτομέρειας,
+ υπάρχουν κάποιες ρυθμίσεις που μπορείτε να θέσετε στο
+ <filename>/etc/sysctl.conf</filename>. Προσθέτοντας τις παρακάτω
+ καταχωρίσεις, θα ενεργοποιηθεί η καταγραφή στις επόμενες
+ εκκινήσεις:</para>
+
+ <programlisting>net.inet.ip.fw.verbose=1
+net.inet.ip.fw.verbose_limit=5</programlisting>
+ </sect2>
+
+ <sect2 id="firewalls-ipfw-kernel">
+ <title>Επιλογές του Πυρήνα</title>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPFIREWALL</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPFIREWALL_VERBOSE</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPFIREWALL_VERBOSE_LIMIT</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>IPFW</primary>
+ <secondary>kernel options</secondary>
+ </indexterm>
+
+ <para>Δεν είναι υποχρεωτικό να ενεργοποιήσετε το IPFW μεταγλωττίζοντας
+ τις παρακάτω επιλογές στον πυρήνα του &os;, εκτός και αν θέλετε να
+ χρησιμοποιήσετε <acronym>NAT</acronym>. Ο σκοπός αυτής της
+ παρουσίασης είναι καθαρά ενημερωτικός.</para>
+
+ <programlisting>options IPFIREWALL</programlisting>
+
+ <para>Η επιλογή αυτή ενεργοποιεί το IPFW ως μέρος του πυρήνα.</para>
+
+ <programlisting>options IPFIREWALL_VERBOSE</programlisting>
+
+ <para>Ενεργοποιεί την καταγραφή των πακέτων που περνούν μέσω του IPFW
+ και περιλαμβάνουν τη λέξη <literal>log</literal> στον κανόνα
+ τους.</para>
+
+ <programlisting>options IPFIREWALL_VERBOSE_LIMIT=5</programlisting>
+
+ <para>Περιορίζει τον πλήθος των πακέτων που καταγράφονται μέσω του
+ &man.syslogd.8; σε συγκεκριμένο αριθμό ανά καταχώριση. Η ρύθμιση
+ είναι χρήσιμη σε εχθρικά περιβάλλοντα στα οποία είναι επιθυμητή
+ η καταγραφή. Με αυτό τον τρόπο μπορεί να αποφευχθεί μια πιθανή
+ επίθεση με στόχο την υπερχείλιση των αρχείων καταγραφής.</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPFIREWALL_DEFAULT_TO_ACCEPT</secondary>
+ </indexterm>
+
+ <programlisting>options IPFIREWALL_DEFAULT_TO_ACCEPT</programlisting>
+
+ <para>Η επιλογή αυτή αφήνει τα πάντα να περνάνε μέσα από το firewall,
+ το οποίο είναι καλή ιδέα την πρώτη φορά που ρυθμίζετε το firewall
+ σας.</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPDIVERT</secondary>
+ </indexterm>
+
+ <programlisting>options IPDIVERT</programlisting>
+
+ <para>Η επιλογή αυτή ενεργοποιεί τη λειτουργία
+ <acronym>NAT</acronym>.</para>
+
+ <note>
+ <para>Το firewall θα απορρίπτει όλα τα πακέτα που κατευθύνονται από
+ και προς το μηχάνημα, αν δεν περιλάβετε την επιλογή
+ <literal>IPFIREWALL_DEFAULT_TO_ACCEPT</literal> ή αν δεν ρυθμίσετε
+ ένα κατάλληλο κανόνα που να επιτρέπει αυτές τις συνδέσεις.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="firewalls-ipfw-rc">
+ <title>Επιλογές στο <filename>/etc/rc.conf</filename></title>
+
+ <para>Ενεργοποιήστε το firewall:</para>
+
+ <programlisting>firewall_enable="YES"</programlisting>
+
+ <para>Για να επιλέξετε ένα από τους προεπιλεγμένους τύπους firewall που
+ υποστηρίζονται από το &os;, διαβάστε το αρχείο
+ <filename>/etc/rc.firewall</filename> και δημιουργήστε μια εγγραφή
+ όπως την παρακάτω:</para>
+
+ <programlisting>firewall_type="open"</programlisting>
+
+ <para>Οι διαθέσιμες τιμές για αυτή τη ρύθμιση είναι:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>open</literal> &mdash; επιτρέπει τη διέλευση όλης
+ της κίνησης.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>client</literal> &mdash; προστατεύει μόνο το
+ συγκεκριμένο μηχάνημα.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>simple</literal> &mdash; προστατεύει ολόκληρο το
+ δίκτυο.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>closed</literal> &mdash; απενεργοποιεί εντελώς την
+ κίνηση πακέτων, εκτός από την εσωτερική διεπαφή (loopback).</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>UNKNOWN</literal> &mdash; απενεργοποιεί την φόρτωση
+ κανόνων του firewall.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename><replaceable>filename</replaceable></filename>
+ &mdash; το πλήρες μονοπάτι του αρχείου που περιέχει τους κανόνες
+ του firewall.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μπορείτε να χρησιμοποιήσετε δύο διαφορετικούς τρόπους για να
+ φορτώσετε προσαρμοσμένους κανόνες στο
+ <application>ipfw</application> firewall. Ο ένας είναι θέτοντας τη
+ μεταβλητή <literal>firewall_type</literal> στην απόλυτη διαδρομή του
+ αρχείου που περιέχει τους <emphasis>κανόνες του firewall</emphasis>,
+ χωρίς να δώσετε ορίσματα στην γραμμή εντολών για το ίδιο το
+ &man.ipfw.8;. Το αρχείο κανόνων που φαίνεται παρακάτω, απορρίπτει
+ όλη την εισερχόμενη και εξερχόμενη κίνηση:</para>
+
+ <programlisting>add deny in
+add deny out</programlisting>
+
+ <para>Από την άλλη μεριά, είναι επίσης δυνατό να θέσετε τη μεταβλητή
+ <literal>firewall_script</literal> στην απόλυτη διαδρομή ενός
+ εκτελέσιμου script που περιλαμβάνει μια σειρά από εντολές
+ <command>ipfw</command> που θα εκτελεστούν κατά την εκκίνηση.
+ Ένα έγκυρο τέτοιο script το οποίο είναι αντίστοιχο με το αρχείο
+ κανόνων που δείξαμε παραπάνω, είναι το ακόλουθο:</para>
+
+ <programlisting>#!/bin/sh
+
+ipfw -q flush
+
+ipfw add deny in
+ipfw add deny out</programlisting>
+
+ <note>
+ <para>Αν θέσετε την τιμή του <literal>firewall_type</literal> είτε
+ σε <literal>client</literal> είτε σε <literal>simple</literal>,
+ θα πρέπει να ελέγξετε ότι οι προεπιλεγμένοι κανόνες που περιέχονται
+ στο <filename>/etc/rc.firewall</filename> ταιριάζουν με τις
+ ρυθμίσεις του συγκεκριμένου μηχανήματος. Παρατηρήστε επίσης ότι τα
+ παραδείγματα που χρησιμοποιούνται σε αυτό το κεφάλαιο αναμένουν να
+ να έχετε θέσει τη μεταβλητή <literal>firewall_script</literal> στην
+ τιμή <filename>/etc/ipfw.rules</filename>.</para>
+ </note>
+
+ <para>Ενεργοποιήστε την καταγραφή:</para>
+
+ <programlisting>firewall_logging="YES"</programlisting>
+
+ <warning>
+ <para>Το μόνο πράγμα που κάνει η μεταβλητή
+ <varname>firewall_logging</varname> είναι να θέσει την τιμή
+ της μεταβλητής sysctl <varname>net.inet.ip.fw.verbose</varname> στην
+ τιμή <literal>1</literal> (δείτε το <xref
+ linkend="firewalls-ipfw-enable">). Δεν υπάρχει μεταβλητή του
+ <filename>rc.conf</filename> που να ορίζει περιορισμούς στην
+ καταγραφή, αλλά αυτό μπορεί να ρυθμιστεί μέσω της παραπάνω
+ μεταβλητής sysctl είτε χειροκίνητα, είτε μέσω του αρχείου
+ <filename>/etc/sysctl.conf</filename>:</para>
+
+ <programlisting>net.inet.ip.fw.verbose_limit=5</programlisting>
+ </warning>
+
+ <para>Αν το μηχάνημα σας λειτουργεί ως πύλη (gateway), δηλαδή παρέχει
+ υπηρεσία μετάφρασης διευθύνσεων δικτύου (Network Address
+ Translation, NAT) μέσω του &man.natd.8;, παρακαλούμε να διαβάσετε το
+ <xref linkend="network-natd"> για πληροφορίες σχετικά με τις
+ ρυθμίσεις που απαιτούνται στο αρχείο
+ <filename>/etc/rc.conf</filename>.</para>
+ </sect2>
+
+ <sect2 id="firewalls-ipfw-cmd">
+ <title>Η Εντολή IPFW</title>
+
+ <indexterm><primary><command>ipfw</command></primary></indexterm>
+
+ <para>Η εντολή <command>ipfw</command> είναι ο συνήθης τρόπος για την
+ προσθήκη η διαγραφή κανόνων στους εσωτερικούς ενεργούς κανόνες του
+ firewall, καθώς αυτό εκτελείται. Το πρόβλημα με τη χρήση αυτής της
+ μεθόδου είναι ότι οι αλλαγές χάνονται με τον τερματισμό λειτουργίας
+ του μηχανήματος. Μπορείτε να γράψετε όλους τους κανόνες σας σε ένα
+ αρχείο και να το χρησιμοποιείτε για να τους φορτώνετε στην εκκίνηση.
+ Μπορείτε να χρησιμοποιήσετε το ίδιο αρχείο για να αντικαταστήσετε
+ τους τρέχοντες κανόνες του firewall, την ώρα που αυτό εκτελείται.
+ Αυτός είναι και ο συνιστώμενος τρόπος που χρησιμοποιούμε στα
+ παραδείγματα μας.</para>
+
+ <para>Η εντολή <command>ipfw</command> είναι επίσης χρήσιμη για να
+ απεικονίζει τους τρέχοντες κανόνες στη κονσόλα σας. Το σύστημα
+ καταγραφής χρήσης της IPFW δημιουργεί αυτόματα ένα μετρητή για κάθε
+ κανόνα, ο οποίος μετράει πόσα πακέτα ταίριαξαν με αυτόν. Κατά τη
+ διάρκεια των δοκιμών, η δυνατότητα να ελέγξετε την τιμή του μετρητή
+ είναι ένας τρόπος για να διαπιστώσετε αν ο κανόνας λειτουργεί
+ κανονικά.</para>
+
+ <para>Για να δείτε όλους τους κανόνες με τη σειρά:</para>
+
+ <screen>&prompt.root; <userinput>ipfw list</userinput></screen>
+
+ <para>Για να δείτε μια λίστα όλων των κανόνων, μαζί με την ώρα που
+ ενεργοποιήθηκε τελευταία φορά ο κάθε κανόνας, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>ipfw -t list</userinput></screen>
+
+ <para>Το επόμενο παράδειγμα δείχνει τον αριθμό των πακέτων που ταίριαξαν
+ μαζί με τον αντίστοιχο κανόνα. Η πρώτη στήλη δείχνει τον αριθμό του
+ κανόνα, ακολουθείται από τον αριθμό πακέτων που ταίριαξαν (πρώτα τα
+ εξερχόμενα και μετά τα εισερχόμενα) και τέλος από τον ίδιο τον
+ κανόνα.</para>
+
+ <screen>&prompt.root; <userinput>ipfw -a list</userinput></screen>
+
+ <para>Για να δείτε μια λίστα που να περιλαμβάνει τόσο τους δυναμικούς
+ όσο και τους στατικούς κανόνες:</para>
+
+ <screen>&prompt.root; <userinput>ipfw -d list</userinput></screen>
+
+ <para>Για να δείτε και τους δυναμικούς κανόνες που έχουν λήξει:</para>
+
+ <screen>&prompt.root; <userinput>ipfw -d -e list</userinput></screen>
+
+ <para>Για να μηδενίσετε τους μετρητές:</para>
+
+ <screen>&prompt.root; <userinput>ipfw zero</userinput></screen>
+
+ <para>Για να μηδενίσετε τους μετρητές μόνο για τον κανόνα με τον αριθμό
+ <replaceable>NUM</replaceable>:</para>
+
+ <screen>&prompt.root; <userinput>ipfw zero <replaceable>NUM</replaceable></userinput></screen>
+ </sect2>
+
+ <sect2 id="firewalls-ipfw-rules">
+ <title>Το Σύνολο Κανόνων του IPFW</title>
+
+ <!-- Έχει εμφανιστεί ήδη μια φορά -->
+
+ <para>Ως <quote>σύνολο κανόνων</quote> στο IPFW, ορίζουμε μια ομάδα
+ κανόνων που έχουν γραφεί για να επιτρέπουν ή να απορρίπτουν πακέτα
+ ανάλογα με τις τιμές που περιέχονται σε αυτά. Η διπλής κατεύθυνσης
+ ανταλλαγή πακέτων μεταξύ υπολογιστών αποτελεί μια συνεδρία.
+ Το σύνολο κανόνων του firewall επεξεργάζεται τόσο τα πακέτα που
+ έρχονται από το Internet, όσο και τα πακέτα που παράγονται από το
+ σύστημα ως απάντηση σε αυτά. Κάθε υπηρεσία <acronym>TCP/IP</acronym>
+ (π.χ. telnet, www, mail, κ.λ.π.) καθορίζεται από το πρωτόκολλο και
+ την προνομιακή (privileged) θύρα που χρησιμοποιεί για να δέχεται
+ αιτήματα εξυπηρέτησης. Τα πακέτα που προορίζονται για μια
+ συγκεκριμένη υπηρεσία, ξεκινούν από τη διεύθυνση αφετηρίας
+ χρησιμοποιώντας μια μη-προνομιακή θύρα και καταλήγουν στη
+ συγκεκριμένη θύρα υπηρεσίας στον προορισμό. Όλες οι παραπάνω
+ παράμετροι (θύρες και διευθύνσεις) μπορούν να χρησιμοποιηθούν ως
+ κριτήρια επιλογής για την δημιουργία κανόνων που επιτρέπουν
+ ή εμποδίζουν την πρόσβαση σε υπηρεσίες.</para>
+
+ <indexterm>
+ <primary>IPFW</primary>
+ <secondary>rule processing order</secondary>
+ </indexterm>
+
+ <!-- Needs rewording to include note below -->
+
+ <para>Όταν ένα πακέτο εισέρχεται στο firewall, συγκρίνεται με βάση τον
+ πρώτο κανόνα. Η σύγκριση συνεχίζεται διαδοχικά με τους υπόλοιπους
+ κανόνες, από τον πρώτο προς τον τελευταίο, με βάση τον αύξοντα αριθμό
+ τους. Όταν το πακέτο ταιριάξει με τις παραμέτρους επιλογής κάποιου
+ κανόνα, εκτελείται η οδηγία που αναφέρεται στο πεδίο ενεργειών του
+ κανόνα αυτού και η αναζήτηση κανόνων για το συγκεκριμένο πακέτο
+ τερματίζεται. Σε αυτή τη μέθοδο αναζήτησης,
+ <quote>ο πρώτος κανόνας που ταιριάζει, είναι ο νικητής</quote>. Αν
+ το πακέτο δεν ταιριάζει με κανένα από τους κανόνες, θα ληφθεί από τον
+ υποχρεωτικό προεπιλεγμένο κανόνα του IPFW, με αριθμό 65535, ο οποίος
+ εμποδίζει τη διέλευση όλων των πακέτων, και τα απορρίπτει χωρίς να
+ στείλει καμιά απάντηση στον αρχικό αποστολέα τους.</para>
+
+ <note>
+ <para>Η αναζήτηση συνεχίζεται μετά από κανόνες τύπου
+ <literal>count</literal>, <literal>skipto</literal> και
+ <literal>tee</literal>.</para>
+ </note>
+
+ <para>Οι οδηγίες που φαίνονται εδώ, βασίζονται στη χρήση κανόνων που
+ περιέχουν τις οδηγίες <literal>keep state</literal>,
+ <literal>limit</literal>, <literal>in</literal>,
+ <literal>out</literal> και <literal>via</literal>. Αυτές είναι και
+ οι βασικές λειτουργίες για την δόμηση ενός firewall τύπου
+ inclusive με stateful λειτουργία.</para>
+
+ <warning>
+ <para>Να δίνετε μεγάλη προσοχή όταν δουλεύετε με τους κανόνες ενός
+ firewall. Μπορεί άθελα σας να κλειδωθείτε έξω από το σύστημα
+ σας.</para>
+ </warning>
+
+ <sect3 id="firewalls-ipfw-rules-syntax">
+ <title>Σύνταξη Κανόνων</title>
+
+ <indexterm>
+ <primary>IPFW</primary>
+ <secondary>rule syntax</secondary>
+ </indexterm>
+
+ <para>Στην ενότητα αυτή, θα παρουσιάσουμε μια απλοποιημένη σύνταξη
+ κανόνων. Δείχνουμε μόνο ότι χρειάζεται για να δημιουργηθεί ένα
+ τυποποιημένο σύνολο κανόνων για ένα inclusive firewall. Για πλήρη
+ περιγραφή, δείτε τη σελίδα manual του &man.ipfw.8;.</para>
+
+ <para>Οι κανόνες περιέχουν λέξεις-κλειδιά. Οι λέξεις αυτές θα πρέπει
+ να κωδικοποιηθούν με συγκεκριμένη σειρά από τα αριστερά προς τα
+ δεξιά της γραμμής. Οι λέξεις-κλειδιά φαίνονται παρακάτω με έντονα
+ γράμματα. Μερικές λέξεις έχουν υπο-επιλογές οι οποίες μπορεί να
+ είναι επίσης λέξεις-κλειδιά και να περιλαμβάνουν επίσης ακόμα
+ περισσότερες υπο-επιλογές.</para>
+
+ <para>Η αρχή ενός σχολίου, σηματοδοτείται με το σύμβολο
+ <literal>#</literal>, το οποίο μπορεί να εμφανίζεται στο τέλος μιας
+ γραμμής κανόνα, ή και σε μια δική του γραμμή. Οι κενές γραμμές
+ αγνοούνται.</para>
+
+ <para><replaceable>CMD RULE_NUMBER ACTION LOGGING SELECTION
+ STATEFUL</replaceable></para>
+
+ <sect4>
+ <title>CMD</title>
+
+ <para>Για να γίνει η προσθήκη ενός νέου κανόνα στον εσωτερικό
+ πίνακα, τοποθετείται μπροστά από αυτόν η παράμετρος
+ <parameter>add</parameter>.</para>
+ </sect4>
+
+ <sect4>
+ <title>RULE_NUMBER</title>
+
+ <para>Κάθε κανόνας σχετίζεται με ένα αριθμό κανόνα (rule_number)
+ στην περιοχή 1..65535.</para>
+ </sect4>
+
+ <sect4>
+ <title>ACTION</title>
+
+ <para>Ένας κανόνας μπορεί να σχετίζεται με μια ή περισσότερες
+ ενέργειες, οι οποίες εκτελούνται όταν το πακέτο ταιριάζει με τα
+ κριτήρια επιλογής αυτού του κανόνα.</para>
+
+ <para><parameter>allow | accept | pass |
+ permit</parameter></para>
+
+ <para>Όλα τα παραπάνω έχουν το ίδιο αποτέλεσμα: το πακέτο εξέρχεται
+ από την σύστημα του firewall. Η αναζήτηση για το συγκεκριμένο
+ πακέτο τερματίζεται σε αυτό τον κανόνα.</para>
+
+ <para><parameter>check-state</parameter></para>
+
+ <para>Ελέγχει το πακέτο με βάση το δυναμικό πίνακα κανόνων. Αν
+ βρεθεί κανόνας που να ταιριάζει, θα εκτελεστεί η ενέργεια του
+ κανόνα ο οποίος δημιούργησε τον συγκεκριμένο δυναμικό κανόνα.
+ Διαφορετικά, η αναζήτηση συνεχίζεται με τον επόμενο κανόνα.
+ Ένας κανόνας check-state δεν έχει κριτήρια επιλογής. Αν δεν
+ υπάρχει κανόνας check-state στο σύνολο κανόνων, ο έλεγχος του
+ πίνακα δυναμικών κανόνων ξεκινάει από τον πρώτο κανόνα τύπου
+ keep-state ή limit.</para>
+
+ <para><parameter>deny | drop</parameter></para>
+
+ <para>Και οι δύο λέξεις σημαίνουν το ίδιο πράγμα: τα πακέτα που
+ ταιριάζουν με αυτό τον κανόνα απορρίπτονται. Η αναζήτηση
+ τερματίζεται.</para>
+ </sect4>
+
+ <sect4>
+ <title>Καταγραφή</title>
+
+ <para><parameter>log</parameter> ή
+ <parameter>logamount</parameter></para>
+
+ <para>Όταν ένα πακέτο ταιριάζει με ένα κανόνα που περιέχει τη λέξη
+ <literal>log</literal>, γίνεται καταγραφή του μηνύματος μέσω του
+ &man.syslogd.8; στη δυνατότητα SECURITY. Η καταγραφή συμβαίνει
+ μόνο αν ο αριθμός των πακέτων που έχει καταγραφεί μέχρι στιγμής
+ δεν υπερβαίνει την παράμετρο <literal>logamount</literal>. Αν η
+ παράμετρος αυτή δεν έχει καθοριστεί, το όριο ρυθμίζεται με βάση
+ την τιμή της μεταβλητής sysctl
+ <literal>net.inet.ip.fw.verbose_limit</literal>. Και στις δύο
+ περιπτώσεις, μια μηδενική τιμή σημαίνει ότι δεν θα υπάρχει όριο
+ στην καταγραφή. Μόλις η καταγραφή φτάσει στο όριο, μπορεί να
+ γίνει επανενεργοποίηση της με το μηδενισμό του μετρητή
+ καταγραφής, ή του μετρητή για το συγκεκριμένο κανόνα. Δείτε την
+ εντολή <command>ipfw reset log</command>.</para>
+
+ <note>
+ <para>Η καταγραφή γίνεται μόνο αφού επαληθευθούν όλες οι άλλες
+ συνθήκες ταιριάσματος του πακέτου, και πριν την τελική αποδοχή
+ ή απόρριψη του. Είναι στη δική σας ευχέρεια να αποφασίσετε σε
+ ποιους κανόνες θα ενεργοποιήσετε την καταγραφή.</para>
+ </note>
+ </sect4>
+
+ <sect4>
+ <title>Επιλογή</title>
+
+ <para>Οι λέξεις-κλειδιά που περιγράφονται σε αυτή την ενότητα,
+ χρησιμοποιούνται για να περιγράψουν χαρακτηριστικά του πακέτου που
+ θα πρέπει να διερευνηθούν για να καθοριστεί αν το πακέτο ταιριάζει
+ ή όχι με τον κανόνα. Η επιλογή μπορεί να γίνει με βάση τα
+ παρακάτω γενικής φύσεως χαρακτηριστικά, τα οποία και θα πρέπει να
+ χρησιμοποιηθούν με τη σειρά που φαίνονται:</para>
+
+ <para><parameter>udp | tcp | icmp</parameter></para>
+
+ <para>Μπορούν επίσης να χρησιμοποιηθούν τα πρωτόκολλα που
+ περιέχονται στο αρχείο <filename>/etc/protocols</filename>.
+ Η τιμή που καθορίζεται χρησιμοποιείται για το ταίριασμα του
+ πρωτοκόλλου. Πρόκειται για υποχρεωτική παράμετρο.</para>
+
+ <para><parameter>from src to dst</parameter></para>
+
+ <para>Οι λέξεις <literal>from</literal> και <literal>to</literal>
+ χρησιμοποιούνται για το ταίριασμα IP διευθύνσεων. Οι κανόνες
+ πρέπει να καθορίζουν <emphasis>τόσο</emphasis> την πηγή όσο και
+ τον προορισμό. Η λέξη <literal>any</literal> μπορεί να
+ χρησιμοποιηθεί για ταίριασμα με οποιαδήποτε διεύθυνση. Η λέξη
+ <literal>me</literal> έχει επίσης ειδική σημασία. Ταιριάζει με
+ οποιαδήποτε διεύθυνση που έχει ρυθμιστεί σε κάποια διεπαφή του
+ συστήματος σας, αντιπροσωπεύοντας έτσι το PC στο οποίο εκτελείται
+ το firewall. Μπορούν έτσι να γραφούν κανόνες του τύπου
+ <literal>from me to any</literal> ή
+ <literal>from any to me</literal> ή
+ <literal>from any to 0.0.0.0/0</literal> ή
+ <literal>from 0.0.0.0/0 to me</literal> ή
+ <literal>from any to 0.0.0.0</literal> ή
+ <literal>from me to 0.0.0.0</literal>. Οι διευθύνσεις IP
+ καθορίζονται ως αριθμητικές οκτάδες χωρισμένες με τελείες
+ και ακολουθούνται από το μήκος της μάσκας υποδικτύου. Μια
+ IP διεύθυνση μπορεί να καθορίζεται με αριθμούς που χωρίζονται
+ με τελείες. Μπορεί επίσης να ακολουθείται από το μέγεθος της
+ μάσκας υποδικτύου (μορφή CIDR). Πρόκειται για υποχρεωτική
+ παράμετρο. Μπορείτε να χρησιμοποιήσετε το βοηθητικό πρόγραμμα
+ <filename role="package">net-mgmt/ipcalc</filename> για
+ διευκόλυνση σας στους υπολογισμούς. Δείτε την δικτυακή τοποθεσία
+ του προγράμματος για περισσότερες πληροφορίες: <ulink
+ url="http://jodies.de/ipcalc"></ulink>.</para>
+
+ <para><parameter>port number</parameter></para>
+
+ <para>Χρησιμοποιείται σε πρωτόκολλα που υποστηρίζουν αριθμούς θυρών
+ (όπως είναι τα <acronym>TCP</acronym> και <acronym>UDP</acronym>).
+ Είναι υποχρεωτικό να δίνεται ο αριθμός θύρας της υπηρεσίας
+ που θέλετε να ταιριάξετε. Μπορείτε να χρησιμοποιήσετε τα
+ ονόματα των υπηρεσιών (μπορείτε να τα βρείτε στο αρχείο
+ <filename>/etc/services</filename>) αντί για τους κανονικούς
+ αριθμούς θυρών.</para>
+
+ <para><parameter>in | out</parameter></para>
+
+ <para>Με το παραπάνω μπορεί να καθοριστεί αν το ταίριασμα θα
+ γίνεται σε εισερχόμενα ή σε εξερχόμενα πακέτα αντίστοιχα. Είναι
+ υποχρεωτικό να έχετε ως μέρος των κριτηρίων του κανόνα σας, είτε
+ τη λέξη <literal>in</literal> είτε τη λέξη
+ <literal>out</literal>.</para>
+
+ <para><parameter>via IF</parameter></para>
+
+ <para>Ταιριάζει τα πακέτα τα οποία διέρχονται μέσω της διεπαφής με
+ το όνομα που καθορίζεται. Η λέξη <literal>via</literal>
+ εξασφαλίζει ότι το όνομα της διεπαφής θα είναι πάντα μέρος των
+ κριτηρίων κατά τη διαδικασία ταιριάσματος.</para>
+
+ <para><parameter>setup</parameter></para>
+
+ <para>Πρόκειται για υποχρεωτική παράμετρο που αναγνωρίζει την
+ αίτηση έναρξης μιας συνεδρίας για πακέτα
+ <acronym>TCP</acronym>.</para>
+
+ <para><parameter>keep-state</parameter></para>
+
+ <para>Πρόκειται για υποχρεωτική παράμετρο. Μόλις υπάρξει ταίριασμα,
+ το firewall θα δημιουργήσει ένα δυναμικό κανόνα, του οποίου η
+ προεπιλεγμένη συμπεριφορά είναι να ταιριάζει επικοινωνία διπλής
+ κατεύθυνσης μεταξύ της διεύθυνσης IP και της θύρας αφετηρίας και
+ προορισμού, χρησιμοποιώντας το ίδιο πρωτόκολλο.</para>
+
+ <para><parameter>limit {src-addr | src-port | dst-addr |
+ dst-port}</parameter></para>
+
+ <para>Το firewall θα επιτρέψει μόνο <replaceable>N</replaceable>
+ πλήθος συνδέσεων με τις παραμέτρους που περιγράφονται σε αυτό
+ τον κανόνα. Μπορούν να καθοριστούν περισσότερες από μια
+ διευθύνσεις και πόρτες αφετηρίας και προορισμού. Δεν μπορούν
+ να χρησιμοποιηθούν στον ίδιο κανόνα οι παράμετροι
+ <literal>limit</literal> και <literal>keep-state</literal>.
+ Η επιλογή <literal>limit</literal> παρέχει την ίδια λειτουργία
+ stateful με την <literal>keep-state</literal>, καθώς και
+ επιπρόσθετες δικές της λειτουργίες.</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Επιλογή για Stateful Κανόνες</title>
+
+ <indexterm>
+ <primary>IPFW</primary>
+ <secondary>stateful filtering</secondary>
+ </indexterm>
+
+ <!-- XXX: duplicated -->
+
+ <para>Το stateful φιλτράρισμα, αντιμετωπίζει την κίνηση του δικτύου ως
+ διπλής κατεύθυνσης ανταλλαγή πακέτων τα οποία δημιουργούν μια
+ συνεδρία. Έχει επίσης τη δυνατότητα να διερευνήσει αν τηρούνται
+ οι έγκυροι κανόνες ανταλλαγής μηνυμάτων μεταξύ του αποστολέα και
+ του παραλήπτη. Οποιαδήποτε πακέτα δεν ταιριάζουν με το πρότυπο
+ αυτής της επικοινωνίας, απορρίπτονται ως ψεύτικα.</para>
+
+ <para>Η επιλογή <literal>check-state</literal> χρησιμοποιείται για
+ να αναγνωριστεί σε ποιο σημείο του συνόλου κανόνων του IPFW θα
+ ελεγχθεί το πακέτο με βάση τη δυνατότητα των δυναμικών κανόνων.
+ Σε περίπτωση ταιριάσματος, το πακέτο εξέρχεται από το firewall και
+ συνεχίζει την πορεία του, ενώ την ίδια στιγμή δημιουργείται ένας
+ νέος δυναμικός κανόνας για το επόμενο πακέτο που αναμένεται να
+ έρθει με βάση τη συγκεκριμένη διπλής κατεύθυνσης επικοινωνία. Σε
+ περίπτωση που το πακέτο δεν ταιριάζει με το δυναμικό κανόνα, θα
+ προχωρήσει για να ελεγχθεί από τον επόμενο κανόνα του
+ firewall.</para>
+
+ <para>Η δυνατότητα δυναμικών κανόνων είναι ευάλωτη σε εξάντληση πόρων
+ σε περίπτωση επίθεσης υπερχείλισης (flood) SYN. Η επίθεση αυτή
+ μπορεί να δημιουργήσει πολύ μεγάλο πλήθος δυναμικών κανόνων.
+ Για την αντιμετώπιση μιας τέτοιας επίθεσης, το &os; χρησιμοποιεί
+ μια ακόμα επιλογή που ονομάζεται <literal>limit</literal>.
+ Η επιλογή αυτή μπορεί να περιορίσει τον αριθμό των ταυτόχρονων
+ συνεδριών, εξετάζοντας τα πεδία αφετηρίας και προορισμού των
+ κανόνων. Ανιχνεύει με αυτό τον τρόπο το πλήθος των δυναμικών
+ κανόνων και πόσες φορές έχει χρησιμοποιηθεί ο καθένας από
+ τη συγκεκριμένη IP διεύθυνση. Αν ο αριθμός αυτός ξεπερνάει το
+ όριο που έχει τεθεί με την επιλογή <literal>limit</literal>, το
+ πακέτο απορρίπτεται.</para>
+ </sect3>
+
+ <sect3>
+ <title>Καταγραφή Μηνυμάτων του Firewall</title>
+
+ <indexterm>
+ <primary>IPFW</primary>
+ <secondary>logging</secondary>
+ </indexterm>
+
+ <para>Τα πλεονεκτήματα της καταγραφής συμβάντων του firewall, είναι
+ προφανή: παρέχουν τη δυνατότητα να δείτε για ποιο λόγο
+ ενεργοποιήθηκαν οι κανόνες στους οποίους έχετε ενεργοποιήσει την
+ καταγραφή. Οι πληροφορίες περιλαμβάνουν τα πακέτα που απορρίφθηκαν,
+ τις διευθύνσεις από τις οποίες προήλθαν και που κατευθύνονταν.
+ Με αυτό τον τρόπο, έχετε ένα σημαντικό πλεονέκτημα στην ανίχνευση
+ των εισβολέων.</para>
+
+ <para>Ακόμα και αν ενεργοποιήσετε τη λειτουργία καταγραφής, το IPFW
+ δεν θα αρχίσει από μόνο του την καταγραφή για κανένα κανόνα.
+ Ο διαχειριστής του firewall θα αποφασίσει σε ποιους από όλους τους
+ κανόνες θα ενεργοποιήσει την καταγραφή, και θα προσθέσει την
+ λέξη <literal>log</literal> στην αντίστοιχη καταχώριση.
+ Φυσιολογικά, γίνεται καταγραφή μόνο για κανόνες που απορρίπτουν
+ πακέτα (κανόνες <literal>deny</literal>), όπως για παράδειγμα ο
+ κανόνας απόρριψης των εισερχόμενων <acronym>ICMP</acronym> pings.
+ Είναι κοινή πρακτική, να αντιγράφεται στο τέλος των κανόνων ο
+ κανόνας <quote>ipfw default deny everything</quote> και να
+ προστίθεται σε αυτόν η επιλογή <literal>log</literal>.
+ Με τον τρόπο αυτό, μπορείτε να δείτε όλα τα πακέτα που δεν
+ ταίριαξαν με κανένα κανόνα του συνόλου.</para>
+
+ <para>Η καταγραφή συμβάντων είναι δίκοπο μαχαίρι. Αν δεν είστε
+ προσεκτικός, θα χαθείτε μέσα στο πλήθος των δεδομένων της
+ καταγραφής και θα γεμίσετε το δίσκο σας με άχρηστα αρχεία. Οι πιο
+ παλιές και κοινές επιθέσεις τύπου άρνησης υπηρεσίας (DoS), είναι
+ αυτές που προσπαθούν να γεμίσουν τους δίσκους σας. Τα μηνύματα
+ αυτά όχι μόνο καταγράφονται στο <application>syslogd</application>,
+ αλλά εμφανίζονται και στην κονσόλα του συστήματος σας, και σύντομα
+ γίνονται πολύ ενοχλητικά.</para>
+
+ <para>Η επιλογή <literal>IPFIREWALL_VERBOSE_LIMIT=5</literal> στον
+ πυρήνα, περιορίζει τον αριθμό των συνεχόμενων όμοιων μηνυμάτων που
+ στέλνονται στον καταγραφέα συστήματος &man.syslogd.8; σχετικά με
+ το ταίριασμα πακέτων ενός συγκεκριμένου κανόνα. Όταν ενεργοποιείται
+ αυτή η επιλογή στον πυρήνα, ο αριθμός των συνεχόμενων μηνυμάτων
+ ενός συγκεκριμένου κανόνα, σταματάει μετά τον αριθμό που
+ καθορίζεται. Δεν υπάρχει κανένα όφελος από 200 συνεχόμενα μηνύματα
+ με το ίδιο ακριβώς περιεχόμενο. Για παράδειγμα, πέντε συνεχόμενα
+ μηνύματα για ένα συγκεκριμένο κανόνα θα καταγράφονταν κανονικά στο
+ <application>syslogd</application>. Τα υπόλοιπα όμοια μηνύματα θα
+ καταμετρηθούν και θα καταγραφούν όπως φαίνεται παρακάτω:</para>
+
+ <programlisting>last message repeated 45 times</programlisting>
+
+ <para>Όλα τα μηνύματα καταγραφής των πακέτων, γράφονται από προεπιλογή
+ στο αρχείο <filename>/var/log/security</filename> το οποίο
+ καθορίζεται στο αρχείο <filename>/etc/syslog.conf</filename>.</para>
+ </sect3>
+
+ <sect3 id="firewalls-ipfw-rules-script">
+ <title>Δημιουργία Ενός Script Κανόνων</title>
+
+ <para>Οι περισσότεροι έμπειροι χρήστες του IPFW, δημιουργούν ένα
+ αρχείο που περιέχει τους κανόνες και το γράφουν με τέτοιο τρόπο
+ ώστε να να μπορεί να εκτελεστεί ως script. Το βασικό πλεονέκτημα
+ του παραπάνω τρόπου, είναι ότι οι κανόνες του firewall μπορούν να
+ ανανεωθούν χωρίς την ανάγκη να επανεκκινήσει το σύστημα για να
+ φορτωθούν οι νέοι. Η μέθοδος αυτή είναι πολύ βολική για
+ την δοκιμή νέων κανόνων, καθώς η διαδικασία μπορεί να επαναληφθεί
+ όσες φορές χρειάζεται. Καθώς πρόκειται για κανονικό script,
+ μπορείτε να χρησιμοποιήσετε συμβολική υποκατάσταση για να
+ κωδικοποιήσετε και να υποκαταστήσετε συχνά χρησιμοποιούμενες τιμές
+ σε πολλαπλούς κανόνες. Αυτό φαίνεται στο παρακάτω
+ παράδειγμα.</para>
+
+ <para>Η σύνταξη που χρησιμοποιείται εδώ, είναι συμβατή με τα κελύφη
+ &man.sh.1;, &man.csh.1; και &man.tcsh.1;. Μπροστά από τα πεδία
+ της συμβολικής υποκατάστασης, υπάρχει το σήμα του δολαρίου,
+ &dollar;. Το σύμβολο αυτό δεν υπάρχει μπροστά από τα συμβολικά
+ πεδία. Η τιμή που θα αποδοθεί στο συμβολικό πεδίο, πρέπει να
+ εσωκλείεται σε διπλά εισαγωγικά.</para>
+
+ <para>Ξεκινήστε το αρχείο των κανόνων σας όπως φαίνεται
+ παρακάτω:</para>
+
+ <programlisting>############### start of example ipfw rules script #############
+#
+ipfw -q -f flush # Delete all rules
+# Set defaults
+oif="tun0" # out interface
+odns="192.0.2.11" # ISP's DNS server IP address
+cmd="ipfw -q add " # build rule prefix
+ks="keep-state" # just too lazy to key this each time
+&dollar;cmd 00500 check-state
+&dollar;cmd 00502 deny all from any to any frag
+&dollar;cmd 00501 deny tcp from any to any established
+&dollar;cmd 00600 allow tcp from any to any 80 out via &dollar;oif setup &dollar;ks
+&dollar;cmd 00610 allow tcp from any to &dollar;odns 53 out via &dollar;oif setup &dollar;ks
+&dollar;cmd 00611 allow udp from any to &dollar;odns 53 out via &dollar;oif &dollar;ks
+################### End of example ipfw rules script ############</programlisting>
+
+ <para>Αυτό είναι όλο. Στο παράδειγμα αυτό δεν είναι σημαντικοί οι
+ κανόνες, αλλά ο τρόπος με τον οποίο λειτουργούν και παίρνουν τιμές
+ τα πεδία συμβολικής υποκατάστασης.</para>
+
+ <para>Αν το παραπάνω παράδειγμα ήταν στο αρχείο
+ <filename>/etc/ipfw.rules</filename> θα μπορούσατε να φορτώσετε
+ αυτούς τους κανόνες, γράφοντας την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>sh /etc/ipfw.rules</userinput></screen>
+
+ <para>Το αρχείο <filename>/etc/ipfw.rules</filename> μπορεί να
+ βρίσκεται σε όποιο κατάλογο θέλετε, και να ονομάζεται επίσης όπως
+ θέλετε.</para>
+
+ <para>Θα μπορούσατε να επιτύχετε το ίδιο πράγμα, εκτελώντας τις
+ παρακάτω εντολές χειροκίνητα:</para>
+
+ <screen>&prompt.root; <userinput>ipfw -q -f flush</userinput>
+&prompt.root; <userinput>ipfw -q add check-state</userinput>
+&prompt.root; <userinput>ipfw -q add deny all from any to any frag</userinput>
+&prompt.root; <userinput>ipfw -q add deny tcp from any to any established</userinput>
+&prompt.root; <userinput>ipfw -q add allow tcp from any to any 80 out via tun0 setup keep-state</userinput>
+&prompt.root; <userinput>ipfw -q add allow tcp from any to 192.0.2.11 53 out via tun0 setup keep-state</userinput>
+&prompt.root; <userinput>ipfw -q add 00611 allow udp from any to 192.0.2.11 53 out via tun0 keep-state</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>Σύνολο Κανόνων Stateful</title>
+
+ <para>Το παρακάτω σύνολο κανόνων (που δεν περιέχει κανόνες για
+ <acronym>NAT</acronym>) είναι ένα παράδειγμα γραφής ενός inclusive
+ firewall. Ένα inclusive firewall επιτρέπει την είσοδο μόνο των
+ πακέτων που ταιριάζουν με τους κανόνες αποδοχής (pass) και
+ απορρίπτει από προεπιλογή όλα τα άλλα. Τα firewalls που έχουν
+ σχεδιαστεί να προστατεύουν ολόκληρα δίκτυα, διαθέτουν το λιγότερο
+ δύο διεπαφές, στις οποίες πρέπει να υπάρχουν κανόνες ώστε το
+ firewall να λειτουργεί.</para>
+
+ <para>Όλα τα λειτουργικά συστήματα τύπου &unix;, συμπεριλαμβανομένου
+ και του &os;, έχουν σχεδιαστεί να χρησιμοποιούν τη διεπαφή
+ <devicename>lo0</devicename> και τη διεύθυνση IP
+ <hostid role="ipaddr">127.0.0.1</hostid> για εσωτερική επικοινωνία
+ με το λειτουργικό σύστημα. Το firewall πρέπει να περιέχει κανόνες
+ που να επιτρέπουν την απρόσκοπτη κίνηση αυτών των ειδικών, για
+ εσωτερική χρήση, πακέτων.</para>
+
+ <para>Οι κανόνες που ορίζουν την πρόσβαση εισερχόμενων και
+ εξερχόμενων πακέτων, γράφονται για τη διεπαφή που συνδέεται στο
+ δημόσιο Internet. Η διεπαφή αυτή μπορεί να είναι για παράδειγμα η
+ <devicename>tun0</devicename> (σε περίπτωση που χρησιμοποιείτε το
+ <acronym>PPP</acronym> χρήστη), ή η κάρτα δικτύου που συνδέεται στο
+ καλωδιακό ή DSL modem σας.</para>
+
+ <para>Σε περίπτωση που μια ή περισσότερες κάρτες δικτύου συνδέονται σε
+ εσωτερικά ιδιωτικά δίκτυα πίσω από το firewall, θα πρέπει να
+ υπάρχουν οι αντίστοιχοι κανόνες που να επιτρέπουν την ελεύθερη
+ διακίνηση των πακέτων ανάμεσα στις διεπαφές αυτές ή/και στο
+ Internet.</para>
+
+ <para>Οι κανόνες πρέπει να οργανώνονται σε τρεις κύριες ενότητες:
+ αρχικά όλες οι διεπαφές στις οποίες επιτρέπεται η ελεύθερη διακίνηση
+ δεδομένων, έπειτα η διεπαφή από την οποία εξέρχονται τα πακέτα προς
+ το δημόσιο δίκτυο (Internet) και τέλος η διεπαφή από την οποία
+ λαμβάνονται πακέτα από το Internet.</para>
+
+ <para>Σε κάθε μια από τις ενότητες των διεπαφών που συνδέονται στο
+ Internet, πρέπει να τοποθετούνται πρώτοι οι κανόνες που ταιριάζουν
+ συχνότερα με την αντίστοιχη κίνηση. Ο τελευταίος κανόνας της
+ ενότητας θα πρέπει να απορρίπτει και να καταγράφει όλα τα πακέτα
+ της συγκεκριμένης διεπαφής/κατεύθυνσης.</para>
+
+ <para>Η ενότητα εξερχομένων (Outbound) στο σύνολο κανόνων που φαίνεται
+ παρακάτω, περιέχει μόνο κανόνες τύπου <literal>allow</literal>. Οι
+ κανόνες αυτοί περιέχουν συγκεκριμένες επιλεγμένες τιμές, με τις
+ οποίες αναγνωρίζεται με μοναδικό τρόπο η υπηρεσία στην οποία
+ επιτρέπεται η πρόσβαση από το δημόσιο Internet. Όλοι οι κανόνες
+ έχουν τις επιλογές <literal>proto</literal>,
+ <literal>port</literal>, <literal>in/out</literal> και
+ <literal>keep-state</literal>. Οι κανόνες τύπου
+ <literal>proto tcp</literal> περιέχουν την επιλογή
+ <literal>setup</literal> για την αναγνώριση του πακέτου έναρξης της
+ συνεδρίας, ώστε να γίνει η καταχώριση της στον πίνακα συνδέσεων
+ (stateful).</para>
+
+ <para>Στην ενότητα των εισερχόμενων πακέτων (Inbound) που φαίνεται
+ παρακάτω, εμφανίζονται πρώτοι οι κανόνες που χρησιμοποιούνται για
+ την απόρριψη των ανεπιθύμητων πακέτων. Αυτό γίνεται για δύο
+ διαφορετικούς λόγους. Ο πρώτος είναι ότι τα κακόβουλα πακέτα
+ μπορεί εν μέρει να ταιριάζουν με κάποια χαρακτηριστικά της έγκυρης
+ κίνησης. Τα πακέτα αυτά θα πρέπει να απορριφθούν, αντί να γίνουν
+ δεκτά από κάποιο επόμενο κανόνα <literal>allow</literal>.
+ Ο δεύτερος είναι ότι μπορείτε να απορρίψετε συγκεκριμένα πακέτα τα
+ οποία γνωρίζετε ότι δεν είναι έγκυρα, αλλά σας είναι αδιάφορη η
+ καταγραφή τους. Με τον τρόπο αυτό εμποδίζεται η λήψη και καταγραφή
+ τους από τον τελευταίο κανόνα. Ο τελευταίος κανόνας τυπικά
+ απορρίπτει και καταγράφει όλα τα πακέτα που έφτασαν μέχρι αυτόν.
+ Ο κανόνας αυτός χρησιμοποιείται για την παροχή νομικών αποδείξεων
+ σε περίπτωση που κινήσετε νομική διαδικασία κατά ατόμων που
+ προέβησαν σε επιθέσεις στο σύστημα σας.</para>
+
+ <para>Θα πρέπει επίσης να εξασφαλίσετε ότι το σύστημα σας δεν θα
+ δώσει καμιά απάντηση σε κανένα από τα ανεπιθύμητα πακέτα.
+ Τα πακέτα αυτά θα πρέπει να απορριφθούν και να εξαφανιστούν.
+ Με τον τρόπο αυτό, ο επιτιθέμενος δεν έχει καμιά γνώση αν τα πακέτα
+ του έφτασαν μέχρι το σύστημα σας. Όσο λιγότερα μπορούν να μάθουν
+ οι επιτιθέμενοι σχετικά με το σύστημα σας, τόσο πιο ασφαλές
+ είναι. Όταν εκτελείτε καταγραφή πακέτων με αριθμούς θυρών που δεν
+ αναγνωρίζετε, κοιτάξτε στο αρχείο
+ <filename>/etc/services/</filename> ή δείτε το <ulink
+ url="http://www.securitystats.com/tools/portsearch.php"></ulink>
+ και αναζητήστε τον αριθμό της θύρας για να δείτε ποιος είναι ο
+ σκοπός της. Ελέγξτε την παρακάτω τοποθεσία για τους αριθμούς θυρών
+ που χρησιμοποιούνται συχνά από κακόβουλα προγράμματα (Trojans):
+ <ulink url="http://www.simovits.com/trojans/trojans.html"></ulink>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ένα Υπόδειγμα Συνόλου Κανόνων Inclusive</title>
+
+ <para>Το παρακάτω σύνολο κανόνων (στο οποίο δεν υλοποιείται λειτουργία
+ <acronym>NAT</acronym>) είναι αρκετά πλήρες και πολύ ασφαλές.
+ Δημιουργεί firewall τύπου inclusive, και έχει δοκιμαστεί σε
+ πραγματικές συνθήκες λειτουργίας. Μπορεί να εξυπηρετήσει το ίδιο
+ καλά και το δικό σας σύστημα. Απλώς μετατρέψτε σε σχόλιο τους
+ κανόνες <literal>pass</literal> για τις υπηρεσίες που δεν θέλετε
+ να ενεργοποιήσετε. Για να αποφύγετε την καταγραφή ανεπιθύμητων
+ μηνυμάτων, απλώς προσθέστε ένα κανόνα τύπου
+ <literal>deny</literal> στην ενότητα των εισερχομένων. Σε όλους
+ τους κανόνες, Θα πρέπει να αλλάξετε το όνομα της διεπαφής από
+ <devicename>dc0</devicename> στο πραγματικό όνομα της διεπαφής που
+ συνδέεται στο δημόσιο Internet. Σε περίπτωση που χρησιμοποιείτε το
+ <acronym>PPP</acronym> χρήστη, το όνομα της διεπαφής θα είναι
+ <devicename>tun0</devicename>.</para>
+
+ <para>Θα διαπιστώσετε ότι υπάρχει μια συγκεκριμένη λογική στη χρήση
+ αυτών των κανόνων.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Όλοι οι κανόνες που αποτελούν αίτηση για έναρξη μιας νέας
+ συνεδρίας με το δημόσιο Internet, χρησιμοποιούν την επιλογή
+ <literal>keep-state</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Όλες οι διαπιστευμένες υπηρεσίες που προέρχονται από το
+ δημόσιο Internet, διαθέτουν την επιλογή
+ <literal>limit</literal>, για την αποφυγή επιθέσεων
+ υπερχείλισης (flooding).</para>
+ </listitem>
+
+ <listitem>
+ <para>Όλοι οι κανόνες χρησιμοποιούν τις επιλογές
+ <literal>in</literal> ή <literal>out</literal> για να
+ διευκρινίζουν την κατεύθυνση της επικοινωνίας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Όλοι οι κανόνες χρησιμοποιούν την επιλογή
+ <literal>via <replaceable>όνομα-διεπαφής</replaceable></literal>
+ για να καθορίσουν τη διεπαφή από την οποία διέρχεται το
+ πακέτο.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οι κανόνες που φαίνονται παρακάτω, θα πρέπει να γραφούν στο
+ <filename>/etc/ipfw.rules</filename>.</para>
+
+ <programlisting>################ Start of IPFW rules file ###############################
+# Flush out the list before we begin.
+ipfw -q -f flush
+
+# Set rules command prefix
+cmd="ipfw -q add"
+pif="dc0" # public interface name of NIC
+ # facing the public Internet
+
+#################################################################
+# No restrictions on Inside LAN Interface for private network
+# Not needed unless you have LAN.
+# Change xl0 to your LAN NIC interface name
+#################################################################
+#&dollar;cmd 00005 allow all from any to any via xl0
+
+#################################################################
+# No restrictions on Loopback Interface
+#################################################################
+&dollar;cmd 00010 allow all from any to any via lo0
+
+#################################################################
+# Allow the packet through if it has previous been added to the
+# the "dynamic" rules table by a allow keep-state statement.
+#################################################################
+&dollar;cmd 00015 check-state
+
+#################################################################
+# Interface facing Public Internet (Outbound Section)
+# Check session start requests originating from behind the
+# firewall on the private network or from this gateway server
+# destined for the public Internet.
+#################################################################
+
+# Allow out access to my ISP's Domain name server.
+# x.x.x.x must be the IP address of your ISP.s DNS
+# Dup these lines if your ISP has more than one DNS server
+# Get the IP addresses from /etc/resolv.conf file
+&dollar;cmd 00110 allow tcp from any to x.x.x.x 53 out via &dollar;pif setup keep-state
+&dollar;cmd 00111 allow udp from any to x.x.x.x 53 out via &dollar;pif keep-state
+
+# Allow out access to my ISP's DHCP server for cable/DSL configurations.
+# This rule is not needed for .user ppp. connection to the public Internet.
+# so you can delete this whole group.
+# Use the following rule and check log for IP address.
+# Then put IP address in commented out rule &amp; delete first rule
+&dollar;cmd 00120 allow log udp from any to any 67 out via &dollar;pif keep-state
+#&dollar;cmd 00120 allow udp from any to x.x.x.x 67 out via &dollar;pif keep-state
+
+# Allow out non-secure standard www function
+&dollar;cmd 00200 allow tcp from any to any 80 out via &dollar;pif setup keep-state
+
+# Allow out secure www function https over TLS SSL
+&dollar;cmd 00220 allow tcp from any to any 443 out via &dollar;pif setup keep-state
+
+# Allow out send &amp; get email function
+&dollar;cmd 00230 allow tcp from any to any 25 out via &dollar;pif setup keep-state
+&dollar;cmd 00231 allow tcp from any to any 110 out via &dollar;pif setup keep-state
+
+# Allow out FBSD (make install &amp; CVSUP) functions
+# Basically give user root "GOD" privileges.
+&dollar;cmd 00240 allow tcp from me to any out via &dollar;pif setup keep-state uid root
+
+# Allow out ping
+&dollar;cmd 00250 allow icmp from any to any out via &dollar;pif keep-state
+
+# Allow out Time
+&dollar;cmd 00260 allow tcp from any to any 37 out via &dollar;pif setup keep-state
+
+# Allow out nntp news (i.e. news groups)
+&dollar;cmd 00270 allow tcp from any to any 119 out via &dollar;pif setup keep-state
+
+# Allow out secure FTP, Telnet, and SCP
+# This function is using SSH (secure shell)
+&dollar;cmd 00280 allow tcp from any to any 22 out via &dollar;pif setup keep-state
+
+# Allow out whois
+&dollar;cmd 00290 allow tcp from any to any 43 out via &dollar;pif setup keep-state
+
+# deny and log everything else that.s trying to get out.
+# This rule enforces the block all by default logic.
+&dollar;cmd 00299 deny log all from any to any out via &dollar;pif
+
+#################################################################
+# Interface facing Public Internet (Inbound Section)
+# Check packets originating from the public Internet
+# destined for this gateway server or the private network.
+#################################################################
+
+# Deny all inbound traffic from non-routable reserved address spaces
+&dollar;cmd 00300 deny all from 192.168.0.0/16 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 00301 deny all from 172.16.0.0/12 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 00302 deny all from 10.0.0.0/8 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 00303 deny all from 127.0.0.0/8 to any in via &dollar;pif #loopback
+&dollar;cmd 00304 deny all from 0.0.0.0/8 to any in via &dollar;pif #loopback
+&dollar;cmd 00305 deny all from 169.254.0.0/16 to any in via &dollar;pif #DHCP auto-config
+&dollar;cmd 00306 deny all from 192.0.2.0/24 to any in via &dollar;pif #reserved for docs
+&dollar;cmd 00307 deny all from 204.152.64.0/23 to any in via &dollar;pif #Sun cluster interconnect
+&dollar;cmd 00308 deny all from 224.0.0.0/3 to any in via &dollar;pif #Class D &amp; E multicast
+
+# Deny public pings
+&dollar;cmd 00310 deny icmp from any to any in via &dollar;pif
+
+# Deny ident
+&dollar;cmd 00315 deny tcp from any to any 113 in via &dollar;pif
+
+# Deny all Netbios service. 137=name, 138=datagram, 139=session
+# Netbios is MS/Windows sharing services.
+# Block MS/Windows hosts2 name server requests 81
+&dollar;cmd 00320 deny tcp from any to any 137 in via &dollar;pif
+&dollar;cmd 00321 deny tcp from any to any 138 in via &dollar;pif
+&dollar;cmd 00322 deny tcp from any to any 139 in via &dollar;pif
+&dollar;cmd 00323 deny tcp from any to any 81 in via &dollar;pif
+
+# Deny any late arriving packets
+&dollar;cmd 00330 deny all from any to any frag in via &dollar;pif
+
+# Deny ACK packets that did not match the dynamic rule table
+&dollar;cmd 00332 deny tcp from any to any established in via &dollar;pif
+
+# Allow traffic in from ISP's DHCP server. This rule must contain
+# the IP address of your ISP.s DHCP server as it.s the only
+# authorized source to send this packet type.
+# Only necessary for cable or DSL configurations.
+# This rule is not needed for .user ppp. type connection to
+# the public Internet. This is the same IP address you captured
+# and used in the outbound section.
+#&dollar;cmd 00360 allow udp from any to x.x.x.x 67 in via &dollar;pif keep-state
+
+# Allow in standard www function because I have apache server
+&dollar;cmd 00400 allow tcp from any to me 80 in via &dollar;pif setup limit src-addr 2
+
+# Allow in secure FTP, Telnet, and SCP from public Internet
+&dollar;cmd 00410 allow tcp from any to me 22 in via &dollar;pif setup limit src-addr 2
+
+# Allow in non-secure Telnet session from public Internet
+# labeled non-secure because ID &amp; PW are passed over public
+# Internet as clear text.
+# Delete this sample group if you do not have telnet server enabled.
+&dollar;cmd 00420 allow tcp from any to me 23 in via &dollar;pif setup limit src-addr 2
+
+# Reject &amp; Log all incoming connections from the outside
+&dollar;cmd 00499 deny log all from any to any in via &dollar;pif
+
+# Everything else is denied by default
+# deny and log all packets that fell through to see what they are
+&dollar;cmd 00999 deny log all from any to any
+################ End of IPFW rules file ###############################</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Ένα Υπόδειγμα <acronym>NAT</acronym> με Stateful Σύνολο
+ Κανόνων</title>
+
+ <indexterm>
+ <primary>NAT</primary>
+ <secondary>and IPFW</secondary>
+ </indexterm>
+
+ <para>Για να ενεργοποιηθεί η λειτουργία <acronym>NAT</acronym> στο
+ IPFW, χρειάζονται κάποιες επιπλέον ρυθμίσεις. Θα πρέπει να
+ προσθέσετε την επιλογή <literal>option IPDIVERT</literal> μαζί με
+ τις υπόλοιπες επιλογές για το IPFIREWALL στο αρχείο ρυθμίσεων του
+ πυρήνα. Θα πρέπει έπειτα να μεταγλωττίσετε και να εγκαταστήσετε
+ το νέο σας προσαρμοσμένο πυρήνα.</para>
+
+ <para>Εκτός από τις συνηθισμένες επιλογές για το IPFW, θα πρέπει να
+ προσθέσετε και τις παρακάτω στο αρχείο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>natd_enable="YES" # Enable <acronym>NAT</acronym>D function
+natd_interface="rl0" # interface name of public Internet NIC
+natd_flags="-dynamic -m" # -m = preserve port numbers if possible</programlisting>
+
+ <para>Η χρήση κανόνων stateful μαζί με τον κανόνα
+ <literal>divert natd</literal> (NAT), περιπλέκει πολύ την λογική
+ συγγραφής των κανόνων. Η θέση εμφάνισης των κανόνων
+ <literal>check-state</literal> και <literal>divert natd</literal>
+ μέσα στο σύνολο κανόνων γίνεται πολύ κρίσιμη. Δεν πρόκειται πλέον
+ για απλή λογική περάσματος από τον ένα κανόνα στον επόμενο.
+ Χρησιμοποιείται ένα νέο είδος ενέργειας που ονομάζεται
+ <literal>skipto</literal>. Για να χρησιμοποιηθεί η εντολή
+ <literal>skipto</literal>, είναι υποχρεωτικό να έχετε αριθμήσει τους
+ κανόνες, ώστε να ξέρετε σε ποιο κανόνα θα καταλήξει το άλμα που θα
+ εκτελεστεί από την εντολή αυτή.</para>
+
+ <para>Παρακάτω θα βρείτε ένα υπόδειγμα (χωρίς πρόσθετα σχόλια) μιας
+ μεθόδου συγγραφής που επιλέξαμε εδώ για να εξηγήσουμε την ακολουθία
+ ροής του πακέτου μέσα στο σύνολο κανόνων.</para>
+
+ <para>Η ροή της επεξεργασίας ξεκινάει με τον πρώτο από την κορυφή
+ κανόνα και συνεχίζει ένα κανόνα κάθε φορά προς τα κάτω, είτε μέχρι
+ να φτάσει τον τελευταίο, ή μέχρι το πακέτο να ταιριάξει με τα
+ κριτήρια επιλογής κάποιου κανόνα και να ελευθερωθεί από το firewall.
+ Είναι σημαντικό να παρατηρήσουμε τη θέση των κανόνων με αριθμούς
+ 100, 101, 450, 500 και 510. Οι κανόνες αυτοί ελέγχουν την
+ μετάφραση των εξερχόμενων και εισερχόμενων πακέτων, ώστε οι
+ καταχωρήσεις τους στο δυναμικό πίνακα καταστάσεων να περιέχουν
+ πάντα την ιδιωτική IP διεύθυνση του τοπικού δικτύου. Παρατηρήστε
+ επίσης ότι όλοι οι κανόνες allow και deny καθορίζουν την κατεύθυνση
+ κίνησης του πακέτου καθώς και την διεπαφή. Επίσης, όλες οι
+ εξερχόμενες αιτήσεις για νέες συνεδρίες μεταφέρονται απευθείας
+ (μέσω του <literal>skipto rule 500</literal>) στον κανόνα 500 για
+ να γίνει η μετάφραση διευθύνσεων δικτύου (NAT).</para>
+
+ <para>Ας υποθέσουμε ότι ένα χρήστης του τοπικού δικτύου χρησιμοποιεί
+ τον φυλλομετρητή του για να δει μια ιστοσελίδα. Οι ιστοσελίδες
+ χρησιμοποιούν την πόρτα 80 για την επικοινωνία. Το πακέτο
+ εισέρχεται στο firewall. Δεν ταιριάζει με τον κανόνα 100 γιατί
+ είναι εξερχόμενο και όχι εισερχόμενο. Περνάει τον κανόνα 101 γιατί
+ πρόκειται για νέα επικοινωνία και έτσι δεν υπάρχει ακόμα στον
+ δυναμικό πίνακα καταστάσεων. Το πακέτο τελικά φτάνει στον κανόνα
+ 125 με τον οποίο και ταιριάζει. Εξέρχεται μέσω της κάρτας δικτύου
+ που συνδέεται στο δημόσιο Internet. Το πακέτο έχει ακόμα ως IP
+ αφετηρίας την ιδιωτική διεύθυνση του τοπικού δικτύου. Το ταίριασμα
+ με αυτό τον κανόνα προκαλεί δύο ενέργειες. Η επιλογή
+ <literal>keep-state</literal> θα δημιουργήσει ένα νέο δυναμικό
+ κανόνα, θα τον καταχωρήσει στον πίνακα, και θα εκτελέσει την
+ αντίστοιχη ενέργεια. Η ενέργεια αυτή είναι μέρος της πληροφορίας
+ που γράφεται στον δυναμικό πίνακα. Στην περίπτωση αυτή είναι
+ η <quote>skipto rule 500</quote>. Ο κανόνας 500 μεταφράζει μέσω
+ <acronym>NAT</acronym> τη διεύθυνση IP του πακέτου, πριν αυτό
+ εξέλθει προς το Internet. Αυτό είναι ιδιαίτερα σημαντικό.
+ Το πακέτο κατευθύνεται προς τον προορισμό του, όπου δημιουργείται
+ και αποστέλλεται ένα νέο πακέτο ως απάντηση. Το νέο αυτό πακέτο
+ εισέρχεται ξανά στο firewall, στον κανόνα που είναι στην κορυφή
+ της λίστας. Αυτή τη φορά ταιριάζει με τον κανόνα 100 και η
+ διεύθυνση προορισμού του αλλάζει ξανά στην αρχική του τοπικού
+ δικτύου. Έπειτα, γίνεται η επεξεργασία του από τον κανόνα
+ <literal>check-state</literal> ο οποίος ανακαλύπτει ότι πρόκειται
+ για πακέτο συνεδρίας σε εξέλιξη και το απελευθερώνει στο τοπικό
+ δίκτυο. Κατευθύνεται προς τον υπολογιστή του τοπικού δικτύου που το
+ έστειλε, ο οποίος στέλνει ένα νέο πακέτο ζητώντας περισσότερα
+ δεδομένα από τον απομακρυσμένο εξυπηρετητή. Το πακέτο αυτό
+ ελέγχεται από τον κανόνα <literal>check-state</literal>, ο οποίος
+ βρίσκει την καταχώριση του στα εξερχόμενα και εκτελεί την αντίστοιχη
+ ενέργεια που σε αυτή την περίπτωση είναι <quote>skipto 500</quote>.
+ Το πακέτο προωθείται στον κανόνα 500, γίνεται η μετάφραση της
+ διεύθυνσης του μέσω <acronym>NAT</acronym> και απελευθερώνεται στο
+ Internet.</para>
+
+ <para>Από την μεριά των εισερχόμενων, όποιο πακέτο αναγνωρίζεται ως
+ μέρος μιας υπάρχουσας συνεδρίας, ελέγχεται αυτόματα από τον κανόνα
+ <literal>check-state</literal> και τους αντίστοιχους κανόνες
+ <literal>divert natd</literal>. Το μόνο που χρειάζεται να
+ αντιμετωπίσουμε είναι η απόρριψη όλων των προβληματικών πακέτων και
+ η έγκριση μόνο των πακέτων που προορίζονται για εγκεκριμένες
+ υπηρεσίες. Ας υποθέσουμε ότι έχουμε ένα εξυπηρετητή apache ο οποίος
+ εκτελείται στο μηχάνημα με το firewall, και επιθυμούμε το τοπικό
+ site να είναι προσβάσιμο από το δημόσιο Internet. Η εισερχόμενη
+ αίτηση νέας συνεδρίας ταιριάζει με τον κανόνα 100 και η IP διεύθυνση
+ της αντιστοιχίζεται στο τοπικό IP του μηχανήματος με το firewall.
+ Το πακέτο έπειτα ελέγχεται για οποιοδήποτε πρόβλημα μπορεί να έχει
+ σύμφωνα με τους κανόνες που χρησιμοποιούμε, και τελικά ταιριάζει με
+ τον κανόνα 425. Στην περίπτωση αυτή συμβαίνουν δύο πράγματα.
+ Ο κανόνας για το πακέτο γράφεται στο δυναμικό πίνακα καταστάσεων,
+ αλλά αυτή τη φορά περιορίζεται ο αριθμός αιτήσεων νέας συνεδρίας
+ από το συγκεκριμένο IP σε 2. Με αυτό τον τρόπο μπορούμε να
+ αμυνθούμε σε επιθέσεις τύπου άρνησης υπηρεσίας (DoS) όσο αφορά τη
+ συγκεκριμένη θύρα επικοινωνίας. Η ενέργεια του κανόνα είναι το
+ <literal>allow</literal>, και έτσι το πακέτο απελευθερώνεται στο
+ τοπικό δίκτυο. Το πακέτο που παράγεται ως απάντηση, ελέγχεται από
+ τον κανόνα <literal>check-state</literal>, ο οποίος αναγνωρίζει ότι
+ ανήκει σε μια ήδη ενεργή συνεδρία, και αποστέλλεται στον κανόνα 500
+ όπου γίνεται η μετάφραση της διεύθυνσης του μέσω
+ <acronym>NAT</acronym>. Το πακέτο τελικά απελευθερώνεται μέσω της
+ διεπαφής εξερχομένων.</para>
+
+ <para>Υπόδειγμα Κανόνων #1:</para>
+
+ <programlisting>#!/bin/sh
+cmd="ipfw -q add"
+skip="skipto 500"
+pif=rl0
+ks="keep-state"
+good_tcpo="22,25,37,43,53,80,443,110,119"
+
+ipfw -q -f flush
+
+&dollar;cmd 002 allow all from any to any via xl0 # exclude LAN traffic
+&dollar;cmd 003 allow all from any to any via lo0 # exclude loopback traffic
+
+&dollar;cmd 100 divert natd ip from any to any in via &dollar;pif
+&dollar;cmd 101 check-state
+
+# Authorized outbound packets
+&dollar;cmd 120 &dollar;skip udp from any to xx.168.240.2 53 out via &dollar;pif &dollar;ks
+&dollar;cmd 121 &dollar;skip udp from any to xx.168.240.5 53 out via &dollar;pif &dollar;ks
+&dollar;cmd 125 &dollar;skip tcp from any to any &dollar;good_tcpo out via &dollar;pif setup &dollar;ks
+&dollar;cmd 130 &dollar;skip icmp from any to any out via &dollar;pif &dollar;ks
+&dollar;cmd 135 &dollar;skip udp from any to any 123 out via &dollar;pif &dollar;ks
+
+
+# Deny all inbound traffic from non-routable reserved address spaces
+&dollar;cmd 300 deny all from 192.168.0.0/16 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 301 deny all from 172.16.0.0/12 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 302 deny all from 10.0.0.0/8 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 303 deny all from 127.0.0.0/8 to any in via &dollar;pif #loopback
+&dollar;cmd 304 deny all from 0.0.0.0/8 to any in via &dollar;pif #loopback
+&dollar;cmd 305 deny all from 169.254.0.0/16 to any in via &dollar;pif #DHCP auto-config
+&dollar;cmd 306 deny all from 192.0.2.0/24 to any in via &dollar;pif #reserved for docs
+&dollar;cmd 307 deny all from 204.152.64.0/23 to any in via &dollar;pif #Sun cluster
+&dollar;cmd 308 deny all from 224.0.0.0/3 to any in via &dollar;pif #Class D &amp; E multicast
+
+# Authorized inbound packets
+&dollar;cmd 400 allow udp from xx.70.207.54 to any 68 in &dollar;ks
+&dollar;cmd 420 allow tcp from any to me 80 in via &dollar;pif setup limit src-addr 1
+
+
+&dollar;cmd 450 deny log ip from any to any
+
+# This is skipto location for outbound stateful rules
+&dollar;cmd 500 divert natd ip from any to any out via &dollar;pif
+&dollar;cmd 510 allow ip from any to any
+
+######################## end of rules ##################</programlisting>
+
+ <para>Οι παρακάτω κανόνες είναι σχεδόν ίδιοι με τους παραπάνω, αλλά
+ περιέχουν περισσότερα σχόλια για να βοηθήσουν τον αρχάριο χρήστη
+ του IPFW να καταλάβει καλύτερα πως λειτουργούν.</para>
+
+ <para>Υπόδειγμα Κανόνων #2:</para>
+
+ <programlisting>#!/bin/sh
+################ Start of IPFW rules file ###############################
+# Flush out the list before we begin.
+ipfw -q -f flush
+
+# Set rules command prefix
+cmd="ipfw -q add"
+skip="skipto 800"
+pif="rl0" # public interface name of NIC
+ # facing the public Internet
+
+#################################################################
+# No restrictions on Inside LAN Interface for private network
+# Change xl0 to your LAN NIC interface name
+#################################################################
+&dollar;cmd 005 allow all from any to any via xl0
+
+#################################################################
+# No restrictions on Loopback Interface
+#################################################################
+&dollar;cmd 010 allow all from any to any via lo0
+
+#################################################################
+# check if packet is inbound and nat address if it is
+#################################################################
+&dollar;cmd 014 divert natd ip from any to any in via &dollar;pif
+
+#################################################################
+# Allow the packet through if it has previous been added to the
+# the "dynamic" rules table by a allow keep-state statement.
+#################################################################
+&dollar;cmd 015 check-state
+
+#################################################################
+# Interface facing Public Internet (Outbound Section)
+# Check session start requests originating from behind the
+# firewall on the private network or from this gateway server
+# destined for the public Internet.
+#################################################################
+
+# Allow out access to my ISP's Domain name server.
+# x.x.x.x must be the IP address of your ISP's DNS
+# Dup these lines if your ISP has more than one DNS server
+# Get the IP addresses from /etc/resolv.conf file
+&dollar;cmd 020 &dollar;skip tcp from any to x.x.x.x 53 out via &dollar;pif setup keep-state
+
+
+# Allow out access to my ISP's DHCP server for cable/DSL configurations.
+&dollar;cmd 030 &dollar;skip udp from any to x.x.x.x 67 out via &dollar;pif keep-state
+
+# Allow out non-secure standard www function
+&dollar;cmd 040 &dollar;skip tcp from any to any 80 out via &dollar;pif setup keep-state
+
+# Allow out secure www function https over TLS SSL
+&dollar;cmd 050 &dollar;skip tcp from any to any 443 out via &dollar;pif setup keep-state
+
+# Allow out send &amp; get email function
+&dollar;cmd 060 &dollar;skip tcp from any to any 25 out via &dollar;pif setup keep-state
+&dollar;cmd 061 &dollar;skip tcp from any to any 110 out via &dollar;pif setup keep-state
+
+# Allow out FreeBSD (make install &amp; CVSUP) functions
+# Basically give user root "GOD" privileges.
+&dollar;cmd 070 &dollar;skip tcp from me to any out via &dollar;pif setup keep-state uid root
+
+# Allow out ping
+&dollar;cmd 080 &dollar;skip icmp from any to any out via &dollar;pif keep-state
+
+# Allow out Time
+&dollar;cmd 090 &dollar;skip tcp from any to any 37 out via &dollar;pif setup keep-state
+
+# Allow out nntp news (i.e. news groups)
+&dollar;cmd 100 &dollar;skip tcp from any to any 119 out via &dollar;pif setup keep-state
+
+# Allow out secure FTP, Telnet, and SCP
+# This function is using SSH (secure shell)
+&dollar;cmd 110 &dollar;skip tcp from any to any 22 out via &dollar;pif setup keep-state
+
+# Allow out whois
+&dollar;cmd 120 &dollar;skip tcp from any to any 43 out via &dollar;pif setup keep-state
+
+# Allow ntp time server
+&dollar;cmd 130 &dollar;skip udp from any to any 123 out via &dollar;pif keep-state
+
+#################################################################
+# Interface facing Public Internet (Inbound Section)
+# Check packets originating from the public Internet
+# destined for this gateway server or the private network.
+#################################################################
+
+# Deny all inbound traffic from non-routable reserved address spaces
+&dollar;cmd 300 deny all from 192.168.0.0/16 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 301 deny all from 172.16.0.0/12 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 302 deny all from 10.0.0.0/8 to any in via &dollar;pif #RFC 1918 private IP
+&dollar;cmd 303 deny all from 127.0.0.0/8 to any in via &dollar;pif #loopback
+&dollar;cmd 304 deny all from 0.0.0.0/8 to any in via &dollar;pif #loopback
+&dollar;cmd 305 deny all from 169.254.0.0/16 to any in via &dollar;pif #DHCP auto-config
+&dollar;cmd 306 deny all from 192.0.2.0/24 to any in via &dollar;pif #reserved for docs
+&dollar;cmd 307 deny all from 204.152.64.0/23 to any in via &dollar;pif #Sun cluster
+&dollar;cmd 308 deny all from 224.0.0.0/3 to any in via &dollar;pif #Class D &amp; E multicast
+
+# Deny ident
+&dollar;cmd 315 deny tcp from any to any 113 in via &dollar;pif
+
+# Deny all Netbios service. 137=name, 138=datagram, 139=session
+# Netbios is MS/Windows sharing services.
+# Block MS/Windows hosts2 name server requests 81
+&dollar;cmd 320 deny tcp from any to any 137 in via &dollar;pif
+&dollar;cmd 321 deny tcp from any to any 138 in via &dollar;pif
+&dollar;cmd 322 deny tcp from any to any 139 in via &dollar;pif
+&dollar;cmd 323 deny tcp from any to any 81 in via &dollar;pif
+
+# Deny any late arriving packets
+&dollar;cmd 330 deny all from any to any frag in via &dollar;pif
+
+# Deny ACK packets that did not match the dynamic rule table
+&dollar;cmd 332 deny tcp from any to any established in via &dollar;pif
+
+# Allow traffic in from ISP's DHCP server. This rule must contain
+# the IP address of your ISP's DHCP server as it's the only
+# authorized source to send this packet type.
+# Only necessary for cable or DSL configurations.
+# This rule is not needed for 'user ppp' type connection to
+# the public Internet. This is the same IP address you captured
+# and used in the outbound section.
+&dollar;cmd 360 allow udp from x.x.x.x to any 68 in via &dollar;pif keep-state
+
+# Allow in standard www function because I have Apache server
+&dollar;cmd 370 allow tcp from any to me 80 in via &dollar;pif setup limit src-addr 2
+
+# Allow in secure FTP, Telnet, and SCP from public Internet
+&dollar;cmd 380 allow tcp from any to me 22 in via &dollar;pif setup limit src-addr 2
+
+# Allow in non-secure Telnet session from public Internet
+# labeled non-secure because ID &amp; PW are passed over public
+# Internet as clear text.
+# Delete this sample group if you do not have telnet server enabled.
+&dollar;cmd 390 allow tcp from any to me 23 in via &dollar;pif setup limit src-addr 2
+
+# Reject &amp; Log all unauthorized incoming connections from the public Internet
+&dollar;cmd 400 deny log all from any to any in via &dollar;pif
+
+# Reject &amp; Log all unauthorized out going connections to the public Internet
+&dollar;cmd 450 deny log all from any to any out via &dollar;pif
+
+# This is skipto location for outbound stateful rules
+&dollar;cmd 800 divert natd ip from any to any out via &dollar;pif
+&dollar;cmd 801 allow ip from any to any
+
+# Everything else is denied by default
+# deny and log all packets that fell through to see what they are
+&dollar;cmd 999 deny log all from any to any
+################ End of IPFW rules file ###############################</programlisting>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/geom/chapter.sgml b/el_GR.ISO8859-7/books/handbook/geom/chapter.sgml
new file mode 100644
index 0000000000..1841a20c29
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/geom/chapter.sgml
@@ -0,0 +1,873 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: GEOM: Διαχείριση Συστοιχιών Δίσκων
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/geom/chapter.sgml
+ %SRCID% 1.51
+
+-->
+
+<chapter id="GEOM">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφτηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>GEOM: Διαχείριση Συστοιχιών Δίσκων</title>
+
+ <sect1 id="GEOM-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>GEOM Disk Framework</primary>
+ <see>GEOM</see>
+ </indexterm>
+
+ <para>Το κεφάλαιο αυτό καλύπτει τη χρήση των δίσκων κάτω από το πλαίσιο
+ λειτουργιών GEOM στο &os;. Περιλαμβάνει τα κυριότερα προγράμματα
+ ελέγχου <acronym
+ role="Redundant Array of Inexpensive Disks">RAID</acronym>
+ των οποίων οι ρυθμίσεις βασίζονται στο πλαίσιο GEOM. Το κεφάλαιο αυτό
+ δεν αναλύει σε βάθος τον τρόπο με τον οποίο το GEOM χειρίζεται ή ελέγχει
+ λειτουργίες Εισόδου / Εξόδου (IO), το υποσύστημα που βρίσκεται κάτω από
+ αυτό, ή τον κώδικα του. Οι πληροφορίες αυτές παρέχονται από τη σελίδα
+ manual του &man.geom.4; καθώς και από τις αναφορές που περιέχει σε άλλες
+ σχετικές σελίδες. Επίσης το κεφάλαιο αυτό δεν αποτελεί καθοριστικό
+ οδηγό για όλες τις ρυθμίσεις του <acronym>RAID</acronym>.
+ Θα συζητηθούν μόνο οι καταστάσεις λειτουργίας του
+ <acronym>RAID</acronym> που υποστηρίζονται από το GEOM.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το είδος της υποστήριξης <acronym>RAID</acronym> που είναι
+ διαθέσιμο μέσω του GEOM.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε τα βασικά βοηθητικά προγράμματα για την
+ ρύθμιση, συντήρηση και διαχείριση των διαφόρων επιπέδων <acronym>
+ RAID</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να δημιουργήσετε mirror ή stripe, να κρυπτογραφήσετε, και να
+ συνδέσετε δίσκους με το GEOM, μέσω μιας απομακρυσμένης
+ σύνδεσης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αντιμετωπίσετε προβλήματα δίσκων που χρησιμοποιούν το
+ πλαίσιο λειτουργιών GEOM.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε πως μεταχειρίζεται το &os; τις συσκευές δίσκων
+ (<xref linkend="disks">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να γνωρίζετε πως θα ρυθμίσετε και θα εγκαταστήσετε ένα νέο
+ πυρήνα στο &os; (<xref linkend="kernelconfig">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="GEOM-intro">
+ <title>Εισαγωγή στο GEOM</title>
+
+ <para>Το GEOM επιτρέπει την πρόσβαση και τον έλεγχο σε κλάσεις &mdash;
+ όπως την Κεντρική Εγγραφή Εκκίνησης (Master Boot Record), τα
+ <acronym>BSD</acronym> labels, κ.α. &mdash; μέσω της χρήσης παροχέων,
+ ή μέσω ειδικών αρχείων στον κατάλογο
+ <filename class="directory">/dev</filename>. Το GEOM υποστηρίζει
+ διάφορες διατάξεις <acronym>RAID</acronym> και παρέχει διάφανη
+ πρόσβαση στο λειτουργικό σύστημα και τα βοηθητικά του
+ προγράμματα.</para>
+ </sect1>
+
+ <sect1 id="GEOM-striping">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τους </contrib>
+ </author>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>RAID0 - Striping</title>
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Striping</primary>
+ </indexterm>
+
+ <para>Το striping είναι μια μέθοδος που συνδυάζει διαφορετικούς φυσικούς
+ δίσκους σε ένα μοναδικό λογικό τόμο. Σε πολλές περιπτώσεις, αυτό
+ γίνεται με την βοήθεια εξειδικευμένου υλικού (ελεγκτών). Το υποσύστημα
+ δίσκων GEOM παρέχει υποστήριξη μέσω λογισμικού για τη διάταξη
+ <acronym>RAID</acronym>0, η οποία είναι γνωστή και ως striping.</para>
+
+ <para>Σε ένα σύστημα <acronym>RAID</acronym>0, τα δεδομένα χωρίζονται σε
+ blocks τα οποία γράφονται τμηματικά σε όλους τους δίσκους που αποτελούν
+ τη συστοιχία. Αντί να χρειάζεται να περιμένετε το σύστημα να γράψει
+ 256k δεδομένων σε ένα δίσκο, ένα σύστημα <acronym>RAID</acronym>0 μπορεί
+ να γράψει ταυτόχρονα 64k σε καθένα από τους τέσσερις δίσκους μιας
+ συστοιχίας, προσφέροντας έτσι εξαιρετική απόδοση εισόδου/εξόδου (I/O).
+ Η απόδοση αυτή μπορεί να αυξηθεί περισσότερο, με τη χρήση πολλαπλών
+ ελεγκτών δίσκων.</para>
+
+ <para>Κάθε δίσκος σε ένα stripe <acronym>RAID</acronym>0 πρέπει να είναι
+ του ίδιου μεγέθους, καθώς οι αιτήσεις I/O μοιράζονται όσο αφορά την
+ ανάγνωση και εγγραφή, σε πολλούς παράλληλους δίσκους.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="geom/striping" align="center">
+ </imageobject>
+
+ <textobject>
+ <phrase>Διάγραμμα Disk Striping</phrase>
+ </textobject>
+ </mediaobject>
+
+ <procedure>
+ <title>Δημιουργία Stripe από μη-Διαμορφωμένους ATA Δίσκους</title>
+
+ <step>
+ <para>Φορτώστε το άρθρωμα <filename>geom_stripe.ko</filename>:</para>
+
+ <screen>&prompt.root; <userinput>kldload geom_stripe</userinput></screen>
+ </step>
+
+ <step>
+ <para>Εξασφαλίστε ότι υπάρχει κατάλληλο σημείο προσάρτησης. Αν ο
+ τόμος πρόκειται να γίνει κατάτμηση root, προσαρτήστε τον
+ προσωρινά σε κάποιο άλλο σημείο προσάρτησης, όπως το
+ <filename class="directory">/mnt</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /mnt</userinput></screen>
+ </step>
+
+ <step>
+ <para>Καθορίστε τα ονόματα των συσκευών για τους δίσκους που πρόκειται
+ να γίνουν stripe, και δημιουργήστε τη νέα συσκευή stripe. Για
+ παράδειγμα, για να δημιουργήσετε ένα stripe από δύο
+ αχρησιμοποίητους και χωρίς κατατμήσεις δίσκους
+ <acronym>ATA</acronym>, όπως π.χ. τους
+ <filename>/dev/ad2</filename> και
+ <filename>/dev/ad3</filename>:</para>
+
+ <screen>&prompt.root; <userinput>gstripe label -v st0 /dev/ad2 /dev/ad3</userinput>
+Metadata value stored on /dev/ad2.
+Metadata value stored on /dev/ad3.
+Done.</screen>
+ </step>
+
+ <step>
+ <para>Γράψτε ένα τυποποιημένο label (πίνακα κατατμήσεων) στο νέο
+ τόμο, και εγκαταστήστε τον προεπιλεγμένο κώδικα εκκίνησης
+ (bootstrap):</para>
+
+ <screen>&prompt.root; <userinput>bsdlabel -wB /dev/stripe/st0</userinput></screen>
+ </step>
+
+ <step>
+ <para>Η διαδικασία αυτή θα δημιουργήσει τη συσκευή
+ <devicename>st0</devicename>, καθώς και δύο ακόμα συσκευές στον
+ κατάλογο <filename class="directory">/dev/stripe</filename>.
+ Οι συσκευές αυτές θα ονομάζονται <devicename>st0a</devicename> και
+ <devicename>st0c</devicename>. Στο σημείο αυτό, μπορείτε πλέον να
+ δημιουργήσετε σύστημα αρχείων στη συσκευή
+ <devicename>st0a</devicename> χρησιμοποιώντας το βοηθητικό πρόγραμμα
+ <command>newfs</command>:</para>
+
+ <screen>&prompt.root; <userinput>newfs -U /dev/stripe/st0a</userinput></screen>
+
+ <para>Θα δείτε μια μεγάλη σειρά αριθμών να περνά γρήγορα από την
+ οθόνη σας, και μετά από λίγα δευτερόλεπτα η διαδικασία θα έχει
+ ολοκληρωθεί. Ο τόμος θα έχει δημιουργηθεί και θα είναι έτοιμος
+ για προσάρτηση.</para>
+ </step>
+ </procedure>
+
+ <para>Για να προσαρτήσετε χειροκίνητα το stripe που δημιουργήσατε:</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/stripe/st0a /mnt</userinput></screen>
+
+ <para>Για να γίνεται αυτόματα η προσάρτηση αυτού του συστήματος αρχείων
+ κατά την διαδικασία εκκίνησης, τοποθετήστε τις πληροφορίες του τόμου στο
+ αρχείο <filename>/etc/fstab</filename>. Για το σκοπό αυτό,
+ δημιουργούμε ένα μόνιμο σημείο προσάρτησης, το <filename
+ class="directory">stripe</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /stripe</userinput>
+&prompt.root; <userinput>echo "/dev/stripe/st0a /stripe ufs rw 2 2" \</userinput>
+ <userinput>&gt;&gt; /etc/fstab</userinput></screen>
+
+ <para>Το άρθρωμα <filename>geom_stripe.ko</filename> θα πρέπει να
+ φορτώνεται αυτόματα κατά την εκκίνηση του συστήματος.
+ Εκτελέστε την παρακάτω εντολή, για να προσθέσετε την κατάλληλη ρύθμιση
+ στο <filename>/boot/loader.conf</filename>:</para>
+
+ <screen>&prompt.root; <userinput>echo 'geom_stripe_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
+ </sect1>
+
+ <sect1 id="GEOM-mirror">
+ <title>RAID1 - Mirroring</title>
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Disk Mirroring</primary>
+ </indexterm>
+
+ <para>Το mirroring (καθρεφτισμός) είναι μια τεχνολογία που
+ χρησιμοποιείται από πολλές εταιρίες και οικιακούς χρήστες για να
+ ασφαλίσουν τα δεδομένα τους χωρίς διακοπές. Σε μια διάταξη mirror,
+ ο δίσκος Β είναι απλώς ένα πλήρες αντίγραφο του δίσκου Α. Ή μπορεί
+ οι δίσκοι Γ+Δ να είναι αντίγραφα των δίσκων A+B. Άσχετα με την
+ ακριβή διάταξη των δίσκων, το σημαντικό είναι ότι οι πληροφορίες ενός
+ δίσκου ή μιας κατάτμησης αντιγράφονται σε άλλους. Οι πληροφορίες
+ αυτές μπορεί αργότερα να αποκατασταθούν με εύκολο τρόπο, ή να
+ αντιγραφούν χωρίς να προκληθεί διακοπή στις υπηρεσίες του μηχανήματος
+ ή στην πρόσβαση των δεδομένων. Μπορούν ακόμα και να μεταφερθούν και
+ να φυλαχθούν σε άλλο, ασφαλές μέρος.</para>
+
+ <para>Για να ξεκινήσετε, βεβαιωθείτε ότι το σύστημα σας έχει δύο σκληρούς
+ δίσκους ίδιου μεγέθους. Στα παραδείγματα μας θεωρούμε ότι οι δίσκοι
+ είναι τύπου <acronym>SCSI</acronym> (απευθείας πρόσβασης,
+ &man.da.4;).</para>
+
+ <sect2>
+ <title>Mirroring στους Βασικούς Δίσκους</title>
+
+ <para>Υποθέτοντας ότι το &os; έχει εγκατασταθεί στον πρώτο δίσκο
+ <devicename>da0</devicename>, θα πρέπει να ρυθμίσετε το
+ &man.gmirror.8; να αποθηκεύσει εκεί τα βασικά δεδομένα του.</para>
+
+ <para>Πριν δημιουργήσετε το mirror, ενεργοποιήστε την δυνατότητα
+ εμφάνισης περισσότερων λεπτομερειών (που μπορεί να σας βοηθήσουν σε
+ περίπτωση προβλήματος) και επιτρέψτε την απευθείας πρόσβαση στη
+ συσκευή δίσκου. Για το σκοπό αυτό θέστε τη μεταβλητή
+ <varname>kern.geom.debugflags</varname> του &man.sysctl.8;
+ στην παρακάτω τιμή:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.geom.debugflags=17</userinput></screen>
+
+ <para>Μπορείτε τώρα να δημιουργήσετε το mirror. Ξεκινήστε τη
+ διαδικασία αποθηκεύοντας τα μετα-δεδομένα (meta-data) στον βασικό
+ δίσκο, δημιουργώντας ουσιαστικά τη συσκευή
+ <filename class="devicefile">/dev/mirror/gm</filename>.
+ Χρησιμοποιήστε την παρακάτω εντολή:</para>
+
+ <warning>
+ <para>Η δημιουργία mirror στο δίσκο εκκίνησης μπορεί να έχει ως
+ αποτέλεσμα την απώλεια δεδομένων, αν ο τελευταίος τομέας του δίσκου
+ έχει ήδη χρησιμοποιηθεί. Η πιθανότητα αυτή είναι πολύ μικρότερη
+ αν το mirror δημιουργηθεί αμέσως μετά από μια νέα εγκατάσταση του
+ &os;. Η παρακάτω διαδικασία είναι επίσης ασύμβατη με τις
+ προεπιλεγμένες ρυθμίσεις εγκατάστασης του
+ &os;&nbsp;9.<replaceable>X</replaceable> στις οποίες
+ χρησιμοποιείται το σύστημα κατατμήσεων <acronym>GPT</acronym>.
+ To GEOM καταστρέφει τα μεταδεδομένα του <acronym>GPT</acronym>,
+ και θα προκαλέσει απώλεια δεδομένων και πιθανή αδυναμία εκκίνησης
+ του συστήματος.</para>
+ </warning>
+
+ <screen>&prompt.root; <userinput>gmirror label -vb round-robin gm0 /dev/da0</userinput></screen>
+
+ <para>Το σύστημα θα ανταποκριθεί με το παρακάτω μήνυμα:</para>
+
+ <screen>Metadata value stored on /dev/da0.
+Done.</screen>
+
+ <para>Αρχικοποιήστε το GEOM. Η παρακάτω εντολή θα φορτώσει το άρθρωμα
+ <filename>/boot/kernel/geom_mirror.ko</filename> στον πυρήνα:</para>
+
+ <screen>&prompt.root; <userinput>gmirror load</userinput></screen>
+
+ <note>
+ <para>Με την επιτυχή εκτέλεση αυτής της εντολής, δημιουργείται η
+ συσκευή <devicename>gm0</devicename> μέσα στον κατάλογο
+ <filename class="directory">/dev/mirror</filename>.</para>
+ </note>
+
+ <para>Ενεργοποιήστε το φόρτωμα του αρθρώματος
+ <filename>geom_mirror.ko</filename> κατά την εκκίνηση του
+ συστήματος:</para>
+
+ <screen>&prompt.root; <userinput>echo 'geom_mirror_load="YES"' &gt;&gt; /boot/loader.conf</userinput></screen>
+
+ <para>Επεξεργαστείτε το αρχείο <filename>/etc/fstab</filename>,
+ αντικαθιστώντας τις αναφορές στις παλιές συσκευές
+ <devicename>da0</devicename> με τις αντίστοιχες καινούριες
+ <devicename>gm0</devicename> που αντιπροσωπεύουν το mirror.</para>
+
+ <note>
+ <para>Αν χρησιμοποιείτε το &man.vi.1;, μπορείτε να ακολουθήσετε τα
+ παρακάτω βήματα για να ολοκληρώσετε εύκολα αυτή τη
+ διαδικασία:</para>
+
+ <screen>&prompt.root; <userinput>vi /etc/fstab</userinput></screen>
+
+ <para>Στο &man.vi.1;, κρατήστε αντίγραφο ασφαλείας του τρέχοντος
+ αρχείου <filename>fstab</filename> πληκτρολογώντας
+ <userinput>:w /etc/fstab.bak</userinput>. Έπειτα αντικαταστήστε
+ όλες τις αναφορές στις παλιές συσκευές <devicename>da0</devicename>
+ με τις νέες <devicename>gm0</devicename> γράφοντας
+ <userinput>:%s/da/mirror\/gm/g</userinput>.<para>
+ </note>
+
+ <para>Το <filename>fstab</filename> που θα προκύψει, θα μοιάζει με
+ το παρακάτω. Δεν έχει σημασία αν οι δίσκοι ήταν αρχικά
+ <acronym>SCSI</acronym> ή <acronym>ATA</acronym>, η συσκευή
+ <acronym>RAID</acronym> θα έχει πάντα το όνομα
+ <devicename>gm</devicename>.</para>
+
+ <programlisting># Device Mountpoint FStype Options Dump Pass#
+/dev/mirror/gm0s1b none swap sw 0 0
+/dev/mirror/gm0s1a / ufs rw 1 1
+/dev/mirror/gm0s1d /usr ufs rw 0 0
+/dev/mirror/gm0s1f /home ufs rw 2 2
+#/dev/mirror/gm0s2d /store ufs rw 2 2
+/dev/mirror/gm0s1e /var ufs rw 2 2
+/dev/acd0 /cdrom cd9660 ro,noauto 0 0</programlisting>
+
+ <para>Επανεκκινήστε το σύστημα:</para>
+
+ <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
+
+ <para>Κατά την εκκίνηση του συστήματος, θα πρέπει πλέον να
+ χρησιμοποιείται η συσκευή <devicename>gm0</devicename> αντί για την
+ <devicename>da0</devicename>. Μετά το τέλος της εκκίνησης, μπορείτε
+ να ελέγξετε ότι όλα λειτουργούν σωστά, εξετάζοντας την έξοδο της
+ εντολής <command>mount</command>:</para>
+
+ <screen>&prompt.root; <userinput>mount</userinput>
+Filesystem 1K-blocks Used Avail Capacity Mounted on
+/dev/mirror/gm0s1a 1012974 224604 707334 24% /
+devfs 1 1 0 100% /dev
+/dev/mirror/gm0s1f 45970182 28596 42263972 0% /home
+/dev/mirror/gm0s1d 6090094 1348356 4254532 24% /usr
+/dev/mirror/gm0s1e 3045006 2241420 559986 80% /var
+devfs 1 1 0 100% /var/named/dev</screen>
+
+ <para>Η έξοδος φαίνεται σωστή, όπως αναμενόταν. Τελικά, για να
+ ξεκινήσει ο συγχρονισμός, εισάγετε και την συσκευή
+ <devicename>da1</devicename> στο mirror, χρησιμοποιώντας την
+ ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen>
+
+ <para>Κατά τη διάρκεια του συγχρονισμού του mirror, μπορείτε να δείτε
+ την πρόοδο της διαδικασίας με την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>gmirror status</userinput></screen>
+
+ <para>Μετά το τέλος της δόμησης του mirror, και αφού έχουν συγχρονιστεί
+ όλα τα δεδομένα, η έξοδος της παραπάνω εντολής θα μοιάζει με την
+ ακόλουθη:</para>
+
+ <screen> Name Status Components
+mirror/gm0 COMPLETE da0
+ da1</screen>
+
+ <para>Αν υπάρχουν προβλήματα, ή αν το mirror βρίσκεται ακόμα στη
+ διαδικασία συγχρονισμού, το παράδειγμα θα δείχνει
+ <literal>DEGRADED</literal> αντί για
+ <literal>COMPLETE</literal>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <sect3>
+ <title>Το σύστημα αρνείται να ξεκινήσει</title>
+
+ <para>Αν το σύστημα σας σταματάει σε μια προτροπή που μοιάζει με την
+ παρακάτω:</para>
+
+ <programlisting>ffs_mountroot: can't find rootvp
+Root mount failed: 6
+mountroot></programlisting>
+
+ <para>Επανεκκινήστε το σύστημα σας μέσω του διακόπτη τροφοδοσίας ή
+ του πλήκτρου reset. Στο μενού εκκίνησης, επιλέξτε το (6). Με τον
+ τρόπο αυτό θα βρεθείτε στην προτροπή του &man.loader.8;. Φορτώστε
+ χειροκίνητα το άρθρωμα στον πυρήνα:</para>
+
+ <screen>OK? <userinput>load geom_mirror</userinput>
+OK? <userinput>boot</userinput></screen>
+
+ <para>Αν το παραπάνω λειτουργήσει, τότε για κάποιο λόγο το άρθρωμα
+ δεν φορτώθηκε σωστά. Ελέγξτε αν είναι σωστή η σχετική καταχώριση
+ στο αρχείο <filename>/boot/loader.conf</filename>. Αν το πρόβλημα
+ παραμένει, προσθέστε τη γραμμή:</para>
+
+ <programlisting>options GEOM_MIRROR</programlisting>
+
+ <para>στο αρχείο ρυθμίσεων του πυρήνα σας, αναδημιουργήστε και
+ επανεγκαταστήστε τον πυρήνα σας. Το πρόβλημα σας θα πρέπει να
+ διορθωθεί.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Επαναφορά Μετά από Αποτυχία Δίσκου</title>
+
+ <para>Το εκπληκτικό με το mirroring είναι ότι όταν ένας σκληρός δίσκος
+ χαλάσει, μπορείτε να τον αντικαταστήσετε χωρίς να χάσετε καθόλου
+ δεδομένα.</para>
+
+ <para>Υποθέτοντας ότι χρησιμοποιούμε τις ρυθμίσεις
+ <acronym>RAID</acronym>1 που δείξαμε προηγουμένως, ας θεωρήσουμε ότι
+ χάλασε ο δίσκος <devicename>da1</devicename> και πρέπει να
+ αντικατασταθεί. Για να τον αντικαταστήσετε, βρείτε ποιος δίσκος είναι
+ και απενεργοποιήστε το σύστημα. Στο σημείο αυτό, μπορείτε πλέον να
+ ανταλλάξετε το δίσκο με ένα νέο και να ενεργοποιήσετε ξανά το
+ σύστημα. Μετά την επανενεργοποίηση του συστήματος, μπορείτε να
+ χρησιμοποιήσετε τις παρακάτω εντολές για να θέσετε σε λειτουργία το
+ νέο δίσκο:</para>
+
+ <screen>&prompt.root; <userinput>gmirror forget gm0</userinput></screen>
+
+ <screen>&prompt.root; <userinput>gmirror insert gm0 /dev/da1</userinput></screen>
+
+ <para>Χρησιμοποιήστε την εντολή <command>gmirror</command>
+ <option>status</option> για να παρακολουθείτε τη διαδικασία του
+ συγχρονισμού. Είναι στα αλήθεια τόσο απλό.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="geom-ggate">
+ <title>Δικτυακές Συσκευές μέσω GEOM Gate</title>
+
+ <para>Το GEOM υποστηρίζει απομακρυσμένη χρήση συσκευών, όπως οι σκληροί
+ δίσκοι, τα CD-ROM, τα αρχεία κ.λ.π. χρησιμοποιώντας τα βοηθητικά
+ προγράμματα πύλης (gate). Η λειτουργία είναι παρόμοια με το
+ <acronym>NFS</acronym>.</para>
+
+ <para>Για να ξεκινήσετε, πρέπει να δημιουργήσετε ένα αρχείο exports. Το
+ αρχείο αυτό καθορίζει ποιος επιτρέπεται να αποκτήσει πρόσβαση στους
+ κοινόχρηστους πόρους και τι επιπέδου θα είναι αυτή η πρόσβαση. Για
+ παράδειγμα, για να διαμοιράσετε την τέταρτη κατάτμηση (slice) του πρώτου
+ δίσκου <acronym>SCSI</acronym>, είναι αρκετό να δημιουργήσετε το
+ παρακάτω αρχείο <filename>/etc/gg.exports</filename>:</para>
+
+ <programlisting>192.168.1.0/24 RW /dev/da0s4d</programlisting>
+
+ <para>Το παραπάνω θα επιτρέψει σε όλους τους υπολογιστές του ιδιωτικού
+ σας δικτύου, να έχουν πρόσβαση μέσω δικτύου στο σύστημα αρχείων της
+ κατάτμησης <devicename>da0s4d</devicename>.</para>
+
+ <para>Για να διαμοιράσετε αυτή τη συσκευή, βεβαιωθείτε ότι δεν είναι
+ προσαρτημένη τη δεδομένη στιγμή, και ξεκινήστε το δαίμονα εξυπηρετητή
+ &man.ggated.8;:</para>
+
+ <screen>&prompt.root; <userinput>ggated</userinput></screen>
+
+ <para>Για να προσαρτήσετε την συσκευή στο μηχάνημα πελάτη, χρησιμοποιήστε
+ τις ακόλουθες εντολές:</para>
+
+ <screen>&prompt.root; <userinput>ggatec create -o rw 192.168.1.1 /dev/da0s4d</userinput>
+ggate0
+&prompt.root; <userinput>mount /dev/ggate0 /mnt</userinput></screen>
+
+ <para>Από εδώ και στο εξής, μπορείτε να έχετε πρόσβαση στη συσκευή μέσω
+ του σημείου προσάρτησης <filename class="directory">/mnt</filename>.</para>
+
+ <note>
+ <para>Πρέπει να τονιστεί ότι η διαδικασία θα αποτύχει αν η συσκευή
+ είναι τη δεδομένη στιγμή προσαρτημένη, είτε στον εξυπηρετητή, είτε σε
+ οποιοδήποτε άλλο υπολογιστή στο δίκτυο.</para>
+ </note>
+
+ <para>Όταν δεν χρειάζεστε πλέον τη συσκευή, μπορείτε να την
+ αποπροσαρτήσετε με ασφάλεια, χρησιμοποιώντας την εντολή &man.umount.8;,
+ όπως γίνεται και με οποιαδήποτε άλλη συσκευή δίσκου.</para>
+ </sect1>
+
+ <sect1 id="geom-glabel">
+ <title>Δημιουργώντας Ετικέτες (Labels) στις Συσκευές Δίσκων</title>
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Disk Labels</primary>
+ </indexterm>
+
+ <para>Κατά τη διάρκεια της αρχικοποίησης, στην εκκίνηση του συστήματος,
+ ο πυρήνας του &os; θα δημιουργήσει τα απαραίτητα αρχεία για κάθε
+ συσκευή που ανιχνεύει. Αυτή η μέθοδος ανίχνευσης συσκευών, μπορεί να
+ δημιουργήσει προβλήματα. Για παράδειγμα, τι θα γίνει αν προσθέσουμε ένα
+ νέο δίσκο <acronym>USB</acronym>; Είναι αρκετά πιθανό μια συσκευή
+ μνήμης flash να πάρει το όνομα <devicename>da0</devicename> και η
+ αρχική <devicename>da0</devicename> να μετακινηθεί στο
+ <devicename>da1</devicename>. Αυτό θα προκαλέσει προβλήματα στην
+ προσάρτηση των συστημάτων αρχείων, αν υπάρχουν οι αντίστοιχες
+ καταχωρίσεις τους στο <filename>/etc/fstab</filename>, και μπορεί ακόμα
+ και να παρεμποδίσει την κανονική εκκίνηση του συστήματος.</para>
+
+ <para>Μια λύση είναι να ρυθμίσετε τις συσκευές <acronym>SCSI</acronym> με
+ τέτοιο τρόπο, ώστε η αρίθμηση τους να είναι συνεχόμενη. Έτσι, κάθε
+ φορά που προσθέτετε μια νέα συσκευή στον ελεγκτή <acronym>SCSI</acronym>
+ θα είστε σίγουρος ότι θα λάβει αριθμό που δεν έχει χρησιμοποιηθεί.
+ Αλλά τι γίνεται με τις συσκευές <acronym>USB</acronym> που μπορεί να
+ αντικαταστήσουν τον κύριο <acronym>SCSI</acronym> δίσκο; Αυτό μπορεί
+ πράγματι να συμβεί, καθώς οι συσκευές <acronym>USB</acronym>
+ ανιχνεύονται κατά βάση πριν από τον ελεγκτή <acronym>SCSI</acronym>.
+ Μια λύση είναι να βάζετε τις συσκευές αυτές μόνο μετά την εκκίνηση
+ του συστήματος. Μια άλλη μέθοδος είναι να χρησιμοποιείτε μόνο μια
+ συσκευή τύπου <acronym>ATA</acronym> και να μην καταχωρείτε ποτέ τους
+ δίσκους <acronym>SCSI</acronym> στο <filename>/etc/fstab</filename>.</para>
+
+ <para>Υπάρχει ωστόσο καλύτερη λύση. Χρησιμοποιώντας το βοηθητικό
+ πρόγραμμα <command>glabel</command>, ένας διαχειριστής ή χρήστης, μπορεί
+ να αποδώσει ετικέτες στις συσκευές δίσκων και να τις χρησιμοποιήσει στο
+ <filename>/etc/fstab</filename>, αντί για τα συμβατικά ονόματα
+ συσκευών. Επειδή η <command>glabel</command> αποθηκεύει την ετικέτα
+ στον τελευταίο τομέα του κάθε παροχέα (συσκευής δίσκου), η ετικέτα
+ διατηρείται και μετά από την επανεκκίνηση του συστήματος.
+ Χρησιμοποιώντας αυτή την ετικέτα ως όνομα συσκευής, θα μπορείτε να
+ προσαρτήσετε πάντα το σύστημα αρχείων, άσχετα με το πραγματικό όνομα
+ συσκευής που έχει αποδοθεί στο δίσκο.</para>
+
+ <note>
+ <para>Δεν χρειάζεται φυσικά να τονίσουμε ότι αυτή η ετικέτα θα πρέπει
+ να είναι μόνιμη. Το βοηθητικό πρόγραμμα <command>glabel</command>
+ μπορεί να δημιουργήσει τόσο μόνιμες όσο και προσωρινές ετικέτες.
+ Μόνο οι μόνιμες ετικέτες διατηρούνται ανέπαφες μετά από μια
+ επανεκκίνηση. Δείτε τη σελίδα manual της &man.glabel.8; για
+ περισσότερες πληροφορίες σχετικά με τα είδη των ετικετών.</para>
+ </note>
+
+ <sect2>
+ <title>Είδη Ετικετών και Παραδείγματα</title>
+
+ <para>Υπάρχουν δύο τύποι ετικετών, η γενική ετικέτα και η ετικέτα
+ συστήματος αρχείων. Οι ετικέτες μπορεί να είναι προσωρινές ή μόνιμες.
+ Οι μόνιμες ετικέτες μπορούν να δημιουργηθούν με τις εντολές
+ &man.tunefs.8; ή &man.newfs.8;. Στην περίπτωση αυτή, θα δημιουργηθούν
+ σε ένα υποκατάλογο του <filename class="directory">/dev</filename>.
+ Για παράδειγμα, οι ετικέτες συσκευών με σύστημα αρχείων
+ <acronym>UFS</acronym>2, θα δημιουργηθούν στον κατάλογο <filename
+ class="directory">/dev/ufs</filename>. Μόνιμες ετικέτες μπορούν
+ επίσης να δημιουργηθούν με χρήση της εντολής
+ <command>glabel label</command>. Οι ετικέτες αυτές δεν εξαρτώνται από
+ το σύστημα αρχείων, και δημιουργούνται στον κατάλογο
+ <filename class="directory">/dev/label</filename>.</para>
+
+ <para>Οι ετικέτες προσωρινού τύπου, χάνονται σε κάθε επανεκκίνηση του
+ συστήματος. Οι ετικέτες αυτές δημιουργούνται στον κατάλογο
+ <filename class="directory">/dev/label</filename> και είναι τέλειες
+ για πειραματισμούς. Μπορείτε να δημιουργήσετε προσωρινές ετικέτες
+ με την εντολή <command>glabel create</command>. Για περισσότερες
+ πληροφορίες, διαβάστε τη σελίδα manual της &man.glabel.8;.</para>
+
+<!-- XXXTR: How do you create a file system label without running newfs
+ or when there is no newfs (e.g.: cd9660)? -->
+
+ <para>Για να δημιουργήσετε μια μόνιμη ετικέτα για ένα σύστημα αρχείων
+ <acronym>UFS</acronym>2, χωρίς να καταστρέψετε τα δεδομένα που
+ περιέχει, χρησιμοποιήστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>tunefs -L <replaceable>home</replaceable> <replaceable>/dev/da3</replaceable></userinput></screen>
+
+ <warning>
+ <para>Αν το σύστημα αρχείων είναι γεμάτο, η παραπάνω εντολή μπορεί να
+ προκαλέσει καταστροφή δεδομένων. Ωστόσο, αν το σύστημα αρχείων
+ είναι γεμάτο, στόχος σας θα πρέπει να είναι να διαγράψετε τα
+ αρχεία που δεν χρησιμοποιούνται, και όχι να προσθέτετε
+ ετικέτες.</para>
+ </warning>
+
+ <para>Θα πρέπει τώρα να υπάρχει μια ετικέτα στον κατάλογο
+ <filename class="directory">/dev/ufs</filename> η οποία μπορεί να
+ προστεθεί στο <filename>/etc/fstab</filename>:</para>
+
+ <programlisting>/dev/ufs/home /home ufs rw 2 2</programlisting>
+
+ <note>
+ <para>Το σύστημα αρχείων δεν πρέπει να είναι προσαρτημένο καθώς
+ εκτελείτε την εντολή <command>tunefs</command>.</para>
+ </note>
+
+ <para>Μπορείτε τώρα να προσαρτήσετε το σύστημα αρχείων με το συνήθη
+ τρόπο:</para>
+
+ <screen>&prompt.root; <userinput>mount /home</userinput></screen>
+
+ <para>Από εδώ και πέρα, και όσο το άρθρωμα
+ <filename>geom_label.ko</filename> φορτώνεται στον πυρήνα μέσω του
+ <filename>/boot/loader.conf</filename> ή εφόσον έχετε βάλει την
+ επιλογή <literal>GEOM_LABEL</literal> στον πυρήνα σας, ακόμα και αν
+ το όνομα της συσκευής αλλάξει, δεν θα έχει καμιά δυσμενή επίδραση
+ στο σύστημα σας.</para>
+
+ <para>Μπορείτε επίσης να δημιουργήσετε συστήματα αρχείων με
+ προεπιλεγμένη ετικέτα, χρησιμοποιώντας την επιλογή
+ <option>-L</option> στην εντολή <command>newfs</command>. Δείτε την
+ σελίδα manual του &man.newfs.8; για περισσότερες πληροφορίες.</para>
+
+ <para>Μπορείτε να χρησιμοποιήσετε την παρακάτω εντολή για να
+ καταστρέψετε μια ετικέτα:</para>
+
+ <screen>&prompt.root; <userinput>glabel destroy home</userinput></screen>
+
+ <para>Το επόμενο παράδειγμα δείχνει πως μπορούν να δοθούν ετικέτες στις
+ κατατμήσεις του δίσκου εκκίνησης.</para>
+
+ <example>
+ <title>Δημιουργία Ετικετών στις Κατατμήσεις του Δίσκου
+ Εκκίνησης</title>
+
+ <para>Δημιουργώντας μόνιμες ετικέτες στις κατατμήσεις του δίσκου
+ εκκίνησης, το σύστημα σας θα συνεχίσει να εκκινεί κανονικά ακόμα
+ και αν μεταφέρετε το δίσκο σε άλλο ελεγκτή ή ακόμα και σε
+ διαφορετικό σύστημα. Στο παράδειγμα μας, θεωρούμε ότι
+ χρησιμοποιείται ένας δίσκος <acronym>ATA</acronym>, ο οποίος
+ αναγνωρίζεται από το σύστημα ως <devicename>ad0</devicename>.
+ Θεωρούμε επίσης ότι χρησιμοποιείται η συνηθισμένη διάταξη
+ κατατμήσεων του &os;, που περιλαμβάνει τις κατατμήσεις
+ <filename class="directory">/</filename>,
+ <filename class="directory">/var</filename>,
+ <filename class="directory">/usr</filename> και
+ <filename class="directory">/tmp</filename> όπως επίσης και μια
+ κατάτμηση swap.</para>
+
+ <para>Επανεκκινήστε το σύστημα, και όταν εμφανιστεί η προτροπή του
+ &man.loader.8;, πιέστε το <keycap>4</keycap> για να πραγματοποιηθεί
+ εκκίνηση σε κατάσταση ενός χρήστη. Έπειτα, δώστε τις ακόλουθες
+ εντολές:</para>
+
+ <screen>&prompt.root; <userinput>glabel label rootfs /dev/ad0s1a</userinput>
+GEOM_LABEL: Label for provider /dev/ad0s1a is label/rootfs
+&prompt.root; <userinput>glabel label var /dev/ad0s1d</userinput>
+GEOM_LABEL: Label for provider /dev/ad0s1d is label/var
+&prompt.root; <userinput>glabel label usr /dev/ad0s1f</userinput>
+GEOM_LABEL: Label for provider /dev/ad0s1f is label/usr
+&prompt.root; <userinput>glabel label tmp /dev/ad0s1e</userinput>
+GEOM_LABEL: Label for provider /dev/ad0s1e is label/tmp
+&prompt.root; <userinput>glabel label swap /dev/ad0s1b</userinput>
+GEOM_LABEL: Label for provider /dev/ad0s1b is label/swap
+&prompt.root; <userinput>exit</userinput></screen>
+
+ <para>Η εκκίνηση θα συνεχιστεί κανονικά και το σύστημα θα έλθει σε
+ κατάσταση πολλαπλών χρηστών (multi-user).
+ Μετά το τέλος της εκκίνησης, επεξεργαστείτε το αρχείο
+ <filename>/etc/fstab</filename> και αλλάξτε τα συμβατικά ονόματα
+ συσκευών με τις αντίστοιχες ετικέτες. Το τελικό αρχείο
+ <filename>/etc/fstab</filename> θα μοιάζει με το παρακάτω:</para>
+
+ <programlisting># Device Mountpoint FStype Options Dump Pass#
+/dev/label/swap none swap sw 0 0
+/dev/label/rootfs / ufs rw 1 1
+/dev/label/tmp /tmp ufs rw 2 2
+/dev/label/usr /usr ufs rw 2 2
+/dev/label/var /var ufs rw 2 2</programlisting>
+
+ <para>Μπορείτε τώρα να επανεκκινήσετε το σύστημα. Αν όλα πήγαν καλά,
+ η εκκίνηση θα είναι κανονική, και η εντολή <command>mount</command>
+ θα δείξει:</para>
+
+ <screen>&prompt.root; <userinput>mount</userinput>
+/dev/label/rootfs on / (ufs, local)
+devfs on /dev (devfs, local)
+/dev/label/tmp on /tmp (ufs, local, soft-updates)
+/dev/label/usr on /usr (ufs, local, soft-updates)
+/dev/label/var on /var (ufs, local, soft-updates)</screen>
+ </example>
+
+ <para>Ξεκινώντας από το &os;&nbsp;7.2, το &man.glabel.8; υποστηρίζει
+ ένα νέο είδος ετικέτας για συστήματα αρχείων <acronym>UFS</acronym>,
+ που βασίζεται σε ένα μοναδιαίο αναγνωριστικό τους,
+ το <literal>ufsid</literal>. Οι ετικέτες αυτές βρίσκονται στον
+ κατάλογο <filename class="directory">/dev/ufsid</filename>,
+ δημιουργούνται αυτόματα κατά την εκκίνηση του συστήματος και είναι
+ δυνατόν να χρησιμοποιηθούν για την προσάρτηση κατατμήσεων μέσω του
+ <filename>/etc/fstab</filename>. Μπορείτε να χρησιμοποιήσετε την
+ εντολή <command>glabel status</command> για να λάβετε μια λίστα
+ των συστημάτων αρχείων με τις αντίστοιχες <literal>ufsid</literal>
+ ετικέτες τους:</para>
+
+ <screen>&prompt.user; <userinput>glabel status</userinput>
+ Name Status Components
+ufsid/486b6fc38d330916 N/A ad4s1d
+ufsid/486b6fc16926168e N/A ad4s1f</screen>
+
+ <para>Στο παραπάνω παράδειγμα, το <devicename>ad4s1d</devicename>
+ αντιπροσωπεύει το σύστημα αρχείων <filename
+ class="directory">/var</filename>, ενώ το
+ <devicename>ad4s1f</devicename> αντιπροσωπεύει το σύστημα αρχείων
+ <filename class="directory">/usr</filename>. Χρησιμοποιώντας τις
+ τιμές <literal>ufsid</literal> που φαίνονται, η προσάρτηση αυτών
+ των κατατμήσεων μπορεί να γίνει με τις παρακάτω καταχωρίσεις στο
+ <filename>/etc/fstab</filename>:</para>
+
+ <programlisting>/dev/ufsid/486b6fc38d330916 /var ufs rw 2 2
+/dev/ufsid/486b6fc16926168e /usr ufs rw 2 2</programlisting>
+
+ <para>Οποιαδήποτε κατάτμηση διαθέτει αναγνωριστικό
+ <literal>ufsid</literal> μπορεί να προσαρτηθεί με τον ίδιο τρόπο,
+ χωρίς να υπάρχει πλέον ανάγκη να δημιουργηθεί μόνιμη ετικέτα
+ χειροκίνητα. Η προσάρτηση μέσω ετικέτας <literal>ufsid</literal>,
+ παρέχει το πλεονέκτημα της ανεξαρτησίας από το όνομα συσκευής, το
+ οποίο παρέχουν και οι μόνιμες ετικέτες.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="geom-gjournal">
+ <title>UFS Journaling Μέσω GEOM</title>
+
+ <indexterm>
+ <primary>GEOM</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Journaling</primary>
+ </indexterm>
+
+ <para>Στην έκδοση 7.0 του &os; υλοποιείται για πρώτη φορά η νέα (και από
+ πολλούς αναμενόμενη) δυνατότητα για χρήση ημερολογίου (journal) στο
+ σύστημα αρχείων. Η υλοποίηση παρέχεται μέσω του
+ υποσυστήματος <acronym>GEOM</acronym> και μπορεί να ρυθμιστεί εύκολα
+ μέσω του βοηθητικού προγράμματος &man.gjournal.8;.</para>
+
+ <para>Τι είναι το journaling; Το journaling αποθηκεύει σε ένα αρχείο
+ καταγραφής (log, ημερολόγιο, ή απλώς journal) τις συναλλαγές του
+ συστήματος αρχείων. Παράδειγμα συναλλαγής είναι οι αλλαγές που
+ απαιτούνται για μια πλήρη διαδικασία εγγραφής στο δίσκο. Έτσι, στο
+ log αποθηκεύονται οι αλλαγές στα μετα-δεδομένα (meta-data) και στα ίδια
+ τα αρχεία, πριν γίνει η τελική (κανονική) αποθήκευση τους στο δίσκο.
+ Το αρχείο καταγραφής μπορεί αργότερα να ξαναχρησιμοποιηθεί ώστε η
+ συναλλαγή να γίνει από την αρχή, εξασφαλίζοντας με αυτό τον τρόπο ότι
+ το σύστημα αρχείων θα παραμείνει σε σταθερή κατάσταση.</para>
+
+ <para>Πρόκειται ουσιαστικά για μια ακόμα μέθοδο προφύλαξης από απώλεια
+ δεδομένων και ασυνέπειες στο σύστημα αρχείων. Σε αντίθεση με τα
+ Soft Updates τα οποία εντοπίζουν και υποχρεώνουν την άμεση εγγραφή
+ των μετα-δεδομένων, και των στιγμιοτύπων (Snapshots) τα οποία είναι
+ εικόνες του συστήματος αρχείων σε μια δεδομένη στιγμή, το log
+ αποθηκεύεται σε χώρο που έχει εκχωρηθεί ειδικά για αυτό το
+ σκοπό, και σε μερικές περιπτώσεις μπορεί να αποθηκεύεται σε εντελώς
+ διαφορετικό δίσκο.</para>
+
+ <para>Σε αντίθεση με υλοποιήσεις journaling σε άλλα συστήματα αρχείων,
+ η μέθοδος <command>gjournal</command> βασίζεται σε blocks, και δεν
+ υλοποιείται ως μέρος του συστήματος αρχείων, αλλά μόνο ως επέκταση του
+ <acronym>GEOM</acronym>.</para>
+
+ <para>Για ενεργοποίηση της υποστήριξης <command>gjournal</command>, θα
+ πρέπει να υπάρχει η παρακάτω επιλογή στον πυρήνα του &os;. Η επιλογή
+ αυτή υπάρχει από προεπιλογή στην έκδοση 7.0 και όλες τις νεότερες
+ εκδόσεις του &os;.</para>
+
+ <programlisting>options UFS_GJOURNAL</programlisting>
+
+ <para>Αν χρειάζεται να προσαρτώνται τόμοι με journaling κατά την εκκίνηση,
+ θα πρέπει επίσης να φορτώνεται αυτόματα και το άρθρωμα πυρήνα
+ <filename>geom_journal.ko</filename>. Για το σκοπό αυτό, προσθέστε την
+ παρακάτω γραμμή στο αρχείο <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>geom_journal_load="YES"</programlisting>
+
+ <para>Εναλλακτικά, η λειτουργία αυτή μπορεί να ενσωματωθεί σε ένα
+ προσαρμοσμένο πυρήνα, με την προσθήκη της παρακάτω γραμμής στο
+ αντίστοιχο αρχείο ρυθμίσεων:</para>
+
+ <programlisting>options GEOM_JOURNAL</programlisting>
+
+ <para>Η δημιουργία journal σε ένα ελεύθερο σύστημα αρχείων, μπορεί τώρα
+ να γίνει με τα ακόλουθα βήματα, θεωρώντας ότι η συσκευή
+ <devicename>da4</devicename> είναι ένας νέος δίσκος
+ <acronym>SCSI</acronym>:</para>
+
+ <screen>&prompt.root; <userinput>gjournal load</userinput>
+&prompt.root; <userinput>gjournal label /dev/da4</userinput></screen>
+
+ <para>Στο σημείο αυτό θα υπάρχει μια συσκευή
+ <devicename>/dev/da4</devicename> καθώς και μια συσκευή
+ <devicename>/dev/da4.journal</devicename>. Στη συσκευή αυτή μπορείτε
+ τώρα να δημιουργήσετε σύστημα αρχείων:</para>
+
+ <screen>&prompt.root; <userinput>newfs -O 2 -J /dev/da4.journal</userinput></screen>
+
+ <para>Η παραπάνω εντολή θα δημιουργήσει ένα σύστημα αρχείων
+ <acronym>UFS</acronym>2 στη
+ συσκευή <devicename>/dev/da4.journal</devicename>, η οποία έχει
+ ήδη υποστήριξη για journaling.</para>
+
+ <para>Μπορείτε να χρησιμοποιήσετε την εντολή <command>mount</command>
+ για να προσαρτήσετε την συσκευή στο επιθυμητό σημείο προσάρτησης, όπως
+ φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/da4.journal <replaceable>/mnt</replaceable></userinput></screen>
+
+ <note>
+ <para>Στην περίπτωση αρκετών slice, θα δημιουργηθεί ένα journal για κάθε
+ επιμέρους slice. Για παράδειγμα, αν υπάρχουν τα slices
+ <devicename>ad4s1</devicename> και <devicename>ad4s2</devicename>
+ τότε το <command>gjournal</command> θα δημιουργήσει τις συσκευές
+ <devicename>ad4s1.journal</devicename> και
+ <devicename>ad4s2.journal</devicename>.</para>
+ </note>
+
+ <para>Για καλύτερη απόδοση, ίσως είναι επιθυμητή η τήρηση του
+ journal σε διαφορετικό δίσκο. Για τις περιπτώσεις αυτές, ο παροχέας
+ ημερολογίου (η συσκευή δίσκου που θα περιέχει το journal) πρέπει
+ να δίνεται ως παράμετρος στην εντολή, αμέσως μετά τη συσκευή δίσκου
+ στην οποία θα ενεργοποιηθεί το journaling. Μπορείτε επίσης να
+ ενεργοποιήσετε το journaling σε υπάρχοντα συστήματα αρχείων
+ χρησιμοποιώντας την εντολή <command>tunefs</command>. Ωστόσο, θα πρέπει
+ να κρατήσετε αντίγραφο ασφαλείας των αρχείων σας, πριν επιχειρήσετε
+ να κάνετε αλλαγές σε ένα υπάρχον σύστημα αρχείων. Στις περισσότερες
+ περιπτώσεις, η <command>tunefs</command> θα αποτύχει αν δεν μπορέσει
+ να δημιουργήσει το journal, αλλά αυτό δεν σας προστατεύει από απώλεια
+ δεδομένων που μπορεί να προέλθει από κακή χρήση της
+ <command>tunefs</command>.</para>
+
+ <para>Είναι επίσης δυνατόν να χρησιμοποιηθεί journaling στον δίσκο
+ εκκίνησης ενός συστήματος &os;. Διαβάστε το άρθρο <ulink
+ url="&url.articles.gjournal-desktop;">Υλοποίηση του UFS Journaling σε
+ ένα Desktop Υπολογιστή</ulink> για λεπτομερείς οδηγίες.</para>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/install/chapter.sgml b/el_GR.ISO8859-7/books/handbook/install/chapter.sgml
new file mode 100644
index 0000000000..929ac913f5
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/install/chapter.sgml
@@ -0,0 +1,5213 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Εγκαθιστώντας το FreeBSD
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/install/chapter.sgml
+ %SRCID% 1.434
+
+-->
+
+<chapter id="install">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Ανασχηματισμένο, αναδιοργανωμένο, και μερικώς
+ ξαναγραμμένο από τον </contrib>
+ </author>
+ </authorgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Randy</firstname>
+ <surname>Pratt</surname>
+ <contrib>Η βήμα προς βήμα διαδικασία του sysinstall, οι εικόνες, και
+ γενικές διορθώσεις κειμένου από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- January 2000 -->
+ </chapterinfo>
+
+ <title>Εγκατάσταση του &os;&nbsp;8.<replaceable>x</replaceable> και
+ Προγενέστερων Εκδόσεων</title>
+
+ <sect1 id="install-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>εγκατάσταση</primary></indexterm>
+
+ <para>Το &os; διανέμεται με ένα εύχρηστο, μη γραφικό πρόγραμμα
+ εγκατάστασης. Από την έκδοση 9.0-RELEASE και μετά, χρησιμοποιείται
+ το <application>bsdinstall</application> ενώ οι παλαιότερες εκδόσεις
+ χρησιμοποιούν το <application>sysinstall</application>. Στο κεφάλαιο
+ αυτό περιγράφεται η χρήση του <application>sysinstall</application>
+ για την εγκατάσταση του &os;. Η χρήση του
+ <application>bsdinstall</application> περιγράφεται στο
+ <xref linkend="bsdinstall">.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να δημιουργήσετε δισκέτες εγκατάστασης για το &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως αναφέρεται στους σκληρούς δίσκους σας το &os; και πως τους
+ χωρίζει σε κατατμήσεις.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ξεκινήσετε το
+ <application>sysinstall</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τις ερωτήσεις που θα σας κάνει το
+ <application>sysinstall</application>, τι σημαίνουν, και πως να τις
+ απαντήσετε.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να διαβάσετε τη λίστα του υποστηριζόμενου υλικού που έρχεται με
+ την έκδοση του &os; την οποία θα εγκαταστήσετε, και να επαληθεύσετε
+ ότι το υλικό που έχετε υποστηρίζεται από το &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Σε γενικές γραμμές αυτές οι οδηγίες εγκατάστασης είναι γραμμένες
+ για τους &i386; (<quote>PC συμβατούς</quote>) αρχιτεκτονικής
+ υπολογιστές. Όπου χρειάζεται, θα εμφανίζονται συγκεκριμένες οδηγίες
+ για άλλες πλατφόρμες. Αν και αυτός ο οδηγός
+ διατηρείται όσο το δυνατόν πιο ενημερωμένος, είναι πιθανόν να βρείτε
+ μικρές διαφορές μεταξύ του προγράμματος εγκατάστασης και αυτού που
+ φαίνεται εδώ. Σας προτείνουμε να χρησιμοποιήσετε το κεφάλαιο αυτό
+ περισσότερο σαν γενικό οδηγό παρά σαν ένα κατά γράμμα εγχειρίδιο
+ εγκατάστασης.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="install-hardware">
+ <title>Απαιτήσεις Υλικού</title>
+
+ <sect2 id="install-hardware-minimal">
+ <title>Ελάχιστες Απαιτήσεις</title>
+
+ <para>Οι ελάχιστες απαιτήσεις για την εγκατάσταση του &os; ποικίλουν
+ ανάλογα με την έκδοση του &os; και την αρχιτεκτονική του
+ υλικού.</para>
+
+ <para>Στις παρακάτω ενότητες θα βρείτε μια περίληψη των πληροφοριών
+ αυτών. Ανάλογα με τον τρόπο που θα επιλέξετε να εγκαταστήσετε το
+ &os;, μπορεί να χρειαστείτε μονάδα δισκέτας, ένα υποστηριζόμενο οδηγό
+ CD-ROM, και σε ορισμένες περιπτώσεις, κάρτα δικτύου. Τα παραπάνω
+ καλύπτονται στο <xref linkend="install-boot-media">.</para>
+
+ <sect3>
+ <title>Αρχιτεκτονικές &os;/&arch.i386; και &os;/&arch.pc98;</title>
+
+ <para>Οι εκδόσεις &os;/&i386; και &os;/&arch.pc98; απαιτούν 486 ή
+ καλύτερο επεξεργαστή και τουλάχιστον 24&nbsp;MB RAM. Θα χρειαστείτε
+ τουλάχιστον 150&nbsp;MB ελεύθερου χώρου στο σκληρό δίσκο για την
+ πλέον ελάχιστη εγκατάσταση.</para>
+
+ <note>
+ <para>Σε περιπτώσεις παλιών μηχανημάτων, τις περισσότερες φορές,
+ η ύπαρξη περισσότερης μνήμης RAM και ελεύθερου χώρου στο δίσκο
+ είναι πιο σημαντική από ένα ταχύτερο επεξεργαστή.</para>
+ </note>
+ </sect3>
+
+ <sect3>
+ <title>Αρχιτεκτονική &os;/&arch.amd64;</title>
+
+ <para>Υπάρχουν δύο κλάσεις επεξεργαστών ικανές να εκτελέσουν το
+ &os;/&arch.amd64;. Η πρώτη, είναι οι επεξεργαστές AMD64,
+ περιλαμβανομένου του &amd.athlon;64, του
+ &amd.athlon;64-FX, του &amd.opteron; ή καλύτερων.</para>
+
+ <para>Η δεύτερη κλάση επεξεργαστών που μπορούν να χρησιμοποιήσουν
+ &os;/&arch.amd64;, περιλαμβάνει όσους χρησιμοποιούν την
+ αρχιτεκτονική &intel; EM64T. Παραδείγματα των επεξεργαστών αυτών
+ περιλαμβάνουν τις οικογένειες &intel;&nbsp;&core;&nbsp;2 Duo, Quad,
+ Extreme καθώς και τη σειρά επεξεργαστών &intel;&nbsp;&xeon;
+ 3000, 5000, και 7000.</para>
+
+ <para>Αν το μηχάνημα σας είναι βασισμένο σε nVidia nForce3 Pro-150,
+ θα <emphasis>πρέπει</emphasis> να χρησιμοποιήσετε την κατάλληλη
+ επιλογή στο BIOS για να απενεργοποιήσετε το IO APIC. Αν η επιλογή
+ αυτή δεν υπάρχει, θα πρέπει να απενεργοποιήσετε αντί αυτού το ACPI.
+ Υπάρχουν προβλήματα στο Pro-150 για τα οποία μέχρι στιγμής δεν έχει
+ βρεθεί λύση που να τα παρακάμπτει.</para>
+ </sect3>
+
+ <sect3>
+ <title>Αρχιτεκτονική &os;/&arch.sparc64;</title>
+
+ <para>Για να εγκαταστήσετε το &os;/&arch.sparc64;, θα χρειαστείτε μια
+ υποστηριζόμενη πλατφόρμα (δείτε <xref
+ linkend="install-hardware-supported">).</para>
+
+ <para>Θα χρειαστείτε ένα δίσκο για αποκλειστική χρήση από το
+ &os;/&arch.sparc64;. Τη δεδομένη στιγμή, δεν είναι δυνατόν να
+ μοιράζεται τον ίδιο δίσκο το &os; με ένα άλλο λειτουργικό
+ σύστημα.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="install-hardware-supported">
+ <title>Υποστηριζόμενο Υλικό</title>
+
+ <para>Η λίστα με το υποστηριζόμενο υλικό, παρέχεται στις Σημειώσεις
+ Υλικού (Hardware Notes) με κάθε έκδοση του &os;. Το έγγραφο αυτό
+ μπορεί συνήθως να βρεθεί με όνομα αρχείου
+ <filename>HARDWARE.TXT</filename>, στον ριζικό
+ κατάλογο μια διανομής CDROM ή FTP, ή και στο μενού documentation του
+ <application>sysinstall</application>. Για κάθε αρχιτεκτονική,
+ θα βρείτε μια λίστα συσκευών οι οποίες επιβεβαιωμένα υποστηρίζονται
+ από το &os;. Αντίγραφα του καταλόγου υποστηριζόμενου υλικού για
+ διάφορες εκδόσεις και αρχιτεκτονικές μπορούν επίσης να βρεθούν στη
+ σελίδα <ulink
+ url="http://www.FreeBSD.org/releases/index.html">Πληροφοριών
+ Έκδοσης</ulink> στο δικτυακό τόπο του &os;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-pre">
+ <title>Εργασίες πριν την Εγκατάσταση</title>
+
+ <sect2 id="install-inventory">
+ <title>Απογραφή Υλικού του Υπολογιστή σας</title>
+
+ <para>Πριν εγκαταστήσετε το &os; πρέπει να επιχειρήσετε να απογράψετε
+ τα εξαρτήματα του υπολογιστή σας. Οι ρουτίνες εγκατάστασης του &os;
+ θα σας δείξουν τα εξαρτήματα (σκληρούς δίσκους, κάρτες δικτύου,
+ οδηγούς CDROM κλπ.) με τα ονόματα των μοντέλων και των κατασκευαστών
+ τους. Το &os; θα επιχειρήσει επίσης να προσδιορίσει τις σωστές
+ ρυθμίσεις για τις συσκευές αυτές, συμπεριλαμβανομένων και των
+ πληροφοριών για τη χρήση IRQ και θυρών IO. Λόγω των ιδιομορφιών του
+ υλικού των PC, η διαδικασία αυτή δεν είναι πάντα επιτυχής, και ίσως
+ χρειαστεί να διορθώσετε τις ρυθμίσεις που ανίχνευσε το &os;.</para>
+
+ <para>Αν έχετε ήδη άλλο λειτουργικό σύστημα εγκατεστημένο, όπως
+ &windows; ή Linux, είναι γενικά καλή ιδέα να χρησιμοποιήσετε τις
+ δυνατότητες που σας παρέχει για να δείτε τις ρυθμίσεις του υλικού σας.
+ Αν δεν είστε σίγουροι για τις ρυθμίσεις μιας κάρτας επέκτασης, ίσως
+ να τις βρείτε τυπωμένες πάνω στην ίδια την κάρτα. Συνηθισμένα IRQ
+ είναι τα 3, 5 και 7 ενώ οι θύρες IO συνήθως γράφονται ως δεκαεξαδικοί
+ αριθμοί, π.χ. 0x330.</para>
+
+ <para>Σας συνιστούμε να γράψετε ή να εκτυπώσετε τις πληροφορίες αυτές
+ πριν την εγκατάσταση του &os;. Σαν υπόδειγμα, μπορείτε να
+ χρησιμοποιήσετε ένα πίνακα όπως τον παρακάτω:</para>
+
+ <table pgwide="1" frame="none">
+ <title>Υπόδειγμα Απογραφής Συσκευών</title>
+
+ <tgroup cols="4">
+ <colspec colwidth="2*">
+ <colspec colwidth="1*">
+ <colspec colwidth="1*">
+ <colspec colwidth="4*">
+ <thead>
+ <row>
+ <entry>Όνομα Συσκευής</entry>
+
+ <entry>IRQ</entry>
+
+ <entry>IO θύρες</entry>
+
+ <entry>Σημειώσεις</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Πρώτος Σκληρός Δίσκος</entry>
+
+ <entry>N/A</entry>
+
+ <entry>N/A</entry>
+
+ <entry>40&nbsp;GB, της Seagate, master στο πρώτο IDE</entry>
+ </row>
+
+ <row>
+ <entry>CDROM</entry>
+
+ <entry>N/A</entry>
+
+ <entry>N/A</entry>
+
+ <entry>slave στο πρώτο IDE</entry>
+ </row>
+
+ <row>
+ <entry>Δεύτερος Σκληρός Δίσκος</entry>
+
+ <entry>N/A</entry>
+
+ <entry>N/A</entry>
+
+ <entry>20&nbsp;GB, της IBM, master στο δεύτερο IDE</entry>
+ </row>
+
+ <row>
+ <entry>Πρώτος Ελεγκτής IDE</entry>
+
+ <entry>14</entry>
+
+ <entry>0x1f0</entry>
+
+ <entry></entry>
+ </row>
+
+ <row>
+ <entry>Κάρτα Δικτύου</entry>
+
+ <entry>N/A</entry>
+
+ <entry>N/A</entry>
+
+ <entry>&intel; 10/100</entry>
+ </row>
+
+ <row>
+ <entry>Modem</entry>
+
+ <entry>N/A</entry>
+
+ <entry>N/A</entry>
+
+ <entry>&tm.3com; 56K faxmodem, στην COM1</entry>
+ </row>
+
+ <row>
+ <entry>&hellip;</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Όταν τελειώσετε την απογραφή εξαρτημάτων του υπολογιστή σας, θα
+ πρέπει να ελέγξετε αν ταιριάζουν με τις απαιτήσεις υλικού της έκδοσης
+ &os; που σκοπεύετε να εγκαταστήσετε.</para>
+ </sect2>
+
+ <sect2>
+ <title>Κρατήστε Αντίγραφα Ασφαλείας των Δεδομένων σας</title>
+
+ <para>Αν ο υπολογιστής στον οποίο θα εγκαταστήσετε το &os; περιέχει
+ πολύτιμα δεδομένα, βεβαιωθείτε ότι έχετε κρατήσει αντίγραφα ασφαλείας
+ τα οποία μάλιστα έχετε ελέγξει ότι δουλεύουν, πριν εγκαταστήσετε το
+ &os;. Το πρόγραμμα εγκατάστασης του &os; θα σας ρωτήσει πριν γράψει
+ οτιδήποτε στο δίσκο σας, αλλά από τη στιγμή που η διαδικασία αυτή
+ ξεκινήσει, δεν υπάρχει δυνατότητα επιστροφής.</para>
+ </sect2>
+
+ <sect2 id="install-where">
+ <title>Αποφασίστε που θα Εγκαταστήσετε το &os;</title>
+
+ <para>Αν θέλετε το &os; να χρησιμοποιήσει ολόκληρο το σκληρό σας δίσκο,
+ δεν υπάρχει κάτι άλλο που πρέπει να κάνετε αυτή τη στιγμή &mdash;
+ μπορείτε να παραλείψετε αυτό το τμήμα.</para>
+
+ <para>Αν ωστόσο θέλετε το &os; να συνυπάρχει με άλλα λειτουργικά
+ συστήματα, πρέπει να κατανοείτε χονδρικά τον τρόπο διάταξης των
+ δεδομένων στο δίσκο, και τις επιδράσεις που μπορεί προκαλέσει.</para>
+
+ <sect3 id="install-where-i386">
+ <title>Κατατμήσεις Δίσκων για Αρχιτεκτονική &os/&arch.i386;</title>
+
+ <para>Ένας σκληρός δίσκος PC μπορεί να χωριστεί σε διακριτά τμήματα.
+ Τα τμήματα αυτά καλούνται
+ <firstterm>κατατμήσεις (partitions)</firstterm>.
+ Επειδή το &os; έχει επίσης εσωτερικές κατατμήσεις, η ονομασία
+ γρήγορα μπορεί να οδηγήσει σε σύγχυση, και για το λόγο αυτό οι
+ εξωτερικές κατατμήσεις αναφέρονται ως disk slices (φέτες) ή απλώς
+ slices στο &os;. Για παράδειγμα το πρόγραμμα
+ <command>fdisk</command> του &os;, το οποίο χειρίζεται τις
+ κατατμήσεις δίσκων του PC, τις αναφέρει ως slices αντί για
+ partitions. Από τη σχεδίαση του, το PC υποστηρίζει μόνο τέσσερις
+ κατατμήσεις ανά δίσκο. Οι κατατμήσεις αυτές ονομάζονται
+ <firstterm> πρωτεύουσες (primary partitions)</firstterm>.
+ Για να ξεπεραστεί αυτός ο περιορισμός και να δημιουργήσουμε
+ περισσότερες κατατμήσεις, δημιουργήθηκε ένα νέο είδος κατάτμησης, η
+ <firstterm>εκτεταμένη κατάτμηση (extended partition)</firstterm>.
+ Ένας δίσκος μπορεί να περιέχει μόνο μια εκτεταμένη κατάτμηση. Μέσα
+ στην εκτεταμένη κατάτμηση μπορούν να δημιουργηθούν ειδικές
+ <firstterm>λογικές κατατμήσεις</firstterm>.</para>
+
+ <para>Κάθε κατάτμηση διαθέτει ένα <firstterm>partition ID</firstterm>,
+ ένα αριθμό που χρησιμοποιείται για να αναγνωρίζει τον τύπο δεδομένων
+ της κατάτμησης. Οι κατατμήσεις του &os; έχουν για partition ID το
+ <literal>165</literal>.</para>
+
+ <para>Γενικά, κάθε λειτουργικό σύστημα που χρησιμοποιείτε έχει κάποιο
+ τρόπο για να αναγνωρίζει τις κατατμήσεις. Για παράδειγμα το
+ &ms-dos; και τα παράγωγα του, όπως τα &windows;, αναθέτουν
+ <firstterm>γράμματα οδηγών</firstterm> σε κάθε πρωτεύουσα και
+ λογική κατάτμηση, ξεκινώντας από το γράμμα
+ <devicename>C:</devicename>.</para>
+
+ <para>Το &os; πρέπει να εγκατασταθεί σε πρωτεύουσα κατάτμηση. Το &os;
+ μπορεί να κρατήσει όλα τα δεδομένα του, συμπεριλαμβανομένων και των
+ αρχείων που θα δημιουργήσετε εσείς, σε αυτή τη μοναδική κατάτμηση.
+ Παρόλα αυτά, αν έχετε περισσότερους από ένα δίσκους, μπορείτε να
+ δημιουργήσετε κατατμήσεις &os; σε όλους ή μερικούς από αυτούς. Όταν
+ εγκαθιστάτε το &os; πρέπει να έχετε μια κατάτμηση διαθέσιμη.
+ Μπορεί να είναι μια κενή κατάτμηση που έχετε προετοιμάσει από πριν,
+ ή μια υπάρχουσα που περιέχει δεδομένα που δεν σας ενδιαφέρουν
+ πλέον.</para>
+
+ <para>Αν χρησιμοποιείτε ήδη όλες τις κατατμήσεις σε όλους τους δίσκους
+ σας, τότε πρέπει να ελευθερώσετε μία για το &os; χρησιμοποιώντας τα
+ εργαλεία που παρέχονται από τα άλλα λειτουργικά συστήματα που
+ χρησιμοποιείτε (για παράδειγμα, την <command>fdisk</command> στο
+ &ms-dos; ή &windows;).</para>
+
+ <para>Αν έχετε μια διαθέσιμη κατάτμηση, μπορείτε να την
+ χρησιμοποιήσετε. Ίσως όμως χρειαστεί να συρρικνώσετε πρώτα μία ή
+ περισσότερες από τις υπάρχουσες κατατμήσεις σας.</para>
+
+ <para>Μια ελάχιστη εγκατάσταση του &os; μπορεί να καταλάβει μόλις
+ 100&nbsp;MB χώρου στο δίσκο. Ωστόσο αυτή είναι μια <emphasis>πολύ
+ </emphasis> ελάχιστη εγκατάσταση η οποία δεν θα αφήσει καθόλου
+ σχεδόν χώρο για δικά σας αρχεία. Ένα πιο ρεαλιστικό ελάχιστο
+ είναι τα 250&nbsp;MB για χρήση χωρίς γραφικό περιβάλλον και
+ 350&nbsp;MB ή περισσότερα αν θέλετε γραφικό περιβάλλον εργασίας.
+ Αν έχετε σκοπό να εγκαταστήσετε αρκετά προγράμματα τρίτων
+ κατασκευαστών, θα χρειαστείτε ακόμα περισσότερο χώρο.</para>
+
+ <para>Μπορείτε να χρησιμοποιήσετε κάποιο εμπορικά διαθέσιμο εργαλείο
+ όπως το <application>&partitionmagic;</application>, ή κάποιο
+ ελεύθερο εργαλείο όπως το <application>GParted</application>, για
+ να αλλάξετε μεγέθη στις κατατμήσεις σας και να δημιουργήσετε χώρο
+ για το &os;. Τόσο το <application>&partitionmagic;</application>
+ όσο και το <application>GParted</application> μπορούν να
+ χρησιμοποιηθούν σε κατατμήσεις <acronym>NTFS</acronym>. Το
+ <application>GParted</application> είναι διαθέσιμο σε αρκετές
+ διανομές Linux Live CD, όπως για παράδειγμα το
+ <ulink url="http://www.sysresccd.org/">SystemRescueCD</ulink>.</para>
+
+ <para>Έχουν αναφερθεί προβλήματα κατά την αλλαγή μεγέθους κατατμήσεων
+ των &microsoft; Vista. Συνίσταται να έχετε πρόχειρο ένα CDROM
+ εγκατάστασης των Vista πριν επιχειρήσετε αυτή τη διαδικασία. Όπως
+ και με όλες τις αντίστοιχες διαδικασίες δίσκων, συνίσταται επίσης
+ να έχετε ένα ενημερωμένο σετ αντιγράφων ασφαλείας.</para>
+
+ <warning>
+ <para>Λανθασμένη χρήση των εργαλείων αυτών μπορεί να οδηγήσει σε
+ διαγραφή των δεδομένων του δίσκου σας. Πριν τα χρησιμοποιήσετε,
+ βεβαιωθείτε ότι έχετε πρόσφατα αντίγραφα ασφαλείας τα οποία
+ δουλεύουν.</para>
+ </warning>
+
+ <example>
+ <title>Χρησιμοποιώντας μια Υπάρχουσα Κατάτμηση χωρίς να την
+ Αλλάξετε</title>
+
+ <para>Υποθέστε ότι έχετε ένα υπολογιστή με ένα μόνο σκληρό δίσκο
+ 4&nbsp;GB στον οποίο έχετε ήδη εγκατεστημένη μια έκδοση των
+ &windows; και τον έχετε χωρίσει σε δύο οδηγούς με γράμματα
+ <devicename>C:</devicename> και <devicename>D:</devicename>,
+ καθένα με μέγεθος 2&nbsp;GB. Έχετε 1&nbsp;GB δεδομένων στο
+ <devicename>C:</devicename> και 0.5&nbsp;GB δεδομένων στο
+ <devicename>D:</devicename>.</para>
+
+ <para>Αυτό σημαίνει ότι ο δίσκος σας έχει δύο κατατμήσεις, μία ανά
+ γράμμα οδηγού. Μπορείτε να αντιγράψετε όλα τα υπάρχοντα δεδομένα
+ σας από τον
+ <devicename>D:</devicename> στο <devicename>C:</devicename> και
+ να ελευθερώσετε έτσι την δεύτερη κατάτμηση, ώστε να είναι έτοιμη
+ για το &os;.</para>
+ </example>
+
+ <example>
+ <title>Συρρικνώνοντας μια Υπάρχουσα Κατάτμηση</title>
+
+ <para>Υποθέστε ότι έχετε ένα υπολογιστή με ένα μόνο δίσκο 4&nbsp;
+ GB στον οποίο έχετε ήδη εγκαταστήσει μια έκδοση των &windows;.
+ Όταν εγκαταστήσατε τα &windows;, δημιουργήσατε μια μεγάλη
+ κατάτμηση με το γράμμα <devicename>C:</devicename> και μέγεθος
+ 4&nbsp;GB. Αυτή τη στιγμή χρησιμοποιείται 1.5&nbsp;GB χώρου και
+ θέλετε να δώσετε στο &os; 2&nbsp;GB χώρο.</para>
+
+ <para>Για να εγκαταστήσετε το &os; θα πρέπει είτε:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Να πάρετε αντίγραφο ασφαλείας των δεδομένων σας
+ των &windows; και έπειτα να τα εγκαταστήσετε ξανά,
+ δημιουργώντας αυτή τη φορά μια κατάτμηση μεγέθους 2&nbsp;GB
+ κατά την εγκατάσταση.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να χρησιμοποιήσετε κάποιο από τα εργαλεία όπως το
+ <application>&partitionmagic;</application> που περιγράψαμε
+ παραπάνω ώστε να συρρικνώσετε την κατάτμηση των
+ &windows;.</para>
+ </listitem>
+ </orderedlist>
+ </example>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Συλλέξτε Πληροφορίες για τη Ρύθμιση του Δικτύου σας</title>
+
+ <para>Αν σκοπεύετε να συνδεθείτε σε ένα δίκτυο κατά τη διάρκεια της
+ εγκατάστασης του &os; (για παράδειγμα αν πρόκειται να κάνετε
+ εγκατάσταση μέσω κάποιας τοποθεσίας FTP ή μέσω διακομιστή NFS), τότε
+ πρέπει να γνωρίζετε τις ρυθμίσεις του δικτύου σας. Κατά τη διάρκεια
+ της εγκατάστασης, θα ερωτηθείτε για αυτές τις ρυθμίσεις ώστε το &os;
+ να μπορέσει να συνδεθεί στο δίκτυο και να ολοκληρώσει την
+ εγκατάσταση.</para>
+
+ <sect3>
+ <title>Σύνδεση με Δίκτυο Ethernet ή Modem Cable/DSL</title>
+
+ <para>Αν συνδέεστε σε δίκτυο Ethernet ή αν έχετε σύνδεση Internet με
+ χρήση ελεγκτή Ethernet μέσω καλωδιακής ή DSL σύνδεσης, θα
+ χρειαστείτε τις ακόλουθες πληροφορίες:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Διεύθυνση IP (IP Address)</para>
+ </listitem>
+
+ <listitem>
+ <para>Διεύθυνση IP της προεπιλεγμένης πύλης
+ (default gateway)</para>
+ </listitem>
+
+ <listitem>
+ <para>Όνομα υπολογιστή (hostname)</para>
+ </listitem>
+
+ <listitem>
+ <para>Διευθύνσεις IP του διακομιστή DNS (DNS server IP
+ addresses)</para>
+ </listitem>
+
+ <listitem>
+ <para>Μάσκα Υποδικτύου (Subnet Mask)</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Αν δεν γνωρίζετε αυτές τις πληροφορίες, ρωτήστε το διαχειριστή
+ συστήματος ή τον παροχέα υπηρεσιών Internet που σας εξυπηρετεί.
+ Η απάντηση μπορεί να είναι ότι οι πληροφορίες αυτές εκχωρούνται
+ αυτόματα με χρήση <firstterm>DHCP</firstterm>. Σημειώστε την
+ πληροφορία αυτή.</para>
+ </sect3>
+
+ <sect3>
+ <title>Σύνδεση μέσω Modem</title>
+
+ <para>Αν χρησιμοποιείτε επιλογική (dial up) σύνδεση με κάποιο παροχέα
+ Internet (ISP) με χρήση απλού modem, μπορείτε και πάλι να
+ εγκαταστήσετε το &os; μέσω Internet, αλλά θα χρειαστείτε πάρα πολύ
+ χρόνο.</para>
+
+ <para>Θα χρειαστεί να ξέρετε:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Τον αριθμό κλήσης του ISP σας</para>
+ </listitem>
+
+ <listitem>
+ <para>Τη σειριακή θύρα (COM:) στην οποία είναι συνδεμένο το modem
+ σας</para>
+ </listitem>
+
+ <listitem>
+ <para>Το όνομα χρήστη (username) και κωδικό (password) για το
+ λογαριασμό σας στον ISP</para>
+ </listitem>
+ </orderedlist>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ελέγξτε για Παροράματα (Errata) στο &os;</title>
+
+ <para>Αν και το &os; project πασχίζει για να εξασφαλίσει ότι κάθε έκδοση
+ του &os; θα είναι όσο πιο σταθερή γίνεται, ορισμένες φορές στη
+ διαδικασία αυτή εισέρχονται λάθη. Σε πολύ σπάνιες περιπτώσεις, τα
+ λάθη αυτά επηρεάζουν τη διαδικασία εγκατάστασης. Καθώς τα προβλήματα
+ αυτά γίνονται αντιληπτά και επιδιορθώνονται, σημειώνονται στα
+ <ulink url="http://www.FreeBSD.org/releases/&rel.current;R/errata.html">Παροράματα &os; (&os; Errata)</ulink> τα οποία βρίσκονται στην δικτυακή
+ τοποθεσία του &os;. Πριν ξεκινήσετε την εγκατάσταση, Θα πρέπει να
+ ελέγξετε τα Παροράματα για να βεβαιωθείτε ότι δεν υπάρχουν προβλήματα
+ της τελευταίας στιγμής τα οποία θα έπρεπε να γνωρίζετε.</para>
+
+ <para>Πληροφορίες για όλες τις εκδόσεις, περιλαμβανομένων και των
+ παροραμάτων για κάθε μία, μπορούν να βρεθούν στη σελίδα <ulink
+ url="&url.base;/releases/index.html">πληροφοριών έκδοσης</ulink>
+ της <ulink
+ url="&url.base;/index.html">δικτυακής τοποθεσίας του &os;</ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ανακτήστε τα Αρχεία Εγκατάστασης του &os;</title>
+
+ <para>Η διαδικασία εγκατάστασης του &os; μπορεί να εγκαταστήσει το
+ λειτουργικό σύστημα χρησιμοποιώντας αρχεία από τις παρακάτω
+ τοποθεσίες:</para>
+
+ <itemizedlist>
+ <title>Τοπικά Μέσα</title>
+
+ <listitem>
+ <para>CDROM ή DVD</para>
+ </listitem>
+
+ <listitem>
+ <para>Μνήμη flash με σύνδεση USB</para>
+ </listitem>
+
+ <listitem>
+ <para>Μια κατάτμηση &ms-dos; που βρίσκεται στον ίδιο υπολογιστή</para>
+ </listitem>
+
+ <listitem>
+ <para>Μια ταινία SCSI ή QIC</para>
+ </listitem>
+
+ <listitem>
+ <para>Δισκέτες</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Δίκτυο</title>
+
+ <listitem>
+ <para>Μια τοποθεσία FTP, μέσω firewall ή με χρήση διακομιστή
+ μεσολάβησης (HTTP proxy) αν είναι αναγκαίο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα εξυπηρετητή NFS</para>
+ </listitem>
+
+ <listitem>
+ <para>Μια αποκλειστική παράλληλη ή σειριακή σύνδεση</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αν έχετε αγοράσει το &os; σε CD ή DVD, τότε έχετε ήδη ότι
+ χρειάζεστε και μπορείτε να πάτε στο επόμενο τμήμα
+ (<xref linkend="install-boot-media">).</para>
+
+ <para>Αν δεν έχετε ακόμα ανακτήσει τα αρχεία εγκατάστασης του &os;
+ θα πρέπει να δείτε το <xref linkend="install-diff-media"> το οποίο
+ εξηγεί πως να προετοιμαστείτε για την εγκατάσταση του &os; με
+ οποιοδήποτε από τους παραπάνω τρόπους. Αφού διαβάσετε το τμήμα αυτό,
+ θα πρέπει να γυρίσετε ξανά εδώ και να διαβάσετε από το
+ <xref linkend="install-boot-media">.</para>
+ </sect2>
+
+ <sect2 id="install-boot-media">
+ <title>Ετοιμάστε τα Μέσα Εκκίνησης</title>
+
+ <para>Η διαδικασία εκκίνησης του &os; ξεκινάει με την εκκίνηση του
+ υπολογιστή σας στο πρόγραμμα εγκατάστασης του &os;&mdash;δεν
+ πρόκειται για πρόγραμμα το οποίο μπορείτε να εκτελέσετε μέσα από
+ κάποιο άλλο λειτουργικό σύστημα. Ο υπολογιστής σας φυσιολογικά
+ εκκινεί χρησιμοποιώντας το λειτουργικό σύστημα που είναι
+ εγκατεστημένο στο σκληρό δίσκο σας, αλλά μπορεί επίσης να ρυθμιστεί
+ να χρησιμοποιεί μια <quote>δισκέτα εκκίνησης</quote>. Οι
+ περισσότεροι σύγχρονοι υπολογιστές μπορούν επίσης να εκκινήσουν από
+ ένα CDROM στον αντίστοιχο οδηγό ανάγνωσης, ή από μια μνήμη flash
+ με σύνδεση USB.</para>
+
+ <tip>
+ <para>Αν έχετε το &os; σε CDROM ή DVD (είτε που αγοράσατε, είτε που
+ ετοιμάσατε ο ίδιος), και ο υπολογιστής σας επιτρέπει εκκίνηση από
+ CDROM ή DVD (τυπικά μέσω της επιλογής <quote>Boot Order</quote> ή
+ αντίστοιχης του BIOS), μπορείτε να παραλείψετε αυτό το τμήμα. Τα CD
+ ή DVD του &os; είναι εκκινήσιμα και μπορούν να χρησιμοποιηθούν για
+ την εγκατάσταση του &os; χωρίς καμιά άλλη ιδιαίτερη
+ προετοιμασία.</para>
+ </tip>
+
+ <para>Για να δημιουργήσετε μια εκκινήσιμη μνήμη flash USB, ακολουθήστε
+ τα παρακάτω βήματα:</para>
+
+ <procedure>
+ <step>
+ <title>Ανακτήστε την Εικόνα Εγκατάστασης για Μνήμη Flash USB</title>
+
+ <para>Μπορείτε να κατεβάσετε το αρχείο εικόνας από τον κατάλογο
+ <filename class="directory">ISO-IMAGES/</filename> στην τοποθεσία
+ <literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<replaceable>arch</replaceable>/ISO-IMAGES/<replaceable>version</replaceable>/&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-memstick.img</literal>.
+ Αντικαταστήστε το <replaceable>arch</replaceable> και το
+ <replaceable>version</replaceable> με την αρχιτεκτονική και την
+ έκδοση που επιθυμείτε να εγκαταστήσετε. Για παράδειγμα, τα αρχεία
+ για το &os;/&arch.i386;&nbsp;&rel.current;-RELEASE είναι
+ διαθέσιμα στην τοποθεσία <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/&arch.i386;/ISO-IMAGES/&rel.current;/&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img"></ulink>.</para>
+
+ <para>Το αρχείο που προορίζεται για χρήση με μνήμη USB, έχει
+ κατάληξη <filename>.img</filename>. Ο κατάλογος
+ <filename class="directory">ISO-IMAGES/</filename> περιέχει
+ πλήθος διαφορετικών αρχείων και αυτό που θα χρειαστείτε
+ εξαρτάται στην πραγματικότητα από την έκδοση του &os; που θα
+ εγκαταστήσετε και ενδεχομένως και από το υλικό του υπολογιστή
+ σας.</para>
+
+ <important>
+ <para>Πριν προχωρήσετε, κρατήστε αντίγραφο των δεδομένων που
+ ενδεχομένως υπάρχουν στη USB flash μνήμη σας. Η διαδικασία
+ που περιγράφουμε θα <emphasis>διαγράψει</emphasis> όλα τα
+ περιεχόμενα της.</para>
+ </important>
+ </step>
+
+ <step>
+ <title>Γράψτε το Αρχείο Εικόνας στη Μνήμη Flash</title>
+
+ <procedure>
+ <title>Χρησιμοποιώντας το &os; για την Εγγραφή του Αρχείου
+ Εικόνας</title>
+
+ <warning>
+ <para>Το παρακάτω παράδειγμα χρησιμοποιεί ως υπόδειγμα την
+ συσκευή <filename class="devicefile">/dev/da0</filename>
+ για τη δημιουργία της USB μνήμης εκκίνησης. Επιλέξτε με
+ προσοχή το πραγματικό όνομα της συσκευής που θα
+ χρησιμοποιηθεί, διαφορετικά μπορεί να προκληθεί απώλεια
+ δεδομένων.</para>
+ </warning>
+
+ <step>
+ <title>Εγγραφή του Αρχείου μέσω της &man.dd.1;</title>
+
+ <para>Το αρχείο <filename>.img</filename>
+ <emphasis>δεν</emphasis> είναι ένα κανονικό αρχείο που
+ μπορείτε απλώς να αντιγράψετε στη μνήμη flash. Πρόκειται
+ στην πραγματικότητα για μια εικόνα των περιεχομένων ολόκληρου
+ του δίσκου. Αυτό σημαίνει ότι <emphasis>δεν</emphasis>
+ μπορείτε απλώς να αντιγράψετε τα δεδομένα από τον ένα δίσκο
+ στον άλλο. Θα πρέπει να χρησιμοποιήσετε την εντολή
+ &man.dd.1; για να γράψετε το αρχείο εικόνας απευθείας στο
+ δίσκο:</para>
+
+ <screen>&prompt.root; <userinput>dd if=&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img of=/dev/<replaceable>da0</replaceable> bs=64k</userinput></screen>
+
+ <para>Αν λάβετε το μήνυμα λάθους <computeroutput>Operation not
+ permitted</computeroutput>, βεβαιωθείτε ότι η συσκευή που
+ προσπαθείτε να χρησιμοποιησέτε δεν είναι ήδη σε χρήση,
+ ενδεχομένως προσαρτημένη αυτόματα από κάποιο βοηθητικό
+ πρόγραμμα. Έπειτα προσπαθήστε ξανά.</para>
+ </step>
+ </procedure>
+
+ <procedure>
+ <title>Χρησιμοποιώντας τα &windows; για την Εγγραφή του Αρχείου
+ Εικόνας</title>
+
+ <warning>
+ <para>Βεβαιωθείτε ότι χρησιμοποιείτε το σωστό όνομα οδηγού για
+ την μνήμη flash, διαφορετικά ίσως να καταστρέψετε υπάρχοντα
+ δεδομένα.</para>
+ </warning>
+
+ <step>
+ <title>Ανάκτηση του Προγράμματος <application>Image Writer για
+ Windows</application></title>
+
+ <para>H εφαρμογή <application>Image Writer για
+ Windows</application> είναι ελεύθερο λογισμικό το οποίο μπορεί
+ να χρησιμοποιηθεί για τη σωστή εγγραφή ενός αρχείου εικόνας σε
+ μια μνήμη USB. Μπορείτε να το κατεβάσετε από την τοποθεσία
+ <ulink url="https://launchpad.net/win32-image-writer/"></ulink>
+ και να το αποσυμπιέσετε σε ένα φάκελο.</para>
+ </step>
+
+ <step>
+ <title>Εγγραφή του Αρχείου με το Image Writer</title>
+
+ <para>Κάντε διπλό κλικ στο εικονίδιο
+ <application>Win32DiskImager</application> για να ξεκινήσετε
+ το πρόγραμμα. Κάντε κλικ στο εικονίδιο του φακέλου και
+ επιλέξτε το αρχείο που θα γράψετε στη μνήμη USB. Κάντε κλικ
+ στο πλήκτρο <guibutton>Save</guibutton> για να αποδεχθείτε το
+ όνομα αρχείου. Επαληθεύστε ότι οι παραπάνω ενέργειες είναι
+ σωστές και ότι δεν υπάρχουν σε άλλα παράθυρα άνοιχτοι φάκελοι
+ από τη μνήμη USB. Τέλος, κάντε κλικ στο
+ <guibutton>Write</guibutton> για να γράψετε το αρχείο εικόνας
+ στον οδηγό.</para>
+ </step>
+ </procedure>
+ </step>
+ </procedure>
+
+ <para>Για να δημιουργήσετε δισκέτες εκκίνησης, ακολουθήστε αυτά
+ τα βήματα:</para>
+
+ <procedure>
+ <step>
+ <title>Ανακτήστε τα Images (Αρχεία Εικόνων) των Δισκετών</title>
+
+ <important>
+ <para>Σημειώστε ότι στις εκδόσεις 8.<replaceable>X</replaceable>
+ του &os;, δεν υπάρχει πλέον υποστήριξη για δισκέτες εκκίνησης.
+ Δείτε τις παραπάνω οδηγίες για να κάνετε εγκατάσταση μέσω
+ μνήμης USB flash, ή χρησιμοποιήστε απλώς ένα CDROM ή DVD.</para>
+ </important>
+
+ <para>Οι δισκέτες εκκίνησης είναι διαθέσιμες στο μέσο εγκατάστασης
+ που έχετε, στον κατάλογο <filename>floppies/</filename> και
+ μπορείτε επίσης να τις κατεβάσετε από τον αντίστοιχο κατάλογο
+ <literal>ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/<replaceable>arch</replaceable>/<replaceable>version</replaceable>-RELEASE/floppies/</literal>.
+ Αντικαταστήστε τα <replaceable>arch</replaceable> και
+ <replaceable>version</replaceable>
+ με την αρχιτεκτονική και τον αριθμό της έκδοσης που θέλετε να
+ εγκαταστήσετε αντίστοιχα. Για παράδειγμα τα images των δισκετών
+ εκκίνησης για &os;/&arch.i386;&nbsp;&rel2.current;-RELEASE είναι
+ διαθέσιμα από την τοποθεσία <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/floppies/"></ulink>.</para>
+
+ <para>Τα images έχουν κατάληξη
+ <filename>.flp</filename>. O κατάλογος
+ <filename>floppies/</filename> περιέχει αρκετά διαφορετικά
+ images, και το ποια θα χρειαστείτε εξαρτάται από την έκδοση του
+ &os; που θα εγκαταστήσετε, και σε ορισμένες περιπτώσεις, και από
+ το υλικό (hardware) στο οποίο κάνετε εγκατάσταση. Στις
+ περισσότερες περιπτώσεις θα χρειαστείτε τέσσερις δισκέτες, τις
+ <filename>boot.flp</filename>, <filename>kern1.flp</filename>,
+ <filename>kern2.flp</filename> και <filename>kern3.flp</filename>.
+ Ελέγξτε το αρχείο <filename>README.TXT</filename> που βρίσκεται
+ στον ίδιο κατάλογο για τις τελευταίες πληροφορίες σχετικά με τα
+ αρχεία αυτά.</para>
+
+ <important>
+ <para>Το FTP πρόγραμμα που θα χρησιμοποιήσετε πρέπει να
+ χρησιμοποιεί <emphasis>δυαδικό τρόπο μεταφοράς (binary mode)
+ </emphasis> για να κατεβάσετε τα images των δισκετών.
+ Ορισμένοι φυλλομετρητές είναι γνωστό ότι χρησιμοποιούν
+ <emphasis>ASCII</emphasis> τρόπο (κειμένου), το οποίο θα το
+ καταλάβετε αν δεν μπορείτε να κάνετε εκκίνηση από τις
+ δισκέτες.</para>
+ </important>
+ </step>
+
+ <step>
+ <title>Προετοιμάστε τις Δισκέτες</title>
+
+ <para>Από κάθε αρχείο image που κατεβάσατε, πρέπει να
+ δημιουργήσετε μια δισκέτα. Είναι επιβεβλημένο, οι δισκέτες αυτές
+ να μην έχουν ελαττώματα. Ο ευκολότερος τρόπος για να το ελέγξετε
+ είναι να τις διαμορφώσετε εσείς. Μην εμπιστεύεστε
+ προ-διαμορφωμένες δισκέτες. Το πρόγραμμα διαμόρφωσης των
+ &windows; δεν θα σας ειδοποιήσει για την παρουσία χαλασμένων
+ τομέων, απλώς θα τους μαρκάρει ως <quote>χαλασμένους</quote> και
+ θα τους αγνοήσει. Σας συμβουλεύουμε να χρησιμοποιήσετε
+ καινούριες δισκέτες αν επιλέξετε αυτή τη μέθοδο
+ εγκατάστασης.</para>
+
+ <important>
+ <para>Αν προσπαθήσετε να εγκαταστήσετε το &os; και το πρόγραμμα
+ εγκατάστασης κολλήσει, παγώσει ή με κάποιο τρόπο συμπεριφέρεται
+ περίεργα, ο πρώτος σας ύποπτος πρέπει να είναι οι δισκέτες.
+ Δοκιμάστε να γράψετε τα images σε νέες δισκέτες και
+ προσπαθήστε ξανά.</para>
+ </important>
+ </step>
+
+ <step>
+ <title>Γράψτε τα Αρχεία Image σε Δισκέτες</title>
+
+ <para>Τα αρχεία <filename>.flp</filename>
+ <emphasis>δεν</emphasis> είναι κανονικά αρχεία που μπορείτε να
+ αντιγράψετε σε δισκέτα. Είναι images που έχουν όλο το περιεχόμενο
+ της δισκέτας σε ένα αρχείο. Αυτό σημαίνει ότι <emphasis>δεν
+ μπορείτε</emphasis> απλώς να αντιγράψετε τα αρχεία αυτά σε
+ δισκέτες. Αντίθετα, πρέπει να χρησιμοποιήσετε ειδικά εργαλεία για
+ να γράψετε τα images αυτά απευθείας στις δισκέτες.</para>
+
+ <indexterm><primary>DOS</primary></indexterm>
+ <para>Αν πρόκειται να δημιουργήσετε τις δισκέτες σε ένα υπολογιστή
+ που εκτελεί &ms-dos; / &windows;, σας παρέχουμε ένα εργαλείο για
+ αυτή την εργασία, το <command>fdimage</command>.</para>
+
+ <para>Αν χρησιμοποιείτε τα images των δισκετών από το CDROM και
+ ο οδηγός σας CDROM είναι στο γράμμα <devicename>E:</devicename>,
+ θα εκτελέσετε την εξής εντολή:</para>
+
+ <screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\boot.flp A:</userinput></screen>
+
+ <para>Επαναλάβετε την εντολή αυτή για κάθε αρχείο
+ <filename>.flp</filename>, αντικαθιστώντας κάθε φορά τη δισκέτα.
+ Βεβαιωθείτε ότι σημειώνετε στην ετικέτα κάθε δισκέτας το όνομα
+ του αρχείου που αντιγράψατε. Ρυθμίστε κατάλληλα την εντολή
+ ανάλογα με την τοποθεσία των image αρχείων
+ <filename>.flp</filename>. Αν δεν έχετε το CDROM, μπορείτε να
+ κατεβάσετε το <command>fdimage</command> από την τοποθεσία FTP
+ <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/"><filename class="directory">tools</filename> directory</ulink>του &os;.</para>
+
+ <para>Αν γράφετε τις δισκέτες σε ένα σύστημα &unix; (όπως κάποιο
+ σύστημα &os;) μπορείτε να χρησιμοποιήσετε την εντολή &man.dd.1;
+ για να γράψετε τα image αρχεία απευθείας στις δισκέτες. Στο &os;
+ θα γράφατε:</para>
+
+ <screen>&prompt.root; <userinput>dd if=boot.flp of=/dev/fd0</userinput></screen>
+
+ <para>Στο &os; η συσκευή, <filename>/dev/fd0</filename>
+ αναφέρεται στην πρώτη μονάδα δισκέτας
+ (τον οδηγό <devicename>A:</devicename>).
+ Η συσκευή <filename>/dev/fd1</filename> θα ήταν ο οδηγός
+ <devicename>B:</devicename>, κ.ο.κ. Άλλες παραλλαγές του &unix;
+ μπορεί να χρησιμοποιούν διαφορετικά ονόματα για τους οδηγούς
+ δισκέτας και θα χρειαστεί να ελέγξετε την τεκμηρίωση του
+ συστήματος σας κατά περίπτωση.</para>
+ </step>
+ </procedure>
+
+ <para>Είστε τώρα έτοιμοι να ξεκινήσετε την εγκατάσταση του &os;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-start">
+ <title>Ξεκινώντας την Εγκατάσταση</title>
+
+ <important>
+ <para>Το πρόγραμμα εγκατάστασης δεν θα κάνει καμιά αλλαγή στους δίσκους
+ σας μέχρι να δείτε το ακόλουθο μήνυμα:</para>
+
+ <literallayout class="monospaced">Last Chance: Are you SURE you want continue the installation?
+
+If you're running this on a disk with data you wish to save then WE
+STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!
+
+We can take no responsibility for lost disk contents!</literallayout>
+
+ <para>Η εγκατάσταση μπορεί να ακυρωθεί οποιαδήποτε στιγμή μέχρι να δείτε
+ την τελική προειδοποίηση χωρίς να γίνει καμιά αλλαγή στα περιεχόμενα
+ του σκληρού δίσκου. Αν ανησυχείτε ότι έχετε κάνει κάποια λάθος
+ ρύθμιση μπορείτε απλώς να σβήσετε τον υπολογιστή πριν από το σημείο
+ αυτό, και δεν θα δημιουργηθεί κανένα πρόβλημα.</para>
+ </important>
+
+ <sect2 id="install-starting">
+ <title>Εκκίνηση</title>
+
+ <sect3 id="install-starting-i386">
+ <title>Εκκίνηση στην Αρχιτεκτονική &i386;</title>
+
+ <procedure>
+ <step>
+ <para>Ξεκινήστε με τον υπολογιστή σας απενεργοποιημένο.</para>
+ </step>
+
+ <step>
+ <para>Εκκινήστε τον υπολογιστή σας. Καθώς ξεκινάει θα πρέπει να
+ δείχνει κάποια επιλογή για να εισέλθετε στο πρόγραμμα ρυθμίσεων
+ του BIOS (BIOS setup), συνήθως με την πίεση κάποιου πλήκτρου
+ όπως το <keycap>F2</keycap>, το <keycap>F10</keycap>, το
+ <keycap>Del</keycap> ή το συνδυασμό
+ <keycombo action="simul">
+ <keycap>Alt</keycap>
+ <keycap>S</keycap>
+ </keycombo>. Χρησιμοποιήστε το συνδυασμό που φαίνεται στην
+ οθόνη. Σε κάποιες περιπτώσεις, κατά την εκκίνηση μπορεί στην
+ οθόνη σας να φαίνεται κάποιο γραφικό λογότυπο. Τυπικά,
+ πιέζοντας το <keycap>Esc</keycap> το γραφικό αυτό εξαφανίζεται
+ και μπορείτε πλέον να δείτε τα απαραίτητα μηνύματα.</para>
+ </step>
+
+ <step>
+ <para>Βρείτε τη ρύθμιση που ελέγχει από ποιες συσκευές εκκινεί το
+ σύστημα. Συνήθως αναφέρεται ως <quote>Boot Order</quote> και
+ εμφανίζεται ως λίστα συσκευών, όπως για παράδειγμα
+ <literal>Floppy</literal>, <literal>CDROM</literal>,
+ <literal>First Hard Disk</literal>, κ.ο.κ.</para>
+
+ <para>Αν πρόκειται να εκκινήσετε από το CDROM, βεβαιωθείτε ότι
+ έχετε κάνει την αντίστοιχη επιλογή. Αν πρόκειται να εκκινήσετε
+ από USB μνήμη flash ή από δισκέτα, βεβαιωθείτε ότι έχετε επίσης
+ κάνει τη σωστή επιλογή. Αν δεν είστε σίγουροι, συμβουλευτείτε
+ το εγχειρίδιο του υπολογιστή ή / και της μητρικής
+ πλακέτας.</para>
+
+ <para>Κάντε την αλλαγή, αποθηκεύστε και βγείτε από το πρόγραμμα
+ ρυθμίσεων. Ο υπολογιστής σας θα επανεκκινήσει.</para>
+ </step>
+
+ <step>
+ <para>Αν προετοιμάσατε μνήμη flash USB, όπως περιγράφεται
+ στο <xref linkend="install-boot-media">, μην παραλείψετε να
+ συνδέσετε τη μνήμη στην αντίστοιχη υποδοχή, πριν ενεργοποιήσετε
+ τον υπολογιστή σας.</para>
+
+ <para>Αν θα εκκινήσετε από το CDROM, θα χρειαστεί να
+ ενεργοποιήσετε τον υπολογιστή και να εισάγετε το CDROM στον
+ οδηγό με την πρώτη δυνατή ευκαιρία.</para>
+
+ <note>
+ <para>Για το &os;&nbsp;7.<replaceable>X</replaceable>
+ διατίθενται δισκέτες εκκίνησης τις οποίες μπορείτε
+ να δημιουργήσετε όπως περιγράφεται στο <xref
+ linkend="install-boot-media">. Μια από αυτές θα
+ είναι η πρώτη δισκέτα εκκίνησης:
+ <filename>boot.flp</filename>. Τοποθετήστε αυτή τη δισκέτα
+ στον οδηγό και εκκινήστε τον υπολογιστή σας.</para>
+ </note>
+
+ <para>Αν ο υπολογιστής σας ξεκινήσει κανονικά και φορτώσει το
+ υπάρχον λειτουργικό σας σύστημα, τότε είτε:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Δεν βάλατε τη δισκέτα ή το CD αρκετά νωρίς κατά τη
+ διαδικασία εκκίνησης. Αφήστε την στον οδηγό και δοκιμάστε
+ να επανεκκινήσετε τον υπολογιστή σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι προηγούμενες αλλαγές που κάνετε στις ρυθμίσεις του
+ BIOS δεν λειτούργησαν. Θα πρέπει να επαναλάβετε το βήμα
+ αυτό μέχρι να πετύχετε τη σωστή επιλογή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το συγκεκριμένο BIOS που διαθέτετε δεν υποστηρίζει
+ εκκίνηση από το επιλεγμένο μέσο.</para>
+ </listitem>
+ </orderedlist>
+ </step>
+
+ <step>
+ <para>Θα αρχίσει η εκκίνηση του &os;. Αν ξεκινάτε από το CDROM θα
+ δείτε μια εικόνα όπως την επόμενη (έχουν παραλειφθεί οι
+ πληροφορίες έκδοσης):</para>
+
+ <screen>Booting from CD-Rom...
+CD Loader 1.2
+
+Building the boot loader arguments
+Looking up /BOOT/LOADER... Found
+Relocating the loader and the BTX
+Starting the BTX loader
+
+BTX loader 1.00 BTX version is 1.02
+Consoles: internal video/keyboard
+BIOS CD is cd0
+BIOS drive C: is disk0
+BIOS drive D: is disk1
+BIOS 639kB/261056kB available memory
+
+FreeBSD/i386 bootstrap loader, Revision 1.1
+
+Loading /boot/defaults/loader.conf
+/boot/kernel/kernel text=0x64daa0 data=0xa4e80+0xa9e40 syms=[0x4+0x6cac0+0x4+00
+x88e9d]
+\</screen>
+
+ <para>Αν κάνετε εκκίνηση από μονάδα δισκέτας, θα δείτε μια οθόνη
+ όμοια με την παρακάτω (έχουν παραλειφθεί οι πληροφορίες
+ έκδοσης):</para>
+
+ <screen>Booting from Floppy...
+Uncompressing ... done
+
+BTX loader 1.00 BTX version is 1.01
+Console: internal video/keyboard
+BIOS drive A: is disk0
+BIOS drive C: is disk1
+BIOS 639kB/261120kB available memory
+
+FreeBSD/i386 bootstrap loader, Revision 1.1
+
+Loading /boot/defaults/loader.conf
+/kernel text=0x277391 data=0x3268c+0x332a8 |
+
+Insert disk labelled "Kernel floppy 1" and press any key...</screen>
+
+ <para>Ακολουθήστε τις οδηγίες, αφαιρώντας την δισκέτα
+ <filename>boot.flp</filename>, εισάγοντας την δισκέτα
+ <filename>kern1.flp</filename> και πιέζοντας
+ <keycap>Enter</keycap>. Ξεκινήστε από την πρώτη δισκέτα, και
+ όταν σας ζητηθεί, βάλτε τις άλλες δισκέτες όπως
+ απαιτείται.</para>
+ </step>
+
+ <step>
+ <para>Είτε ξεκινήσατε από δισκέτα, είτε από CDROM, είτε από μνήμη
+ flash, η διαδικασία εκκίνησης θα φτάσει στο μενού του &os;
+ boot loader:</para>
+
+ <figure id="boot-loader-menu">
+ <title>Μενού Εκκίνησης (&os; Boot Loader)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/boot-loader-menu" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Περιμένετε δέκα δευτερόλεπτα, ή απλώς πιέστε
+ <keycap>Enter</keycap></para>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3>
+ <title>Εκκίνηση στον &sparc64;</title>
+
+ <para>Τα περισσότερα συστήματα &sparc64; είναι ρυθμισμένα να ξεκινάνε
+ αυτόματα από το σκληρό δίσκο. Για να εγκαταστήσετε το &os;, θα
+ πρέπει να ξεκινήσετε είτε από το δίκτυο, είτε από το CDROM, κάτι το
+ οποίο απαιτεί να εισέλθετε στην PROM (OpenFirmware).</para>
+
+ <para>Για το σκοπό αυτό, επανεκκινήστε το σύστημα και περιμένετε μέχρι
+ να εμφανιστεί το μήνυμα εκκίνησης (boot). Αυτό εξαρτάται από το
+ μοντέλο, αλλά γενικά μοιάζει με:</para>
+
+ <screen>Sun Blade 100 (UltraSPARC-IIe), Keyboard Present
+Copyright 1998-2001 Sun Microsystems, Inc. All rights reserved.
+OpenBoot 4.2, 128 MB memory installed, Serial #51090132.
+Ethernet address 0:3:ba:b:92:d4, Host ID: 830b92d4.</screen>
+
+ <para>Αν το σύστημα σας συνεχίζει με εκκίνηση από το σκληρό δίσκο,
+ πρέπει να πιέσετε:
+ <keycombo action="simul"><keycap>L1</keycap><keycap>A</keycap></keycombo>
+ ή
+ <keycombo action="simul"><keycap>Stop</keycap><keycap>A</keycap></keycombo>
+ στο πληκτρολόγιο, ή να στείλετε <command>BREAK</command> μέσω της
+ σειριακής κονσόλας (χρησιμοποιώντας για παράδειγμα
+ <command>~#</command> στο &man.tip.1; ή στο &man.cu.1;) για να
+ φτάσετε στην προτροπή της PROM. Φαίνεται όπως παρακάτω:</para>
+
+ <screenco>
+ <areaspec>
+ <area id="prompt-single" coords="1 5">
+ <area id="prompt-smp" coords="2 5">
+ </areaspec>
+
+ <screen><prompt>ok </prompt>
+<prompt>ok {0} </prompt></screen>
+
+ <calloutlist>
+ <callout arearefs="prompt-single">
+ <para>Αυτή είναι η προτροπή που χρησιμοποιείται σε συστήματα με
+ μία CPU.</para>
+ </callout>
+
+ <callout arearefs="prompt-smp">
+ <para>Αυτή είναι η προτροπή που χρησιμοποιείται σε συστήματα
+ SMP, το ψηφίο δείχνει τον αριθμό της ενεργής CPU.</para>
+ </callout>
+ </calloutlist>
+ </screenco>
+
+ <para>Στο σημείο αυτό, τοποθετήστε το CDROM στον οδηγό, και από την
+ προτροπή της PROM, γράψτε <command>boot cdrom</command>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="view-probe">
+ <title>Επισκόπηση των Αποτελεσμάτων Ανίχνευσης Συσκευών</title>
+
+ <para>Οι τελευταίες εκατοντάδες γραμμές που πέρασαν από την οθόνη σας,
+ αποθηκεύονται, και μπορείτε να τις ξαναδείτε.</para>
+
+ <para>Για να δείτε τα περιεχόμενα της προσωρινής μνήμης (buffer) πιέστε
+ το πλήκτρο <keycap>Scroll Lock</keycap>. Με τον τρόπο αυτό
+ ενεργοποιείται η κύλιση της οθόνης. Μπορείτε να χρησιμοποιήσετε τα
+ πλήκτρα με τα βελάκια, ή τα <keycap>PageUp</keycap> και
+ <keycap>PageDown</keycap> για να δείτε τα αποτελέσματα. Πιέστε ξανά
+ το πλήκτρο <keycap>Scroll Lock</keycap> για να τερματίσετε την
+ κύλιση.</para>
+
+ <para>Κάντε το αυτό τώρα για να δείτε το κείμενο που κύλησε εκτός οθόνης
+ την ώρα που ο πυρήνας ανίχνευε το υλικό του υπολογιστή σας. Θα δείτε
+ ένα κείμενο αντίστοιχο με το <xref linkend="install-dev-probe">, αν
+ και το ακριβές κείμενο θα διαφέρει ανάλογα με τις συσκευές που έχετε
+ στον υπολογιστή σας.</para>
+
+ <figure id="install-dev-probe">
+ <title>Τυπικά Αποτελέσματα Ανίχνευσης Συσκευών</title>
+
+ <screen>avail memory = 253050880 (247120K bytes)
+Preloaded elf kernel "kernel" at 0xc0817000.
+Preloaded mfs_root "/mfsroot" at 0xc0817084.
+md0: Preloaded image &lt;/mfsroot&gt; 4423680 bytes at 0xc03ddcd4
+
+md1: Malloc disk
+Using $PIR table, 4 entries at 0xc00fde60
+npx0: &lt;math processor&gt; on motherboard
+npx0: INT 16 interface
+pcib0: &lt;Host to PCI bridge&gt; on motherboard
+pci0: &lt;PCI bus&gt; on pcib0
+pcib1:&lt;VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge&gt; at device 1.0 on pci0
+pci1: &lt;PCI bus&gt; on pcib1
+pci1: &lt;Matrox MGA G200 AGP graphics accelerator&gt; at 0.0 irq 11
+isab0: &lt;VIA 82C586 PCI-ISA bridge&gt; at device 7.0 on pci0
+isa0: &lt;iSA bus&gt; on isab0
+atapci0: &lt;VIA 82C586 ATA33 controller&gt; port 0xe000-0xe00f at device 7.1 on pci0
+ata0: at 0x1f0 irq 14 on atapci0
+ata1: at 0x170 irq 15 on atapci0
+uhci0 &lt;VIA 83C572 USB controller&gt; port 0xe400-0xe41f irq 10 at device 7.2 on pci
+0
+usb0: &lt;VIA 83572 USB controller&gt; on uhci0
+usb0: USB revision 1.0
+uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr1
+uhub0: 2 ports with 2 removable, self powered
+pci0: &lt;unknown card&gt; (vendor=0x1106, dev=0x3040) at 7.3
+dc0: &lt;ADMtek AN985 10/100BaseTX&gt; port 0xe800-0xe8ff mem 0xdb000000-0xeb0003ff ir
+q 11 at device 8.0 on pci0
+dc0: Ethernet address: 00:04:5a:74:6b:b5
+miibus0: &lt;MII bus&gt; on dc0
+ukphy0: &lt;Generic IEEE 802.3u media interface&gt; on miibus0
+ukphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
+ed0: &lt;NE2000 PCI Ethernet (RealTek 8029)&gt; port 0xec00-0xec1f irq 9 at device 10.
+0 on pci0
+ed0 address 52:54:05:de:73:1b, type NE2000 (16 bit)
+isa0: too many dependant configs (8)
+isa0: unexpected small tag 14
+orm0: &lt;Option ROM&gt; at iomem 0xc0000-0xc7fff on isa0
+fdc0: &lt;NEC 72065B or clone&gt; at port 0x3f0-0x3f5,0x3f7 irq 6 drq2 on isa0
+fdc0: FIFO enabled, 8 bytes threshold
+fd0: &lt;1440-KB 3.5&rdquo; drive&gt; on fdc0 drive 0
+atkbdc0: &lt;Keyboard controller (i8042)&gt; at port 0x60,0x64 on isa0
+atkbd0: &lt;AT Keyboard&gt; flags 0x1 irq1 on atkbdc0
+kbd0 at atkbd0
+psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0
+psm0: model Generic PS/@ mouse, device ID 0
+vga0: &lt;Generic ISA VGA&gt; at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
+sc0: &lt;System console&gt; at flags 0x100 on isa0
+sc0: VGA &lt;16 virtual consoles, flags=0x300&gt;
+sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
+sio0: type 16550A
+sio1 at port 0x2f8-0x2ff irq 3 on isa0
+sio1: type 16550A
+ppc0: &lt;Parallel port&gt; at port 0x378-0x37f irq 7 on isa0
+pppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
+ppc0: FIFO with 16/16/15 bytes threshold
+plip0: &lt;PLIP network interface&gt; on ppbus0
+ad0: 8063MB &lt;IBM-DHEA-38451&gt; [16383/16/63] at ata0-master UDMA33
+acd0: CD-RW &lt;LITE-ON LTR-1210B&gt; at ata1-slave PIO4
+Mounting root from ufs:/dev/md0c
+/stand/sysinstall running as init on vty0</screen>
+ </figure>
+
+ <para>Ελέγξτε προσεκτικά τα αποτελέσματα της ανίχνευσης για να
+ βεβαιωθείτε ότι το &os; ανίχνευσε όλες τις συσκευές που αναμένατε. Αν
+ μια συσκευή δεν βρέθηκε, τότε δεν θα τη δείτε στη λίστα. Με τη
+ βοήθεια <link linkend="kernelconfig">εξειδικευμένου πυρήνα</link>
+ μπορείτε να προσθέσετε υποστήριξη για συσκευές οι οποίες δεν
+ περιλαμβάνονται στον πυρήνα <filename>GENERIC</filename>, όπως τις
+ κάρτες ήχου.</para>
+
+ <para>Μετά το τέλος της διαδικασίας
+ ανίχνευσης συσκευών, θα δείτε το <xref linkend="config-country">.
+ Χρησιμοποιήστε τα βελάκια για να επιλέξετε περιοχή ή χώρα. Έπειτα
+ πιέστε <keycap>Enter</keycap>, για να ρυθμίσετε τη χώρα.</para>
+
+ <figure id="config-country">
+ <title>Επιλέγοντας το Μενού Χώρας</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/config-country" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αν επιλέξατε ως χώρα <guimenuitem>United States</guimenuitem>,
+ θα χρησιμοποιηθεί η τυποποιημένη Αμερικανική διάταξη πληκτρολογίου.
+ Αν επιλέξατε διαφορετική χώρα, θα εμφανιστεί το παρακάτω μενού.
+ Χρησιμοποιήστε τα βελάκια για να επιλέξετε τη σωστή διάταξη
+ πληκτρολογίου και πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="config-keymap">
+ <title>Επιλογή Μενού Πληκτρολογίου</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/config-keymap" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μετά την επιλογή της χώρας, θα εμφανιστεί το βασικό μενού
+ επιλογών του <application>sysinstall</application>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="using-sysinstall">
+ <title>Εισαγωγή στο Sysinstall</title>
+
+ <para>Το πρόγραμμα <application>sysinstall</application> είναι η εφαρμογή
+ εγκατάστασης που παρέχεται από το &os; Project. Βασίζεται σε περιβάλλον
+ κειμένου και χωρίζεται σε μια σειρά από μενού και οθόνες που μπορείτε να
+ χρησιμοποιήσετε για να ρυθμίσετε και να ελέγξετε την διαδικασία
+ εγκατάστασης.</para>
+
+ <para>Το σύστημα μενού του <application>sysinstall</application>
+ ελέγχεται με τα βελάκια, το <keycap>Enter</keycap>, το
+ <keycap>Space</keycap> και άλλα πλήκτρα. Λεπτομερή περιγραφή των
+ πλήκτρων αυτών και των λειτουργιών τους περιέχεται στις οδηγίες χρήσης
+ του <application>sysinstall</application>.</para>
+
+ <para>Για να δείτε τις πληροφορίες αυτές, βεβαιωθείτε ότι είναι φωτισμένη
+ η επιλογή <guimenuitem>Usage</guimenuitem> και ότι είναι επιλεγμένο το
+ πλήκτρο <guibutton>[Select]</guibutton> όπως φαίνεται στο
+ <xref linkend="sysinstall-main3">, και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <para>Θα δείτε τις οδηγίες χρήσης του συστήματος μενού. Κατόπιν πιέστε
+ <keycap>Enter</keycap> για να επιστρέψετε στο κύριο μενού
+ (Main Menu).</para>
+
+ <figure id="sysinstall-main3">
+ <title>Επιλέγοντας Usage από το Main Menu του SysInstall</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/main1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <sect2 id="select-doc">
+ <title>Επιλέγοντας το Μενού Documentation (Τεκμηρίωσης)</title>
+
+ <para>Από το Main Menu, επιλέξτε <guimenuitem>Doc</guimenuitem> με τα
+ βελάκια και πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="main-doc">
+ <title>Επιλέγοντας το Μενού Documentation</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/main-doc" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αυτό θα δείξει το Μενού Documentation.</para>
+
+ <figure id="docmenu1">
+ <title>Το Μενού Documentation του Sysinstall</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/docmenu1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Είναι σημαντικό να διαβάσετε την παρεχόμενη τεκμηρίωση.</para>
+
+ <para>Για να δείτε ένα έγγραφο, επιλέξτε το με τα βελάκια και πιέστε
+ <keycap>Enter</keycap>. Όταν τελειώσετε την ανάγνωση ενός εγγράφου,
+ πιέζοντας <keycap>Enter</keycap> θα επιστρέψετε στο μενού
+ Documentation.</para>
+
+ <para>Για να επιστρέψετε στο Κυρίως Μενού Εγκατάστασης, επιλέξτε
+ <guimenuitem>Exit</guimenuitem> με τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+ </sect2>
+
+ <sect2 id="keymap">
+ <title>Επιλέγοντας το Μενού Keymap (Διάταξη Πληκτρολογίου)</title>
+
+ <para>Για να αλλάξετε τη διάταξη του πληκτρολογίου, χρησιμοποιήστε τα
+ βελάκια για να επιλέξετε <guimenuitem>Keymap</guimenuitem>
+ από το μενού και πιέστε <keycap>Enter</keycap>. Αυτό απαιτείται μόνο
+ αν χρησιμοποιείτε διάταξη πληκτρολογίου που δεν είναι στάνταρ και
+ επίσης για διατάξεις εκτός της Αγγλικής ΗΠΑ.</para>
+
+ <figure id="sysinstall-keymap">
+ <title>Κύριο Μενού Εγκατάστασης (Sysinstall Main Menu)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/main-keymap" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μπορείτε να επιλέξετε διαφορετική διάταξη πληκτρολογίου
+ κάνοντας την αντίστοιχη επιλογή από το μενού χρησιμοποιώντας τα
+ βελάκια, και πιέζοντας <keycap>Space</keycap>. Πιέζοντας ξανά
+ <keycap>Space</keycap> θα καταργήσετε την επιλογή. Όταν τελειώσετε,
+ επιλέξτε &gui.ok; με τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <para>Στην παρακάτω απεικόνιση της οθόνης φαίνεται μόνο μέρος της
+ λίστας. Αν επιλέξετε &gui.cancel; πιέζοντας το <keycap>Tab</keycap>
+ θα χρησιμοποιήσετε την προεπιλεγμένη διάταξη πληκτρολογίου και θα
+ επιστρέψετε στο Κύριο Μενού Εγκατάστασης.</para>
+
+ <figure id="sysinstall-keymap-menu">
+ <title>Το Μενού Keymap του Sysinstall</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/keymap" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect2>
+
+ <sect2 id="viewsetoptions">
+ <title>Η Οθόνη Installation Options (Επιλογών Εγκατάστασης)</title>
+
+ <para>Επιλέξτε <guimenuitem>Options</guimenuitem> και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="sysinstall-options">
+ <title>Το Κύριο Μενού του Sysinstall</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/main-options" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <figure id="options">
+ <title>Επιλογές του Sysinstall (Options)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/options" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Οι προεπιλεγμένες τιμές είναι συνήθως σωστές για τους
+ περισσότερους χρήστες και δεν χρειάζεται να αλλαχθούν. Το όνομα της
+ έκδοσης (Release Name) αλλάζει ανάλογα με την έκδοση που
+ εγκαθίσταται.</para>
+
+ <para>Στο κάτω μέρος της οθόνης, εμφανίζεται με τονισμένο μπλε χρώμα
+ η περιγραφή του επιλεγμένου αντικειμένου. Παρατηρήστε ότι μια από
+ τις επιλογές είναι η <guimenuitem>Use Defaults</guimenuitem> η οποία
+ επαναφέρει όλες τις τιμές στις αρχικές προεπιλεγμένες τους
+ ρυθμίσεις.</para>
+
+ <para>Πιέστε το <keycap>F1</keycap> για να διαβάσετε την οθόνη βοήθειας
+ σχετικά με τις διάφορες επιλογές.</para>
+
+ <para>Πιέζοντας το <keycap>Q</keycap> θα επιστρέψετε στο Κύριο Μενού
+ Εγκατάστασης.</para>
+ </sect2>
+
+ <sect2 id="start-install">
+ <title>Ξεκινήστε μια Τυπική Εγκατάσταση (Standard Installation)</title>
+
+ <para>Η <guimenuitem>Standard</guimenuitem> εγκατάσταση είναι η επιλογή
+ που συνίσταται για τους νέους χρήστες του &unix; ή του &os;.
+ Χρησιμοποιήστε τα βελάκια για να επιλέξετε
+ <guimenuitem>Standard</guimenuitem> από το μενού, και πιέστε
+ <keycap>Enter</keycap> για να ξεκινήσετε την εγκατάσταση.</para>
+
+ <figure id="sysinstall-standard">
+ <title>Εκκίνηση της Τυπικής Εγκατάστασης (Standard
+ Installation)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/main-std" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-steps">
+ <title>Εκχώρηση Χώρου στο Δίσκο</title>
+
+ <para>Το πρώτο σας βήμα είναι να εκχωρήσετε χώρο δίσκου για το &os; και
+ να δημιουργήσετε μια ετικέτα (label) στο χώρο αυτό ώστε να μπορέσει να
+ τον προετοιμάσει το <application>sysinstall</application>. Για το σκοπό
+ αυτό πρέπει να γνωρίζετε τον τρόπο με τον οποίο περιμένει το &os; να
+ βρει τις πληροφορίες στο δίσκο.</para>
+
+ <sect2 id="install-drive-bios-numbering">
+ <title>Αρίθμηση των Δίσκων με βάση το BIOS</title>
+
+ <para>Πριν εγκαταστήσετε και ρυθμίσετε το &os; στο σύστημα σας, υπάρχει
+ ένα σημαντικό θέμα το οποίο πρέπει να γνωρίζετε, ειδικά αν έχετε
+ πολλούς σκληρούς δίσκους.</para>
+
+ <indexterm><primary>MS-DOS</primary></indexterm>
+ <indexterm><primary>Microsoft Windows</primary></indexterm>
+ <para>Σε ένα PC το οποίο χρησιμοποιεί λειτουργικό σύστημα το οποίο
+ εξαρτάται από το BIOS, όπως είναι το &ms-dos; ή τα
+ &microsoft.windows;, το BIOS είναι σε θέση να συμπεράνει τη σειρά
+ προτεραιότητας των δίσκων και το λειτουργικό σύστημα απλώς συμβαδίζει
+ με αυτή. Αυτό επιτρέπει στο χρήστη να εκκινήσει από ένα δίσκο
+ διαφορετικό από αυτόν που συχνά καλούμε
+ <quote>primary master</quote>. Αυτό είναι ιδιαίτερα βολικό για
+ κάποιους χρήστες που έχουν ανακαλύψει ότι ο ευκολότερος και φτηνότερος
+ τρόπος να έχουν ένα αντίγραφο ασφαλείας του συστήματος τους, είναι να
+ αγοράσουν ένα δεύτερο όμοιο σκληρό δίσκο, και να αντιγράφουν ανά τακτά
+ διαστήματα τον πρώτο τους δίσκο στο δεύτερο χρησιμοποιώντας
+ προγράμματα όπως το
+ <application><trademark class="registered">Ghost</trademark></application> ή το <application>XCOPY</application>.
+ Έτσι, αν ο πρώτος δίσκος χαλάσει, ή δεχθεί επίθεση από ιό, ή
+ παρουσιάσει πρόβλημα εξαιτίας κάποιου ελαττώματος του λειτουργικού
+ συστήματος, ο χρήστης μπορεί εύκολα να επαναφέρει το σύστημα
+ ρυθμίζοντας το BIOS να αντιστρέψει τη λογική σειρά των δίσκων. Είναι
+ σαν να αντιμεταθέτουμε τη σειρά των καλωδίων στους δίσκους αλλά χωρίς
+ να χρειάζεται να ανοίξουμε το κουτί.</para>
+
+ <indexterm><primary>SCSI</primary></indexterm>
+ <indexterm><primary>BIOS</primary></indexterm>
+ <para>Τα πιο ακριβά συστήματα με ελεγκτές SCSI, συχνά περιλαμβάνουν
+ επεκτάσεις στο BIOS που επιτρέπουν την αλλαγή της αρίθμησης μέχρι επτά
+ δίσκων SCSI, με παρόμοιο τρόπο.</para>
+
+ <para>Ένας χρήστης εξοικειωμένος με την παραπάνω δυνατότητα, μπορεί να
+ βρεθεί προ εκπλήξεως όταν τα αποτελέσματα με το &os; δεν είναι τα
+ αναμενόμενα. Το &os; δεν χρησιμοποιεί το BIOS και δεν γνωρίζει την
+ <quote>κατά το BIOS λογική διάταξη των οδηγών</quote>. Αυτό μπορεί να
+ οδηγήσει σε ιδιαίτερα περίπλοκες καταστάσεις, ειδικά αν οι δίσκοι
+ έχουν παρόμοια γεωμετρία και έχουν επίσης τα ίδια δεδομένα (είναι ο
+ ένας κλώνος του άλλου).</para>
+
+ <para>Όταν χρησιμοποιείτε το &os; επιστρέψτε την σειρά των οδηγών στο
+ BIOS στην φυσιολογική τους πριν εγκαταστήσετε το &os; και αφήστε την
+ έτσι. Αν πρέπει να εναλλάξετε τους δίσκους μεταξύ τους, κάντε το αλλά
+ με το δύσκολο τρόπο: ανοίξτε το κουτί και αλλάξτε θέσεις στα jumpers
+ (βραχυκυκλωτήρες) και στα καλώδια.</para>
+
+ <sidebar>
+ <title>Μια Ιστορία από τα Αρχεία των Εξαιρετικών Περιπετειών του
+ Bill και Fred:</title>
+
+ <para>O Bill διαλύει ένα παλιό μηχάνημα Wintel για να φτιάξει
+ ένα ακόμα &os; μηχάνημα για το Fred. Ο Bill εγκαθιστά ένα σκληρό
+ δίσκο SCSI ως συσκευή με αριθμό μηδέν και εγκαθιστά σε αυτή το
+ &os;.</para>
+
+ <para>Ο Fred ξεκινά να χρησιμοποιεί το σύστημα, αλλά μετά από αρκετές
+ μέρες παρατηρεί ότι ο παλιός SCSI δίσκος αναφέρει αρκετά μη
+ καταστροφικά λάθη (soft errors) και αναφέρει το γεγονός αυτό στον
+ Bill.</para>
+
+ <para>Μετά από μερικές ακόμα μέρες, ο Bill αποφασίζει ότι έχει έρθει
+ η ώρα να αντιμετωπίσει το πρόβλημα, και έτσι πιάνει ένα αντίστοιχο
+ SCSI δίσκο από το <quote>αρχείο</quote> στο πίσω δωμάτιο. Ένας
+ αρχικός έλεγχος επιφάνειας δείχνει ότι ο δίσκος λειτουργεί κανονικά,
+ και έτσι ο Bill εγκαθιστά το δίσκο αυτό ως SCSI μονάδα τέσσερα και
+ αντιγράφει (μέσω image) πλήρως τα δεδομένα από το δίσκο μηδέν στο
+ δίσκο τέσσερα. Τώρα που ο νέος δίσκος είναι εγκατεστημένος και
+ λειτουργεί σωστά, ο Bill αποφασίζει ότι είναι καλή ιδέα να αρχίσει
+ να τον χρησιμοποιεί, και έτσι βάζει σε εφαρμογή τη δυνατότητα του
+ BIOS να αλλάζει την αρίθμηση των δίσκων ώστε το σύστημα να ξεκινάει
+ από το δίσκο τέσσερα. Το &os; ξεκινάει και εκτελείται
+ κανονικά.</para>
+
+
+ <para>Ο Fred συνεχίζει τη δουλειά του για αρκετές ακόμα μέρες, και
+ σύντομα ο Bill και o Fred αποφασίζουν ότι έχει έρθει η ώρα για μια
+ ακόμα περιπέτεια &mdash; ώρα να αναβαθμίσουν στην νέα έκδοση του
+ &os;. Ο Bill αφαιρεί το δίσκο μηδέν μια και ήταν ελαφρώς
+ προβληματικός και τον αντικαθιστά με ένα άλλο όμοιο δίσκο από το
+ <quote>αρχείο</quote>. Ο Bill κατόπιν εγκαθιστά τη νέα έκδοση του
+ &os; στον νέο δίσκο μηδέν χρησιμοποιώντας τις μαγικές Internet FTP
+ δισκέτες του Fred. Η εγκατάσταση γίνεται χωρίς προβλήματα.</para>
+
+
+ <para>Ο Fred χρησιμοποιεί την νέα έκδοση του &os; για μερικές μέρες,
+ και πιστοποιεί ότι είναι αρκετά καλή για χρήση στο τμήμα
+ μηχανικής. Έχει έρθει η ώρα να αντιγράψει όλη τη δουλειά του από
+ την παλιά έκδοση. Έτσι ο Fred προσαρτεί το δίσκο με αριθμό
+ τέσσερα (το τελευταίο αντίγραφο της παλιάς έκδοσης του &os;).
+ Ο Fred απογοητεύεται όταν ανακαλύπτει ότι δεν υπάρχει τίποτα από την
+ πολύτιμη εργασία του στο δίσκο με αριθμό τέσσερα.</para>
+
+ <para>Που πήγαν τα δεδομένα;</para>
+
+ <para>Όταν ο Bill έκανε φωτογραφική αντιγραφή του αρχικού SCSI δίσκου
+ μηδέν στο SCSI δίσκο τέσσερα, ο δίσκος τέσσερα έγινε ο <quote>νέος
+ κλώνος</quote>. Όταν ο Bill άλλαξε την αρίθμηση στο SCSI BIOS ώστε
+ να μπορέσει να ξεκινήσει από τη μονάδα SCSI τέσσερα, απλώς κορόιδευε
+ τον εαυτό του. To &os; χρησιμοποιούσε ακόμα τη μονάδα SCSI μηδέν.
+ Ίσως αυτή η αλλαγή στο BIOS να προκαλέσει την μερική ή ολική φόρτωση
+ του κώδικα Boot ή και του Loader από τον επιλεγμένο από το BIOS
+ δίσκο, αλλά όταν αναλάβουν τα προγράμματα οδήγησης του πυρήνα του
+ &os; η αρίθμηση του BIOS θα αγνοηθεί, και το &os; θα επανέλθει στη
+ φυσιολογική αρίθμηση των δίσκων. Στο παράδειγμα μας, το σύστημα
+ συνέχισε να λειτουργεί στον αρχικό SCSI δίσκο μηδέν, και όλα τα
+ δεδομένα του Fred ήταν εκεί, και όχι στον SCSI δίσκο τέσσερα. Το
+ γεγονός ότι το σύστημα φαινόταν να λειτουργεί από το SCSI δίσκο
+ τέσσερα ήταν απλώς ένα κατασκεύασμα της ανθρώπινης
+ προσδοκίας.</para>
+
+ <para>Είμαστε ευτυχείς να ανακοινώσουμε ότι δεν χάθηκαν καθόλου
+ δεδομένα κατά την ανακάλυψη του φαινομένου αυτού. Ο παλιός SCSI
+ δίσκος μηδέν ανακτήθηκε από το σωρό, και όλη η εργασία του Fred
+ επιστράφηκε σε αυτόν (και τώρα ο Bill ξέρει ότι μπορεί να μετράει
+ ως το μηδέν).</para>
+
+ <para>Αν και στην ιστορία αυτή χρησιμοποιήθηκαν οδηγοί SCSI, οι αρχές
+ ισχύουν εξίσου και για οδηγούς IDE.</para>
+ </sidebar>
+ </sect2>
+
+ <sect2 id="main-fdisk">
+ <title>Δημιουργώντας Slices με Χρήση της FDisk</title>
+
+ <note>
+ <para>Καμιά αλλαγή που θα κάνετε σε αυτό το σημείο δεν θα γραφεί στο
+ δίσκο. Αν νομίζετε ότι κάνατε κάποιο λάθος και θέλετε να ξεκινήσετε
+ ξανά από την αρχή, μπορείτε να χρησιμοποιήσετε τα μενού για να
+ βγείτε από το <application>sysinstall</application> και να
+ δοκιμάσετε ξανά ή πιέστε το <keycap>U</keycap> για να
+ χρησιμοποιήσετε την επιλογή <guimenuitem>Undo</guimenuitem>. Αν
+ μπερδευτείτε και δεν μπορείτε να δείτε πως να βγείτε, μπορείτε πάντα
+ απλά να απενεργοποιήσετε τον υπολογιστή σας.</para>
+ </note>
+
+ <para>Αφού επιλέξετε να ξεκινήσετε μια τυπική εγκατάσταση
+ (standard installation) στο <application>sysinstall</application> θα
+ δείτε το παρακάτω μήνυμα:</para>
+
+ <screen> Message
+ In the next menu, you will need to set up a DOS-style ("fdisk")
+ partitioning scheme for your hard disk. If you simply wish to devote
+ all disk space to FreeBSD (overwriting anything else that might be on
+ the disk(s) selected) then use the (A)ll command to select the default
+ partitioning scheme followed by a (Q)uit. If you wish to allocate only
+ free space to FreeBSD, move to a partition marked "unused" and use the
+ (C)reate command.
+ [ OK ]
+
+ [ Press enter or space ]</screen>
+
+ <para>Πιέστε <keycap>Enter</keycap> σύμφωνα με τις οδηγίες. Θα δείτε
+ τότε μια λίστα με όλους τους σκληρούς δίσκους που ανίχνευσε ο πυρήνας
+ κατά τη διάρκεια της ανίχνευσης συσκευών. Το
+ <xref linkend="sysinstall-fdisk-drive1"> δείχνει ένα παράδειγμα από
+ ένα σύστημα με δύο δίσκους IDE. Έχουν τα ονόματα
+ <devicename>ad0</devicename> και <devicename>ad2</devicename>.</para>
+
+ <figure id="sysinstall-fdisk-drive1">
+ <title>Επιλέξτε Δίσκο για την FDisk</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/fdisk-drive1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Ίσως να αναρωτιέστε γιατί δεν υπάρχει εδώ συσκευή με όνομα
+ <devicename>ad1</devicename>. Τι είναι αυτό που λείπει;</para>
+
+ <para>Σκεφτείτε τι θα γινόταν αν είχατε δύο IDE δίσκους, ένα ως master
+ στο πρώτο IDE ελεγκτή, και ένα ως master στο δεύτερο IDE ελεγκτή. Αν
+ το &os; τους αριθμούσε όπως τους έβρισκε, δηλ. ως
+ <devicename>ad0</devicename> και <devicename>ad1</devicename>
+ όλα θα λειτουργούσαν κανονικά.</para>
+
+ <para>Αν όμως προσθέταμε μετά ένα τρίτο δίσκο, ως συσκευή slave στον
+ πρώτο IDE ελεγκτή, αυτή θα γινόταν πλέον <devicename>ad1</devicename>,
+ και η προηγούμενη <devicename>ad1</devicename> θα γινόταν
+ <devicename>ad2</devicename>. Επειδή τα ονόματα των συσκευών (όπως
+ <devicename>ad1s1a</devicename>) χρησιμοποιούνται για την εύρεση των
+ συστημάτων αρχείων, μπορεί να ανακαλύπτατε ξαφνικά ότι κάποια από τα
+ συστήματα αρχείων σας δεν εμφανίζονται κανονικά και πρέπει να αλλάξετε
+ την ρύθμιση του &os; σας.</para>
+
+ <para>Για να ξεπεραστεί το πρόβλημα αυτό, ο πυρήνας μπορεί να ρυθμιστεί
+ να ονομάζει τους δίσκους IDE ανάλογα με την θέση τους, και όχι με τη
+ σειρά με την οποία ανιχνεύονται. Με τον τρόπο αυτό, ο master δίσκος
+ στο δεύτερο IDE ελεγκτή θα είναι <emphasis>πάντα</emphasis>,
+ <devicename>ad2</devicename>, ακόμα και αν δεν υπάρχει συσκευή
+ <devicename>ad0</devicename> ή <devicename>ad1</devicename>.</para>
+
+ <para>Η ρύθμιση αυτή είναι και η προεπιλεγμένη για τον πυρήνα του &os;,
+ και για το λόγο αυτό η οθόνη δείχνει <devicename>ad0</devicename> και
+ <devicename>ad2</devicename>. Το μηχάνημα από το οποίο λήφθηκε η
+ εικόνα είχε δίσκους master και στους δύο ελεγκτές IDE, ενώ δεν είχε
+ κανένα δίσκο slave.</para>
+
+ <para>Πρέπει να επιλέξετε το δίσκο στον οποίο θα γίνει η εγκατάσταση του
+ &os; και να πιέσετε &gui.ok;. Το <application>FDisk</application> θα
+ ξεκινήσει, με οθόνη αντίστοιχη με αυτή που φαίνεται στο
+ <xref linkend="sysinstall-fdisk1">.</para>
+
+ <para>Η οθόνη του <application>FDisk</application> είναι χωρισμένη σε
+ τρία τμήματα.</para>
+
+ <para>Το πρώτο τμήμα, το οποίο καλύπτει τις δύο πρώτες γραμμές της
+ οθόνης, δείχνει λεπτομέρειες για τον επιλεγμένο δίσκο, που
+ περιλαμβάνουν το όνομα του στο &os;, τη γεωμετρία του, και το συνολικό
+ μέγεθος του.</para>
+
+ <para>Το δεύτερο τμήμα δείχνει τα slices τα οποία υπάρχουν στο δίσκο τη
+ δεδομένη στιγμή, τα σημεία στα οποία ξεκινούν και τελειώνουν, πόσο
+ μεγάλα είναι, την ονομασία που έχουν στο &os; και την περιγραφή τους
+ και τον τύπο τους. Το παράδειγμα αυτό δείχνει δύο μικρά
+ αχρησιμοποίητα slices, τα οποία είναι παρενέργειες του τρόπου
+ διάταξης των δίσκων στα PC. Δείχνει επίσης ένα μεγάλο
+ <acronym>FAT</acronym> slice, το οποίο σίγουρα εμφανίζεται ως
+ <devicename>C:</devicename> στα &ms-dos; και &windows;, καθώς και μια
+ εκτεταμένη κατάτμηση η οποία μπορεί να περιέχει και άλλα γράμματα
+ οδηγών για το &ms-dos; ή τα &windows;.</para>
+
+ <para>Το τρίτο τμήμα, δείχνει τις εντολές που είναι διαθέσιμες στην
+ <application>FDisk</application>.</para>
+
+ <figure id="sysinstall-fdisk1">
+ <title>Τυπικές Fdisk Κατατμήσεις πριν την Επεξεργασία</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/fdisk-edit1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το τι θα κάνετε τώρα εξαρτάται από το πως θέλετε να χωρίσετε το
+ δίσκο σας.</para>
+
+ <para>Αν θέλετε το &os; να χρησιμοποιήσει όλο το δίσκο σας (σβήνοντας
+ έτσι όλα τα άλλα δεδομένα από αυτόν, όταν επιβεβαιώσετε αργότερα στην
+ εγκατάσταση ότι θέλετε το <application>sysinstall</application> να
+ προχωρήσει) μπορείτε απλώς να πιέσετε <keycap>A</keycap>
+ το οποίο αντιστοιχεί με την επιλογή
+ <guimenuitem>Use Entire Disk</guimenuitem> (Χρήση ολόκληρου του
+ δίσκου). Οι υπάρχουσες κατατμήσεις θα διαγραφούν, και θα
+ αντικατασταθούν με μια μικρή περιοχή μαρκαρισμένη ως
+ <literal>unused (αχρησιμοποίητη)</literal> (ξανά, μια παρενέργεια
+ των διατάξεων δίσκου στο PC) και με ένα μεγάλο slice για το &os;.
+ Αν το κάνετε αυτό, θα πρέπει να επιλέξετε με τα βελάκια το νέο &os;
+ slice και να το μαρκάρετε ως εκκινήσιμο (bootable) πιέζοντας το
+ πλήκτρο <keycap>S</keycap>. Η οθόνη σας θα είναι αρκετά παρόμοια με
+ την <xref linkend="sysinstall-fdisk2">. Παρατηρήστε το
+ <literal>A</literal> στην στήλη <literal>Flags</literal>, το οποίο
+ δείχνει ότι το slice είναι <emphasis>active (ενεργό)</emphasis>,
+ και πρόκειται να γίνει εκκίνηση από αυτό.</para>
+
+ <para>Αν πρόκειται να διαγράψετε ένα υπάρχον slice για να δημιουργήσετε
+ χώρο για το &os;, θα πρέπει να επιλέξετε το slice με τα βελάκια, και
+ να πιέσετε <keycap>D</keycap>. Μπορείτε κατόπιν να πιέσετε
+ <keycap>C</keycap>, και θα ερωτηθείτε για το μέγεθος του slice που
+ θέλετε να δημιουργήσετε. Η προεπιλεγμένη τιμή στο διάλογο
+ αντιπροσωπεύει το μέγιστο δυνατό slice που μπορείτε να δημιουργήσετε,
+ το οποίο μπορεί να είναι το μέγιστο συνεχόμενο μπλοκ ελεύθερου χώρου ή
+ το μέγεθος ολόκληρου του δίσκου.</para>
+
+ <para>Αν έχετε ήδη δημιουργήσει χώρο για το &os; (ίσως με τη χρήση
+ κάποιου εργαλείου όπως το <application>&partitionmagic;</application>)
+ μπορείτε να πιέσετε <keycap>C</keycap> για να δημιουργήσετε νέο slice.
+ Θα ερωτηθείτε και πάλι για το μέγεθος του slice που θέλετε να
+ δημιουργήσετε.</para>
+
+ <figure id="sysinstall-fdisk2">
+ <title>Κατάτμηση Fdisk που Χρησιμοποιεί Ολόκληρο το Δίσκο</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/fdisk-edit2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Όταν τελειώσετε, πιέστε <keycap>Q</keycap>. Οι αλλαγές σας θα
+ αποθηκευτούν στο <application>sysinstall</application>, αλλά δεν θα
+ γραφτούν ακόμα στο δίσκο.</para>
+ </sect2>
+
+ <sect2 id="bootmgr">
+ <title>Εγκατάσταση Διαχειριστή Εκκίνησης (Boot Manager)</title>
+
+ <para>Έχετε τώρα την επιλογή να εγκαταστήσετε διαχειριστή εκκίνησης
+ (boot manager). Σε γενικές γραμμές θα πρέπει να επιλέξετε να
+ εγκαταστήσετε το διαχειριστή εκκίνησης του &os; αν:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Έχετε περισσότερους από ένα δίσκους, και έχετε επιλέξει να
+ εγκαταστήσετε το &os; σε δίσκο που δεν είναι ο πρώτος.</para>
+ </listitem>
+
+ <listitem>
+ <para>Έχετε εγκαταστήσει το &os; μαζί με ένα άλλο λειτουργικό
+ σύστημα στον ίδιο δίσκο, και θέλετε να μπορείτε να επιλέγετε αν
+ θα ξεκινήσετε το &os; ή το άλλο λειτουργικό, όταν ξεκινάτε τον
+ υπολογιστή σας.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αν το &os; πρόκειται να είναι το μοναδικό λειτουργικό σύστημα στον
+ υπολογιστή σας, και είναι εγκατεστημένο στον πρώτο σκληρό δίσκο, τότε
+ είναι επαρκής ο <guimenuitem>Standard</guimenuitem> διαχειριστής
+ εκκίνησης. Επιλέξτε <guimenuitem>None</guimenuitem> αν πρόκειται να
+ χρησιμοποιήσετε διαχειριστή εκκίνησης τρίτου κατασκευαστή, ο οποίος
+ είναι ικανός να εκκινήσει το &os;.</para>
+
+ <para>Κάντε την επιλογή σας και πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="sysinstall-bootmgr">
+ <title>Το μενού Boot Manager του Sysinstall</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/boot-mgr" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Η οθόνη βοήθειας, στην οποία έχετε πρόσβαση πιέζοντας το
+ <keycap>F1</keycap>, συζητά τα προβλήματα τα οποία ενδεχομένως θα
+ αντιμετωπίσετε όταν επιχειρήσετε να χρησιμοποιήσετε τον ίδιο δίσκο σε
+ περισσότερα από ένα λειτουργικά συστήματα.</para>
+ </sect2>
+
+ <sect2>
+ <title>Δημιουργώντας Slices σε Ένα Άλλο Δίσκο</title>
+
+ <para>Αν υπάρχουν περισσότεροι από ένας δίσκοι, θα επιστρέψετε στην
+ οθόνη επιλογής δίσκων (Select Driver) αμέσως μετά την επιλογή του
+ διαχειριστή εκκίνησης. Αν θέλετε να εγκαταστήσετε το &os; σε
+ περισσότερους από ένα δίσκους, μπορείτε εδώ να επιλέξετε ένα άλλο
+ δίσκο και να επαναλάβετε την διαδικασία κατάτμησης με την χρήση του
+ <application>FDisk</application>.</para>
+
+ <important>
+ <para>Αν εγκαθιστάτε το &os; σε οποιοδήποτε δίσκο εκτός από τον πρώτο
+ θα πρέπει να εγκαταστήσετε το διαχειριστή εκκίνησης του &os; και
+ στους δύο δίσκους.</para>
+ </important>
+
+ <figure id="sysinstall-fdisk-drive2">
+ <title>Έξοδος από την Επιλογή Δίσκων (Select Drive)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/fdisk-drive2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το πλήκτρο <keycap>Tab</keycap> εναλλάσσει μεταξύ του τελευταίου
+ επιλεγμένου δίσκου, του &gui.ok;, και του &gui.cancel;.</para>
+
+ <para>Πιέστε μια φορά το <keycap>Tab</keycap> για να μεταφερθείτε στο
+ &gui.ok;, πιέστε <keycap>Enter</keycap> για να συνεχίσετε την
+ εγκατάσταση.</para>
+ </sect2>
+
+ <sect2 id="bsdlabeleditor">
+ <title>Δημιουργώντας Κατατμήσεις (Partitions) με Χρήση του
+ <application>Disklabel</application></title>
+
+ <para>Πρέπει τώρα να δημιουργήσετε κατατμήσεις μέσα σε κάθε slice που
+ δημιουργήσατε. Θυμηθείτε ότι οι κατατμήσεις χαρακτηρίζονται από
+ γράμματα από <literal>a</literal> ως <literal>h</literal>, και ότι
+ οι κατατμήσεις <literal>b</literal>, <literal>c</literal>, και
+ <literal>d</literal> έχουν τυποποιημένη σημασία την οποία πρέπει να
+ ακολουθήσετε.</para>
+
+ <para>Κάποιες εφαρμογές μπορεί να ωφεληθούν από συγκεκριμένο τρόπο
+ κατάτμησης, ειδικά αν πρόκειται να δημιουργήσετε κατατμήσεις σε
+ περισσότερους από ένα δίσκους. Ωστόσο, για αυτή την πρώτη σας
+ εγκατάσταση του &os; δεν χρειάζεται να είστε τόσο σχολαστικοί στην
+ κατάτμηση του δίσκου σας. Είναι πιο σημαντικό να εγκαταστήσετε το
+ &os; και να μάθετε να το χρησιμοποιείτε. Μπορείτε πάντα να
+ επανεγκαταστήσετε το &os; αλλάζοντας τον τρόπο κατάτμησης, όταν πλέον
+ θα είστε πιο εξοικειωμένος με το λειτουργικό σύστημα.</para>
+
+ <para>Ο τρόπος αυτός χρησιμοποιεί τέσσερις κατατμήσεις&mdash;μια για
+ χώρο swap, και τρεις για συστήματα αρχείων.</para>
+
+ <table frame="none" pgwide="1">
+ <title>Διάταξη Κατατμήσεων για τον Πρώτο Δίσκο</title>
+
+ <tgroup cols="4">
+ <colspec colwidth="1*">
+ <colspec colwidth="1*">
+ <colspec colwidth="1*">
+ <colspec colwidth="4*">
+
+ <thead>
+ <row>
+ <entry>Κατάτμηση</entry>
+
+ <entry>Σύστημα Αρχείων</entry>
+
+ <entry>Μέγεθος</entry>
+
+ <entry>Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>a</literal></entry>
+
+ <entry><filename>/</filename></entry>
+
+ <entry>1&nbsp;GB</entry>
+
+ <entry>Πρόκειται για το root σύστημα αρχείων (root filesystem).
+ Όλα τα άλλα συστήματα αρχείων προσαρτώνται σε κάποιο σημείο
+ κάτω από αυτό. Το 1&nbsp;GB θεωρείται μια φυσιολογική τιμή
+ για αυτό το σύστημα αρχείων. Δεν πρόκειται να βάλετε
+ ιδιαίτερα δεδομένα σε αυτό, καθώς μια συνηθισμένη εγκατάσταση
+ &os; θα βάλει εδώ περίπου 128&nbsp;MB δεδομένων. Ο χώρος που
+ απομένει προορίζεται για προσωρινά δεδομένα, και επίσης
+ αφήνει χώρο επέκτασης στην περίπτωση που οι μελλοντικές
+ εκδόσεις του &os; απαιτούν περισσότερο χώρο στο
+ <filename>/</filename>.</entry>
+ </row>
+
+ <row>
+ <entry><literal>b</literal></entry>
+
+ <entry>N/A</entry>
+
+ <entry>2-3 x RAM</entry>
+
+ <entry><para>Σε αυτή την κατάτμηση βρίσκεται ο χώρος swap του
+ συστήματος. Η επιλογή σωστού μεγέθους swap μπορεί να
+ θεωρηθεί ένα είδος τέχνης. Ένας καλός γενικός κανόνας είναι
+ ο χώρος αυτός να είναι δύο ως τρεις φορές το μέγεθος της
+ διαθέσιμης φυσικής μνήμης (RAM).
+ Επίσης θα πρέπει να έχετε τουλάχιστον 64&nbsp;MB swap, έτσι
+ αν έχετε λιγότερα από 32&nbsp;MB RAM στον υπολογιστή σας,
+ ορίστε το swap στα 64&nbsp;MB.</para><para>
+
+ Αν έχετε περισσότερους από ένα δίσκους μπορείτε να
+ ορίσετε χώρο swap σε κάθε δίσκο. Το &os; θα χρησιμοποιεί
+ τότε κάθε δίσκο για swap, το οποίο επιταχύνει τη
+ διαδικασία. Στην περίπτωση αυτή, υπολογίστε το συνολικό
+ μέγεθος του swap που χρειάζεστε (π.χ. 128&nbsp;MB) και
+ μοιράστε το με το πλήθος των δίσκων που έχετε (π.χ., δύο
+ δίσκοι) για να βρείτε το μέγεθος του swap που θα
+ δημιουργήσετε σε κάθε δίσκο, σε αυτό το παράδειγμα,
+ 64&nbsp;MB ανά δίσκο.</para></entry>
+ </row>
+
+ <row>
+ <entry><literal>e</literal></entry>
+
+ <entry><filename>/var</filename></entry>
+
+ <entry>512 ως 4096&nbsp;MB</entry>
+
+ <entry>Ο κατάλογος <filename>/var</filename> περιέχει αρχεία τα
+ οποία συνεχώς μεταβάλλονται, όπως αρχεία καταγραφής (log
+ files) και άλλα αρχεία που έχουν να κάνουν με διαχειριστικές
+ εργασίες. Πολλά από τα αρχεία αυτά διαβάζονται και γράφονται
+ συνέχεια κατά την καθημερινή χρήση του &os;. Η τοποθέτηση των
+ αρχείων αυτών σε χωριστό σύστημα αρχείων επιτρέπει στο &os;
+ να βελτιστοποιεί την πρόσβαση σε αυτά χωρίς να επηρεάζονται
+ αρχεία σε άλλους καταλόγους που δεν έχουν παρόμοια συχνή
+ πρόσβαση.</entry>
+ </row>
+
+ <row>
+ <entry><literal>f</literal></entry>
+
+ <entry><filename>/usr</filename></entry>
+
+ <entry>Υπόλοιπος Χώρος Δίσκου (τουλάχιστον 8&nbsp;GB)</entry>
+
+ <entry>Όλα τα υπόλοιπα αρχεία σας θα είναι τυπικά αποθηκευμένα
+ στο <filename>/usr</filename> και τους υποκαταλόγους του.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <warning>
+ <para>Οι παραπάνω τιμές δίνονται μόνο ως υποδείγματα και προορίζονται
+ για εγκαταστάσεις από προχωρημένους χρήστες. Σας συνιστούμε να
+ χρησιμοποιήσετε τη δυνατότητα αυτόματης κατάτμησης, η οποία
+ αναφέρεται ως <literal>Auto Defaults</literal> στον επεξεργαστή
+ κατατμήσεων του &os;.</para>
+ </warning>
+
+ <para>Αν πρόκειται να εγκαταστήσετε το &os; σε περισσότερους από ένα
+ δίσκους, θα πρέπει να δημιουργήσετε κατατμήσεις και στα άλλα slices
+ που έχετε δημιουργήσει. Ο ευκολότερος τρόπος είναι να δημιουργήσετε
+ δύο κατατμήσεις σε κάθε δίσκο, μια για το swap, και μια για ένα
+ σύστημα αρχείων.</para>
+
+ <table frame="none" pgwide="1">
+ <title>Διάταξη Κατατμήσεων για τους Υπόλοιπους Δίσκους</title>
+
+ <tgroup cols="4">
+ <colspec colwidth="1*">
+ <colspec colwidth="1*">
+ <colspec colwidth="2*">
+ <colspec colwidth="3*">
+
+ <thead>
+ <row>
+ <entry>Κατάτμηση</entry>
+
+ <entry>Σύστημα Αρχείων</entry>
+
+ <entry>Μέγεθος</entry>
+
+ <entry>Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>b</literal></entry>
+
+ <entry>N/A</entry>
+
+ <entry>Δείτε την περιγραφή</entry>
+
+ <entry>Όπως έχει ήδη συζητηθεί, μπορείτε να χωρίσετε το χώρο
+ swap ανάμεσα σε πολλούς δίσκους. Αν και η κατάτμηση
+ <literal>a</literal> είναι ελεύθερη, η σύμβαση επιβάλλει τη
+ χρήση της κατάτμησης <literal>b</literal> για το χώρο
+ swap.</entry>
+ </row>
+
+ <row>
+ <entry><literal>e</literal></entry>
+
+ <entry>/disk<replaceable>n</replaceable></entry>
+
+ <entry>Υπόλοιπο Τμήμα του Δίσκου</entry>
+
+ <entry>Το υπόλοιπο κομμάτι του δίσκου καταλαμβάνεται από μια
+ μεγάλη κατάτμηση. Μπορείτε εύκολα να την βάλετε στην
+ κατάτμηση <literal>a</literal> αντί για την
+ <literal>e</literal>. Ωστόσο, η σύμβαση ορίζει ότι η
+ κατάτμηση <literal>a</literal> σε ένα slice δεσμεύεται για το
+ σύστημα αρχείων root (<filename>/</filename>). Δεν είστε
+ υποχρεωμένοι να ακολουθήσετε αυτή τη σύμβαση, αλλά το
+ <application>sysinstall</application> την ακολουθεί, οπότε
+ αν την ακολουθήσετε και εσείς η εγκατάσταση θα είναι πιο
+ καθαρή. Μπορείτε να προσαρτήσετε αυτό το σύστημα αρχείων όπου
+ θέλετε. Στο παράδειγμα μας, η προσάρτηση γίνεται στους
+ καταλόγους <filename>/disk<replaceable>n</replaceable>
+ </filename>, όπου το <replaceable>n</replaceable> είναι ένας
+ αριθμός που αλλάζει για κάθε δίσκο. Αλλά μπορείτε, αν
+ προτιμάτε, να ορίσετε δική σας διάταξη.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Έχοντας αποφασίσει την διάταξη των κατατμήσεων σας, μπορείτε τώρα
+ να την δημιουργήσετε χρησιμοποιώντας το
+ <application>sysinstall</application>. Θα δείτε το παρακάτω
+ μήνυμα:</para>
+
+ <screen> Message
+ Now, you need to create BSD partitions inside of the fdisk
+ partition(s) just created. If you have a reasonable amount of disk
+ space (1GB or more) and don't have any special requirements, simply
+ use the (A)uto command to allocate space automatically. If you have
+ more specific needs or just don't care for the layout chosen by
+ (A)uto, press F1 for more information on manual layout.
+
+ [ OK ]
+ [ Press enter or space ]</screen>
+
+ <para>Πιέστε <keycap>Enter</keycap> για να ξεκινήσετε τον επεξεργαστή
+ κατατμήσεων του &os;, που ονομάζεται
+ <application>Disklabel</application>.</para>
+
+ <para>Το <xref linkend="sysinstall-label"> δείχνει την οθόνη όταν
+ ξεκινήσετε για πρώτη φορά το <application>Disklabel</application>. Η
+ οθόνη χωρίζεται σε τρία τμήματα.</para>
+
+ <para>Οι πρώτες γραμμές δείχνουν το όνομα του δίσκου στον οποίο
+ δουλεύετε, και το slice που περιέχει τις κατατμήσεις που δημιουργείτε
+ (στο σημείο αυτό το <application>Disklabel</application> τις ονομάζει
+ <literal>Partition name</literal> αντί για το όνομα του slice).
+ Η οθόνη επίσης δείχνει την ποσότητα ελεύθερου χώρου μέσα στο slice,
+ δηλ. το χώρο που έχει κρατηθεί μέσα στο slice αλλά δεν έχει αποδοθεί
+ ακόμα σε κάποια κατάτμηση.</para>
+
+ <para>Το μέσο της οθόνης δείχνει τις κατατμήσεις που έχουν δημιουργηθεί,
+ το όνομα του συστήματος αρχείων που περιέχει κάθε κατάτμηση, το
+ μέγεθος τους, και κάποιες επιλογές που σχετίζονται με τη δημιουργία
+ του συστήματος αρχείων.</para>
+
+ <para>Το κάτω μέρος της οθόνης δείχνει τα πλήκτρα που μπορείτε να
+ χρησιμοποιήσετε στο <application>Disklabel</application>.</para>
+
+ <figure id="sysinstall-label">
+ <title>Επεξεργαστής Disklabel του Sysinstall</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disklabel-ed1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το <application>Disklabel</application> μπορεί να δημιουργήσει
+ αυτόματα κατατμήσεις για εσάς, και να τους αποδώσει προεπιλεγμένες
+ τιμές. Οι προεπιλεγμένες τιμές υπολογίζονται με την βοήθεια ενός
+ ενσωματωμένου αλγορίθμου καθορισμού μεγεθών, ο οποίος αποφασίζει με
+ βάση το μέγεθος του δίσκου.
+ Δοκιμάστε το τώρα πιέζοντας το <keycap>A</keycap>. Θα
+ δείτε μια οθόνη όμοια με αυτήν στο <xref linkend="sysinstall-label2">.
+ Ανάλογα με το μέγεθος του δίσκου που χρησιμοποιείτε, οι προεπιλεγμένες
+ τιμές μπορεί να είναι ή και να μην είναι κατάλληλες. Αυτό δεν έχει
+ σημασία, γιατί δεν χρειάζεται να τις αποδεχθείτε.</para>
+
+ <note>
+ <para>Ο προεπιλεγμένος τρόπος κατάτμησης αποδίδει στον κατάλογο
+ <filename>/tmp</filename> την δική του κατάτμηση αντί να τον
+ καθιστά μέρος της κατάτμησης <filename>/</filename>. Αυτό βοηθάει
+ στην αποφυγή πλήρωσης της κατάτμησης <filename>/</filename> με
+ προσωρινά αρχεία.</para>
+ </note>
+
+ <figure id="sysinstall-label2">
+ <title>Ο Επεξεργαστής Κατατμήσεων Disklabel του Sysinstall με τις
+ Αυτόματες Προεπιλογές</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disklabel-auto" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αν επιλέξετε να μη χρησιμοποιήσετε τις προεπιλεγμένες κατατμήσεις
+ και θέλετε να τις αντικαταστήσετε με τις δικές σας, χρησιμοποιήστε τα
+ βελάκια για να επιλέξετε την πρώτη κατάτμηση και πιέστε
+ <keycap>D</keycap> για να τη σβήσετε. Επαναλάβετε για να σβήσετε όλες
+ τις προτεινόμενες κατατμήσεις.</para>
+
+ <para>Για να δημιουργήσετε την πρώτη κατάτμηση (<literal>a</literal>, (η
+ οποία προσαρτάται ως <filename>/</filename> &mdash; root), βεβαιωθείτε
+ ότι έχετε επιλέξει το σωστό slice στο πάνω μέρος της οθόνης, και
+ πιέστε <keycap>C</keycap>. Θα εμφανιστεί ένα πλαίσιο διαλόγου για να
+ εισάγετε το μέγεθος της νέας κατάτμησης (όπως φαίνεται στο
+ <xref linkend="sysinstall-label-add">). Μπορείτε να εισάγετε το
+ μέγεθος ως τον αριθμό μπλοκ του δίσκου που θέλετε να χρησιμοποιήσετε ή
+ ως αριθμό ακολουθούμενο από <literal>M</literal> για megabytes,
+ <literal>G</literal> για gigabytes, ή <literal>C</literal> για
+ κυλίνδρους.</para>
+
+ <figure id="sysinstall-label-add">
+ <title>Ελεύθερος Χώρος για την Κατάτμηση Root</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disklabel-root1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το προεπιλεγμένο μέγεθος που φαίνεται θα δημιουργήσει μια
+ κατάτμηση που καταλαμβάνει όλο τον υπόλοιπο ελεύθερο χώρο του slice.
+ Αν χρησιμοποιείτε τα μεγέθη των κατατμήσεων που περιγράψαμε στο
+ προηγούμενο παράδειγμα, σβήστε τον αριθμό που φαίνεται με το
+ <keycap>Backspace</keycap>, και πληκτρολογήστε
+ <userinput>512M</userinput>, όπως φαίνεται στο
+ <xref linkend="sysinstall-label-add2">. Κατόπιν πιέστε
+ &gui.ok;.</para>
+
+ <figure id="sysinstall-label-add2">
+ <title>Επεξεργασία Μεγέθους της Κατάτμησης Root</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disklabel-root2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Έχοντας επιλέξει το μέγεθος της κατάτμησης, θα ερωτηθείτε κατόπιν
+ για το αν η κατάτμηση θα περιέχει κάποιο σύστημα αρχείων, ή θα γίνει
+ χώρος swap. Ο διάλογος αυτός φαίνεται στο
+ <xref linkend="sysinstall-label-type">. Η πρώτη αυτή κατάτμηση θα
+ περιέχει σύστημα αρχείων, για αυτό ελέγξτε ότι είναι επιλεγμένο το
+ <guimenuitem>FS</guimenuitem> και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="sysinstall-label-type">
+ <title>Επιλέξτε τον Τύπο της Κατάτμησης Root</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disklabel-fs" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Τέλος, επειδή δημιουργείτε σύστημα αρχείων, πρέπει να δηλώσετε στο
+ <application>Disklabel</application> που θέλετε να γίνει η προσάρτηση
+ του. Ο αντίστοιχος διάλογος φαίνεται στο
+ <xref linkend="sysinstall-label-mount">. Το σημείο προσάρτησης της
+ κατάτμησης root είναι το <filename>/</filename>, για αυτό γράψτε
+ <userinput>/</userinput>, και πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="sysinstall-label-mount">
+ <title>Επιλέξτε το Σημείο Προσάρτησης του Root</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disklabel-root3" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Η οθόνη κατόπιν θα ανανεωθεί για να σας δείξει την κατάτμηση που
+ μόλις δημιουργήσατε. Θα πρέπει να επαναλάβετε αυτή την διαδικασία για
+ τις άλλες κατατμήσεις. Όταν δημιουργήσετε την κατάτμηση swap, δεν θα
+ σας ζητηθεί να επιλέξετε σημείο προσάρτησης, καθώς οι κατατμήσεις
+ swap δεν προσαρτώνται ποτέ. Όταν δημιουργήσετε την τελευταία
+ κατάτμηση, την <filename>/usr</filename>, μπορείτε να αφήσετε το
+ προτεινόμενο μέγεθος, για να χρησιμοποιήσετε όλο τον υπόλοιπο χώρο του
+ slice.</para>
+
+ <para>Η τελευταία οθόνη του &os; Επεξεργαστή DiskLabel, θα δείχνει όμοια
+ με την <xref linkend="sysinstall-label4">, αν και οι δικές σας τιμές
+ θα είναι διαφορετικές. Πιέστε <keycap>Q</keycap> για τέλος.</para>
+
+ <figure id="sysinstall-label4">
+ <title>Ο Επεξεργαστής Disklabel του Sysinstall</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/disklabel-ed2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-choosing">
+ <title>Επιλέγοντας τι θα Εγκαταστήσετε</title>
+
+ <sect2 id="distset">
+ <title>Επιλέξτε Distribution Set (Σετ Εγκατάστασης)</title>
+
+ <para>Η απόφαση για το ποιο distribution set θα χρησιμοποιήσετε,
+ εξαρτάται κατά κύριο λόγο από το είδος χρήσης του μηχανήματος και
+ τον διαθέσιμο χώρο στο δίσκο. Οι προκαθορισμένες επιλογές κυμαίνονται
+ από την ελάχιστη δυνατή διαμόρφωση μέχρι την πλήρη. Όσοι είναι
+ καινούριοι στο &unix; ή / και στο &os; θα πρέπει σχεδόν σίγουρα να
+ επιλέξουν μια από τις τυποποιημένες επιλογές. Η διαμόρφωση
+ εξειδικευμένου distribution set συνίσταται συνήθως στον πιο έμπειρο
+ χρήστη.</para>
+
+ <para>Πιέστε το <keycap>F1</keycap> για περισσότερες πληροφορίες για τις
+ επιλογές κάθε distribution set καθώς και για τα περιεχόμενα τους.
+ Όταν τελειώσετε με την ανάγνωση της βοήθειας, με την πίεση του
+ <keycap>Enter</keycap> θα επιστρέψετε στο μενού
+ Select Distributions.</para>
+
+ <para>Αν επιθυμείτε γραφικό περιβάλλον εργασίας, θα πρέπει να
+ ρυθμίσετε τον X server και να επιλέξετε ένα γραφικό περιβάλλον
+ (desktop) μετά την εγκατάσταση του &os;. Περισσότερες πληροφορίες
+ σχετικά με την εγκατάσταση και ρύθμιση του X server μπορείτε να
+ δείτε στο <xref linkend="x11">.</para>
+
+ <para>Αν αναμένετε ότι θα μεταγλωττίσετε δικό σας εξειδικευμένο πυρήνα,
+ διαλέξτε κάποια από τις επιλογές που περιέχουν τον πηγαίο κώδικα. Για
+ περισσότερες πληροφορίες σχετικά με το γιατί να μεταγλωττίσετε δικό
+ σας πυρήνα ή για το πως γίνεται, δείτε το
+ <xref linkend="kernelconfig">.</para>
+
+ <para>Προφανώς το πιο ευέλικτο σύστημα είναι αυτό που τα περιέχει όλα.
+ Αν έχετε αρκετό χώρο στο δίσκο, επιλέξτε
+ <guimenuitem>All</guimenuitem> όπως φαίνεται στο
+ <xref linkend="distribution-set1"> χρησιμοποιώντας τα βελάκια και
+ πιέστε <keycap>Enter</keycap>. Αν σας προβληματίζει ο διαθέσιμος
+ χώρος στο δίσκο, κάντε μια κατάλληλη επιλογή για την περίπτωση. Μην
+ προβληματίζεστε ιδιαίτερα σχετικά με την τέλεια επιλογή, καθώς
+ μπορείτε να εγκαταστήσετε πρόσθετα σετ και μετά το τέλος της βασικής
+ εγκατάστασης.</para>
+
+ <figure id="distribution-set1">
+ <title>Επιλέξτε Distributions (Σετ Εγκατάστασης)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/dist-set" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </sect2>
+
+ <sect2 id="portscol">
+ <title>Εγκατάσταση της Συλλογής Ports</title>
+
+ <para>Μετά την επιλογή του επιθυμητού distribution set, θα έχετε την
+ ευκαιρία να εγκαταστήσετε την συλλογή ports του &os;. Η συλλογή ports
+ είναι μια εύκολη και βολική μέθοδος για να εγκαταστήσετε λογισμικό. Η
+ συλλογή των ports δεν περιέχει τον πηγαίο κώδικα που απαιτείται για να
+ μεταγλωττίσετε το λογισμικό. Απλά είναι μια συλλογή αρχείων που
+ αυτοματοποιεί το κατέβασμα, τη μεταγλώττιση και την εγκατάσταση
+ πακέτων λογισμικού τρίτου κατασκευαστή. Το <xref linkend="ports">
+ περιγράφει πως να χρησιμοποιήσετε την συλλογή των ports.</para>
+
+ <para>Το πρόγραμμα εγκατάστασης δεν ελέγχει αν υπάρχει αρκετός ελεύθερος
+ χώρος. Κάντε την επιλογή αυτή μόνο αν υπάρχει αρκετός χώρος. Από την
+ έκδοση του &os; &rel.current;, η συλλογή ports του &os; καταλαμβάνει
+ περίπου &ports.size; χώρο στο δίσκο. Μπορείτε με ασφάλεια να
+ θεωρήσετε ότι ο χώρος αυτός θα είναι μεγαλύτερος για πιο καινούριες
+ εκδόσεις του &os;.</para>
+
+ <screen> User Confirmation Requested
+ Would you like to install the FreeBSD ports collection?
+
+ This will give you ready access to over &os.numports; ported software packages,
+ at a cost of around &ports.size; of disk space when "clean" and possibly much
+ more than that if a lot of the distribution tarballs are loaded
+ (unless you have the extra CDs from a FreeBSD CD/DVD distribution
+ available and can mount it on /cdrom, in which case this is far less
+ of a problem).
+
+ The Ports Collection is a very valuable resource and well worth having
+ on your /usr partition, so it is advisable to say Yes to this option.
+
+ For more information on the Ports Collection &amp; the latest ports,
+ visit:
+ http://www.FreeBSD.org/ports
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέξτε &gui.yes; με τα βελάκια για να εγκαταστήσετε τη συλλογή
+ των ports ή &gui.no; για να την παραλείψετε. Πιέστε
+ <keycap>Enter</keycap> για να συνεχίσετε. Θα εμφανιστεί ξανά το μενού
+ Choose Distributions (επιλογής Σετ Εγκατάστασης).</para>
+
+ <figure id="distribution-set2">
+ <title>Επιβεβαίωση Distribution Set</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/dist-set2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αν είστε ικανοποιημένοι από τις επιλογές σας, επιλέξτε
+ <guimenuitem>Exit</guimenuitem> με τα βελάκια, επιβεβαιώστε ότι είναι
+ φωτισμένη η επιλογή &gui.ok; και πιέστε <keycap>Enter</keycap> για να
+ συνεχίσετε.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-media">
+ <title>Επιλέγοντας το Μέσο Εγκατάστασης</title>
+
+ <para>Αν εγκαθιστάτε από CDROM ή DVD, χρησιμοποιήστε τα βελάκια για να
+ φωτίσετε την επιλογή
+ <guimenuitem>Install from a FreeBSD CD/DVD</guimenuitem>. Βεβαιωθείτε
+ ότι είναι φωτισμένη η επιλογή &gui.ok; και πιέστε
+ <keycap>Enter</keycap> για να προχωρήσετε με την εγκατάσταση.</para>
+
+ <para>Για άλλες μεθόδους εγκατάστασης, κάντε την κατάλληλη επιλογή και
+ ακολουθήστε τις οδηγίες.</para>
+
+ <para>Πιέστε το <keycap>F1</keycap> για να δείτε την ενσωματωμένη βοήθεια
+ για τα μέσα εγκατάστασης. Πιέστε <keycap>Enter</keycap> για να
+ επιστρέψετε στο μενού επιλογής μέσου εγκατάστασης.</para>
+
+ <figure id="choose-media">
+ <title>Επιλέξτε Μέσο Εγκατάστασης (Installation Media)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/media" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <note>
+ <title>Τρόποι Εγκατάστασης μέσω FTP</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>network</secondary>
+ <tertiary>FTP</tertiary>
+ </indexterm>
+
+ <para>Υπάρχουν τρεις μέθοδοι εγκατάστασης μέσω FTP για να επιλέξετε:
+ ενεργό (Active) FTP, παθητικό (Passive) FTP, ή μέσω διακομιστή
+ μεσολάβησης (proxy) HTTP.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Ενεργό FTP: <guimenuitem>Install from an FTP
+ server</guimenuitem></term>
+
+ <listitem>
+ <para>Με την επιλογή αυτή οι μεταφορές γίνονται μέσω
+ <quote>Ενεργού (Active)</quote> FTP. Η επιλογή αυτή δεν θα
+ λειτουργήσει μέσω firewalls αλλά συχνά λειτουργεί με παλιότερους
+ διακομιστές FTP που δεν υποστηρίζουν παθητική μεταφορά. Αν η
+ σύνδεση σας κολλήσει με παθητικό FTP (το οποίο είναι η
+ προεπιλογή), δοκιμάστε το ενεργό!</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Παθητικό FTP: <guimenuitem>Install from an FTP server
+ through a firewall</guimenuitem></term>
+
+ <listitem>
+ <indexterm>
+ <primary>FTP</primary>
+ <secondary>passive mode</secondary>
+ </indexterm>
+
+ <para>H επιλογή αυτή οδηγεί το
+ <application>sysinstall</application> να χρησιμοποιήσει
+ <quote>Παθητική (Passive)</quote> μεταφορά για όλες τις FTP
+ λειτουργίες. Αυτό επιτρέπει στο χρήστη να περνάει μέσω
+ firewalls τα οποία δεν επιτρέπουν εισερχόμενες συνδέσεις σε
+ τυχαίες TCP πόρτες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>FTP μέσω HTTP μεσολάβησης:
+ <guimenuitem>Install from an FTP server
+ through a http proxy</guimenuitem></term>
+
+ <listitem>
+ <indexterm>
+ <primary>FTP</primary>
+ <secondary>via a HTTP proxy</secondary>
+ </indexterm>
+
+ <para>Η επιλογή αυτή οδηγεί το
+ <application>sysinstall</application> στη χρήση HTTP
+ πρωτοκόλλου (όπως οι φυλλομετρητές) για να συνδεθεί με ένα
+ διακομιστή μεσολάβησης για όλες τις λειτουργίες του FTP. Ο
+ διακομιστής μεσολάβησης αναλαμβάνει να μεταφράσει όλες τις
+ εντολές και να τις στείλει στον διακομιστή FTP. Αυτό επιτρέπει
+ στο χρήστη να περάσει μέσω firewalls που δεν επιτρέπουν
+ καθόλου FTP, αλλά προσφέρουν λειτουργία διαμεσολάβησης μέσω
+ HTTP. Στην περίπτωση αυτή πρέπει να ορίσετε εκτός από τον
+ διακομιστή FTP, και το διακομιστή μεσολάβησης.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Για διακομιστή μεσολάβησης FTP server, πρέπει συνήθως να δώσετε
+ το όνομα του διακομιστή με τον οποίο θέλετε στην πραγματικότητα να
+ συνδεθείτε, ως μέρος του username, μετά από το σύμβολο
+ <quote>@</quote>. Ο διακομιστής μεσολάβησης <quote>μιμείται</quote>
+ τότε τον πραγματικό διακομιστή. Για παράδειγμα, υποθέστε ότι θέλετε
+ να κάνετε εγκατάσταση από το
+ <hostid role="fqdn">ftp.FreeBSD.org</hostid>, χρησιμοποιώντας FTP
+ μεσολαβητή τον <hostid role="fqdn">foo.example.com</hostid>, ο οποίος
+ χρησιμοποιεί την πόρτα 1234.</para>
+
+ <para>Στην περίπτωση αυτή, πηγαίνετε στο μενού επιλογών (options),
+ θέτετε ως FTP username το <literal>ftp@ftp.FreeBSD.org</literal>,
+ και ως κωδικό (password) την διεύθυνση email σας. Σαν μέσο
+ εγκατάστασης (installation media) ορίζετε FTP (ή παθητικό FTP αν το
+ υποστηρίζει ο μεσολαβητής) και το URL
+ <literal>ftp://foo.example.com:1234/pub/FreeBSD</literal>.</para>
+
+ <para>Καθώς το <filename>/pub/FreeBSD</filename> από
+ <hostid role="fqdn">ftp.FreeBSD.org</hostid> γίνεται ορατό μέσω του
+ <hostid role="fqdn">foo.example.com</hostid>, μπορείτε να
+ εγκαταστήσετε από <emphasis>εκείνο</emphasis> το μηχάνημα (το οποίο θα
+ φέρει τα αρχεία από το <hostid role="fqdn">ftp.FreeBSD.org</hostid>
+ όπως απαιτούνται από την εγκατάσταση σας.<para>
+ </note>
+ </sect1>
+
+ <sect1 id="install-final-warning">
+ <title>Επιβεβαίωση της Εγκατάστασης</title>
+
+ <para>Η εγκατάσταση μπορεί τώρα να προχωρήσει, εφόσον το επιθυμείτε. Αυτή
+ είναι επίσης η τελευταία σας ευκαιρία να την ακυρώσετε εμποδίζοντας
+ έτσι και τις αλλαγές που πρόκειται να γίνουν στο σκληρό σας
+ δίσκο.</para>
+
+ <screen> User Confirmation Requested
+ Last Chance! Are you SURE you want to continue the installation?
+
+ If you're running this on a disk with data you wish to save then WE
+ STRONGLY ENCOURAGE YOU TO MAKE PROPER BACKUPS before proceeding!
+
+ We can take no responsibility for lost disk contents!
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέξτε &gui.yes; και πιέστε <keycap>Enter</keycap> για να
+ προχωρήσετε.</para>
+
+ <para>Ο χρόνος εγκατάστασης διαφέρει ανάλογα με το distribution set
+ που έχετε επιλέξει, το μέσο εγκατάστασης, και την ταχύτητα του
+ υπολογιστή σας. Θα δείτε μια σειρά από μηνύματα τα οποία δείχνουν την
+ κατάσταση της εγκατάστασης.</para>
+
+ <para>Η εγκατάσταση θα έχει ολοκληρωθεί όταν δείτε το ακόλουθο
+ μήνυμα:</para>
+
+ <screen> Message
+
+Congratulations! You now have FreeBSD installed on your system.
+
+We will now move on to the final configuration questions.
+For any option you do not wish to configure, simply select No.
+
+If you wish to re-enter this utility after the system is up, you may
+do so by typing: /usr/sbin/sysinstall.
+
+ [ OK ]
+
+ [ Press enter or space ]</screen>
+
+ <para>Πιέστε <keycap>Enter</keycap> για να προχωρήσετε με τις ρυθμίσεις
+ μετά την εγκατάσταση.</para>
+
+ <para>Αν επιλέξετε &gui.no; και πιέσετε <keycap>Enter</keycap> θα
+ ακυρώσετε την εγκατάσταση και δεν θα γίνει καμιά αλλαγή στο σύστημα
+ σας. Θα εμφανιστεί το ακόλουθο μήνυμα:</para>
+
+ <screen> Message
+Installation complete with some errors. You may wish to scroll
+through the debugging messages on VTY1 with the scroll-lock feature.
+You can also choose "No" at the next prompt and go back into the
+installation menus to retry whichever operations have failed.
+
+ [ OK ]</screen>
+
+ <para>Το μήνυμα αυτό εμφανίζεται επειδή δεν έγινε καμιά εγκατάσταση.
+ Πιέζοντας <keycap>Enter</keycap> θα επιστρέψετε στο Κυρίως Μενού
+ Εγκατάστασης (Main Installation Menu) για να βγείτε από την
+ εγκατάσταση.</para>
+ </sect1>
+
+ <sect1 id="install-post">
+ <title>Μετά την Εγκατάσταση</title>
+
+ <para>Μετά από μια επιτυχημένη εγκατάσταση, ακολουθεί η ρύθμιση διάφορων
+ προαιρετικών επιλογών. Οι ρυθμίσεις μπορούν να γίνουν αν εισέλθετε
+ ξανά στο αντίστοιχο μενού (configuration options) πριν επανεκκινήσετε
+ το νέο &os; σύστημα σας ή μετά την εγκατάσταση, χρησιμοποιώντας το
+ <command>sysinstall</command> και επιλέγοντας
+ <guimenuitem>Configure</guimenuitem>.</para>
+
+ <sect2 id="inst-network-dev">
+ <title>Ρύθμιση Συσκευών Δικτύου</title>
+
+ <para>Αν έχετε ρυθμίσει προηγουμένως το PPP για να κάνετε εγκατάσταση
+ μέσω FTP, η οθόνη αυτή δεν θα εμφανιστεί, αλλά μπορείτε να την
+ ρυθμίσετε αργότερα με τον τρόπο που περιγράψαμε παραπάνω.</para>
+
+ <para>Για λεπτομερείς πληροφορίες σχετικά με Τοπικά Δίκτυα (LAN) και
+ για ρύθμιση του &os; ως πύλη / δρομολογητή (gateway/router), ανατρέξτε
+ στο κεφάλαιο
+ <link linkend="advanced-networking">Advanced Networking</link>.</para>
+
+ <screen> User Confirmation Requested
+ Would you like to configure any Ethernet or PPP network devices?
+
+ [ Yes ] No</screen>
+
+ <para>Για να ρυθμίσετε μια συσκευή δικτύου, επιλέξτε
+ &gui.yes; και πιέστε <keycap>Enter</keycap>.
+ Διαφορετικά, επιλέξτε &gui.no; για να συνεχίσετε.</para>
+
+ <figure id="ed-config1">
+ <title>Επιλέγοντας μια Συσκευή Ethernet</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/ed0-conf" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε το interface που θα ρυθμίσετε με τα βελάκια, και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <screen> User Confirmation Requested
+ Do you want to try IPv6 configuration of the interface?
+
+ Yes [ No ]</screen>
+
+ <para>Στο συγκεκριμένο ιδιωτικό τοπικό δίκτυο, το τρέχον Internet
+ πρωτόκολλο (<acronym>IPv4</acronym>) ήταν αρκετό. Επιλέξαμε το
+ &gui.no; με τα βελάκια και πιέσαμε <keycap>Enter</keycap>.</para>
+
+ <para>Αν είστε συνδεμένοι σε ένα υπάρχον <acronym>IPv6</acronym> δίκτυο
+ με ένα διακομιστή <acronym>RA</acronym>, επιλέξτε &gui.yes; και πιέστε
+ <keycap>Enter</keycap>. Θα χρειαστούν αρκετά δευτερόλεπτα για την
+ ανίχνευση διακομιστών RA.</para>
+
+ <screen> User Confirmation Requested
+ Do you want to try DHCP configuration of the interface?
+
+ Yes [ No ]</screen>
+
+ <para>Αν δεν χρειάζεστε DHCP (Πρωτόκολλο Δυναμικής Απόδοσης Ρυθμίσεων,
+ Dynamic Host Configuration Protocol) επιλέξτε &gui.no; με τα βελάκια
+ και πιέστε <keycap>Enter</keycap>.</para>
+
+ <para>Αν επιλέξετε &gui.yes; θα εκτελεστεί η εφαρμογή
+ <application>dhclient</application>, και αν είναι επιτυχής, θα γίνει
+ αυτόματη ρύθμιση των παραμέτρων του δικτύου. Ανατρέξτε στο
+ <xref linkend="network-dhcp"> για περισσότερες πληροφορίες.</para>
+
+ <para>Η ακόλουθη οθόνη Ρυθμίσεων Δικτύου δείχνει τη ρύθμιση μιας
+ συσκευής Ethernet για ένα σύστημα το οποίο θα λειτουργεί ως πύλη για
+ ένα Τοπικό Δίκτυο (LAN).</para>
+
+ <figure id="ed-config2">
+ <title>Ρύθμιση Παραμέτρων Συσκευής ed0</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/ed0-conf2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Χρησιμοποιήστε το <keycap>Tab</keycap> για να επιλέξετε ανάμεσα
+ στα διάφορα πεδία και να συμπληρώσετε τις κατάλληλες
+ πληροφορίες.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Host (Όνομα μηχανήματος)</term>
+
+ <listitem>
+ <para>Το πλήρες όνομα του μηχανήματος, π.χ.
+ <hostid role="fqdn">k6-2.example.com</hostid> σε αυτή την
+ περίπτωση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Domain (Τομέας)</term>
+
+ <listitem>
+ <para>Το όνομα του τομέα στον οποίο βρίσκεται το μηχάνημα, όπως
+ <hostid role="domainname">example.com</hostid> σε αυτή την
+ περίπτωση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>IPv4 Gateway (Πύλη)</term>
+
+ <listitem>
+ <para>Πρόκειται για την διεύθυνση IP στην οποία προωθούνται τα
+ πακέτα τα οποία δεν προορίζονται για τοπικούς προορισμούς. Θα
+ πρέπει να συμπληρώσετε το πεδίο αυτό αν ο υπολογιστής είναι
+ κόμβος στο συγκεκριμένο δίκτυο.
+ <emphasis>Αφήστε αυτό το πεδίο κενό</emphasis> αν ο υπολογιστής
+ είναι η πύλη για το Internet στο συγκεκριμένο δίκτυο. Η πύλη
+ IPv4 είναι επίσης γνωστή ως προεπιλεγμένη πύλη ή προεπιλεγμένη
+ διαδρομή (default gateway / default route).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Name server (Διακομιστής Ονομάτων)</term>
+
+ <listitem>
+ <para>Είναι η IP διεύθυνση του τοπικού σας διακομιστή DNS. Στο
+ συγκεκριμένο ιδιωτικό τοπικό δίκτυο, δεν υπάρχει διακομιστής DNS
+ και έτσι χρησιμοποιήθηκε η IP διεύθυνση του διακομιστή DNS που
+ δίνει ο παροχέας Internet
+ (<hostid role="ipaddr">208.163.10.2</hostid>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>IPv4 address (Διεύθυνση)</term>
+
+ <listitem>
+ <para>Η IP διεύθυνση που θα χρησιμοποιηθεί σε αυτό το
+ interface είναι
+ <hostid role="ipaddr">192.168.0.1</hostid></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Netmask (Μάσκα Υποδικτύου)</term>
+
+ <listitem>
+ <para>Το μπλοκ διευθύνσεων που χρησιμοποιούνται σε αυτό το δίκτυο
+ είναι
+ <hostid role="ipaddr">192.168.0.0</hostid> -
+ <hostid role="ipaddr">192.168.0.255</hostid>
+ με μάσκα υποδικτύου (netmask)
+ <hostid role="netmask">255.255.255.0</hostid>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Extra options to ifconfig
+ (Επιπλέον επιλογές για την ifconfig)</term>
+
+ <listitem>
+ <para>Προσθέστε εδώ επιπλέον επιλογές για την
+ <command>ifconfig</command> και το συγκεκριμένο interface. Στην
+ συγκεκριμένη περίπτωση δεν υπάρχει καμία.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Χρησιμοποιήστε το <keycap>Tab</keycap> για να επιλέξετε &gui.ok;
+ όταν τελειώσετε, και πιέστε <keycap>Enter</keycap>.</para>
+
+
+ <screen> User Confirmation Requested
+ Would you like to bring the ed0 interface up right now?
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέγοντας &gui.yes; και πιέζοντας
+ <keycap>Enter</keycap> θα ενεργοποιήσετε το δίκτυο, έτοιμο προς χρήση
+ στο μηχάνημα σας. Ωστόσο αυτό δεν επιτυγχάνει και πολλά κατά τη
+ διάρκεια της εγκατάστασης, ούτως ή άλλως θα χρειαστεί να κάνετε
+ επανεκκίνηση.</para>
+ </sect2>
+
+ <sect2 id="gateway">
+ <title>Ρύθμισης Πύλης (Gateway)</title>
+
+ <screen> User Confirmation Requested
+ Do you want this machine to function as a network gateway?
+
+ [ Yes ] No</screen>
+
+ <para>Αν το μηχάνημα πρόκειται να λειτουργεί ως πύλη για ένα τόπικο
+ δίκτυο και να προωθεί πακέτα μεταξύ άλλων μηχανημάτων, επιλέξτε
+ &gui.yes; και πιέστε <keycap>Enter</keycap>.
+ Αν το μηχάνημα είναι ένας κόμβος του δικτύου, επιλέξτε &gui.no; και
+ πιέστε <keycap>Enter</keycap>.</para>
+ </sect2>
+
+ <sect2 id="inetd-services">
+ <title>Ρύθμιση Υπηρεσιών Internet (Internet Services)</title>
+
+ <screen> User Confirmation Requested
+Do you want to configure inetd and the network services that it provides?
+
+ Yes [ No ]</screen>
+
+ <para>Αν επιλέξετε &gui.no;, κάποιες υπηρεσίες όπως το
+ <application>telnetd</application> δεν θα ενεργοποιηθούν.
+ Αυτό σημαίνει ότι απομακρυσμένοι χρήστες δεν θα μπορούν να
+ χρησιμοποιήσουν το <application>telnet</application> για να εισέλθουν
+ στο μηχάνημα. Οι τοπικοί χρήστες θα μπορούν ωστόσο να έχουν πρόσβαση
+ σε απομακρυσμένα μηχανήματα μέσω του
+ <application>telnet</application>.</para>
+
+ <para>Οι υπηρεσίες αυτές μπορούν να ενεργοποιηθούν μετά την εγκατάσταση
+ με την επεξεργασία του αρχείου <filename>/etc/inetd.conf</filename>
+ με τον προτιμώμενο σας επεξεργαστή κειμένου.
+ Δείτε το <xref linkend="network-inetd-overview"> για περισσότερες
+ πληροφορίες.</para>
+
+ <para>Επιλέξτε &gui.yes; αν θέλετε να ρυθμίσετε τις υπηρεσίες αυτές
+ κατά την εγκατάσταση. Θα ερωτηθείτε για μια ακόμα επιβεβαίωση:</para>
+
+ <screen> User Confirmation Requested
+The Internet Super Server (inetd) allows a number of simple Internet
+services to be enabled, including finger, ftp and telnetd. Enabling
+these services may increase risk of security problems by increasing
+the exposure of your system.
+
+With this in mind, do you wish to enable inetd?
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέξτε &gui.yes; για να συνεχίσετε.</para>
+
+ <screen> User Confirmation Requested
+inetd(8) relies on its configuration file, /etc/inetd.conf, to determine
+which of its Internet services will be available. The default FreeBSD
+inetd.conf(5) leaves all services disabled by default, so they must be
+specifically enabled in the configuration file before they will
+function, even once inetd(8) is enabled. Note that services for
+IPv6 must be separately enabled from IPv4 services.
+
+Select [Yes] now to invoke an editor on /etc/inetd.conf, or [No] to
+use the current settings.
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέγοντας &gui.yes; θα μπορέσετε να προσθέσετε υπηρεσίες
+ σβήνοντας το <literal>#</literal> από την αρχή μιας γραμμής.</para>
+
+ <figure id="inetd-edit">
+ <title>Επεξεργασία του <filename>inetd.conf</filename></title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/edit-inetd-conf" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μετά την προσθήκη των επιθυμητών υπηρεσιών, και με την πίεση του
+ <keycap>Esc</keycap> θα εμφανιστεί ένα μενού το οποίο σας επιτρέπει να
+ βγείτε από το πρόγραμμα, αποθηκεύοντας και τις αλλαγές σας.</para>
+ </sect2>
+
+ <sect2 id="ssh-login">
+ <title>Ενεργοποίηση Εισόδου μέσω SSH</title>
+
+ <indexterm>
+ <primary>SSH</primary>
+ <secondary>sshd</secondary>
+ </indexterm>
+
+ <screen> User Confirmation Requested
+ Would you like to enable SSH login?
+ Yes [ No ]</screen>
+
+ <para>Αν επιλέξετε &gui.yes; θα ενεργοποιηθεί ο &man.sshd.8;,
+ ο δαίμονας του <application>OpenSSH</application>. Με τον τρόπο αυτό
+ θα επιτρέψετε ασφαλή απομακρυσμένη πρόσβαση στο μηχάνημα σας. Για
+ περισσότερες πληροφορίες σχετικά με το
+ <application>OpenSSH</application> δείτε το
+ <xref linkend="openssh">.</para>
+ </sect2>
+
+ <sect2 id="ftpanon">
+ <title>Ανώνυμο FTP</title>
+
+ <indexterm>
+ <primary>FTP</primary>
+ <secondary>anonymous</secondary>
+ </indexterm>
+
+ <screen> User Confirmation Requested
+ Do you want to have anonymous FTP access to this machine?
+
+ Yes [ No ]</screen>
+
+ <sect3 id="deny-anon">
+ <title>Άρνηση Ανώνυμου FTP</title>
+
+ <para>Επιλέγοντας το προεπιλεγμένο &gui.no; και πιέζοντας
+ <keycap>Enter</keycap> θα επιτρέπεται μόνος στους χρήστες που έχουν
+ λογαριασμούς με κωδικούς να έχουν FTP πρόσβαση στο μηχάνημα.</para>
+ </sect3>
+
+ <sect3 id="ftpallow">
+ <title>Επιτρέποντας το Ανώνυμο FTP</title>
+
+ <para>Οποιοσδήποτε μπορεί να έχει πρόσβαση στο μηχάνημα σας, αν
+ επιλέξετε να επιτρέψετε τις ανώνυμες συνδέσεις FTP. Θα πρέπει να
+ λάβετε υπόψιν σας τις επιπλοκές ασφαλείας που θα επιφέρει μια τέτοια
+ ρύθμιση. Για περισσότερες πληροφορίες σχετικά με την ασφάλεια,
+ δείτε το <xref linkend="security">.</para>
+
+ <para>Για να επιτρέψετε το ανώνυμο FTP, χρησιμοποιήστε τα βελάκια για
+ να επιλέξετε &gui.yes; και να πιέσετε <keycap>Enter</keycap>.
+ Θα χρειαστεί να επιβεβαιώσετε ξανά την επιλογή σας:</para>
+
+ <screen> User Confirmation Requested
+ Anonymous FTP permits un-authenticated users to connect to the system
+ FTP server, if FTP service is enabled. Anonymous users are
+ restricted to a specific subset of the file system, and the default
+ configuration provides a drop-box incoming directory to which uploads
+ are permitted. You must separately enable both inetd(8), and enable
+ ftpd(8) in inetd.conf(5) for FTP services to be available. If you
+ did not do so earlier, you will have the opportunity to enable inetd(8)
+ again later.
+
+ If you want the server to be read-only you should leave the upload
+ directory option empty and add the -r command-line option to ftpd(8)
+ in inetd.conf(5)
+
+ Do you wish to continue configuring anonymous FTP?
+
+ [ Yes ] No</screen>
+
+ <para>Το μήνυμα αυτό σας ειδοποιεί επίσης ότι η υπηρεσία FTP θα
+ πρέπει επίσης να ενεργοποιηθεί στο
+ <filename>/etc/inetd.conf</filename> σε περίπτωση που θέλετε να
+ ενεργοποιηθούν οι ανώνυμες συνδέσεις FTP (δείτε το
+ <xref linkend="inetd-services">). Επιλέξτε &gui.yes; και πιέστε
+ <keycap>Enter</keycap> για να συνεχίσετε. Θα δείτε την ακόλουθη
+ οθόνη:</para>
+
+ <figure id="anon-ftp2">
+ <title>Προεπιλεγμένες Ρυθμίσεις Ανώνυμου FTP</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/ftp-anon1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Χρησιμοποιήστε το <keycap>Tab</keycap> για να επιλέξετε και να
+ συμπληρώσετε τα απαραίτητα πεδία πληροφοριών:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>UID</term>
+
+ <listitem>
+ <para>Ο αναγνωριστικός αριθμός (user ID) που θέλετε να
+ αποδώσετε στον ανώνυμο FTP χρήστη. Όλα τα αρχεία που θα
+ ανεβαίνουν στον διακομιστή FTP θα ανήκουν σε αυτό
+ το ID.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Group</term>
+
+ <listitem>
+ <para>Σε ποια ομάδα χρηστών (group) θέλετε να ανήκει ο ανώνυμος
+ FTP χρήστης.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Comment</term>
+
+ <listitem>
+ <para>Κείμενο που περιέχει περιγραφή του χρήστη στο αρχείο
+ <filename>/etc/passwd</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>FTP Root Directory</term>
+
+ <listitem>
+ <para>Η τοποθεσία που περιέχει τα αρχεία που είναι διαθέσιμα
+ στο ανώνυμο FTP.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Upload Subdirectory</term>
+
+ <listitem>
+ <para>Η τοποθεσία που θα ανεβαίνουν τα αρχεία από ανώνυμους FTP
+ χρήστες.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Ο ριζικός (root) κατάλογος του FTP, από προεπιλογή,
+ δημιουργείται στο <filename>/var</filename>. Αν δεν υπάρχει εκεί
+ αρκετός χώρος για την αναμενόμενη χρήση του FTP, μπορείτε να
+ χρησιμοποιήσετε τον κατάλογο <filename>/usr</filename> αλλάζοντας
+ τον ριζικό κατάλογο (FTP Root Directory) σε
+ <filename>/usr/ftp</filename>.</para>
+
+ <para>Όταν είστε ικανοποιημένος με τις τιμές, πιέστε
+ <keycap>Enter</keycap> για να συνεχίσετε.</para>
+
+ <screen> User Confirmation Requested
+ Create a welcome message file for anonymous FTP users?
+
+ [ Yes ] No</screen>
+
+ <para>Αν επιλέξετε &gui.yes; και πιέσετε
+ <keycap>Enter</keycap>, θα ξεκινήσει αυτόματα ένας επεξεργαστής
+ κειμένου ώστε να μπορέσετε να επεξεργαστείτε το μήνυμα.</para>
+
+ <figure id="anon-ftp4">
+ <title>Επεξεργασία του Μηνύματος Καλοσωρίσματος (Welcome Message)
+ του FTP</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/ftp-anon2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Πρόκειται για τον επεξεργαστή κειμένου <command>ee</command>.
+ Χρησιμοποιήστε τις οδηγίες για να αλλάξετε το μήνυμα ή αν θέλετε
+ αλλάξτε το μήνυμα αργότερα, χρησιμοποιώντας ένα επεξεργαστή κειμένου
+ της επιλογής σας. Δείτε το όνομα του αρχείου και τη θέση του στην
+ τελευταία γραμμή της οθόνης του επεξεργαστή κειμένου.</para>
+
+ <para>Πιέζοντας <keycap>Esc</keycap> θα εμφανιστεί ένα αναδυόμενο
+ μενού με προεπιλεγμένη την επιλογή
+ <guimenuitem>a) leave editor</guimenuitem>. Πιέστε
+ <keycap>Enter</keycap> για έξοδο και συνέχεια. Πιέστε ξανά
+ <keycap>Enter</keycap> για να αποθηκεύσετε τυχόν αλλαγές που έχετε
+ κάνει.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="nfsconf">
+ <title>Ρύθμιση Συστήματος Αρχείων Δικτύου (Network File System)</title>
+
+ <para>Το Σύστημα Αρχείων Δικτύου (NFS) επιτρέπει το διαμοιρασμό αρχείων
+ σε ένα δίκτυο. Ένα μηχάνημα μπορεί να ρυθμιστεί ως εξυπηρετητής,
+ πελάτης ή και τα δύο. Ανατρέξτε στο
+ <xref linkend="network-nfs"> για περισσότερες πληροφορίες.</para>
+
+ <sect3 id="nsf-server-options">
+ <title>Διακομιστής NFS</title>
+
+ <screen> User Confirmation Requested
+ Do you want to configure this machine as an NFS server?
+
+ Yes [ No ]</screen>
+
+ <para>Αν δεν υπάρχει ανάγκη για εξυπηρετητή Συστήματος Αρχείων
+ Δικτύου, επιλέξτε &gui.no; και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <para>Αν επιλέξετε &gui.yes; θα εμφανιστεί ένα αναδυόμενο μήνυμα
+ που σας πληροφορεί ότι πρέπει να δημιουργηθεί το αρχείο
+ <filename>exports</filename>.</para>
+
+ <screen> Message
+Operating as an NFS server means that you must first configure an
+/etc/exports file to indicate which hosts are allowed certain kinds of
+access to your local filesystems.
+Press [Enter] now to invoke an editor on /etc/exports
+ [ OK ]</screen>
+
+ <para>Πιέστε <keycap>Enter</keycap> για να συνεχίσετε. Θα ανοίξει
+ ένας επεξεργαστής κειμένου για να μπορέσετε να δημιουργήσετε και να
+ επεξεργαστείτε το αρχείο <filename>exports</filename>.</para>
+
+ <figure id="nfs-server-edit">
+ <title>Επεξεργασία Αρχείου <filename>exports</filename></title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/nfs-server-edit" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Χρησιμοποιήστε τις οδηγίες για να προσθέσετε τα συστήματα
+ αρχείων που θέλετε να διαμοιράσετε, τώρα ή αργότερα χρησιμοποιώντας
+ ένα επεξεργαστή κειμένου της επιλογής σας. Σημειώστε το όνομα και
+ την τοποθεσία του αρχείου όπως φαίνονται στο κάτω μέρος
+ της οθόνης.</para>
+
+ <para>Πιέζοντας <keycap>Esc</keycap> θα εμφανιστεί ένα αναδυόμενο
+ μενού με προεπιλεγμένη την επιλογή
+ <guimenuitem>a) leave editor</guimenuitem>. Πιέστε
+ <keycap>Enter</keycap> για έξοδο και συνέχεια.</para>
+ </sect3>
+
+ <sect3 id="nfs-client-options">
+ <title>Πελάτης NFS</title>
+
+ <para>Ο πελάτης NFS επιτρέπει στο μηχάνημα σας να έχει πρόσβαση σε
+ εξυπηρετητές NFS.</para>
+
+ <screen> User Confirmation Requested
+ Do you want to configure this machine as an NFS client?
+
+ Yes [ No ]</screen>
+
+ <para>Με τα βελάκια, επιλέξτε κατά βούληση &gui.yes; ή &gui.no; και
+ πιέστε <keycap>Enter</keycap>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="console">
+ <title>Ρυθμίσεις Κονσόλας (System Console Settings)</title>
+
+ <para>Υπάρχουν διάφορες διαθέσιμες επιλογές για τη ρύθμιση της κονσόλας
+ του συστήματος.</para>
+
+ <screen> User Confirmation Requested
+ Would you like to customize your system console settings?
+
+ [ Yes ] No</screen>
+
+ <para>Για να δείτε και να ρυθμίσετε τις επιλογές, επιλέξτε &gui.yes; και
+ πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="saver-options">
+ <title>Επιλογές Ρύθμισης Κονσόλας Συστήματος</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/console-saver1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μια συνηθισμένη επιλογή είναι η προστασία οθόνης (screen saver).
+ Χρησιμοποιήστε τα βελάκια για να επιλέξετε
+ <guimenuitem>Saver</guimenuitem> και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="saver-select">
+ <title>Επιλογές Προστασίας Οθόνης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/console-saver2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε την επιθυμητή προστασία οθόνης με τα βελάκια, και πιέστε
+ <keycap>Enter</keycap>. Θα ξαναδείτε το μενού Ρύθμισης Κονσόλας
+ Συστήματος.</para>
+
+ <para>Το προεπιλεγμένο χρονικό διάστημα είναι 300 δευτερόλεπτα. Για να
+ αλλάξετε το διάστημα, επιλέξτε ξανά <guimenuitem>Saver</guimenuitem>
+ και από το μενού Screen Saver Options επιλέξτε
+ <guimenuitem>Timeout</guimenuitem> με τα βελάκια, και πιέστε
+ <keycap>Enter</keycap>. Θα εμφανιστεί ένα αναδυόμενο μενού:</para>
+
+ <figure id="saver-timeout">
+ <title>Χρονικό Διάστημα Προστασίας Οθόνης</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/console-saver3" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Αλλάξτε την τιμή, επιλέξτε &gui.ok;
+ και πιέστε <keycap>Enter</keycap> για να επιστρέψετε στο μενού
+ Ρύθμισης Κονσόλας Συστήματος.</para>
+
+ <figure id="saver-exit">
+ <title>Έξοδος από τις Ρυθμίσεις Κονσόλας Συστήματος</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/console-saver4" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέγοντας <guimenuitem>Exit</guimenuitem> και πιέζοντας
+ <keycap>Enter</keycap> θα συνεχίσετε με τις υπόλοιπες ρυθμίσεις που
+ πρέπει να γίνουν μετά την εγκατάσταση.</para>
+ </sect2>
+
+ <sect2 id="timezone">
+ <title>Ρύθμιση Ζώνης Ώρας (Time Zone)</title>
+
+ <para>Η σωστή ρύθμιση της ζώνης ώρας, θα επιτρέψει στο μηχάνημα σας να
+ διορθώνει αυτόματα την ώρα σύμφωνα με τις τοπικές ρυθμίσεις, καθώς και
+ να εκτελεί άλλες λειτουργίες που σχετίζονται με τις ζώνες ώρας.</para>
+
+ <para>Το παράδειγμα που φαίνεται είναι για ένα μηχάνημα που βρίσκεται
+ στις Ανατολικές Ηνωμένες Πολιτείες. Οι επιλογές σας θα διαφέρουν
+ ανάλογα με τη γεωγραφική σας θέση.</para>
+
+ <screen> User Confirmation Requested
+ Would you like to set this machine's time zone now?
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέξτε &gui.yes; και πιέστε
+ <keycap>Enter</keycap> για να ρυθμίσετε τη ζώνη ώρας.</para>
+
+ <screen> User Confirmation Requested
+ Is this machine's CMOS clock set to UTC? If it is set to local time
+ or you don't know, please choose NO here!
+
+ Yes [ No ]</screen>
+
+ <para>Επιλέξτε &gui.yes; ή &gui.no; ανάλογα με το πως είναι ρυθμισμένο
+ το ρολόι στο μηχάνημα σας και πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="set-timezone-region">
+ <title>Επιλογή της Περιοχής σας</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/timezone1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε την κατάλληλη περιοχή (region) με τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="set-timezone-country">
+ <title>Επιλογή της Χώρας σας</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/timezone2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε την κατάλληλη χώρα χρησιμοποιώντας τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="set-timezone-locality">
+ <title>Επιλογή Ζώνης Ώρας (Time Zone)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/timezone3" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε την κατάλληλη ζώνη ώρας με τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <screen> Confirmation
+ Does the abbreviation 'EDT' look reasonable?
+
+ [ Yes ] No</screen>
+
+ <para>Επιβεβαιώστε ότι είναι σωστή η συντομογραφία για τη ζώνη ώρας που
+ έχετε επιλέξει. Αν φαίνεται εντάξει, πιέστε <keycap>Enter</keycap>
+ για να συνεχίσετε με τις υπόλοιπες ρυθμίσεις μετά την
+ εγκατάσταση.</para>
+ </sect2>
+
+ <sect2 id="linuxcomp">
+ <title>Συμβατότητα με το Linux (Linux Compatibility)</title>
+
+ <note>
+ <para>Η ενότητα αυτή ισχύει μόνο για την εγκατάσταση &os; της σειράς
+ 7.<replaceable>X</replaceable>. Αν εγκαταστήσετε
+ &os;&nbsp;8.<replaceable>X</replaceable> η οθόνη αυτή δεν θα
+ εμφανιστεί.</para>
+ </note>
+
+ <screen> User Confirmation Requested
+ Would you like to enable Linux binary compatibility?
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέγοντας &gui.yes; και πιέζοντας
+ <keycap>Enter</keycap> θα επιτρέψετε την εκτέλεση προγραμμάτων Linux
+ στο &os;. Η εγκατάσταση θα προσθέσει όλα τα απαραίτητα πακέτα
+ για τη συμβατότητα με εκτελέσιμα προγράμματα για Linux.</para>
+
+ <para>Αν κάνετε εγκατάσταση μέσω FTP, το μηχάνημα θα πρέπει να είναι
+ συνδεμένο στο Internet. Μερικές φορές, μια τοποθεσία FTP δεν έχει
+ όλες τις απαιτούμενες διανομές, όπως τη συμβατότητα με το Linux.
+ Μπορείτε ωστόσο να την εγκαταστήσετε αργότερα, αν χρειάζεται.</para>
+ </sect2>
+
+ <sect2 id="mouse">
+ <title>Ρυθμίσεις Ποντικιού (Mouse Settings)</title>
+
+ <para>Η επιλογή αυτή θα σας επιτρέψει να κάνετε αποκοπή και επικόλληση
+ κειμένου στην κονσόλα και σε προγράμματα χρησιμοποιώντας ένα ποντίκι
+ τριών πλήκτρων. Αν χρησιμοποιείτε ποντίκι δύο πλήκτρων, ανατρέξτε στη
+ σελίδα βοήθειας, &man.moused.8;, μετά την εγκατάσταση για να δείτε πως
+ μπορείτε να εξομοιώσετε ποντίκι τριών πλήκτρων. Στο παράδειγμα αυτό
+ φαίνεται η ρύθμιση ενός μη-USB ποντικιού (π.χ. PS/2 η σειριακού - COM
+ - ποντικιού):</para>
+
+ <screen> User Confirmation Requested
+ Does this system have a non-USB mouse attached to it?
+
+ [ Yes ] No </screen>
+
+ <para>Επιλέξτε &gui.yes; για μη-USB ποντίκι, ή
+ &gui.no; για USB ποντίκι και πιέστε <keycap>Enter</keycap>.</para>
+
+ <figure id="mouse-protocol">
+ <title>Επιλογή Πρωτοκόλλου Ποντικιού (Mouse Protocol Type)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mouse1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Χρησιμοποιήστε τα βελάκια για να επιλέξετε
+ <guimenuitem>Type</guimenuitem> και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="set-mouse-protocol">
+ <title>Επιλογή Πρωτοκόλλου Ποντικιού (Mouse Protocol)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mouse2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το ποντίκι που χρησιμοποιείται σε αυτό το παράδειγμα, είναι τύπου
+ PS/2, και έτσι είναι σωστή η προεπιλεγμένη ρύθμιση
+ <guimenuitem>Auto</guimenuitem>. Για να αλλάξετε πρωτόκολλο,
+ χρησιμοποιήστε τα βελάκια για να κάνετε κάποια άλλη επιλογή.
+ Βεβαιωθείτε ότι είναι φωτισμένη η επιλογή &gui.ok; και πιέστε
+ <keycap>Enter</keycap> για έξοδο από αυτό το μενού.</para>
+
+ <figure id="config-mouse-port">
+ <title>Ρύθμιση Πόρτας Ποντικιού (Mouse Port)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mouse3" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Χρησιμοποιήστε τα βελάκια για να επιλέξετε
+ <guimenuitem>Port</guimenuitem> και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="set-mouse-port">
+ <title>Ρύθμιση Πόρτας Ποντικιού (Mouse Port)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mouse4" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το σύστημα αυτό είχε ποντίκι PS/2 και έτσι ήταν κατάλληλη η
+ προεπιλεγμένη ρύθμιση <guimenuitem>PS/2</guimenuitem>. Για να
+ αλλάξετε την πόρτα, χρησιμοποιήστε τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="test-daemon">
+ <title>Ενεργοποίηση του Δαίμονα Ποντικιού (Mouse Daemon)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mouse5" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Τέλος, χρησιμοποιήστε τα βελάκια για να επιλέξετε
+ <guimenuitem>Enable</guimenuitem>, και πιέστε
+ <keycap>Enter</keycap> για να ενεργοποιήσετε και να δοκιμάσετε τον
+ δαίμονα του ποντικιού (mouse daemon).</para>
+
+
+ <figure id="test-mouse-daemon">
+ <title>Έλεγχος του Δαίμονα Ποντικιού</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mouse6" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μετακινήστε το ποντίκι στην οθόνη και βεβαιωθείτε ότι ο δρομέας
+ αντιδρά σωστά. Αν είναι εντάξει, επιλέξτε &gui.yes; και πιέστε
+ <keycap>Enter</keycap>. Αν όχι, το ποντίκι δεν έχει ρυθμιστεί σωστά
+ &mdash; επιλέξτε &gui.no; και ξαναδοκιμάστε χρησιμοποιώντας
+ διαφορετικές ρυθμίσεις.</para>
+
+ <para>Επιλέξτε <guimenuitem>Exit</guimenuitem> με τα βελάκια και πιέστε
+ <keycap>Enter</keycap> για να επιστρέψετε, ώστε να συνεχίσετε με τις
+ υπόλοιπες ρυθμίσεις μετά την εγκατάσταση.</para>
+ </sect2>
+
+ <sect2 id="packages">
+ <title>Εγκατάσταση Πακέτων</title>
+
+ <para>Τα πακέτα είναι προμεταγλωττισμένα εκτελέσιμα, και αποτελούν ένα
+ βολικό τρόπο για να εγκαταστήσετε λογισμικό.</para>
+
+ <para>Θα σας δείξουμε την εγκατάσταση ενός πακέτου ως παράδειγμα.
+ Μπορείτε επίσης να εγκαταστήσετε τώρα και όποια άλλα πρόσθετα πακέτα
+ επιθυμείτε. Μετά την εγκατάσταση, μπορείτε να χρησιμοποιήσετε το
+ <command>sysinstall</command> για να εγκαταστήσετε πρόσθετα
+ πακέτα.</para>
+
+ <screen> User Confirmation Requested
+ The FreeBSD package collection is a collection of hundreds of
+ ready-to-run applications, from text editors to games to WEB servers
+ and more. Would you like to browse the collection now?
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέγοντας &gui.yes; και πιέζοντας
+ <keycap>Enter</keycap> θα δείτε τις οθόνες επιλογής πακέτων:</para>
+
+ <figure id="package-category">
+ <title>Επιλογή Κατηγορίας Πακέτου</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/pkg-cat" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μπορείτε κάθε δεδομένη στιγμή να εγκαταστήσετε μόνο τα πακέτα που
+ είναι διαθέσιμα στο τρέχον μέσο εγκατάστασης.</para>
+
+ <para>Με την επιλογή <guimenuitem>All</guimenuitem> θα δείτε όλα τα
+ διαθέσιμα πακέτα, ή μπορείτε να επιλέξετε συγκεκριμένη κατηγορία.
+ Φωτίστε την επιλογή σας με τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <para>Θα εμφανιστεί ένα μενού το οποίο δείχνει όλα διαθέσιμα πακέτα για
+ την επιλογή που κάνατε:</para>
+
+ <figure id="package-select">
+ <title>Επιλογή Πακέτων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/pkg-sel" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Το κέλυφος (shell) <application>bash</application> φαίνεται
+ επιλεγμένο. Επιλέξτε όσα πακέτα επιθυμείτε, φωτίζοντας το πακέτο
+ και πιέζοντας το πλήκτρο <keycap>Space</keycap>. Θα δείτε μια σύντομη
+ περιγραφή για κάθε πακέτο στο κάτω αριστερό μέρος της οθόνης.</para>
+
+ <para>Η πίεση του πλήκτρου <keycap>Tab</keycap> εναλλάσσει μεταξύ του
+ τελευταίου επιλεγμένου πακέτου, του &gui.ok;, και του
+ &gui.cancel;.</para>
+
+ <para>Όταν έχετε τελειώσει με το μαρκάρισμα των πακέτων προς
+ εγκατάσταση, πιέστε μια φορά <keycap>Tab</keycap> για να
+ μετακινηθείτε στο &gui.ok; και πιέστε <keycap>Enter</keycap> για να
+ επιστρέψετε στο μενού Επιλογής Πακέτων (Package Selection).</para>
+
+ <para>Το αριστερό και δεξί βελάκι εναλλάσσει επίσης μεταξύ του &gui.ok;
+ και του &gui.cancel;. Μπορείτε να χρησιμοποιήσετε αυτή τη μέθοδο για
+ να επιλέξετε &gui.ok; και πιέστε <keycap>Enter</keycap> για να
+ επιστρέψετε στο μενού Επιλογής Πακέτων.</para>
+
+ <figure id="package-install">
+ <title>Εγκατάσταση Πακέτων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/pkg-install" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Χρησιμοποιήστε το <keycap>Tab</keycap> και τα βελάκια για να
+ επιλέξετε <guibutton>[&nbsp;Install&nbsp;]</guibutton> και πιέστε
+ <keycap>Enter</keycap>. Θα χρειαστεί να επιβεβαιώσετε ότι θέλετε να
+ εγκαταστήσετε τα πακέτα:</para>
+
+ <figure id="package-install-confirm">
+ <title>Επιβεβαίωση Εγκατάστασης Πακέτων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/pkg-confirm" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέγοντας &gui.ok; και πιέζοντας <keycap>Enter</keycap> θα
+ ξεκινήσει η εγκατάσταση πακέτων. Θα βλέπετε μηνύματα της εγκατάστασης
+ μέχρι την ολοκλήρωση της. Σημειώστε τυχόν μηνύματα λάθους που
+ εμφανίζονται.</para>
+
+ <para>Η τελική ρύθμιση συνεχίζεται μετά την εγκατάσταση των πακέτων. Αν
+ καταλήξετε να μην εγκαταστήσετε κανένα πακέτο, και επιθυμείτε να
+ επιστρέψετε στην τελική ρύθμιση, επιλέξτε
+ <guibutton>Install</guibutton> ούτως ή άλλως.</para>
+ </sect2>
+
+ <sect2 id="addusers">
+ <title>Προσθήκη Χρηστών / Ομάδων (Users/Groups)</title>
+
+ <para>Θα πρέπει να προσθέσετε τουλάχιστον ένα χρήστη κατά τη διάρκεια
+ της εγκατάστασης, ώστε να μπορείτε να χρησιμοποιήσετε το σύστημα χωρίς
+ να εισέρχεστε ως <username>root</username>. Η root κατάτμηση είναι
+ γενικά μικρή, και εκτελώντας εφαρμογές ως <username>root</username>
+ μπορεί γρήγορα να γεμίσει. Παρακάτω φαίνεται και ένας πιο σοβαρός
+ κίνδυνος:</para>
+
+ <screen> User Confirmation Requested
+ Would you like to add any initial user accounts to the system? Adding
+ at least one account for yourself at this stage is suggested since
+ working as the "root" user is dangerous (it is easy to do things which
+ adversely affect the entire system).
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέξτε &gui.yes; και πιέστε <keycap>Enter</keycap> για να
+ συνεχίσετε με την προσθήκη ενός χρήστη.</para>
+
+ <figure id="add-user2">
+ <title>Επιλογή Χρήστη</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/adduser1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε <guimenuitem>User</guimenuitem> με τα βελάκια και πιέστε
+ <keycap>Enter</keycap>.</para>
+
+ <figure id="add-user3">
+ <title>Προσθήκη Πληροφοριών Χρήστη</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/adduser2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Καθώς θα εισάγετε τα στοιχεία πιέζοντας το <keycap>Tab</keycap> θα
+ εμφανίζονται οι παρακάτω περιγραφές στο κάτω μέρος της οθόνης για να
+ σας βοηθήσουν στην εισαγωγή των απαιτούμενων πληροφοριών:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Login ID</term>
+
+ <listitem>
+ <para>To όνομα χρήστη (login name) για το νέο χρήστη
+ (υποχρεωτικό).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>UID</term>
+
+ <listitem>
+ <para>Ο αναγνωριστικός αριθμός (numerical ID) για αυτό τον χρήστη
+ (αφήστε τον κενό για αυτόματη επιλογή).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Group</term>
+
+ <listitem>
+ <para>Το όνομα της ομάδας (group name) για αυτό το χρήστη
+ (αφήστε τον κενό για αυτόματη επιλογή).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Password</term>
+
+ <listitem>
+ <para>Ο κωδικός (password) για αυτό το χρήστη (δώστε προσοχή στο
+ πεδίο αυτό!).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Full name</term>
+
+ <listitem>
+ <para>Το πλήρες όνομα του χρήστη (σχόλιο).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Member groups</term>
+
+ <listitem>
+ <para>Οι υπόλοιπες ομάδες (groups) στις οποίες ανήκει αυτός ο
+ χρήστης (έχει δηλ. τα δικαιώματα τους).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Home directory</term>
+
+ <listitem>
+ <para>Ο προσωπικός κατάλογος αρχείων (home directory) του χρήστη
+ (αφήστε κενό για την προεπιλεγμένη επιλογή).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Login shell</term>
+ <listitem>
+ <para>Το προεπιλεγμένο κέλυφος (login shell) του χρήστη
+ (αφήστε κενό για την προεπιλογή, π.χ.
+ <filename>/bin/sh</filename>).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Το κέλυφος εισόδου αλλάχτηκε από <filename>/bin/sh</filename> σε
+ <filename>/usr/local/bin/bash</filename> για να χρησιμοποιηθεί το
+ κέλυφος <application>bash</application> το οποίο εγκαταστήσαμε
+ προηγουμένως μέσω πακέτου. Μην προσπαθήσετε να χρησιμοποιήσετε κάποιο
+ κέλυφος που δεν υπάρχει, διαφορετικά δεν θα μπορείτε να κάνετε login.
+ Το πλέον συνηθισμένο κέλυφος στον κόσμο του BSD είναι το C shell, το
+ οποίο μπορείτε να γράψετε ως <filename>/bin/tcsh</filename>.</para>
+
+ <para>Ο χρήστης προστέθηκε επίσης στην ομάδα
+ <groupname>wheel</groupname> για να έχει τη δυνατότητα να γίνει
+ υπερχρήστης (superuser) με δικαιώματα
+ <username>root</username>.</para>
+
+ <para>Όταν είστε ικανοποιημένος από τις επιλογές σας, πιέστε &gui.ok;
+ και θα εμφανιστεί ξανά το μενού User and Group Management:</para>
+
+ <figure id="add-user4">
+ <title>Έξοδος από την Διαχείριση Χρηστών και Ομάδων</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/adduser3" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Μπορείτε επίσης τη δεδομένη στιγμή να προσθέσετε ομάδες, αν
+ υπάρχει συγκεκριμένη ανάγκη. Διαφορετικά, μπορείτε να επανέλθετε στη
+ ρύθμιση αυτή μετά την εγκατάσταση, μέσω του
+ <command>sysinstall</command>.</para>
+
+ <para>Όταν τελειώσετε με την προσθήκη χρηστών, επιλέξτε
+ <guimenuitem>Exit</guimenuitem> με τα βελάκια και πιέστε
+ <keycap>Enter</keycap> για να συνεχίσετε με την εγκατάσταση.</para>
+ </sect2>
+
+ <sect2 id="rootpass">
+ <title>Ορισμός του Κωδικού για το Χρήστη
+ <username>root</username></title>
+
+ <screen> Message
+ Now you must set the system manager's password.
+ This is the password you'll use to log in as "root".
+
+ [ OK ]
+
+ [ Press enter to continue ]</screen>
+
+ <para>Πιέστε <keycap>Enter</keycap> για να ορίσετε τον κωδικό για το
+ χρήστη <username>root</username>.</para>
+
+ <para>Θα πρέπει να πληκτρολογήσετε δύο φορές τον κωδικό σωστά. Δεν
+ χρειάζεται να πούμε ότι πρέπει να έχετε τρόπο να βρείτε τον κωδικό
+ αν τον ξεχάσετε. Παρατηρήστε ότι ο κωδικός δεν εμφανίζεται καθώς τον
+ πληκτρολογείτε, ούτε και εμφανίζονται αστεράκια στη θέση του.</para>
+
+ <screen>Changing local password for root.
+New password :
+Retype new password :</screen>
+
+ <para>Η εγκατάσταση θα συνεχιστεί μετά την επιτυχημένη εισαγωγή του
+ κωδικού.</para>
+ </sect2>
+
+ <sect2 id="exit-inst">
+ <title>Έξοδος από την Εγκατάσταση</title>
+
+ <para>Αν χρειάζεται να ρυθμίσετε πρόσθετες δικτυακές υπηρεσίες, ή κάποια
+ άλλη ρύθμιση, μπορείτε να το κάνετε τώρα ή μετά την εγκατάσταση με τη
+ χρήση της εντολής <command>sysinstall</command>.</para>
+
+ <screen> User Confirmation Requested
+ Visit the general configuration menu for a chance to set any last
+ options?
+
+ Yes [ No ]</screen>
+
+ <para>Επιλέξτε &gui.no; με τα βελάκια και πιέστε
+ <keycap>Enter</keycap> για να επιστρέψετε στο Κυρίως Μενού
+ Εγκατάστασης (Main Installation Menu).</para>
+
+ <figure id="final-main">
+ <title>Έξοδος από την Εγκατάσταση</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mainexit" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Επιλέξτε <guibutton>[X Exit Install]</guibutton> με τα βελάκια και
+ πιέστε <keycap>Enter</keycap>. Θα κληθείτε να επιβεβαιώσετε την έξοδο
+ από την εγκατάσταση:</para>
+
+ <screen> User Confirmation Requested
+ Are you sure you wish to exit? The system will reboot.
+
+ [ Yes ] No</screen>
+
+ <para>Επιλέξτε &gui.yes;. Αν είχατε ξεκινήσει από το CDROM, θα δείτε
+ το παρακάτω μήνυμα για να σας υπενθυμίσει να αφαιρέσετε το CD:</para>
+
+ <screen> Message
+ Be sure to remove the media from the drive.
+
+ [ OK ]
+ [ Press enter or space ]</screen>
+
+ <para>Ο οδηγός CDROM θα παραμείνει κλειδωμένος μέχρι να αρχίσει η
+ επανεκκίνηση του μηχανήματος. Κατόπιν ξεκλειδώνει και μπορείτε
+ (γρήγορα) να βγάλετε το CD από τον οδηγό. Πιέστε &gui.ok; για να
+ επανεκκινήσετε το μηχάνημα.</para>
+
+ <para>Το σύστημα θα επανεκκινήσει, και προσέξτε για τυχόν μηνύματα
+ λάθους που θα εμφανιστούν.</para>
+ </sect2>
+
+ <sect2 id="network-services">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Ρύθμιση Πρόσθετων Υπηρεσιών Δικτύου</title>
+
+ <para>Η ρύθμιση υπηρεσιών δικτύου μπορεί να είναι μια δύσκολη διαδικασία
+ για νέους χρήστες χωρίς εμπειρία στον αντίστοιχο τομέα. Η δικτύωση,
+ περιλαμβανομένου και του Internet, είναι κρίσιμη σε όλα τα μοντέρνα
+ λειτουργικά συστήματα, περιλαμβανομένου και του &os;. Για το λόγο
+ αυτό είναι χρήσιμο να έχετε κάποια κατανόηση των εκτεταμένων
+ ικανοτήτων δικτύωσης του &os;. Κάνοντας το αυτό κατά τη διάρκεια της
+ εγκατάστασης επιβεβαιώνεται η δυνατότητα των χρηστών να κατανοήσουν
+ τις διάφορες υπηρεσίες που τους παρέχονται.</para>
+
+ <para>Οι δικτυακές υπηρεσίες είναι προγράμματα που δέχονται είσοδο από
+ οποιοδήποτε σημείο στο δίκτυο. Καταβάλλεται κάθε προσπάθεια για να
+ είναι σίγουρο ότι τα προγράμματα αυτά δεν θα κάνουν οτιδήποτε
+ <quote>επιζήμιο</quote>. Δυστυχώς οι προγραμματιστές δεν είναι
+ τέλειοι και κατά καιρούς έχουν εμφανιστεί περιπτώσεις που σφάλματα σε
+ δικτυακές υπηρεσίες έχουν γίνει αντικείμενα εκμετάλλευσης από
+ εισβολείς για την εκτέλεση κακόβουλων πράξεων. Είναι σημαντικό να μην
+ ενεργοποιήσετε καμιά δικτυακή υπηρεσία μέχρι να ανακαλύψετε ότι την
+ χρειάζεστε. Μπορείτε πάντα να την ενεργοποιήσετε αργότερα,
+ εκτελώντας ξανά την εφαρμογή <application>sysinstall</application> ή
+ χρησιμοποιώντας τις δυνατότητες που παρέχονται από το αρχείο
+ <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Με την επιλογή <guimenu>Networking</guimenu> θα δείτε ένα μενού
+ παρόμοιο με το παρακάτω:</para>
+
+ <figure id="network-configuration">
+ <title>Ρύθμιση Δικτύου Upper-level (Ανωτέρου Επιπέδου)</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/net-config-menu1" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Η πρώτη επιλογή, <guimenuitem>Interfaces</guimenuitem>,
+ καλύφθηκε προηγουμένως στο
+ <xref linkend="inst-network-dev">, και μπορείτε με ασφάλεια να την
+ αγνοήσετε.</para>
+
+ <para>Επιλέγοντας <guimenuitem>AMD</guimenuitem> προστίθεται υποστήριξη
+ για το βοηθητικό πρόγραμμα αυτόματης προσάρτησης (automatic mount)
+ <acronym>BSD</acronym>. Αυτό χρησιμοποιείται συνήθως σε συνδυασμό με
+ το πρωτόκολλο <acronym>NFS</acronym> (δείτε παρακάτω) για την αυτόματη
+ προσάρτηση απομακρυσμένων συστημάτων αρχείων. Δεν απαιτείται εδώ
+ κάποια ιδιαίτερη ρύθμιση.</para>
+
+ <para>Αμέσως μετά βρίσκεται η επιλογή
+ <guimenuitem>AMD Flags</guimenuitem>. Όταν την επιλέξετε θα
+ εμφανιστεί ένα αναδυόμενο μενού για να μπορέσετε να εισάγετε
+ συγκεκριμένες παραμέτρους (flags) για την υπηρεσία
+ <acronym>AMD</acronym>. Το μενού περιέχει ήδη ένα σύνολο από
+ προεπιλογές:</para>
+
+ <screen>-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map</screen>
+
+ <para>Η επιλογή <option>-a</option> θέτει το προεπιλεγμένο σημείο
+ προσάρτησης (mount point) το οποίο εδώ καθορίζεται ως
+ <filename>/.amd_mnt</filename>. Η επιλογή <option>-l</option>
+ καθορίζει το προεπιλεγμένο αρχείο καταγραφής
+ <filename>log</filename>. Ωστόσο όταν χρησιμοποιείται το
+ <literal>syslogd</literal> όλες οι εργασίες καταγραφής στέλνονται στον
+ δαίμονα καταγραφής συστήματος (system log daemon). Ο κατάλογος
+ <filename class="directory">/host</filename> χρησιμοποιείται για την
+ προσάρτηση ενός διαμοιρασμένου συστήματος αρχείων από ένα
+ απομακρυσμένο κόμβο, ενώ ο κατάλογος
+ <filename class="directory">/net</filename> χρησιμοποιείται για την
+ προσάρτηση ενός διαμοιρασμένου συστήματος αρχείων από μια IP
+ διεύθυνση. Το αρχείο <filename>/etc/amd.map</filename> καθορίζει τις
+ προεπιλεγμένες επιλογές για τις προσαρτήσεις μέσω του
+ <acronym>AMD</acronym>.</para>
+
+ <indexterm>
+ <primary>FTP</primary>
+ <secondary>anonymous</secondary>
+ </indexterm>
+
+ <para>Η επιλογή <guimenuitem>Anon FTP</guimenuitem> επιτρέπει ανώνυμες
+ συνδέσεις <acronym>FTP</acronym>. Επιλέξτε την για να κάνετε το
+ μηχάνημα ανώνυμο εξυπηρετητή <acronym>FTP</acronym>. Θα πρέπει ωστόσο
+ να αντιλαμβάνεστε τις επιπλοκές στην ασφάλεια που προκαλεί η επιλογή
+ αυτή. Θα εμφανιστεί ένα ακόμα μενού για να σας εξηγήσει τις επιπλοκές
+ ασφαλείας καθώς και τις ρυθμίσεις σε βάθος.</para>
+
+ <para>Το μενού ρυθμίσεων <guimenuitem>Gateway</guimenuitem>
+ θα ρυθμίσει το μηχάνημα σας να λειτουργεί ως πύλη όπως εξηγήσαμε
+ προηγουμένως. Από εδώ επίσης μπορείτε να καταργήσετε την επιλογή
+ <guimenuitem>Gateway</guimenuitem> αν την επιλέξατε κατά λάθος κατά
+ τη διάρκεια της διαδικασίας εγκατάστασης.</para>
+
+ <para>Η επιλογή <guimenuitem>Inetd</guimenuitem> μπορεί να
+ χρησιμοποιηθεί για να ρυθμίσει ή να απενεργοποιήσει πλήρως το δαίμονα
+ &man.inetd.8; όπως εξηγήθηκε παραπάνω.</para>
+
+ <para>Η επιλογή <guimenuitem>Mail</guimenuitem> χρησιμοποιείται για την
+ ρύθμιση του προεπιλεγμένου <acronym>MTA</acronym> ή Αντιπροσώπου
+ Μεταφοράς Ταχυδρομείου (Mail Transfer Agent) του συστήματος.
+ Με την επιλογή αυτή θα εμφανιστεί το παρακάτω μενού:</para>
+
+ <figure id="mta-selection">
+ <title>Επιλογή Προεπιλεγμένου MTA</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/mta-main" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Στο σημείο αυτό σας δίνεται η δυνατότητα να επιλέξετε ποιο
+ <acronym>MTA</acronym> να εγκαταστήσετε και να ρυθμίσετε ως
+ προεπιλεγμένο Το <acronym>MTA</acronym> δεν είναι τίποτα περισσότερο
+ από τον διακομιστή ταχυδρομείου ο οποίος παραδίδει τα μηνύματα στους
+ χρήστες του συστήματος ή το Internet.</para>
+
+ <para>Αν επιλέξετε <guimenuitem>Sendmail</guimenuitem> θα εγκαταστήσετε
+ την δημοφιλή εφαρμογή διακομιστή <application>sendmail</application> η
+ οποία είναι και η προεπιλεγμένη για το &os;. Με την επιλογή
+ <guimenuitem>Sendmail local</guimenuitem> θα ρυθμίσετε το
+ <application>sendmail</application> να είναι το προεπιλεγμένο
+ <acronym>MTA</acronym>, αλλά θα απενεργοποιηθεί η ικανότητα του να
+ λαμβάνει email από το Internet. Οι άλλες επιλογές εδώ,
+ <guimenuitem>Postfix</guimenuitem> και
+ <guimenuitem>Exim</guimenuitem> δρουν παρόμοια με το
+ <guimenuitem>Sendmail</guimenuitem>. Και οι δύο διανέμουν
+ email. Ωστόσο κάποιοι χρήστες προτιμούν αυτές τις εναλλακτικές λύσεις
+ <acronym>MTA</acronym> από το
+ <application>sendmail</application>.</para>
+
+ <para>Μετά την επιλογή ενός <acronym>MTA</acronym>, ή αν αποφασίσετε να
+ μην επιλέξετε ένα MTA, θα εμφανιστεί το μενού ρύθμισης δικτύου, με την
+ επόμενη επιλογή που είναι
+ <guimenuitem>NFS client</guimenuitem>.</para>
+
+ <para>Η επιλογή <guimenuitem>NFS client</guimenuitem> θα ρυθμίσει το
+ σύστημα σας να επικοινωνεί με ένα εξυπηρετητή μέσω
+ <acronym>NFS</acronym>. Ένας εξυπηρετητής <acronym>NFS</acronym>
+ καθιστά συστήματα αρχείων διαθέσιμα προς άλλα μηχανήματα μέσω του
+ δικτύου, χρησιμοποιώντας το πρωτόκολλο <acronym>NFS</acronym>.
+ Αν το μηχάνημα σας δεν διαθέτει σύνδεση τοπικού δικτύου, μπορείτε να
+ αφήσετε την λειτουργία αυτή αποεπιλεγμένη. Το σύστημα μπορεί να
+ χρειαστεί περισσότερες ρυθμίσεις αργότερα. Δείτε στο
+ <xref linkend="network-nfs"> για περισσότερες πληροφορίες ρύθμισης
+ του πελάτη και του διακομιστή.</para>
+
+ <para>Κάτω από την επιλογή αυτή υπάρχει η αντίστοιχη
+ <guimenuitem>NFS server</guimenuitem> η οποία επιτρέπει να ρυθμίσετε
+ το σύστημα σας ως εξυπηρετητή <acronym>NFS</acronym>. Προστίθενται με
+ τον τρόπο αυτό οι απαραίτητες πληροφορίες για την εκκίνηση της
+ υπηρεσίας <acronym>RPC</acronym> (remote procedure call). Το
+ <acronym>RPC</acronym> χρησιμοποιείται για τον συντονισμό των
+ συνδέσεων μεταξύ των κόμβων και των προγραμμάτων.</para>
+
+ <para>Στην επόμενη γραμμή βρίσκεται η επιλογή
+ <guimenuitem>Ntpdate</guimenuitem> η οποία χειρίζεται τον συγχρονισμό
+ ώρας. Όταν επιλεχθεί, εμφανίζεται ένα μενού όπως το παρακάτω:</para>
+
+ <figure id="Ntpdate-config">
+ <title>Ρύθμιση Ntpdate</title>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/ntp-config" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Από το μενού αυτό, επιλέξτε τον διακομιστή που είναι πλησιέστερος
+ στην τοποθεσία σας. Επιλέγοντας τον πλησιέστερο, ο συγχρονισμός της
+ ώρας θα είναι πιο ακριβής, καθώς ένας απομακρυσμένος διακομιστής
+ θα έχει ενδεχομένως μεγαλύτερη καθυστέρηση στη σύνδεση.</para>
+
+ <para>Η επόμενη επιλογή είναι το <acronym>PCNFSD</acronym>. Με αυτήν θα
+ εγκατασταθεί το πακέτο <filename role="package">net/pcnfsd</filename>
+ από τη συλλογή Ports. Πρόκειται για ένα χρήσιμο βοηθητικό πρόγραμμα
+ το οποίο παρέχει υπηρεσίες πιστοποίησης (authentication) για το
+ <acronym>NFS</acronym> για συστήματα που δεν έχουν δυνατότητα να
+ παρέχουν τις δικές τους, όπως το λειτουργικό σύστημα &ms-dos; της
+ Microsoft.</para>
+
+ <para>Τώρα θα πρέπει να μετακινηθείτε προς τα κάτω για να δείτε τις
+ άλλες επιλογές:</para>
+
+ <figure id="Network-configuration-cont">
+ <title>Ρύθμιση Δικτύου Lower-level (Κατώτερου Επιπέδου)</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="install/net-config-menu2" format="PNG">
+ </imageobject>
+ </mediaobject>
+ </figure>
+
+ <para>Τα προγράμματα &man.rpcbind.8;, &man.rpc.statd.8;, και
+ &man.rpc.lockd.8; χρησιμοποιούνται όλα για Remote Procedure
+ Calls (<acronym>RPC</acronym>).
+ Το πρόγραμμα <command>rpcbind</command> κατευθύνει την επικοινωνία
+ μεταξύ εξυπηρετητών και πελατών <acronym>NFS</acronym> και απαιτείται
+ για τη σωστή λειτουργία των εξυπηρετητών <acronym>NFS</acronym>.
+ Ο δαίμονας <application>rpc.statd</application> αλληλεπιδρά με το
+ δαίμονα <application>rpc.statd</application> άλλων μηχανημάτων για να
+ παρέχει πληροφορίες κατάστασης. Η κατάσταση που λαμβάνεται, συνήθως
+ φυλάσσεται στο αρχείο <filename>/var/db/statd.status</filename>. Η
+ επόμενη επιλογή που εμφανίζεται είναι το
+ <guimenuitem>rpc.lockd</guimenuitem>, το οποίο αν επιλεχθεί θα παρέχει
+ υπηρεσίες κλειδώματος αρχείων (file locking). Συνήθως χρησιμοποιείται
+ μαζί με το <application>rpc.statd</application> για να παρακολουθεί
+ ποια μηχανήματα ζητούν κλειδώματα και πόσο συχνά τα απαιτούν. Αν και
+ οι δυο τελευταίες επιλογές είναι θαυμάσιες για εκσφαλμάτωση και
+ αντιμετώπιση προβλημάτων, δεν απαιτούνται για τη σωστή λειτουργία
+ των διακομιστών και πελατών <acronym>NFS</acronym>.</para>
+
+ <para>Καθώς προχωράμε τη λίστα προς τα κάτω, η επόμενη επιλογή είναι το
+ <guimenuitem>Routed</guimenuitem>, που είναι ο δαίμονας δρομολόγησης.
+ Το πρόγραμμα &man.routed.8; διαχειρίζεται τους πίνακες δρομολόγησης
+ του δικτύου, ανακαλύπτει δρομολογητές multicast και παρέχει, κατόπιν
+ απαίτησης, αντίγραφα του πίνακα δρομολόγησης σε κάθε συνδεμένο στο
+ δίκτυο κόμβο. Η χρήση του προορίζεται κυρίως για μηχανήματα τα οποία
+ δρουν ως πύλη (gateway) σε ένα τοπικό δίκτυο. Όταν το επιλέξετε, θα
+ εμφανιστεί ένα μενού το οποίο θα σας ζητήσει την προεπιλεγμένη
+ τοποθεσία για το πρόγραμμα. Είναι ήδη καθορισμένη για σας, και
+ μπορείτε να την επιλέξετε πιέζοντας το πλήκτρο
+ <keycap>Enter</keycap>. Θα εμφανιστεί τότε ακόμα ένα μενού, που θα
+ σας ζητά αυτή τη φορά τυχόν επιπλέον ρυθμίσεις (flags) που θέλετε να
+ περάσετε στην εφαρμογή <application>routed</application>. Η
+ προεπιλογή είναι το <option>-q</option> και πρέπει ήδη να φαίνεται
+ στην οθόνη σας.</para>
+
+ <para>Στην επόμενη γραμμή βρίσκεται η επιλογή
+ <guimenuitem>Rwhod</guimenuitem> η οποία, όταν επιλεχθεί, θα ξεκινήσει
+ τον δαίμονα &man.rwhod.8; κατά την εκκίνηση του συστήματος. Η εντολή
+ <command>rwhod</command> εκπέμπει περιοδικά μηνύματα του συστήματος
+ στο δίκτυο, ή και τα συλλέγει όταν είναι σε κατάσταση
+ <quote>καταναλωτή (consumer)</quote>. Μπορείτε να βρείτε περισσότερες
+ πληροφορίες στις σελίδες βοήθειας &man.ruptime.1; και
+ &man.rwho.1;.</para>
+
+ <para>Η προτελευταία επιλογή στη λίστα είναι για το δαίμονα
+ &man.sshd.8;. Πρόκειται για τον εξυπηρετητή secure shell ή
+ <application>OpenSSH</application> ο οποίος συνίσταται ιδιαίτερα σε
+ σχέση με τους στάνταρ εξυπηρετητές <application>telnet</application>
+ και <acronym>FTP</acronym>. Ο εξυπηρετητής
+ <application>sshd</application> χρησιμοποιείται για την δημιουργία
+ ασφαλής σύνδεσης μεταξύ δύο μηχανημάτων, με τη χρήση κρυπτογραφημένων
+ συνδέσεων.</para>
+
+ <para>Τέλος, υπάρχει η επιλογή
+ <guimenuitem>TCP Extensions</guimenuitem>. Αυτή επιτρέπει την χρήση
+ των Επεκτάσεων <acronym>TCP</acronym> που ορίζονται στα
+ <acronym>RFC</acronym>&nbsp;1323 και <acronym>RFC</acronym>&nbsp;1644.
+ Αν και σε πολλά μηχανήματα, η χρήση τους μπορεί να επιταχύνει τις
+ συνδέσεις, μπορεί επίσης να προκαλέσει και την κατάρρευση κάποιων από
+ αυτές. Δεν συνίσταται για εξυπηρετητές, μπορεί όμως να είναι χρήσιμη
+ σε ανεξάρτητα μηχανήματα.</para>
+
+ <para>Τώρα που έχετε ρυθμίσει τις δικτυακές υπηρεσίες, μπορείτε να
+ μετακινηθείτε στο πρώτο στοιχείο της λίστας, το
+ <guimenuitem>Exit</guimenuitem> και να συνεχίσετε με το επόμενο τμήμα
+ ρυθμίσεων.</para>
+ </sect2>
+
+ <sect2 id="freebsdboot">
+ <title>Εκκίνηση του &os;</title>
+
+ <sect3 id="freebsdboot-i386">
+ <title>Εκκίνηση &os;/&arch.i386;</title>
+
+ <para>Αν όλα πήγαν καλά, θα δείτε μηνύματα να κυλούν στην οθόνη σας
+ μέχρι να φτάσετε στην προτροπή εισόδου (login prompt). Μπορείτε να
+ δείτε το περιεχόμενο των μηνυμάτων με την πίεση του πλήκτρου
+ <keycap>Scroll-Lock</keycap> και χρησιμοποιώντας τα πλήκτρα
+ <keycap>PgUp</keycap> και <keycap>PgDn</keycap>.
+ Πιέζοντας ξανά το <keycap>Scroll-Lock</keycap> θα επανέλθετε στην
+ προτροπή.</para>
+
+ <para>Μπορεί να μην καταφέρετε να δείτε όλα τα μηνύματα (λόγω
+ περιορισμού της προσωρινής μνήμης buffer) αλλά μπορείτε να τα δείτε
+ μετά την είσοδο σας, με τη χρήση της εντολής
+ <command>dmesg</command> στη γραμμή εντολών.</para>
+
+ <para>Κάντε login με τη χρήση του ονόματος χρήστη και κωδικού που
+ δημιουργήσατε κατά την εγκατάσταση (στο παράδειγμα μας,
+ <username>rpratt</username>). Αποφεύγετε να εισέρχεστε ως
+ <username>root</username> αν δεν είναι απαραίτητο.</para>
+
+ <para>Τυπικά μηνύματα εκκίνησης (έχουν παραλειφθεί οι πληροφορίες
+ έκδοσης):</para>
+
+ <screen>Copyright (c) 1992-2002 The FreeBSD Project.
+Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
+ The Regents of the University of California. All rights reserved.
+
+Timecounter "i8254" frequency 1193182 Hz
+CPU: AMD-K6(tm) 3D processor (300.68-MHz 586-class CPU)
+ Origin = "AuthenticAMD" Id = 0x580 Stepping = 0
+ Features=0x8001bf&lt;FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,MMX&gt;
+ AMD Features=0x80000800&lt;SYSCALL,3DNow!&gt;
+real memory = 268435456 (262144K bytes)
+config&gt; di sn0
+config&gt; di lnc0
+config&gt; di le0
+config&gt; di ie0
+config&gt; di fe0
+config&gt; di cs0
+config&gt; di bt0
+config&gt; di aic0
+config&gt; di aha0
+config&gt; di adv0
+config&gt; q
+avail memory = 256311296 (250304K bytes)
+Preloaded elf kernel "kernel" at 0xc0491000.
+Preloaded userconfig_script "/boot/kernel.conf" at 0xc049109c.
+md0: Malloc disk
+Using $PIR table, 4 entries at 0xc00fde60
+npx0: &lt;math processor&gt; on motherboard
+npx0: INT 16 interface
+pcib0: &lt;Host to PCI bridge&gt; on motherboard
+pci0: &lt;PCI bus&gt; on pcib0
+pcib1: &lt;VIA 82C598MVP (Apollo MVP3) PCI-PCI (AGP) bridge&gt; at device 1.0 on pci0
+pci1: &lt;PCI bus&gt; on pcib1
+pci1: &lt;Matrox MGA G200 AGP graphics accelerator&gt; at 0.0 irq 11
+isab0: &lt;VIA 82C586 PCI-ISA bridge&gt; at device 7.0 on pci0
+isa0: &lt;ISA bus&gt; on isab0
+atapci0: &lt;VIA 82C586 ATA33 controller&gt; port 0xe000-0xe00f at device 7.1 on pci0
+ata0: at 0x1f0 irq 14 on atapci0
+ata1: at 0x170 irq 15 on atapci0
+uhci0: &lt;VIA 83C572 USB controller&gt; port 0xe400-0xe41f irq 10 at device 7.2 on pci0
+usb0: &lt;VIA 83C572 USB controller&gt; on uhci0
+usb0: USB revision 1.0
+uhub0: VIA UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
+uhub0: 2 ports with 2 removable, self powered
+chip1: &lt;VIA 82C586B ACPI interface&gt; at device 7.3 on pci0
+ed0: &lt;NE2000 PCI Ethernet (RealTek 8029)&gt; port 0xe800-0xe81f irq 9 at
+device 10.0 on pci0
+ed0: address 52:54:05:de:73:1b, type NE2000 (16 bit)
+isa0: too many dependant configs (8)
+isa0: unexpected small tag 14
+fdc0: &lt;NEC 72065B or clone&gt; at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
+fdc0: FIFO enabled, 8 bytes threshold
+fd0: &lt;1440-KB 3.5&rdquo; drive&gt; on fdc0 drive 0
+atkbdc0: &lt;keyboard controller (i8042)&gt; at port 0x60-0x64 on isa0
+atkbd0: &lt;AT Keyboard&gt; flags 0x1 irq 1 on atkbdc0
+kbd0 at atkbd0
+psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0
+psm0: model Generic PS/2 mouse, device ID 0
+vga0: &lt;Generic ISA VGA&gt; at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
+sc0: &lt;System console&gt; at flags 0x1 on isa0
+sc0: VGA &lt;16 virtual consoles, flags=0x300&gt;
+sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
+sio0: type 16550A
+sio1 at port 0x2f8-0x2ff irq 3 on isa0
+sio1: type 16550A
+ppc0: &lt;Parallel port&gt; at port 0x378-0x37f irq 7 on isa0
+ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
+ppc0: FIFO with 16/16/15 bytes threshold
+ppbus0: IEEE1284 device found /NIBBLE
+Probing for PnP devices on ppbus0:
+plip0: &lt;PLIP network interface&gt; on ppbus0
+lpt0: &lt;Printer&gt; on ppbus0
+lpt0: Interrupt-driven port
+ppi0: &lt;Parallel I/O&gt; on ppbus0
+ad0: 8063MB &lt;IBM-DHEA-38451&gt; [16383/16/63] at ata0-master using UDMA33
+ad2: 8063MB &lt;IBM-DHEA-38451&gt; [16383/16/63] at ata1-master using UDMA33
+acd0: CDROM &lt;DELTA OTC-H101/ST3 F/W by OIPD&gt; at ata0-slave using PIO4
+Mounting root from ufs:/dev/ad0s1a
+swapon: adding /dev/ad0s1b as swap device
+Automatic boot in progress...
+/dev/ad0s1a: FILESYSTEM CLEAN; SKIPPING CHECKS
+/dev/ad0s1a: clean, 48752 free (552 frags, 6025 blocks, 0.9% fragmentation)
+/dev/ad0s1f: FILESYSTEM CLEAN; SKIPPING CHECKS
+/dev/ad0s1f: clean, 128997 free (21 frags, 16122 blocks, 0.0% fragmentation)
+/dev/ad0s1g: FILESYSTEM CLEAN; SKIPPING CHECKS
+/dev/ad0s1g: clean, 3036299 free (43175 frags, 374073 blocks, 1.3% fragmentation)
+/dev/ad0s1e: filesystem CLEAN; SKIPPING CHECKS
+/dev/ad0s1e: clean, 128193 free (17 frags, 16022 blocks, 0.0% fragmentation)
+Doing initial network setup: hostname.
+ed0: flags=8843&lt;UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
+ inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
+ inet6 fe80::5054::5ff::fede:731b%ed0 prefixlen 64 tentative scopeid 0x1
+ ether 52:54:05:de:73:1b
+lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; mtu 16384
+ inet6 fe80::1%lo0 prefixlen 64 scopeid 0x8
+ inet6 ::1 prefixlen 128
+ inet 127.0.0.1 netmask 0xff000000
+Additional routing options: IP gateway=YES TCP keepalive=YES
+routing daemons:.
+additional daemons: syslogd.
+Doing additional network setup:.
+Starting final network daemons: creating ssh RSA host key
+Generating public/private rsa1 key pair.
+Your identification has been saved in /etc/ssh/ssh_host_key.
+Your public key has been saved in /etc/ssh/ssh_host_key.pub.
+The key fingerprint is:
+cd:76:89:16:69:0e:d0:6e:f8:66:d0:07:26:3c:7e:2d root@k6-2.example.com
+ creating ssh DSA host key
+Generating public/private dsa key pair.
+Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
+Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
+The key fingerprint is:
+f9:a1:a9:47:c4:ad:f9:8d:52:b8:b8:ff:8c:ad:2d:e6 root@k6-2.example.com.
+setting ELF ldconfig path: /usr/lib /usr/lib/compat /usr/X11R6/lib
+/usr/local/lib
+a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
+starting standard daemons: inetd cron sshd usbd sendmail.
+Initial rc.i386 initialization:.
+rc.i386 configuring syscons: blank_time screensaver moused.
+Additional ABI support: linux.
+Local package initialization:.
+Additional TCP options:.
+
+FreeBSD/i386 (k6-2.example.com) (ttyv0)
+
+login: rpratt
+Password:</screen>
+
+ <para>Η δημιουργία των κλειδιών RSA και DSA μπορεί να πάρει κάποιο
+ χρόνο σε αργά μηχανήματα. Αυτό συμβαίνει μόνο στην πρώτη εκκίνηση
+ ενός νέου συστήματος. Οι επόμενες εκκινήσεις θα είναι πιο
+ γρήγορες.</para>
+
+ <para>Αν έχετε ρυθμίσει τον X server και έχετε επιλέξει
+ γραφικό περιβάλλον εργασίας, μπορείτε να το ξεκινήσετε δίνοντας την
+ εντολή <command>startx</command> στην γραμμή εντολών.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="shutdown">
+ <title>Τερματισμός του &os;</title>
+
+ <para>Είναι πολύ σημαντικό να τερματίζετε σωστά το λειτουργικό σύστημα.
+ Μην σβήνετε απλώς τον υπολογιστή από το διακόπτη ρεύματος. Πρώτα από
+ όλα, γίνετε υπερχρήστης (superuser) χρησιμοποιώντας την εντολή
+ <command>su</command> στη γραμμή εντολών και δίνοντας τον κωδικό του
+ <username>root</username>. Αυτό μπορεί να γίνει μόνο αν ο χρήστης
+ ανήκει στην ομάδα <groupname>wheel</groupname>. Διαφορετικά, κάντε
+ κανονικά login σαν <username>root</username> και χρησιμοποιήστε την
+ εντολή <command>shutdown -h now</command>.</para>
+
+ <screen>The operating system has halted.
+Please press any key to reboot.</screen>
+
+ <para>Είναι ασφαλές να διακόψετε την τροφοδοσία αφού δώσετε την εντολή
+ shutdown και δείτε το μήνυμα
+ <quote>Please press any key to reboot</quote>. Αν πιέσετε οποιοδήποτε
+ πλήκτρο αντί να διακόψετε την τροφοδοσία, το σύστημα θα
+ επανεκκινήσει.</para>
+
+ <para>Μπορείτε επίσης να χρησιμοποιήσετε το συνδυασμό πλήκτρων
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>Del</keycap>
+ </keycombo>
+ για να επανεκκινήσετε το σύστημα, ωστόσο αυτό δεν συνίσταται κατά τη
+ διάρκεια της κανονικής λειτουργίας.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-trouble">
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>troubleshooting</secondary>
+ </indexterm>
+ <para>Το επόμενο τμήμα καλύπτει βασική αντιμετώπιση προβλημάτων κατά την
+ εγκατάσταση, με βάση συνηθισμένα προβλήματα που έχουν αναφερθεί από
+ χρήστες. Υπάρχουν επίσης μερικές ερωτήσεις και απαντήσεις για όσους
+ ενδιαφέρονται να δημιουργήσουν σύστημα dual-boot του &os; με το
+ &ms-dos;.</para>
+
+ <sect2>
+ <title>Τι να Κάνετε αν Κάτι Πάει Στραβά</title>
+
+ <para>Λόγω των διάφορων περιορισμών της αρχιτεκτονικής του PC, δεν είναι
+ δυνατόν η ανίχνευση συσκευών να είναι 100% αξιόπιστη, ωστόσο υπάρχουν
+ κάποια πράγματα που μπορείτε να κάνετε αν αποτύχει.</para>
+
+ <para>Ελέγξτε το έγγραφο <ulink
+ url="http://www.FreeBSD.org/releases/index.html"> Σημειώσεων Υλικού
+ (Hardware Notes)</ulink> για την έκδοση του &os; που έχετε, για να
+ σιγουρευτείτε ότι το υλικό σας υποστηρίζεται.</para>
+
+ <para>Αν το υλικό σας υποστηρίζεται, αλλά πάλι αντιμετωπίζετε
+ κολλήματα ή άλλα προβλήματα, θα χρειαστεί να δημιουργήσετε <link
+ linkend="kernelconfig">εξειδικευμένο πυρήνα</link>. Θα μπορέσετε με
+ τον τρόπο αυτό να προσθέσετε υποστήριξη για συσκευές που δεν υπάρχουν
+ στο πυρήνα <filename>GENERIC</filename>. Ο πυρήνας στις δισκέτες
+ εκκίνησης είναι ρυθμισμένος υποθέτοντας ότι οι περισσότερες
+ συσκευές υλικού είναι στις εργοστασιακές τους ρυθμίσεις, όσο αφορά τα
+ IRQs, τις διευθύνσεις IO και τα DMA κανάλια. Αν έχετε αλλάξει τις
+ ρυθμίσεις αυτές στο σύστημα σας, θα χρειαστεί κατά πάσα πιθανότητα, να
+ αλλάξετε το αρχείο ρυθμίσεων και να μεταγλωττίσετε ξανά τον πυρήνα
+ για να οδηγήσετε το &os; να τις βρει.</para>
+
+ <para>Είναι επίσης πιθανόν η ανίχνευση για μια συσκευή που δεν υπάρχει,
+ να οδηγήσει σε αποτυχία μια μεταγενέστερη ανίχνευση για μια άλλη
+ συσκευή. Στην περίπτωση αυτή, θα πρέπει να απενεργοποιηθεί η
+ ανίχνευση για την συσκευή που δημιουργεί το πρόβλημα.</para>
+
+ <note>
+ <para>Κάποια προβλήματα εγκατάστασης μπορεί να αποφευχθούν ή να
+ εξαλειφθούν αν ανανεώσετε το firmware σε διάφορες συσκευές υλικού,
+ και κατά κύριο λόγο της μητρικής. Το firmware της μητρικής
+ αναφέρεται επίσης ως <acronym>BIOS</acronym> και οι περισσότεροι
+ κατασκευαστές μητρικών ή υπολογιστών διαθέτουν δικτυακό τόπο στον
+ οποίο μπορείτε να βρείτε πληροφορίες για αναβαθμίσεις ή
+ ανανεώσεις.</para>
+
+ <para>Οι περισσότεροι κατασκευαστές δεν συνιστούν την αναβάθμιση του
+ <acronym>BIOS</acronym> της μητρικής αν δε συντρέχει σοβαρός λόγος,
+ καθώς η αναβάθμιση μπορεί να είναι μια κρίσιμη διαδικασία. Η
+ διαδικασία αναβάθμισης <emphasis>μπορεί</emphasis> να πάει στραβά,
+ και να προκληθεί μόνιμη ζημιά στο κύκλωμα του
+ <acronym>BIOS</acronym>.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας Συστήματα Αρχείων &ms-dos; και &windows;</title>
+
+ <para>Τη δεδομένη στιγμή, το &os; δεν υποστηρίζει συστήματα αρχείων που
+ είναι συμπιεσμένα με την εφαρμογή
+ <application>Double Space&trade;</application>. Για το λόγο αυτό θα
+ πρέπει να τα αποσυμπιέσετε ώστε το &os; να έχει πρόσβαση στα δεδομένα.
+ Αυτό μπορεί να γίνει εκτελώντας την εφαρμογή
+ <application>Compression Agent</application> που βρίσκεται στο μενού
+ <guimenuitem>Start (Έναρξη)</guimenuitem>&gt;
+ <guimenuitem>Programs (Προγράμματα)</guimenuitem> &gt;
+ <guimenuitem>System Tools (Εργαλεία Συστήματος)</guimenuitem>.</para>
+
+ <para>Το &os; μπορεί να υποστηρίξει συστήματα αρχείων τύπου &ms-dos;
+ (ορισμένες φορές αναφέρονται και ως FAT). Η εντολή
+ &man.mount.msdosfs.8; μπορεί να προσαρτήσει αυτά τα συστήματα αρχείων
+ σε κάποιο ήδη υπάρχον κατάλογο, επιτρέποντας έτσι την πρόσβαση στα
+ περιεχόμενα τους. Δεν συνηθίζεται να γίνεται άμεσα κλήση του
+ προγράμματος &man.mount.msdosfs.8;. Συνήθως, καλείται από το σύστημα
+ μέσω μιας γραμμής στο αρχείο <filename>/etc/fstab</filename> ή με
+ κλήση του βοηθητικού προγράμματος &man.mount.8; με τις απαραίτητες
+ παραμέτρους. Μια τυπική ρύθμιση στο αρχείο
+ <filename>/etc/fstab</filename> είναι η παρακάτω:</para>
+
+ <programlisting>/dev/ad0sN /dos msdosfs rw 0 0</programlisting>
+
+ <note><para>Για να δουλέψει το παραπάνω, ο κατάλογος
+ <filename>/dos</filename> θα πρέπει να υπάρχει ήδη. Για λεπτομέρειες
+ σχετικά με τη μορφή των καταχωρήσεων στο αρχείο
+ <filename>/etc/fstab</filename>, δείτε τη σελίδα manual
+ &man.fstab.5;.</para></note>
+
+ <para>Παρακάτω φαίνεται μια τυπική κλήση στην &man.mount.8; για την
+ προσάρτηση ενός συστήματος αρχείων &ms-dos;:</para>
+
+ <screen>&prompt.root; <userinput>mount -t msdosfs /dev/ad0s1 /mnt</userinput></screen>
+
+ <para>Στο παράδειγμα αυτό, το σύστημα αρχείων του &ms-dos; είναι στην
+ πρώτη κατάτμηση του σκληρού δίσκου. Η δική σας περίπτωση μπορεί να
+ είναι διαφορετική, ελέγξτε το αποτέλεσμα των εντολών
+ <command>dmesg</command> και <command>mount</command>. Οι πληροφορίες
+ από αυτές τις εντολές πρέπει να είναι αρκετές για να πάρετε μια ιδέα
+ της διάταξης των κατατμήσεων.</para>
+
+ <note><para>Το &os; ίσως να αριθμήσει τα slices του δίσκου (που στο
+ &ms-dos; καλούνται κατατμήσεις) διαφορετικά από άλλα λειτουργικά
+ συστήματα. Ειδικότερα, τα εκτεταμένα (extended) διαμερίσματα
+ &ms-dos; παίρνουν συνήθως μεγαλύτερη αρίθμηση από τα πρωτεύοντα
+ διαμερίσματα του &ms-dos;. Μπορείτε να χρησιμοποιήσετε το βοηθητικό
+ πρόγραμμα &man.fdisk.8; για να αναγνωρίσετε ποιες κατατμήσεις ανήκουν
+ στο &os;, και ποιες σε άλλα λειτουργικά συστήματα.</para></note>
+
+ <para>Μπορείτε επίσης να προσαρτήσετε NTFS κατατμήσεις με παρόμοιο
+ τρόπο, με τη χρήση της εντολής &man.mount.ntfs.8;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ερωτήσεις και Απαντήσεις Αντιμετώπισης Προβλημάτων</title>
+
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>Το σύστημα μου κρεμάει κατά την αναγνώριση υλικού στη
+ διάρκεια της εκκίνησης ή συμπεριφέρεται περίεργα κατά τη
+ διάρκεια της εγκατάστασης ή δεν ανιχνεύεται η μονάδα
+ δισκέτας.</para>
+ </question>
+
+ <answer>
+ <para>Στο &os; γίνεται εκτεταμένη χρήση του
+ ACPI (εφόσον ανιχνευθεί στην εκκίνηση) στις πλατφόρμες i386,
+ amd64 και ia64 για διευκόλυνσης της ρύθμισης υλικού. Δυστυχώς
+ υπάρχουν ακόμα κάποια προβλήματα τόσο στο πρόγραμμα οδήγησης
+ του ACPI όσο και στα BIOS και τις μητρικές. Μπορείτε να
+ απενεργοποιήσετε το ACPI, με την ρύθμιση
+ <literal>hint.acpi.0.disabled</literal> στο τρίτο στάδιο του
+ συστήματος εκκίνησης (boot loader):</para>
+
+ <screen><userinput>set hint.acpi.0.disabled="1"</userinput></screen>
+
+ <para>Η ρύθμιση αυτή χάνεται σε κάθε επανεκκίνηση, και έτσι είναι
+ απαραίτητο να προσθέσετε
+ <literal>hint.acpi.0.disabled="1"</literal> στο αρχείο
+ <filename>/boot/loader.conf</filename>. Περισσότερες
+ πληροφορίες για τον boot loader μπορείτε να βρείτε στο
+ <xref linkend="boot-synopsis">.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Κατάφερα να ξεκινήσω από το σκληρό δίσκο για πρώτη φορά
+ μετά την εγκατάσταση του &os;, ο πυρήνας φορτώνει και ανιχνεύει
+ το υλικό μου, αλλά σταματάει με μηνύματα όπως:</para>
+
+ <screen>changing root device to ad1s1a panic: cannot mount root</screen>
+
+ <para>Τι είναι λάθος; Τι μπορώ να κάνω;</para>
+
+ <para>Τι είναι το μήνυμα
+ <literal>bios_drive:interface(unit,partition)kernel_name</literal>
+ που εμφανίζεται στη βοήθεια της εκκίνησης;</para>
+ </question>
+
+ <answer>
+ <para>Υπάρχει από παλιά ένα πρόβλημα όταν ο σκληρός δίσκος από
+ τον οποίο γίνεται η εκκίνηση δεν είναι ο πρώτος δίσκος του
+ συστήματος. Το BIOS χρησιμοποιεί διαφορετικό σύστημα αρίθμησης
+ από το &os; και η εύρεση του σωστού αριθμού για κάθε συσκευή
+ είναι δύσκολη.</para>
+
+ <para>Στην περίπτωση που ο δίσκος εκκίνησης δεν είναι ο πρώτος
+ δίσκος του συστήματος, το &os; μπορεί να χρειαστεί κάποια
+ βοήθεια για να τον βρει. Υπάρχουν δύο συνηθισμένες περιπτώσεις,
+ αλλά και στις δύο πρέπει να πείτε στο &os; που θα βρει το
+ ριζικό (root) σύστημα αρχείων. Αυτό γίνεται ορίζοντας τον
+ αριθμό του δίσκου σύμφωνα με το BIOS, τον τύπο του δίσκου, και
+ τον αριθμό του δίσκου στο &os; ανάλογα με τον τύπο του.</para>
+
+ <para>Η πρώτη περίπτωση είναι αν έχετε δύο δίσκους IDE, καθένας
+ ορισμένος ως master στο αντίστοιχο IDE κανάλι, και θέλετε να
+ ξεκινήσετε το &os; από το δεύτερο δίσκο. Το BIOS τους βλέπει ως
+ δίσκους 0 και 1, ενώ το &os; τους βλέπει ως
+ <devicename>ad0</devicename> και
+ <devicename>ad2</devicename>.</para>
+
+ <para>Το &os; βρίσκεται στο δίσκο 1 του BIOS, τύπου
+ <literal>ad</literal> ενώ στο &os; φαίνεται ως δίσκος 2, άρα
+ πρέπει να δώσετε:</para>
+
+ <screen><userinput>1:ad(2,a)kernel</userinput></screen>
+
+ <para>Σημειώστε ότι αν έχετε δίσκο slave στο πρωτεύον κανάλι, το
+ παραπάνω δεν είναι απαραίτητο (και είναι ουσιαστικά
+ λάθος).</para>
+
+ <para>Η δεύτερη περίπτωση περιλαμβάνει την εκκίνηση από δίσκο
+ SCSI, όταν έχετε επίσης ένα ή περισσότερους IDE δίσκους στο
+ σύστημα. Στην περίπτωση αυτή ο αριθμός του δίσκου στο &os;
+ είναι χαμηλότερος από τον αντίστοιχο του BIOS. Αν έχετε δύο
+ δίσκους IDE και το SCSI δίσκο, ο SCSI δίσκος φαίνεται στο BIOS
+ ως δίσκος 2, τύπου <literal>da</literal> και αναγνωρίζεται στο
+ &os; ως δίσκος 0, θα γράφατε:</para>
+
+ <screen><userinput>2:da(0,a)kernel</userinput></screen>
+
+ <para>Για να πείτε στο &os; ότι θέλετε να εκκινήσετε από τον
+ δίσκο 2 του BIOS που είναι ο πρώτος SCSI δίσκος του συστήματος.
+ Αν είχατε ένα μόνο IDE δίσκο, θα χρησιμοποιούσατε το
+ <literal>1:</literal> αντί για <literal>2:</literal>.</para>
+
+ <para>Μόλις βρείτε τις σωστές τιμές, μπορείτε να βάλετε την
+ εντολή, ακριβώς όπως θα τη γράφατε, στο αρχείο
+ <filename>/boot.config</filename> χρησιμοποιώντας ένα
+ συνηθισμένο επεξεργαστή κειμένου. Αν δεν ορίσετε διαφορετικά,
+ το &os; θα χρησιμοποιεί τα περιεχόμενα του αρχείου αυτού ως
+ προεπιλογή στην προτροπή <literal>boot:</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Ξεκίνησα από το σκληρό δίσκο για πρώτη φορά μετά την
+ εγκατάσταση του &os;, αλλά ο Διαχειριστής Εκκίνησης (Boot
+ Manager) τυπώνει απλώς <literal>F?</literal> κάθε φορά στο
+ μενού εκκίνησης και δεν συνεχίζει περισσότερο.</para>
+ </question>
+
+ <answer>
+ <para>Δεν ρυθμίσατε σωστά τη γεωμετρία του σκληρού δίσκου στον
+ επεξεργαστή κατατμήσεων όταν εγκαταστήσατε το &os;. Πηγαίνετε
+ ξανά στον επεξεργαστή κατατμήσεων και ορίστε τη σωστή γεωμετρία
+ του σκληρού σας δίσκου. Πρέπει να επανεγκαταστήσετε το &os; από
+ την αρχή, με τη σωστή γεωμετρία.</para>
+
+ <para>Αν δεν μπορείτε να βρείτε με κανένα τρόπο τη σωστή γεωμετρία
+ για το μηχάνημα σας, δοκιμάστε τον ακόλουθο τρόπο: Δημιουργήστε
+ μια μικρή κατάτμηση &ms-dos; στην αρχή του δίσκου, και
+ εγκαταστήστε το &os; μετά από αυτό. Το πρόγραμμα εγκατάστασης
+ θα δει την κατάτμηση του &ms-dos; και θα προσπαθήσει να
+ ανιχνεύσει από αυτήν την σωστή γεωμετρία, κάτι το οποίο
+ συνήθως πετυχαίνει.</para>
+
+ <para>Δεν σας συνιστούμε να ακολουθήσετε το παρακάτω, αλλά το
+ αφήσαμε εδώ απλώς ως αναφορά:</para>
+
+ <blockquote>
+ <para>Αν φτιάχνετε ένα μηχάνημα desktop ή εξυπηρετητή για
+ αποκλειστική χρήση από το &os; και δεν σας ενδιαφέρει πιθανή
+ (μελλοντική) συμβατότητα με &ms-dos;, Linux ή άλλο λειτουργικό
+ σύστημα, έχετε επίσης την επιλογή να χρησιμοποιήσετε ολόκληρο
+ το δίσκο (πιέζοντας το <guimenuitem>A</guimenuitem> στον
+ επεξεργαστή κατατμήσεων), και
+ επιλέγοντας τη μη-στάνταρ επιλογή όπου το &os; καταλαμβάνει
+ ολόκληρο το δίσκο από τον πρώτο ως τον τελευταίο τομέα. Με
+ τον τρόπο αυτό εξαλείφονται όλα τα προβλήματα που αναφέρονται
+ στη γεωμετρία, αλλά υπάρχουν κάποιοι περιορισμοί, εκτός αν δεν
+ πρόκειται ποτέ να χρησιμοποιήσετε οποιοδήποτε άλλο λειτουργικό
+ εκτός από &os; στο συγκεκριμένο δίσκο.</para>
+ </blockquote>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Το σύστημα ανιχνεύει την κάρτα δικτύου μου &man.ed.4;, αλλά
+ παίρνω συνέχεια μηνύματα λάθους (device timeout).</para>
+ </question>
+
+ <answer>
+ <para>Η κάρτα σας είναι πιθανώς σε διαφορετικό IRQ από αυτό που
+ έχει ορισθεί στο αρχείο <filename>/boot/device.hints</filename>
+ Το πρόγραμμα οδήγησης &man.ed.4;, από προεπιλογή, δεν
+ χρησιμοποιεί τις
+ ρυθμίσεις που ενδεχομένως έχετε κάνει στην κάρτα μέσω του
+ προγράμματος ρύθμισης που παρέχει ο κατασκευαστής
+ (<quote>soft configuration</quote>, τις τιμές που δώσατε
+ μέσω EZSETUP στο &ms-dos;). Ωστόσο θα τις χρησιμοποιήσει αν
+ ορίσετε την τιμή <literal>-1</literal> στα hints της
+ συσκευής.</para>
+
+ <para>Είτε μετακινήστε το βραχυκυκλωτήρα (jumper) πάνω στην κάρτα
+ ώστε να δώσετε χειροκίνητες (hard) ρυθμίσεις (αλλάζοντας και
+ τις ρυθμίσεις του πυρήνα αν αυτό είναι απαραίτητο), ή αλλάξτε
+ το IRQ στην τιμή <literal>-1</literal> ρυθμίζοντας το hint
+ <literal>hint.ed.0.irq="-1"</literal>. Με τον τρόπο αυτό, ο
+ πυρήνας θα χρησιμοποιήσει τις ρυθμίσεις που κάνατε μέσω του
+ προγράμματος ρύθμισης.</para>
+
+ <para>Μια άλλη πιθανότητα είναι η κάρτα σας να χρησιμοποιεί το IRQ
+ 9 το οποίο είναι κοινό με το IRQ 2 και αποτελεί συχνά πηγή
+ προβλημάτων (ειδικά αν έχετε κάρτα γραφικών που χρησιμοποιεί το
+ IRQ 2!). Προσπαθήστε, αν είναι δυνατόν, να αποφύγετε εντελώς
+ τη χρήση των IRQ 2 ή 9.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <indexterm>
+ <primary>color</primary>
+ <secondary>contrast</secondary>
+ </indexterm>
+ <question>
+ <para>Όταν χρησιμοποιείται το
+ <application>sysinstall</application> σε ένα τερματικό X11, η
+ κίτρινη γραμματοσειρά πάνω στο ανοιχτό γκρι φόντο είναι
+ δυσανάγνωστη. Υπάρχει τρόπος να βελτιωθεί η αντίθεση σε αυτή
+ την εφαρμογή;<para>
+ </question>
+
+ <answer>
+ <para>Αν έχετε ήδη εγκατεστημένο το X11, και τα προεπιλεγμένα
+ χρώματα του <application>sysinstall</application> κάνουν το
+ κείμενο δυσανάγνωστο στο &man.xterm.1; ή το &man.rxvt.1;,
+ προσθέστε το παρακάτω στο <filename>~/.Xdefaults</filename>
+ για να δημιουργήσετε ένα πιο σκούρο γκρι φόντο:
+ <literal>XTerm*color7:#c0c0c0</literal></para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-advanced">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Valentino</firstname>
+ <surname>Vaschetto</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ <!-- May 2001 -->
+ </authorgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Ανανεώθηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- August 2010 -->
+ </sect1info>
+
+ <title>Οδηγός Εγκατάστασης για Προχωρημένους</title>
+
+ <para>Το τμήμα αυτό περιγράφει πως να εγκαταστήσετε το &os; σε ιδιαίτερα
+ μηχανήματα ή / και με μη συνηθισμένους τρόπους.</para>
+
+ <sect2 id="headless-install">
+ <title>Εγκαθιστώντας το &os; σε ένα Σύστημα χωρίς Οθόνη ή
+ Πληκτρολόγιο</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>headless (serial console)</secondary>
+ </indexterm>
+ <indexterm><primary>serial console</primary></indexterm>
+ <para>Το είδος αυτό της εγκατάστασης ονομάζεται <quote>headless
+ install (ακέφαλη εγκατάσταση)</quote>, επειδή το μηχάνημα στο οποίο
+ εγκαθίσταται το &os; είτε δεν έχει συνδεμένη οθόνη, είτε δεν έχει καν
+ έξοδο VGA. Αν αναρωτιέστε πως είναι πιθανό κάτι τέτοιο, γίνεται με
+ την χρήση σειριακής κονσόλας. Η σειριακή κονσόλα βασικά χρησιμοποιεί
+ ένα άλλο μηχάνημα το οποίο δρα ως κύρια οθόνη και πληκτρολόγιο για το
+ σύστημα. Για το σκοπό αυτό, απλώς ακολουθήστε τα βήματα για την
+ δημιουργία μιας USB μνήμης flash, όπως εξηγείται στο
+ <xref linkend="install-boot-media"> ή κατεβάστε το σωστό αρχείο ISO
+ για την εγκατάσταση (δείτε το <xref linkend="install-cdrom">).</para>
+
+ <para>Έπειτα, για να μετατρέψετε το μέσο εγκατάστασης ώστε να ξεκινά σε
+ σε σειριακή κονσόλα, ακολουθήστε τα επόμενα βήματα (αν πρόκειται να
+ χρησιμοποιήσετε CDROM, μπορείτε να παραλείψετε το πρώτο βήμα):</para>
+
+ <procedure>
+ <step>
+ <title>Δημιουργία USB Μνήμης Flash για Σειριακή Κονσόλα</title>
+ <indexterm>
+ <primary><command>mount</command></primary>
+ </indexterm>
+ <para>Αν επρόκειτο να εκκινήσετε από το USB flash που μόλις
+ φτιάξατε, το &os; θα ξεκίναγε στην κανονική κατάσταση
+ εγκατάστασης. Θέλουμε το &os; να ξεκινήσει σε σειριακή κονσόλα
+ για την εγκατάσταση μας. Για να το κάνετε αυτό, θα πρέπει να
+ προσαρτήσετε το USB flash στο &os; σύστημα σας, χρησιμοποιώντας
+ την εντολή &man.mount.8;.</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/<replaceable>da0a</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
+
+ <note>
+ <para>Προσαρμόστε κατάλληλα το όνομα της συσκευής και το σημείο
+ προσάρτησης, ανάλογα με το σύστημα σας.</para>
+ </note>
+
+ <para>Τώρα που έχετε προσαρτήσει τη μνήμη USB, θα πρέπει να τη
+ ρυθμίσετε ώστε να εκκινεί στη σειριακή κονσόλα. Θα πρέπει να
+ προσθέσετε μια γραμμή στο αρχείο <filename>loader.conf</filename>
+ που περιέχεται στο σύστημα αρχείων της USB μνήμης, ώστε να
+ ορίσετε τη σειριακή κονσόλα ως κονσόλα συστήματος:</para>
+
+ <screen>&prompt.root; <userinput>echo 'console="comconsole"' &gt;&gt; <replaceable>/mnt</replaceable>/boot/loader.conf</userinput></screen>
+
+ <para>Τώρα που έχετε ρυθμίσει σωστά τη μνήμη USB, πρέπει να την
+ αποπροσαρτήσετε, χρησιμοποιώντας την εντολή
+ &man.umount.8;:</para>
+
+ <screen>&prompt.root; <userinput>umount <replaceable>/mnt</replaceable></userinput></screen>
+
+ <para>Μπορείτε τώρα να αφαιρέσετε τη μνήμη USB. Συνεχίστε με τις
+ παρακάτω οδηγίες, ξεκινώντας από το τρίτο βήμα.</para>
+ </step>
+
+ <step>
+ <title>Ενεργοποίηση της Σειριακής Κονσόλας μέσω του CD
+ Εγκατάστασης</title>
+ <indexterm>
+ <primary><command>mount</command></primary>
+ </indexterm>
+
+ <para>Αν επρόκειτο να εκκινήσετε από το CD που δημιουργήσατε από
+ το ISO αρχείο που κατεβάσατε (δείτε το <xref
+ linkend="install-cdrom">), το &os; θα ξεκινούσε κανονικά
+ και θα χρησιμοποιούσε τη συνήθη μέθοδο εγκατάστασης. Θέλουμε
+ ωστόσο να ξεκινήσουμε σε κατάσταση σειριακής κονσόλας για την
+ εγκατάσταση. Για να γίνει αυτό, θα πρέπει να εξάγουμε τα
+ αρχεία που περιέχει το ISO, να αλλάξουμε κάποια από αυτά και
+ να το αναδημιουργήσουμε πριν το γράψουμε σε κανονικό CD.</para>
+
+ <para>Στο &os; σύστημα που έχετε αποθηκεύσει το αρχικό ISO, π.χ.
+ <filename>&os;-<replaceable>&rel.current;</replaceable>-RELEASE-<replaceable>i386</replaceable>-disc1.iso</filename>
+ χρησιμοποιήστε την εντολή &man.tar.1; για να κάνετε εξαγωγή των
+ αρχείων που περιέχει:</para>
+
+ <screen>&prompt.root; <userinput>mkdir <replaceable>/path/to/headless-iso</replaceable></userinput>
+&prompt.root; <userinput>tar -C <replaceable>/path/to/headless-iso</replaceable> -pxvf &os;-<replaceable>&rel.current;</replaceable>-RELEASE-<replaceable>i386</replaceable>-disc1.iso</userinput></screen>
+
+ <para>Θα πρέπει τώρα να αλλάξουμε το μέσο εγκατάστασης ώστε να
+ ξεκινάει σε σειριακή κονσόλα. Θα πρέπει να προσθέσετε μια
+ γραμμή στο αρχείο <filename>loader.conf</filename> που
+ ανακτήσατε από το αρχείο ISO, ώστε να ενεργοποιήσετε την
+ σειριακή κονσόλα ως κονσόλα συστήματος:</para>
+
+ <screen>&prompt.root; <userinput>echo 'console="comconsole"' &gt;&gt; <replaceable>/path/to/headless-iso</replaceable>/boot/loader.conf</userinput></screen>
+
+ <para>Μπορούμε έπειτα να δημιουργήσουμε ένα νέο αρχείο ISO που
+ να περιλαμβάνει τις τροποποιήσεις μας. Για το σκοπό αυτό θα
+ χρησιμοποιήσουμε το εργαλείο &man.mkisofs.8; το οποίο
+ περιλαμβάνεται στο port <filename
+ role="package">sysutils/cdrtools</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mkisofs -v -b boot/cdboot -no-emul-boot -r -J -V "<replaceable>Headless_install</replaceable>" \
+ -o <replaceable>Headless-</replaceable>&os;-<replaceable>&rel.current;</replaceable>-RELEASE-<replaceable>i386</replaceable>-disc1.iso <replaceable>/path/to/headless-iso</replaceable></userinput></screen>
+
+ <para>Μπορείτε τώρα να γράψετε το νέο αρχείο ISO σε CD,
+ χρησιμοποιώντας την εφαρμογή εγγραφής που προτιμάτε.</para>
+ </step>
+
+ <step>
+ <title>Συνδέοντας Καλώδιο Τύπου Null-modem</title>
+
+ <indexterm><primary>null-modem cable</primary></indexterm>
+ <para>Χρειάζεται τώρα να συνδέσετε ένα καλώδιο τύπου
+ <link linkend="term-cables-null">null-modem </link> μεταξύ των
+ δύο μηχανημάτων. Απλώς συνδέστε το καλώδιο στις σειριακές πόρτες
+ των δύο μηχανημάτων. <emphasis>Δεν πρόκειται να δουλέψει
+ κανονικό σειριακό καλώδιο</emphasis>, χρειάζεται καλώδιο τύπου
+ null modem, όπου κάποια από τα ζεύγη καλωδίων διασταυρώνονται
+ εσωτερικά.</para>
+ </step>
+
+ <step>
+ <title>Εκκίνηση για την Εγκατάσταση</title>
+
+ <para>Έχει έρθει η ώρα να προχωρήσουμε στην εγκατάσταση. Συνδέστε
+ τη USB μνήμη flash στο μηχάνημα που θέλετε να εγκαταστήσετε χωρίς
+ οθόνη και πληκτρολόγιο και ενεργοποιήστε το. Αν πρόκειται να
+ χρησιμοποιήσετε το CD που ετοιμάσατε, ενεργοποιήστε το μηχάνημα
+ και τοποθετήστε το CD στον οδηγό CDROM.</para>
+ </step>
+
+ <step>
+ <title>Συνδεθείτε με το Headless Μηχάνημα</title>
+ <indexterm>
+ <primary><command>cu</command></primary>
+ </indexterm>
+ <para>Θα πρέπει τώρα να συνδεθείτε με το μηχάνημα σας,
+ χρησιμοποιώντας την &man.cu.1;:</para>
+
+ <screen>&prompt.root; <userinput>cu -l /dev/cuau0</userinput></screen>
+
+ <para>Στο &os;&nbsp;7.<replaceable>X</replaceable> χρησιμοποιήστε
+ την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cu -l /dev/cuad0</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>Αυτό είναι! Μπορείτε τώρα να ελέγξετε το headless μηχάνημα μέσω
+ της σύνδεσης <command>cu</command>. Μετά τη φόρτωση του πυρήνα,
+ θα σας ζητηθεί να επιλέξετε το είδος του τερματικού που θα
+ χρησιμοποιηθεί. Επιλέξτε την έγχρωμη κονσόλα (&os; color console)
+ και συνεχίστε με την εγκατάσταση σας.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="install-diff-media">
+ <title>Προετοιμάζοντας τα Δικά σας Μέσα Εγκατάστασης</title>
+
+ <note>
+ <para>Για να αποφύγουμε την επανάληψη, λέγοντας
+ <quote>&os; CD-ROM</quote> στο τμήμα αυτό, εννοούμε ένα CD-ROM ή DVD
+ του &os; που έχετε αγοράσει ή δημιουργήσει μόνος σας.</para>
+ </note>
+
+ <para>Υπάρχουν κάποιες περιπτώσεις στις οποίες χρειάζεται να δημιουργήσετε
+ τα δικά σας μέσα ή πηγές εγκατάστασης του &os;. Μπορεί να είναι φυσικά
+ μέσα, όπως για παράδειγμα μια ταινία, ή πηγές που μπορεί να
+ χρησιμοποιήσει το <application>sysinstall</application> για να ανακτήσει
+ τα αρχεία, όπως π.χ. μια τοπική τοποθεσία FTP, ή μια κατάτμηση
+ &ms-dos;</para>
+
+ <para>Για παράδειγμα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Έχετε πολλά μηχανήματα συνδεμένα στο τοπικό σας δίκτυο, και ένα
+ μόνο CD-ROM του &os;. Θέλετε να δημιουργήσετε μια τοπική τοποθεσία
+ FTP χρησιμοποιώντας τα περιεχόμενα του &os; CD-ROM, και έπειτα να
+ ρυθμίσετε τα μηχανήματα σας να χρησιμοποιούν αυτό το FTP site αντί
+ για να συνδέονται στο Internet.</para>
+ </listitem>
+
+ <listitem>
+ <para>Έχετε ένα CD-ROM του &os; αλλά το &os; δεν αναγνωρίζει το οδηγό
+ σας CD/DVD, ενώ το &ms-dos; / &windows; το αναγνωρίζει. Θέλετε να
+ αντιγράψετε τα αρχεία του &os; σε μια κατάτμηση &ms-dos; στο ίδιο
+ μηχάνημα και να εγκαταστήσετε το &os; χρησιμοποιώντας αυτά τα
+ αρχεία.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ο υπολογιστής που θέλετε να εγκαταστήσετε δεν έχει οδηγό CD/DVD
+ ή κάρτα δικτύου, αλλά μπορείτε να συνδέσετε ένα σειριακό ή
+ παράλληλο καλώδιο τύπου <quote>Laplink</quote> προς ένα υπολογιστή
+ που διαθέτει.</para>
+ </listitem>
+
+ <listitem>
+ <para>Θέλετε να δημιουργήσετε μια ταινία, που μπορεί να χρησιμοποιηθεί
+ για την εγκατάσταση του &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2 id="install-cdrom">
+ <title>Δημιουργώντας ένα CD-ROM Εγκατάστασης</title>
+
+ <para>Ως τμήμα κάθε έκδοσης, το &os; project δημιουργεί δύο εικόνες
+ CD-ROM (<quote>ISO image</quote>). Οι εικόνες αυτές μπορούν να
+ γραφούν σε CD αν έχετε εγγραφέα CD-ROM, και ακολούθως να
+ χρησιμοποιηθούν για την εγκατάσταση του &os;. Αν έχετε εγγραφέα
+ CD-ROM και γρήγορη σύνδεση στο Internet, αυτός είναι ο ευκολότερος
+ τρόπος να εγκαταστήσετε το &os;.</para>
+
+ <procedure>
+ <step>
+ <title>Κατεβάστε τα Σωστά ISO Images</title>
+
+ <para>Μπορείτε να κατεβάσετε τα ISO images για κάθε έκδοση από την
+ τοποθεσία
+ <filename>ftp://ftp.FreeBSD.org/pub/FreeBSD/ISO-IMAGES-<replaceable>arch</replaceable>/<replaceable>version</replaceable></filename>
+ ή το πλησιέστερο σε σας mirror.
+ Υποκαταστήστε το <replaceable>arch</replaceable> και
+ <replaceable>version</replaceable> όπως απαιτείται.</para>
+
+ <para>Ο κατάλογος θα περιέχει φυσιολογικά τα ακόλουθα images:</para>
+
+ <table frame="none">
+ <title>Ονοματολογία και Επεξηγήσεις των ISO Images για FreeBSD 7.<replaceable>X</replaceable> και 8.<replaceable>X</replaceable></title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Όνομα Αρχείου</entry>
+
+ <entry>Περιεχόμενα</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-bootonly.iso</filename></entry>
+
+ <entry>Αυτό το αρχείο ISO σας επιτρέπει να εκκινήσετε την
+ εγκατάσταση μέσω CDROM, αλλά δεν περιέχει τη δυνατότητα
+ να εγκαταστήσετε το &os; μόνο μέσω του CD. Θα πρέπει
+ να κάνετε εγκατάσταση μέσω δικτύου (π.χ. μέσω ενός
+ εξυπηρετητή FTP) μετά την εκκίνηση από το CD.</entry>
+ </row>
+
+ <row>
+ <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-dvd1.iso.gz</filename></entry>
+
+ <entry>Αυτό το αρχείο ISO, μεγέθους DVD, περιέχει όλα
+ τα απαιτούμενα αρχεία για την εγκατάσταση ενός βασικού
+ συστήματος &os;, καθώς και μια συλλογή από έτοιμα
+ πακέτα και τεκμηρίωση. Υποστηρίζει επίσης εκκίνηση
+ σε κατάσταση <quote>livefs</quote> η οποία είναι χρήσιμη
+ σε περίπτωση που θέλετε να διορθώσετε προβλήματα κάποιας
+ υπάρχουσας εγκατάστασης.</entry>
+ </row>
+
+ <row>
+ <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-memstick.img</filename></entry>
+
+ <entry>Μπορείτε να γράψετε αυτή την εικόνα σε μια USB μνήμη
+ flash και να τη χρησιμοποιήσετε για να εγκαταστήσετε
+ &os; σε μηχανήματα που υποστηρίζουν εκκίνηση από οδηγούς
+ USB. Υποστηρίζεται επίσης εκκίνηση σε κατάσταση
+ <quote>livefs</quote>. Περιέχει τα πακέτα της
+ τεκμηρίωσης, αλλά δεν περιέχει άλλα πακέτα προς
+ εγκατάσταση. Το αρχείο αυτό δεν διατίθεται για
+ &os;&nbsp;7.<replaceable>X</replaceable>.</entry>
+ </row>
+
+ <row>
+ <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-disc1.iso</filename></entry>
+
+ <entry>Το ISO αυτό περιέχει το βασικό σύστημα του &os; και
+ τα πακέτα της τεκμηρίωσης. Δεν περιέχει άλλα πακέτα
+ προς εγκατάσταση.</entry>
+ </row>
+
+ <row>
+ <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-disc2.iso</filename></entry>
+
+ <entry>Αυτό το ISO περιέχει όσο πακέτα εφαρμογών μπορούν
+ να χωρέσουν στο διαθέσιμο χώρο του. Δεν διατίθεται για
+ &os;&nbsp;8.<replaceable>X</replaceable>.</entry>
+ </row>
+
+ <row>
+ <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-disc3.iso</filename></entry>
+
+ <entry>Ακόμα ένα ISO το οποίο περιέχει όσα πακέτα μπορούν
+ να χωρέσουν στο διαθέσιμο χώρο του. Δεν διατίθεται για
+ &os;&nbsp;8.0 και μεταγενέστερες εκδόσεις.</entry>
+ </row>
+
+ <row>
+ <entry><filename><replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-docs.iso</filename></entry>
+
+ <entry>H τεκμηρίωση του &os;.</entry>
+ </row>
+
+ <row>
+ <entry><filename>&os;-<replaceable>version</replaceable>-RELEASE-<replaceable>arch</replaceable>-livefs.iso</filename></entry>
+
+ <entry>Αυτό το ISO παρέχει υποστήριξη για εκκίνηση σε
+ κατάσταση <quote>livefs</quote> (για λειτουργίες
+ ανάκτησης) αλλά δεν υποστηρίζει εγκατάσταση του
+ λειτουργικού από αυτό.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <note>
+ <para>Οι εκδόσεις του κλάδου 7.<replaceable>X</replaceable>
+ πριν από το &os;&nbsp;7.3 και οι εκδόσεις του κλάδου
+ 8.<replaceable>Χ</replaceable> πριν από το &os;&nbsp;8.0
+ χρησιμοποιούσαν διαφορετική ονοματολογία αρχείων. Το όνομα
+ του αρχείου ISO σε αυτές τις εκδόσεις δεν ξεκινάει με
+ <literal>&os;-</literal>.</para>
+ </note>
+
+ <para>Θα <emphasis>πρέπει</emphasis> να κατεβάσετε είτε το
+ <literal>bootonly</literal> ISO, είτε το
+ <literal>disc1</literal>. Μην κατεβάσετε και τα δύο, καθώς το
+ <literal>disc1</literal> περιέχει τα πάντα που περιέχει και το
+ <literal>bootonly</literal>.</para>
+
+ <para>Χρησιμοποιήστε το <literal>bootonly</literal> αν έχετε
+ φθηνή και γρήγορη πρόσβαση στο Internet. Θα σας επιτρέψει να
+ εγκαταστήσετε το &os; και μπορείτε έπειτα να εγκαταστήσετε
+ εφαρμογές τρίτων κατασκευαστών που χρειάζεστε, κατεβάζοντας τις
+ μέσω του συστήματος πακέτων και ports (δείτε το <xref
+ linkend="ports">).</para>
+
+ <para>Χρησιμοποιήστε το <literal>dvd1</literal> αν θέλετε να
+ εγκαταστήσετε μια έκδοση του &os; και θέλετε ταυτόχρονα να έχετε
+ στο ίδιο DVD και μια σεβαστή συλλογή από πακέτα τρίτου
+ κατασκευαστή.</para>
+
+ <para>Τα πρόσθετα CD-ROM είναι χρήσιμα αλλά όχι απαραίτητα,
+ ειδικά αν έχετε πρόσβαση υψηλής ταχύτητας στο Internet.</para>
+ </step>
+
+ <step>
+ <title>Γράψτε τα CD</title>
+
+ <para>Πρέπει κατόπιν να γράψετε τις εικόνες (images) των CD σε
+ άδεια CD. Αν το κάνετε αυτό σε άλλο &os; σύστημα, δείτε το
+ <xref linkend="creating-cds"> για περισσότερες πληροφορίες
+ (ειδικότερα, <xref linkend="burncd"> και
+ <xref linkend="cdrecord">).</para>
+
+ <para>Αν πρόκειται να χρησιμοποιήσετε άλλο λειτουργικό για την
+ εργασία αυτή, θα χρειαστεί να χρησιμοποιήσετε τις δυνατότητες που
+ παρέχονται από τα αντίστοιχα προγράμματα εγγραφής CD του
+ λειτουργικού αυτού. Τα images που παρέχονται είναι σε
+ στάνταρ ISO μορφή και υποστηρίζονται απευθείας από πολλές
+ εφαρμογές εγγραφής CD.</para>
+ </step>
+ </procedure>
+
+ <note><para>Αν ενδιαφέρεστε να δημιουργήσετε μια εξειδικευμένη έκδοση
+ του &os;, δείτε το <ulink
+ url="&url.articles.releng;">Release Engineering Article</ulink>.</para></note>
+ </sect2>
+
+ <sect2 id="install-ftp">
+ <title>Δημιουργήστε μια Τοπική FTP Τοποθεσία με το CD-ROM
+ του &os;</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>network</secondary>
+ <tertiary>FTP</tertiary>
+ </indexterm>
+
+ <para>Τα CD-ROM του &os; έχουν την ίδια δομή με την τοποθεσία FTP. Για
+ το λόγο αυτό είναι πολύ εύκολο να δημιουργήσετε μια τοπική τοποθεσία
+ FTP που να μπορεί να χρησιμοποιηθεί από άλλα μηχανήματα του δικτύου
+ σας κατά την εγκατάσταση του &os;.</para>
+
+ <procedure>
+ <step>
+ <para>Στο &os; μηχάνημα που θα φιλοξενήσει την FTP τοποθεσία,
+ βεβαιωθείτε ότι το CD-ROM είναι μέσα στον οδηγό και έχει γίνει
+ προσάρτηση του στον κατάλογο <filename>/cdrom</filename>.</para>
+
+ <screen>&prompt.root; <userinput>mount /cdrom</userinput></screen>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε ένα λογαριασμό για ανώνυμο FTP στο
+ <filename>/etc/passwd</filename>. Για το σκοπό αυτό,
+ επεξεργαστείτε το αρχείο
+ <filename>/etc/passwd</filename> χρησιμοποιώντας το &man.vipw.8;
+ και προσθέτοντας την ακόλουθη γραμμή:</para>
+
+ <programlisting>ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting>
+ </step>
+
+ <step>
+ <para>Βεβαιωθείτε ότι είναι ενεργοποιημένη η υπηρεσία FTP στο
+ <filename>/etc/inetd.conf</filename>.</para>
+ </step>
+ </procedure>
+
+ <para>Οποιοσδήποτε έχει τώρα δικτυακή σύνδεση με το μηχάνημα σας, μπορεί
+ τώρα να επιλέξει ως μέσο εγκατάστασης το FTP και να γράψει
+ <userinput>ftp://<replaceable>your machine</replaceable></userinput>
+ αφού επιλέξει <quote>Other</quote> στο μενού FTP sites κατά την
+ διάρκεια της εγκατάστασης.</para>
+
+ <note>
+ <para>Αν το μέσο εκκίνησης (συνήθως δισκέτες) για τους πελάτες FTP δεν
+ είναι ακριβώς η ίδια έκδοση με αυτή που παρέχεται από το τοπικό FTP,
+ η εφαρμογή <application>sysinstall</application> δεν θα σας
+ επιτρέψει να ολοκληρώσετε την εγκατάσταση. Αν οι εκδόσεις δεν είναι
+ όμοιες και επιθυμείτε να προσπεράσετε αυτό τον περιορισμό, θα
+ πρέπει να πάτε στο μενού <guimenu>Options</guimenu> και να αλλάξετε
+ το όνομα της διανομής (distribution name) σε
+ <guimenuitem>any</guimenuitem>.</para>
+ </note>
+
+ <warning>
+ <para>Η παραπάνω τακτική είναι κατάλληλη για ένα μηχάνημα που είναι
+ στο τοπικό σας δίκτυο και προστατεύεται από firewall. Αν προσφέρετε
+ υπηρεσίες FTP σε άλλα μηχανήματα στο Internet (και όχι στο τοπικό
+ σας δίκτυο) θα εκθέσετε το μηχάνημα σας σε crackers και άλλους
+ ανεπιθύμητους. Αν το κάνετε αυτό, σας συνιστούμε οπωσδήποτε να
+ ακολουθήσετε σωστές τακτικές ασφαλείας.</para>
+ </warning>
+ </sect2>
+
+ <sect2>
+ <title>Δημιουργώντας Δισκέτες Εγκατάστασης</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>floppies</secondary>
+ </indexterm>
+
+ <para>Αν θα πρέπει να εγκαταστήσετε από δισκέτες (το οποίο σας
+ συνιστούμε να <emphasis>μην</emphasis> κάνετε), είτε λόγω μη
+ υποστηριζόμενου υλικού, είτε απλώς επειδή επιμένετε να κάνετε τα
+ πράγματα με το δύσκολο τρόπο, θα πρέπει πρώτα να προετοιμάσετε κάποιες
+ δισκέτες για την εγκατάσταση.</para>
+
+ <para>Κατά ελάχιστο, θα χρειαστείτε τόσες δισκέτες 1.44&nbsp;MB
+ όσες χρειάζονται για να κρατήσουν όλα τα αρχεία του
+ καταλόγου <filename>base</filename> (base distribution). Αν
+ προετοιμάζετε τις δισκέτες από το &ms-dos;, θα
+ <emphasis>πρέπει</emphasis> να τις διαμορφώσετε με την εντολή του
+ &ms-dos; <command>FORMAT</command>. Αν χρησιμοποιείτε &windows;,
+ χρησιμοποιήστε τον Explorer για να διαμορφώσετε τις δισκέτες
+ (δεξί κλικ στον οδηγό <devicename>A:</devicename> και επιλέξτε
+ <quote>Format (Διαμόρφωση)</quote>).</para>
+
+ <para>Να <emphasis>μην</emphasis> εμπιστεύεστε τις προδιαμορφωμένες
+ από το εργοστάσιο δισκέτες. Να τις διαμορφώσετε ξανά εσείς για να
+ είστε σίγουρος. Πολλά προβλήματα που έχουν αναφερθεί από χρήστες
+ στο παρελθόν έχουν προκύψει από τη χρήση ακατάλληλα διαμορφωμένων
+ μέσων, και για το λόγο αυτό το τονίζουμε ιδιαίτερα τώρα.</para>
+
+ <para>Αν δημιουργείτε τις δισκέτες σε άλλο μηχάνημα &os; η διαμόρφωση
+ δεν είναι άσχημη ιδέα, αν και δε χρειάζεται να δημιουργήσετε σύστημα
+ αρχείων &ms-dos; σε κάθε μια. Μπορείτε αντί για αυτό, να
+ χρησιμοποιήσετε τις εντολές <command>bsdlabel</command> και
+ <command>newfs</command> για να δημιουργήσετε σύστημα αρχείων UFS
+ σε αυτές, όπως φαίνεται από την παρακάτω ακολουθία εντολών:</para>
+
+ <screen>&prompt.root; <userinput>fdformat -f 1440 fd0.1440</userinput>
+&prompt.root; <userinput>bsdlabel -w fd0.1440 floppy3</userinput>
+&prompt.root; <userinput>newfs -t 2 -u 18 -l 1 -i 65536 /dev/fd0</userinput></screen>
+
+ <para>Μπορείτε έπειτα να τις προσαρτήσετε και να τις γράψετε σαν
+ οποιοδήποτε άλλο σύστημα αρχείων.</para>
+
+ <para>Αφού διαμορφώσετε τις δισκέτες, θα πρέπει να γράψετε τα αρχεία
+ σε αυτές. Τα αρχεία της εγκατάστασης είναι κομμένα σε τμήματα με
+ κατάλληλο μέγεθος ώστε πέντε από αυτά να χωράνε σε μια συνηθισμένη
+ δισκέτα 1.44&nbsp;MB. Διατρέξτε όλες τις δισκέτες σας, γράφοντας σε
+ κάθε μια όσα αρχεία χωράνε, μέχρι να γράψετε όλα τα distribution
+ sets που επιθυμείτε με τον τρόπο αυτό. Κάθε distribution set θα
+ πρέπει να αποθηκευτεί σε ένα υποκατάλογο της δισκέτας, π.χ.:
+ <filename>a:\base\base.aa</filename>,
+ <filename>a:\base\base.ab</filename>, κ.ο.κ.</para>
+
+ <important>
+ <para>Το αρχείο <filename>base.inf</filename> πρέπει επίσης να
+ βρίσκεται στην πρώτη δισκέτα του σετ <filename>base</filename>
+ καθώς το πρόγραμμα εγκατάστασης το χρειάζεται για να γνωρίζει πόσα
+ επιπλέον τμήματα αρχείων πρέπει να διαβάσει και να συνενώσει για
+ το σχηματισμό της διανομής.</para>
+ </important>
+
+ <para>Όταν φτάσετε στην οθόνη Media κατά τη διαδικασία εγκατάστασης,
+ επιλέξτε <guimenuitem>Floppy</guimenuitem> και θα ερωτηθείτε για
+ τα υπόλοιπα.</para>
+ </sect2>
+
+ <sect2 id="install-msdos">
+ <title>Εγκατάσταση από Κατάτμηση &ms-dos;</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>from MS-DOS</secondary>
+ </indexterm>
+ <para>Για να προετοιμαστείτε για μια εγκατάσταση από κατάτμηση
+ &ms-dos;, αντιγράψτε τα αρχεία της διανομής σε ένα κατάλογο που θα
+ ονομάσετε <filename>freebsd</filename> στο ριζικό κατάλογο της
+ κατάτμησης. Για παράδειγμα, <filename>c:\freebsd</filename>. Η
+ δομή των καταλόγων του CDROM ή της τοποθεσίας FTP θα πρέπει να
+ αναπαραχθεί μερικώς μέσα σε αυτό τον κατάλογο, για το λόγο αυτό
+ σας συνιστούμε να χρησιμοποιήσετε την εντολή
+ <command>xcopy</command> αν κάνετε την αντιγραφή από CD.
+ Για παράδειγμα, για να προετοιμάσετε μια ελάχιστη εγκατάσταση του
+ &os;:</para>
+
+ <screen><prompt>C:\&gt;</prompt> <userinput>md c:\freebsd</userinput>
+<prompt>C:\&gt;</prompt> <userinput>xcopy e:\bin c:\freebsd\bin\ /s</userinput>
+<prompt>C:\&gt;</prompt> <userinput>xcopy e:\manpages c:\freebsd\manpages\ /s</userinput></screen>
+
+ <para>υποθέτοντας ότι ο διαθέσιμος ελεύθερος χώρος σας βρίσκεται στο
+ <devicename>C:</devicename> και η μονάδα σας CDROM είναι στο
+ <devicename>E:</devicename>.</para>
+
+ <para>Αν δεν έχετε οδηγό CDROM, μπορείτε να κατεβάσετε την διανομή
+ από την τοποθεσία <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/">ftp.FreeBSD.org</ulink>.
+ Κάθε distribution set είναι στο δικό του κατάλογο. Για παράδειγμα
+ το σετ <emphasis>base</emphasis> μπορεί να βρεθεί στον κατάλογο
+ <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/base/">&rel.current;/base/</ulink>.</para>
+
+ <para>Για όσα distribution set θέλετε να εγκαταστήσετε από μια
+ κατάτμηση &ms-dos; (και για τα οποία έχετε διαθέσιμο ελεύθερο χώρο),
+ εγκαταστήστε τα κάτω από το <filename>c:\freebsd</filename> &mdash;
+ To σετ <literal>BIN</literal> είναι το μόνο που απαιτείται για μια
+ ελάχιστη εγκατάσταση.</para>
+ </sect2>
+
+ <sect2>
+ <title>Δημιουργώντας Ταινία Εγκατάστασης</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>from QIC/SCSI Tape</secondary>
+ </indexterm>
+ <para>Η εγκατάσταση από ταινία, είναι ίσως η ευκολότερη μέθοδος εκτός
+ από την εγκατάσταση μέσω FTP ή CDROM. Το πρόγραμμα εγκατάστασης
+ απλώς αναμένει τα αρχεία να έχουν γραφτεί στην ταινία με μορφή tar.
+ Αφού επιλέξετε τα σετ εγκατάστασης που σας ενδιαφέρουν, απλώς κάντε
+ τα tar στην ταινία:</para>
+
+ <screen>&prompt.root; <userinput>cd /freebsd/distdir</userinput>
+&prompt.root; <userinput>tar cvf /dev/rwt0 dist1 ... dist2</userinput></screen>
+
+ <para>Όταν κάνετε την εγκατάσταση, θα πρέπει να βεβαιωθείτε ότι έχετε
+ αφήσει αρκετό ελεύθερο χώρο σε κάποιο προσωρινό κατάλογο (τον οποίο
+ θα μπορέσετε να επιλέξετε) για να χωρέσει τα
+ <emphasis>πλήρη</emphasis> περιεχόμενα της ταινίας που έχετε
+ δημιουργήσει. Εξαιτίας της φύσης της ταινίας, που δεν επιτρέπει
+ τυχαία πρόσβαση, αυτή η μέθοδος εγκατάστασης χρειάζεται αρκετό
+ προσωρινό χώρο αποθήκευσης.</para>
+
+ <note>
+ <para>Καθώς ξεκινάτε την εγκατάσταση, η ταινία πρέπει να είναι στον
+ οδηγό <emphasis>πριν</emphasis> ξεκινήσετε από τη δισκέτα
+ εκκίνησης. Διαφορετικά, μπορεί να αποτύχει η ανίχνευση της από τη
+ διαδικασία εγκατάστασης.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Πριν Εγκαταστήσετε μέσω Δικτύου</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>network</secondary>
+ <tertiary>serial (PPP)</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>network</secondary>
+ <tertiary>parallel (PLIP)</tertiary>
+ </indexterm>
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>network</secondary>
+ <tertiary>Ethernet</tertiary>
+ </indexterm>
+
+ <para>Υπάρχουν τρεις διαθέσιμοι τύποι δικτυακής εγκατάστασης.
+ Ethernet (τυποποιημένος ελεγκτής Ethernet),
+ Σειριακής Θύρας (PPP), Παράλληλης Θύρας
+ (PLIP (καλώδιο laplink)).</para>
+
+ <para>Για την γρηγορότερη δυνατή εγκατάσταση μέσω δικτύου,
+ ένας ελεγκτής Ethernet είναι πάντα καλή επιλογή! Το &os; υποστηρίζει
+ τις περισσότερες κοινές κάρτες Ethernet. Μπορείτε να βρείτε ένα
+ πίνακα των υποστηριζόμενων καρτών (και τις απαιτούμενες ρυθμίσεις
+ τους) στις Σημειώσεις Υλικού (Hardware Notes) κάθε έκδοσης &os;. Αν
+ χρησιμοποιείτε κάποια από τις υποστηριζόμενες κάρτες Ethernet PCMCIA
+ βεβαιωθείτε ότι την έχετε βάλει στην υποδοχή
+ <emphasis>πριν</emphasis> ενεργοποιήσετε το φορητό υπολογιστή σας!
+ Το &os; δεν υποστηρίζει δυστυχώς αυτή τη στιγμή την επιτόπου
+ εισαγωγή καρτών PCMCIA κατά τη διάρκεια της εγκατάστασης.</para>
+
+ <para>θα πρέπει επίσης να ξέρετε για το δίκτυο σας, τη διεύθυνση IP
+ σας, την τιμή της μάσκας υποδικτύου (netmask) για τη κλάση του
+ δικτύου σας, και το όνομα του μηχανήματος σας. Αν κάνετε εγκατάσταση
+ μέσω σύνδεσης PPP και δεν έχετε στατική διεύθυνση, μην ανησυχείτε
+ καθώς ο ISP σας μπορεί να σας δώσει διεύθυνση δυναμικά. Ο
+ διαχειριστής του συστήματος σας, μπορεί να σας δώσει τις τιμές που
+ πρέπει να χρησιμοποιήσετε για το δίκτυο σας. Αν πρόκειται να
+ αναφερθείτε σε άλλα μηχανήματα με χρήση του ονόματος τους αντί για
+ την διεύθυνση IP τους, θα χρειαστείτε επίσης ένα διακομιστή ονομάτων
+ (DNS) και πιθανόν τη διεύθυνση μιας πύλης (gateway) (αν
+ χρησιμοποιείτε PPP, πρόκειται για τη διεύθυνση IP του παροχέα σας)
+ για να επικοινωνήσετε με αυτόν. Αν θέλετε να κάνετε FTP εγκατάσταση
+ διαμέσου μεσολαβητή HTTP, θα πρέπει να ξέρετε επίσης τη διεύθυνση
+ του μεσολαβητή (proxy).
+ Αν δεν ξέρετε τις απαντήσεις σε όλες ή τις περισσότερες από αυτές
+ τις απαντήσεις, θα πρέπει πράγματι να μιλήσετε στο διαχειριστή του
+ συστήματος σας ή τον ISP σας <emphasis>πριν</emphasis> επιχειρήσετε
+ αυτό τον τύπο εγκατάστασης.</para>
+
+ <para>Αν χρησιμοποιείτε modem, τότε το PPP είναι σχεδόν σίγουρα η μόνη
+ σας επιλογή. Βεβαιωθείτε ότι έχετε άμεσα διαθέσιμες τις πληροφορίες
+ για τον παροχέα σας, καθώς θα τις χρειαστείτε σχετικά νωρίς στη
+ διαδικασία εγκατάστασης.</para>
+
+ <para>Αν χρησιμοποιείτε PAP ή CHAP για να συνδεθείτε με τον ISP σας
+ (με άλλα λόγια, μπορείτε στα &windows; να συνδεθείτε με τον ISP σας
+ χωρίς να χρησιμοποιήσετε script), τότε το μόνο που θα χρειαστείτε
+ είναι να γράψετε την εντολή <command>dial</command> στην προτροπή
+ της εφαρμογής <application>ppp</application>. Διαφορετικά, θα
+ πρέπει να ξέρετε πως να καλέσετε τον ISP σας, χρησιμοποιώντας
+ εντολές <quote>AT commands</quote> οι οποίες είναι συγκεκριμένες για
+ το modem σας, καθώς το πρόγραμμα κλήσεων του PPP (dialer) παρέχει
+ ένα πολύ απλό εξομοιωτή τερματικού. Ανατρέξτε στο user-ppp <link
+ linkend="userppp">handbook</link> και <ulink
+ url="&url.books.faq;/ppp.html">FAQ</ulink> για περισσότερες
+ πληροφορίες. Αν έχετε προβλήματα, μπορείτε να κατευθύνετε την
+ καταγραφή (logging) στην οθόνη με την εντολή
+ <command>set log local ...</command>.</para>
+
+ <para>Αν υπάρχει διαθέσιμη φυσική σύνδεση με άλλο μηχάνημα &os;,
+ μπορείτε επίσης να εγκαταστήσετε
+ μέσω παράλληλου καλωδίου <quote>laplink</quote>. Η ταχύτητα
+ μετάδοσης δεδομένων μέσω της παράλληλης θύρας είναι αρκετά υψηλότερη
+ συνήθως από ότι της σειριακής (μέχρι 50&nbsp;kbytes/sec), με
+ αποτέλεσμα γρηγορότερη εγκατάσταση.</para>
+
+ <sect3>
+ <title>Πριν Εγκαταστήσετε μέσω NFS</title>
+
+ <indexterm>
+ <primary>installation</primary>
+ <secondary>network</secondary>
+ <tertiary>NFS</tertiary>
+ </indexterm>
+ <para>Η εγκατάσταση μέσω NFS είναι αρκετά απλή. Απλώς αντιγράψτε
+ τα αρχεία της διανομής του &os; σε ένα εξυπηρετητή NFS και δείξτε
+ προς αυτόν κατά την επιλογή μέσου NFS.</para>
+
+ <para>Αν ο εξυπηρετητής αυτός υποστηρίζει μόνο προνομιακή θύρα
+ (<quote>privileged port</quote>) (αυτή είναι η τυπική ρύθμιση σε
+ σταθμούς εργασίας της SUN), θα χρειαστεί να θέσετε την επιλογή
+ <literal>NFS Secure</literal> στο μενού
+ <guimenu>Options</guimenu> πριν μπορέσετε να προχωρήσετε με την
+ εγκατάσταση.</para>
+
+ <para>Αν η κάρτα σας Ethernet είναι χαμηλής ποιότητας και υποφέρει
+ από πολύ αργούς ρυθμούς μεταφοράς, ίσως θελήσετε να ενεργοποιήσετε
+ και την επιλογή <literal>NFS Slow</literal>.</para>
+
+ <para>Για να λειτουργήσει η εγκατάσταση NFS, ο εξυπηρετητής θα
+ πρέπει να υποστηρίζει προσαρτήσεις υποκαταλόγων (subdir mounts),
+ για παράδειγμα, αν ο κατάλογος της διανομής σας
+ &os;&nbsp;&rel.current; βρίσκεται στο:
+ <filename>ziggy:/usr/archive/stuff/FreeBSD</filename>, τότε ο
+ <hostid>ziggy</hostid> θα πρέπει να επιτρέπει την απευθείας
+ προσάρτηση του <filename>/usr/archive/stuff/FreeBSD</filename>,
+ και όχι μόνο του <filename>/usr</filename> ή του
+ <filename>/usr/archive/stuff</filename>.</para>
+
+ <para>Στο αρχείο <filename>/etc/exports</filename> του &os;, αυτό
+ ελέγχεται από τις επιλογές <option>-alldirs</option>. Άλλοι
+ εξυπηρετητές NFS μπορεί να ακολουθούν διαφορετικές συμβάσεις.
+ Αν λαμβάνετε μηνύματα του τύπου
+ <errorname>permission denied</errorname> από τον εξυπηρετητή,
+ είναι πιθανόν να μην έχετε ρυθμίσει σωστά το παραπάνω.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/install/example-dir1.dot b/el_GR.ISO8859-7/books/handbook/install/example-dir1.dot
new file mode 100644
index 0000000000..d247d02521
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/install/example-dir1.dot
@@ -0,0 +1,12 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/install/example-dir1.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/";
+ root -> "A2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/install/example-dir2.dot b/el_GR.ISO8859-7/books/handbook/install/example-dir2.dot
new file mode 100644
index 0000000000..53e442fb09
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/install/example-dir2.dot
@@ -0,0 +1,13 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/install/example-dir2.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/" -> "B1/";
+ "A1/" -> "B2/";
+ root -> "A2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/install/example-dir3.dot b/el_GR.ISO8859-7/books/handbook/install/example-dir3.dot
new file mode 100644
index 0000000000..abe91a6bc8
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/install/example-dir3.dot
@@ -0,0 +1,13 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/install/example-dir3.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/";
+ root -> "A2/" -> "B1/";
+ "A2/" -> "B2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/install/example-dir4.dot b/el_GR.ISO8859-7/books/handbook/install/example-dir4.dot
new file mode 100644
index 0000000000..1167f13ef5
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/install/example-dir4.dot
@@ -0,0 +1,14 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/install/example-dir4.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/";
+ root -> "A2/" -> "B1/" -> "C1/";
+ "B1/" -> "C2/";
+ "A2/" -> "B2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/install/example-dir5.dot b/el_GR.ISO8859-7/books/handbook/install/example-dir5.dot
new file mode 100644
index 0000000000..b316266895
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/install/example-dir5.dot
@@ -0,0 +1,14 @@
+// $FreeBSD$
+//
+// The FreeBSD Greek Documentation Project
+//
+// %SOURCE% en_US.ISO8859-1/books/handbook/install/example-dir5.dot
+// %SRCID% 1.1
+
+digraph directory {
+ root [label="Root\n/"];
+ root -> "A1/" -> "C1/";
+ "A1/" -> "C2/";
+ root -> "A2/" -> "B1/";
+ "A2/" -> "B2/";
+}
diff --git a/el_GR.ISO8859-7/books/handbook/introduction/chapter.sgml b/el_GR.ISO8859-7/books/handbook/introduction/chapter.sgml
new file mode 100644
index 0000000000..c87e9b72d3
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/introduction/chapter.sgml
@@ -0,0 +1,1077 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Εισαγωγή
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/introduction/chapter.sgml
+ %SRCID% 1.141
+
+-->
+
+<chapter id="introduction">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Ανασχηματισμένο, αναδιοργανωμένο, και μερικώς ξαναγραμμένο
+ από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Εισαγωγή</title>
+
+ <sect1 id="introduction-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Ευχαριστούμε για το ενδιαφέρον σας για το &os;! Το ακόλουθο
+ κεφάλαιο καλύπτει διάφορες πτυχές του &os;&nbsp;Project, όπως την
+ ιστορία του, τους στόχους του, το μοντέλο ανάπτυξης, κ.τ.λ.</para>
+
+ <para>Μετά την ανάγνωση αυτού του κεφαλαίου, θα γνωρίζετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως σχετίζεται το &os; με άλλα λειτουργικά συστήματα Η/Υ.</para>
+ </listitem>
+
+ <listitem>
+ <para>Την ιστορία του &os;&nbsp;Project.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τους στόχους του &os;&nbsp;Project.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τις βασικές αρχές του open-source μοντέλου ανάπτυξης του
+ &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Και φυσικά: από που προέρχεται το όνομα
+ <quote>&os;</quote>.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="nutshell">
+ <title>Καλώς ήλθατε στο &os;!</title>
+ <indexterm><primary>4.4BSD-Lite</primary></indexterm>
+
+ <para>Το &os; είναι ένα λειτουργικό σύστημα βασισμένο στο 4.4BSD-Lite,
+ το οποίο μπορεί να χρησιμοποιηθεί σε Η/Υ Intel (x86 και
+ &itanium;), AMD64 και Sun
+ &ultrasparc;. Σε εξέλιξη βρίσκεται επίσης η διαδικασία μεταφοράς του
+ &os; σε άλλες αρχιτεκτονικές. Μπορείτε επίσης να διαβάσετε για
+ <link linkend="history">την ιστορία του &os;</link>, ή για την
+ <link linkend="relnotes">πιο πρόσφατη επίσημη έκδοση του</link>. Εάν
+ ενδιαφέρεστε να συμβάλλετε με κάποιο τρόπο στο Project (κώδικας,
+ hardware, μη-προσημειωμένα χαρτονομίσματα), διαβάστε το άρθρο <ulink
+ url="&url.articles.contributing;/index.html">Συνεισφέροντας στην
+ Ανάπτυξη του &os;</ulink>.</para>
+
+ <sect2 id="os-overview">
+ <title>Τι μπορεί να κάνει το &os;;</title>
+
+ <para>Το &os; έχει πολλά αξιόλογα χαρακτηριστικά. Μερικά από αυτά
+ είναι:</para>
+
+ <itemizedlist>
+ <indexterm><primary>preemptive multitasking</primary></indexterm>
+ <indexterm><primary>preemptive πολυεπεξεργασία</primary></indexterm>
+ <listitem>
+ <para><emphasis>Preemptive πολυεπεξεργασία</emphasis> (preemptive
+ multitasking) με δυναμικό έλεγχο προτεραιότητας για να
+ εξασφαλιστεί ομαλός και δίκαιος διαμοιρασμός των πόρων του Η/Υ
+ μεταξύ εφαρμογών και χρηστών, ακόμη και στις πιο αντίξοες
+ συνθήκες.</para>
+ </listitem>
+
+ <indexterm><primary>multi-user facilities</primary></indexterm>
+ <indexterm><primary>πολυχρηστικές δυνατότητες</primary></indexterm>
+ <listitem>
+ <para><emphasis>Πολυχρηστικές δυνατότητες</emphasis> (multi-user
+ facilities) οι οποίες επιτρέπουν σε πολλά άτομα ταυτόχρονα να
+ χρησιμοποιήσουν ένα σύστημα &os; για διαφορετικά πράγματα. Αυτό
+ σημαίνει, για παράδειγμα, ότι τα περιφερειακά του συστήματος,
+ όπως εκτυπωτές και οδηγοί ταινιών είναι σωστά μοιρασμένα μεταξύ
+ όλων των χρηστών του συστήματος ή του δικτύου και πως μπορούν να
+ τεθούν συγκεκριμένα όρια σε χρήστες ή ομάδες χρηστών,
+ προστατεύοντας κρίσιμους πόρους του συστήματος από υπερβολική
+ χρήση.</para>
+ </listitem>
+
+ <indexterm><primary>TCP/IP networking</primary></indexterm>
+ <indexterm><primary>δικτυακές δυνατότητες TCP/IP</primary></indexterm>
+ <listitem>
+ <para>Ισχυρές δυνατότητες <emphasis>δικτύωσης TCP/IP</emphasis>
+ (TCP/IP networking) με υποστήριξη για βιομηχανικά πρότυπα όπως
+ τα SCTP, DHCP, NFS, NIS, PPP, SLIP, IPsec και IPv6. Αυτό
+ σημαίνει πως ένα μηχάνημα &os; μπορεί να αλληλεπιδρά εύκολα με
+ άλλα συστήματα και να εργάζεται σαν εταιρικός εξυπηρετητής,
+ υποστηρίζοντας λειτουργίες ζωτικής σημασίας, όπως NFS
+ (απομακρυσμένη πρόσβαση σε αρχεία) και υπηρεσίες ηλεκτρονικού
+ ταχυδρομείου (e-mail), ή την παρουσία του οργανισμού σας στο
+ διαδίκτυο μέσω των υπηρεσιών WWW, FTP, routing και firewall
+ (ασφάλειας).</para>
+ </listitem>
+
+ <indexterm><primary>memory protection</primary></indexterm>
+ <indexterm><primary>προστασία μνήμης</primary></indexterm>
+ <listitem>
+ <para>Η <emphasis>προστασία της μνήμης</emphasis> (memory
+ protection) εξασφαλίζει ότι οι διάφορες εφαρμογές (ή οι χρήστες)
+ δεν αλληλεπιδρούν μεταξύ τους. Μια εφαρμογή που παρουσιάζει
+ κάποιο πρόβλημα δε μπορεί να επηρεάσει άλλες με κανέναν
+ τρόπο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το &os; είναι ένα λειτουργικό σύστημα
+ <emphasis>32-bit</emphasis> (<emphasis>64-bit</emphasis> σε
+ AMD64, και &ultrasparc;) και σχεδιάστηκε με
+ αυτό τον τρόπο εξ' αρχής.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>X Window System</primary>
+ </indexterm>
+ <listitem>
+ <para>Το βιομηχανικό πρότυπο <emphasis>X Window System</emphasis>
+ (X11R6) προσφέρει γραφικό περιβάλλον εργασίας (GUI) στο κόστος
+ μιας κοινής κάρτας VGA και μιας οθόνης και διατίθεται με
+ τον πλήρη πηγαίο κώδικα.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>συμβατότητα εκτελέσιμων</primary>
+ <secondary>Linux</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>συμβατότητα εκτελέσιμων</primary>
+ <secondary>SCO</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>συμβατότητα εκτελέσιμων</primary>
+ <secondary>SVR4</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>συμβατότητα εκτελέσιμων</primary>
+ <secondary>BSD/OS</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>συμβατότητα εκτελέσιμων</primary>
+ <secondary>NetBSD</secondary>
+ </indexterm>
+ <listitem>
+ <para><emphasis>Συμβατότητα εκτελέσιμων</emphasis> με πολλά
+ προγράμματα που έχουν μεταγλωττιστεί για Linux, SCO, SVR4, BSDI
+ και NetBSD.</para>
+ </listitem>
+
+ <listitem>
+ <para>Χιλιάδες <emphasis>έτοιμες-προς-εκτέλεση</emphasis>
+ εφαρμογές είναι διαθέσιμες από την συλλογή
+ <emphasis>ports</emphasis> και <emphasis>packages</emphasis>
+ για το &os;. Γιατί να ψάχνετε στο διαδίκτυο όταν μπορείτε να τα
+ βρείτε όλα εδώ;</para>
+ </listitem>
+
+ <listitem>
+ <para>Στο διαδίκτυο είναι επίσης διαθέσιμες χιλιάδες πρόσθετες και
+ <emphasis>εύκολες στην προσαρμογή</emphasis> εφαρμογές.
+ Το &os; έχει συμβατότητα πηγαίου κώδικα με τα πιο
+ δημοφιλή εμπορικά συστήματα &unix;, επομένως οι περισσότερες
+ εφαρμογές χρειάζονται λίγες έως καθόλου μετατροπές για να
+ μεταγλωττιστούν (compile).</para>
+ </listitem>
+
+ <indexterm><primary>virtual memory</primary></indexterm>
+ <listitem>
+ <para>Η Δυναμική σελιδοποίηση <emphasis>εικονικής μνήμης</emphasis>
+ και το <quote>ολοκληρωμένο VM/buffer cache</quote> παρέχουν
+ υψηλή απόδοση σε εφαρμογές με αυξημένες ανάγκες σε μνήμη, ενώ
+ διατηρούν την ικανοποιητική απόκριση του συστήματος στους άλλους
+ χρήστες.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>Symmetric Multi-Processing (SMP)</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Συμμετρική Πολυ-Επεξεργασία (SMP)</primary>
+ </indexterm>
+ <listitem>
+ <para>Υποστήριξη <emphasis>SMP</emphasis> για μηχανήματα με
+ πολλαπλές CPU.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>compilers</primary>
+ <secondary>C</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>compilers</primary>
+ <secondary>C++</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>compilers</primary>
+ <secondary>FORTRAN</secondary>
+ </indexterm>
+ <listitem>
+ <para>Πλήρης σειρά εργαλείων ανάπτυξης για
+ <emphasis>C</emphasis>, <emphasis>C++</emphasis>,
+ και <emphasis>Fortran</emphasis>. Στη Συλλογή των Ports και των
+ έτοιμων πακέτων, θα βρείτε πολλές ακόμα γλώσσες προγραμματισμού,
+ κατάλληλες τόσο για έρευνα όσο και για ανάπτυξη λογισμικού.</para>
+ </listitem>
+
+ <indexterm><primary>πηγαίος κώδικας</primary></indexterm>
+ <indexterm><primary>source code</primary></indexterm>
+ <listitem>
+ <para><emphasis>Η διαθεσιμότητα του πηγαίου κώδικα</emphasis>
+ ολόκληρου του συστήματος σημαίνει ότι έχετε τον υψηλότερο βαθμό
+ ελέγχου στο περιβάλλον σας. Γιατί να είστε κλειδωμένοι σε ένα
+ κλειστό σύστημα και να είστε εξαρτημένοι από τον προμηθευτή σας,
+ όταν μπορείτε να έχετε ένα πραγματικά ανοιχτό σύστημα;</para>
+ </listitem>
+
+ <listitem>
+ <para>Εκτεταμένη <emphasis>online τεκμηρίωση</emphasis>.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Και πολλά άλλα!</emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm><primary>4.4BSD-Lite</primary></indexterm>
+ <indexterm>
+ <primary>Computer Systems Research Group (CSRG)</primary>
+ </indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <para>Το &os; βασίζεται στην έκδοση 4.4BSD-Lite του Computer
+ Systems Research Group (CSRG) του Πανεπιστημίου της Καλιφόρνιας στο
+ Berkeley, και συνεχίζει την διακεκριμένη παράδοση του στην ανάπτυξη
+ συστημάτων BSD. Επιπρόσθετα στο εξαίρετο έργο που παρείχε το CSRG, το
+ &os;&nbsp;Project ξόδεψε πολλές χιλιάδες ώρες στη βελτιστοποίηση του
+ συστήματος για μέγιστες επιδόσεις και αξιοπιστία σε καθημερινές
+ καταστάσεις πραγματικού φόρτου εργασίας. Αν και πολλοί εμπορικοί
+ κολοσσοί δυσκολεύονται να προσφέρουν λειτουργικά συστήματα με τέτοια
+ χαρακτηριστικά, επιδόσεις και αξιοπιστία, το &os; μπορεί να τα
+ προσφέρει <emphasis>τώρα</emphasis>!</para>
+
+ <para>Οι εφαρμογές στις οποίες μπορεί να χρησιμοποιηθεί το &os;,
+ πραγματικά περιορίζονται μόνο από την φαντασία σας. Από ανάπτυξη
+ λογισμικού μέχρι αυτοματισμούς εργοστασίων, από απογραφή ειδών
+ μέχρι την διόρθωση του αζιμούθιου απομακρυσμένων δορυφορικών
+ κεραιών, εάν μπορεί να γίνει με ένα εμπορικό προϊόν &unix;, είναι
+ παραπάνω από πιθανό ότι μπορεί να γίνει και με το &os;! Το &os;
+ επίσης ωφελείται σημαντικά από κυριολεκτικά χιλιάδες εφαρμογές
+ υψηλής ποιότητας που αναπτύσσονται από κέντρα ερευνών και
+ πανεπιστήμια σε όλο τον κόσμο, και συχνά διατίθενται σε χαμηλό
+ κόστος ή δωρεάν. Το πλήθος των εμπορικών εφαρμογών που διατίθενται
+ για το &os;, αυξάνεται επίσης καθημερινά.</para>
+
+ <para>Ο πηγαίος κώδικας του ίδιου του &os; είναι πλήρως διαθέσιμος,
+ και έτσι το σύστημα μπορεί να προσαρμοστεί σε αφάνταστα υψηλό
+ επίπεδο για ειδικές εφαρμογές ή projects, και με τρόπους γενικά μη
+ πραγματοποιήσιμους σε άλλα λειτουργικά εμπορικών προμηθευτών.
+ Παρακάτω θα βρείτε μερικά μόνο παραδείγματα από εφαρμογές στις
+ οποίες μπορεί να χρησιμοποιηθεί αυτή τη στιγμή το &os;:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>Υπηρεσίες Ίντερνετ:</emphasis> Το ισχυρό σύστημα
+ δικτύωσης TCP/IP του &os;, το αναδεικνύει σε ιδεώδη πλατφόρμα για
+ μια μεγάλη γκάμα υπηρεσιών Ίντερνετ όπως:</para>
+
+ <itemizedlist>
+ <indexterm><primary>FTP servers</primary></indexterm>
+ <listitem>
+ <para>Εξυπηρετητές FTP</para>
+ </listitem>
+
+ <indexterm><primary>web servers</primary></indexterm>
+ <listitem>
+ <para>Εξυπηρετητές ιστοσελίδων World Wide Web (κοινούς ή με
+ ασφαλή σύνδεση [SSL])</para>
+ </listitem>
+
+ <listitem>
+ <para>Δρομολόγηση πρωτοκόλλων IPv4 και IPv6</para>
+ </listitem>
+
+ <indexterm><primary>firewall</primary></indexterm>
+ <indexterm><primary>NAT</primary></indexterm>
+ <listitem>
+ <para>Firewalls και πύλες NAT (<quote>IP masquerading</quote>)</para>
+ </listitem>
+
+ <indexterm>
+ <primary>ηλεκτρονικό ταχυδρομείο</primary>
+ <see>email</see>
+ </indexterm>
+ <indexterm>
+ <primary>email</primary>
+ </indexterm>
+ <listitem>
+ <para>Εξυπηρετητές ηλεκτρονικού ταχυδρομείου</para>
+ </listitem>
+
+ <indexterm><primary>USENET</primary></indexterm>
+ <listitem>
+ <para>USENET News ή Bulletin Board Systems</para>
+ </listitem>
+
+ <listitem>
+ <para>Και άλλα...</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Με το &os;, μπορείτε εύκολα να ξεκινήσετε από χαμηλά με
+ ένα φτηνό PC της οικογένειας 386, και καθώς η επιχείρηση σας
+ μεγαλώνει, να αναβαθμιστείτε σε ένα τετραπύρηνο επεξεργαστή Xeon
+ με δίσκους RAID.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Εκπαίδευση:</emphasis> Είστε φοιτητής
+ πληροφορικής ή κάποιου σχετικού τομέα; Δεν υπάρχει
+ καλύτερος τρόπος να μάθετε για λειτουργικά συστήματα,
+ αρχιτεκτονικές Η/Υ, και συστήματα δικτύων από την πρακτική
+ εμπειρία και την σε βάθος γνώση που μπορεί να σας παρέχει το
+ &os;. Το μεγάλο πλήθος των δωρεάν διαθέσιμων πακέτων εφαρμογών
+ CAD, γραφικής σχεδίασης, και μαθηματικών, κάνουν το &os;
+ εξαιρετικά χρήσιμο σε όσους το κύριο ενδιαφέρον τους στους
+ υπολογιστές είναι να
+ <emphasis>κάνουν τη δουλειά τους</emphasis>!</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Έρευνα:</emphasis> Με διαθέσιμο τον πηγαίο
+ κώδικα ολόκληρου του συστήματος, το &os; είναι μία
+ εξαίρετη πλατφόρμα για την έρευνα στα λειτουργικά συστήματα
+ όπως επίσης για άλλους κλάδους της πληροφορικής. Η φύση της
+ ελεύθερης διάθεσης του &os; επιτρέπει επίσης σε απομακρυσμένες
+ ομάδες να συνεργάζονται σε ιδέες ή να μοιράζονται την ανάπτυξη
+ εφαρμογών, χωρίς να ανησυχούν για άδειες χρήσης και χωρίς να
+ περιορίζεται η δυνατότητα τους για ελεύθερη συζήτηση οποιουδήποτε
+ θέματος σε ανοιχτές ομάδες συζήτησης (forums).</para>
+ </listitem>
+
+ <indexterm><primary>router</primary></indexterm>
+ <indexterm><primary>DNS Server</primary></indexterm>
+ <listitem>
+ <para><emphasis>Δικτύωση:</emphasis> Χρειάζεστε ένα καινούργιο
+ router (δρομολογητή); Ένα εξυπηρετητή DNS; Ένα firewall για να
+ κρατάτε τον κόσμο έξω από το εσωτερικό σας δίκτυο; Το &os;
+ μπορεί εύκολα να μετατρέψει εκείνο το άχρηστο 386 ή 486 PC που
+ κάθεται στην γωνία, σε ένα προηγμένο δρομολογητή με εξεζητημένες
+ δυνατότητες φιλτραρίσματος πακέτων.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>Σύστημα X Window</primary>
+ <secondary>XFree86</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Σύστημα X Window</primary>
+ <secondary>Accelerated-X</secondary>
+ </indexterm>
+ <listitem>
+ <para><emphasis>Σταθμός εργασίας με X Window:</emphasis> Το &os;
+ είναι μια εξαίρετη επιλογή για ένα οικονομικό εξυπηρετητή Χ
+ τερματικών, χρησιμοποιώντας τον ελεύθερα διαθέσιμο εξυπηρετητή
+ X11. Σε αντίθεση με τα απλά τερματικά X, με το &os; μπορείτε,
+ εφόσον το επιθυμείτε, να εκτελείτε πολλές εφαρμογές τοπικά,
+ απαλλάσσοντας έτσι τον κεντρικό εξυπηρετητή από περιττό φορτίο.
+ To &os; μπορεί να ξεκινήσει ακόμα και <quote>diskless</quote>
+ (χωρίς σκληρό δίσκο), κάνοντας έτσι τους προσωπικούς σταθμούς
+ εργασίας ακόμη πιο φτηνούς και ευκολότερους στη
+ διαχείριση.</para>
+ </listitem>
+
+ <indexterm><primary>GNU Compiler Collection</primary></indexterm>
+ <listitem>
+ <para><emphasis>Ανάπτυξη Λογισμικού:</emphasis> Το βασικό
+ σύστημα του &os; διατίθεται ολοκληρωμένο, με πλήρη σειρά
+ εργαλείων ανάπτυξης, που περιλαμβάνουν τον αναγνωρισμένο
+ GNU C/C++ compiler και debugger.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Το &os; είναι διαθέσιμο σε μορφή πηγαίου κώδικα αλλά και έτοιμου,
+ μεταγλωττισμένου εκτελέσιμου σε CD-ROM, DVD, και μέσω ανώνυμου FTP.
+ Δείτε το <xref linkend="mirrors"> για περισσότερες πληροφορίες για
+ το πως να αποκτήσετε το &os;.</para>
+ </sect2>
+
+ <sect2 id="introduction-nutshell-users">
+ <title>Ποιος χρησιμοποιεί &os;;</title>
+
+ <indexterm>
+ <primary>χρήστες</primary>
+ <secondary>μεγάλες τοποθεσίες που τρέχουν &os;</secondary>
+ </indexterm>
+
+ <para>Το &os; χρησιμοποιείται ως βάση για την ανάπτυξη συσκευών και
+ προϊόντων σε μερικές από τις μεγαλύτερες εταιρίες πληροφορικής,
+ περιλαμβανομένων των:</para>
+
+ <itemizedlist>
+ <indexterm><primary>Apple</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.apple.com/">Apple</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Cisco</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.cisco.com/">Cisco</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Juniper</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.juniper.net/">Juniper</ulink></para>
+ </listitem>
+
+ <indexterm><primary>NetApp</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.netapp.com/">NetApp</ulink></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Το &os; χρησιμοποιείται για να υποστηρίζει μερικές από τις
+ μεγαλύτερες τοποθεσίες στο Ίντερνετ, περιλαμβανομένων των:</para>
+
+ <itemizedlist>
+ <indexterm><primary>Yahoo!</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.yahoo.com/">Yahoo!</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Yandex</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.yandex.ru/">Yandex</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Apache</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.apache.org/">Apache</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Rambler</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.rambler.ru/">Rambler</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Sina</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.sina.com/">Sina</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Pair Networks</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.pair.com/">Pair Networks</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Sony Japan</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.sony.co.jp/">Sony Japan</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Netcraft</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.netcraft.com/">Netcraft</ulink></para>
+ </listitem>
+
+ <indexterm><primary>NetEase</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.163.com/">NetEase</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Weathernews</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.wni.com/">Weathernews</ulink></para>
+ </listitem>
+
+ <indexterm><primary>TELEHOUSE America</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.telehouse.com/">TELEHOUSE
+ America</ulink></para>
+ </listitem>
+
+ <indexterm><primary>Experts Exchange</primary></indexterm>
+ <listitem>
+ <para><ulink url="http://www.experts-exchange.com/">Experts
+ Exchange</ulink></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>και πολλών ακόμη.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="history">
+ <title>Πληροφορίες για το &os;&nbsp;Project</title>
+
+ <para>Το ακόλουθο τμήμα παρέχει μερικές πληροφορίες σχετικές με
+ το project, και περιλαμβάνει μια σύντομη ιστορία του &os;, τους
+ στόχους, και το μοντέλο ανάπτυξης του.</para>
+
+ <sect2 id="intro-history">
+ <sect2info role="firstperson">
+ <authorgroup>
+ <author>
+ <firstname>Jordan</firstname>
+ <surname>Hubbard</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Μια σύντομη ιστορία του &os;</title>
+
+ <indexterm><primary>386BSD Patchkit</primary></indexterm>
+ <indexterm><primary>Hubbard, Jordan</primary></indexterm>
+ <indexterm><primary>Williams, Nate</primary></indexterm>
+ <indexterm><primary>Grimes, Rod</primary></indexterm>
+ <indexterm>
+ <primary>FreeBSD Project</primary>
+ <secondary>history</secondary>
+ </indexterm>
+ <para>To &os;&nbsp;Project γεννήθηκε στις αρχές του 1993,
+ μερικώς σαν εξέλιξη του <quote>Unofficial 386BSD
+ Patchkit</quote> από τους 3 τελευταίους συντονιστές του patchkit:
+ τον Nate Williams, τον Rod Grimes και εμένα.</para>
+
+ <indexterm><primary>386BSD</primary></indexterm>
+ <para>Ο πρωταρχικός στόχος μας ήταν να παράγουμε ένα ενδιάμεσο
+ στιγμιότυπο (snapshot) του 386BSD ώστε να διορθώσουμε μερικά
+ προβλήματα που ο μηχανισμός του patchkit δεν ήταν ικανός να λύσει.
+ Μερικοί από σας, ίσως να θυμούνται πως ο αρχικός τίτλος εργασίας για
+ το project ήταν <quote>386BSD 0.5</quote> ή
+ <quote>386BSD Interim</quote> και αναφέρονταν σε αυτό ακριβώς το
+ γεγονός.</para>
+
+ <indexterm><primary>Jolitz, Bill</primary></indexterm>
+ <para>Το 386BSD ήταν το λειτουργικό σύστημα του Bill Jolitz, το οποίο
+ μέχρι εκείνο το σημείο, υπέφερε βαριά έχοντας αμεληθεί για σχεδόν ένα
+ έτος. Καθώς το patchkit φούσκωνε ολοένα και περισσότερο
+ με το πέρασμα των ημερών, είχαμε αποφασίσει ομόφωνα πως έπρεπε να
+ γίνει κάτι, και αποφασίσαμε να συμπαρασταθούμε στον Bill παρέχοντας
+ του αυτό το ενδιάμεσο <quote>cleanup</quote> snapshot. Τα σχέδια αυτά
+ διακόπηκαν απότομα, όταν ξαφνικά ο Bill Jolitz αποφάσισε να αποσύρει
+ την έγκριση του στο project δίχως μια ξεκάθαρη ένδειξη του τι θα
+ έπρεπε να γίνει.</para>
+
+ <indexterm><primary>Greenman, David</primary></indexterm>
+ <indexterm><primary>Walnut Creek CDROM</primary></indexterm>
+ <para>Δεν μας πήρε πολύ να αποφασίσουμε πως ο στόχος παρέμενε
+ αξιόλογος, ακόμη και χωρίς την βοήθεια του Bill, και έτσι υιοθετήσαμε
+ το όνομα <quote>&os;</quote>, που επινόησε ο David Greenman.
+ Οι αρχικοί στόχοι μας τέθηκαν αφού συμβουλευθήκαμε τους τότε χρήστες
+ του συστήματος, και όταν έγινε πλέον ξεκάθαρο πως το project είχε
+ πάρει σωστή πορεία και ίσως έτεινε να γίνει πραγματικότητα, ήρθα σε
+ επαφή με την Walnut Creek CDROM προσβλέποντας στην βελτίωση των
+ καναλιών διανομής του &os; για όλους αυτούς τους άτυχους που δεν
+ είχαν εύκολη πρόσβαση στο Ίντερνετ. Η Walnut Creek CDROM, όχι μόνο
+ υποστήριξε την ιδέα διανομής του &os; σε CD, αλλά προχώρησε αρκετά
+ περισσότερο, παρέχοντας στο project ένα μηχάνημα εργασίας και μια
+ γρήγορη σύνδεση στο Ίντερνετ. Δίχως τον βαθμό πίστης της Walnut
+ Creek CDROM σε αυτό που εκείνο τον καιρό ήταν ένα εντελώς άγνωστο
+ project, είναι πολύ απίθανο το &os; να είχε φτάσει τόσο μακριά,
+ και τόσο γρήγορα, όπως σήμερα.</para>
+
+ <indexterm><primary>4.3BSD-Lite</primary></indexterm>
+ <indexterm><primary>Net/2</primary></indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <indexterm><primary>386BSD</primary></indexterm>
+ <indexterm><primary>Free Software Foundation</primary></indexterm>
+ <para>Η πρώτη διανομή CD-ROM (και με γενικά ευρεία διάδοση στο δίκτυο)
+ ήταν η &os;&nbsp;1.0, που κυκλοφόρησε τον Δεκέμβρη του 1993.
+ Βασίζονταν σε μια ταινία του 4.3BSD-Lite (<quote>Net/2</quote>) του
+ U.C. Berkeley, έχοντας πάρει και πολλά στοιχεία από το 386BSD και
+ το Free Software Foundation. Ήταν αρκετά επιτυχημένη για πρώτη
+ προσπάθεια, και την συνεχίσαμε με την αρκετά επιτυχημένη έκδοση
+ &os;&nbsp;1.1 που κυκλοφόρησε τον Μάϊο του 1994.</para>
+
+ <indexterm><primary>Novell</primary></indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <indexterm><primary>Net/2</primary></indexterm>
+ <indexterm><primary>AT&amp;T</primary></indexterm>
+ <para>Περίπου εκείνη την περίοδο, σχηματίστηκαν απρόσμενα στον ορίζοντα
+ σύννεφα καταιγίδας, καθώς η Novell και το U.C. Berkeley τακτοποίησαν
+ την μακράς διαρκείας δικαστική διαμάχη σχετικά με τα δικαιώματα της
+ ταινίας Net/2. Μία συνθήκη αυτής της συμφωνίας ήταν η παραδοχή από
+ την μεριά του U.C. Berkeley ότι μεγάλο μέρος του Net/2 ήταν
+ <quote>επιβαρυμένος</quote> κώδικας και ιδιοκτησία της Novell, η
+ οποία με την σειρά της το είχε αποκτήσει από την AT&amp;T λίγο καιρό
+ πριν. Αυτό που πήρε ως αντάλλαγμα το Berkeley ήταν οι
+ <quote>ευλογίες</quote> της Novell ότι η έκδοση 4.4BSD-Lite, όταν
+ τελικά ολοκληρωνόταν, θα δηλωνόταν ως μη-επιβαρυμένη, και όλοι οι
+ μέχρι τότε χρήστες του Net/2 θα ενθαρρύνονταν ένθερμα να μεταβούν σε
+ αυτή. Αυτό συμπεριλάμβανε και το &os;, και στο project δόθηκε χρόνος
+ μέχρι τον Ιούλιο του 1994 να σταματήσει τις παραδόσεις των προϊόντων
+ που βασίζονταν στο Net/2. Υπό τους όρους αυτής της συμφωνίας,
+ επιτράπηκε στο project μια τελευταία έκδοση πριν την λήξη της
+ προθεσμίας, και αυτή ήταν η έκδοση &os;&nbsp;1.1.5.1.</para>
+
+ <para>Το &os; βρέθηκε τότε στη δυσχερή θέση κυριολεκτικά να
+ ξανα-ανακαλύψει τον εαυτό του από ένα σύνολο από bit του 4.4BSD-Lite,
+ εντελώς καινούργιο, και κυρίως ατελές. Οι εκδόσεις
+ <quote>Lite</quote> ήταν light (ελαφριές) εν' μέρει επειδή το CSRG
+ του Berkeley είχε αφαιρέσει μεγάλο όγκο κώδικα ο οποίος ήταν
+ απαραίτητος για να κατασκευαστεί ένα πραγματικά εκκινήσιμο
+ λειτουργικό σύστημα (λόγω διαφόρων νομικών ζητημάτων), και εν' μέρει
+ επειδή το port για Intel του 4.4 ήταν σε υψηλό βαθμό ατελές.
+ Η μετάβαση ολοκληρώθηκε τον Νοέμβριο του 1994, και σε αυτό το σημείο
+ κυκλοφόρησε η &os;&nbsp;2.0 στο δίκτυο και σε CD-ROM (τέλη Δεκέμβρη).
+ Παρά το γεγονός ότι ήταν ακόμη αρκετά πρόχειρη μέσες-άκρες,
+ η έκδοση ήταν μια σημαντική επιτυχία και την ακολούθησε η
+ πιο αξιόπιστη και ευκολότερη ως προς την εγκατάσταση έκδοση
+ &os;&nbsp;2.0.5 τον Ιούνιο του 1995.</para>
+
+ <para>Κυκλοφορήσαμε την &os;&nbsp;2.1.5 τον Αύγουστο του 1996, και
+ φάνηκε να είναι αρκετά δημοφιλής στους ISP και στις εμπορικές
+ κοινότητες, τόσο που άξιζε άλλο ένα παρακλάδι στον κορμό της
+ 2.1-STABLE. Αυτή ήταν η &os;&nbsp;2.1.7.1, που κυκλοφόρησε τον
+ Φεβρουάριο του 1997 και ήταν η αποκορύφωση της κύριας ανάπτυξης της
+ 2.1-STABLE, η οποία βρίσκεται πλέον σε κατάσταση συντήρησης.
+ θα γίνονται μόνο βελτιώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις
+ bugs σε αυτό τον κορμό (RELENG_2_1_0).</para>
+
+ <para>Η &os;&nbsp;2.2 διακλαδώθηκε από την ανάπτυξη της κύριας γραμμής
+ (<quote>-CURRENT</quote>) τον Νοέμβριο του 1996, ως κλάδος RELENG_2_2,
+ και η πρώτη πλήρη έκδοση (2.2.1) κυκλοφόρησε τον Απρίλιο του
+ 1997. Πρόσθετες εκδόσεις από τον κλάδο 2.2 δόθηκαν σε κυκλοφορία το
+ καλοκαίρι και το φθινόπωρο του '97, η τελευταία των οποίων (η 2.2.8)
+ εμφανίστηκε τον Νοέμβρη του 1998. Η πρώτη επίσημη έκδοση 3.0
+ εμφανίστηκε τον Οκτώβριο του 1998 και σημάδεψε την αρχή του τέλους
+ για τον κλάδο 2.2.</para>
+
+ <para>Ο κορμός διακλαδώθηκε πάλι στις 20 Ιανουαρίου 1999, οδηγώντας στην
+ 4.0-CURRENT και στον κλάδο 3.X-STABLE. Από τον 3.X-STABLE, η 3.1
+ κυκλοφόρησε στις 15 Φεβρουαρίου 1999, η 3.2 στις 15 Μαΐου 1999, η 3.3
+ στις 16 Σεπτεμβρίου 1999, η 3.4 στις 20 Δεκεμβρίου του 1999, και η
+ 3.5 στις 24 Ιουνίου 2000, την οποία ακολούθησε λίγες μέρες μετά μία
+ μικρής τάξεως αναβάθμιση, η 3.5.1, για να συμπεριληφθούν κάποιες
+ αναβαθμίσεις ασφαλείας της τελευταίας στιγμής στο Kerberos. Αυτή
+ ήταν και η τελική έκδοση από τον κλάδο της 3.X.</para>
+
+ <para>Ένα νέο παρακλάδι δημιουργήθηκε στις 13 Μαρτίου 2000,
+ δημιουργώντας έτσι τον κλάδο ανάπτυξης 4.X-STABLE. Δημιουργήθηκαν
+ διάφορες εκδόσεις από αυτό τον κλάδο: Η 4.0-RELEASE κυκλοφόρησε τον
+ Μάρτιο του 2000, και η τελευταία 4.11-RELEASE κυκλοφόρησε τον
+ Ιανουάριο του 2005.</para>
+
+ <para>Μετά από μεγάλο χρονικό διάστημα αναμονής, η 5.0-RELEASE
+ ανακοινώθηκε στις 19 Ιανουαρίου του 2003. Ως αποκορύφωμα σχεδόν
+ τριών χρόνων εργασίας, η έκδοση αυτή εισήγαγε το &os; στο μονοπάτι
+ των εξελιγμένων πολυεπεξεργαστών και στην υποστήριξη εφαρμογών με
+ threads, ενώ εισήγαγε και υποστήριξη για τις πλατφόρμες &ultrasparc;
+ και <literal>ia64</literal>. Αυτήν την έκδοση ακολούθησε η 5.1 τον
+ Ιούνιο του 2003. Η τελευταία έκδοση 5.X από τον κορμό της -CURRENT
+ ήταν η 5.2.1-RELEASE, που κυκλοφόρησε τον Φεβρουάριο του 2004.</para>
+
+ <para>Ο κορμός της RELENG_5, δημιουργήθηκε τον Αύγουστο του 2004, και
+ ακολούθησε η 5.3-RELEASE, η οποία σημάδεψε την αρχή των εκδόσεων από
+ τον κλάδο 5-STABLE. Η πιο πρόσφατη 5.5-RELEASE κυκλοφόρησε τον Μάιο
+ του 2006. Δεν Θα υπάρξουν πρόσθετες εκδόσεις από τον κορμό της
+ RELENG_5.</para>
+
+ <para>Ο κορμός διακλαδώθηκε πάλι τον Ιούλιο του 2005, αυτή τη φορά για
+ την δημιουργία του κλάδου RELENG_6. Η 6.0-RELEASE είναι η πρώτη
+ έκδοση της σειράς 6.X, και κυκλοφόρησε τον Νοέμβριο του 2005. Η πιο
+ πρόσφατη 6.4-RELEASE κυκλοφόρησε τον Νοέμβριο του 2008.
+ Δεν θα υπάρξουν πρόσθετες εκδόσεις από τον κορμό της
+ RELENG_6. Αυτός είναι και ο τελευταίος κλάδος που υποστηρίζει την
+ αρχιτεκτονική Alpha.</para>
+
+ <para>Ο κλάδος ανάπτυξης RELENG_7, δημιουργήθηκε τον Οκτώβριο του 2007.
+ Η πρώτη έκδοση από αυτό τον κλάδο, ήταν η 7.0-RELEASE
+ η οποία κυκλοφόρησε τον Φεβρουάριο του 2008. Η πιο πρόσφατη
+ 7.4-RELEASE κυκλοφόρησε τον Φεβρουάριο του 2011.
+ Δεν Θα υπάρξουν πρόσθετες εκδόσεις από τον κλάδο RELENG_7.</para>
+
+ <para>Ο κορμός διακλαδώθηκε πάλι τον Αύγουστο του 2009, αυτή τη φορά
+ για την δημιουργία του κλάδου RELENG_8. Η 8.0-RELEASE είναι η πρώτη
+ έκδοση της σειράς 8.Χ και κυκλοφόρησε τον Νοέμβριο του 2009. Η πιο
+ πρόσφατη &rel2.current;-RELEASE κυκλοφόρησε τον &rel2.current.date;.
+ Θα υπάρξουν πρόσθετες εκδόσεις από τον κλάδο RELENG_8.</para>
+
+ <para>Ο κλάδος ανάπτυξης RELENG_9, δημιουργήθηκε τον Σεπτέμβριο
+ του 2011. Η πρώτη έκδοση από αυτό τον κλάδο, ήταν η
+ &rel.current;-RELEASE η οποία κυκλοφόρησε τον &rel.current.date;.
+ Θα υπάρξουν πρόσθετες εκδόσεις από τον κλάδο RELENG_9.</para>
+
+ <para>Για την ώρα, η μακροπρόθεσμη ανάπτυξη συνεχίζεται στον
+ κλάδο 10.X-CURRENT. Νέες εκδόσεις SNAPshot του 10.X σε
+ CD-ROM (και φυσικά στο Διαδίκτυο), διατίθενται από τον
+ τον <ulink
+ url="ftp://current.FreeBSD.org/pub/FreeBSD/snapshots/">snapshot
+ server</ulink> καθώς συνεχίζεται η ανάπτυξη.</para>
+ </sect2>
+
+ <sect2 id="goals">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Jordan</firstname>
+ <surname>Hubbard</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Στόχοι του &os;&nbsp;Project</title>
+
+ <indexterm>
+ <primary>FreeBSD Project</primary>
+ <secondary>goals</secondary>
+ </indexterm>
+ <para>Οι στόχοι του &os;&nbsp;Project είναι να παρέχει λογισμικό που
+ θα μπορεί να χρησιμοποιηθεί για οποιαδήποτε περίσταση και δίχως
+ δεσμεύσεις. Πολλοί από μας έχουν κάνει σημαντική επένδυση στον
+ κώδικα (και το project) και σίγουρα δε θα μας πείραζε πότε-πότε μια
+ μικρή οικονομική συνεισφορά, αλλά σίγουρα δεν είμαστε έτοιμοι να
+ επιμείνουμε σε αυτό. Πιστεύουμε ότι η πρωταρχική και σπουδαιότερη
+ <quote>αποστολή</quote> μας είναι να παρέχουμε κώδικα σε υπάρχοντες
+ και μελλοντικούς χρήστες, και για οποιοδήποτε σκοπό, ώστε ο κώδικας
+ μας να έχει την ευρύτερη πιθανή χρήση και να αποφέρει το μεγαλύτερο
+ δυνατό όφελος. Αυτό είναι, πιστεύω, ένας από τους σημαντικότερους
+ στόχους του Ελεύθερου Λογισμικού και ένας από τους οποίους
+ υποστηρίζουμε με ενθουσιασμό.</para>
+
+ <indexterm>
+ <primary>GNU General Public License (GPL)</primary>
+ </indexterm>
+ <indexterm>
+ <primary>GNU Lesser General Public License (LGPL)</primary>
+ </indexterm>
+ <indexterm><primary>BSD Copyright</primary></indexterm>
+ <para>Το τμήμα του πηγαίου μας κώδικα που βρίσκεται υπό την GNU
+ General Public License (GPL) ή την Library General Public License
+ (LGPL) έχει κάπως περισσότερες δεσμεύσεις, αν και σκοπός τους
+ είναι μάλλον να διασφαλίσουν την ελεύθερη διάθεση του κώδικα, παρά το
+ αντίθετο. Λόγω των επιπρόσθετων επιπλοκών που θέτει η άδεια χρήσης
+ GPL στην εμπορική χρήση του λογισμικού, προτιμούμε, όσο είναι εφικτό,
+ να παρέχουμε το λογισμικό μας υπό το χαλαρότερο BSD copyright.</para>
+ </sect2>
+
+ <sect2 id="development">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Satoshi</firstname>
+ <surname>Asami</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Το Μοντέλο Ανάπτυξης του &os;</title>
+
+ <indexterm>
+ <primary>FreeBSD Project</primary>
+ <secondary>μοντέλο ανάπτυξης</secondary>
+ </indexterm>
+ <para>Η ανάπτυξη του &os; είναι μία πολύ ανοικτή και ευέλικτη
+ διαδικασία, αφού κυριολεκτικά βασίζεται στην συνεισφορά
+ εκατοντάδων ανθρώπων από όλο τον κόσμο, όπως μπορείτε να δείτε από
+ την <ulink
+ url="&url.articles.contributors;/article.html">λίστα των
+ συνεργατών</ulink> μας. Η υποδομή ανάπτυξης του &os; επιτρέπει
+ στα εκατοντάδες μέλη της ομάδας ανάπτυξης να συνεργάζονται μέσω του
+ Ίντερνετ. Είμαστε σταθερά σε αναζήτηση για νέα μέλη στην ομάδα
+ ανάπτυξης και για ιδέες, και όσοι ενδιαφέρονται να ασχοληθούν ακόμη
+ περισσότερο με το project χρειάζεται απλά να επικοινωνήσουν μαζί μας
+ στην &a.hackers;. Επίσης η &a.announce; είναι διαθέσιμη σε όσους
+ επιθυμούν να ενημερώσουν άλλους χρήστες του &os; για κύριους
+ τομείς εργασίας σχετικά με το Project.</para>
+
+ <para>Χρήσιμα πράγματα που πρέπει να γνωρίζετε για το &os;&nbsp;Project
+ και την διαδικασία ανάπτυξης του, είτε δουλεύετε ανεξάρτητα είτε ως
+ στενοί συνεργάτες:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Τα SVN και CVS repositories<anchor
+ id="development-cvs-repository"></term>
+
+ <indexterm>
+ <primary>CVS</primary>
+ <secondary>repository</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Concurrent Versions System</primary>
+ <see>CVS</see>
+ </indexterm>
+ <indexterm>
+ <primary>SVN</primary>
+ <secondary>repository</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Subversion</primary>
+ <see>SVN</see>
+ </indexterm>
+ <listitem>
+ <para>Για πολλά χρόνια, ο κεντρικός κορμός κώδικα του &os;
+ συντηρούνταν μέσω του <ulink
+ url="http://ximbiot.com/cvs/wiki/">CVS</ulink>
+ (Concurrent Versions System), ενός ελεύθερα διαθέσιμου
+ εργαλείου ελέγχου πηγαίου κώδικα που προσφέρεται ενσωματωμένο
+ στο &os;. Τον Ιούνιο του 2008, το Project αποφάσισε τη
+ μετάβαση στο <ulink
+ url="http://subversion.tigris.org">SVN</ulink> (Subversion).
+ Η αλλαγή κρίθηκε αναγκαία, καθώς οι τεχνικοί περιορισμοί του
+ <application>CVS</application> ήταν πλέον εμφανείς, εξαιτίας
+ του μεγέθους του αποθηκευμένου κώδικα και του ιστορικού που
+ τον συνοδεύει. Αν και το κύριο repository χρησιμοποιεί πλέον
+ το <application>SVN</application>, τα εργαλεία χρήστη όπως τα
+ <application>CVSup</application> και
+ <application>csup</application> τα οποία εξαρτώνται από τη
+ λειτουργία του παλαιότερου συστήματος
+ <application>CVS</application>, συνεχίζουν να λειτουργούν
+ κανονικά. Αυτό εξασφαλίζεται με συγχρονισμό των αλλαγών του
+ <application>SVN</application> στο υπάρχον
+ <application>CVS</application>. Τη δεδομένη στιγμή, το
+ <application>SVN</application> χρησιμοποιείται μόνο στο
+ κεντρικό repository πηγαίου κώδικα. Τα repositories που
+ χρησιμοποιούνται για το documentation (τεκμηρίωση), το
+ World Wide Web (το δικτυακό τόπο) καθώς και τα Ports, συνεχίζουν
+ να χρησιμοποιούν το <application>CVS</application>. Το κύριο
+ <ulink
+ url="http://www.FreeBSD.org/cgi/cvsweb.cgi">repository</ulink>
+ βρίσκεται σε ένα μηχάνημα στην Santa Clara CA, USA από όπου
+ αντιγράφεται σε μεγάλο αριθμό μηχανών mirror σε όλο τον κόσμο.
+ Ο κορμός <application>SVN</application>, ο οποίος περιέχει τους
+ κλάδους <link
+ linkend="current">-CURRENT</link> και <link
+ linkend="stable">-STABLE</link>,
+ μπορεί επίσης εύκολα να αντιγραφεί και στo δικό σας υπολογιστή.
+ Περισσότερες πληροφορίες για αυτό το θέμα μπορείτε να βρείτε
+ στην ενότητα <link linkend="synching">Συγχρονίζοντας τον Πηγαίο
+ σας Κώδικα</link>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Η λίστα των committers<anchor
+ id="development-committers"></term>
+
+ <indexterm><primary>committers</primary></indexterm>
+ <listitem>
+ <para>Οι <firstterm>committers</firstterm>
+ είναι άτομα που έχουν άδεια
+ <emphasis>εγγραφής (write)</emphasis> στον κορμό του CVS, και
+ είναι εξουσιοδοτημένοι να κάνουν μετατροπές στον κώδικα του
+ &os; (ο όρος <quote>committer</quote>
+ προέρχεται από την εντολή &man.cvs.1;
+ <command>commit</command>, η οποία χρησιμοποιείται για να
+ γίνουν νέες αλλαγές στο CVS repository). Ο καλύτερος τρόπος
+ για να τεθούν αλλαγές προς αναθεώρηση εκ μέρους της λίστας των
+ committers είναι να χρησιμοποιείται η εντολή &man.send-pr.1;.
+ Εάν το παραπάνω σύστημα φαίνεται μπλοκαρισμένο, μπορείτε να
+ τους προσεγγίσετε στέλνοντας email στην &a.committers;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>The FreeBSD core team<anchor id="development-core"></term>
+
+ <indexterm><primary>core team</primary></indexterm>
+ <listitem>
+ <para>Η <firstterm>&os; core team</firstterm> θα ήταν ισοδύναμη
+ με το διοικητικό συμβούλιο αν το &os;&nbsp;Project ήταν μια
+ ανώνυμη εταιρεία. Ο πρωταρχικός στόχος της core team είναι να
+ εξασφαλίσει ότι το project, στο σύνολο του, είναι σε καλή
+ κατάσταση και να το οδηγεί προς την σωστή κατεύθυνση. Μια από
+ τις λειτουργίες της core team είναι να προσκαλεί αφοσιωμένους
+ και υπεύθυνους developers να συμμετέχουν στην ομάδα ανάπτυξης
+ (τους committers) καθώς και να βρίσκει νέα μέλη για την ίδια
+ την core team καθώς κάποιοι αποχωρούν. Η παρούσα core team
+ εκλέχτηκε από ένα σύνολο υποψηφίων committers τον Ιούλιο του
+ 2010. Εκλογές διεξάγονται κάθε 2 χρόνια.</para>
+
+ <para>Μερικά μέλη της core team έχουν επίσης ειδικούς τομείς
+ ευθύνης, και αυτό σημαίνει πως δεσμεύονται να εξασφαλίσουν ότι
+ ένα μεγάλο μέρος του συστήματος λειτουργεί όπως πρέπει. Για
+ ολοκληρωμένη λίστα της ομάδας ανάπτυξης του &os; και των τομέων
+ ευθύνης τους, παρακαλούμε δείτε την <ulink
+ url="&url.articles.contributors;/article.html">Λίστα των
+ Συνεργατών μας</ulink>.</para>
+
+ <note>
+ <para>Τα περισσότερα μέλη του core team είναι εθελοντές όσον
+ αφορά την ανάπτυξη του &os; και δεν έχουν οικονομικής φύσεως
+ οφέλη από το project, επομένως η <quote>δέσμευση</quote> δεν
+ θα πρέπει να παρερμηνεύεται ως
+ <quote>εγγυημένη υποστήριξη</quote>. Η παραπάνω παρομοίωση
+ με το <quote>διοικητικό συμβούλιο</quote> δεν είναι πολύ
+ ακριβής, ίσως είναι καταλληλότερο να πούμε ότι πρόκειται
+ για ανθρώπους που θυσίασαν τις ζωές τους για χάρη του &os;
+ ενάντια στην καλύτερη τους κρίση!</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Εξωτερικοί συνεργάτες</term>
+
+ <indexterm><primary>συνεργάτες</primary></indexterm>
+ <indexterm><primary>contributors</primary></indexterm>
+ <listitem>
+ <para>Τέλος, αλλά οπωσδήποτε όχι μικρότερης σημασίας, η
+ μεγαλύτερη ομάδα ανάπτυξης είναι οι ίδιοι οι χρήστες που μας
+ παρέχουν σχόλια και διορθώσεις των bug σε σχεδόν σταθερή βάση.
+ Ο κύριος τρόπος για να κρατάτε επαφή με την μη-συγκεντρωτική
+ ομάδα ανάπτυξης του &os; είναι να γίνετε συνδρομητές στην
+ &a.hackers; όπου γίνονται οι ανάλογες συζητήσεις. Δείτε το
+ <xref linkend="eresources"> για περισσότερες πληροφορίες
+ σχετικά με τις διάφορες λίστες ηλεκτρονικού ταχυδρομείου του
+ &os;.</para>
+
+ <para><citetitle><ulink
+ url="&url.articles.contributors;/article.html">Η
+ Λίστα Συνεργατών του &os;</ulink></citetitle> είναι μεγάλη
+ και συνεχώς αυξανόμενη, επομένως γιατί να μην γίνετε και εσείς
+ μέλος της και να συμβάλλετε σήμερα σε κάτι στο &os;;</para>
+
+ <para>Η παροχή κώδικα δεν είναι ο μόνος τρόπος για να
+ συνεισφέρετε στο project. Για μια ολοκληρωμένη λίστα των
+ πραγμάτων στα οποία χρειαζόμαστε βοήθεια, παρακαλούμε
+ επισκεφθείτε την <ulink url="&url.base;/index.html">Δικτυακή
+ τοποθεσία του &os;&nbsp;Project</ulink>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Συνοψίζοντας, το μοντέλο ανάπτυξης μας είναι οργανωμένο σαν ένα
+ χαλαρό σύνολο ομόκεντρων κύκλων. Το συγκεντρωτικό μοντέλο είναι
+ σχεδιασμένο για να διευκολύνει τους <emphasis>χρήστες</emphasis> του
+ &os;, στους οποίους παρέχεται έτσι ένας εύκολος τρόπος παρακολούθησης
+ του βασικού κώδικα, και όχι για να αποκλείουμε πιθανούς συνεργάτες!
+ Επιθυμία μας είναι να παρουσιάσουμε ένα σταθερό λειτουργικό σύστημα
+ σε συνάρτηση με μια μεγάλη γκάμα από
+ <link linkend="ports">προγράμματα εφαρμογών</link> που οι χρήστες να
+ μπορούν εύκολα να εγκαθιστούν και να χρησιμοποιούν &mdash; για την
+ εκπλήρωση αυτών των στόχων, το μοντέλο αυτό δουλεύει πολύ καλά.</para>
+
+ <para>Το μόνο που ζητάμε από όσους ενδιαφέρονται να ενωθούν μαζί μας
+ στην ομάδα ανάπτυξης του &os;, είναι λίγη από την ίδια αφοσίωση της
+ τωρινής ομάδας, για μια συνεχή πορεία στην επιτυχία του!</para>
+ </sect2>
+
+ <sect2 id="relnotes">
+ <title>Η Τρέχουσα Έκδοση του &os;</title>
+
+ <indexterm><primary>NetBSD</primary></indexterm>
+ <indexterm><primary>OpenBSD</primary></indexterm>
+ <indexterm><primary>386BSD</primary></indexterm>
+ <indexterm><primary>Free Software Foundation</primary></indexterm>
+ <indexterm><primary>U.C. Berkeley</primary></indexterm>
+ <indexterm>
+ <primary>Computer Systems Research Group (CSRG)</primary>
+ </indexterm>
+ <para>Το &os; είναι ελεύθερα διαθέσιμο, βασίζεται ολόκληρο στον πηγαίο
+ κώδικα του 4.4BSD-Lite, και αναπτύσσεται για συστήματα ηλεκτρονικών
+ υπολογιστών βασισμένα σε επεξεργαστές Intel &i386;, &i486;,
+ &pentium;, &pentium;&nbsp;Pro, &celeron;, &pentium;&nbsp;II,
+ &pentium;&nbsp;III, &pentium;&nbsp;4 (ή συμβατούς), &xeon;,
+ και Sun &ultrasparc;.
+ Βασίζεται κυρίως στο software της ομάδας U.C. Berkeley CSRG, με
+ κάποιες βελτιώσεις που προέρχονται από τα NetBSD, OpenBSD, 386BSD,
+ και το Free Software Foundation.</para>
+
+ <para>Από την έκδοση του &os;&nbsp;2.0 στα τέλη του 1994, η απόδοση,
+ το σύνολο των χαρακτηριστικών, και η σταθερότητα του &os; έχει
+ βελτιωθεί σημαντικά.
+ <!-- XXX το υπόλοιπο αυτής της παραγράφου είναι ακόμη αληθινό ? -->
+ Η μεγαλύτερη αλλαγή είναι η επανασχεδίαση του συστήματος εικονικής
+ μνήμης (virtual memory) με ένα ολοκληρωμένο VM/file buffer cache το
+ οποίο όχι μόνο αυξάνει την απόδοση, αλλά επίσης μειώνει τις
+ απαιτήσεις μνήμης του &os;, επιτρέποντας ως ελάχιστο αποδεκτό όριο
+ τα 5&nbsp;MB. Περιέχονται επίσης και άλλες βελτιώσεις, όπως πλήρης
+ υποστήριξη πελάτη και εξυπηρετητή NIS, υποστήριξη συναλλαγών TCP,
+ dial-on-demand PPP, ενσωματωμένη υποστήριξη DHCP, ένα βελτιωμένο
+ υποσύστημα SCSI, υποστήριξη ISDN, υποστήριξη για ATM, FDDI,
+ προσαρμογείς δικτύου Fast και Gigabit Ethernet (1000&nbsp;Mbit),
+ βελτιωμένη υποστήριξη για τους τελευταίους ελεγκτές της Adaptec και
+ πολλές χιλιάδες διορθώσεις λαθών (bug).</para>
+
+ <para>Εκτός από τη βασική του διανομή, το &os; προσφέρει μια συλλογή
+ λογισμικού με χιλιάδες προγράμματα για καθημερινή χρήση. Την στιγμή
+ που γράφονται αυτές οι γραμμές, υπάρχουν πάνω από &os.numports;
+ ports! Η λίστα των ports ξεκινάει από εξυπηρετητές http (WWW),
+ μέχρι παιχνίδια, γλώσσες προγραμματισμού, κειμενογράφους,
+ και οτιδήποτε άλλο ενδιάμεσα. Η συνολική Συλλογή των Ports απαιτεί
+ προσεγγιστικά &ports.size; αποθηκευτικό χώρο, αφού όλα τα ports
+ εκφράζονται με <quote>deltas</quote> (αρχεία διαφορών) των αυθεντικών
+ πηγών τους. Το γεγονός αυτό μας επιτρέπει να αναβαθμίσουμε τα ports
+ πολύ ευκολότερα, και μειώνει δραστικά τις απαιτήσεις σε σκληρό δίσκο
+ σε σχέση με την παλαιότερη Συλλογή Ports 1.0. Για να μεταγλωττιστεί
+ (compile) ένα port, χρειάζεται απλώς να μεταβείτε στον κατάλογο του
+ προγράμματος που επιθυμείτε να εγκαταστήσετε, να πληκτρολογήσετε
+ <command>make install</command>, και να αφήσετε το σύστημα σας να
+ κάνει τα υπόλοιπα. Ολόκληρη η αυθεντική διανομή για κάθε port που
+ κάνετε build παρέχεται δυναμικά από το CD-ROM ή από μία τοπική
+ τοποθεσία FTP, έτσι τα ports που δεν χρειάζεστε δεν καταλαμβάνουν
+ άσκοπο χώρο στο σκληρό σας δίσκο. Σχεδόν κάθε port παρέχεται επίσης
+ και σαν προ-μεταγλωττισμένο (pre-compiled)
+ <quote>πακέτο (package)</quote>, το οποίο μπορεί να εγκατασταθεί με
+ μια απλή εντολή (<command>pkg_add</command>) για εκείνους που δεν
+ επιθυμούν να μεταγλωττίζουν τα ports τους από τον πηγαίο κώδικα.
+ Περισσότερες πληροφορίες για τα packages και τα ports μπορείτε να
+ βρείτε στο <xref linkend="ports">.</para>
+
+ <para>Υπάρχει αρκετά μεγάλη επιπλέον τεκμηρίωση την οποία μπορεί να
+ βρείτε πολύ χρήσιμη για την διαδικασία εγκατάστασης και χρήσης του
+ &os;. Μπορείτε να την βρείτε εγκατεστημένη στον κατάλογο
+ <filename>/usr/share/doc</filename> σε οποιοδήποτε σύγχρονο μηχάνημα
+ &os;. Τα τοπικά εγκατεστημένα εγχειρίδια μπορείτε να τα δείτε σε
+ μορφή HTML, χρησιμοποιώντας οποιοδήποτε κατάλληλο browser στις
+ ακόλουθες URL:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Το Εγχειρίδιο Χρήσης του &os;</term>
+
+ <listitem>
+ <para><ulink type="html"
+ url="file://localhost/usr/share/doc/handbook/index.html"><filename>/usr/share/doc/handbook/index.html</filename></ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Συχνές ερωτήσεις του &os; (FAQ)</term>
+
+ <listitem>
+ <para><ulink type="html"
+ url="file://localhost/usr/share/doc/faq/index.html"><filename>/usr/share/doc/faq/index.html</filename></ulink></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Μπορείτε επίσης να δείτε τα πρωτότυπα (και συχνά αναβαθμιζόμενα)
+ αντίγραφα στο <ulink url="http://www.FreeBSD.org/"></ulink>.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml b/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml
new file mode 100644
index 0000000000..2ed76fc195
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/jails/chapter.sgml
@@ -0,0 +1,1042 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Jails
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/jails/chapter.sgml
+ %SRCID% 1.24
+
+-->
+
+<chapter id="jails">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Matteo</firstname>
+ <surname>Riondato</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Jails</title>
+
+ <indexterm><primary>jails</primary></indexterm>
+
+ <sect1 id="jails-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το κεφάλαιο αυτό εξηγεί τι είναι τα jails (φυλακές) του &os; και
+ πως χρησιμοποιούνται. Τα jails, που αναφέρονται ορισμένες φορές σαν
+ μια ενισχυμένη εναλλακτική λύση για
+ <emphasis>περιβάλλοντα chroot</emphasis>, είναι ένα ισχυρό εργαλείο για
+ διαχειριστές συστημάτων, αλλά η βασική τους χρήση μπορεί επίσης να
+ είναι χρήσιμη σε προχωρημένους χρήστες.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τι είναι ένα jail και τι σκοπό μπορεί να εξυπηρετήσει σε
+ εγκαταστάσεις &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να φτιάξετε, να εκκινήσετε, και να σταματήσετε ένα
+ jail.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα βασικά της διαχείρισης ενός jail, τόσο μέσα, όσο και έξω
+ από αυτό.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Άλλες πηγές χρήσιμων πληροφοριών σχετικά με τα jails είναι:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Η σελίδα manual του &man.jail.8;. Περιέχει πλήρη αναφορά
+ του βοηθητικού προγράμματος <command>jail</command> &mdash;
+ του διαχειριστικού εργαλείου που μπορεί να χρησιμοποιηθεί στο &os;
+ για την εκκίνηση, διακοπή, και έλεγχο των jails.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι λίστες ταχυδρομείου και τα αρχεία τους. Τα αρχεία από την
+ &a.questions; και άλλες λίστες που εξυπηρετούνται από τον
+ &a.mailman.lists; περιέχουν πλήρη οδηγό για τα jails. Είναι πάντοτε
+ ενδιαφέρον να ψάχνετε τα αρχεία ή να δημοσιεύετε νέες ερωτήσεις
+ στη λίστα &a.questions.name;.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="jails-terms">
+ <title>Όροι των Jails</title>
+
+ <para>Για να κατανοήσετε καλύτερα το πως οι εσωτερικές λειτουργίες του
+ &os; σχετίζονται με τα jails και πως αυτές αλληλεπιδρούν με τα υπόλοιπα
+ μέρη του &os;, θα χρησιμοποιήσουμε εκτενώς τους παρακάτω όρους:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>&man.chroot.8; (εντολή)</term>
+ <listitem>
+ <para>Ένα βοηθητικό πρόγραμμα, το οποίο χρησιμοποιεί την κλήση
+ συστήματος &man.chroot.2; του &os; για να αλλάξει
+ τον γονικό κατάλογο (root directory) μιας διεργασίας και όλων των
+ άλλων διεργασιών που εξαρτώνται από αυτή.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.chroot.2; (περιβάλλον)</term>
+ <listitem>
+ <para>Το περιβάλλον μια διεργασίας που τρέχει μέσα σε ένα
+ <quote>chroot</quote>. Αυτό περιλαμβάνει πόρους όπως το τμήμα
+ του συστήματος αρχείων που είναι ορατό, τα ID του χρήστη και της
+ ομάδας που είναι διαθέσιμα, καθώς και τις διεπαφές δικτύου
+ (network interfaces), τους μηχανισμούς IPC κλπ.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.jail.8; (εντολή)</term>
+ <listitem>
+ <para>Το πρόγραμμα που σας επιτρέπει να διαχειρίζεστε το σύστημα
+ σας και να ξεκινάτε διεργασίες σε περιβάλλον jail.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>host (σύστημα (system), διεργασία (process), χρήστης (user),
+ κλπ.)</term>
+ <listitem>
+ <para>Το φυσικό σύστημα που φιλοξενεί και ελέγχει ένα περιβάλλον
+ jail. Το host system έχει πρόσβαση σε όλο το διαθέσιμο υλικό,
+ και μπορεί να ελέγξει διεργασίες τόσο μέσα όσο και έξω από το
+ περιβάλλον του jail. Μία από τις σημαντικότερες διαφορές μεταξύ
+ του host system και του jail είναι ότι οι περιορισμοί που
+ εφαρμόζονται στις διεργασίες του χρήστη root μέσα στο περιβάλλον
+ jail, δεν ισχύουν για τις διεργασίες στο host system.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>hosted (σύστημα (system), διεργασία (process), χρήστης (user),
+ κλπ.)</term>
+ <listitem>
+ <para>Μια διεργασία, ένας χρήστης ή κάποια άλλη οντότητα, του
+ οποίου η πρόσβαση στους πόρους του συστήματος περιορίζεται μέσα
+ από ένα jail.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+
+ <sect1 id="jails-intro">
+ <title>Εισαγωγή</title>
+
+ <para>Μια και η διαχείριση ενός συστήματος μπορεί να είναι δύσκολη και
+ περίπλοκη, αναπτύχθηκαν αρκετά εργαλεία τα οποία μπορούν να κάνουν τη
+ ζωή ενός διαχειριστή πολύ πιο εύκολη. Τα εργαλεία αυτά προσφέρουν
+ κάποιες πρόσθετες δυνατότητες όσο αφορά τον τρόπο εγκατάστασης,
+ ρύθμισης και συντήρησης ενός συστήματος. Μια από τις εργασίες που
+ αναμένεται να εκτελέσει κάθε διαχειριστής συστήματος, είναι να ρυθμίσει
+ σωστά την ασφάλεια του συστήματος, προκειμένου να προσφέρει τις
+ υπηρεσίες για τις οποίες έχει προγραμματιστεί, χωρίς να επιτρέπει
+ συμβιβασμούς στην ασφάλεια.</para>
+
+ <para>Ένα από τα εργαλεία που μπορούν να ενισχύσουν την ασφάλεια ενός
+ συστήματος &os; είναι τα <emphasis>jails</emphasis>. Τα Jails
+ πρωτοεμφανίστηκαν στο &os;&nbsp;4.X από τον &a.phk;, αλλά βελτιώθηκαν
+ πολύ περισσότερο στην έκδοση &os;&nbsp;5.X, προκειμένου να προσφέρουν
+ περισσότερες δυνατότητες και να είναι περισσότερο ευέλικτα. Η ανάπτυξή
+ τους συνεχίζεται ακόμη, με βελτιώσεις στους τομείς της ευχρηστίας, της
+ απόδοσης, της αξιοπιστίας και της ασφάλειας που πρέπει να
+ παρέχουν.</para>
+
+ <sect2 id="jails-what">
+ <title>Τι Είναι Ένα Jail</title>
+
+ <para>Τα λειτουργικά συστήματα τύπου BSD, παρείχαν το &man.chroot.2; από
+ την εποχή του 4.2BSD. Η εντολή &man.chroot.8; μπορεί να
+ χρησιμοποιηθεί για να αλλάξει τον γονικό κατάλογο μιας ομάδας
+ διεργασιών, δημιουργώντας ένα ασφαλές περιβάλλον, ξεχωριστό από το
+ υπόλοιπο σύστημα. Όσες διεργασίες δημιουργούνται σε έναν τέτοιο
+ περιβάλλον, δεν έχουν πρόσβαση σε αρχεία και πόρους έξω από αυτό.
+ Για αυτό το λόγο, αν μια υπηρεσία τρέχει μέσα σε ένα τέτοιο
+ περιβάλλον, και κάποιος εισβολέας καταφέρει να διεισδύσει σε αυτή, δε
+ θα του επιτραπεί η πρόσβαση στο υπόλοιπο σύστημα.
+ Η εντολή &man.chroot.8; είναι πολύ καλή για απλές εργασίες οι οποίες
+ δε χρειάζονται να είναι πολύ ευέλικτες ή να διαθέτουν πολύπλοκα και
+ προηγμένα χαρακτηριστικά. Ωστόσο, από την αρχή της ιδέας του chroot,
+ βρέθηκαν αρκετοί τρόποι για να μπορέσει κάποιος να ξεφύγει από το
+ περιβάλλον αυτό. Παρ' όλο που έχουν διορθωθεί πολλά σφάλματα στις
+ πρόσφατες εκδόσεις του πυρήνα του &os;, ήταν ξεκάθαρο ότι η
+ &man.chroot.2; δεν ήταν η ιδανική λύση για την ασφάλιση υπηρεσιών.
+ Έπρεπε να υλοποιηθεί ένα νέο υποσύστημα.</para>
+
+ <para>Αυτός είναι ένας από τους κύριους λόγους για την ανάπτυξη των
+ <emphasis>jails</emphasis>.</para>
+
+ <para>Τα jails βελτίωσαν με διάφορους τρόπους την ιδέα του παραδοσιακού
+ περιβάλλοντος του &man.chroot.2;. Στο τυπικό περιβάλλον του
+ &man.chroot.2;, οι διεργασίες περιορίζονται μόνος ως προς το μέρος
+ του συστήματος αρχείων όπου μπορούν να έχουν πρόσβαση. Οι υπόλοιποι
+ πόροι του συστήματος (όπως οι χρήστες, οι τρέχοντες διεργασίες, το
+ υποσύστημα δικτύωσης) είναι κοινόχρηστοι μεταξύ των διεργασιών του
+ περιβάλλοντος chroot και των διεργασιών του host system. Τα jails
+ επεκτείνουν αυτό το μοντέλο, με την εικονικοποίηση όχι μόνο της
+ πρόσβασης στο σύστημα αρχείων, αλλά επίσης των χρηστών, του
+ υποσυστήματος δικτύωσης του πυρήνα του &os; και μερικών ακόμη
+ πραγμάτων. Περισσότερα για τις διαθέσιμες εντολές που μπορούν να
+ χρησιμοποιηθούν για τη ρύθμιση και τον έλεγχο ενός περιβάλλοντος jail
+ μπορείτε να βρείτε στο <xref linkend="jails-tuning">.</para>
+
+ <para>Το Jail έχει τέσσερα κύρια στοιχεία:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Έναν κατάλογο με δική του δομή &mdash; το αρχικό σημείο
+ στο οποίο εισέρχεται ένα jail. Από τη στιγμή που μια διεργασία
+ βρίσκεται μέσα σε ένα jail, δεν επιτρέπεται να βγει έξω από τον
+ κατάλογο αυτό. Τα προβλήματα που ταλαιπωρούσαν τον σχεδιασμό του
+ &man.chroot.2; δεν επηρεάζουν τα jails του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα hostname (όνομα συστήματος) &mdash; το hostname το οποίο
+ θα χρησιμοποιηθεί μέσα στο jail. Τα jails χρησιμοποιούνται
+ κυρίως για την εξυπηρέτηση δικτυακών υπηρεσιών,
+ επομένως η ύπαρξη ενός χαρακτηριστικού hostname που να
+ περιγράφει ταυτόχρονα και τη χρήση του, μπορεί να βοηθήσει αρκετά
+ τον διαχειριστή συστήματος.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μια διεύθυνση <acronym>IP</acronym> &mdash; αυτή η διεύθυνση
+ αντιστοιχεί σε ένα jail και δεν μπορεί να αλλάξει κατά τη
+ διάρκεια της ζωής του. Η διεύθυνση IP ενός jail είναι συνήθως
+ μία διεύθυνση τύπου alias για μια ήδη υπάρχουσα διεπαφή δικτύου
+ (network interface), αλλά κάτι τέτοιο δεν είναι απαραίτητο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μία εντολή &mdash; η διαδρομή προς ένα εκτελέσιμο το οποίο θα
+ εκτελείται μέσα στο jail. Η διαδρομή αυτή είναι σχετική ως προς
+ τον γονικό κατάλογο του περιβάλλοντος του jail, και μπορεί να
+ διαφέρει πολύ από jail σε jail ανάλογα με το συγκεκριμένο
+ περιβάλλον.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Εκτός αυτών, τα jails μπορούν να έχουν τις δικές τους ομάδες
+ χρηστών και τον δικό τους χρήστη <username>root</username>. Φυσικά, ο
+ έλεγχος που έχει ο χρήστης <username>root</username> του jail,
+ περιορίζεται μέσα στο περιβάλλον του jail, και από την
+ οπτική γωνία του host system, ο χρήστης αυτός δεν είναι παντοδύναμος.
+ Επιπλέον, ο χρήστης <username>root</username> του jail, δεν μπορεί
+ να εκτελέσει κρίσιμες εργασίες στο σύστημα έξω από το περιβάλλον του
+ &man.jail.8;. Περισσότερες πληροφορίες σχετικά με τις δυνατότητες και
+ τους περιορισμούς του <username>root</username> θα βρείτε στο
+ <xref linkend="jails-tuning">.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="jails-build">
+ <title>Δημιουργώντας και Ελέγχοντας Jails</title>
+
+ <para>Μερικοί διαχειριστές συστημάτων κατηγοριοποιούν τα jails σε δύο
+ ενότητες: τα <quote>complete (πλήρη)</quote> jails, τα οποία μιμούνται
+ ένα πραγματικό σύστημα &os;, και τα <quote>service</quote> jails, τα
+ οποία χρησιμοποιούνται για μια εφαρμογή ή υπηρεσία, που πιθανόν
+ εκτελείται με ειδικά προνόμια. Αυτός είναι ένας νοητικός διαχωρισμός
+ και δεν επιδρά στη διαδικασία δημιουργίας ενός jail. Η σελίδα manual
+ του &man.jail.8; περιέχει κατατοπιστικές πληροφορίες για τη διαδικασία
+ δημιουργίας ενός jail:</para>
+
+ <screen>&prompt.root; <userinput>setenv D <replaceable>/here/is/the/jail</replaceable></userinput>
+&prompt.root; <userinput>mkdir -p $D</userinput> <co id="jailpath">
+&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make buildworld</userinput> <co id="jailbuildworld">
+&prompt.root; <userinput>make installworld DESTDIR=$D</userinput> <co id="jailinstallworld">
+&prompt.root; <userinput>make distribution DESTDIR=$D</userinput> <co id="jaildistrib">
+&prompt.root; <userinput>mount -t devfs devfs $D/dev</userinput> <co id="jaildevfs"></screen>
+
+ <calloutlist>
+ <callout arearefs="jailpath">
+ <para>Ο καλύτερος τρόπος για να ξεκινήσετε είναι με την επιλογή μιας
+ θέσης (διαδρομής) για το jail σας. Εκεί θα βρίσκονται αποθηκευμένα
+ τα αρχεία του jail όσο αφορά το σύστημα σας. Μια καλή ιδέα είναι
+ το <filename class="directory">/usr/jail/<replaceable>jailname</replaceable></filename>,
+ όπου <replaceable>jailname</replaceable> το hostname με το οποίο θα
+ αναγνωρίζεται το jail. Το σύστημα αρχείων
+ <filename class="directory">/usr/</filename> έχει συνήθως αρκετό
+ χώρο για το σύστημα αρχείων του jail, το οποίο, για ένα
+ <quote>complete</quote> jail είναι ουσιαστικά
+ ένας κλώνος κάθε αρχείου του βασικού συστήματος μια προεπιλεγμένης
+ εγκατάστασης του &os;.</para>
+ </callout>
+
+ <callout arearefs="jailbuildworld">
+ <para>Το βήμα αυτό δεν απαιτείται αν έχετε μεταγλωττίσει στο παρελθόν
+ το βασικό σύστημα χρησιμοποιώντας την εντολή
+ <command>make world</command> ή
+ <command>make buildworld</command>. Μπορείτε απλώς να
+ εγκαταστήσετε το υπάρχον σύστημα σας στο νέο jail.</para>
+ </callout>
+
+ <callout arearefs="jailinstallworld">
+ <para>Η εντολή αυτή θα εμπλουτίσει τον κατάλογο που επιλέξατε για το
+ jail με όλα τα απαραίτητα αρχεία, βιβλιοθήκες, σελίδες βοήθειας
+ κλπ.</para>
+ </callout>
+
+ <callout arearefs="jaildistrib">
+ <para>Το <maketarget>distribution</maketarget> target του
+ <application>make</application> εγκαθιστά όλα τα αρχεία ρυθμίσεων
+ που απαιτούνται. Με απλά λόγια, εγκαθιστά κάθε αρχείο από το
+ <filename class="directory">/usr/src/etc/</filename> στον κατάλογο
+ <filename class="directory">/etc</filename> του περιβάλλοντος
+ jail: <filename class="directory">$D/etc/</filename>.</para>
+ </callout>
+
+ <callout arearefs="jaildevfs">
+ <para>Δε χρειάζεται να προσαρτήσετε το &man.devfs.8; στο περιβάλλον
+ του jail. Από την άλλη όμως, όλες, ή σχεδόν όλες οι εφαρμογές
+ χρειάζονται πρόσβαση σε τουλάχιστον μία συσκευή, αναλόγως με τον
+ σκοπό της εφαρμογής. Είναι πολύ σημαντικό να ελέγχεται η πρόσβαση
+ στις συσκευές μέσα σε ένα jail, καθώς λανθασμένες ρυθμίσεις
+ μπορεί να επιτρέψουν σε κάποιον εισβολέα να κάνει
+ <quote>άσχημα παιχνίδια</quote> μέσα στο jail.
+ Ο έλεγχος του &man.devfs.8; γίνεται μέσω ενός συνόλου κανόνων οι
+ οποίοι περιγράφονται στις σελίδες manual του &man.devfs.8; και του
+ &man.devfs.conf.5;.</para>
+ </callout>
+ </calloutlist>
+
+ <para>Από την στιγμή που έχει εγκατασταθεί ένα jail, μπορεί να εκκινηθεί
+ με τη χρήση της εντολής &man.jail.8;. Η &man.jail.8; δέχεται τέσσερις
+ υποχρεωτικές παραμέτρους οι οποίες περιγράφονται στο
+ <xref linkend="jails-what">. Μπορείτε να δώσετε και άλλες παραμέτρους,
+ π.χ., για να εκτελέσετε μια διεργασία στο περιβάλλον του jail με τις
+ άδειες ενός συγκεκριμένου χρήστη.
+ Η παράμετρος <option><replaceable>command</replaceable></option>
+ εξαρτάται από τον τύπο του jail. Για ένα
+ <emphasis>εικονικό σύστημα</emphasis>, το <filename>/etc/rc</filename>
+ είναι μια καλή επιλογή, μια και στην ουσία θα κλωνοποιήσει
+ την διαδικασία εκκίνησης ενός πραγματικού συστήματος &os;. Για ένα
+ <emphasis>service</emphasis> jail, η παράμετρος εξαρτάται από την
+ υπηρεσία ή την εφαρμογή που θα τρέχει μέσα στο jail.</para>
+
+ <para>Τα jails συνήθως ξεκινούν κατά την εκκίνηση και ο μηχανισμός
+ <filename>rc</filename> του &os; παρέχει έναν εύκολο τρόπο για να γίνει
+ κάτι τέτοιο.</para>
+
+ <procedure>
+ <step>
+ <para>Η λίστα με τα jails που θέλετε να ξεκινάνε κατά την εκκίνηση θα
+ πρέπει να προστεθούν στο αρχείο &man.rc.conf.5;:</para>
+
+ <programlisting>jail_enable="YES" # Set to NO to disable starting of any jails
+jail_list="<replaceable>www</replaceable>" # Space separated list of names of jails</programlisting>
+
+ <note>
+ <para>Το όνομα που έχει κάθε jail στη
+ λίστα <varname>jail_list</varname> επιτρέπεται να περιέχει μόνο
+ αλφαριθμητικούς χαρακτήρες.</para>
+ </note>
+ </step>
+
+ <step>
+ <para>Για κάθε jail που υπάρχει στο <varname>jail_list</varname>, θα
+ πρέπει να προστεθεί μια ομάδα από ρυθμίσεις στο &man.rc.conf.5;, οι
+ οποίες θα το περιγράφουν:</para>
+
+ <programlisting>jail_<replaceable>www</replaceable>_rootdir="/usr/jail/www" # jail's root directory
+jail_<replaceable>www</replaceable>_hostname="<replaceable>www</replaceable>.example.org" # jail's hostname
+jail_<replaceable>www</replaceable>_ip="192.168.0.10" # jail's IP address
+jail_<replaceable>www</replaceable>_devfs_enable="YES" # mount devfs in the jail
+jail_<replaceable>www</replaceable>_devfs_ruleset="<replaceable>www_ruleset</replaceable>" # devfs ruleset to apply to jail</programlisting>
+
+ <para>Η προεπιλεγμένη εκκίνηση του jail μέσω του
+ &man.rc.conf.5;, θα ξεκινήσει το script του jail
+ <filename>/etc/rc</filename>, το οποίο υποθέτει ότι το jail είναι
+ ένα ολοκληρωμένο εικονικό σύστημα. Για service jails, η
+ προεπιλεγμένη εκκίνηση πρέπει να αλλάξει, ορίζοντας κατάλληλα την
+ επιλογή <varname>jail_<replaceable>jailname</replaceable>_exec_start</varname>.</para>
+
+ <note>
+ <para>Για πλήρη λίστα των διαθέσιμων επιλογών, δείτε το
+ &man.rc.conf.5;.</para>
+ </note>
+ </step>
+ </procedure>
+
+ <para>Το script <filename>/etc/rc.d/jail</filename> μπορεί να
+ χρησιμοποιηθεί για να ξεκινήσει ή να σταματήσει κάποιο jail
+ χειροκίνητα. Πρέπει όμως να υπάρχει η αντίστοιχη καταχώρηση στο
+ <filename>rc.conf</filename>:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/jail start <replaceable>www</replaceable></userinput>
+&prompt.root; <userinput>/etc/rc.d/jail stop <replaceable>www</replaceable></userinput></screen>
+
+ <para>Για την ώρα δεν υπάρχει κάποιος απόλυτα σωστός τρόπος για να
+ τερματίσετε κάποιο &man.jail.8;. Αυτό συμβαίνει, διότι οι εντολές
+ που χρησιμοποιούνται συνήθως για να τερματίσουν με ασφάλεια ένα
+ σύστημα, δεν μπορούν να χρησιμοποιηθούν μέσα στο περιβάλλον ενός jail.
+ Ο καλύτερος τρόπος για να τερματίσετε ένα jail είναι με την εκτέλεση
+ της ακόλουθης εντολής μέσα από το ίδιο το jail ή με χρήση του
+ βοηθητικού προγράμματος &man.jexec.8; έξω από αυτό:</para>
+
+ <screen>&prompt.root; <userinput>sh /etc/rc.shutdown</userinput></screen>
+
+ <para>Περισσότερες πληροφορίες σχετικά με αυτή τη διαδικασία μπορείτε να
+ βρείτε στη σελίδα βοηθείας του &man.jail.8;</para>
+ </sect1>
+
+ <sect1 id="jails-tuning">
+ <title>Λεπτομερής Ρύθμιση και Διαχείριση</title>
+
+ <para>Υπάρχουν αρκετές επιλογές που μπορούν να εφαρμοστούν σε ένα jail,
+ καθώς και διάφοροι τρόποι για να συνδυαστεί ένα σύστημα &os; με jails
+ προκειμένου να παράγουν εφαρμογές υψηλότερου επιπέδου. Η ενότητα αυτή
+ παρουσιάζει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Μερικές από τις διαθέσιμες επιλογές για την ρύθμιση της
+ συμπεριφοράς και των περιορισμών ασφαλείας που υλοποιούνται από την
+ εγκατάσταση ενός jail.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μερικές εφαρμογές υψηλού επιπέδου για τη διαχείριση jails,
+ οι οποίες είναι διαθέσιμες μέσω της συλλογής των Ports του &os; και
+ μπορούν να χρησιμοποιηθούν στην υλοποίηση ολοκληρωμένων λύσεων με
+ τη χρήση jails.</para>
+ </itemizedlist>
+
+ <sect2 id="jails-tuning-utilities">
+ <title>Εργαλεία συστήματος του &os; για τη ρύθμιση jails</title>
+
+ <para>Λεπτομερής ρύθμιση ενός jail γίνεται κατά κύριο λόγο μέσω των
+ μεταβλητών του &man.sysctl.8;. Υπάρχει ένα ειδικό subtree του sysctl
+ το οποίο αποτελεί τη βάση για την οργάνωση όλων των σχετικών
+ επιλογών: πρόκειται για την ιεραρχία επιλογών πυρήνα
+ <varname>security.jail.*</varname>. Παρακάτω θα βρείτε μια λίστα με
+ τα κύρια sysctl που σχετίζονται με κάποιο jail καθώς και τις
+ προεπιλεγμένες τιμές τους. Τα ονόματα μάλλον εξηγούν από μόνα τους
+ την αντίστοιχη λειτουργία, αλλά για περισσότερες πληροφορίες μπορείτε
+ να δείτε τις σελίδες βοήθειας των &man.jail.8;
+ και &man.sysctl.8;.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><varname>security.jail.set_hostname_allowed: 1</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.socket_unixiproute_only: 1</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.sysvipc_allowed: 0</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.enforce_statfs: 2</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.allow_raw_sockets: 0</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.chflags_allowed: 0</varname></para>
+ </listitem>
+
+ <listitem>
+ <para><varname>security.jail.jailed: 0</varname></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οι μεταβλητές αυτές μπορούν να χρησιμοποιηθούν από τον
+ διαχειριστή του <emphasis>host system</emphasis>
+ προκειμένου να προσθέσει ή να αφαιρέσει περιορισμούς οι οποίοι
+ υπάρχουν αρχικά στον χρήστη <username>root</username>. Υπάρχουν όμως
+ και κάποιοι περιορισμοί οι οποίοι δεν μπορούν να αφαιρεθούν.
+ Ο χρήστης <username>root</username> δεν επιτρέπεται να προσαρτά ή να
+ απο-προσαρτά συστήματα αρχείων μέσα από ένα &man.jail.8;. Ο
+ <username>root</username> μέσα σε ένα jail δεν επιτρέπεται να
+ φορτώσει ή να αποφορτώσει τους κανόνες (rulesets) του &man.devfs.8;,
+ το firewall, και διάφορες άλλες εργασίες διαχείρισης οι οποίες
+ χρειάζονται τροποποίηση των δεδομένων του πυρήνα, όπως για παράδειγμα
+ ο ορισμός του <varname>securelevel</varname> του πυρήνα.</para>
+
+ <para>Το βασικό σύστημα του &os; περιέχει τα βασικά εργαλεία για τη
+ προβολή πληροφοριών σχετικά με τα ενεργά jails, και επίσης για την
+ ανάθεση συγκεκριμένων εντολών διαχείρισης σε κάποιο jail. Οι εντολές
+ &man.jls.8; και &man.jexec.8; αποτελούν μέρος του βασικού συστήματος
+ του &os;, και μπορούν να χρησιμοποιηθούν για να τις παρακάτω απλές
+ εργασίες:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Προβολή λίστας των ενεργών jails και τον αντίστοιχων
+ χαρακτηριστικών τους - jail identifier (<acronym>JID</acronym>),
+ διεύθυνση <acronym>IP</acronym>, hostname και path.</para>
+ </listitem>
+
+ <listitem>
+ <para>Προσκόλληση σε κάποιο ενεργό jail, από το host system, και
+ εκτέλεση κάποιας εντολής μέσα στο jail ή εκτέλεση εργασιών
+ διαχείρισης μέσα στο jail. Κάτι τέτοιο είναι ιδιαίτερα χρήσιμο
+ όταν ο χρήστης <username>root</username> επιθυμεί να τερματίσει
+ με ασφάλεια κάποιο jail. Μπορεί επίσης να χρησιμοποιηθεί η εντολή
+ &man.jexec.8; για την εκτέλεση κάποιου shell μέσα στο jail
+ προκειμένου να εκτελεστούν εργασίες διαχείρισης, για
+ παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>jexec <replaceable>1</replaceable> tcsh</userinput></screen>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="jails-tuning-admintools">
+ <title>Εργαλεία διαχείρισης υψηλού επιπέδου στη συλλογή Ports
+ του &os;</title>
+
+ <para>Ανάμεσα στις διάφορες εφαρμογές τρίτων κατασκευαστών για τη
+ διαχείριση των jails, ένα από τα ποιο ολοκληρωμένα και χρήσιμα πακέτα
+ είναι το <filename role="package">sysutils/jailutils</filename>.
+ Αποτελεί ένα σύνολο μικρών εφαρμογών
+ οι οποίες συνεισφέρουν στη διαχείριση του &man.jail.8;. Για
+ περισσότερες πληροφορίες, δείτε στον δικτυακό του τόπο.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="jails-application">
+ <title>Εφαρμογή των Jails</title>
+
+ <sect2 id="jails-service-jails">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Daniel</firstname>
+ <surname>Gerzo</surname>
+ <contrib>Συνεισφορά του </contrib>
+ <!-- 15. May 2007 -->
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Service Jails</title>
+
+ <para>Η ενότητα αυτή είναι βασισμένη στην ιδέα που παρουσιάστηκε αρχικά
+ από τον &a.simon; στο <ulink
+ url="http://simon.nitro.dk/service-jails.html"></ulink>, καθώς και
+ σε ένα ανανεωμένο άρθρο του Ken Tom <email>locals@gmail.com</email>.
+ Στην ενότητα αυτή θα σας δείξουμε πως να στήσετε ένα σύστημα &os; το
+ οποίο να διαθέτει ένα επιπλέον επίπεδο ασφάλειας, με τη χρήση του
+ &man.jail.8;. Υποθέτουμε ότι το σύστημα τρέχει τουλάχιστον RELENG_6_0
+ και ότι έχετε κατανοήσει όλες τις προηγούμενες πληροφορίες του
+ κεφαλαίου.</para>
+
+ <sect3 id="jails-service-jails-design">
+ <title>Σχεδιασμός</title>
+
+ <para>Ένα από τα σημαντικότερα προβλήματα με τα jails είναι η
+ διαχείριση της διαδικασίας αναβαθμίσεων. Αυτό τείνει να είναι
+ πρόβλημα διότι το κάθε jail πρέπει να δημιουργηθεί από την αρχή σε
+ κάθε αναβάθμιση. Συνήθως δεν είναι πρόβλημα αν έχετε ένα μόνο jail,
+ μια και πρόκειται για σχετικά απλή διαδικασία, αλλά γίνεται
+ κουραστική και χρονοβόρα αν έχετε πολλά jails.</para>
+
+ <warning>
+ <para>Οι παρακάτω ρυθμίσεις προϋποθέτουν εμπειρία με το &os; και τη
+ χρήση των διάφορων χαρακτηριστικών του. Εάν τα παρακάτω βήματα
+ σας φαίνονται πολύ περίπλοκα, είναι καλύτερα να ρίξετε μια ματιά
+ σε κάτι ποιο απλό όπως το
+ <filename role="package">sysutils/ezjail</filename>, το οποίο
+ παρέχει έναν ευκολότερο τρόπο διαχείρισης των jails του &os; και
+ δεν είναι τόσο εξειδικευμένο όσο οι παρακάτω ρυθμίσεις.</para>
+ </warning>
+
+ <para>Η ιδέα αυτή έχει παρουσιαστεί για να λύσει τέτοιου είδους
+ προβλήματα, με την βοήθεια της κοινής χρήσης όσο το δυνατόν
+ περισσότερων αρχείων μεταξύ των jails, με έναν ασφαλή
+ όμως τρόπο &mdash; χρησιμοποιώντας προσαρτήσεις τύπου
+ &man.mount.nullfs.8; και μόνο για ανάγνωση (read only)
+ έτσι ώστε η αναβάθμιση να είναι ευκολότερη, και η χρήση μεμονωμένων
+ jails για κάθε υπηρεσία να καθίσταται επιθυμητή. Επιπλέον, παρέχει
+ έναν απλό τρόπο για να προσθέσετε και να αφαιρέσετε jails όπως
+ επίσης και να τα αναβαθμίσετε.</para>
+
+ <note>
+ <para>Παραδείγματα υπηρεσιών τέτοιου τύπου: ένας
+ <acronym>HTTP</acronym> server, ένας <acronym>DNS</acronym>
+ server, ένας <acronym>SMTP</acronym> server, κλπ.</para>
+ </note>
+
+ <para>Οι στόχοι των παρακάτω ρυθμίσεων είναι:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Δημιουργία απλών και κατανοητών jails.
+ Αυτό σημαίνει ότι <emphasis>δεν</emphasis> θα τρέξουμε ένα
+ πλήρες installworld σε κάθε jail.</para>
+ </listitem>
+
+ <listitem>
+ <para>Εύκολη προσθήκη και διαγραφή jails.</para>
+ </listitem>
+
+ <listitem>
+ <para>Εύκολη αναβάθμιση υπαρχόντων jails.</para>
+ </listitem>
+
+ <listitem>
+ <para>Δυνατότητα δημιουργίας προσαρμοσμένου τμήματος
+ του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Όσο περισσότερη ασφάλεια είναι δυνατόν, με ελαχιστοποίηση
+ της πιθανότητας κακόβουλης χρήσης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Εξοικονόμηση χώρου και inodes.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Όπως έχουμε ήδη πει, ο σχεδιασμός αυτός εξαρτάται ιδιαίτερα από
+ την ύπαρξη ενός αρχικού template στο οποίο δεν επιτρέπεται η
+ εγγραφή δεδομένων (γνωστό ως <application>nullfs</application>) και
+ το οποίο πρέπει να έχει προσαρτηθεί σε κάθε jail, όπως επίσης και
+ στην ύπαρξη για κάθε jail μιας συσκευής που να επιτρέπει τόσο την
+ ανάγνωση όσο και την εγγραφή. Μια τέτοια συσκευή μπορεί να είναι
+ κάποιος ξεχωριστός φυσικός δίσκος, μια κατάτμηση, ή κάποια συσκευή
+ vnode &man.md.4;. Στο παρακάτω παράδειγμα, θα χρησιμοποιήσουμε
+ προσαρτήσεις τύπου <application>nullfs</application> στις οποίες
+ θα επιτρέπεται εγγραφή και ανάγνωση.</para>
+
+ <para>Η δομή του συστήματος αρχείων περιγράφεται στην παρακάτω
+ λίστα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Κάθε jail θα προσαρτάται κάτω από τον κατάλογο <filename
+ class="directory">/home/j</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <filename class="directory">/home/j/mroot</filename>
+ είναι το template για το κάθε jail και η κατάτμηση μόνο
+ ανάγνωσης για όλα τα jails.</para>
+ </listitem>
+
+ <listitem>
+ <para>Θα δημιουργηθεί ένας κενός κατάλογος για κάθε jail κάτω
+ από τον κατάλογο
+ <filename class="directory">/home/j</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κάθε jail θα έχει έναν κατάλογο
+ <filename class="directory">/s</filename>, ο οποίος θα είναι
+ σύνδεσμος προς το εγγράψιμο μέρος του συστήματος.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κάθε jail θα έχει το δικό εγγράψιμο μέρος το οποίο
+ θα βασίζεται στο
+ <filename class="directory">/home/j/skel</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κάθε jailspace (το εγγράψιμο μέρος κάθε jail) θα πρέπει
+ να δημιουργηθεί στον κατάλογο
+ <filename class="directory">/home/js</filename>.<para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Όλα αυτά προϋποθέτουν ότι τα jails βρίσκονται κάτω από τον
+ κατάλογο <filename class="directory">/home</filename>. Αυτό
+ βέβαια μπορεί να αλλάξει σε οτιδήποτε εσείς θέλετε, αλλά θα
+ επηρεάσει όλα τα παρακάτω παραδείγματα.</para>
+ </note>
+ <!-- Insert an image or drawing here to illustrate the example. -->
+ </sect3>
+
+ <sect3 id="jails-service-jails-template">
+ <title>Δημιουργώντας το Template</title>
+
+ <para>Η ενότητα αυτή θα περιγράψει τα βήματα που χρειάζονται
+ προκειμένου να δημιουργήσετε το πρωταρχικό template το οποίο θα
+ περιέχει το τμήμα των jails που είναι μόνο για ανάγνωση.</para>
+
+ <para>Είναι πάντοτε καλή ιδέα να αναβαθμίζετε το &os; στη τελευταία
+ έκδοση -RELEASE. Για το σκοπό αυτό, διαβάστε το αντίστοιχο
+ <ulink url="&url.books.handbook;/makeworld.html">κεφάλαιο</ulink>
+ στο Εγχειρίδιο. Στη περίπτωση που η αναβάθμιση
+ δεν είναι εφικτή, θα χρειαστείτε buildworld για να μπορέσετε να
+ συνεχίσετε. Επιπλέον θα χρειαστείτε το πακέτο
+ <filename role="package">sysutils/cpdup</filename>. Θα
+ χρησιμοποιήσουμε το βοηθητικό πρόγραμμα &man.portsnap.8; για να
+ κατεβάσουμε τη συλλογή των Ports. Για τους νεο-εισερχόμενους,
+ συνίσταται η ανάγνωση του <ulink
+ url="&url.books.handbook;/portsnap.html">κεφαλαίου για το
+ Portsnap</ulink> στο Εγχειρίδιο του &os;.</para>
+
+ <procedure>
+ <step>
+ <para>Αρχικά, δημιουργήστε μια δομή καταλόγων για το σύστημα
+ αρχείων το οποίο θα είναι μόνο για ανάγνωση, και το οποίο θα
+ περιέχει τα εκτελέσιμα (binaries) του &os; για τα jails.
+ Στη συνέχεια πηγαίνετε στον κατάλογο όπου βρίσκονται τα αρχεία
+ πηγαίου κώδικα (source tree) του &os; και
+ εγκαταστήστε τα αντίστοιχα αρχεία στο jail template:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /home/j /home/j/mroot</userinput>
+&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make installworld DESTDIR=/home/j/mroot</userinput></screen>
+ </step>
+
+ <step>
+ <para>Επόμενο βήμα είναι να προετοιμάσετε τη συλλογή των Ports
+ του &os; για τα jails όπως επίσης και ένα &os; source tree, το
+ οποίο θα χρειαστεί για το
+ <application>mergemaster</application>:</para>
+
+ <screen>&prompt.root; <userinput>cd /home/j/mroot</userinput>
+&prompt.root; <userinput>mkdir usr/ports</userinput>
+&prompt.root; <userinput>portsnap -p /home/j/mroot/usr/ports fetch extract</userinput>
+&prompt.root; <userinput>cpdup /usr/src /home/j/mroot/usr/src</userinput></screen>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε το σκελετό για το τμήμα του συστήματος όπου
+ προορίζεται για ανάγνωση και εγγραφή:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /home/j/skel /home/j/skel/home /home/j/skel/usr-X11R6 /home/j/skel/distfiles</userinput>
+&prompt.root; <userinput>mv etc /home/j/skel</userinput>
+&prompt.root; <userinput>mv usr/local /home/j/skel/usr-local</userinput>
+&prompt.root; <userinput>mv tmp /home/j/skel</userinput>
+&prompt.root; <userinput>mv var /home/j/skel</userinput>
+&prompt.root; <userinput>mv root /home/j/skel</userinput></screen>
+ </step>
+
+ <step>
+ <para>Χρησιμοποιήστε το <application>mergemaster</application>
+ για να εγκαταστήσετε τα αρχεία ρυθμίσεων που λείπουν. Στη
+ συνέχεια διαγράψτε όλους τους έξτρα καταλόγους
+ που δημιουργεί το <application>mergemaster</application>:</para>
+
+ <screen>&prompt.root; <userinput>mergemaster -t /home/j/skel/var/tmp/temproot -D /home/j/skel -i</userinput>
+&prompt.root; <userinput>cd /home/j/skel</userinput>
+&prompt.root; <userinput>rm -R bin boot lib libexec mnt proc rescue sbin sys usr dev</userinput></screen>
+ </step>
+
+ <step>
+ <para>Τώρα, δημιουργήστε συνδέσμους από το σύστημα αρχείων στο
+ οποίο επιτρέπεται η εγγραφή, προς το σύστημα αρχείων που είναι
+ μόνο για ανάγνωση. Βεβαιωθείτε ότι οι σύνδεσμοι έχουν
+ δημιουργηθεί στις σωστές θέσεις <filename
+ class="directory">s/</filename>. Η ύπαρξη πραγματικών
+ καταλόγων ή η δημιουργία καταλόγων σε λάθος θέσεις θα οδηγήσουν
+ την εγκατάσταση σε αποτυχία.</para>
+
+ <screen>&prompt.root; <userinput>cd /home/j/mroot</userinput>
+&prompt.root; <userinput>mkdir s</userinput>
+&prompt.root; <userinput>ln -s s/etc etc</userinput>
+&prompt.root; <userinput>ln -s s/home home</userinput>
+&prompt.root; <userinput>ln -s s/root root</userinput>
+&prompt.root; <userinput>ln -s ../s/usr-local usr/local</userinput>
+&prompt.root; <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput>
+&prompt.root; <userinput>ln -s ../../s/distfiles usr/ports/distfiles</userinput>
+&prompt.root; <userinput>ln -s s/tmp tmp</userinput>
+&prompt.root; <userinput>ln -s s/var var</userinput></screen>
+ </step>
+
+ <step>
+ <para>Σαν τελευταίο βήμα, δημιουργήστε ένα γενικό αρχείο
+ <filename>/home/j/skel/etc/make.conf</filename> με τα παρακάτω
+ δεδομένα:</para>
+
+ <programlisting>WRKDIRPREFIX?= /s/portbuild</programlisting>
+
+ <para>Έχοντας ορίσει το <literal>WRKDIRPREFIX</literal> με
+ αυτόν τον τρόπο, θα μπορείτε να μεταγλωττίσετε ports του &os;
+ μέσα σε κάθε jail. Θυμηθείτε ότι ο κατάλογος των ports είναι
+ μέρος του συστήματος αρχείων που έχει προσαρτηθεί μόνο για
+ ανάγνωση. Η προσαρμοσμένη διαδρομή για το
+ <literal>WRKDIRPREFIX</literal> επιτρέπει την μεταγλώττιση
+ των ports στο εγγράψιμο μέρος του κάθε jail.</para>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3 id="jails-service-jails-creating">
+ <title>Δημιουργώντας Jails</title>
+
+ <para>Τώρα που έχουμε ένα ολοκληρωμένο &os; jail template, μπορούμε να
+ εγκαταστήσουμε και να ρυθμίσουμε τα jails στο
+ <filename>/etc/rc.conf</filename>. Το παράδειγμα αυτό δείχνει
+ τη δημιουργία τριών jails: <quote>NS</quote>,
+ <quote>MAIL</quote> και <quote>WWW</quote>.<para>
+
+ <procedure>
+ <step>
+ <para>Εισάγετε τις παρακάτω γραμμές στο αρχείο
+ <filename>/etc/fstab</filename>, ώστε το μόνο για ανάγνωση
+ template για τα jails και ο εγγράψιμος χώρος
+ να είναι διαθέσιμα στα αντίστοιχα jails:</para>
+
+ <programlisting>/home/j/mroot /home/j/ns nullfs ro 0 0
+/home/j/mroot /home/j/mail nullfs ro 0 0
+/home/j/mroot /home/j/www nullfs ro 0 0
+/home/js/ns /home/j/ns/s nullfs rw 0 0
+/home/js/mail /home/j/mail/s nullfs rw 0 0
+/home/js/www /home/j/www/s nullfs rw 0 0</programlisting>
+
+ <note>
+ <para>Οι κατατμήσεις που είναι σημειωμένες με 0 pass number δεν
+ ελέγχονται κατά την εκκίνηση από το &man.fsck.8;, ενώ για τις
+ κατατμήσεις με 0 dump number, η &man.dump.8; δεν θα
+ δημιουργεί αντίγραφα ασφαλείας. Προφανώς, δεν θέλουμε το
+ <application>fsck</application> να ελέγχει τις προσαρτήσεις
+ τύπου <application>nullfs</application>, ούτε και το
+ <application>dump</application> να κρατά αντίγραφα από τα
+ μόνο για ανάγνωση nullfs συστήματα αρχείων των jails. Αυτός
+ είναι και ο λόγος που βάλαμε <quote>0&nbsp;0</quote> στις δύο
+ τελευταίες στήλες κάθε εγγραφής του
+ <filename>fstab</filename>.</para>
+ </note>
+ </step>
+
+ <step>
+ <para>Ρυθμίστε τα jails στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>jail_enable="YES"
+jail_set_hostname_allow="NO"
+jail_list="ns mail www"
+jail_ns_hostname="ns.example.org"
+jail_ns_ip="192.168.3.17"
+jail_ns_rootdir="/home/j/ns"
+jail_ns_devfs_enable="YES"
+jail_mail_hostname="mail.example.org"
+jail_mail_ip="192.168.3.18"
+jail_mail_rootdir="/home/j/mail"
+jail_mail_devfs_enable="YES"
+jail_www_hostname="www.example.org"
+jail_www_ip="62.123.43.14"
+jail_www_rootdir="/home/j/www"
+jail_www_devfs_enable="YES"</programlisting>
+ <warning>
+ <para>Ο λόγος για τον οποίο θέτουμε τη μεταβλητή
+ <varname>jail_<replaceable>name</replaceable>_rootdir</varname>
+ να δείχνει στο
+ <filename class="directory">/usr/home</filename>
+ αντί για το <filename class="directory">/home</filename>
+ είναι ότι η φυσική διαδρομή για τον κατάλογο
+ <filename class="directory">/home </filename> σε μια τυπική
+ εγκατάσταση του &os; είναι το
+ <filename class="directory">/usr/home</filename>. Η μεταβλητή
+ <varname>jail_<replaceable>name</replaceable>_rootdir</varname>
+ <emphasis>δεν</emphasis> δεν πρέπει να δείχνει προς διαδρομή
+ που περιλαμβάνει συμβολικό δεσμό, διαφορετικά τα jails θα
+ αρνηθούν να ξεκινήσουν. Χρησιμοποιήστε το βοηθητικό πρόγραμμα
+ &man.realpath.1; για να προσδιορίσετε την τιμή που θα πρέπει
+ να λάβει αυτή η μεταβλητή. Δείτε το &os;-SA-07:01.jail
+ Security Advisory για περισσότερες πληροφορίες.</para>
+ </warning>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε τα απαραίτητα σημεία προσαρτήσεων για το
+ σύστημα αρχείων μόνο ανάγνωσης του κάθε jail:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /home/j/ns /home/j/mail /home/j/www</userinput></screen>
+ </step>
+
+ <step>
+ <para>Εγκαταστήστε το εγγράψιμο template μέσα στο κάθε jail.
+ Προσέξτε εδώ τη χρήση του
+ <filename role="package">sysutils/cpdup</filename>, το οποίο
+ επιβεβαιώνει ότι δημιουργείται το σωστό αντίγραφο του κάθε
+ καταλόγου:</para>
+ <!-- keramida: Why is cpdup required here? Doesn't cpio(1)
+ already include adequate functionality for performing this
+ job *and* have the advantage of being part of the base
+ system of FreeBSD? -->
+
+ <screen>&prompt.root; <userinput>mkdir /home/js</userinput>
+&prompt.root; <userinput>cpdup /home/j/skel /home/js/ns</userinput>
+&prompt.root; <userinput>cpdup /home/j/skel /home/js/mail</userinput>
+&prompt.root; <userinput>cpdup /home/j/skel /home/js/www</userinput></screen>
+ </step>
+
+ <step>
+ <para>Σε αυτή τη φάση, τα jails έχουν δημιουργηθεί και είναι
+ έτοιμα να ξεκινήσουν. Προσαρτήστε το σωστό σύστημα αρχείων
+ για το κάθε jail, και στη συνέχεια εκκινήστε τα,
+ χρησιμοποιώντας το script
+ <filename>/etc/rc.d/jail</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mount -a</userinput>
+&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>Τα jails θα πρέπει τώρα να εκτελούνται κανονικά. Γα να ελέγξετε
+ αν έχουν ξεκινήσει σωστά, χρησιμοποιείστε την εντολή &man.jls.8;.
+ Θα πρέπει να δείτε κάτι αντίστοιχο με το παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>jls</userinput>
+ JID IP Address Hostname Path
+ 3 192.168.3.17 ns.example.org /home/j/ns
+ 2 192.168.3.18 mail.example.org /home/j/mail
+ 1 62.123.43.14 www.example.org /home/j/www</screen>
+
+ <para>Σε αυτό το σημείο, θα πρέπει να μπορείτε να συνδεθείτε σε κάθε
+ jail, να προσθέσετε νέους χρήστες ή να ρυθμίσετε υπηρεσίες. Η στήλη
+ <literal>JID</literal> δηλώνει το χαρακτηριστικό αναγνωριστικό
+ αριθμό κάθε ενεργού jail. Χρησιμοποιήστε την παρακάτω εντολή
+ προκειμένου να εκτελέσετε εργασίες διαχείρισης του jail, με
+ <literal>JID</literal> 3:</para>
+
+ <screen>&prompt.root; <userinput>jexec 3 tcsh</userinput></screen>
+ </sect3>
+
+ <sect3 id="jails-service-jails-upgrading">
+ <title>Αναβάθμιση</title>
+
+ <para>Κάποια στιγμή, θα χρειαστεί να αναβαθμίσετε το σύστημά σας σε
+ μια νέα έκδοση του &os;, είτε για λόγους ασφάλειας, είτε γιατί
+ υπάρχουν νέες δυνατότητες στην νεώτερη έκδοση οι οποίες είναι
+ χρήσιμες για τα jails που ήδη έχετε. Ο τρόπος που χρησιμοποιήσαμε
+ για την δημιουργία των jails, επιτρέπει την εύκολη αναβάθμιση τους.
+ Επιπλέον, ελαχιστοποιεί το χρόνο διακοπής της λειτουργίας τους, μια
+ και θα χρειαστεί να τα σταματήσετε μόνο κατά τα λίγα τελευταία
+ λεπτά. Επίσης, παρέχει έναν τρόπο να επιστρέψετε σε παλαιότερες
+ εκδόσεις εάν προκύψουν οποιαδήποτε σφάλματα.</para>
+
+ <procedure>
+ <step>
+ <para>Το πρώτο βήμα είναι να αναβαθμίσετε το σύστημα στο οποίο
+ φιλοξενούνται τα jails, με το συνήθη τρόπο. Στη συνέχεια
+ δημιουργήστε ένα νέο προσωρινό template κατάλογο, μόνο για
+ ανάγνωση, στο
+ <filename class="directory">/home/j/mroot2</filename>.</para>
+
+ <screen>&prompt.root; <userinput>mkdir /home/j/mroot2</userinput>
+&prompt.root; <userinput>cd /usr/src</userinput>
+&prompt.root; <userinput>make installworld DESTDIR=/home/j/mroot2</userinput>
+&prompt.root; <userinput>cd /home/j/mroot2</userinput>
+&prompt.root; <userinput>cpdup /usr/src usr/src</userinput>
+&prompt.root; <userinput>mkdir s</userinput></screen>
+
+ <para>Το <maketarget>installworld</maketarget> δημιουργεί
+ μερικούς καταλόγους που δε χρειάζονται, και θα πρέπει
+ να διαγραφούν:</para>
+
+ <screen>&prompt.root; <userinput>chflags -R 0 var</userinput>
+&prompt.root; <userinput>rm -R etc var root usr/local tmp</userinput></screen>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε ξανά τους συνδέσμους για το σύστημα αρχείων
+ ανάγνωσης - εγγραφής:</para>
+
+ <screen>&prompt.root; <userinput>ln -s s/etc etc</userinput>
+&prompt.root; <userinput>ln -s s/root root</userinput>
+&prompt.root; <userinput>ln -s s/home home</userinput>
+&prompt.root; <userinput>ln -s ../s/usr-local usr/local</userinput>
+&prompt.root; <userinput>ln -s ../s/usr-X11R6 usr/X11R6</userinput>
+&prompt.root; <userinput>ln -s s/tmp tmp</userinput>
+&prompt.root; <userinput>ln -s s/var var</userinput></screen>
+ </step>
+
+ <step>
+ <para>Τώρα είναι η σωστή στιγμή για να σταματήσετε τα
+ jails:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/jail stop</userinput></screen>
+ </step>
+
+ <step>
+ <para>Αποπροσαρτήστε τα αρχικά συστήματα αρχείων:</para>
+ <!-- keramida: Shouldn't we suggest a short script-based
+ loop here, instead of tediously copying the same commands
+ multiple times? -->
+
+ <screen>&prompt.root; <userinput>umount /home/j/ns/s</userinput>
+&prompt.root; <userinput>umount /home/j/ns</userinput>
+&prompt.root; <userinput>umount /home/j/mail/s</userinput>
+&prompt.root; <userinput>umount /home/j/mail</userinput>
+&prompt.root; <userinput>umount /home/j/www/s</userinput>
+&prompt.root; <userinput>umount /home/j/www</userinput></screen>
+
+ <note>
+ <para>Τα συστήματα αρχείων ανάγνωσης - εγγραφής είναι
+ προσαρτημένα στο σύστημα αρχείων μόνο ανάγνωσης
+ (<filename class="directory">/s</filename>) και πρέπει να
+ είναι τα πρώτα που θα αποπροσαρτηθούν.</para>
+ </note>
+ </step>
+
+ <step>
+ <para>Μετακινήστε τον παλιό μόνο για ανάγνωση κατάλογο, και
+ αντικαταστήστε τον με τον καινούργιο. Ο παλιός θα παραμείνει ως
+ αντίγραφο ασφαλείας του παλιού συστήματος σε περίπτωση
+ προβλήματος. Ο τρόπος ονομασίας που ακολουθήσαμε εδώ
+ αντιστοιχεί στη χρονική στιγμή δημιουργίας του νέου συστήματος
+ αρχείων μόνο ανάγνωσης. Μετακινήστε την αρχική συλλογή των
+ Ports του &os; στο νέο σύστημα, αρχείων προκειμένου να
+ εξοικονομήσετε χώρο και inodes:</para>
+
+ <screen>&prompt.root; <userinput>cd /home/j</userinput>
+&prompt.root; <userinput>mv mroot mroot.20060601</userinput>
+&prompt.root; <userinput>mv mroot2 mroot</userinput>
+&prompt.root; <userinput>mv mroot.20060601/usr/ports mroot/usr</userinput></screen>
+ </step>
+
+ <step>
+ <para>Σε αυτό το σημείο το μόνο για ανάγνωση template είναι
+ έτοιμο, οπότε το μόνο που απομένει είναι να προσαρτήσετε ξανά
+ τα συστήματα αρχείων και να ξεκινήσετε τα jails:</para>
+
+ <screen>&prompt.root; <userinput>mount -a</userinput>
+&prompt.root; <userinput>/etc/rc.d/jail start</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>Χρησιμοποιείτε την εντολή &man.jls.8; για να ελέγξετε εάν τα
+ jails ξεκίνησαν σωστά. Μην ξεχάσετε να εκτελέσετε το mergemaster
+ για το κάθε jail. Θα χρειαστεί να αναβαθμίσετε τόσο τα αρχεία
+ ρυθμίσεων, όσο και τα rc.d scripts.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml b/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml
new file mode 100644
index 0000000000..2d74bafa07
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/kernelconfig/chapter.sgml
@@ -0,0 +1,1651 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Ρυθμίζοντας τον Πυρήνα του FreeBSD
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/kernelconfig/chapter.sgml
+ %SRCID% 1.200
+
+-->
+
+<chapter id="kernelconfig">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Ανανεώθηκε και αναδομήθηκε από τον </contrib>
+ <!-- Mar 2000 -->
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Jake</firstname>
+ <surname>Hamby</surname>
+ <contrib>Αρχική συνεισφορά από τον </contrib>
+ <!-- 6 Oct 1995 -->
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Ρυθμίζοντας τον Πυρήνα του &os;</title>
+
+ <sect1 id="kernelconfig-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm>
+ <primary>πυρήνας</primary>
+ <secondary>δημιουργία προσαρμοσμένου πυρήνα</secondary>
+ </indexterm>
+
+ <para>Ο πυρήνας είναι η καρδιά του λειτουργικού συστήματος &os;. Είναι
+ υπεύθυνος για τη διαχείριση της μνήμης, την επιβολή των ρυθμίσεων
+ ασφαλείας, τη δικτύωση, την πρόσβαση στο δίσκο, και πολλά άλλα. Ένα
+ συνεχώς αυξανόμενο μέρος του &os; μπορεί να ρυθμιστεί δυναμικά, αλλά
+ υπάρχουν ακόμα περιπτώσεις οι οποίες απαιτούν ρυθμίσεις και μεταγλώττιση
+ του πυρήνα του &os; με προσαρμοσμένες παραμέτρους.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Για ποιους λόγους μπορεί να χρειαστεί να φτιάξετε ένα
+ προσαρμοσμένο πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να γράψετε ένα αρχείο ρυθμίσεων πυρήνα, ή να αλλάξετε ένα
+ υπάρχον αρχείο ρυθμίσεων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε το αρχείο ρυθμίσεων του πυρήνα για να
+ φτιάξετε και να μεταγλωττίσετε ένα νέο πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε το νέο πυρήνα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να επιλύσετε τυχόν προβλήματα με το νέο πυρήνα.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Όλες οι εντολές που εμφανίζονται σε αυτό το κεφάλαιο ως παραδείγματα
+ πρέπει να εκτελεστούν ως <username>root</username> για να είναι
+ επιτυχείς.</para>
+ </sect1>
+
+ <sect1 id="kernelconfig-custom-kernel">
+ <title>Γιατί να Φτιάξετε Προσαρμοσμένο Πυρήνα;</title>
+
+ <para>Κατά παράδοση, το &os; είχε αυτό που αποκαλούμε
+ <quote>μονολιθικό</quote> πυρήνα. Αυτό σημαίνει ότι ο πυρήνας ήταν ένα
+ μεγάλο πρόγραμμα, υποστήριζε ένα σταθερό αριθμό συσκευών, και αν θέλατε
+ να αλλάξετε τη συμπεριφορά του, θα έπρεπε να μεταγλωττίσετε καινούριο
+ και να επανεκκινήσετε τον υπολογιστή σας με αυτόν.</para>
+
+ <para>Σήμερα, το &os; κινείται ταχύτατα προς ένα μοντέλο όπου οι
+ περισσότερες λειτουργίες του πυρήνα περιέχονται σε modules (αρθρώματα)
+ τα οποία μπορούν να φορτωθούν και να αποφορτωθούν κατά απαίτηση,
+ δυναμικά στον πυρήνα. Αυτό επιτρέπει στον πυρήνα να προσαρμόζεται
+ σε υλικό το οποίο ενεργοποιείται τη δεδομένη στιγμή (όπως για
+ παράδειγμα όταν εισέρχεται μια κάρτα PCMCIA σε ένα φορητό υπολογιστή).
+ Επίσης επιτρέπει στον πυρήνα να επεκτείνει δυναμικά τη λειτουργικότητά
+ του, προσθέτοντας χαρακτηριστικά τα οποία δεν ήταν απαραίτητα όταν
+ είχε μεταγλωττιστεί αρχικά. Αυτού του είδους ο πυρήνας είναι γνωστός ως
+ modular (αρθρωτός).</para>
+
+ <para>Παρ' όλα αυτά, είναι ακόμα απαραίτητο να γίνουν κάποιες στατικές
+ ρυθμίσεις στον πυρήνα. Σε ορισμένες περιπτώσεις, αυτό συμβαίνει επειδή
+ η συγκεκριμένη λειτουργία είναι τόσο στενά συνδεμένη με τον πυρήνα
+ ώστε δεν μπορεί να φορτωθεί δυναμικά. Σε άλλες, συμβαίνει επειδή απλά
+ κανείς δεν έχει ακόμα ασχοληθεί να γράψει ένα δυναμικό module που να
+ παρέχει αυτή τη λειτουργικότητα.</para>
+
+ <para>Η δημιουργία προσαρμοσμένου πυρήνα είναι από τις πλέον σημαντικές
+ τελετουργίες κάθε προχωρημένου χρήστη του BSD. Η διαδικασία
+ αυτή, αν και χρονοβόρα, θα αποβεί ιδιαίτερα ωφέλιμη για το &os; σύστημα
+ σας. Σε αντίθεση με τον πυρήνα <filename>GENERIC</filename>, ο οποίος
+ πρέπει να υποστηρίξει μεγάλο εύρος συσκευών, ένας προσαρμοσμένος πυρήνας
+ περιέχει υποστήριξη μόνο για το υλικό του <emphasis>δικού σας</emphasis>
+ υπολογιστή. Έτσι έχετε κάποια οφέλη, όπως:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ταχύτερη εκκίνηση. Καθώς ο πυρήνας θα ανιχνεύει μόνο το υλικό
+ που έχετε στο σύστημα σας, ο χρόνος που χρειάζεται για την εκκίνηση
+ του συστήματος σας θα μειωθεί δραματικά.</para>
+ </listitem>
+
+ <listitem>
+ <para>Χαμηλότερη κατανάλωση μνήμης. Ένας προσαρμοσμένος πυρήνας,
+ συχνά χρησιμοποιεί λιγότερη μνήμη από τον
+ πυρήνα <filename>GENERIC</filename>, αφού απουσιάζουν από αυτόν
+ συσκευές και χαρακτηριστικά που δεν χρησιμοποιούνται. Αυτό είναι
+ σημαντικό, καθώς ο πυρήνας βρίσκεται πάντα φορτωμένος στη φυσική
+ μνήμη, μειώνοντας έτσι τη μνήμη που είναι διαθέσιμη για εφαρμογές.
+ Για το λόγο αυτό, ο προσαρμοσμένος πυρήνας είναι ιδιαίτερα χρήσιμος
+ σε συστήματα με μικρό μέγεθος φυσικής μνήμης (RAM).</para>
+ </listitem>
+
+ <listitem>
+ <para>Επιπρόσθετη υποστήριξη συσκευών. Ο προσαρμοσμένος πυρήνας σας
+ επιτρέπει να προσθέσετε υποστήριξη για συσκευές οι οποίες δεν
+ υπάρχουν στον <filename>GENERIC</filename> πυρήνα, όπως για
+ παράδειγμα για κάρτες ήχου.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="kernelconfig-devices">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Ανακαλύπτοντας τις Συσκευές του Συστήματος σας</title>
+
+ <para>Πριν ξεκινήσετε με τη ρύθμιση του πυρήνα σας, θα ήταν σκόπιμο να
+ κάνετε μια απογραφή υλικού του υπολογιστή σας. Σε περιπτώσεις που το
+ &os; δεν είναι το βασικό σας λειτουργικό σύστημα, μπορείτε εύκολα να
+ δημιουργήσετε αυτή τη λίστα, εξετάζοντας τις ρυθμίσεις του τρέχοντος
+ λειτουργικού συστήματος. Για παράδειγμα, η
+ <application>Διαχείριση Συσκευών (Device Manager)</application> της
+ &microsoft; δείχνει συνήθως σημαντικές πληροφορίες σχετικά με τις
+ εγκατεστημένες συσκευές. Μπορείτε να βρείτε την
+ <application>Διαχείριση Συσκευών</application>
+ στον πίνακα ελέγχου.</para>
+
+ <note>
+ <para>Μερικές εκδόσεις των &microsoft.windows; διαθέτουν ένα εικονίδιο
+ με τίτλο <application>Σύστημα (System)</application>. Από την οθόνη
+ που εμφανίζεται μπορείτε να επιλέξετε την
+ <application>Διαχείριση Συσκευών</application>.</para>
+ </note>
+
+ <para>Αν δεν υπάρχει άλλο λειτουργικό σύστημα στον υπολογιστή,
+ ο διαχειριστής θα πρέπει να βρει αυτές τις πληροφορίες χειροκίνητα. Μια
+ μέθοδος είναι με τη χρήση του βοηθητικού προγράμματος &man.dmesg.8; και
+ της εντολής &man.man.1;. Τα περισσότερα προγράμματα οδήγησης του &os;
+ διαθέτουν σελίδα manual, η οποία δείχνει το υποστηριζόμενο υλικό. Κατά
+ τη διάρκεια της εκκίνησης, εμφανίζεται μια λίστα με τις συσκευές που
+ ανιχνεύθηκαν. Για παράδειγμα, οι παρακάτω γραμμές δείχνουν ότι το
+ πρόγραμμα οδήγησης <devicename>psm</devicename> εντόπισε ένα
+ ποντίκι:</para>
+
+ <programlisting>psm0: &lt;PS/2 Mouse&gt; irq 12 on atkbdc0
+psm0: [GIANT-LOCKED]
+psm0: [ITHREAD]
+psm0: model Generic PS/2 mouse, device ID 0</programlisting>
+
+ <para>Αυτό το πρόγραμμα οδήγησης θα πρέπει να περιληφθεί στο αρχείο
+ ρυθμίσεων του προσαρμοσμένου πυρήνα σας, ή να φορτωθεί δυναμικά μέσω
+ του &man.loader.conf.5;.</para>
+
+ <para>Σε ορισμένες περιπτώσεις, η έξοδος της <command>dmesg</command>
+ μπορεί να δείχνει μόνο τα μηνύματα του συστήματος και όχι τα
+ αποτελέσματα της ανίχνευσης συσκευών. Στις περιπτώσεις αυτές, μπορείτε
+ να δείτε την επιθυμητή έξοδο στα περιεχόμενα του αρχείου
+ <filename>/var/run/dmesg.boot</filename>.</para>
+
+ <para>Μια άλλη μέθοδος για την ανίχνευση του υλικού, είναι μέσω του
+ βοηθητικού προγράμματος &man.pciconf.8;, το οποίο παρέχει πιο αναλυτική
+ περιγραφή. Για παράδειγμα:</para>
+
+ <programlisting>ath0@pci0:3:0:0: class=0x020000 card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
+vendor = 'Atheros Communications Inc.'
+device = 'AR5212 Atheros AR5212 802.11abg wireless'
+class = network
+subclass = ethernet</programlisting>
+
+ <para>Η παραπάνω έξοδος, που λήφθηκε μέσω της εντολής
+ <command>pciconf <option>-lv</option></command>, δείχνει ότι το
+ πρόγραμμα οδήγησης <devicename>ath</devicename> εντόπισε μια συσκευή
+ ασύρματου Ethernet. Μπορείτε να δείτε την αντίστοιχη σελίδα manual
+ του προγράμματος &man.ath.4;, χρησιμοποιώντας την εντολή
+ <command>man <replaceable>ath</replaceable></command>.</para>
+
+ <para>Μπορείτε επίσης να πάρετε χρήσιμες πληροφορίες από την εντολή
+ &man.man.1;, αν δώσετε την επιλογή <option>-k</option>. Στο παραπάνω
+ παράδειγμα, δίνοντας:</para>
+
+ <screen>&prompt.root; man -k <replaceable>Atheros</replaceable></screen>
+
+ <para>Θα δείτε μια λίστα από σελίδες manual που περιέχουν τη
+ συγκεκριμένη λέξη:</para>
+
+ <programlisting>ath(4) - Atheros IEEE 802.11 wireless network driver
+ath_hal(4) - Atheros Hardware Access Layer (HAL)</programlisting>
+
+ <para>Έχοντας διαθέσιμη την απογραφή υλικού του υπολογιστή σας,
+ η διαδικασία δημιουργίας προσαρμοσμένου πυρήνα σίγουρα φαίνεται
+ λιγότερο αποθαρρυντική.</para>
+ </sect1>
+
+ <sect1 id="kernelconfig-modules">
+ <title>Προγράμματα Οδήγησης, Υποσυστήματα και Αρθρώματα (modules)</title>
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>drivers / modules / subsystems</secondary>
+ </indexterm>
+
+ <para>Πριν δημιουργήσετε ένα προσαρμοσμένο πυρήνα, θα πρέπει πρώτα να
+ σκεφτείτε για ποιους λόγους τον χρειάζεστε. Σε πολλές περιπτώσεις,
+ η υποστήριξη κάποιας συγκεκριμένης συσκευής μπορεί να επιτευχθεί με την
+ χρήση κάποιου αρθρώματος (module).</para>
+
+ <para>Τα αρθρώματα του πυρήνα βρίσκονται στον κατάλογο
+ <filename class="directory">/boot/kernel/</filename> και μπορούν να
+ φορτωθούν δυναμικά στον πυρήνα που εκτελείται τη δεδομένη στιγμή, με
+ τη χρήση της εντολής &man.kldload.8;. Τα περισσότερα, αν και όχι όλα,
+ τα προγράμματα οδήγησης στον πυρήνα, διατίθενται και σε μορφή
+ αρθρώματος· έχουν επίσης τη δική του σελίδα βοήθειας το καθένα. Για
+ παράδειγμα, στην προηγούμενη ενότητα, είδαμε το πρόγραμμα οδήγησης
+ ασύρματου Ethernet <devicename>ath</devicename>. Η σελίδα βοήθειας
+ για αυτή τη συσκευή αναφέρει:</para>
+
+ <programlisting>Alternatively, to load the driver as a module at boot time, place the
+following line in &man.loader.conf.5;:
+
+ if_ath_load="YES"</programlisting>
+
+ <para>Όπως αναφέρεται στις οδηγίες, αν βάλετε την γραμμή
+ <literal>if_ath_load="YES"</literal> στο αρχείο
+ <filename>/boot/loader.conf</filename>, το άρθρωμα θα φορτωθεί δυναμικά
+ κατά την εκκίνηση του συστήματος σας.</para>
+
+ <para>Σε μερικές περιπτώσεις ωστόσο, δεν υπάρχει άρθρωμα που να σχετίζεται
+ με κάποιο πρόγραμμα οδήγησης. Αυτό ισχύει περισσότερο για κάποια
+ ιδιαίτερα υποσυστήματα και πολύ σημαντικά προγράμματα οδήγησης. Για
+ παράδειγμα, το πρόγραμμα οδήγησης του συστήματος αρχείων fast file
+ system (<acronym>FFS</acronym>) απαιτείται να είναι ενσωματωμένο στον
+ πυρήνα. Το ίδιο συμβαίνει και με την υποστήριξη δικτύου (INET).
+ Δυστυχώς, ο μόνος τρόπος για να δείτε αν ένα πρόγραμμα οδήγησης πρέπει
+ να είναι υποχρεωτικά ενσωματωμένο στον πυρήνα, είναι να ελέγξετε αν
+ υπάρχει το αντίστοιχο άρθρωμα.</para>
+
+ <warning>
+ <para>Είναι αρκετά εύκολο να αφαιρέσετε την υποστήριξη για κάποια
+ συσκευή ή άλλη επιλογή, και να καταλήξετε με ένα πυρήνα που δεν μπορεί
+ να ξεκινήσει. Για παράδειγμα, αν βγάλετε το πρόγραμμα οδήγησης
+ &man.ata.4; από το αρχείο ρυθμίσεων του πυρήνα σας, αν το σύστημα σας
+ χρησιμοποιεί δίσκους <acronym>ATA</acronym> δεν θα μπορεί να
+ ξεκινήσει. Στην περίπτωση αυτή θα πρέπει να βάλετε την αντίστοιχη
+ γραμμή στο αρχείο <filename>loader.conf</filename> για να φορτώσετε
+ το σχετικό άρθρωμα. Αν δεν είστε σίγουροι, ελέγξτε για την ύπαρξη
+ του αρθρώματος, και απλώς αφήστε την υποστήριξη ενσωματωμένη στον
+ πυρήνα.</para>
+ </warning>
+ </sect1>
+
+ <sect1 id="kernelconfig-building">
+ <title>Δημιουργία και Εγκατάσταση Προσαρμοσμένου Πυρήνα</title>
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>building / installing</secondary>
+ </indexterm>
+
+ <note>
+ <para>Χρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του
+ &os; για να μεταγλωττίσετε τον πυρήνα.</para>
+ </note>
+
+ <para>Αρχικά, θα κάνουμε μια γρήγορη παρουσίαση του καταλόγου στον οποίο
+ γίνεται η μεταγλώττιση του πυρήνα. Όλοι οι κατάλογοι που θα αναφέρουμε
+ βρίσκονται κάτω από τον κατάλογο <filename>/usr/src/sys</filename> ο
+ οποίος είναι επίσης προσβάσιμος μέσω της διαδρομής
+ <filename>/sys</filename>. Υπάρχει εδώ ένας αριθμός υποκαταλόγων ο
+ οποίος αντιπροσωπεύει διαφορετικά τμήματα του πυρήνα, αλλά οι πλέον
+ σημαντικοί για το σκοπό μας είναι οι
+ <filename><replaceable>arch</replaceable>/conf</filename>, όπου θα
+ επεξεργαστείτε τις ρυθμίσεις για τον προσαρμοσμένο πυρήνα σας, και ο
+ <filename>compile</filename>, που είναι ο χώρος εργασίας στον οποίο θα
+ γίνει η μεταγλώττιση του. Ο <replaceable>arch</replaceable>
+ αντιπροσωπεύει ένα από τα <filename>i386</filename>,
+ <filename>amd64</filename>,
+ <filename>ia64</filename>, <filename>powerpc</filename>,
+ <filename>sparc64</filename>, ή <filename>pc98</filename>
+ (ένας εναλλακτικός τύπος PC, διαδεδομένος στην Ιαπωνία). Οτιδήποτε
+ βρίσκεται μέσα στον συγκεκριμένο κατάλογο μιας αρχιτεκτονικής,
+ σχετίζεται μόνο με την αρχιτεκτονική αυτή. Το υπόλοιπο του κώδικα,
+ είναι ανεξάρτητο από την αρχιτεκτονική και κοινό σε κάθε πλατφόρμα όπου
+ θα μπορούσε να μεταγλωττιστεί το &os;. Παρατηρήστε τη λογική οργάνωση
+ της δομής των καταλόγων, όπου κάθε υποστηριζόμενη συσκευή, σύστημα
+ αρχείων και επιλογή βρίσκεται στο δικό της κατάλογο.</para>
+
+ <para>Στα παραδείγματα αυτού του κεφαλαίου υποθέτουμε ότι χρησιμοποιείτε
+ την αρχιτεκτονική i386. Αν χρησιμοποιείτε διαφορετική αρχιτεκτονική,
+ θα χρειαστεί να αλλάξετε τα ονόματα των καταλόγων και διαδρομών ώστε
+ να συμβαδίζουν με αυτή.</para>
+
+ <note>
+ <para>Αν <emphasis>δεν υπάρχει</emphasis> ο κατάλογος
+ <filename class="directory">/usr/src/sys</filename> στο σύστημα σας
+ (ή αν είναι άδειος), τότε δεν έχετε
+ εγκαταστήσει τον πηγαίο κώδικα του πυρήνα. Ο ευκολότερος τρόπος για
+ να τον εγκαταστήσετε είναι εκτελώντας το <command>sysinstall</command>
+ ως <username>root</username>, επιλέγοντας
+ <guimenuitem>Configure</guimenuitem>, μετά
+ <guimenuitem>Distributions</guimenuitem>, έπειτα
+ <guimenuitem>src</guimenuitem> και τέλος
+ <guimenuitem>All</guimenuitem>. Θα χρειαστεί να δημιουργήσετε και
+ ένα συμβολικό δεσμό προς τον κατάλογο <filename
+ class="directory">/usr/src/sys/</filename> αν δεν υπάρχει
+ ήδη:</para>
+
+ <screen>&prompt.root; <userinput>ln -s /usr/src/sys /sys</userinput></screen>
+ </note>
+
+ <para>Έπειτα, μετακινηθείτε στον κατάλογο
+ <filename><replaceable>arch</replaceable>/conf</filename>
+ και αντιγράψτε το αρχείο ρυθμίσεων <filename>GENERIC</filename> στο
+ όνομα το οποίο θέλετε να δώσετε στο νέο σας πυρήνα. Για παράδειγμα:
+ </para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf</userinput>
+&prompt.root; <userinput>cp GENERIC <replaceable>MYKERNEL</replaceable></userinput></screen>
+
+ <para>Κατά παράδοση, το όνομα αυτό γράφεται εξ' ολοκλήρου με κεφαλαία
+ γράμματα και αν έχετε πολλά μηχανήματα &os; με διαφορετικό υλικό,
+ είναι καλή ιδέα να του δώσετε το όνομα του μηχανήματος. Για το
+ παράδειγμα μας, θα το αποκαλούμε
+ <filename><replaceable>MYKERNEL</replaceable></filename>.</para>
+
+ <tip>
+ <para>Δεν είναι γενικά καλή ιδέα να αποθηκεύσετε το αρχείο ρυθμίσεων σας
+ απευθείας στον κατάλογο <filename>/usr/src</filename>. Αν
+ αντιμετωπίσετε προβλήματα, ίσως μπείτε στον πειρασμό να διαγράψετε
+ απλώς τον κατάλογο <filename>/usr/src</filename> και να ξεκινήσετε
+ από την αρχή. Συνήθως λίγα δευτερόλεπτα μετά από αυτό θα
+ συνειδητοποιήσετε ότι έχετε επίσης διαγράψει το αρχείο ρυθμίσεων
+ του πυρήνα σας. Επίσης, μην επεξεργάζεστε απευθείας το αρχείο
+ <filename>GENERIC</filename>, καθώς μπορεί οι αλλαγές σας να χαθούν
+ την επόμενη φορά που θα
+ <link linkend="updating-upgrading">ανανεώσετε τον πηγαίο σας κώδικα</link>.
+ </para>
+
+ <para>Καλό θα είναι να αποθηκεύσετε το αρχείο ρυθμίσεων σε άλλο κατάλογο
+ και να δημιουργήσετε ένα συμβολικό δεσμό προς το αρχείο, στον κατάλογο
+ <filename><replaceable>i386</replaceable></filename>.</para>
+
+ <para>Για παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf</userinput>
+&prompt.root; <userinput>mkdir /root/kernels</userinput>
+&prompt.root; <userinput>cp GENERIC /root/kernels/<replaceable>MYKERNEL</replaceable></userinput>
+&prompt.root; <userinput>ln -s /root/kernels/<replaceable>MYKERNEL</replaceable></userinput></screen>
+ </tip>
+
+ <para>Τώρα, τροποποιήστε το αρχείο
+ <filename><replaceable>MYKERNEL</replaceable></filename> με τον
+ επεξεργαστή κειμένου που προτιμάτε. Αν ξεκινάτε μόλις τώρα, πιθανόν ο
+ μόνος διαθέσιμος επεξεργαστής κειμένου να είναι το
+ <application>vi</application>, ο οποίος είναι αρκετά πολύπλοκος για να
+ τον εξηγήσουμε εδώ, αλλά καλύπτεται αρκετά καλά από πλήθος βιβλίων στην
+ <link linkend="bibliography">βιβλιογραφία</link>. Ωστόσο, το &os;
+ διαθέτει επίσης ένα ευκολότερο επεξεργαστή κειμένου, τον
+ <application>ee</application> ο οποίος είναι η κατάλληλη επιλογή αν
+ είστε αρχάριος. Αλλάξτε κατά βούληση τα σχόλια στην αρχή του αρχείου
+ ρυθμίσεων ώστε να αντανακλούν τις αλλαγές που έχετε κάνει και οι οποίες
+ το διαχωρίζουν από το <filename>GENERIC</filename>.</para>
+ <indexterm><primary>SunOS</primary></indexterm>
+
+ <para>Αν έχετε δημιουργήσει πυρήνα στο &sunos; ή σε κάποιο άλλο
+ λειτουργικό σύστημα τύπου BSD, το μεγαλύτερο μέρος αυτού του αρχείου
+ θα σας φανεί γνωστό. Από την άλλη, αν έρχεστε από κάποιο άλλο
+ λειτουργικό, όπως το DOS το αρχείο ρυθμίσεων
+ <filename>GENERIC</filename> ίσως να σας είναι δύσκολο στην κατανόηση,
+ για το λόγο αυτό ακολουθήστε αργά και προσεκτικά τις περιγραφές του
+ τμήματος
+ <link linkend="kernelconfig-config">Αρχείο Ρυθμίσεων</link>.</para>
+
+ <note>
+ <para>Αν <link
+ linkend="updating-upgrading">συγχρονίσετε τον πηγαίο κώδικα</link>
+ με τις τελευταίες αλλαγές του &os; project, να διαβάσετε το αρχείο
+ <filename>/usr/src/UPDATING</filename> πριν προχωρήσετε σε οποιοδήποτε
+ βήμα αναβάθμισης. Το αρχείο αυτό περιγράφει πιθανά σημαντικά
+ προβλήματα ή περιοχές που χρειάζονται ιδιαίτερη προσοχή όσο αφορά τον
+ ανανεωμένο πηγαίο κώδικα. Το αρχείο
+ <filename>/usr/src/UPDATING</filename> ταιριάζει πάντα με την έκδοση
+ του πηγαίου κώδικα του &os; που έχετε, και είναι για αυτό το λόγο
+ πιο ενημερωμένο σε σχέση με ότι διαβάσετε στο παρόν βιβλίο.</para>
+ </note>
+
+ <para>Θα πρέπει τώρα να μεταγλωττίσετε τον πηγαίο κώδικα του πυρήνα.
+ </para>
+
+ <procedure>
+ <title>Μεταγλώττιση του Πυρήνα</title>
+
+ <note>
+ <para>Χρειάζεται να έχετε εγκαταστήσει όλο τον πηγαίο κώδικα του
+ &os; για να μεταγλωττίσετε τον πυρήνα.</para>
+ </note>
+
+ <step>
+ <para>Μετακινηθείτε στον κατάλογο <filename
+ class="directory">/usr/src</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
+ </step>
+
+ <step>
+ <para>Μεταγλωττίστε τον πυρήνα:</para>
+
+ <screen>&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
+ </step>
+
+ <step>
+ <para>Εγκαταστήστε το νέο πυρήνα:</para>
+
+ <screen>&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
+ </step>
+ </procedure>
+
+ <tip>
+ <para>Από προεπιλογή, όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα,
+ δημιουργούνται επίσης και <emphasis>όλα</emphasis> τα modules
+ (αρθρώματα) πυρήνα. Αν θέλετε να κάνετε πιο γρήγορη ανανέωση του
+ πυρήνα ή να δημιουργήσετε μόνο συγκεκριμένα modules, θα πρέπει να
+ τροποποιήσετε το αρχείο <filename>/etc/make.conf</filename> πριν
+ ξεκινήσετε τη δημιουργία του πυρήνα:</para>
+
+ <programlisting>MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs</programlisting>
+
+ <para>Στη μεταβλητή αυτή δίνετε μια λίστα των modules που θέλετε να
+ δημιουργηθούν, αντί να δημιουργηθούν όλα.</para>
+
+ <programlisting>WITHOUT_MODULES = linux acpi sound ntfs</programlisting>
+
+ <para>Στη μεταβλητή αυτή δίνετε μια λίστα βασικών (top level) modules
+ που θέλετε να παραλείψετε κατά τη διαδικασία δημιουργίας. Για άλλες
+ μεταβλητές που ίσως είναι χρήσιμες στη διαδικασία δημιουργίας πυρήνα,
+ δείτε τη σελίδα manual του &man.make.conf.5;.</para>
+ </tip>
+
+ <indexterm>
+ <primary><filename class="directory">/boot/kernel.old</filename></primary>
+ </indexterm>
+
+ <para>Ο νέος πυρήνας θα αντιγραφεί στον κατάλογο
+ <filename class="directory">/boot/kernel</filename> με το όνομα
+ <filename>/boot/kernel/kernel</filename> ενώ ο παλιός πυρήνας θα
+ μετακινηθεί στο <filename>/boot/kernel.old/kernel</filename>. Τερματίστε
+ τώρα το σύστημα σας και επανεκκινήστε για να χρησιμοποιήσετε το νέο
+ πυρήνα. Αν κάτι πάει στραβά, υπάρχουν κάποιες πληροφορίες για
+ <link linkend="kernelconfig-trouble">Αντιμετώπιση Προβλημάτων</link> που
+ ίσως σας φανούν χρήσιμες, στο τέλος αυτού του κεφαλαίου. Βεβαιωθείτε ότι
+ διαβάσατε το τμήμα που εξηγεί πως να επαναφέρετε το σύστημα σας σε
+ περίπτωση που ο νέος πυρήνας
+ <link linkend="kernelconfig-noboot">δεν εκκινεί</link>.</para>
+
+ <note>
+ <para>Άλλα αρχεία που σχετίζονται με τη διαδικασία εκκίνησης, όπως ο
+ &man.loader.8; και οι ρυθμίσεις του, βρίσκονται στον κατάλογο
+ <filename>/boot</filename>. Εξειδικευμένα modules ή modules τρίτων
+ κατασκευαστών μπορούν να τοποθετηθούν στον κατάλογο
+ <filename class="directory">/boot/kernel</filename>, αν και οι χρήστες
+ θα πρέπει να γνωρίζουν ότι είναι σημαντικό τα modules να είναι σε
+ συγχρονισμό με τον πυρήνα. Modules τα οποία δεν προορίζονται για
+ εκτέλεση με τον τρέχοντα πυρήνα, μπορούν να προκαλέσουν αστάθεια
+ ή εσφαλμένη λειτουργία του συστήματος σας.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="kernelconfig-config">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Joel</firstname>
+ <surname>Dahl</surname>
+ <contrib>Ανανεώθηκε για το &os; </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Το Αρχείο Ρυθμίσεων</title>
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>NOTES</secondary>
+ </indexterm>
+ <indexterm><primary>NOTES</primary></indexterm>
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>configuration file</secondary>
+ </indexterm>
+
+ <para>Η γενική μορφή ενός αρχείου ρυθμίσεων πυρήνα, είναι αρκετά απλή.
+ Κάθε γραμμή περιέχει μια λέξη-κλειδί και ένα ή περισσότερα ορίσματα. Για
+ λόγους απλότητας, οι περισσότερες γραμμές περιέχουν μόνο ένα όρισμα.
+ Οτιδήποτε βρίσκεται μετά το σύμβολο <literal>#</literal> θεωρείται
+ σχόλιο και αγνοείται. Στα επόμενα τμήματα θα βρείτε περιγραφή για τις
+ λέξεις-κλειδιά, με τη σειρά που εμφανίζονται στο αρχείο ρυθμίσεων
+ <filename>GENERIC</filename>.
+ <anchor
+ id="kernelconfig-options"> Για εξαντλητική λίστα των παραμέτρων και
+ συσκευών που εξαρτώνται από την αρχιτεκτονική, δείτε το αρχείο
+ <filename>NOTES</filename> το οποίο βρίσκεται στον ίδιο κατάλογο με το
+ αρχείο <filename>GENERIC</filename>. Για επιλογές και ρυθμίσεις που
+ είναι ανεξάρτητες από την αρχιτεκτονική, δείτε το αρχείο
+ <filename>/usr/src/sys/conf/NOTES</filename>.</para>
+
+ <para>Μπορείτε να χρησιμοποιήσετε την οδηγία
+ <literal>include</literal> στα αρχεία ρυθμίσεων. Η οδηγία αυτή
+ επιτρέπει την λογική συμπερίληψη ενός άλλου αρχείου ρυθμίσεων μέσα στο
+ τρέχον, κάνοντας πιο εύκολη τη συντήρηση του όταν οι αλλαγές που
+ χρειάζονται είναι λίγες σε σχέση με το αρχικό αρχείο. Για παράδειγμα,
+ αν χρειάζεστε ένα πυρήνα <filename>GENERIC</filename> με λίγες μόνο
+ παραπάνω επιλογές ή προγράμματα οδήγησης, μπορείτε να δημιουργήσετε ένα
+ μικρό αρχείο διαφορών σε σχέση με τον
+ <filename>GENERIC</filename>:</para>
+
+ <programlisting>include GENERIC
+ident MYKERNEL
+
+options IPFIREWALL
+options DUMMYNET
+options IPFIREWALL_DEFAULT_TO_ACCEPT
+options IPDIVERT</programlisting>
+
+ <para>Πολλοί διαχειριστές βρίσκουν ότι αυτό το μοντέλο προσφέρει σημαντικά
+ πλεονεκτήματα σε σχέση με τον παραδοσιακό τρόπο συγγραφής αρχείων
+ ρυθμίσεων από το μηδέν: το τοπικό αρχείο ρυθμίσεων περιέχει μόνο τις
+ διαφορές από ένα πυρήνα <filename>GENERIC</filename>. Καθώς γίνονται
+ αναβαθμίσεις στο σύστημα, τα νέα χαρακτηριστικά και δυνατότητες που
+ προστίθενται στον <filename>GENERIC</filename> θα προστεθούν και
+ στον προσαρμοσμένο πυρήνα, εκτός αν το αποτρέψετε χρησιμοποιώντας το
+ <literal>nooptions</literal> ή το <literal>nodevice</literal>.
+ Το υπόλοιπο αυτού του κεφαλαίου, εξηγεί το περιεχόμενο ενός τυπικού
+ αρχείου ρυθμίσεων και το ρόλο που έχουν οι διάφορες επιλογές και τα
+ προγράμματα οδήγησης που εμφανίζονται σε αυτό.</para>
+
+ <note>
+ <para>Για να δημιουργήσετε ένα αρχείο το οποίο να περιέχει όλες τις
+ διαθέσιμες επιλογές, όπως γίνεται συνήθως για δοκιμές, εκτελέστε την
+ ακόλουθη εντολή ως <username>root</username>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/sys/<replaceable>i386</replaceable>/conf &amp;&amp; make LINT</userinput></screen>
+ </note>
+
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>configuration file</secondary>
+ </indexterm>
+
+ <para>Το παρακάτω είναι ένα παράδειγμα του αρχείου ρυθμίσεων
+ <filename>GENERIC</filename> με επιπρόσθετα διευκρινιστικά σχόλια όπου
+ είναι απαραίτητο. Το παράδειγμα θα πρέπει να ταιριάζει αρκετά καλά
+ με το αντίγραφο του αρχείου πού έχετε στο
+ <filename>/usr/src/sys/<replaceable>i386</replaceable>/conf/GENERIC</filename>.</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>machine</secondary>
+ </indexterm>
+
+ <programlisting>machine i386</programlisting>
+
+ <para>Πρόκειται για την αρχιτεκτονική του μηχανήματος. Πρέπει να είναι
+ <literal>amd64</literal>,
+ <literal>i386</literal>, <literal>ia64</literal>,
+ <literal>pc98</literal>, <literal>powerpc</literal>, ή
+ <literal>sparc64</literal>.</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>cpu</secondary>
+ </indexterm>
+ <programlisting>cpu I486_CPU
+cpu I586_CPU
+cpu I686_CPU</programlisting>
+
+ <para>Η παραπάνω επιλογή καθορίζει τον τύπο της CPU που έχετε στο σύστημα
+ σας. Μπορεί να έχετε παραπάνω από μια τέτοιες γραμμές (αν για παράδειγμα
+ δεν είστε σίγουρος αν θα πρέπει να χρησιμοποιήσετε
+ <literal>I586_CPU</literal> ή <literal>I686_CPU</literal>),
+ αλλά για ένα προσαρμοσμένο πυρήνα είναι καλύτερα να καθορίσετε μόνο τη
+ CPU που έχετε. Αν δεν είστε σίγουρος για τον τύπο της CPU μπορείτε να
+ ελέγξετε το αρχείο <filename>/var/run/dmesg.boot</filename> για να δείτε
+ τα μηνύματα εκκίνησης του συστήματος σας.</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>ident</secondary>
+ </indexterm>
+
+ <programlisting>ident GENERIC</programlisting>
+
+ <para>Αυτό είναι το αναγνωριστικό όνομα του πυρήνα. Θα πρέπει να το
+ αλλάξετε στο όνομα που δώσατε στον πυρήνα σας, π.χ.
+ <literal>MYKERNEL</literal> αν έχετε ακολουθήσει τις οδηγίες από το
+ προηγούμενο μας παράδειγμα. Η τιμή που θα βάλετε στο αλφαριθμητικό
+ <literal>ident</literal> θα εκτυπώνεται όταν εκκινείτε με τον
+ συγκεκριμένο πυρήνα, και έτσι είναι χρήσιμο να δώσετε στο νέο πυρήνα ένα
+ διαφορετικό όνομα αν θέλετε να το ξεχωρίζετε από το συνηθισμένο πυρήνα
+ σας (αν π.χ. θέλετε να φτιάξετε ένα πειραματικό πυρήνα).</para>
+
+ <programlisting>#To statically compile in device wiring instead of /boot/device.hints
+#hints "GENERIC.hints" # Default places to look for devices.</programlisting>
+
+ <para>Το αρχείο &man.device.hints.5; χρησιμοποιείται για τον καθορισμό
+ επιλογών που σχετίζονται με τους οδηγούς συσκευών. Η προεπιλεγμένη θέση
+ την οποία ελέγχει ο &man.loader.8; κατά την εκκίνηση είναι το
+ <filename>/boot/device.hints</filename>. Χρησιμοποιώντας την επιλογή
+ <literal>hints</literal> μπορείτε να ενσωματώσετε στατικά τις οδηγίες
+ αυτές μέσα στον πυρήνα. Στην περίπτωση αυτή δεν υπάρχει λόγος να
+ δημιουργήσετε το αρχείο <filename>device.hints</filename> στον κατάλογο
+ <filename>/boot</filename>.</para>
+
+ <!-- XXX: Add a comment here that explains when compiling hints into
+ the kernel is a good idea and why. -->
+
+ <programlisting>makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols</programlisting>
+
+ <para>Η φυσιολογική διαδικασία δημιουργίας του &os; περιλαμβάνει
+ πληροφορίες εκσφαλμάτωσης (debugging) όταν ο πυρήνας δημιουργείται με
+ την επιλογή <option>-g</option>, επιτρέποντας έτσι την χρήση τους όταν
+ δοθούν στο &man.gcc.1;.</para>
+
+ <programlisting>options SCHED_ULE # ULE scheduler</programlisting>
+
+ <para>Ο προεπιλεγμένος scheduler του &os;. Κρατήστε την επιλογή
+ αυτή.</para>
+
+ <programlisting>options PREEMPTION # Enable kernel thread preemption</programlisting>
+
+ <para>Επιτρέπει σε νήματα του πυρήνα να προσπεραστούν από άλλα,
+ υψηλότερης προτεραιότητας. Βοηθάει στην αύξηση απόκρισης του
+ συστήματος και επιτρέπει σε νήματα διακοπών (interrupts) να εκτελεστούν
+ πιο γρήγορα, αντί να μένουν σε αναμονή.</para>
+
+ <programlisting>options INET # InterNETworking</programlisting>
+
+ <para>Υποστήριξη δικτύου. Αφήστε την επιλογή αυτή ενεργοποιημένη, ακόμα
+ και αν δεν σκοπεύετε να συνδεθείτε σε κάποιο δίκτυο. Τα περισσότερα
+ προγράμματα χρειάζονται έστω και την εσωτερική (loopback) δικτύωση
+ (τη δυνατότητα δηλ. να κάνουν συνδέσεις δικτύου μέσα στο ίδιο σας το
+ μηχάνημα), καθιστώντας την επιλογή αυτή ουσιαστικά υποχρεωτική.</para>
+
+ <programlisting>options INET6 # IPv6 communications protocols</programlisting>
+
+ <para>Η επιλογή αυτή ενεργοποιεί τα πρωτόκολλα επικοινωνίας IPv6.</para>
+
+ <programlisting>options FFS # Berkeley Fast Filesystem</programlisting>
+
+ <para>Πρόκειται για το βασικό σύστημα αρχείων του σκληρού δίσκου. Αφήστε
+ την επιλογή αυτή ενεργοποιημένη, αν ξεκινάτε από το σκληρό δίσκο.
+ </para>
+
+ <programlisting>options SOFTUPDATES # Enable FFS Soft Updates support</programlisting>
+
+ <para>Η επιλογή αυτή ενεργοποιεί τα Soft Updates στον πυρήνα, το οποίο
+ βοηθάει την επιτάχυνση της εγγραφής στους δίσκους. Ακόμα και αν η
+ λειτουργία αυτή παρέχεται από τον πυρήνα, θα πρέπει επίσης να
+ ενεργοποιηθεί για συγκεκριμένους δίσκους. Δείτε την έξοδο της εντολής
+ &man.mount.8; για να δείτε αν είναι ενεργοποιημένα τα Soft Updates
+ στους δίσκους του συστήματος σας. Αν δεν δείτε την επιλογή
+ <literal>soft-updates</literal> θα χρειαστεί να την ενεργοποιήσετε με
+ την εντολή &man.tunefs.8; (για υπάρχοντα συστήματα αρχείων) ή
+ &man.newfs.8; (για νέα συστήματα αρχείων).</para>
+
+ <programlisting>options UFS_ACL # Support for access control lists</programlisting>
+
+ <para>Με την επιλογή αυτή, ενεργοποιείται η υποστήριξη του πυρήνα για
+ λίστες ελέγχου πρόσβασης (access control lists). Τα
+ <acronym>ACL</acronym>s εξαρτιούνται από τη χρήση εκτεταμένων ιδιοτήτων
+ και από το σύστημα αρχείων <acronym>UFS2</acronym>, και περιγράφονται
+ με λεπτομέρεια στο <xref linkend="fs-acl">. Τα <acronym>ACL</acronym>s
+ είναι ενεργοποιημένα από προεπιλογή, και δεν θα πρέπει να τα
+ απενεργοποιήσετε από τον πυρήνα αν έχουν χρησιμοποιηθεί στο παρελθόν σε
+ κάποιο σύστημα αρχείων, καθώς αυτό θα τα αφαιρέσει από τα αρχεία,
+ αλλάζοντας έτσι τον τρόπο προστασίας τους με απρόβλεπτους τρόπους.
+ </para>
+
+ <programlisting>options UFS_DIRHASH # Improve performance on big directories</programlisting>
+
+ <para>Με την επιλογή αυτή, περιλαμβάνονται λειτουργίες που αυξάνουν την
+ ταχύτητα πρόσβασης του δίσκου σε μεγάλους καταλόγους, με κόστος τη χρήση
+ επιπρόσθετης μνήμης. Φυσιολογικά, θα θέλετε να κρατήσετε την επιλογή
+ αυτή σε ένα μεγάλο εξυπηρετητή ή σταθμό εργασίας, και να την αφαιρέσετε
+ όταν χρησιμοποιείτε το &os; σε ένα μικρό σύστημα όπου η μνήμη είναι
+ περιορισμένη και η ταχύτητα πρόσβασης στο δίσκο είναι λιγότερο
+ σημαντική, όπως για παράδειγμα σε ένα firewall.</para>
+
+ <programlisting>options MD_ROOT # MD is a potential root device</programlisting>
+
+ <para>Με την επιλογή αυτή ενεργοποιείται η υποστήριξη χρήσης ενός
+ εικονικού δίσκου στη μνήμη RAM (ramdrive) για χρήση ως συσκευή root.
+ </para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>NFS</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>NFS_ROOT</secondary>
+ </indexterm>
+ <programlisting>options NFSCLIENT # Network Filesystem Client
+options NFSSERVER # Network Filesystem Server
+options NFS_ROOT # NFS usable as /, requires NFSCLIENT</programlisting>
+
+ <para>Το δικτυακό σύστημα αρχείων. Αν δεν έχετε σκοπό να προσαρτήσετε
+ συστήματα αρχείων από άλλο εξυπηρετητή αρχείων &unix; μέσω TCP/IP,
+ μπορείτε να μετατρέψετε αυτές τις γραμμές σε σχόλια.</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>MSDOSFS</secondary>
+ </indexterm>
+ <programlisting>options MSDOSFS # MSDOS Filesystem</programlisting>
+
+ <para>Το σύστημα αρχείων του &ms-dos;. Αν δεν σκοπεύετε να προσαρτήσετε
+ δίσκο DOS κατά την εκκίνηση, μπορείτε με ασφάλεια να μετατρέψετε την
+ επιλογή αυτή σε σχόλιο. Η υποστήριξη θα φορτωθεί αυτόματα την πρώτη
+ φορά που θα προσαρτήσετε κατάτμηση DOS όπως περιγράψαμε παραπάνω.
+ Επίσης, το εξαιρετικό πρόγραμμα
+ <filename role="package">emulators/mtools</filename> σας επιτρέπει να
+ έχετε πρόσβαση σε δισκέτες DOS χωρίς να χρειάζεται να τις προσαρτήσετε
+ και να αποπροσαρτήσετε (και επίσης δεν απαιτεί τη χρήση του
+ <literal>MSDOSFS</literal>).</para>
+
+ <programlisting>options CD9660 # ISO 9660 Filesystem</programlisting>
+
+ <para>Το σύστημα αρχείων ISO 9660 για CDROM. Μετατρέψτε το σε σχόλιο αν
+ δεν έχετε οδηγό CDROM ή αν σπάνια προσαρτάτε CD δεδομένων (καθώς θα
+ φορτωθεί δυναμικά την πρώτη φορά που θα προσαρτήσετε τέτοιο CD ). Τα
+ μουσικά CD δεν χρειάζονται αυτό το σύστημα αρχείων.</para>
+
+ <programlisting>options PROCFS # Process filesystem (requires PSEUDOFS)</programlisting>
+
+ <para>Αυτό το σύστημα αρχείων περιέχει τις διεργασίες του συστήματος.
+ Πρόκειται για ένα <quote>εικονικό</quote> σύστημα αρχείων το οποίο
+ προσαρτάται στον κατάλογο <filename>/proc</filename> και επιτρέπει σε
+ προγράμματα όπως το &man.ps.1; να δίνουν περισσότερες πληροφορίες για
+ τις διεργασίες που εκτελούνται. Η χρήση του <literal>PROCFS</literal>
+ δεν απαιτείται στις περισσότερες περιπτώσεις, καθώς τα περισσότερα
+ εργαλεία παρακολούθησης και εκσφαλμάτωσης έχουν προσαρμοστεί να
+ εκτελούνται χωρίς το <literal>PROCFS</literal>. Στις νέες εγκαταστάσεις,
+ αυτό το σύστημα αρχείων δεν προσαρτάται από προεπιλογή.</para>
+
+ <programlisting>options PSEUDOFS # Pseudo-filesystem framework</programlisting>
+
+ <para>Πυρήνες που χρησιμοποιούν το
+ <literal>PROCFS</literal> πρέπει επίσης να παρέχουν υποστήριξη για το
+ <literal>PSEUDOFS</literal>.</para>
+
+ <programlisting>options GEOM_PART_GPT # GUID Partition Tables.</programlisting>
+
+ <para>Με την επιλογή αυτή δίνεται η δυνατότητα ύπαρξης μεγάλου αριθμού
+ κατατμήσεων σε ένα μόνο δίσκο.</para>
+
+ <programlisting>options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]</programlisting>
+
+ <para>Συμβατότητα με το 4.3BSD. Αφήστε την επιλογή αυτή ενεργή: κάποια
+ προγράμματα θα συμπεριφέρονται παράξενα αν την απενεργοποιήσετε.</para>
+
+ <programlisting>options COMPAT_FREEBSD4 # Compatible with &os;4</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται
+ για την υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί σε
+ παλιότερες εκδόσεις του &os; και οι οποίες χρησιμοποιούν παλιές
+ διεπαφές και κλήσεις συστήματος. Συνίσταται να υπάρχει αυτή η επιλογή
+ σε όλα τα συστήματα &i386; τα οποία εκτελούν παλιότερες
+ εφαρμογές. Αρχιτεκτονικές όπως η ia64 και η &sparc64; που άρχισαν να
+ υποστηρίζονται από την έκδοση 5.Χ και μετά δεν χρειάζονται αυτή την
+ επιλογή.</para>
+
+ <programlisting>options COMPAT_FREEBSD5 # Compatible with &os;5</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται στο για την
+ υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο &os;&nbsp;5.X και
+ χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.</para>
+
+ <programlisting>options COMPAT_FREEBSD6 # Compatible with &os;6</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται στο για την
+ υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο &os;&nbsp;6.X και
+ χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.</para>
+
+ <programlisting>options COMPAT_FREEBSD7 # Compatible with &os;75</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται στο για την
+ υποστήριξη εφαρμογών που έχουν μεταγλωττιστεί στο &os;&nbsp;7.X και
+ χρησιμοποιούν τις αντίστοιχες κλήσεις αυτού του συστήματος.</para>
+
+ <programlisting>options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI</programlisting>
+
+ <para>Με την επιλογή αυτή ο πυρήνας περιμένει 5 δευτερόλεπτα πριν
+ ανιχνεύσει κάθε συσκευή SCSI στο σύστημα σας. Αν έχετε μόνο IDE δίσκους
+ μπορείτε να την αγνοήσετε, διαφορετικά μπορείτε να δοκιμάσετε να
+ μειώσετε τον αριθμό αυτό, για να επιταχύνετε την εκκίνηση. Φυσικά, αν το
+ κάνετε αυτό και ανακαλύψετε ότι το &os; έχει πρόβλημα στην αναγνώριση
+ των συσκευών σας, θα πρέπει να την ανεβάσετε ξανά.</para>
+
+ <programlisting>options KTRACE # ktrace(1) support</programlisting>
+
+ <para>Η επιλογή αυτή ενεργοποιεί το tracing των διεργασιών του πυρήνα, το
+ οποίο είναι χρήσιμο στην εκσφαλμάτωση.</para>
+
+ <programlisting>options SYSVSHM # SYSV-style shared memory</programlisting>
+
+ <para>Η επιλογή αυτή ενεργοποιεί την κοινόχρηστη μνήμη σύμφωνα με το
+ πρότυπο του System&nbsp;V. Η πλέον κοινή χρήση της, είναι η
+ επέκταση XSHM στα Χ η οποία χρησιμοποιείται αυτόματα από πολλές βαριές
+ εφαρμογές γραφικών για καλύτερη ταχύτητα. Αν χρησιμοποιείτε Χ,
+ σίγουρα θέλετε να περιλάβετε αυτή την επιλογή.</para>
+
+ <programlisting>options SYSVMSG # SYSV-style message queues</programlisting>
+
+ <para>Υποστήριξη για μηνύματα του System&nbsp;V. Η επιλογή αυτή προσθέτει
+ μόνο μερικές εκατοντάδες bytes στον πυρήνα.</para>
+
+ <programlisting>options SYSVSEM # SYSV-style semaphores</programlisting>
+
+ <para>Υποστήριξη σηματοφορέων του System&nbsp;V. Χρησιμοποιείται λιγότερο
+ συχνά, αλλά προσθέτει μόνο μερικές εκατοντάδες bytes στον πυρήνα.
+ </para>
+
+ <note>
+ <para>Η επιλογή <option>-p</option> της εντολής &man.ipcs.1; θα σας
+ δείξει ποιες διεργασίες χρησιμοποιούν κάθε μια από αυτές τις
+ λειτουργίες του System&nbsp;V.</para>
+ </note>
+
+ <programlisting>options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions</programlisting>
+
+ <para>Επεκτάσεις πραγματικού χρόνου (Real-time) που προστέθηκαν στο
+ &posix; το 1993. Χρησιμοποιείται από κάποιες εφαρμογές στη συλλογή των
+ ports (όπως το <application>&staroffice;</application>).</para>
+
+ <programlisting>options KBD_INSTALL_CDEV # install a CDEV entry in /dev</programlisting>
+
+ <para>Η επιλογή αυτή είναι απαραίτητη για τη δημιουργία του αρχείου
+ συσκευής πληκτρολογίου στον κατάλογο <filename>/dev</filename>.</para>
+
+ <programlisting>options ADAPTIVE_GIANT # Giant mutex is adaptive.</programlisting>
+
+ <para>Το Giant είναι το όνομα ενός συστήματος αμοιβαίου αποκλεισμού
+ (sleep mutex) το οποίο προστατεύει ένα μεγάλο αριθμό πόρων του πυρήνα.
+ Στις μέρες μας, αυτό θεωρείται ανεπίτρεπτο από πλευράς απόδοσης και
+ αντικαθίσταται με κλειδώματα τα οποία προστατεύουν συγκεκριμένους
+ πόρους. Η επιλογή <literal>ADAPTIVE_GIANT</literal> επιτρέπει στο Giant
+ να συμπεριληφθεί στο σετ των mutexes που μπορούν να εκτελεστούν
+ επιλεκτικά. Έτσι, αν ένα νήμα θέλει να κλειδώσει το Giant mutex, αλλά
+ αυτό είναι ήδη κλειδωμένο από ένα νήμα σε μια άλλη CPU, το πρώτο νήμα
+ θα συνεχίσει να εκτελείται, και θα περιμένει για την απελευθέρωση του
+ κλειδώματος. Φυσιολογικά, το νήμα θα επέστρεφε στην κατάσταση ύπνου
+ (sleep) και θα περίμενε για την επόμενη ευκαιρία εκτέλεσης του. Αν δεν
+ είστε σίγουρος, αφήστε αυτή την επιλογή ενεργή.</para>
+
+ <note>
+ <para>Σημειώστε ότι από το &os; 8.0-RELEASE και τις επόμενες εκδόσεις,
+ όλα τα mutexes έχουν από προεπιλογή τη δυνατότητα προσαρμογής, εκτός
+ αν έχει επίτηδες γίνει διαφορετική ρύθμιση, χρησιμοποιώντας την
+ επιλογή <literal>NO_ADAPTIVE_MUTEXES</literal> κατά τη μεταγλώττιση.
+ Το Giant έχει επίσης δυνατότητα προσαρμογής πλέον, και έτσι η
+ επιλογή <literal>ADAPTIVE_GIANT</literal> έχει αφαιρεθεί από το
+ αρχείο ρυθμίσεων πυρήνα.</para>
+ </note>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>SMP</secondary>
+ </indexterm>
+ <programlisting>device apic # I/O APIC</programlisting>
+
+ <para>Η συσκευή apic επιτρέπει τη χρήση του I/O APIC για την παράδοση των
+ interrupts (διακοπών). Η συσκευή apic μπορεί να χρησιμοποιηθεί τόσο σε
+ πυρήνες για ένα επεξεργαστή (UP) όσο και για πολλαπλούς (SMP), αλλά στη
+ δεύτερη περίπτωση είναι απαραίτητη. Προσθέστε την επιλογή
+ <literal>options SMP</literal> για να έχετε υποστήριξη πολλαπλών
+ επεξεργαστών.</para>
+
+ <note>
+ <para>Η συσκευή apic υπάρχει μόνο στην αρχιτεκτονική i386, η γραμμή αυτή
+ δεν θα πρέπει να χρησιμοποιηθεί σε άλλες αρχιτεκτονικές.</para>
+ </note>
+
+ <programlisting>device eisa</programlisting>
+
+ <para>Θα πρέπει να συμπεριλάβετε την επιλογή αυτή αν έχετε μητρική με
+ δίαυλο τύπου EISA. Ενεργοποιείται έτσι η αυτόματη ανίχνευση και ρύθμιση
+ όλων των συσκευών στο δίαυλο EISA.</para>
+
+ <programlisting>device pci</programlisting>
+
+ <para>Θα πρέπει να συμπεριλάβετε αυτή την επιλογή αν έχετε μητρική με
+ δίαυλο PCI. Ενεργοποιείται έτσι η αυτόματη ανίχνευση των καρτών PCI και
+ η επικοινωνία μεταξύ των διαύλων PCI και ISA.</para>
+
+ <programlisting># Floppy drives
+device fdc</programlisting>
+
+ <para>Πρόκειται για τον ελεγκτή μονάδας δισκέτας.</para>
+
+ <programlisting># ATA and ATAPI devices
+device ata</programlisting>
+
+ <para>Αυτός ο οδηγός υποστηρίζει όλες τις συσκευές τύπου ATA και ATAPI.
+ Χρειάζεστε μόνο μια καταχώρηση <literal>device ata</literal> για να
+ ανιχνεύσει ο πυρήνας όλες τις συσκευές ATA/ATAPI τύπου PCI στα σύγχρονα
+ μηχανήματα.</para>
+
+ <programlisting>device atadisk # ATA disk drives</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται μαζί με το <literal>device ata</literal>
+ για την υποστήριξη δίσκων ATA.</para>
+
+ <programlisting>device ataraid # ATA RAID drives</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται μαζί με το<literal>device ata</literal>
+ για την υποστήριξη δίσκων ATA RAID.</para>
+
+ <programlisting><anchor id="kernelconfig-atapi">
+device atapicd # ATAPI CDROM drives</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται μαζί με το <literal>device ata</literal>
+ για την υποστήριξη οδηγών ATAPI CDROM.</para>
+
+ <programlisting>device atapifd # ATAPI floppy drives</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται μαζί με το <literal>device ata</literal>
+ για την υποστήριξη οδηγών δισκέτας ATAPI.</para>
+
+ <programlisting>device atapist # ATAPI tape drives</programlisting>
+
+ <para>Η επιλογή αυτή απαιτείται μαζί με το <literal>device ata</literal>
+ για την υποστήριξη μονάδων ταινίας ATAPI.</para>
+
+ <programlisting>options ATA_STATIC_ID # Static device numbering</programlisting>
+
+ <para>Με την επιλογή αυτή, ο αριθμός του ελεγκτή γίνεται στατικός. Χωρίς
+ αυτή, οι αριθμοί συσκευών αποδίδονται δυναμικά.</para>
+
+ <programlisting># SCSI Controllers
+device ahb # EISA AHA1742 family
+device ahc # AHA2940 and onboard AIC7xxx devices
+options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
+ # output. Adds ~128k to driver.
+device ahd # AHA39320/29320 and onboard AIC79xx devices
+options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
+ # output. Adds ~215k to driver.
+device amd # AMD 53C974 (Teckram DC-390(T))
+device isp # Qlogic family
+#device ispfw # Firmware for QLogic HBAs- normally a module
+device mpt # LSI-Logic MPT-Fusion
+#device ncr # NCR/Symbios Logic
+device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
+device trm # Tekram DC395U/UW/F DC315U adapters
+
+device adv # Advansys SCSI adapters
+device adw # Advansys wide SCSI adapters
+device aha # Adaptec 154x SCSI adapters
+device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
+device bt # Buslogic/Mylex MultiMaster SCSI adapters
+
+device ncv # NCR 53C500
+device nsp # Workbit Ninja SCSI-3
+device stg # TMC 18C30/18C50</programlisting>
+
+ <para>Ελεγκτές SCSI. Μπορείτε να μετατρέψετε σε σχόλιο οποιονδήποτε δεν
+ έχετε στο σύστημα σας. Αν το σύστημα σας έχει μόνο συσκευές IDE,
+ μπορείτε να αφαιρέσετε όλες τις γραμμές. Οι γραμμές τύπου
+ <literal>*_REG_PRETTY_PRINT</literal> χρησιμοποιούνται για να δίνουν
+ περισσότερες διαγνωστικές πληροφορίες για τους αντίστοιχους οδηγούς.
+ </para>
+
+ <programlisting># SCSI peripherals
+device scbus # SCSI bus (required for SCSI)
+device ch # SCSI media changers
+device da # Direct Access (disks)
+device sa # Sequential Access (tape etc)
+device cd # CD
+device pass # Passthrough device (direct SCSI access)
+device ses # SCSI Environmental Services (and SAF-TE)</programlisting>
+
+ <para>Περιφερειακά SCSI. Μπορείτε και πάλι να μετατρέψετε σε σχόλιο όσες
+ συσκευές δεν έχετε, ή αν έχετε μόνο συσκευές IDE, μπορείτε να
+ αφαιρέσετε εντελώς αυτές τις γραμμές.</para>
+
+ <note>
+ <para>Ο οδηγός USB &man.umass.4; και κάποιοι άλλοι οδηγοί χρησιμοποιούν
+ το υποσύστημα SCSI αν και δεν είναι πραγματικές SCSI συσκευές. Για το
+ λόγο αυτό, σιγουρευτείτε ότι δεν αφαιρέσατε την υποστήριξη SCSI αν
+ περιλαμβάνονται τέτοιοι οδηγοί στο αρχείο ρύθμισης του πυρήνα σας.
+ </para>
+ </note>
+
+ <programlisting># RAID controllers interfaced to the SCSI subsystem
+device amr # AMI MegaRAID
+device arcmsr # Areca SATA II RAID
+device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
+device ciss # Compaq Smart RAID 5*
+device dpt # DPT Smartcache III, IV - See NOTES for options
+device hptmv # Highpoint RocketRAID 182x
+device hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
+device iir # Intel Integrated RAID
+device ips # IBM (Adaptec) ServeRAID
+device mly # Mylex AcceleRAID/eXtremeRAID
+device twa # 3ware 9000 series PATA/SATA RAID
+
+# RAID controllers
+device aac # Adaptec FSA RAID
+device aacp # SCSI passthrough for aac (requires CAM)
+device ida # Compaq Smart RAID
+device mfi # LSI MegaRAID SAS
+device mlx # Mylex DAC960 family
+device pst # Promise Supertrak SX6000
+device twe # 3ware ATA RAID</programlisting>
+
+ <para>Υποστηριζόμενοι ελεγκτές RAID. Αν δεν έχετε κανένα από αυτούς,
+ μπορείτε να τους μετατρέψετε σε σχόλια ή να τους αφαιρέσετε εντελώς.
+ </para>
+
+ <programlisting># atkbdc0 controls both the keyboard and the PS/2 mouse
+device atkbdc # AT keyboard controller</programlisting>
+
+ <para>Ο ελεγκτής πληκτρολογίου (<literal>atkbdc</literal>) παρέχει
+ υπηρεσίες I/O για πληκτρολόγια τύπου AT και συσκευές κατάδειξης
+ (ποντίκια) τύπου PS/2. Ο ελεγκτής απαιτείται για τη λειτουργία του
+ οδηγού πληκτρολογίου (<literal>atkbd</literal>) και του οδηγού
+ συσκευής κατάδειξης PS/2 (<literal>psm</literal>).</para>
+
+ <programlisting>device atkbd # AT keyboard</programlisting>
+
+ <para>Ο οδηγός <literal>atkbd</literal>, μαζί με τον ελεγκτή
+ <literal>atkbdc</literal>, παρέχει πρόσβαση σε πληκτρολόγιο τύπου AT 84
+ ή εκτεταμένου AT το οποίο συνδέεται στον ελεγκτή πληκτρολογίου.</para>
+
+ <programlisting>device psm # PS/2 mouse</programlisting>
+
+ <para>Χρησιμοποιήστε αυτή τη συσκευή αν το ποντίκι σας συνδέεται στην
+ θύρα PS/2.</para>
+
+ <programlisting>device kbdmux # keyboard multiplexer</programlisting>
+
+ <para>Βασική υποστήριξη πολυπλεξίας πληκτρολογίων. Αν δε σκοπεύετε να
+ χρησιμοποιήσετε περισσότερα από ένα πληκτρολόγια στο σύστημα σας,
+ μπορείτε με ασφάλεια να αφαιρέσετε αυτή τη γραμμή.</para>
+
+ <programlisting>device vga # VGA video card driver</programlisting>
+
+ <para>Το πρόγραμμα οδήγησης της κάρτας γραφικών.</para>
+
+ <programlisting>
+device splash # Splash screen and screen saver support</programlisting>
+
+ <para>Γραφική οθόνη (splash) κατά την εκκίνηση! Η συσκευή αυτή
+ χρησιμοποιείται επίσης από τα προγράμματα προφύλαξης οθόνης (κονσόλας).
+ </para>
+
+ <programlisting># syscons is the default console driver, resembling an SCO console
+device sc</programlisting>
+
+ <para>Ο οδηγός <literal>sc</literal> είναι ο προεπιλεγμένος οδηγός
+ κονσόλας και προσομοιώνει κονσόλα τύπου SCO. Καθώς τα περισσότερα
+ προγράμματα πλήρους οθόνης αποκτούν πρόσβαση στην κονσόλα μέσω κάποιας
+ βιβλιοθήκης βάσης δεδομένων τερματικών όπως το
+ <filename>termcap</filename>, δεν θα πρέπει να έχει σημασία αν
+ χρησιμοποιήσετε αυτόν τον οδηγό ή τον <literal>vt</literal> ο οποίος
+ είναι συμβατός με κονσόλα <literal>VT220</literal>. Μετά την είσοδο σας
+ στο σύστημα, θέστε την μεταβλητή <envar>TERM</envar> στην τιμή
+ <literal>scoansi</literal> αν κάποια προγράμματα πλήρους οθόνης έχουν
+ πρόβλημα όταν χρησιμοποιείται αυτή η κονσόλα.</para>
+
+ <programlisting># Enable this for the pcvt (VT220 compatible) console driver
+#device vt
+#options XSERVER # support for X server on a vt console
+#options FAT_CURSOR # start with block cursor</programlisting>
+
+ <para>Πρόκειται για ένα οδηγό κονσόλας συμβατό με VT220, και με προς τα
+ πίσω συμβατότητα με VT100/102. Λειτουργεί καλά σε κάποιους φορητούς
+ υπολογιστές που έχουν ασυμβατότητα υλικού με τον <literal>sc</literal>.
+ Μετά την είσοδο σας στο σύστημα, θέστε την μεταβλητή <envar>TERM</envar>
+ σε <literal>vt100</literal> ή <literal>vt220</literal>. Ο οδηγός μπορεί
+ επίσης να αποδειχθεί χρήσιμος όταν συνδέεστε σε μεγάλο αριθμό από
+ διαφορετικά μηχανήματα μέσω δικτύου, όπου δεν υπάρχουν καταχωρήσεις για
+ τη συσκευή <literal>sc</literal> στο <filename>termcap</filename> ή
+ <filename>terminfo</filename> &mdash; το <literal>vt100</literal>
+ θα πρέπει να είναι διαθέσιμο πρακτικά σε κάθε πλατφόρμα.</para>
+
+ <programlisting>device agp</programlisting>
+
+ <para>Συμπεριλάβετε τη συσκευή αυτή αν έχετε AGP κάρτα στο σύστημα σας.
+ Θα ενεργοποιήσετε με αυτό τον τρόπο την υποστήριξη για AGP και AGP GART
+ για μητρικές που υποστηρίζουν αυτές τις λειτουργίες.</para>
+
+ <indexterm>
+ <primary>APM</primary>
+ </indexterm>
+
+ <programlisting># Power management support (see NOTES for more options)
+#device apm</programlisting>
+
+ <para>Υποστήριξη Advanced Power Management (προχωρημένης διαχείρισης
+ ισχύος). Χρήσιμο για φορητά, αν και η επιλογή αυτή, από προεπιλογή,
+ είναι ανενεργή στον πυρήνα <filename>GENERIC</filename>.</para>
+
+ <programlisting># Add suspend/resume support for the i8254.
+device pmtimer</programlisting>
+
+ <para>Πρόγραμμα οδήγησης μετρητή χρόνου (Timer) για συμβάντα που
+ σχετίζονται με διαχείριση ενέργειας όπως το APM και το ACPI.</para>
+
+ <programlisting># PCCARD (PCMCIA) support
+# PCMCIA and cardbus bridge support
+device cbb # cardbus (yenta) bridge
+device pccard # PC Card (16-bit) bus
+device cardbus # CardBus (32-bit) bus</programlisting>
+
+ <para>Υποστήριξη PCMCIA. Την χρειάζεστε αν χρησιμοποιείτε φορητό
+ υπολογιστή.</para>
+
+ <programlisting># Serial (COM) ports
+device sio # 8250, 16[45]50 based serial ports</programlisting>
+
+ <para>Πρόκειται για τις σειριακές θύρες οι οποίες είναι γνωστές στον κόσμο
+ του &ms-dos;/&windows; ως θύρες <devicename>COM</devicename>.</para>
+
+ <note>
+ <para>Αν έχετε εσωτερικό μόντεμ στη θύρα <devicename>COM4</devicename>
+ και έχετε και σειριακή θύρα <devicename>COM2</devicename>, θα πρέπει
+ να αλλάξετε το IRQ του μόντεμ στο 2 (για περίεργους τεχνικούς λόγους,
+ IRQ2 = IRQ 9) για να μπορέσετε να το χρησιμοποιήσετε από το &os;. Αν
+ έχετε κάρτα πολλαπλών σειριακών εξόδων, ελέγξτε τη σελίδα manual του
+ &man.sio.4; για περισσότερες πληροφορίες σχετικά με τις σωστές τιμές
+ που πρέπει να προσθέσετε στο <filename>/boot/device.hints</filename>.
+ Κάποιες κάρτες γραφικών (ειδικά αυτές που βασίζονται σε ολοκληρωμένα
+ S3) χρησιμοποιούν διευθύνσεις IO μορφής <literal>0x*2e8</literal>,
+ και καθώς πολλές φτηνές σειριακές κάρτες δεν αποκωδικοποιούν πλήρως
+ τη 16 bit περιοχή διευθύνσεων, συγκρούονται με τις κάρτες αυτές,
+ καθιστώντας έτσι πρακτικά άχρηστη τη θύρα
+ <devicename>COM4</devicename>.</para>
+
+ <para>Κάθε σειριακή πόρτα χρειάζεται να έχει μια μοναδική IRQ (εκτός
+ αν χρησιμοποιείτε κάρτα πολλαπλών σειριακών που υποστηρίζει
+ κοινή χρήση interrupts), και έτσι δεν μπορούν να χρησιμοποιηθούν τα
+ προεπιλεγμένα interrupts για την <devicename>COM3</devicename> και την
+ <devicename>COM4</devicename>.</para>
+ </note>
+
+ <programlisting># Parallel port
+device ppc</programlisting>
+
+ <para>Πρόκειται για την παράλληλη θύρα στο δίαυλο ISA.</para>
+
+ <programlisting>device ppbus # Parallel port bus (required)</programlisting>
+
+ <para>Παρέχει υποστήριξη για το δίαυλο της παράλληλης θύρας.</para>
+
+ <programlisting>device lpt # Printer</programlisting>
+
+ <para>Παρέχει υποστήριξη για εκτυπωτές παράλληλης θύρας.</para>
+
+ <note>
+ <para>Χρειάζεστε και τα τρία παραπάνω για να ενεργοποιήσετε την
+ υποστήριξη εκτυπωτή παράλληλης θύρας.</para>
+ </note>
+
+ <programlisting>device plip # TCP/IP over parallel</programlisting>
+
+ <para>Πρόκειται για το πρόγραμμα οδήγησης δικτύου μέσω παράλληλης θύρας.
+ </para>
+
+ <programlisting>device ppi # Parallel port interface device</programlisting>
+
+ <para>Πρόγραμμα I/O γενικής χρήσης (<quote>geek port</quote>) + IEEE1284
+ I/O.</para>
+
+ <programlisting>#device vpo # Requires scbus and da</programlisting>
+
+ <indexterm><primary>zip drive</primary></indexterm>
+ <para>Χρησιμοποιείται για μονάδα δισκέτας Iomega Zip. Απαιτεί υποστήριξη
+ από τους οδηγούς <literal>scbus</literal> και <literal>da</literal>.
+ Η καλύτερη απόδοση επιτυγχάνεται με θύρα σε κατάσταση λειτουργίας
+ EPP 1.9.</para>
+
+ <programlisting>#device puc</programlisting>
+
+ <para>Ενεργοποιήστε αυτή τη συσκευή αν έχετε μια <quote>χαζή</quote>
+ σειριακή ή παράλληλη PCI κάρτα η οποία υποστηρίζεται από το πρόγραμμα
+ οδήγησης &man.puc.4; (glue driver).</para>
+
+ <programlisting># PCI Ethernet NICs.
+device de # DEC/Intel DC21x4x (<quote>Tulip</quote>)
+device em # Intel PRO/1000 adapter Gigabit Ethernet Card
+device ixgb # Intel PRO/10GbE Ethernet Card
+device txp # 3Com 3cR990 (<quote>Typhoon</quote>)
+device vx # 3Com 3c590, 3c595 (<quote>Vortex</quote>)</programlisting>
+
+ <para>Διάφορα προγράμματα οδήγησης για PCI κάρτες δικτύου. Μετατρέψτε σε
+ σχόλιο ή αφαιρέστε τελείως όσες δεν υπάρχουν στο σύστημα σας.</para>
+
+ <programlisting># PCI Ethernet NICs that use the common MII bus controller code.
+# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
+device miibus # MII bus support</programlisting>
+
+ <para>Η υποστήριξη διαύλου MII απαιτείται για κάποιες κάρτες δικτύου
+ Ethernet PCI 10/100, ειδικά για αυτές που χρησιμοποιούν πομποδέκτη
+ συμβατό με MII ή έχουν διεπαφή ελέγχου που λειτουργεί παρόμοια με τον
+ MII. Προσθέτοντας <literal>device miibus</literal> στο αρχείο ρύθμισης
+ του πυρήνα, θα έχετε υποστήριξη για το γενικό API του miibus και για
+ όλους τους οδηγούς PHY, συμπεριλαμβανομένου και ενός γενικού για PHYs
+ που δεν υποστηρίζονται από κάποιο συγκεκριμένο οδηγό.</para>
+
+ <programlisting>device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet
+device bfe # Broadcom BCM440x 10/100 Ethernet
+device bge # Broadcom BCM570xx Gigabit Ethernet
+device dc # DEC/Intel 21143 and various workalikes
+device fxp # Intel EtherExpress PRO/100B (82557, 82558)
+device lge # Level 1 LXT1001 gigabit ethernet
+device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
+device nge # NatSemi DP83820 gigabit ethernet
+device nve # nVidia nForce MCP on-board Ethernet Networking
+device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
+device re # RealTek 8139C+/8169/8169S/8110S
+device rl # RealTek 8129/8139
+device sf # Adaptec AIC-6915 (<quote>Starfire</quote>)
+device sis # Silicon Integrated Systems SiS 900/SiS 7016
+device sk # SysKonnect SK-984x &amp; SK-982x gigabit Ethernet
+device ste # Sundance ST201 (D-Link DFE-550TX)
+device stge # Sundance/Tamarack TC9021 gigabit Ethernet
+device ti # Alteon Networks Tigon I/II gigabit Ethernet
+device tl # Texas Instruments ThunderLAN
+device tx # SMC EtherPower II (83c170 <quote>EPIC</quote>)
+device vge # VIA VT612x gigabit ethernet
+device vr # VIA Rhine, Rhine II
+device wb # Winbond W89C840F
+device xl # 3Com 3c90x (<quote>Boomerang</quote>, <quote>Cyclone</quote>)</programlisting>
+
+ <para>Προγράμματα οδήγησης που χρησιμοποιούν τον κώδικα του διαύλου
+ ελέγχου MII.</para>
+
+ <programlisting># ISA Ethernet NICs. pccard NICs included.
+device cs # Crystal Semiconductor CS89x0 NIC
+# 'device ed' requires 'device miibus'
+device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
+device ex # Intel EtherExpress Pro/10 and Pro/10+
+device ep # Etherlink III based cards
+device fe # Fujitsu MB8696x based cards
+device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
+device lnc # NE2100, NE32-VL Lance Ethernet cards
+device sn # SMC's 9000 series of Ethernet chips
+device xe # Xircom pccard Ethernet
+
+# ISA devices that use the old ISA shims
+#device le</programlisting>
+
+ <para>Προγράμματα οδήγησης καρτών Ethernet τύπου ISA. Δείτε το αρχείο
+ <filename>/usr/src/sys/<replaceable>i386</replaceable>/conf/NOTES</filename>
+ για λεπτομέρειες σχετικά με το ποιες κάρτες υποστηρίζονται από ποιον
+ οδηγό.</para>
+
+ <programlisting># Wireless NIC cards
+device wlan # 802.11 support</programlisting>
+
+ <para>Γενική υποστήριξη του 802.11. Η γραμμή αυτή απαιτείται για ασύρματη
+ δικτύωση.</para>
+
+ <programlisting>device wlan_wep # 802.11 WEP support
+device wlan_ccmp # 802.11 CCMP support
+device wlan_tkip # 802.11 TKIP support</programlisting>
+
+ <para>Υποστήριξη κρυπτογράφησης για συσκευές 802.11. Οι γραμμές αυτές
+ χρειάζονται αν σκοπεύετε να χρησιμοποιήσετε κρυπτογράφηση και πρωτόκολλα
+ ασφαλείας 802.11i.</para>
+
+ <programlisting>device an # Aironet 4500/4800 802.11 wireless NICs.
+device ath # Atheros pci/cardbus NIC's
+device ath_hal # Atheros HAL (Hardware Access Layer)
+device ath_rate_sample # SampleRate tx rate control for ath
+device awi # BayStack 660 and others
+device ral # Ralink Technology RT2500 wireless NICs.
+device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
+#device wl # Older non 802.11 Wavelan wireless NIC.</programlisting>
+
+ <para>Υποστήριξη για διάφορες ασύρματες κάρτες.</para>
+
+ <programlisting># Pseudo devices
+device loop # Network loopback</programlisting>
+
+ <para>Πρόκειται για τη γενική συσκευή εσωτερικού δικτύου (loopback) του
+ TCP/IP. Η σύνδεση μέσω telnet ή FTP στο <hostid>localhost</hostid>
+ (γνωστό επίσης και ως <hostid role="ipaddr">127.0.0.1</hostid>)
+ πραγματοποιείται μέσω αυτής της συσκευής. Η ύπαρξη αυτής της συσκευής
+ είναι <emphasis>υποχρεωτική</emphasis>.</para>
+
+ <programlisting>device random # Entropy device</programlisting>
+
+ <para>Κρυπτογραφικά ασφαλής γεννήτρια τυχαίων αριθμών.</para>
+
+ <programlisting>device ether # Ethernet support</programlisting>
+
+ <para>Η γραμμή <literal>ether</literal> απαιτείται μόνο αν έχετε κάρτα
+ δικτύου Ethernet. Περιέχει γενικό κώδικα για το πρωτόκολλο Ethernet.
+ </para>
+
+ <programlisting>device sl # Kernel SLIP</programlisting>
+
+ <para>Η γραμμή <literal>sl</literal> παρέχει υποστήριξη SLIP. Η υποστήριξη
+ αυτή έχει σχεδόν ολοκληρωτικά ξεπεραστεί από το PPP, το οποίο είναι
+ ευκολότερο στη ρύθμιση, υποστηρίζει καλύτερα τις συνδέσεις μέσω μόντεμ,
+ και παρέχει καλύτερες δυνατότητες.</para>
+
+ <programlisting>device ppp # Kernel PPP</programlisting>
+
+ <para>Η γραμμή αυτή είναι για υποστήριξη PPP μέσω του πυρήνα για
+ επιλογικές (dial-up) συνδέσεις. Υπάρχει επίσης μια έκδοση PPP η οποία
+ υλοποιείται ως εφαρμογή χρήστη (userland), χρησιμοποιεί το
+ <literal>tun</literal> και προσφέρει περισσότερη ευελιξία και
+ λειτουργίες όπως κλήση κατά απαίτηση (demand dialing).</para>
+
+ <programlisting>device tun # Packet tunnel.</programlisting>
+
+ <para>Η συσκευή αυτή χρησιμοποιείται από το πρόγραμμα PPP χρήστη
+ (userland). Δείτε το τμήμα <link linkend="userppp">PPP</link>
+ αυτού του βιβλίου για περισσότερες πληροφορίες.</para>
+
+ <programlisting><anchor id="kernelconfig-ptys">
+device pty # Pseudo-ttys (telnet etc)</programlisting>
+
+ <para>Πρόκειται για συσκευή <quote>ψευδό-τερματικού</quote> ή προσομοίωσης
+ θύρας login. Χρησιμοποιείται για εισερχόμενες συνδέσεις
+ <command>telnet</command> και <command>rlogin</command>, από το
+ <application>xterm</application>, και από κάποιες άλλες εφαρμογές όπως
+ το <application>Emacs</application>.</para>
+
+ <programlisting>device md # Memory <quote>disks</quote></programlisting>
+
+ <para>Ψευτό-συσκευές δίσκου με χρήση μνήμης (ramdrives).</para>
+
+ <programlisting>device gif # IPv6 and IPv4 tunneling</programlisting>
+
+ <para>Η συσκευή αυτή υλοποιεί IPv6 σε IPv4 tunneling, IPv4 σε IPv6
+ tunneling, IPv4 σε IPv4 tunneling, και IPv6 σε IPv6 tunneling. Η συσκευή
+ <literal>gif</literal> <quote>αυτό-κλωνοποιείται</quote>, και δημιουργεί
+ τα αντίστοιχα αρχεία συσκευών όπως απαιτούνται.</para>
+
+ <programlisting>device faith # IPv6-to-IPv4 relaying (translation)</programlisting>
+
+ <para>Αυτή η ψεύδο-συσκευή συλλαμβάνει πακέτα που στέλνονται προς αυτήν
+ και τα ανακατευθύνει προς το δαίμονα μετάφρασης του IPv4/IPv6.</para>
+
+ <programlisting># The `bpf' device enables the Berkeley Packet Filter.
+# Be aware of the administrative consequences of enabling this!
+# Note that 'bpf' is required for DHCP.
+device bpf # Berkeley packet filter</programlisting>
+
+ <para>Πρόκειται για το φίλτρο πακέτων Berkeley. Αυτή η ψεύδο-συσκευή
+ επιτρέπει σε κάρτες δικτύου να λειτουργούν σε κατάσταση promiscuous
+ (πλήρους ακρόασης), συλλαμβάνοντας με αυτό τον τρόπο κάθε πακέτο ενός
+ δικτύου (π.χ. Ethernet). Τα πακέτα αυτά μπορεί να αποθηκεύονται στο
+ δίσκο ή να εξετάζονται με τη βοήθεια του προγράμματος &man.tcpdump.1;.
+ </para>
+
+ <note>
+ <para>Η συσκευή &man.bpf.4; χρησιμοποιείται επίσης από το
+ &man.dhclient.8; για την ανάκτηση της διεύθυνσης IP της προεπιλεγμένης
+ πύλης κ.ο.κ. Αν χρησιμοποιείτε DHCP, αφήστε αυτή την επιλογή
+ ενεργοποιημένη.</para>
+ </note>
+
+ <programlisting># USB support
+device uhci # UHCI PCI-&gt;USB interface
+device ohci # OHCI PCI-&gt;USB interface
+device ehci # EHCI PCI-&gt;USB interface (USB 2.0)
+device usb # USB Bus (required)
+#device udbp # USB Double Bulk Pipe devices
+device ugen # Generic
+device uhid # <quote>Human Interface Devices</quote>
+device ukbd # Keyboard
+device ulpt # Printer
+device umass # Disks/Mass storage - Requires scbus and da
+device ums # Mouse
+device ural # Ralink Technology RT2500USB wireless NICs
+device urio # Diamond Rio 500 MP3 player
+device uscanner # Scanners
+# USB Ethernet, requires mii
+device aue # ADMtek USB Ethernet
+device axe # ASIX Electronics USB Ethernet
+device cdce # Generic USB over Ethernet
+device cue # CATC USB Ethernet
+device kue # Kawasaki LSI USB Ethernet
+device rue # RealTek RTL8150 USB Ethernet</programlisting>
+
+ <para>Υποστήριξη για διάφορες συσκευές USB.</para>
+
+ <programlisting># FireWire support
+device firewire # FireWire bus code
+device sbp # SCSI over FireWire (Requires scbus and da)
+device fwe # Ethernet over FireWire (non-standard!)</programlisting>
+
+ <para>Υποστήριξη για διάφορες συσκευές Firewire.</para>
+
+ <para>Για περισσότερες πληροφορίες και επιπλέον συσκευές που
+ υποστηρίζονται από το &os;, δείτε το αρχείο
+ <filename>/usr/src/sys/<replaceable>i386</replaceable>/conf/NOTES
+ </filename>.</para>
+
+ <sect2>
+ <title>Λειτουργία με Μεγάλη Ποσότητα Μνήμης (<acronym>PAE</acronym>)
+ </title>
+ <indexterm>
+ <primary>Physical Address Extensions
+ (<acronym>PAE</acronym>)</primary>
+ <secondary>large memory</secondary>
+ </indexterm>
+
+ <para>Μηχανήματα με μεγάλη ποσότητα μνήμης, χρειάζονται πρόσβαση σε
+ μνήμη που υπερβαίνει το όριο των 4 gigabytes των Εικονικών
+ Διευθύνσεων Χρήστη+Πυρήνα (User+Kernel Virtual Address,
+ <acronym>KVA</acronym>). Εξαιτίας αυτού του περιορισμού, η Intel
+ πρόσθεσε υποστήριξη για 36bit φυσικών διευθύνσεων, από τον
+ επεξεργαστή &pentium; Pro και μετά.</para>
+
+ <para>Η δυνατότητα Επέκτασης Φυσικών Διευθύνσεων, (Physical Address
+ Extension, <acronym>PAE</acronym>) των &intel; &pentium; Pro και
+ μεταγενέστερων CPU, επιτρέπει χρήση μνήμης ως 64 gigabytes. To &os;
+ παρέχει υποστήριξη για τη δυνατότητα αυτή μέσω της ρύθμισης πυρήνα
+ <option>PAE</option>, η οποία διατίθεται για όλες τις τρέχουσες
+ σταθερές εκδόσεις του &os;. Λόγω περιορισμών στην αρχιτεκτονική του
+ συστήματος μνήμης της Intel, δεν γίνεται διάκριση για τη μνήμη που
+ βρίσκεται πάνω ή κάτω από τα 4 gigabytes. Η μνήμη που εκχωρείται
+ πάνω από τα 4 gigabytes, απλώς προστίθεται στο μέγεθος της
+ διαθέσιμης μνήμης.</para>
+
+ <para>Για να ενεργοποιήσετε την υποστήριξη <acronym>PAE</acronym>
+ στον πυρήνα, απλώς προσθέστε την ακόλουθη γραμμή στο αρχείο
+ των ρυθμίσεων σας:</para>
+
+ <programlisting>options PAE</programlisting>
+
+ <note>
+ <para>Η υποστήριξη <acronym>PAE</acronym> στο &os; είναι διαθέσιμη
+ μόνο για επεξεργαστές αρχιτεκτονικής &intel; IA-32. Θα πρέπει
+ επίσης να σημειώσουμε ότι η υποστήριξη <acronym>PAE</acronym> στο
+ &os; δεν έχει δοκιμαστεί εκτεταμένα, και θα πρέπει να θεωρείται
+ ποιότητας beta σε σχέση με τα άλλα σταθερά χαρακτηριστικά του
+ &os;.</para>
+ </note>
+
+ <para>Η υποστήριξη <acronym>PAE</acronym> στο &os; υπόκειται σε
+ κάποιους περιορισμούς:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Μια διαδικασία δεν έχει πρόσβαση σε περισσότερα από 4
+ gigabytes χώρου VM.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οδηγοί συσκευών που δεν χρησιμοποιούν τη διεπαφή
+ &man.bus.dma.9; ίσως προκαλέσουν καταστροφή δεδομένων σε ένα
+ <acronym>PAE</acronym> πυρήνα και για το λόγο αυτό δεν
+ συνίσταται η χρήση τους. Στο &os; παρέχεται ένα αρχείο
+ ρυθμίσεων <filename>PAE</filename> στο οποίο έχουν εξαιρεθεί
+ όλα τα προγράμματα οδήγησης που είναι γνωστό ότι δεν δουλεύουν
+ σε πυρήνα τύπου <acronym>PAE</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κάποιες μεταβλητές συστήματος (system tunables) εξακριβώνουν
+ τη χρήση της μνήμης, βλέποντας το ποσό της διαθέσιμης φυσικής
+ μνήμης. Αυτές οι μεταβλητές μπορεί να χρησιμοποιήσουν
+ αδικαιολόγητα μεγάλη ποσότητα μνήμης, λόγω της φύσης του
+ συστήματος <acronym>PAE</acronym>. Ένα τέτοιο παράδειγμα είναι η
+ ρύθμιση sysctl <option>kern.maxvnodes</option> η οποία ελέγχει
+ το μέγιστο αριθμό vnodes που επιτρέπονται στον πυρήνα. Είναι
+ σκόπιμο να ρυθμίσετε αυτή και άλλες παρόμοιες παραμέτρους σε
+ λογικές τιμές.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ίσως χρειαστεί να ρυθμίσετε τις εικονικές διευθύνσεις του
+ πυρήνα (<acronym>KVA</acronym>) ή να μειώσετε την ποσότητα
+ κάποιου συγκεκριμένου πόρου που έχει μεγάλη χρήση (δείτε
+ παραπάνω) για να αποφύγετε την εξάντληση του
+ <acronym>KVA</acronym>. Μπορείτε να αυξήσετε το μέγεθος του
+ <acronym>KVA</acronym> μέσω της επιλογής
+ <option>KVA_PAGES</option>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για λόγους σταθερότητας και απόδοσης, σας συμβουλεύουμε να
+ διαβάσετε τη σελίδα manual &man.tuning.7;. Επίσης η σελίδα
+ &man.pae.4; περιέχει ενημερωμένες πληροφορίες σχετικά με την
+ υποστήριξη <acronym>PAE</acronym> στο &os;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="kernelconfig-trouble">
+ <title>Αν Κάτι Πάει Λάθος</title>
+
+ <para>Υπάρχουν τέσσερις κατηγορίες προβλημάτων που μπορούν να
+ παρουσιαστούν όταν δημιουργείτε ένα προσαρμοσμένο πυρήνα:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Αποτυχία της εντολής <command>config</command>:</term>
+
+ <listitem>
+ <para>Αν η εντολή &man.config.8; αποτυγχάνει όταν της δίνετε την
+ περιγραφή του πυρήνα σας, έχετε κατά πάσα πιθανότητα, κάνει
+ κάποιο απλό λάθος. Ευτυχώς, η &man.config.8; θα σας δείξει τον
+ αριθμό γραμμής στον οποίο συνάντησε το πρόβλημα, και έτσι θα
+ μπορέσετε εύκολα να το εντοπίσετε. Για παράδειγμα, αν δείτε:
+ </para>
+
+ <screen>config: line 17: syntax error</screen>
+
+ <para>Βεβαιωθείτε ότι η λέξη-κλειδί στη γραμμή αυτή είναι σωστή,
+ συγκρίνοντας τη με την αντίστοιχη στο αρχείο
+ <filename>GENERIC</filename> ή σε άλλο αρχείο αναφοράς.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Αποτυχία της εντολής <command>make</command>:</term>
+
+ <listitem>
+ <para>Αν αποτυγχάνει η εντολή <command>make</command>, συνήθως αυτό
+ σημαίνει κάποιο λάθος στο αρχείο ρυθμίσεων το οποίο δεν είναι
+ αρκετά σοβαρό για να το καταλάβει η &man.config.8;. Κοιτάξτε ξανά
+ το αρχείο ρυθμίσεων σας και αν ακόμα δεν μπορείτε να εντοπίσετε το
+ πρόβλημα, στείλτε το μαζί με το αρχείο με mail στην
+ &a.questions; και θα εντοπιστεί πολύ γρήγορα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ο πυρήνας δεν εκκινεί:<anchor
+ id="kernelconfig-noboot"></term>
+
+ <listitem>
+ <para>Αν ο νέος σας πυρήνας δεν εκκινεί ή αποτυγχάνει να αναγνωρίσει
+ τις συσκευές σας, μην πανικοβάλλεστε! Ευτυχώς, το &os; έχει ένα
+ εξαιρετικό μηχανισμό για να επανέλθετε από μη-συμβατούς πυρήνες.
+ Απλώς επιλέξτε τον πυρήνα από τον οποίο θέλετε να ξεκινήσετε μέσω
+ του συστήματος εκκίνησης (boot loader) του &os;. Έχετε πρόσβαση
+ σε αυτό, την ώρα που εμφανίζεται το μενού επιλογών εκκίνησης.
+ Επιλέξτε <quote>Escape to a loader prompt</quote>, αριθμός έξι.
+ Στην προτροπή που εμφανίζεται, γράψτε την εντολή
+ <command>boot <replaceable>kernel.old</replaceable></command>
+ ή το όνομα αρχείου ενός άλλου πυρήνα που ξεκινάει
+ κανονικά. Όταν φτιάχνετε ένα νέο πυρήνα, είναι πάντα καλή ιδέα
+ να έχετε πρόχειρο ένα πυρήνα που ξέρετε ότι δουλεύει.</para>
+
+ <para>Αφού εκκινήσετε με ένα καλό πυρήνα, μπορείτε να ελέγξετε το
+ αρχείο ρυθμίσεων σας από την αρχή, και να προσπαθήσετε ξανά.
+ Μια χρήσιμη πηγή πληροφοριών είναι το αρχείο
+ <filename>/var/log/messages</filename> το οποίο μεταξύ άλλων
+ καταγράφει όλα τα μηνύματα του πυρήνα από κάθε επιτυχημένη
+ εκκίνηση. Επίσης η εντολή &man.dmesg.8; θα σας δείξει όλα τα
+ μηνύματα του πυρήνα της τρέχουσας εκκίνησης.</para>
+
+ <note>
+ <para>Αν έχετε πρόβλημα στη δημιουργία πυρήνα, βεβαιωθείτε ότι
+ έχετε κρατήσει ένα πυρήνα <filename>GENERIC</filename>, ή
+ κάποιο άλλο που γνωρίζετε ότι λειτουργεί, χρησιμοποιώντας ένα
+ διαφορετικό όνομα ώστε να μη διαγραφεί στην επόμενη
+ μεταγλώττιση. Δεν μπορείτε να βασιστείτε στον πυρήνα
+ <filename>kernel.old</filename>, γιατί κάθε φορά που
+ εγκαθιστάτε νέο πυρήνα, το <filename>kernel.old</filename>
+ αντικαθίσταται με τον τελευταίο εγκατεστημένο πυρήνα, ο οποίος
+ μπορεί να μην λειτουργεί. Επίσης, όσο το δυνατόν πιο σύντομα,
+ μετακινήστε τον πυρήνα που λειτουργεί στην σωστή θέση,
+ <filename class="directory">/boot/kernel</filename>, διαφορετικά
+ εντολές όπως η &man.ps.1; ίσως να μη λειτουργούν σωστά. Για να
+ το κάνετε αυτό, απλώς μετονομάστε τον κατάλογο που περιέχει τον
+ καλό πυρήνα, π.χ:</para>
+
+ <screen>&prompt.root; <userinput>mv /boot/kernel <replaceable>/boot/kernel.bad</replaceable></userinput>
+&prompt.root; <userinput>mv /boot/<replaceable>kernel.good</replaceable> /boot/kernel</userinput></screen>
+
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ο νέος πυρήνας λειτουργεί, αλλά η &man.ps.1; δεν λειτουργεί
+ πλέον:</term>
+
+ <listitem>
+ <para>Αν εγκαταστήσετε πυρήνα διαφορετικής έκδοσης από αυτόν με τον
+ οποίο έχουν φτιαχτεί τα εργαλεία συστήματος, για παράδειγμα εάν
+ βάλετε ένα πυρήνα της σειράς -CURRENT σε ένα σύστημα -RELEASE,
+ πολλές από τις εντολές που σχετίζονται με την κατάσταση του
+ συστήματος όπως ή &man.ps.1; και η &man.vmstat.8; δεν θα
+ λειτουργούν πλέον. Θα πρέπει να
+ <link linkend="makeworld">μεταγλωττίσετε και να εγκαταστήσετε όλο
+ το βασικό σύστημα (world)</link> χρησιμοποιώντας ίδια έκδοση του
+ πηγαίου κώδικα με αυτή του πυρήνα σας. Αυτός είναι και ένας λόγος
+ για τον οποίο δεν είναι συνήθως καλή ιδέα να χρησιμοποιείτε
+ διαφορετική έκδοση πυρήνα από το υπόλοιπο του λειτουργικού
+ συστήματος.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/l10n/chapter.sgml b/el_GR.ISO8859-7/books/handbook/l10n/chapter.sgml
new file mode 100644
index 0000000000..e6aff27977
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/l10n/chapter.sgml
@@ -0,0 +1,1038 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Τοπικές Ρυθμίσεις - Χρήση και Ρύθμιση I18N/L10N
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/l10n/chapter.sgml
+ %SRCID% 1.135
+
+-->
+
+<chapter id="l10n">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Andrey</firstname>
+ <surname>Chernov</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Michael C.</firstname>
+ <surname>Wu</surname>
+ <contrib>Γράφηκε ξανά από τον </contrib>
+ </author>
+ <!-- 30 Nv 2000 -->
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Τοπικές Ρυθμίσεις - Χρήση και ρύθμιση I18N/L10N</title>
+
+ <sect1 id="l10n-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το &os; είναι ένα ιδιαίτερα αποκεντρωμένο έργο με χρήστες και
+ εθελοντές σε ολόκληρο τον κόσμο. Στο κεφάλαιο αυτό συζητούνται
+ οι δυνατότητες τοπικών και διεθνών ρυθμίσεων του &os;, οι οποίες
+ επιτρέπουν σε χρήστες γλωσσών εκτός της Αγγλικής να εκτελέσουν
+ πραγματική εργασία. Υπάρχουν πολλοί παράγοντες στην υλοποίηση του
+ πλαισίου i18n, τόσο σε επίπεδο συστήματος, όσο και εφαρμογών, και
+ για το λόγο αυτό, όπου χρειάζεται, παραπέμπουμε τον αναγνώστη σε πιο
+ συγκεκριμένες πηγές τεκμηρίωσης.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως κωδικοποιούνται οι γλώσσες και οι τοπικές ρυθμίσεις
+ στα σύγχρονα λειτουργικά συστήματα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να βάλετε τοπικές ρυθμίσεις στο κέλυφος σας (login
+ shell).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε την κονσόλα για γλώσσες εκτός της
+ Αγγλικής.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε αποτελεσματικά το σύστημα X
+ Windows με διαφορετικές γλώσσες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Που να βρείτε περισσότερες πληροφορίες για τη συγγραφή
+ εφαρμογών συμβατών με το πρότυπο i18n.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό
+ τρίτου κατασκευαστή (<xref linkend="ports">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="l10n-basics">
+ <title>Βασικές Γνώσεις</title>
+
+ <sect2>
+ <title>Τι Είναι το I18N/L10N;</title>
+
+ <indexterm>
+ <primary>internationalization</primary>
+ <see>localization</see>
+ </indexterm>
+ <indexterm><primary>localization</primary></indexterm>
+
+ <para>Οι ομάδες ανάπτυξης λογισμικού δημιούργησαν τον όρο I18N,
+ ως συντόμευση της λέξης <quote>internationalization</quote>
+ (διεθνοποίηση), μετρώντας απλώς τα γράμματα της λέξης ανάμεσα
+ στο πρώτο και το τελευταίο. Ο όρος L10N έχει προκύψει με τον ίδιο
+ τρόπο, αυτή τη φορά από τη λέξη <quote>localization</quote>
+ (τοπικοποίηση, ή απλώς τοπικές ρυθμίσεις). Συνδυάζοντας μεταξύ τους
+ τις μεθόδους, τα πρωτόκολλα, και τις εφαρμογές που συμβαδίζουν με τα
+ I18N/L10N, οι χρήστες μπορούν να χρησιμοποιήσουν τις γλώσσες της
+ επιλογής τους.</para>
+
+ <para>Οι εφαρμογές I18N προγραμματίζονται με τη βοήθεια εργαλείων
+ (kits) και βιβλιοθηκών. Επιτρέπεται έτσι στους προγραμματιστές να
+ γράψουν ένα απλό αρχείο και να μεταφράσουν τα μενού και τα κείμενα
+ που απεικονίζει η εφαρμογή, σε κάθε γλώσσα που απαιτείται.
+ Συνιστούμε ένθερμα στους προγραμματιστές να ακολουθούν την παραπάνω
+ σύμβαση.</para>
+ </sect2>
+
+ <sect2>
+ <title>Γιατί Πρέπει να Χρησιμοποιήσω τα I18N/L10N;</title>
+
+ <para>Τα I18N/L10N χρησιμοποιούνται κάθε φορά που επιθυμείτε να δείτε,
+ να εισάγετε, ή να επεξεργαστείτε δεδομένα σε γλώσσες εκτός της
+ Αγγλικής.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ποιες Γλώσσες Υποστηρίζονται στο I18N;</title>
+
+ <para>Το I18N και το L10N δεν είναι ειδικά φτιαγμένα για το &os;. Την
+ δεδομένη στιγμή, υποστηρίζονται οι περισσότερες γνωστές γλώσσες,
+ συμπεριλαμβανομένων των: Κινεζικών, Γερμανικών, Γιαπωνέζικων,
+ Κορεατικών, Γαλλικών, Ρωσικών, Βιετναμέζικων, κ.α.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="using-localization">
+ <title>Χρήση των Τοπικών Ρυθμίσεων</title>
+
+ <para>Το I18N είναι στην πραγματικότητα μια σύμβαση, και δεν έχει
+ δημιουργηθεί αποκλειστικά για το &os;. Επιθυμούμε τη βοήθεια σας
+ ώστε το &os; να ακολουθεί αυτή τη σύμβαση.</para>
+
+ <indexterm><primary>locale</primary></indexterm>
+ <para>Οι τοπικές ρυθμίσεις βασίζονται σε τρεις βασικούς όρους:
+ Κωδικό Γλώσσας, Κωδικό Χώρας και Κωδικοποίηση. Τα ονόματα των τοπικών
+ ρυθμίσεων προκύπτουν από τους παραπάνω όρους, με τον τρόπο που
+ περιγράφεται παρακάτω:</para>
+
+ <programlisting><replaceable>ΚωδικόςΓλώσσας</replaceable>_<replaceable>ΚωδικόςΧώρας</replaceable>.<replaceable>Κωδικοποίηση</replaceable></programlisting>
+
+ <sect2>
+ <title>Κωδικοί Γλωσσών και Χωρών</title>
+ <indexterm><primary>language codes</primary></indexterm>
+ <indexterm><primary>country codes</primary></indexterm>
+
+ <para>Για να χρησιμοποιηθούν οι τοπικές ρυθμίσεις για μια συγκεκριμένη
+ γλώσσα σε ένα σύστημα &os; (ή σε άλλο σύστημα τύπου &unix; που
+ υποστηρίζει το πρότυπο I18N), ο χρήστης θα πρέπει να βρει τους
+ κωδικούς της συγκεκριμένης χώρας και γλώσσας (οι κωδικοί χωρών
+ καθοδηγούν τις εφαρμογές σχετικά με τη διάλεκτο της γλώσσας που πρέπει
+ να χρησιμοποιηθεί). Προγράμματα όπως φυλλομετρητές, εξυπηρετητές
+ ιστοσελίδων, εξυπηρετητές SMTP/POP κλπ. παίρνουν επίσης κάποιες
+ αποφάσεις που εξαρτώνται από τους κωδικούς αυτούς. Παρακάτω φαίνονται
+ μερικά παραδείγματα γλωσσών/χωρών:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Κωδικός Γλώσσας/Χώρας</entry>
+ <entry>Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>en_US</entry>
+ <entry>Αγγλικά - Ηνωμένες Πολιτείες</entry>
+ </row>
+
+ <row>
+ <entry>ru_RU</entry>
+ <entry>Ρώσικα - Ρωσία</entry>
+ </row>
+
+ <row>
+ <entry>zh_TW</entry>
+ <entry>Παραδοσιακά Κινέζικα - Ταϊβάν</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>Κωδικοποιήσεις</title>
+ <indexterm><primary>encodings</primary></indexterm>
+ <indexterm><primary>ASCII</primary></indexterm>
+
+ <para>Κάποιες γλώσσες χρησιμοποιούν κωδικοποιήσεις που δεν είναι ASCII,
+ αλλά περιέχουν χαρακτήρες 8-bit, wide, ή multibyte (δείτε τη
+ σελίδα manual &man.multibyte.3; για περισσότερες πληροφορίες). Οι
+ πιο καινούριες εφαρμογές συνήθως αναγνωρίζουν τους χαρακτήρες 8-bit.
+ Ανάλογα με την υλοποίηση, οι χρήστες μπορεί να χρειάζεται να
+ μεταγλωττίσουν μια εφαρμογή με υποστήριξη χαρακτήρων wide ή
+ multibyte, ή να προσαρμόσουν τις ρυθμίσεις του προγράμματος. Για να
+ έχετε την ικανότητα να εισάγετε και να επεξεργάζεστε χαρακτήρες
+ multibyte, η <ulink
+ url="&url.base;/ports/index.html">Συλλογή των Ports
+ του &os;</ulink> διαθέτει προγράμματα για κάθε γλώσσα. Δείτε την
+ τεκμηρίωση για το I18N στο αντίστοιχο Port του &os;.</para>
+
+ <para>Ειδικότερα, ο χρήστης χρειάζεται να διαβάσει την τεκμηρίωση της
+ εφαρμογής, για να αποφασίσει πως πρέπει να τη ρυθμίσει σωστά ή πως να
+ περάσει τις σωστές τιμές στο configure, το Makefile ή τον
+ μεταγλωττιστή.</para>
+
+ <para>Θα πρέπει να έχετε κατά νου κάποια πράγματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Σετ χαρακτήρων που εξαρτώνται από τη γλώσσα (single C chars
+ character set, δείτε την &man.multibyte.3;), π.χ.
+ ISO8859-1, ISO8859-15, KOI8-R, CP437.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κωδικοποιήσεις Wide ή multibyte, π.χ. EUC, Big5.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μπορείτε να δείτε την ενεργή λίστα των σετ χαρακτήρων στο
+ <ulink url="http://www.iana.org/assignments/character-sets">Μητρώο
+ IANA</ulink>.</para>
+
+ <note>
+ <para>Το &os; χρησιμοποιεί για τις τοπικές ρυθμίσεις κωδικοποιήσεις
+ συμβατές με το X11.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Εφαρμογές I18N</title>
+
+ <para>Στο σύστημα πακέτων και ports του &os;, οι εφαρμογές που
+ σχετίζονται με το I18N έχουν στο όνομα τους τη λέξη
+ <literal>I18N</literal> ώστε να αναγνωρίζονται εύκολα. Ωστόσο, μπορεί
+ να μην υποστηρίζουν πάντοτε τη γλώσσα που χρειάζεστε.</para>
+ </sect2>
+
+ <sect2 id="setting-locale">
+ <title>Τοπικές Ρυθμίσεις</title>
+
+ <para>Είναι συνήθως αρκετό να γίνει export η τιμή με την ονομασία της
+ επιθυμητής τοπικής ρύθμισης, μέσω της μεταβλητής περιβάλλοντος
+ <envar>LANG</envar> στο κέλυφος εισόδου. Αυτό μπορεί να γίνει στο
+ αρχείο <filename>~/.login_conf</filename> του χρήστη, ή στο αρχείο
+ εκκίνησης του κελύφους του χρήστη (<filename>~/.profile</filename>,
+ <filename>~/.bashrc</filename>, <filename>~/.cshrc</filename>).
+ Δεν είναι ανάγκη να θέσετε και τις υπόλοιπες μεταβλητές των τοπικών
+ ρυθμίσεων, όπως οι <envar>LC_CTYPE</envar>, <envar>LC_CTIME</envar>.
+ Για περισσότερες πληροφορίες, διαβάστε την τεκμηρίωση του &os; που
+ σχετίζεται με την υποστήριξη της επιθυμητής γλώσσας.</para>
+
+ <para>Θα πρέπει να θέσετε τις δύο παρακάτω μεταβλητές περιβάλλοντος,
+ στα αρχεία ρυθμίσεων:</para>
+
+ <itemizedlist>
+ <indexterm><primary>POSIX</primary></indexterm>
+ <listitem>
+ <para>Την <envar>LANG</envar> για λειτουργίες που ανήκουν στην
+ οικογένεια &posix; &man.setlocale.3;</para>
+ </listitem>
+
+ <indexterm><primary>MIME</primary></indexterm>
+ <listitem>
+ <para>Την <envar>MM_CHARSET</envar> για το σύνολο χαρακτήρων MIME
+ των εφαρμογών.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Το παραπάνω περιλαμβάνει την ρύθμιση του κελύφους χρήστη, την
+ ρύθμιση για μια συγκεκριμένη εφαρμογή, και τη ρύθμιση για τα
+ X11.</para>
+
+ <sect3>
+ <title>Μέθοδοι Αλλαγής Τοπικών Ρυθμίσεων</title>
+ <indexterm><primary>locale</primary></indexterm>
+ <indexterm><primary>login class</primary></indexterm>
+
+ <para>Υπάρχουν δύο μέθοδοι για την αλλαγή των τοπικών ρυθμίσεων, τις
+ οποίες και περιγράφουμε παρακάτω. Η πρώτη (την οποία και
+ συνιστούμε) υλοποιείται θέτοντας τιμές στις μεταβλητές περιβάλλοντος
+ στο <link linkend="login-class">login class</link>, και η δεύτερη
+ αλλάζοντας τις τιμές των μεταβλητών περιβάλλοντος στο
+ <link linkend="startup-file">αρχείο εκκίνησης</link> του κελύφους
+ του χρήστη.</para>
+
+ <sect4 id="login-class">
+ <title>Μέθοδος Κλάσεων Εισόδου (Login Class)</title>
+
+ <para>Η μέθοδος αυτή επιτρέπει να γίνει η ρύθμιση των μεταβλητών
+ περιβάλλοντος μια φορά για κάθε κέλυφος, αντί να χρειάζεται να
+ τεθούν συγκεκριμένες τιμές στο αρχείο εκκίνησης του καθενός
+ χωριστά. Οι <link linkend="usr-setup">Ρυθμίσεις σε Επίπεδο
+ Χρήστη</link> μπορούν να γίνουν από τον ίδιο το χρήστη, ενώ οι
+ <link linkend="adm-setup">Ρυθμίσεις σε Επίπεδο Διαχειριστή</link>
+ απαιτούν προνόμια υπερχρήστη.</para>
+
+ <sect5 id="usr-setup">
+ <title>Ρυθμίσεις σε Επίπεδο Χρήστη</title>
+
+ <para>Το παρακάτω απλό παράδειγμα, δείχνει ένα αρχείο
+ <filename>.login_conf</filename> στον κατάλογο κάποιου χρήστη
+ στο οποίο και οι δύο μεταβλητές έχουν τεθεί για κωδικοποίηση
+ Latin-1:</para>
+
+ <programlisting>me:\
+ :charset=ISO-8859-1:\
+ :lang=de_DE.ISO8859-1:</programlisting>
+
+ <indexterm><primary>Traditional Chinese</primary><secondary>BIG-5 encoding</secondary></indexterm>
+ <para>Παρακάτω βλέπετε ένα <filename>.login_conf</filename> στο
+ οποίο οι μεταβλητές έχουν τεθεί για Παραδοσιακά Κινέζικα σε
+ κωδικοποίηση BIG-5. Παρατηρήστε ότι έχουμε θέσει πολύ
+ περισσότερες μεταβλητές, καθώς κάποιες εφαρμογές δεν σέβονται
+ σωστά τις μεταβλητές για Κινέζικα, Γιαπωνέζικα και
+ Κορεάτικα.</para>
+
+ <programlisting>#Users who do not wish to use monetary units or time formats
+#of Taiwan can manually change each variable
+me:\
+ :lang=zh_TW.Big5:\
+ :setenv=LC_ALL=zh_TW.Big5:\
+ :setenv=LC_COLLATE=zh_TW.Big5:\
+ :setenv=LC_CTYPE=zh_TW.Big5:\
+ :setenv=LC_MESSAGES=zh_TW.Big5:\
+ :setenv=LC_MONETARY=zh_TW.Big5:\
+ :setenv=LC_NUMERIC=zh_TW.Big5:\
+ :setenv=LC_TIME=zh_TW.Big5:\
+ :charset=big5:\
+ :xmodifiers="@im=gcin": #Set gcin as the XIM Input Server</programlisting>
+
+ <para>Για περισσότερες πληροφορίες, δείτε τις <link
+ linkend="adm-setup">Ρυθμίσεις σε Επίπεδο Διαχειριστή</link>
+ και την &man.login.conf.5;.</para>
+ </sect5>
+
+ <sect5 id="adm-setup">
+ <title>Ρυθμίσεις σε Επίπεδο Διαχειριστή</title>
+
+ <para>Βεβαιωθείτε ότι έχει οριστεί η σωστή γλώσσα στην κλάση του
+ χρήστη, στο αρχείο <filename>/etc/login.conf</filename>.
+ Στο αρχείο αυτό θα πρέπει να υπάρχουν οι παρακάτω
+ ρυθμίσεις:</para>
+
+ <programlisting><replaceable>language_name</replaceable>|<replaceable>Account Type Description</replaceable>:\
+ :charset=<replaceable>MIME_charset</replaceable>:\
+ :lang=<replaceable>locale_name</replaceable>:\
+ :tc=default:</programlisting>
+
+ <para>Με βάση το προηγούμενο παράδειγμα μας που χρησιμοποιήσαμε
+ Latin-1, το αρχείο θα μοιάζει με το παρακάτω:</para>
+
+ <programlisting>german|German Users Accounts:\
+ :charset=ISO-8859-1:\
+ :lang=de_DE.ISO8859-1:\
+ :tc=default:</programlisting>
+
+ <para>Πριν κάνετε αλλαγές στις Κλάσεις Εισόδου (Login Classes) των
+ χρηστών, εκτελέστε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
+
+ <para>ώστε να ενεργοποιηθούν στο σύστημα οι αλλαγές που κάνατε στο
+ <filename>/etc/login.conf</filename>.</para>
+
+ <bridgehead renderas=sect4>Αλλαγή Κλάσεων Εισόδου μέσω της &man.vipw.8;</bridgehead>
+
+ <indexterm>
+ <primary><command>vipw</command></primary>
+ </indexterm>
+ <para>Χρησιμοποιήστε την <command>vipw</command> για να
+ προσθέσετε νέους χρήστες, και κάντε την καταχώριση να μοιάζει με
+ την παρακάτω:</para>
+
+ <programlisting>user:password:1111:11:<replaceable>language</replaceable>:0:0:User Name:/home/user:/bin/sh</programlisting>
+
+ <bridgehead renderas=sect4>Αλλαγή Κλάσεων Εισόδου μέσω της &man.adduser.8;</bridgehead>
+
+ <indexterm>
+ <primary><command>adduser</command></primary>
+ </indexterm>
+ <indexterm><primary>login class</primary></indexterm>
+ <para>Χρησιμοποιήστε την <command>adduser</command> για να
+ προσθέσετε νέους χρήστες, και έπειτα ακολουθήστε τις παρακάτω
+ οδηγίες:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Θέστε το <literal>defaultclass =
+ <replaceable>language</replaceable></literal> στο
+ <filename>/etc/adduser.conf</filename>. Να έχετε υπόψη σας
+ ότι σε αυτή την περίπτωση, θα πρέπει να ορίσετε μια κλάση
+ <literal>default</literal> για όλους τους χρήστες άλλων
+ γλωσσών.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μια εναλλακτική λύση, είναι να απαντάτε κάθε φορά στην
+ ερώτηση</para>
+
+ <screen><prompt>Enter login class: default []: </prompt></screen>
+ <para>που εμφανίζεται από την &man.adduser.8;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ακόμα μια εναλλακτική λύση, είναι να χρησιμοποιήσετε το
+ παρακάτω σε κάθε χρήστη που θέλετε να προσθέσετε και ο
+ οποίος χρησιμοποιεί διαφορετική γλώσσα:</para>
+
+ <screen>&prompt.root; <userinput>adduser -class <replaceable>language</replaceable></userinput></screen>
+ </listitem>
+ </itemizedlist>
+
+ <bridgehead renderas=sect4>Αλλαγή Κλάσεων Εισόδου μέσω της &man.pw.8;</bridgehead>
+ <indexterm>
+ <primary><command>pw</command></primary>
+ </indexterm>
+ <para>Αν χρησιμοποιείτε την &man.pw.8; για να προσθέσετε νέους
+ χρήστες, καλέστε την με τον παρακάτω τρόπο:</para>
+
+ <screen>&prompt.root; <userinput>pw useradd <replaceable>user_name</replaceable> -L <replaceable>language</replaceable></userinput></screen>
+ </sect5>
+ </sect4>
+
+ <sect4 id="startup-file">
+ <title>Μέθοδος Αρχείων Εκκίνησης Κελύφους</title>
+
+ <note>
+ <para>Η μέθοδος αυτή δεν συνίσταται, καθώς απαιτεί διαφορετικές
+ ρυθμίσεις για κάθε διαφορετικό πρόγραμμα κελύφους που
+ χρησιμοποιείται. Προτιμήστε καλύτερα την μέθοδο των
+ <link linkend="login-class">Κλάσεων Εισόδου</link>.</para>
+ </note>
+
+ <indexterm><primary>MIME</primary></indexterm>
+ <indexterm><primary>locale</primary></indexterm>
+ <para>Για να προσθέσετε τις τοπικές ρυθμίσεις και το σετ χαρακτήρων
+ MIME, ρυθμίστε απλώς τις δύο μεταβλητές περιβάλλοντος που
+ φαίνονται παρακάτω στο αρχείο
+ <filename>/etc/profile</filename> ή/και στο
+ <filename>/etc/csh.login</filename>. Θα χρησιμοποιήσουμε τα
+ Γερμανικά ως γλώσσα για το παρακάτω παράδειγμα:</para>
+
+ <para>Στο <filename>/etc/profile</filename>:</para>
+
+ <programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar>
+<envar>MM_CHARSET=ISO-8859-1; export MM_CHARSET</envar></programlisting>
+
+ <para>Ή στο <filename>/etc/csh.login</filename>:</para>
+
+ <programlisting><envar>setenv LANG de_DE.ISO8859-1</envar>
+<envar>setenv MM_CHARSET ISO-8859-1</envar></programlisting>
+
+ <para>Εναλλακτικά, μπορείτε να προσθέσετε τις παραπάνω οδηγίες στο
+ <filename>/usr/share/skel/dot.profile</filename> (αντίστοιχα με
+ τις οδηγίες για το <filename>/etc/profile</filename> που είδαμε
+ παραπάνω), ή στο <filename>/usr/share/skel/dot.login</filename>
+ (αντίστοιχα με τις οδηγίες για το
+ <filename>/etc/csh.login</filename> που είδαμε επίσης
+ παραπάνω).</para>
+
+ <para>Για το X11:</para>
+
+ <para>Στο <filename>$HOME/.xinitrc</filename>:</para>
+
+ <programlisting><envar>LANG=de_DE.ISO8859-1; export LANG</envar></programlisting>
+
+ <para>Ή:</para>
+
+ <programlisting><envar>setenv LANG de_DE.ISO8859-1</envar></programlisting>
+
+ <para>Ανάλογα με το κέλυφος που χρησιμοποιείτε (δείτε
+ παραπάνω).</para>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2 id="setting-console">
+ <title>Ρυθμίσεις για την Κονσόλα</title>
+
+ <para>Για όλα τα single C σετ χαρακτήρων, μπορείτε να θέσετε τις
+ γραμματοσειρές της κονσόλας στο <filename>/etc/rc.conf</filename>
+ για την επιθυμητή γλώσσα, γράφοντας:</para>
+
+ <programlisting>font8x16=<replaceable>font_name</replaceable>
+font8x14=<replaceable>font_name</replaceable>
+font8x8=<replaceable>font_name</replaceable></programlisting>
+
+ <para>Το <replaceable>font_name</replaceable> εδώ προκύπτει από το
+ αντίστοιχο αρχείο του καταλόγου
+ <filename>/usr/share/syscons/fonts</filename>, αφαιρώντας την
+ κατάληξη <filename>.fnt</filename>.</para>
+
+ <indexterm>
+ <primary><application>sysinstall</application></primary>
+ </indexterm>
+ <indexterm><primary>keymap</primary></indexterm>
+ <indexterm><primary>screenmap</primary></indexterm>
+ <para>Αν χρειάζεται, χρησιμοποιήστε την κατάλληλη αντιστοίχηση
+ πληκτρολογίου (keymap) και οθόνης για το σετ χαρακτήρων single C που
+ χρησιμοποιείτε, μέσω του
+ <command>sysinstall</command>.
+ Μόλις εκτελέσετε το <application>sysinstall</application>, επιλέξτε
+ το <guimenuitem>Configure</guimenuitem>, και έπειτα το
+ <guimenuitem>Console</guimenuitem>. Εναλλακτικά, μπορείτε να
+ προσθέσετε το παρακάτω στο <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>scrnmap=<replaceable>screenmap_name</replaceable>
+keymap=<replaceable>keymap_name</replaceable>
+keychange="<replaceable>fkey_number sequence</replaceable>"</programlisting>
+
+ <para>Στην περίπτωση αυτή, το <replaceable>screenmap_name</replaceable>
+ προέρχεται από ένα αρχείο του καταλόγου
+ <filename>/usr/share/syscons/scrnmaps</filename>, χωρίς την κατάληξη
+ <filename>.scm</filename>. Η αντιστοίχηση οθόνης μαζί με την
+ αντίστοιχη γραμματοσειρά, χρησιμοποιείται συνήθως για την επέκταση του
+ 8ου bit στο 9o, για κάρτες VGA που χρησιμοποιούν μήτρα χαρακτήρων με
+ 8 στήλες.</para>
+
+ <!-- Ελπίζω να έβγαλα το σωστό νόημα παραπάνω... -->
+
+ <para>Αν έχετε ενεργοποιημένο τον δαίμονα
+ <application>moused</application> στο αρχείο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>moused_enable="YES"</programlisting>
+
+ <para>καλό θα είναι να εξετάσετε τις πληροφορίες σχετικά με τον δρομέα
+ του ποντικιού που εμφανίζονται στην παρακάτω παράγραφο.</para>
+
+ <indexterm>
+ <primary><application>moused</application></primary>
+ </indexterm>
+ <para>Ο προεπιλεγμένος δρομέας του ποντικιού που χρησιμοποιείται από το
+ πρόγραμμα οδήγησης &man.syscons.4;, καταλαμβάνει τις θέσεις 0xd0-0xd3
+ του συνόλου χαρακτήρων. Αν αυτή η περιοχή χαρακτήρων δεν είναι
+ διαθέσιμη στη γλώσσα που χρησιμοποιείτε, θα πρέπει να μετακινήσετε την
+ περιοχή του δρομέα έξω από αυτήν. Για να γίνει αυτό στο &os;,
+ προσθέστε την ακόλουθη γραμμή στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>mousechar_start=3</programlisting>
+
+ <para>Το <replaceable>keymap_name</replaceable> προέρχεται από ένα
+ αρχείο του καταλόγου <filename>/usr/share/syscons/keymaps</filename>,
+ χωρίς την κατάληξη <filename>.kbd</filename>. Αν δεν είστε σίγουρος
+ για την αντιστοίχηση πληκτρολογίου που χρειάζεται να χρησιμοποιήσετε,
+ μπορείτε να χρησιμοποιήσετε το &man.kbdmap.1; για να κάνετε δοκιμές
+ σε διάφορες αντιστοιχίσεις, χωρίς να χρειάζεται να κάνετε
+ επανεκκίνηση.</para>
+
+ <para>Η λειτουργία <literal>keychange</literal> χρησιμοποιείται συνήθως
+ για τον προγραμματισμό των πλήκτρων λειτουργιών (function keys), ώστε
+ να ταιριάζουν με τον επιλεγμένο τύπο τερματικού, καθώς οι ακολουθίες
+ των πλήκτρων λειτουργιών δεν μπορούν να καθοριστούν στις
+ αντιστοιχίσεις πληκτρολογίου.</para>
+
+ <para>Βεβαιωθείτε επίσης ότι έχετε ρυθμίσει το σωστό τύπου τερματικού
+ στο <filename>/etc/ttys</filename> για όλες τις καταχωρίσεις
+ <literal>ttyv*</literal>. Τη δεδομένη στιγμή, οι προκαθορισμένες
+ αντιστοιχίες είναι:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Σετ Χαρακτήρων</entry>
+ <entry>Τύπος Τερματικού</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>ISO8859-1 ή ISO8859-15</entry>
+ <entry><literal>cons25l1</literal></entry>
+ </row>
+
+ <row>
+ <entry>ISO8859-2</entry>
+ <entry><literal>cons25l2</literal></entry>
+ </row>
+
+ <row>
+ <entry>ISO8859-7</entry>
+ <entry><literal>cons25l7</literal></entry>
+ </row>
+
+ <row>
+ <entry>KOI8-R</entry>
+ <entry><literal>cons25r</literal></entry>
+ </row>
+
+ <row>
+ <entry>KOI8-U</entry>
+ <entry><literal>cons25u</literal></entry>
+ </row>
+
+ <row>
+ <entry>CP437 (προεπιλεγμένο VGA)</entry>
+ <entry><literal>cons25</literal></entry>
+ </row>
+
+ <row>
+ <entry>US-ASCII</entry>
+ <entry><literal>cons25w</literal></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Για γλώσσες με χαρακτήρες wide ή multibyte, χρησιμοποιήστε το
+ σωστό &os; port στον κατάλογο
+ <filename>/usr/ports/<replaceable>language</replaceable></filename>.
+ Μερικές θύρες εμφανίζονται ως κονσόλα, ενώ το σύστημα τις βλέπει ως
+ σειριακά vtty, και έτσι πρέπει να παρακρατήσετε αρκετά vtty, τόσο για
+ το X11 όσο και για την ψευτό-σειριακή κονσόλα. Παρακάτω θα βρείτε
+ μια μερικώς ενημερωμένη λίστα για χρήση άλλων γλωσσών στην
+ κονσόλα:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Γλώσσα</entry>
+ <entry>Τοποθεσία</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Παραδοσιακά Κινέζικα (BIG-5)</entry>
+ <entry><filename role="package">chinese/big5con</filename></entry>
+ </row>
+
+ <row>
+ <entry>Γιαπωνέζικα</entry>
+ <entry><filename role="package">japanese/kon2-16dot</filename>
+ ή
+ <filename role="package">japanese/mule-freewnn</filename></entry>
+ </row>
+
+ <row>
+ <entry>Κορεάτικα</entry>
+ <entry><filename role="package">korean/han</filename></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του X11</title>
+
+ <para>Αν και το X11 δεν είναι μέρος του &os;&nbsp;Project, θα δώσουμε
+ εδώ κάποιες χρήσιμες πληροφορίες για όσους το χρησιμοποιούν στο &os;.
+ Για περισσότερες πληροφορίες, δείτε την <ulink
+ url="http://www.x.org/">δικτυακή τοποθεσία του &xorg;</ulink>,
+ ή του εξυπηρετητή X11 που πρόκειται να χρησιμοποιήσετε.</para>
+
+ <para>Στο αρχείο <filename>~/.Xresources</filename>, μπορείτε
+ επιπρόσθετα να αλλάξετε και άλλες ρυθμίσεις που σχετίζονται με το
+ I18N (π.χ. γραμματοσειρές, μενού, κ.λ.π.).</para>
+
+ <sect3>
+ <title>Απεικόνιση Γραμματοσειρών</title>
+
+ <indexterm><primary>X11 True Type font server</primary></indexterm>
+ <para>Εγκαταστήστε τον εξυπηρετητή <application>&xorg;</application>
+ (<filename role="package">x11-servers/xorg-server</filename>)
+ και έπειτα εγκαταστήστε τις γραμματοσειρές &truetype; για την
+ επιθυμητή γλώσσα. Με τις σωστές τοπικές ρυθμίσεις, θα μπορείτε να
+ δείτε την επιλεγμένη γλώσσα στα μενού και τα μηνύματα του γραφικού
+ περιβάλλοντος.</para>
+ </sect3>
+
+ <sect3>
+ <title>Εισαγωγή μη-Αγγλικών Χαρακτήρων</title>
+
+ <indexterm><primary>X11 Input Method (XIM)</primary></indexterm>
+ <para>Η μέθοδος εισόδου X11 (XIM, X11 Input Method), είναι ένα νέο
+ πρότυπο για όλους τους πελάτες X11. Όλες οι εφαρμογές του X11 θα
+ πρέπει να γράφονται ως πελάτες του XIM, και να λαμβάνουν είσοδο από
+ εξυπηρετητές εισόδου XIM. Υπάρχουν διαθέσιμοι διάφοροι
+ εξυπηρετητές XIM, για διαφορετικές γλώσσες.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση Εκτυπωτή</title>
+
+ <para>Κάποια σετ χαρακτήρων single C είναι συνήθως ενσωματωμένα στο
+ ίδιο το υλικό των εκτυπωτών. Τα σετ χαρακτήρων τύπου wide ή multibyte
+ απαιτούν ειδικές ρυθμίσεις, και συνιστούμε να χρησιμοποιήσετε το
+ <application>apsfilter</application>. Μπορείτε επίσης να μετατρέψετε
+ το έγγραφο σας σε &postscript; ή PDF, χρησιμοποιώντας εργαλεία ειδικά
+ φτιαγμένα για τη συγκεκριμένη γλώσσα.</para>
+ </sect2>
+
+ <sect2>
+ <title>Πυρήνας και Συστήματα Αρχείων</title>
+
+ <para>Το σύστημα αρχείων FFS (fast filesystem) του &os; μπορεί να
+ διαχειριστεί ονόματα αρχείων που ανήκουν σε σετ single C (είναι 8-bit
+ clean, δείτε και το &man.multibyte.3;), αλλά δεν αποθηκεύει το σετ
+ χαρακτήρων που χρησιμοποιείται. Με άλλα λόγια, είναι 8-bit αλλά δεν
+ γνωρίζει τίποτα για την κωδικοποίηση των χαρακτήρων. Επίσημα, το FFS
+ δεν υποστηρίζει ακόμα σετ χαρακτήρων wide ή multibyte. Υπάρχουν
+ ωστόσο κάποια ανεξάρτητα patches για το FFS που υποστηρίζουν αυτές τις
+ δυνατότητες. Πρόκειται μόνο για προσωρινές και μη μεταφέρσιμες λύσεις
+ ή hacks, και έχουμε αποφασίσει να μην τα περιλάβουμε στο κεντρικό
+ δέντρο πηγαίου κώδικα. Δείτε τις ιστοσελίδες των αντίστοιχων γλωσσών
+ για περισσότερες πληροφορίες και για να ανακτήσετε τα απαραίτητα
+ αρχεία.</para>
+
+ <indexterm><primary>DOS</primary></indexterm>
+ <indexterm><primary>Unicode</primary></indexterm>
+ <para>Το σύστημα αρχείων &ms-dos; στο &os; έχει την δυνατότητα να
+ ρυθμιστεί ώστε να μετατρέπει μεταξύ των σετ χαρακτήρων
+ Unicode, του &ms-dos;, και του σετ χαρακτήρων που έχει επιλεγεί για
+ το σύστημα αρχείων του &os;. Για περισσότερες λεπτομέρειες, δείτε τη
+ σελίδα manual &man.mount.msdosfs.8;.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="l10n-compiling">
+ <title>Μεταγλώττιση Προγραμμάτων I18N</title>
+
+ <para>Πολλά ports του &os; διαθέτουν υποστήριξη I18N. Σε μερικά από αυτά,
+ το -I18N είναι μέρος του ονόματος τους. Τα προγράμματα αυτά, και πολλά
+ περισσότερα, έχουν ενσωματωμένη υποστήριξη για I18N και δεν χρειάζονται
+ άλλες ειδικές ρυθμίσεις.</para>
+
+ <indexterm>
+ <primary><application>MySQL</application></primary>
+ </indexterm>
+ <para>Ωστόσο, σε κάποιες εφαρμογές όπως η
+ <application>MySQL</application>, θα πρέπει να ρυθμιστεί το
+ <filename>Makefile</filename> με το επιθυμητό σετ χαρακτήρων. Αυτό
+ συνήθως γίνεται περνώντας μια τιμή στο
+ <application>configure</application> στον πηγαίο κώδικα, ή αλλάζοντας
+ το ίδιο το <filename>Makefile</filename>.</para>
+ </sect1>
+
+ <sect1 id="lang-setup">
+ <title>Τοπικές Ρυθμίσεις για Συγκεκριμένες Γλώσσες</title>
+
+ <sect2 id="ru-localize">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Andrey</firstname>
+ <surname>Chernov</surname>
+ <contrib>Αρχική συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+ <title>Ρώσικη Γλώσσα (Κωδικοποίηση KOI8-R)</title>
+ <indexterm>
+ <primary>localization</primary>
+ <secondary>Russian</secondary>
+ </indexterm>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με την κωδικοποίηση KOI8-R,
+ δείτε τις <ulink url="http://koi8.pp.ru/">Αναφορές Σχετικά με το Σετ
+ Χαρακτήρων KOIR-8 (Ρωσικό Σύνολο Χαρακτήρων)</ulink>.</para>
+
+ <sect3>
+ <title>Τοπικές Ρυθμίσεις</title>
+
+ <para>Τοποθετήστε τις ακόλουθες γραμμές στο αρχείο σας
+ <filename>~/.login_conf</filename>:</para>
+
+ <programlisting>me:My Account:\
+ :charset=KOI8-R:\
+ :lang=ru_RU.KOI8-R:</programlisting>
+
+ <para>Για παραδείγματα που σχετίζονται με τις
+ <link linkend="setting-locale">Τοπικές Ρυθμίσεις</link>, δείτε
+ προηγούμενες ενότητες σε αυτό το κεφάλαιο.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ρύθμιση Κονσόλας</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Προσθέστε την ακόλουθη γραμμή στο αρχείο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>mousechar_start=3</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Χρησιμοποιήστε επίσης τις παρακάτω ρυθμίσεις στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>keymap="ru.koi8-r"
+scrnmap="koi8-r2cp866"
+font8x16="cp866b-8x16"
+font8x14="cp866-8x14"
+font8x8="cp866-8x8"</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Για κάθε καταχώριση <literal>ttyv*</literal> στο αρχείο
+ <filename>/etc/ttys</filename>, χρησιμοποιήστε το
+ <literal>cons25r</literal> ως τύπο τερματικού.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για παραδείγματα που σχετίζονται με την ρύθμιση της
+ <link linkend="setting-console">κονσόλας</link>, δείτε προηγούμενες
+ ενότητες αυτού του κεφαλαίου.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ρύθμιση Εκτυπωτή</title>
+
+ <indexterm><primary>printers</primary></indexterm>
+ <para>Καθώς οι περισσότεροι εκτυπωτές που διαθέτουν Ρωσικούς
+ χαρακτήρες έχουν ενσωματωμένη την κωδικοσελίδα CP866, θα χρειαστείτε
+ ειδικό φίλτρο εξόδου για να μετατρέψετε από το KOI8-R στο CP866.
+ Το φίλτρο αυτό εγκαθίσταται από προεπιλογή στο
+ <filename>/usr/libexec/lpr/ru/koi2alt</filename>. Η καταχώριση για
+ ένα Ρώσικο εκτυπωτή στο <filename>/etc/printcap</filename> θα
+ μοιάζει με την παρακάτω:</para>
+
+ <programlisting>lp|Russian local line printer:\
+ :sh:of=/usr/libexec/lpr/ru/koi2alt:\
+ :lp=/dev/lpt0:sd=/var/spool/output/lpd:lf=/var/log/lpd-errs:</programlisting>
+
+ <para>Δείτε το &man.printcap.5; για πιο λεπτομερή περιγραφή.</para>
+ </sect3>
+
+ <sect3>
+ <title>Σύστημα Αρχείων &ms-dos; και Ρώσικα Ονόματα Αρχείων</title>
+
+ <para>Το παρακάτω υπόδειγμα καταχώρισης στο &man.fstab.5; ενεργοποιεί
+ την υποστήριξη για Ρώσικα ονόματα αρχείων σε προσαρτημένα συστήματα
+ αρχείων τύπου &ms-dos;:</para>
+
+ <programlisting>/dev/ad0s2 /dos/c msdos rw,-Wkoi2dos,-Lru_RU.KOI8-R 0 0</programlisting>
+
+ <para>Η επιλογή <option>-L</option> επιλέγει τις τοπικές ρυθμίσεις που
+ θα χρησιμοποιηθούν, και η <option>-W</option> ορίζει τον πίνακα
+ μετατροπής χαρακτήρων. Για να χρησιμοποιήσετε την επιλογή
+ <option>-W</option> βεβαιωθείτε ότι έχετε προσαρτήσει την κατάτμηση
+ <filename>/usr</filename> πριν την κατάτμηση &ms-dos;, καθώς οι
+ πίνακες μετατροπής βρίσκονται στο
+ <filename>/usr/libdata/msdosfs</filename>. Για περισσότερες
+ πληροφορίες, δείτε τη σελίδα manual του
+ &man.mount.msdosfs.8;.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ρύθμιση X11</title>
+
+ <orderedlist>
+ <listitem>
+ <para>Εκτελέστε πρώτα <link linkend="setting-locale">τις γενικές
+ τοπικές ρυθμίσεις</link> που έχουμε ήδη περιγράψει.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν χρησιμοποιείτε τον εξυπηρετητή
+ <application>&xorg;</application>, εγκαταστήστε το πακέτο
+ <filename role="package">x11-fonts/xorg-fonts-cyrillic</filename>.</para>
+
+ <para>Ελέγξτε την ενότητα <literal>"Files"</literal> στο αρχείο
+ <filename>/etc/X11/xorg.conf</filename>. Θα πρέπει να
+ προσθέσετε την παρακάτω γραμμή <emphasis>πριν</emphasis>
+ από οποιαδήποτε άλλη καταχώριση
+ <literal>FontPath</literal>:</para>
+
+ <programlisting>FontPath "/usr/local/lib/X11/fonts/cyrillic"</programlisting>
+
+ <note>
+ <para>Δείτε στην Συλλογή των Ports για περισσότερες κυριλλικές
+ γραμματοσειρές.</para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>Για την ενεργοποίηση του Ρωσικού πληκτρολογίου, προσθέστε
+ τις παρακάτω γραμμές στην ενότητα <literal>"Keyboard"</literal>
+ του αρχείου <filename>xorg.conf</filename>:</para>
+
+ <programlisting>Option "XkbLayout" "us,ru"
+Option "XkbOptions" "grp:toggle"</programlisting>
+
+ <para>Βεβαιωθείτε επίσης ότι η γραμμή
+ <literal>XkbDisable</literal> είναι ανενεργή (μαρκαρισμένη ως
+ σχόλιο).</para>
+
+ <para>Αν χρησιμοποιήσετε το <literal>grp:toggle</literal>
+ η εναλλαγή RUS/LAT θα γίνεται με το <keycap>Δεξιό Alt</keycap>,
+ ενώ αν θέσετε <literal>grp:ctrl_shift_toggle</literal>,
+ η εναλλαγή θα γίνεται με το
+ <keycombo action="simul"><keycap>Ctrl</keycap><keycap>Shift</keycap></keycombo>.
+ Για <literal>grp:caps_toggle</literal>, η εναλλαγή RUS/LAT θα
+ γίνεται με το <keycap>CapsLock</keycap>.
+ Η κανονική λειτουργία του <keycap>CapsLock</keycap> εξακολουθεί
+ να είναι διαθέσιμη μέσω του συνδυασμού πλήκτρων
+ <keycombo action="simul"><keycap>Shift</keycap><keycap>CapsLock</keycap></keycombo>
+ (μόνο σε κατάσταση LAT). Το <literal>grp:caps_toggle</literal>
+ για κάποιο άγνωστο λόγο, δεν λειτουργεί στο
+ <application>&xorg;</application>.</para>
+
+ <para>Αν το πληκτρολόγιο σας διαθέτει πλήκτρα
+ <quote>&windows;</quote>, και έχετε παρατηρήσει ότι κάποια από
+ τα μη-αλφαριθμητικά πλήκτρα έχουν λάθος αντιστοίχηση όταν είστε
+ σε κατάσταση RUS, προσθέστε την παρακάτω γραμμή στο αρχείο
+ <filename>xorg.conf</filename>:</para>
+
+ <programlisting>Option "XkbVariant" ",winkeys"</programlisting>
+
+ <note>
+ <para>Το Ρώσικο XKB πληκτρολόγιο ίσως δεν λειτουργεί με
+ εφαρμογές που δεν έχουν φτιαχτεί για τις αντίστοιχες τοπικές
+ ρυθμίσεις.</para>
+ </note>
+ </listitem>
+ </orderedlist>
+
+ <note>
+ <para>Οι εφαρμογές που τηρούν τις ελάχιστες προδιαγραφές τοπικών
+ ρυθμίσεων, θα πρέπει να καλούν από νωρίς τη συνάρτηση
+ <function>XtSetLanguageProc (NULL, NULL, NULL);</function> μέσα
+ στον κώδικα τους.</para>
+
+ <para>Δείτε το <ulink url="http://koi8.pp.ru/xwin.html">KOI8-R για
+ το σύστημα X Window</ulink> για περισσότερες οδηγίες σχετικά με
+ την δημιουργία εφαρμογών X11 που να χρησιμοποιούν τοπικές
+ ρυθμίσεις.</para>
+ </note>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Τοπικές Ρυθμίσεις για Παραδοσιακά Κινέζικα Ταϊβάν</title>
+ <indexterm>
+ <primary>localization</primary>
+ <secondary>Traditional Chinese</secondary>
+ </indexterm>
+
+ <para>Το &os;-Taiwan&nbsp;Project έχει δημιουργήσει ένα HOWTO για τα
+ Κινέζικα στο &os;, το οποίο μπορείτε να βρείτε στη διεύθυνση
+ <ulink url="http://netlab.cse.yzu.edu.tw/~statue/freebsd/zh-tut/"></ulink>,
+ χρησιμοποιώντας πολλά Κινέζικα ports.
+ Ο τρέχων συντάκτης του <literal>Κινέζικου &os; Howto</literal> είναι ο
+ Shen Chuan-Hsing <email>statue@freebsd.sinica.edu.tw</email>.
+ </para>
+
+ <para>Ο Chuan-Hsing Shen <email>statue@freebsd.sinica.edu.tw</email>
+ έχει δημιουργήσει την <ulink
+ url="http://netlab.cse.yzu.edu.tw/~statue/cfc/">Κινέζικη Συλλογή
+ &os; (CFC)</ulink> χρησιμοποιώντας την κωδικοποίηση
+ <literal>zh-L10N-tut</literal> του &os;-Ταΐβάν. Τα πακέτα και τα
+ scripts διατίθενται στη διεύθυνση <ulink
+ url="ftp://freebsd.csie.nctu.edu.tw/pub/taiwan/CFC/"></ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Τοπικές Ρυθμίσεις για την Γερμανική Γλώσσα (για Όλες τις Γλώσσες
+ που Βασίζονται στο ISO 8859-1)</title>
+ <indexterm>
+ <primary>localization</primary>
+ <secondary>German</secondary>
+ </indexterm>
+
+ <para>Ο Slaven Rezic <email>eserte@cs.tu-berlin.de</email> έχει γράψει
+ ένα οδηγό για την χρήση των umlauts σε ένα μηχάνημα &os;. Ο οδηγός
+ είναι γραμμένος στα Γερμανικά και διατίθεται στην τοποθεσία
+ <ulink url="http://user.cs.tu-berlin.de/~eserte/FreeBSD/doc/umlaute/umlaute.html"></ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Τοπικές Ρυθμίσεις για την Ελληνική Γλώσσα</title>
+
+ <indexterm>
+ <primary>localization</primary>
+ <secondary>Greek</secondary>
+ </indexterm>
+ <para>Ο &a.el.kokkalis; έχει γράψει ένα πλήρες άρθρο για την υποστήριξη
+ της Ελληνικής γλώσσας στο &os;. Το άρθρο αυτό διατίθεται ως μέρος της
+ επίσημης Ελληνικής τεκμηρίωσης του &os;, στην τοποθεσία <ulink
+ url="&url.doc.base;/el_GR.ISO8859-7/articles/greek-language-support/index.html">http://www.freebsd.org/doc/el_GR.ISO8859-7/artilces/greek-language-support/index.html</ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Τοπικές Ρυθμίσεις Για Γιαπωνέζικα και Κορεάτικα</title>
+ <indexterm>
+ <primary>localization</primary>
+ <secondary>Japanese</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>localization</primary>
+ <secondary>Korean</secondary>
+ </indexterm>
+ <para>Για Γιαπωνέζικα, δείτε στην τοποθεσία
+ <ulink url="http://www.jp.FreeBSD.org/"></ulink>,
+ ενώ για Κορεάτικα, δείτε στην τοποθεσία
+ <ulink url="http://www.kr.FreeBSD.org/"></ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Τεκμηρίωση του &os; σε Γλώσσες Εκτός της Αγγλικής</title>
+
+ <para>Κάποιοι εθελοντές του &os; έχουν μεταφράσει τμήματα της
+ τεκμηρίωσης του σε άλλες γλώσσες. Οι μεταφράσεις αυτές διατίθενται
+ μέσω συνδέσμων στην <ulink url="&url.base;/index.html">κύρια δικτυακή
+ τοποθεσία του &os;</ulink> ή στον κατάλογο
+ <filename class="directory">/usr/share/doc</filename>.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml b/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml
new file mode 100644
index 0000000000..6296396aef
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/linuxemu/chapter.sgml
@@ -0,0 +1,1464 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Συμβατότητα με Εκτελέσιμα του Linux
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/linuxemu/chapter.sgml
+ %SRCID% 1.143
+
+-->
+
+<chapter id="linuxemu">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Αναδομήθηκε και μέρη του ανανεώθηκαν από τον </contrib>
+ </author>
+ <!-- 22 Mar 2000 -->
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Brian N.</firstname>
+ <surname>Handy</surname>
+ <contrib>Αρχική συνεισφορά από τον </contrib>
+ </author>
+ <author>
+ <firstname>Rich</firstname>
+ <surname>Murphey</surname>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Συμβατότητα με Εκτελέσιμα του Linux</title>
+
+ <sect1 id="linuxemu-synopsis">
+ <title>Σύνοψη</title>
+ <indexterm>
+ <primary>Συμβατότητα με εκτελέσιμα (binary) Linux</primary>
+ </indexterm>
+ <indexterm>
+ <primary>binary συμβατότητα</primary>
+ <secondary>Linux</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>συμβατότητα εκτελέσιμων Linux</primary>
+ </indexterm>
+ <indexterm>
+ <primary>συμβατότητα εκτελέσιμων</primary>
+ <secondary>Linux</secondary>
+ </indexterm>
+
+ <para>Το &os; παρέχει binary συμβατότητα (εκτελέσιμων) με αρκετά άλλα
+ λειτουργικά τύπου &unix;, συμπεριλαμβανομένου και του Linux. Σε αυτό
+ το σημείο, μπορεί να αναρωτιέστε γιατί ακριβώς χρειάζεται το &os; να
+ μπορεί να τρέξει εκτελέσιμα Linux; H απάντηση σε αυτή την ερώτηση είναι
+ αρκετά απλή. Πολλές εταιρίες και προγραμματιστές αναπτύσσουν εφαρμογές
+ μόνο για Linux, μια και είναι πολύ <quote>της μόδας</quote> στο
+ κόσμο των υπολογιστών. Αυτό αναγκάζει εμάς τους υπόλοιπους, που
+ χρησιμοποιούμε το &os;, να πιέζουμε τις ίδιες αυτές εταιρίες και
+ προγραμματιστές να δημιουργήσουν κανονικές εκδόσεις των εφαρμογών
+ τους για &os;. Το πρόβλημα είναι, ότι οι περισσότερες από αυτές τις
+ εταιρίες δεν αντιλαμβάνονται πραγματικά πόσοι περισσότεροι άνθρωποι θα
+ χρησιμοποιούσαν το προϊόν τους αν είχαν εκδόσεις και για &os;, και οι
+ περισσότερες συνεχίζουν να αναπτύσσουν μόνο για Linux. Άρα τι μπορεί να
+ κάνει ένας χρήστης του &os;; Εδώ έρχεται να βοηθήσει η binary
+ συμβατότητα του &os; με το Linux.</para>
+
+ <para>Εν συντομία, η συμβατότητα επιτρέπει στους χρήστες του &os; να
+ εκτελέσουν περίπου το 90% όλων των Linux εφαρμογών χωρίς μετατροπές.
+ Αυτό περιλαμβάνει εφαρμογές όπως
+ το <application>&staroffice;</application>, την Linux έκδοση
+ του <application>&netscape;</application>,
+ <application>&adobe;&nbsp;&acrobat;</application>,
+ <application><trademark class="registered">RealPlayer</trademark></application>,
+ <application><trademark>VMware</trademark></application>,
+ <application>&oracle;</application>,
+ <application><trademark class="registered">WordPerfect</trademark></application>,
+ <application>Doom</application>,
+ <application>Quake</application>, και περισσότερα. Έχει επίσης
+ αναφερθεί ότι σε κάποιες περιπτώσεις, τα εκτελέσιμα του Linux έχουν
+ καλύτερη απόδοση στο &os; από ότι στο Linux.</para>
+
+ <para>Υπάρχουν ωστόσο κάποια συγκεκριμένα για το Linux στοιχεία του
+ λειτουργικού που δεν υποστηρίζονται στο &os;. Τα εκτελέσιμα του Linux
+ δεν θα δουλέψουν στο &os; αν χρησιμοποιούν πολλές εξειδικευμένες
+ κλήσεις &i386;, όπως για παράδειγμα την ενεργοποίηση της εικονικής
+ κατάστασης 8086.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να ενεργοποιήσετε την συμβατότητα εκτελέσιμων με το Linux
+ στο σύστημα σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε πρόσθετες κοινόχρηστες βιβλιοθήκες του
+ Linux.</para>
+
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε εφαρμογές του Linux στο &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τις λεπτομέρειες της υλοποίησης της συμβατότητας με το Linux στο
+ &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να γνωρίζετε πως θα εγκαταστήσετε πρόσθετο λογισμικό
+ τρίτου κατασκευαστή (<xref linkend="ports">).</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect1>
+
+ <sect1 id="linuxemu-lbc-install">
+ <title>Εγκατάσταση</title>
+
+ <indexterm><primary>KLD (kernel loadable object)</primary></indexterm>
+
+ <para>Η συμβατότητα με εκτελέσιμα του Linux δεν είναι ενεργή εξ' αρχής. Ο
+ ευκολότερος τρόπος για να ενεργοποιήσετε αυτή τη λειτουργία είναι να
+ φορτώσετε το KLD (άρθρωμα) <literal>linux</literal> (<quote>Kernel
+ LoaDable object</quote>). Μπορείτε να φορτώσετε αυτό το άρθρωμα στον
+ πυρήνα δίνοντας τη παρακάτω εντολή ως <username>root</username>:</para>
+
+ <screen>&prompt.root; <userinput>kldload linux</userinput></screen>
+
+ <para>Αν θέλετε να έχετε πάντα ενεργοποιημένη τη συμβατότητα με Linux,
+ τότε θα χρειαστεί να προσθέσετε τη παρακάτω γραμμή στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>linux_enable="YES"</programlisting>
+
+ <para>Η εντολή &man.kldstat.8; μπορεί να χρησιμοποιηθεί για να ελεγχθεί
+ αν το KLD είναι φορτωμένο:</para>
+
+ <screen>&prompt.user; <userinput>kldstat</userinput>
+Id Refs Address Size Name
+ 1 2 0xc0100000 16bdb8 kernel
+ 7 1 0xc24db000 d000 linux.ko</screen>
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>COMPAT_LINUX</secondary>
+ </indexterm>
+
+ <para>Αν για κάποιο λόγο δεν θέλετε ή δε μπορείτε να φορτώσετε το KLD,
+ τότε μπορείτε να συνδέσετε στατικά την υποστήριξη εκτελέσιμων του Linux
+ στον πυρήνα με το να προσθέσετε την επιλογή <literal>options
+ COMPAT_LINUX</literal> στο αρχείων ρυθμίσεων του πυρήνα. Στη συνέχεια
+ μπορείτε να εγκαταστήσετε τον νέο πυρήνα όπως περιγράφεται στο
+ <xref linkend="kernelconfig">.</para>
+
+ <sect2>
+ <title>Εγκατάσταση των Linux Runtime Libraries</title>
+ <indexterm>
+ <primary>Linux</primary>
+ <secondary>εγκατάσταση βιβλιοθηκών Linux</secondary>
+ </indexterm>
+
+ <para>Αυτό μπορεί να γίνει με δύο τρόπους. Είτε με τη χρήση του
+ <link linkend="linuxemu-libs-port">linux_base-fc4</link> port, ή
+ με <link linkend="linuxemu-libs-manually">χειροκίνητη</link>
+ εγκατάσταση τους.</para>
+
+ <sect3 id="linuxemu-libs-port">
+ <title>Εγκατάσταση μέσω του linux_base Port</title>
+ <indexterm><primary>Ports Collection</primary></indexterm>
+
+ <para>Αυτός είναι κατά γενική ομολογία ο ευκολότερος τρόπος για την
+ εγκατάσταση των runtime libraries. Είναι η ίδια διαδικασία
+ εγκατάστασης που ακολουθείται και για οποιοδήποτε άλλο port από
+ τη <ulink type="html" url="file://localhost/usr/ports/">Συλλογή των
+ Ports</ulink>. Απλά κάντε το παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/emulators/linux_base-f10</userinput>
+&prompt.root; <userinput>make install distclean</userinput></screen>
+
+ <note>
+ <para>Αν χρησιμοποιείτε κάποια έκδοση του &os; πριν την 8.0, θα
+ πρέπει να εγκαταστήσετε το port <filename
+ role="package">emulators/linux_base-fc4</filename>
+ αντί για το <filename
+ role="package">emulators/linux_base-f10</filename>.</para>
+ </note>
+
+ <para>Θα πρέπει τώρα να έχετε κανονική συμβατότητα με εκτελέσιμα του
+ Linux. Μερικά προγράμματα παραπονιούνται ότι οι βιβλιοθήκες
+ συστήματος (system libraries) δεν είναι στη τελευταία τους έκδοση.
+ Γενικά όμως, αυτό δεν αποτελεί κανένα πρόβλημα.</para>
+
+ <note><para>Μπορούν να υπάρχουν πολλαπλές εκδόσεις
+ του <filename role="package">emulators/linux_base</filename>, που να
+ αντιστοιχούν στις διαφορετικές εκδόσεις των διανομών Linux. Θα
+ πρέπει να κάνετε εγκατάσταση των ports που προαπαιτούνται από τις
+ εφαρμογές Linux τις οποίες θέλετε να εγκαταστήσετε.</para></note>
+
+ </sect3>
+
+ <sect3 id="linuxemu-libs-manually">
+ <title>Χειροκίνητη εγκατάσταση των Libraries</title>
+
+ <para>Αν δεν έχετε εγκαταστήσει την συλλογή των <quote>ports</quote>,
+ μπορείτε να εγκαταστήσετε τις βιβλιοθήκες χειροκίνητα. Θα
+ χρειαστείτε τα Linux shared libraries τα οποία απαιτεί το πρόγραμμα.
+ Επίσης, θα χρειαστεί να δημιουργήσετε και έναν κατάλογο
+ <quote>shadow root</quote>, <filename>/compat/linux</filename>, για
+ τις βιβλιοθήκες Linux που θα υπάρχουν στο &os;. Οποιαδήποτε κοινές
+ βιβλιοθήκες (shared libraries) οι οποίες χρησιμοποιούνται από
+ εφαρμογές Linux και εκτελούνται στο &os; θα κοιτάξουν πρώτα σε
+ αυτόν τον κατάλογο. Επομένως, αν μια εφαρμογή Linux φορτώσει για
+ παράδειγμα το <filename>/lib/libc.so</filename>, το &os; θα
+ προσπαθήσει να φορτώσει πρώτα το
+ <filename>/compat/linux/lib/libc.so</filename>,
+ και αν αυτό δεν υπάρχει, τότε θα προσπαθήσει να φορτώσει
+ το <filename>/lib/libc.so</filename>. Τα shared libraries θα πρέπει
+ να εγκατασταθούν στο shadow
+ tree <filename>/compat/linux/lib</filename> αντί για τις τοποθεσίες
+ που αναφέρει το <command>ld.so</command> στο Linux.</para>
+
+ <para>Γενικά, τουλάχιστον στις πρώτες σας εγκαταστάσεις εφαρμογών
+ Linux, θα χρειαστεί να ψάξετε για τις κοινές βιβλιοθήκες από τα
+ αντίστοιχα εκτελέσιμα. Μετά από κάποιο διάστημα θα έχετε ένα
+ ικανοποιητικό αριθμό Linux shared libraries στο σύστημά σας και
+ πλέον δε θα χρειάζεται επιπλέον εργασία πέρα από την εγκατάσταση της
+ εφαρμογής.</para>
+ </sect3>
+
+ <sect3>
+ <title>Εγκατάσταση Πρόσθετων Shared Libraries</title>
+ <indexterm><primary>shared libraries</primary></indexterm>
+
+ <para>Και τι γίνεται στη περίπτωση που έχετε εγκαταστήσει
+ το <filename>linux_base</filename> port και οι εφαρμογές σας ακόμη
+ παραπονιούνται για shared libraries που λείπουν; Πώς μπορείτε να
+ ξέρετε ποια shared libraries χρειάζεται κάποια εφαρμογή, και που
+ μπορείτε να τα βρείτε; Βασικά, υπάρχουν 2 επιλογές (για να
+ ακολουθήσετε τις παρακάτω οδηγίες θα πρέπει να είστε
+ <username>root</username> στο σύστημά σας).</para>
+
+ <para>Αν έχετε πρόσβαση σε κάποιο μηχάνημα Linux, ρίξτε μια ματιά στα
+ shared libraries που χρειάζεται μια εφαρμογή, και αντιγράψτε τα στο
+ &os;. Δείτε το παρακάτω παράδειγμα:</para>
+
+ <informalexample>
+ <para>Ας υποθέσουμε ότι κατεβάσατε μέσω FTP το εκτελέσιμο του
+ <application>Doom</application> για το Linux, και το βάλατε
+ στο Linux σύστημα στο οποίο έχετε πρόσβαση. Μπορείτε στη
+ συνέχεια να ελέγξετε ποια shared libraries χρειάζεται η εφαρμογή
+ με την εντολή <command>ldd linuxdoom</command>, όπως:</para>
+
+ <screen>&prompt.user; <userinput>ldd linuxdoom</userinput>
+libXt.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libXt.so.3.1.0
+libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
+libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
+
+ <indexterm><primary>symbolic links</primary></indexterm>
+ <para>Θα χρειαστεί να πάρετε όλα τα αρχεία από τη τελευταία στήλη,
+ και να τα αντιγράψετε στον
+ κατάλογο <filename>/compat/linux</filename>, και να δημιουργήσετε
+ προς αυτά τους αντίστοιχους συμβολικούς δεσμούς (symbolic links)
+ με τα ονόματα της πρώτης στήλης. Αυτό σημαίνει ότι πρακτικά,
+ θα έχετε αυτά τα αρχεία στο σύστημα σας:</para>
+
+ <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
+/compat/linux/usr/X11/lib/libXt.so.3 -&gt; libXt.so.3.1.0
+/compat/linux/usr/X11/lib/libX11.so.3.1.0
+/compat/linux/usr/X11/lib/libX11.so.3 -&gt; libX11.so.3.1.0
+/compat/linux/lib/libc.so.4.6.29
+/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
+
+ <blockquote>
+ <note>
+ <para>Σημειώστε ότι αν έχετε ήδη κάποιο Linux shared library
+ που ο αριθμός έκδοσης είναι ο ίδιος με αυτόν της πρώτης στήλης
+ του <command>ldd</command>, δε θα χρειαστεί να αντιγράψετε το
+ αρχείο όπως αυτό ονομάζεται στη τελευταία στήλη, τα υπάρχοντα
+ αρχεία θα πρέπει να κάνουν τη δουλειά τους. Σας συμβουλεύουμε
+ όμως να αντιγράψετε το shared library αν είναι κάποια νεότερη
+ έκδοση. Μπορείτε να διαγράψετε τα παλιά αρχεία, αρκεί όμως να
+ ανανεώσετε τους συμβολικούς δεσμούς ώστε να οδηγούν στα νέα
+ αρχεία. Επομένως, αν έχετε τις παρακάτω βιβλιοθήκες στο
+ σύστημά σας:</para>
+
+ <screen>/compat/linux/lib/libc.so.4.6.27
+/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.27</screen>
+
+ <para>και βρείτε μια εφαρμογή η οποία ζητάει μια νεότερη έκδοση
+ μέσω του <command>ldd</command>:
+ </para>
+
+ <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
+
+ <para>Αν η διαφορά της έκδοσης στο τελευταία ψηφίο είναι μόνο
+ μίας ή δύο εκδόσεων, τότε μην σας απασχολεί η αντιγραφή του
+ <filename>/lib/libc.so.4.6.29</filename>, γιατί το πρόγραμμα
+ θα πρέπει να τρέχει κανονικά και με τη λίγο παλαιότερη έκδοση.
+ Παρ' όλα αυτά, αν θέλετε, μπορείτε να αντικαταστήσετε το
+ <filename>libc.so</filename> και έτσι θα έχετε το παρακάτω:
+ </para>
+
+ <screen>/compat/linux/lib/libc.so.4.6.29
+/compat/linux/lib/libc.so.4 -&gt; libc.so.4.6.29</screen>
+ </note>
+ </blockquote>
+
+ <blockquote>
+ <note>
+ <para>Ο μηχανισμός των συμβολικών συνδέσμων χρειάζεται
+ <emphasis>μόνο</emphasis> για τις εφαρμογές του Linux. Ο
+ runtime linker του &os; κοιτάει μόνος του για τις πιο
+ πρόσφατες εκδόσεις των βιβλιοθηκών και έτσι δε χρειάζεται να
+ σας απασχολεί.
+ </para>
+ </note>
+ </blockquote>
+ </informalexample>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Εγκατάσταση των Linux ELF Binaries</title>
+ <indexterm>
+ <primary>Linux</primary>
+ <secondary>ELF binaries</secondary>
+ </indexterm>
+
+ <para>Τα ELF binaries χρειάζονται μερικές φορές ένα ακόμα βήμα, το
+ <quote>branding</quote>. Αν προσπαθήσετε να τρέξετε ένα
+ εκτελέσιμο ELF χωρίς branding, τότε θα σας εμφανιστεί το παρακάτω
+ σφάλμα:</para>
+
+ <screen>&prompt.user; <userinput>./my-linux-elf-binary</userinput>
+ELF binary type not known
+Abort</screen>
+
+ <para>Για να βοηθήσετε τον πυρήνα του &os; να ξεχωρίσει ένα ELF του
+ &os; από ένα του Linux, χρησιμοποιήστε την εντολή &man.brandelf.1;.
+ </para>
+
+ <screen>&prompt.user; <userinput>brandelf -t Linux my-linux-elf-binary</userinput></screen>
+
+ <indexterm><primary>GNU toolchain</primary></indexterm>
+ <para>To GNU toolchain, ομάδα πρόγραμμα GNU, τοποθετεί πλέον αυτόματα τα
+ κατάλληλα χαρακτηριστικά στα εκτελέσιμα ELF, επομένως το παραπάνω βήμα
+ θα χρειάζεται όλο και λιγότερο στο μέλλον.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Εγκατάσταση μιας Τυχαίας Linux RPM Εφαρμογής</title>
+
+ <para>Το &os; διαθέτει την δική του βάση δεδομένων για τα πακέτα,
+ η οποία χρησιμοποιείται για όλα τα ports (και για αυτά που
+ προέρχονται από το &linux;). Για το λόγο αυτό, η βάση δεδομένων
+ &linux; RPM δεν χρησιμοποιείται (δεν υποστηρίζεται).</para>
+
+ <para>Αν ωστόσο χρειάζεται να εγκαταστήσετε μια οποιαδήποτε εφαρμογή
+ του &linux; που βασίζεται σε πακέτο RPM, μπορείτε να το επιτύχετε
+ με τον παρακάτω τρόπο:</para>
+
+ <screen>&prompt.root; <userinput>cd /compat/linux</userinput>
+&prompt.root; <userinput>rpm2cpio -q &lt; /path/to/linux.archive.rpm | cpio -id</userinput></screen>
+
+ <para>Χρησιμοποιήστε την &man.brandelf.1; για να τυποποιήσετε
+ κατάλληλα τα εκτελέσιμα (όχι τις βιβλιοθήκες!) ως εφαρμογές &linux;.
+ Δεν θα μπορείτε να απεγκαταστήσετε τις εφαρμογές με καθαρό τρόπο,
+ αλλά θα μπορέσετε να κάνετε τις δοκιμές που επιθυμείτε.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του Hostname Resolver</title>
+
+ <para>Αν το DNS δε δουλεύει ή αν σας εμφανίζεται το παρακάτω
+ σφάλμα:</para>
+
+ <screen>resolv+: "bind" is an invalid keyword resolv+:
+"hosts" is an invalid keyword</screen>
+
+ <para>Θα χρειαστεί να ρυθμίσετε
+ το <filename>/compat/linux/etc/host.conf</filename> ώστε να περιέχει:
+ </para>
+
+ <programlisting>order hosts, bind
+multi on</programlisting>
+
+ <para>Η σειρά εδώ δηλώνει ότι αρχικά ελέγχεται το
+ αρχείο <filename>/etc/hosts</filename> και στη συνέχεια ο DNS server.
+ Όταν το <filename>/compat/linux/etc/host.conf</filename> δεν είναι
+ διαθέσιμο, οι εφαρμογές Linux χρησιμοποιούν το
+ <filename>/etc/host.conf</filename> του &os; και παραπονιούνται ότι
+ η σύνταξη του αρχείου δεν είναι σωστή. Θα πρέπει να αφαιρέσετε
+ την αναφορά στο <literal>bind</literal> αν δεν έχετε ρυθμίσει ένα
+ name server μέσω του <filename>/etc/resolv.conf</filename>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="linuxemu-mathematica">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Boris</firstname>
+ <surname>Hollas</surname>
+ <contrib>Ανανεώθηκε για το Mathematica 5.X από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Εγκαθιστώντας το &mathematica;</title>
+
+ <indexterm>
+ <primary>applications</primary>
+ <secondary><application>Mathematica</application></secondary>
+ </indexterm>
+
+ <para>Το κείμενο αυτό περιγράφει τη διαδικασία εγκατάστασης της έκδοσης
+ Linux του <application>&mathematica; 5.X</application> σε ένα
+ σύστημα &os;.</para>
+
+ <para>Μπορείτε να αγοράσετε την κανονική ή μαθητική έκδοση του
+ <application>&mathematica;</application> για Linux, απευθείας από τη
+ Wolfram στο <ulink url="http://www.wolfram.com/"></ulink>.</para>
+
+ <sect2>
+ <title>Το Πρόγραμμα Εγκατάστασης του &mathematica;</title>
+
+ <para>Αρχικά, θα πρέπει να πείτε στο &os; ότι τα εκτελέσιμα για Linux
+ του <application>&mathematica;</application> κάνουν χρήση του Linux
+ ABI. Ο ευκολότερος τρόπος για να το κάνετε αυτό είναι να ορίσετε τον
+ τύπο του ELF ως Linux σε όλες τις εφαρμογές που δεν είναι ήδη
+ branded, κάνοντας χρήση της εντολής:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.fallback_elf_brand=3</userinput></screen>
+
+ <para>Αυτό θα κάνει το &os; να υποθέσει ότι τα εκτελέσιμα ELF που δεν
+ είναι branded, κάνουν χρήση του Linux ABI και έτσι θα μπορείτε να
+ τρέξετε το πρόγραμμα της εγκατάστασης απευθείας από το CDROM.</para>
+
+ <para>Τώρα, αντιγράψτε το αρχείο <filename>MathInstaller</filename>
+ στον σκληρό σας δίσκο:</para>
+
+ <screen>&prompt.root; <userinput>mount /cdrom</userinput>
+&prompt.root; <userinput>cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/</userinput></screen>
+
+ <para>Ανοίξτε το αρχείο και αντικαταστήστε το <literal>/bin/sh</literal>
+ στη πρώτη γραμμή με το <literal>/compat/linux/bin/sh</literal>. Αυτό
+ θα σιγουρέψει ότι το πρόγραμμα εγκατάστασης θα τρέχει με την έκδοση
+ &man.sh.1; για Linux. Στη συνέχεια, αντικαταστήστε όλες τις εγγραφές
+ <literal>Linux)</literal> με <literal>&os;)</literal> χρησιμοποιώντας
+ έναν συντάκτη κειμένου ή με το παρακάτω script στην επόμενη ενότητα.
+ Αυτό θα πει στο πρόγραμμα εγκατάστασης του
+ <application>&mathematica;</application>,
+ το οποίο τρέχει την εντολή <command>uname -s</command> για να
+ διαπιστώσει το λειτουργικό σύστημα,
+ να αντιμετωπίσει το &os; σαν ένα λειτουργικό παρεμφερές με το Linux.
+ Η εκτέλεση του <command>MathInstaller</command> θα ξεκινήσει τώρα την
+ εγκατάσταση του <application>&mathematica;</application>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Τροποποιώντας τα Εκτελέσιμα του &mathematica;</title>
+
+ <para>Τα shell scripts τα οποία δημιουργεί
+ το <application>&mathematica;</application> κατά τη διαδικασία της
+ εγκατάστασης πρέπει να τροποποιηθούν πριν χρησιμοποιηθούν. Αν
+ επιλέξετε το <filename class="directory">/usr/local/bin</filename> ως
+ τον κατάλογο για τα εκτελέσιμα του
+ <application>&mathematica;</application>, θα βρείτε εκεί
+ συμβολικούς δεσμούς (symlinks) προς τα αρχεία
+ <filename>math</filename>, <filename>mathematica</filename>,
+ <filename>Mathematica</filename>, και
+ <filename>MathKernel</filename>. Σε κάθε περίπτωση από τις παραπάνω,
+ αντικαταστήστε τις εγγραφές
+ <literal>Linux)</literal> με <literal>&os;)</literal> με κάποιον
+ συντάκτη κειμένου ή με το παρακάτω shell script:</para>
+
+ <programlisting>#!/bin/sh
+cd /usr/local/bin
+for i in math mathematica Mathematica MathKernel
+ do sed 's/Linux)/&os;)/g' $i &gt; $i.tmp
+ sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp &gt; $i
+ rm $i.tmp
+ chmod a+x $i
+done</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Αποκτώντας Κωδικό για το &mathematica;</title>
+
+ <indexterm>
+ <primary>Ethernet</primary>
+ <secondary>MAC address</secondary>
+ </indexterm>
+
+ <para>Όταν εκκινήσετε το <application>&mathematica;</application> για
+ πρώτη φορά, θα ερωτηθείτε για έναν κωδικό. Αν δεν έχετε κάποιον
+ κωδικό σε αυτό το στάδιο, τρέξτε το πρόγραμμα
+ <command>mathinfo</command> που βρίσκεται στον κατάλογο εγκατάστασης
+ για να σας δοθεί το <quote>machine ID</quote>. Το "machine ID" είναι
+ εξ' ολοκλήρου βασισμένο στη διεύθυνση MAC της κάρτας δικτύου που
+ έχετε. Αυτό σημαίνει ότι δεν μπορείτε να τρέξετε το
+ <application>&mathematica;</application> σε άλλους υπολογιστές.
+ </para>
+
+ <para>Όταν εγγραφείτε στη Wolfram, με e-mail, τηλέφωνο ή fax, θα
+ χρειαστεί να δώσετε το <quote>machine ID</quote> και θα σας απαντήσουν
+ με έναν αντίστοιχο κωδικό που θα αποτελείται από μια σειρά αριθμών.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Τρέχοντας το &mathematica; Frontend μέσω Δικτύου</title>
+
+ <para>Το <application>&mathematica;</application> κάνει χρήση κάποιων
+ ειδικών γραμματοσειρών για να εμφανίσει χαρακτήρες οι οποίοι δεν
+ υπάρχουν στα συνηθισμένα σετ (ολοκληρώματα, αθροίσματα, Ελληνικά
+ γράμματα, κλπ). To πρωτόκολλο X απαιτεί αυτές οι
+ γραμματοσειρές να υπάρχουν στο <emphasis>τοπικό</emphasis> σύστημα.
+ Αυτό σημαίνει ότι θα χρειαστεί να αντιγράψετε τις γραμματοσειρές αυτές
+ από το CDROM ή από από κάποιον άλλον υπολογιστή που έχει
+ το <application>&mathematica;</application>. Συνήθως αυτές οι
+ γραμματοσειρές μπορούν να βρεθούν μέσα στο κατάλογο
+ <filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename> του
+ CDROM, ή στον κατάλογο
+ <filename>/usr/local/mathematica/SystemFiles/Fonts</filename> στον
+ τοπικό σκληρό δίσκο. Οι πραγματικές γραμματοσειρές βρίσκονται σε
+ υποκαταλόγους όπως <filename>Type1</filename> και
+ <filename>X</filename>. Υπάρχουν αρκετοί τρόποι
+ να τις χρησιμοποιήσετε, οι οποίοι περιγράφονται στη συνέχεια.</para>
+
+ <para>Ο πρώτος τρόπος είναι να τις αντιγράψετε μέσα σε έναν υπάρχοντα
+ κατάλογο στο <filename>/usr/X11R6/lib/X11/fonts</filename>. Θα
+ χρειαστεί όμως να τροποποιήσετε το
+ αρχείο <filename>fonts.dir</filename>, ώστε να προσθέσετε τα ονόματα
+ των γραμματοσειρών μέσα σε αυτό, και να αλλάξετε τον αριθμό των
+ γραμματοσειρών στη πρώτη γραμμή. Εναλλακτικά, είναι συνήθως αρκετό
+ να εκτελέσετε απλώς την εντολή &man.mkfontdir.1; μέσα στον κατάλογο
+ που έχετε αντιγράψει τις γραμματοσειρές.
+ </para>
+
+ <para>Ο δεύτερος τρόπος είναι να αντιγράψετε τους παραπάνω καταλόγους
+ μέσα στο <filename>/usr/X11R6/lib/X11/fonts</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput>
+&prompt.root; <userinput>mkdir X</userinput>
+&prompt.root; <userinput>mkdir MathType1</userinput>
+&prompt.root; <userinput>cd /cdrom/Unix/Files/SystemFiles/Fonts</userinput>
+&prompt.root; <userinput>cp X/* /usr/X11R6/lib/X11/fonts/X</userinput>
+&prompt.root; <userinput>cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1</userinput>
+&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/X</userinput>
+&prompt.root; <userinput>mkfontdir</userinput>
+&prompt.root; <userinput>cd ../MathType1</userinput>
+&prompt.root; <userinput>mkfontdir</userinput></screen>
+
+ <para>Τώρα προσθέστε τους νέους καταλόγους με τις γραμματοσειρές στο
+ font path:</para>
+
+ <screen>&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/X</userinput>
+&prompt.root; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/MathType1</userinput>
+&prompt.root; <userinput>xset fp rehash</userinput></screen>
+
+ <para>Αν χρησιμοποιείτε το <application>&xorg;</application>, μπορείτε
+ να φορτώνετε τις γραμματοσειρές αυτές αυτόματα, προσθέτοντας τους
+ νέους καταλόγους στο αρχείο <filename>xorg.conf</filename>.
+ </para>
+
+ <indexterm><primary>fonts</primary></indexterm>
+
+ <para>Αν <emphasis>δεν</emphasis> έχετε ήδη έναν κατάλογο με το
+ όνομα <filename>/usr/X11R6/lib/X11/fonts/Type1</filename>, μπορείτε να
+ αλλάξετε το όνομα του <filename>MathType1</filename> από το παραπάνω
+ παράδειγμα σε <filename>Type1</filename>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="linuxemu-maple">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Aaron</firstname>
+ <surname>Kaplan</surname>
+<!-- <address><email>aaron@lo-res.org</email></address> -->
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Robert</firstname>
+ <surname>Getschmann</surname>
+<!-- <address><email>rob@getschmann.org</email></address> -->
+ <contrib>Ευχαριστίες στον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Εγκαθιστώντας το &maple;</title>
+
+ <indexterm>
+ <primary>applications</primary>
+ <secondary><application>Maple</application></secondary>
+ </indexterm>
+
+ <para>Το <application>&maple;</application> είναι μία εμπορική εφαρμογή
+ μαθηματικών παρόμοια με το <application>&mathematica;</application>. Θα
+ πρέπει να αγοράσετε το λογισμικό από
+ το <ulink url="http://www.maplesoft.com/"></ulink> και στη συνέχεια να
+ κάνετε αίτηση για μια άδεια χρήσης. Για να εγκαταστήσετε το λογισμικό
+ στο &os;, ακολουθήστε τα παρακάτω απλά βήματα.
+ </para>
+
+ <procedure>
+ <step>
+ <para>Εκτελέστε το <filename>INSTALL</filename> shell script από το
+ μέσο εγκατάστασης που έχετε. Επιλέξτε <quote>RedHat</quote> όταν
+ ερωτηθείτε από το πρόγραμμα εγκατάστασης. Ο τυπικός κατάλογος
+ είναι ο <filename class="directory">/usr/local/maple</filename>.
+ </para>
+ </step>
+
+ <step>
+ <para>Αν δεν έχετε αγοράσει ακόμη κάποια άδεια για
+ το <application>&maple;</application>, αγοράστε μία από το
+ Maple Waterloo Software
+ (<ulink url="http://register.maplesoft.com/"></ulink>) και
+ αντιγράψτε το αρχείο που θα σας δοθεί
+ στο <filename>/usr/local/maple/license/license.dat</filename>.
+ </para>
+ </step>
+
+ <step>
+ <para>Εγκαταστήσετε το <application>FLEXlm</application> license
+ manager εκτελώντας το <filename>INSTALL_LIC</filename> shell
+ script το οποία παρέχεται μαζί με
+ το <application>&maple;</application>. Δώστε το βασικό όνομα του
+ υπολογιστή σας το οποίο απαιτείται από τον
+ εξυπηρετητή διαχείρισης των αδειών (license server).</para>
+ </step>
+
+ <step>
+ <para>Χρησιμοποιήστε το παρακάτω patch στο αρχείο
+ <filename>/usr/local/maple/bin/maple.system.type</filename>:
+ </para>
+
+<programlisting> ----- snip ------------------
+*** maple.system.type.orig Sun Jul 8 16:35:33 2001
+--- maple.system.type Sun Jul 8 16:35:51 2001
+***************
+*** 72,77 ****
+--- 72,78 ----
+ # the IBM RS/6000 AIX case
+ MAPLE_BIN="bin.IBM_RISC_UNIX"
+ ;;
++ "FreeBSD"|\
+ "Linux")
+ # the Linux/x86 case
+ # We have two Linux implementations, one for Red Hat and
+ ----- snip end of patch -----</programlisting>
+
+ <para>Σημειώστε ότι μετά το <literal>"FreeBSD"|\</literal>
+ δεν πρέπει να εμφανίζεται άλλο κενό διάστημα.</para>
+
+ <para>Το patch αυτό οδηγεί το <application>&maple;</application> να
+ αναγνωρίσει το <quote>&os;</quote> σαν ένα σύστημα Linux.
+ Το <filename>bin/maple</filename> shell script καλεί το
+ <filename>bin/maple.system.type</filename> shell script, το οποίο με
+ τη σειρά του καλεί την εντολή <command>uname -a</command>
+ προκειμένου να εντοπιστεί το όνομα του λειτουργικού
+ συστήματος. Αναλόγως με το ποιο λειτουργικό βρεθεί, θα
+ χρησιμοποιηθούν και τα αντίστοιχα εκτελέσιμα αρχεία.</para>
+ </step>
+
+ <step>
+ <para>Εκκινήστε τον license server.</para>
+
+ <para>Ένας βολικός τρόπος για να εκκινήσετε το<command>lmgrd</command>
+ είναι το ακόλουθο script που βρίσκεται στο
+ <filename>/usr/local/etc/rc.d/lmgrd.sh</filename>:</para>
+
+ <programlisting> ----- snip ------------
+
+#! /bin/sh
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
+PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
+export PATH
+
+LICENSE_FILE=/usr/local/maple/license/license.dat
+LOG=/var/log/lmgrd.log
+
+case "$1" in
+start)
+ lmgrd -c ${LICENSE_FILE} 2&gt;&gt; ${LOG} 1&gt;&2
+ echo -n " lmgrd"
+ ;;
+stop)
+ lmgrd -c ${LICENSE_FILE} -x lmdown 2&gt;&gt; ${LOG} 1&gt;&2
+ ;;
+*)
+ echo "Usage: `basename $0` {start|stop}" 1&gt;&2
+ exit 64
+ ;;
+esac
+
+exit 0
+ ----- snip ------------</programlisting></step>
+
+
+ <step>
+ <para>Δοκιμή του <application>&maple;</application>:</para>
+
+ <screen>&prompt.user; <userinput>cd /usr/local/maple/bin</userinput>
+&prompt.user; <userinput>./xmaple</userinput></screen>
+
+ <para>Σε αυτό το σημείο θα πρέπει να είναι όλα έτοιμα και να μην έχετε
+ κανένα πρόβλημα. Μην ξεχάσετε όμως να στείλετε ένα e-mail στη
+ Maplesoft και να τους πείτε ότι θέλετε μια έκδοση που να
+ υποστηρίζεται επίσημα στο &os;.</para>
+ </step>
+ </procedure>
+
+ <sect2>
+ <title>Συνηθισμένα Προβλήματα</title>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ίσως δυσκολευτείτε με την λειτουργία του
+ <application>FLEXlm</application> license manager. Επιπλέον
+ τεκμηρίωση μπορείτε να βρείτε
+ στο <ulink url="http://www.globetrotter.com/"></ulink>.
+ </para></listitem>
+
+ <listitem>
+ <para>Το <command>lmgrd</command> είναι γνωστό ότι θέλει το αρχείο
+ της άδειας να έχει συγκεκριμένη μορφή αλλιώς η εκτέλεση του θα
+ αποτύχει. Ένα σωστό αρχείο άδειας χρήσης πρέπει είναι σε γενικές
+ γραμμές όπως το παρακάτω:</para>
+
+<programlisting># =======================================================
+# License File for UNIX Installations ("Pointer File")
+# =======================================================
+SERVER chillig ANY
+#USE_SERVER
+VENDOR maplelmg
+
+FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
+ PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
+ ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
+ SN=XXXXXXXXX</programlisting>
+
+ <note>
+ <para>Ο σειριακός αριθμός και το κλειδί φαίνονται εδώ με
+ 'X'. Το <hostid>chillig</hostid> είναι το όνομα του
+ συστήματος.</para>
+ </note>
+
+ <para>Μπορείτε να τροποποιήσετε το αρχείο της άδειας χρήσης, αρκεί
+ να μην αλλάξετε την γραμμή <quote>FEATURE</quote> (η οποία
+ προστατεύεται από το κλειδί της άδειας).</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="linuxemu-matlab">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Dan</firstname>
+ <surname>Pelleg</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ <!-- daniel+handbook@pelleg.org -->
+ </authorgroup>
+ </sect1info>
+ <title>Εγκαθιστώντας το &matlab;</title>
+
+ <indexterm>
+ <primary>applications</primary>
+ <secondary><application>MATLAB</application></secondary>
+ </indexterm>
+
+ <para>Το κείμενο αυτό περιγράφει τη διαδικασία εγκατάστασης της Linux
+ έκδοσης του <application>&matlab; 6.5</application> σε ένα σύστημα &os;.
+ Δουλεύει αρκετά καλά, με εξαίρεση
+ το <application>&java.virtual.machine;</application> (δείτε στο
+ <xref linkend="matlab-jre">).</para>
+
+ <para>Η Linux έκδοση του <application>&matlab;</application> μπορεί να
+ αγοραστεί απευθείας από την εταιρεία The MathWorks
+ στο <ulink url="http://www.mathworks.com"></ulink>. Σιγουρευτείτε ότι
+ πήρατε και το αρχείο που περιέχει την άδεια χρήσης ή οδηγίες για το πως
+ να το δημιουργήσετε. Μια και θα επικοινωνήσετε με την εταιρεία, πείτε
+ τους ότι θα θέλατε να υπάρχει επίσης υποστήριξη για το &os;.
+ </para>
+
+ <sect2>
+ <title>Εγκατάσταση του &matlab;</title>
+
+ <para>Για να εγκαταστήσετε το <application>&matlab;</application>, κάντε
+ τα παρακάτω:</para>
+
+ <procedure>
+ <step>
+ <para>Εισάγετε το CD και προσαρτήστε το στο σύστημα σας. Συνδεθείτε
+ ως χρήστης <username>root</username>, όπως συνιστά το script της
+ εγκατάστασης. Για να ξεκινήσετε το script της εγκατάστασης δώστε
+ την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>/compat/linux/bin/sh /cdrom/install</userinput></screen>
+
+ <tip>
+ <para>Το πρόγραμμα της εγκατάστασης είναι σε γραφικό
+ περιβάλλον. Αν λαμβάνετε σφάλματα σχετικά με την οθόνη, δώστε
+ την εντολή: <command>setenv HOME ~<replaceable>USER</replaceable></command>,
+ όπου <replaceable>USER</replaceable> είναι ο χρήστης από όπου
+ δώσατε την εντολή &man.su.1;.</para>
+ </tip>
+ </step>
+
+ <step>
+ <para>
+ Όταν ερωτηθείτε για τον κατάλογο
+ του <application>&matlab;</application>, δώστε:
+ <userinput>/compat/linux/usr/local/matlab</userinput>.</para>
+
+ <tip>
+ <para>Για ευκολότερη διαδικασία εγκατάστασης, ορίστε το παρακάτω:
+ <command>set MATLAB=/compat/linux/usr/local/matlab</command>
+ στη γραμμή εντολών του κελύφους σας.</para>
+ </tip>
+ </step>
+
+ <step>
+ <para>Τροποποιήσετε το αρχείο της άδειας (license file) σύμφωνα με
+ τις οδηγίες που λάβατε με την άδεια
+ του <application>&matlab;</application>.</para>
+
+ <tip>
+ <para>Μπορείτε να ετοιμάσετε εκ των προτέρων το αρχείο αυτό και να
+ το αντιγράψετε στο <filename>$MATLAB/license.dat</filename>,
+ πριν καν σας πει το πρόγραμμα εγκατάστασης να το
+ τροποποιήσετε.</para>
+ </tip>
+ </step>
+
+ <step>
+ <para>Ολοκλήρωση της Εγκατάστασης</para>
+ </step>
+ </procedure>
+
+ <para>Σε αυτό το σημείο, η εγκατάσταση
+ του <application>&matlab;</application> έχει ολοκληρωθεί. Τα επόμενα
+ βήματα χρειάζονται για να μπορέσετε να το δουλέψετε σωστά με το
+ &os;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Εκκίνηση του License Manager</title>
+ <procedure>
+ <step>
+ <para>Δημιουργία συμβολικών συνδέσμων για τα scripts του license
+ manager:</para>
+
+ <screen>&prompt.root; <userinput>ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW</userinput>
+&prompt.root; <userinput>ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW</userinput></screen>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε το αρχείο
+ εκκίνησης <filename>/usr/local/etc/rc.d/flexlm.sh</filename>. Το
+ παράδειγμα παρακάτω είναι μια τροποποιημένη έκδοση του
+ <filename>$MATLAB/etc/rc.lm.glnx86</filename>. Οι αλλαγές
+ είναι στις τοποθεσίες των αρχείων, και στην εκκίνηση του license
+ manager στο περιβάλλον εξομοίωσης Linux του &os; .</para>
+
+ <programlisting>#!/bin/sh
+case "$1" in
+ start)
+ if [ -f /usr/local/etc/lmboot_TMW ]; then
+ /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u <replaceable>username</replaceable> &amp;&amp; echo 'MATLAB_lmgrd'
+ fi
+ ;;
+ stop)
+ if [ -f /usr/local/etc/lmdown_TMW ]; then
+ /compat/linux/bin/sh /usr/local/etc/lmdown_TMW &gt; /dev/null 2&gt;&amp;1
+ fi
+ ;;
+ *)
+ echo "Usage: $0 {start|stop}"
+ exit 1
+ ;;
+esac
+
+exit 0</programlisting>
+
+ <important>
+ <para>Το αρχείο πρέπει να είναι εκτελέσιμο:</para>
+
+ <screen>&prompt.root; <userinput>chmod +x /usr/local/etc/rc.d/flexlm.sh</userinput></screen>
+
+ <para>Πρέπει επίσης να αντικαταστήσετε το παραπάνω
+ <replaceable>username</replaceable> με ένα υπαρκτό όνομα
+ χρήστη του συστήματος σας (και να μην είναι ο
+ <username>root</username>).</para>
+ </important>
+ </step>
+
+ <step>
+ <para>Εκκινήστε τον license manager με την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/flexlm.sh start</userinput></screen>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2 id="matlab-jre">
+ <title>Σύνδεση με το Περιβάλλον του &java; Runtime Environment</title>
+
+ <para>Αλλάξτε τον σύνδεσμο του<application>&java;</application> Runtime
+ Environment (JRE) σε έναν ο οποίος θα δουλεύει στο &os;:</para>
+
+ <screen>&prompt.root; <userinput>cd $MATLAB/sys/java/jre/glnx86/</userinput>
+&prompt.root; <userinput>unlink jre; ln -s ./jre1.1.8 ./jre</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Δημιουργήστε το Script Εκκίνησης του &matlab; </title>
+
+ <procedure>
+ <step>
+ <para>Τοποθετήστε το παρακάτω script στο
+ <filename>/usr/local/bin/matlab</filename>:</para>
+
+ <programlisting>#!/bin/sh
+/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"</programlisting>
+ </step>
+
+ <step>
+ <para>Στη συνέχεια δώστε την εντολή
+ <command>chmod +x /usr/local/bin/matlab</command>.</para>
+ </step>
+ </procedure>
+
+ <tip>
+ <para>Ανάλογα με την έκδοση του
+ <filename role="package">emulators/linux_base</filename>, που έχετε,
+ μπορεί να εμφανιστούν μερικά σφάλματα όταν τρέξετε το
+ script. Για να το αποφύγετε αυτό, τροποποιήστε το αρχείο
+ <filename>/compat/linux/usr/local/matlab/bin/matlab</filename>,
+ και αλλάξτε τη γραμμή που λέει:</para>
+
+ <programlisting>if [ `expr "$lscmd" : '.*-&gt;.*'` -ne 0 ]; then</programlisting>
+
+ <para>(στην έκδοση 13.0.1 βρίσκεται στη γραμμή 410) σε αυτή τη
+ γραμμή:</para>
+
+ <programlisting>if test -L $newbase; then</programlisting>
+ </tip>
+ </sect2>
+
+ <sect2>
+ <title>Δημιουργία Script Τερματισμού του &matlab; </title>
+
+ <para>Τα επόμενα βήματα χρειάζονται για να λύσετε ένα πρόβλημα που
+ υπάρχει με τον τερματισμό του &matlab;.</para>
+
+ <procedure>
+ <step>
+ <para>Δημιουργήστε το
+ αρχείο <filename>$MATLAB/toolbox/local/finish.m</filename>, και
+ μέσα σε αυτό προσθέστε μόνο τη γραμμή:</para>
+
+ <programlisting>! $MATLAB/bin/finish.sh</programlisting>
+
+ <note>
+ <para>To <literal>$MATLAB</literal> γράψτε το ακριβώς
+ όπως το βλέπετε.</para>
+ </note>
+
+ <tip>
+ <para>Στον ίδιο κατάλογο, θα βρείτε τα
+ αρχεία <filename>finishsav.m</filename>
+ και <filename>finishdlg.m</filename>, τα οποία θα σας δίνουν τη
+ δυνατότητα να σώζετε την εργασία σας πριν κλείσετε το πρόγραμμα.
+ Αν πρόκειται να χρησιμοποιήσετε κάποιο από αυτά, προσθέστε του
+ την παραπάνω γραμμή αμέσως μετά την εντολή
+ <literal>save</literal> .</para></tip>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε το
+ αρχείο <filename>$MATLAB/bin/finish.sh</filename>, το οποίο θα
+ περιέχει τα παρακάτω:</para>
+
+ <programlisting>#!/compat/linux/bin/sh
+(sleep 5; killall -1 matlab_helper) &
+exit 0</programlisting>
+ </step>
+
+ <step>
+ <para>Κάντε το αρχείο εκτελέσιμο:</para>
+
+ <screen>&prompt.root; <userinput>chmod +x $MATLAB/bin/finish.sh</userinput></screen>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2 id="matlab-using">
+ <title>Χρησιμοποιώντας το &matlab;</title>
+
+ <para>Σε αυτό το σημείο θα πρέπει να είστε έτοιμοι να δώσετε την
+ εντολή <command>matlab</command> και να αρχίσετε να χρησιμοποιείτε την
+ εφαρμογή.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="linuxemu-oracle">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marcel</firstname>
+ <surname>Moolenaar</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ <!-- marcel@cup.hp.com -->
+ </authorgroup>
+ </sect1info>
+ <title>Εγκατάσταση της &oracle;</title>
+
+ <indexterm>
+ <primary>applications</primary>
+ <secondary><application>Oracle</application></secondary>
+ </indexterm>
+
+ <sect2>
+ <title>Εισαγωγή</title>
+
+ <para>Το κείμενο αυτό περιγράφει τη διαδικασία εγκατάστασης
+ των <application>&oracle; 8.0.5</application>
+ και <application>&oracle; 8.0.5.1 Enterprise Edition</application> για
+ Linux σε ένα σύστημα &os;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Εγκατάσταση του Περιβάλλοντος Linux</title>
+
+ <para>Σιγουρευτείτε ότι έχετε εγκαταστήσει
+ τα <filename role='package'>emulators/linux_base</filename>
+ και <filename role='package'>devel/linux_devtools</filename> από τη
+ συλλογή των Ports. Αν αντιμετωπίζετε δυσκολίες με τα παραπάνω, ίσως
+ χρειαστεί να τα εγκαταστήσετε από πακέτα ή από παλιότερες εκδόσεις της
+ συλλογής των Ports.</para>
+
+ <para>Αν θέλετε να τρέξετε τον intelligent agent, θα χρειαστεί να
+ εγκαταστήσετε και το πακέτο Red Hat
+ Tcl: <filename>tcl-8.0.3-20.i386.rpm</filename>. Η εντολή για την
+ εγκατάσταση μέσω του επίσημου <application>RPM</application> port
+ (<filename role='package'>archivers/rpm</filename>) είναι:</para>
+
+ <screen>&prompt.root; <userinput>rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm <replaceable>package</replaceable></userinput></screen>
+
+ <para>Η εγκατάσταση του <replaceable>package</replaceable> θα πρέπει να
+ γίνει ομαλά και χωρίς προβλήματα.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρυθμίζοντας το Περιβάλλον για την &oracle; </title>
+
+ <para>Πριν την εγκατάσταση της <application>&oracle;</application>, θα
+ πρέπει να ρυθμίσετε σωστά το περιβάλλον του συστήματός σας. Το
+ παρακάτω κείμενο περιγράφει τι <emphasis>ακριβώς</emphasis> πρέπει να
+ κάνετε για να εκτελέσετε την <application>&oracle;</application> για
+ Linux στο &os;, και δεν περιγράφει ότι υπάρχει ήδη στον οδηγό
+ εγκατάστασης της <application>&oracle;</application>.</para>
+
+ <sect3 id="linuxemu-kernel-tuning">
+ <title>Ρύθμιση του Πυρήνα</title>
+ <indexterm><primary>kernel tuning</primary></indexterm>
+
+ <para>Όπως περιγράφει ο οδηγός εγκατάστασης
+ της <application>&oracle;</application>, θα πρέπει να ορίσετε τις
+ τιμές της shared memory στο μέγιστο. Μην χρησιμοποιήσετε
+ το <literal>SHMMAX</literal> στο &os;. Το <literal>SHMMAX</literal>
+ υπολογίζεται απλώς από το <literal>SHMMAXPGS</literal> και το
+ <literal>PGSIZE</literal>. Επομένως καθορίστε το
+ <literal>SHMMAXPGS</literal>. Όλες οι άλλες επιλογές μπορούν να
+ οριστούν όπως περιγράφεται στον οδηγό. Για παράδειγμα:</para>
+
+ <programlisting>options SHMMAXPGS=10000
+options SHMMNI=100
+options SHMSEG=10
+options SEMMNS=200
+options SEMMNI=70
+options SEMMSL=61</programlisting>
+
+ <para>Ορίστε τις τιμές των επιλογών έτσι ώστε να ταιριάζουν στη χρήση
+ της <application>&oracle;</application> που θέλετε να κάνετε.</para>
+
+ <para>Επίσης, επιβεβαιώστε ότι έχετε ενεργοποιήσει τις παρακάτω
+ επιλογές στις ρυθμίσεις του πυρήνα:</para>
+
+<programlisting>options SYSVSHM #SysV shared memory
+options SYSVSEM #SysV semaphores
+options SYSVMSG #SysV interprocess communication</programlisting>
+ </sect3>
+
+ <sect3 id="linuxemu-oracle-account">
+
+ <title>Ο Χρήστης &oracle;</title>
+
+ <para>Δημιουργήστε ένα χρήστη συστήματος με
+ όνομα <username>oracle</username>, με τον ίδιο τρόπο που θα
+ δημιουργούσατε και οποιονδήποτε άλλον χρήστη. Το μόνο ιδιαίτερο
+ χαρακτηριστικό του χρήστη <username>oracle</username> είναι ότι
+ χρειάζεται να του δώσετε ένα κέλυφος Linux. Προσθέστε
+ το <literal>/compat/linux/bin/bash</literal>
+ στο <filename>/etc/shells</filename> και ορίστε το κέλυφος του
+ χρήστη <username>oracle</username>
+ σε <filename>/compat/linux/bin/bash</filename>.</para>
+ </sect3>
+
+ <sect3 id="linuxemu-environment">
+ <title>Το Περιβάλλον</title>
+
+ <para>Εκτός των συνηθισμένων μεταβλητών
+ της <application>&oracle;</application>, όπως
+ οι <envar>ORACLE_HOME</envar> και <envar>ORACLE_SID</envar> θα
+ πρέπει να ορίσετε και τις ακόλουθες μεταβλητές περιβάλλοντος:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="2*">
+ <thead>
+ <row>
+ <entry>Μεταβλητή</entry>
+
+ <entry>Τιμή</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><envar>LD_LIBRARY_PATH</envar></entry>
+
+ <entry><literal>$ORACLE_HOME/lib</literal></entry>
+ </row>
+
+ <row>
+ <entry><envar>CLASSPATH</envar></entry>
+
+ <entry><literal>$ORACLE_HOME/jdbc/lib/classes111.zip</literal></entry>
+ </row>
+
+ <row>
+ <entry><envar>PATH</envar></entry>
+
+ <entry><literal>/compat/linux/bin
+/compat/linux/sbin
+/compat/linux/usr/bin
+/compat/linux/usr/sbin
+/bin
+/sbin
+/usr/bin
+/usr/sbin
+/usr/local/bin
+$ORACLE_HOME/bin</literal></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Σας συνιστούμε να ορίσετε όλες τις μεταβλητές περιβάλλοντος στο
+ αρχείο <filename>.profile</filename>. Ένα ολοκληρωμένο παράδειγμα
+ είναι το παρακάτω:</para>
+
+<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
+ORACLE_HOME=/oracle; export ORACLE_HOME
+LD_LIBRARY_PATH=$ORACLE_HOME/lib
+export LD_LIBRARY_PATH
+ORACLE_SID=ORCL; export ORACLE_SID
+ORACLE_TERM=386x; export ORACLE_TERM
+CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
+export CLASSPATH
+PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
+PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
+PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
+export PATH</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Εγκατάσταση της &oracle;</title>
+
+ <para>Λόγω μια μικρής έλλειψης στον εξομοιωτή του Linux, θα χρειαστεί να
+ δημιουργήσετε έναν κατάλογο με το όνομα <filename>.oracle</filename>
+ μέσα στο <filename>/var/tmp</filename>, πριν ξεκινήσετε το πρόγραμμα
+ εγκατάστασης. Ο κατάλογος αυτός θα πρέπει να ανήκει
+ στον χρήστη <username>oracle</username>. Θα πρέπει τώρα να
+ πραγματοποιήσετε την εγκατάσταση
+ της <application>&oracle;</application> δίχως κανένα πρόβλημα. Αν
+ αντιμετωπίζετε όμως ακόμη προβλήματα, ελέγξτε την έκδοση
+ της <application>&oracle;</application> που έχετε ή/και τις
+ ρυθμίσεις σας! Αφότου έχετε πραγματοποιήσει την εγκατάσταση
+ της <application>&oracle;</application>, εφαρμόστε τα patches που
+ περιγράφονται στις δύο παρακάτω ενότητες.</para>
+
+ <para>Ένα συχνό πρόβλημα είναι ότι δεν γίνεται σωστή εγκατάσταση του
+ προσαρμογέα του πρωτοκόλλου TCP. Αυτό έχει ως αποτέλεσμα να μην
+ μπορείτε να ξεκινήσετε τους TCP listeners. Οι ακόλουθες οδηγίες θα
+ σας βοηθήσουν να λύσετε αυτό το πρόβλημα.:</para>
+
+ <screen>&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
+&prompt.root; <userinput>make -f ins_network.mk ntcontab.o</userinput>
+&prompt.root; <userinput>cd $ORACLE_HOME/lib</userinput>
+&prompt.root; <userinput>ar r libnetwork.a ntcontab.o</userinput>
+&prompt.root; <userinput>cd $ORACLE_HOME/network/lib</userinput>
+&prompt.root; <userinput>make -f ins_network.mk install</userinput></screen>
+
+ <para>Μη ξεχάσετε να τρέξετε ξανά το <filename>root.sh</filename></para>
+
+ <sect3 id="linuxemu-patch-root">
+ <title>Διόρθωση του root.sh</title>
+
+ <para>Όταν εγκαθιστάτε την <application>&oracle;</application>,
+ κάποιες ενέργειες, οι οποίες χρειάζονται να γίνουν
+ ως <username>root</username>, καταγράφονται σε ένα shell script που
+ λέγεται <filename>root.sh</filename>. Το script αυτό δημιουργείται
+ στον κατάλογο <filename>orainst</filename>. Εφαρμόστε το παρακάτω
+ patch στο <filename>root.sh</filename>, για να μπορέσει να βρει και
+ να χρησιμοποιήσει το <command>chown</command>. Εναλλακτικά, τρέξτε
+ το script μέσα από ένα κέλυφος Linux.</para>
+
+ <programlisting>*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
+--- orainst/root.sh Mon Dec 28 15:58:53 1998
+***************
+*** 31,37 ****
+# This is the default value for CHOWN
+# It will redefined later in this script for those ports
+# which have it conditionally defined in ss_install.h
+! CHOWN=/bin/chown
+#
+# Define variables to be used in this script
+--- 31,37 ----
+# This is the default value for CHOWN
+# It will redefined later in this script for those ports
+# which have it conditionally defined in ss_install.h
+! CHOWN=/usr/sbin/chown
+#
+# Define variables to be used in this script</programlisting>
+
+ <para>Όταν δεν κάνετε χρήση του CD για την εγκατάσταση, μπορείτε να
+ περάσετε το patch για το <filename>root.sh</filename>, στην πηγή
+ εγκατάστασης. To αρχείο ονομάζεται <filename>rthd.sh</filename> και
+ βρίσκεται στον κατάλογο <filename>orainst</filename>.</para>
+ </sect3>
+
+ <sect3 id="linuxemu-patch-tcl">
+ <title>Διόρθωση του genclntsh</title>
+
+ <para>To script <command>genclntsh</command> χρησιμοποιείται για να
+ δημιουργήσει μια shared client library. Τρέξτε το παρακάτω patch για
+ να σβήσετε το καθορισμένο <envar>PATH</envar>:</para>
+
+ <programlisting>*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
+--- bin/genclntsh Tue Dec 22 15:36:49 1998
+***************
+*** 32,38 ****
+#
+# Explicit path to ensure that we're using the correct commands
+#PATH=/usr/bin:/usr/ccs/bin export PATH
+! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
+#
+# each product MUST provide a $PRODUCT/admin/shrept.lst
+--- 32,38 ----
+#
+# Explicit path to ensure that we're using the correct commands
+#PATH=/usr/bin:/usr/ccs/bin export PATH
+! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
+#
+# each product MUST provide a $PRODUCT/admin/shrept.lst</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Εκτέλεση της &oracle;</title>
+
+ <para>Αφού έχετε ακολουθήσει αυτές τις οδηγίες, θα πρέπει να μπορείτε
+ να εκτελέσετε την <application>&oracle;</application> σαν να
+ βρισκόσασταν σε ένα σύστημα Linux.
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="linuxemu-advanced">
+ <title>Προχωρημένα Θέματα</title>
+
+ <para>Αν έχετε την απορία πως λειτουργεί η συμβατότητα με εφαρμογές Linux,
+ τότε θα πρέπει να διαβάσετε τη παρακάτω ενότητα. Τα περισσότερα από όσα
+ έχουν γραφτεί είναι βασισμένα στην &a.chat; και έχουν γραφτεί από τον
+ Terry Lambert <email>tlambert@primenet.com</email> (Message ID:
+ <literal>&lt;199906020108.SAA07001@usr09.primenet.com&gt;</literal>).
+ </para>
+
+ <sect2>
+ <title>Πως Λειτουργεί;</title>
+ <indexterm><primary>execution class loader</primary></indexterm>
+
+ <para>Το &os; περιέχει ένα επίπεδο αφαίρεσης (abstraction) που
+ ονομάζεται <quote>execution class loader</quote>. Αυτό βασίζεται στο
+ &man.execve.2;.</para>
+
+ <para>Αυτό που συμβαίνει είναι ότι το &os; έχει μια λίστα φορτωτών
+ (loaders), αντί για ένα που να καταφεύγει σε περίπτωση αποτυχίας
+ στο <literal>#!</literal> για να τρέξει κάποιο shell interpreter ή
+ shell script.</para>
+
+ <para>Ιστορικά, ο μόνος φορτωτής στη πλατφόρμα του &unix; έλεγχε τον
+ μαγικό αριθμό (γενικά τα πρώτα 4 ή 8 bytes του αρχείου) για να δει αν
+ είναι κάποιο εκτελέσιμο / εφαρμογή γνωστό στο σύστημα, και στην
+ περίπτωση αυτή να καλέσει τον αντίστοιχο φορτωτή.</para>
+
+ <para>Αν το αρχείο δεν ήταν εκτελέσιμο με βάση τον τύπο του συστήματος,
+ η κλήση στο &man.execve.2; επέστρεφε κάποιο σφάλμα, και το shell
+ προσπαθούσε να εκτελέσει το αρχείο σαν shell script.</para>
+
+ <para>Η γενική ιδέα ήταν <quote>αν δεν είναι εκτελέσιμο,
+ προσπάθησε να το τρέξεις ως shell script με βάση το τρέχον shell
+ </quote>.</para>
+
+ <para>Αργότερα, βρέθηκε ένας έξυπνος τρόπος ώστε το &man.sh.1; να
+ ελέγχει τους πρώτους δύο χαρακτήρες, και αν ήταν
+ <literal>:\n</literal>, τότε καλούσε το shell &man.csh.1;
+ (πιστεύουμε πως η λύση αυτή βρέθηκε αρχικά από τη SCO).</para>
+
+ <para>Αυτό που κάνει τώρα το &os; είναι να διατρέχει τη λίστα με όλους
+ τους φορτωτές, με ένα γενικό φορτωτή <literal>#!</literal> ο οποίος
+ αναγνωρίζει ως διερμηνέα (interpreter) τους χαρακτήρες από το επόμενο
+ κενό μετά το <literal>!</literal> και μέχρι το τέλος, ενώ αν δεν
+ αναγνωριστεί κάποιος, χρησιμοποιείται ως έσχατη λύση το
+ <filename>/bin/sh</filename>.</para>
+
+ <indexterm><primary>ELF</primary></indexterm>
+ <para>Για την υποστήριξη του Linux ABI, το &os; βλέπει τον μαγικό
+ αριθμό του ELF binary (δε αναγνωρίζει τη διαφορά ανάμεσα σε
+ &os;, &solaris;, Linux, ή κάποιο άλλο λειτουργικό σύστημα το οποίο
+ χρησιμοποιεί αρχεία τύπου ELF).</para>
+
+ <indexterm><primary>Solaris</primary></indexterm>
+ <para>Ο φορτωτής ELF κοιτάει για ένα ειδικό <emphasis>brand</emphasis>,
+ το οποίο είναι μια ενότητα σχολίων μέσα στο ELF image, και το οποίο
+ δεν υπάρχει σε ELF binaries για SVR4/&solaris;</para>
+
+ <para>Για να λειτουργήσουν τα εκτελέσιμα του Linux, θα πρέπει να
+ γίνουν <emphasis>branded</emphasis> (μαρκαριστούν) ως
+ <literal>Linux</literal> μέσω της &man.brandelf.1;:</para>
+
+ <screen>&prompt.root; <userinput>brandelf -t Linux file</userinput></screen>
+
+ <para>Όταν γίνει αυτό, ο φορτωτής ELF θα βλέπει το
+ <literal>Linux</literal> brand πάνω στο αρχείο.</para>
+ <indexterm>
+ <primary>ELF</primary>
+ <secondary>branding</secondary>
+ </indexterm>
+
+ <para>Όταν ο φορτωτής ELF δει το <literal>Linux</literal> brand, θα
+ αντικαταστήσει έναν δείκτη μέσα στη δομή <literal>proc</literal>.
+ Όλες οι κλήσεις του συστήματος ταξινομούνται μέσα από αυτόν τον
+ δείκτη (σε ένα παραδοσιακό σύστημα &unix;, ο δείκτης θα ήταν ο
+ πίνακας <literal>sysent[]</literal>, που περιέχει τις κλήσεις
+ του συστήματος (system calls)). Επιπλέον, η διεργασία σημειώνεται για
+ ειδική μεταχείριση του trap vector και άλλες (μικρές) διορθώσεις,
+ τις οποίες χειρίζεται το άρθρωμα πυρήνα της συμβατότητας Linux.</para>
+
+ <para>Το system call vector του Linux περιέχει, μεταξύ άλλων, μια λίστα
+ με τα δεδομένα του <literal>sysent[]</literal> των οποίων
+ οι διευθύνσεις βρίσκονται μέσα στο άρθρωμα του πυρήνα.</para>
+
+ <para>Όταν γίνεται μια κλήση συστήματος από μια εφαρμογή Linux, ο
+ κώδικας (trap code) τροποποιεί τον δείκτη της μέσω της δομής που έχει
+ εγγραφεί στο <literal>proc</literal>, και αλλάζει την διεύθυνση ώστε
+ να δείχνει στο σημείο εισόδου της συνάρτησης του Linux, και όχι του
+ &os;.</para>
+
+ <para>Επίσης, το σύστημα συμβατότητας με Linux μπορεί και προσαρμόζει
+ δυναμικά τις τοποθεσίες αναζήτησης. Ουσιαστικά αυτό κάνει και η
+ επιλογή <option>union</option> κατά την προσάρτηση ενός συστήματος
+ αρχείων (<emphasis>δεν</emphasis> εννοούμε εδώ το σύστημα
+ αρχείων <literal>unionfs</literal>!). Αρχικά, γίνεται απόπειρα να
+ βρεθεί το αρχείο στον κατάλογο
+ <filename>/compat/linux/<replaceable>original-path</replaceable></filename>, <emphasis>και μόνο</emphasis>
+ αν αυτό αποτύχει, θα γίνει αναζήτηση στον κατάλογο
+ <filename>/<replaceable>original-path</replaceable></filename>. Με
+ τον τρόπο αυτό σιγουρεύουμε ότι τα εκτελέσιμα που χρειάζονται άλλα
+ εκτελέσιμα θα τρέξουν (για παράδειγμα, το σύνολο εργαλείων του
+ Linux μπορεί να εκτελεστεί μέσω της υποστήριξης του Linux ABI). Επίσης
+ σημαίνει ότι τα εκτελέσιμα του Linux μπορούν να φορτώσουν και να
+ εκτελέσουν αρχεία του &os; αν δεν μπορούν να εντοπίσουν τα αντίστοιχα
+ αρχεία στο Linux. Μπορείτε επίσης να τοποθετήσετε μια εντολή
+ &man.uname.1; μέσα στο <filename>/compat/linux</filename> προκειμένου
+ τα αρχεία του Linux να μη μπορούν να αναγνωρίσουν ότι δεν
+ χρησιμοποιούνται πραγματικά σε Linux.</para>
+
+ <para>Ουσιαστικά, υπάρχει ένας πυρήνας Linux μέσα στον πυρήνα
+ του &os;. Οι διάφορες λειτουργίες οι οποίες υλοποιούν όλες τις
+ υπηρεσίες που παρέχονται από τον πυρήνα είναι ίδιες τόσο στον πίνακα
+ κλήσεων συστήματος του &os; όσο και στον αντίστοιχο του Linux:
+ λειτουργίες του συστήματος αρχείων, εικονική μνήμη, διαχείριση
+ σημάτων, System V IPC κλπ. Η μόνη διαφορά είναι ότι το εκτελέσιμα
+ του &os; κάνουν χρήση των συναρτήσεων <emphasis>glue</emphasis> του
+ &os;, ενώ τα εκτελέσιμα του Linux, κάνουν χρήση των συναρτήσεων
+ <emphasis>glue</emphasis> του Linux (πολλά από τα παλιά λειτουργικά
+ είχαν τις δικές τους συναρτήσεις <emphasis>glue</emphasis>: οι
+ διευθύνσεις των συναρτήσεων βρίσκονταν στο στατικό πίνακα
+ <literal>sysent[]</literal>, αντί να διευκρινίζονται μέσω ενός
+ δυναμικού δείκτη στη δομή <literal>proc</literal> της διεργασίας που
+ πραγματοποιεί την κλήση).</para>
+
+ <para>Ποιο είναι όμως το εγγενές &os; ABI; Δεν έχει και πολύ σημασία.
+ Η μόνη βασική διαφορά είναι (κάτι το οποίο μπορεί εύκολα να
+ αλλάξει σε μελλοντικές εκδόσεις, και πολύ πιθανόν να αλλάξει) ότι
+ οι συναρτήσεις <emphasis>glue</emphasis> του &os; είναι στατικά
+ συνδεδεμένες στο πυρήνα, ενώ οι αντίστοιχες του Linux μπορούν είτε να
+ είναι συνδεδεμένες στατικά, είτε να είναι προσβάσιμες μέσω ενός
+ αρθρώματος πυρήνα.</para>
+
+ <para>Είναι αυτό όμως πραγματική εξομοίωση; Όχι. Είναι μια υλοποίηση
+ του ABI, όχι εξομοίωση. Δεν υπάρχει καμία εξομοίωση (ή προσομοίωση,
+ για να προλάβουμε την επόμενη σας ερώτηση).</para>
+
+ <para>Τότε γιατί μερικές φορές μιλάμε για <quote>εξομοίωση
+ Linux</quote>; Για να δυσκολευτεί η προώθηση του &os;! Η αρχική
+ υλοποίηση έγινε την εποχή όπου δεν υπήρχε άλλη λέξη που να μπορούσε
+ να περιγράψει το τι ακριβώς γινόταν. Το να
+ λέγαμε ότι το &os; έτρεχε εκτελέσιμα Linux δεν θα ήταν αλήθεια,
+ μια και χρειαζόταν να ενσωματωθεί κάποιος κώδικας στον πυρήνα, ή να
+ φορτωθεί κάποιο άρθρωμα. Χρειαζόταν κάποια λέξη που να περιγράφει τι
+ φορτωνόταν&mdash;έτσι προέκυψε ο <quote>εξομοιωτής Linux</quote>.
+ </para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ fill-column: 78
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/mac/chapter.sgml b/el_GR.ISO8859-7/books/handbook/mac/chapter.sgml
new file mode 100644
index 0000000000..4fe4615790
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/mac/chapter.sgml
@@ -0,0 +1,2107 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Υποχρεωτικός Έλεγχος Πρόσβασης
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/mac/chapter.sgml
+ %SRCID% 1.1
+
+-->
+
+<chapter id="mac">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Γράφτηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Υποχρεωτικός Έλεγχος Πρόσβασης</title>
+
+ <sect1 id="mac-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>MAC</primary></indexterm>
+ <indexterm>
+ <primary>Υποχρεωτικός Έλεγχος Πρόσβασης</primary>
+ <see>MAC</see>
+ </indexterm>
+
+ <para>Το &os;&nbsp;5.X εισήγαγε νέες επεκτάσεις ασφαλείας από το
+ TrustedBSD project, που βασίζονται στο προσχέδιο &posix;.1e. Δύο από
+ τους πιο σημαντικούς νέους μηχανισμούς ασφαλείας, είναι οι Λίστες
+ Ελέγχου Πρόσβασης (Access Control Lists, <acronym>ACL</acronym>s) στο
+ σύστημα αρχείων και ο Υποχρεωτικός Έλεγχος Πρόσβασης (Mandatory Access
+ Control, <acronym>MAC</acronym>). Ο Υποχρεωτικός Έλεγχος Πρόσβασης
+ δίνει την δυνατότητας φόρτωσης αρθρωμάτων (modules) ελέγχου τα οποία
+ υλοποιούν νέες πολιτικές ασφαλείας. Μερικά παρέχουν προστασία σε ένα
+ στενό υποσύνολο του συστήματος, ενδυναμώνοντας την ασφάλεια μιας
+ συγκεκριμένης υπηρεσίας. Άλλα παρέχουν συνοπτική ασφάλεια προς όλες
+ τις υπηρεσίες και το σύστημα. Ο έλεγχος ονομάζεται υποχρεωτικός από
+ το γεγονός ότι η επιβολή γίνεται από τους διαχειριστές και το σύστημα,
+ και δεν αφήνεται στη διακριτική ευχέρεια των χρηστών όπως γίνεται με το
+ διακριτικό έλεγχο πρόσβασης (Discretionary Access Control, <acronym>
+ DAC</acronym>, τις τυποποιημένες άδειες αρχείων και <acronym>IPC
+ </acronym> του System V στο &os;).</para>
+
+ <para>Το κεφάλαιο αυτό εστιάζει στο πλαίσιο του Υποχρεωτικού Ελέγχου
+ Πρόσβασης (<acronym>MAC</acronym> Framework), και σε ένα σύνολο
+ πρόσθετων αρθρωμάτων για πολιτικές ασφάλειας, που ενεργοποιούν διάφορους
+ μηχανισμούς ασφάλειας.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τι <acronym>MAC</acronym> αρθρώματα πολιτικών ασφαλείας
+ περιλαμβάνονται αυτή τη στιγμή στο &os; και τους σχετικούς
+ μηχανισμούς τους.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τι υλοποιούν τα <acronym>MAC</acronym> αρθρώματα πολιτικών
+ ασφαλείας καθώς και τη διαφορά μεταξύ μια χαρακτηρισμένης (labeled)
+ και μη χαρακτηρισμένης (non-labeled) πολιτικής.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε αποδοτικά ένα σύστημα για χρήση του
+ πλαισίου λειτουργιών <acronym>MAC</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε τα διαφορετικά αρθρώματα πολιτικών ασφάλειας
+ τα οποία περιλαμβάνονται στο πλαίσιο λειτουργιών <acronym>MAC
+ </acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να υλοποιήσετε ένα πιο ασφαλές περιβάλλον, χρησιμοποιώντας
+ το πλαίσιο λειτουργιών <acronym>MAC</acronym> και τα παραδείγματα
+ που φαίνονται.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ελέγξετε τη ρύθμιση του <acronym>MAC</acronym> για να
+ εξασφαλίσετε ότι έχει γίνει σωστή υλοποίηση του πλαισίου
+ λειτουργιών.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε τις βασικές έννοιες του &unix; και του &os;.
+ (<xref linkend="basics">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τις βασικές έννοιες της ρύθμισης
+ και μεταγλώττισης του πυρήνα (<xref linkend="kernelconfig">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να έχετε κάποια εξοικείωση με την ασφάλεια και πως αυτή
+ σχετίζεται με το &os; (<xref linkend="security">).</para>
+ </listitem>
+ </itemizedlist>
+
+ <warning>
+ <para>Η κακή χρήση των πληροφοριών που παρέχονται εδώ μπορεί να
+ προκαλέσει απώλεια πρόσβασης στο σύστημα, εκνευρισμό στους χρήστες
+ ή αδυναμία πρόσβασης στις υπηρεσίες που παρέχονται από το Χ11.
+ Ακόμα πιο σημαντικό είναι ότι δεν πρέπει να βασίζεστε στο <acronym>
+ MAC</acronym> για την πλήρη ασφάλιση ενός συστήματος. Το πλαίσιο
+ λειτουργιών <acronym>MAC</acronym> παρέχει απλώς επιπλέον υποστήριξη
+ σε μια υπάρχουσα πολιτική ασφαλείας. Χωρίς σωστές πρακτικές και
+ τακτικούς ελέγχους ασφαλείας, το σύστημα δεν θα είναι ποτέ απόλυτα
+ ασφαλές.</para>
+
+ <para>Θα πρέπει επίσης να σημειωθεί ότι τα παραδείγματα που περιέχονται
+ σε αυτό το κεφάλαιο είναι ακριβώς και μόνο αυτό: παραδείγματα. Δεν
+ συνίσταται να χρησιμοποιηθούν ακριβώς αυτές οι ρυθμίσεις σε ένα
+ σύστημα παραγωγής. Η υλοποίηση των διάφορων αρθρωμάτων πολιτικών
+ ασφαλείας απαιτεί αρκετή σκέψη και δοκιμές. Αν δεν κατανοείτε
+ την ακριβή λειτουργία τους, μπορεί να βρεθείτε στη θέση να ελέγχετε
+ ξανά ολόκληρο το σύστημα και να αλλάζετε ρυθμίσεις σε πολλά αρχεία και
+ καταλόγους.</para>
+ </warning>
+
+ <sect2>
+ <title>Τι δεν Περιλαμβάνεται στο Κεφάλαιο</title>
+
+ <para>Το κεφάλαιο αυτό καλύπτει μια ευρεία περιοχή προβλημάτων ασφαλείας
+ που σχετίζονται με το πλαίσιο λειτουργιών <acronym>MAC</acronym>. Δεν
+ θα καλυφθεί η ανάπτυξη νέων αρθρωμάτων πολιτικών ασφαλείας <acronym>
+ MAC</acronym>. Ένας αριθμός από αρθρώματα που περιλαμβάνονται στο
+ πλαίσιο <acronym>MAC</acronym>, έχουν ειδικά χαρακτηριστικά που
+ παρέχονται τόσο για δοκιμές όσο και για ανάπτυξη νέων αρθρωμάτων. Αυτά
+ περιλαμβάνουν τα &man.mac.test.4;, &man.mac.stub.4; και
+ &man.mac.none.4;. Για περισσότερες πληροφορίες σχετικά με αυτά τα
+ αρθρώματα και τους διάφορους μηχανισμούς που παρέχουν, παρακαλούμε
+ ανατρέξτε στις αντίστοιχες σελίδες manual.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-inline-glossary">
+ <title>Key Terms in this Chapter</title>
+
+ <para>Before reading this chapter, a few key terms must be
+ explained. This will hopefully clear up any confusion that
+ may occur and avoid the abrupt introduction of new terms
+ and information.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>compartment</emphasis>: A compartment is a
+ set of programs and data to be partitioned or separated,
+ where users are given explicit access to specific components
+ of a system. Also, a compartment represents a grouping,
+ such as a work group, department, project, or topic. Using
+ compartments, it is possible to implement a need-to-know
+ security policy.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>high water mark</emphasis>: A high water mark
+ policy is one which permits the raising of security levels
+ for the purpose of accessing higher level information. In
+ most cases, the original level is restored after the process
+ is complete. Currently, the &os; <acronym>MAC</acronym>
+ framework does not have a policy for this, but the definition
+ is included for completeness.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>integrity</emphasis>: Integrity, as a key
+ concept, is the level of trust which can be placed on data.
+ As the integrity of the data is elevated, so does the ability
+ to trust that data.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>label</emphasis>: A label is a security
+ attribute which can be applied to files, directories, or
+ other items in the system. It could be considered
+ a confidentiality stamp; when a label is placed on
+ a file it describes the security properties for that specific
+ file and will only permit access by files, users, resources,
+ etc. with a similar security setting. The meaning and
+ interpretation of label values depends on the policy configuration: while
+ some policies might treat a label as representing the
+ integrity or secrecy of an object, other policies might use
+ labels to hold rules for access.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>level</emphasis>: The increased or decreased
+ setting of a security attribute. As the level increases,
+ its security is considered to elevate as well.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>low water mark</emphasis>: A low water mark
+ policy is one which permits lowering of the security levels
+ for the purpose of accessing information which is less
+ secure. In most cases, the original security level of the
+ user is restored after the process is complete. The only
+ security policy module in &os; to use this is
+ &man.mac.lomac.4;.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>multilabel</emphasis>: The
+ <option>multilabel</option> property is a file system option
+ which can be set in single user mode using the
+ &man.tunefs.8; utility, during the boot operation
+ using the &man.fstab.5; file, or during the creation of
+ a new file system. This option will permit an administrator
+ to apply different <acronym>MAC</acronym> labels on different
+ objects. This option
+ only applies to security policy modules which support labeling.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>object</emphasis>: An object or system
+ object is an entity through which information flows
+ under the direction of a <emphasis>subject</emphasis>.
+ This includes directories, files, fields, screens, keyboards,
+ memory, magnetic storage, printers or any other data
+ storage/moving device. Basically, an object is a data container or
+ a system resource; access to an <emphasis>object</emphasis>
+ effectively means access to the data.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>policy</emphasis>: A collection of rules
+ which defines how objectives are to be achieved. A
+ <emphasis>policy</emphasis> usually documents how certain
+ items are to be handled. This chapter will
+ consider the term <emphasis>policy</emphasis> in this
+ context as a <emphasis>security policy</emphasis>; i.e.
+ a collection of rules which will control the flow of data
+ and information and define whom will have access to that
+ data and information.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>sensitivity</emphasis>: Usually used when
+ discussing <acronym>MLS</acronym>. A sensitivity level is
+ a term used to describe how important or secret the data
+ should be. As the sensitivity level increases, so does the
+ importance of the secrecy, or confidentiality of the data.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>single label</emphasis>: A single label is
+ when the entire file system uses one label to
+ enforce access control over the flow of data. When a file
+ system has this set, which is any time when the
+ <option>multilabel</option> option is not set, all
+ files will conform to the same label setting.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>subject</emphasis>: a subject is any
+ active entity that causes information to flow between
+ <emphasis>objects</emphasis>; e.g. a user, user processor,
+ system process, etc. On &os;, this is almost always a thread
+ acting in a process on behalf of a user.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="mac-initial">
+ <title>Explanation of MAC</title>
+
+ <para>With all of these new terms in mind, consider how the
+ <acronym>MAC</acronym> framework augments the security of
+ the system as a whole. The various security policy modules provided by
+ the <acronym>MAC</acronym> framework could be used to
+ protect the network and file systems, block users from
+ accessing certain ports and sockets, and more. Perhaps
+ the best use of the policy modules is to blend them together, by loading
+ several security policy modules at a time for a multi-layered
+ security environment. In a multi-layered security environment,
+ multiple policy modules are in effect to keep security in check. This
+ is different to a hardening policy, which typically hardens
+ elements of a system that is used only for specific purposes.
+ The only downside is administrative overhead in cases of
+ multiple file system labels, setting network access control
+ user by user, etc.</para>
+
+ <para>These downsides are minimal when compared to the lasting
+ effect of the framework; for instance, the ability to pick and choose
+ which policies are required for a specific configuration keeps
+ performance overhead down. The reduction of support for unneeded
+ policies can increase the overall performance of the system as well as
+ offer flexibility of choice. A good implementation would
+ consider the overall security requirements and effectively implement
+ the various security policy modules offered by the framework.</para>
+
+ <para>Thus a system utilizing <acronym>MAC</acronym> features
+ should at least guarantee that a user will not be permitted
+ to change security attributes at will; all user utilities,
+ programs and scripts must work within the constraints of
+ the access rules provided by the selected security policy modules; and
+ that total control of the <acronym>MAC</acronym> access
+ rules are in the hands of the system administrator.</para>
+
+ <para>It is the sole duty of the system administrator to
+ carefully select the correct security policy modules. Some environments
+ may need to limit access control over the network; in these
+ cases, the &man.mac.portacl.4;, &man.mac.ifoff.4; and even
+ &man.mac.biba.4; policy modules might make good starting points. In other
+ cases, strict confidentiality of file system objects might
+ be required. Policy modules such as &man.mac.bsdextended.4;
+ and &man.mac.mls.4; exist for this purpose.</para>
+
+ <para>Policy decisions could be made based on network
+ configuration. Perhaps only certain users should be permitted
+ access to facilities provided by &man.ssh.1; to access the
+ network or the Internet. The &man.mac.portacl.4; would be
+ the policy module of choice for these situations. But what should be
+ done in the case of file systems? Should all access to certain
+ directories be severed from other groups or specific
+ users? Or should we limit user or utility access to specific
+ files by setting certain objects as classified?</para>
+
+ <para>In the file system case, access to objects might be
+ considered confidential to some users, but not to others.
+ For an example, a large development team might be broken
+ off into smaller groups of individuals. Developers in
+ project A might not be permitted to access objects written
+ by developers in project B. Yet they might need to access
+ objects created by developers in project C; that is quite a
+ situation indeed. Using the different security policy modules provided by
+ the <acronym>MAC</acronym> framework; users could
+ be divided into these groups and then given access to the
+ appropriate areas without fear of information
+ leakage.</para>
+
+ <para>Thus, each security policy module has a unique way of dealing with
+ the overall security of a system. Module selection should be based
+ on a well thought out security policy. In many cases, the
+ overall policy may need to be revised and reimplemented on
+ the system. Understanding the different security policy modules offered by
+ the <acronym>MAC</acronym> framework will help administrators
+ choose the best policies for their situations.</para>
+
+ <para>The default &os; kernel does not include the option for
+ the <acronym>MAC</acronym> framework; thus the following
+ kernel option must be added before trying any of the examples or
+ information in this chapter:</para>
+
+ <programlisting>options MAC</programlisting>
+
+ <para>And the kernel will require a rebuild and a reinstall.</para>
+
+ <caution>
+ <para>While the various manual pages for <acronym>MAC</acronym>
+ policy modules state that they may be built into the kernel,
+ it is possible to lock the system out of
+ the network and more. Implementing <acronym>MAC</acronym>
+ is much like implementing a firewall, care must be taken
+ to prevent being completely locked out of the system. The
+ ability to revert back to a previous configuration should be
+ considered while the implementation of <acronym>MAC</acronym>
+ remotely should be done with extreme caution.</para>
+ </caution>
+ </sect1>
+
+ <sect1 id="mac-understandlabel">
+ <title>Understanding MAC Labels</title>
+
+ <para>A <acronym>MAC</acronym> label is a security attribute
+ which may be applied to subjects and objects throughout
+ the system.</para>
+
+ <para>When setting a label, the user must be able to comprehend
+ what it is, exactly, that is being done. The attributes
+ available on an object depend on the policy module loaded, and that
+ policy modules interpret their attributes in different
+ ways. If improperly configured due to lack of comprehension, or
+ the inability to understand the implications, the result will
+ be the unexpected and perhaps, undesired, behavior of the
+ system.</para>
+
+ <para>The security label on an object is used as a part of a
+ security access control decision by a policy. With some
+ policies, the label by itself contains all information necessary
+ to make a decision; in other models, the labels may be processed
+ as part of a larger rule set, etc.</para>
+
+ <para>For instance, setting the label of <literal>biba/low</literal>
+ on a file will represent a label maintained by the Biba security policy module,
+ with a value of <quote>low</quote>.</para>
+
+ <para>A few policy modules which support the labeling feature in
+ &os; offer three specific predefined labels. These
+ are the low, high, and equal labels. Although they enforce
+ access control in a different manner with each policy module, you
+ can be sure that the low label will be the lowest setting,
+ the equal label will set the subject or object to be disabled
+ or unaffected, and the high label will enforce the highest
+ setting available in the Biba and <acronym>MLS</acronym>
+ policy modules.</para>
+
+ <para>Within single label file system environments, only one label may be
+ used on objects. This will enforce one set of
+ access permissions across the entire system and in many
+ environments may be all that is required. There are a few
+ cases where multiple labels may be set on objects
+ or subjects in the file system. For those cases, the
+ <option>multilabel</option> option may be passed to
+ &man.tunefs.8;.</para>
+
+ <para>In the case of Biba and <acronym>MLS</acronym>, a numeric
+ label may be set to indicate the precise level of hierarchical
+ control. This numeric level is used to partition or sort
+ information into different groups of say, classification only
+ permitting access to that group or a higher group level.</para>
+
+ <para>In most cases the administrator will only be setting up a
+ single label to use throughout the file system.</para>
+
+ <para><emphasis>Hey wait, this is similar to <acronym>DAC</acronym>!
+ I thought <acronym>MAC</acronym> gave control strictly to the
+ administrator.</emphasis> That statement still holds true, to some
+ extent as <username>root</username> is the one in control and who
+ configures the policies so that users are placed in the
+ appropriate categories/access levels. Alas, many policy modules can
+ restrict the <username>root</username> user as well. Basic
+ control over objects will then be released to the group, but
+ <username>root</username> may revoke or modify the settings
+ at any time. This is the hierarchal/clearance model covered
+ by policies such as Biba and <acronym>MLS</acronym>.</para>
+
+ <sect2>
+ <title>Label Configuration</title>
+
+ <para>Virtually all aspects of label policy module configuration
+ will be performed using the base system utilities. These
+ commands provide a simple interface for object or subject
+ configuration or the manipulation and verification of
+ the configuration.</para>
+
+ <para>All configuration may be done by use of the
+ &man.setfmac.8; and &man.setpmac.8; utilities.
+ The <command>setfmac</command> command is used to set
+ <acronym>MAC</acronym> labels on system objects while the
+ <command>setpmac</command> command is used to set the labels
+ on system subjects. Observe:</para>
+
+ <screen>&prompt.root; <userinput>setfmac biba/high test</userinput></screen>
+
+ <para>If no errors occurred with the command above, a prompt
+ will be returned. The only time these commands are not
+ quiescent is when an error occurred; similarly to the
+ &man.chmod.1; and &man.chown.8; commands. In some cases this
+ error may be a <errorname>Permission denied</errorname> and
+ is usually obtained when the label is being set or modified
+ on an object which is restricted.<footnote><para>Other conditions
+ may produce different failures. For instance, the file may not
+ be owned by the user attempting to relabel the object, the
+ object may not exist or may be read only. A mandatory policy
+ will not allow the process to relabel the file, maybe because
+ of a property of the file, a property of the process, or a
+ property of the proposed new label value. For example: a user
+ running at low integrity tries to change the label of a high
+ integrity file. Or perhaps a user running at low integrity
+ tries to change the label of a low integrity file to a high
+ integrity label.</para></footnote> The system administrator
+ may use the following commands to overcome this:</para>
+
+ <screen>&prompt.root; <userinput>setfmac biba/high test</userinput>
+<errorname>Permission denied</errorname>
+&prompt.root; <userinput>setpmac biba/low setfmac biba/high test</userinput>
+&prompt.root; <userinput>getfmac test</userinput>
+test: biba/high</screen>
+
+ <para>As we see above, <command>setpmac</command>
+ can be used to override the policy module's settings by assigning
+ a different label to the invoked process. The
+ <command>getpmac</command> utility is usually used with currently
+ running processes, such as <application>sendmail</application>:
+ although it takes a process ID in place of
+ a command the logic is extremely similar. If users
+ attempt to manipulate a file not in their access, subject to the
+ rules of the loaded policy modules, the
+ <errorname>Operation not permitted</errorname> error
+ will be displayed by the <function>mac_set_link</function>
+ function.</para>
+
+ <sect3>
+ <title>Common Label Types</title>
+
+ <para>For the &man.mac.biba.4;, &man.mac.mls.4; and
+ &man.mac.lomac.4; policy modules, the ability to assign
+ simple labels is provided. These take the form of high,
+ equal and low, what follows is a brief description of
+ what these labels provide:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The <literal>low</literal> label is considered the
+ lowest label setting an object or subject may have.
+ Setting this on objects or subjects will block their
+ access to objects or subjects marked high.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <literal>equal</literal> label should only be
+ placed on objects considered to be exempt from the
+ policy.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <literal>high</literal> label grants an object or
+ subject the highest possible setting.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>With respect to each policy module, each of those settings
+ will instate a different information flow directive. Reading
+ the proper manual pages will further explain the traits of
+ these generic label configurations.</para>
+
+ <sect4>
+ <title>Advanced Label Configuration</title>
+
+ <para>Numeric grade labels are used for
+ <literal>comparison:compartment+compartment</literal>; thus
+ the following:</para>
+
+ <programlisting>biba/10:2+3+6(5:2+3-20:2+3+4+5+6)</programlisting>
+
+ <para>May be interpreted as:</para>
+
+ <para><quote>Biba Policy Label</quote>/<quote>Grade 10</quote>
+ :<quote>Compartments 2, 3 and 6</quote>:
+ (<quote>grade 5 ...</quote>)</para>
+
+ <para>In this example, the first grade would be considered
+ the <quote>effective grade</quote> with
+ <quote>effective compartments</quote>, the second grade
+ is the low grade and the last one is the high grade.
+ In most configurations these settings will not be used;
+ indeed, they offered for more advanced
+ configurations.</para>
+
+ <para>When applied to system objects, they will only have a
+ current grade/compartments as opposed to system subjects
+ as they reflect the range of available rights in the system,
+ and network interfaces, where they are used for access
+ control.</para>
+
+ <para>The grade and compartments in a subject and object pair
+ are used to construct a relationship referred to as
+ <quote>dominance</quote>, in which a subject dominates an
+ object, the object dominates the subject, neither dominates
+ the other, or both dominate each other. The
+ <quote>both dominate</quote> case occurs when the two labels
+ are equal. Due to the information flow nature of Biba, you
+ have rights to a set of compartments,
+ <quote>need to know</quote>, that might correspond to
+ projects, but objects also have a set of compartments.
+ Users may have to subset their rights using
+ <command>su</command> or <command>setpmac</command> in order
+ to access objects in a compartment from which they are not
+ restricted.</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Users and Label Settings</title>
+
+ <para>Users themselves are required to have labels so that
+ their files and processes may properly interact with the
+ security policy defined on the system. This is
+ configured through the <filename>login.conf</filename> file
+ by use of login classes. Every policy module that uses labels
+ will implement the user class setting.</para>
+
+ <para>An example entry containing every policy module setting is displayed
+ below:</para>
+
+ <programlisting>default:\
+ :copyright=/etc/COPYRIGHT:\
+ :welcome=/etc/motd:\
+ :setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
+ :path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
+ :manpath=/usr/share/man /usr/local/man:\
+ :nologin=/usr/sbin/nologin:\
+ :cputime=1h30m:\
+ :datasize=8M:\
+ :vmemoryuse=100M:\
+ :stacksize=2M:\
+ :memorylocked=4M:\
+ :memoryuse=8M:\
+ :filesize=8M:\
+ :coredumpsize=8M:\
+ :openfiles=24:\
+ :maxproc=32:\
+ :priority=0:\
+ :requirehome:\
+ :passwordtime=91d:\
+ :umask=022:\
+ :ignoretime@:\
+ :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:</programlisting>
+
+ <para>The <literal>label</literal> option is used to set the
+ user class default label which will be enforced by
+ <acronym>MAC</acronym>. Users will never be permitted to
+ modify this value, thus it can be considered not optional
+ in the user case. In a real configuration, however, the
+ administrator will never wish to enable every policy module.
+ It is recommended that the rest of this chapter be reviewed
+ before any of this configuration is implemented.</para>
+
+ <note>
+ <para>Users may change their label after the initial login;
+ however, this change is subject constraints of the policy.
+ The example above tells the Biba policy that a process's
+ minimum integrity is 5, its maximum is 15, but the default
+ effective label is 10. The process will run at 10 until
+ it chooses to change label, perhaps due to the user using
+ the setpmac command, which will be constrained by Biba to
+ the range set at login.</para>
+ </note>
+
+ <para>In all cases, after a change to
+ <filename>login.conf</filename>, the login class capability
+ database must be rebuilt using <command>cap_mkdb</command>
+ and this will be reflected throughout every forthcoming
+ example or discussion.</para>
+
+ <para>It is useful to note that many sites may have a
+ particularly large number of users requiring several
+ different user classes. In depth planning is required
+ as this may get extremely difficult to manage.</para>
+
+ <para>Future versions of &os; will include a new way to
+ deal with mapping users to labels; however, this will
+ not be available until some time after &os;&nbsp;5.3.</para>
+ </sect3>
+
+ <sect3>
+ <title>Network Interfaces and Label Settings</title>
+
+ <para>Labels may also be set on network interfaces to help
+ control the flow of data across the network. In all cases
+ they function in the same way the policies function with
+ respect to objects. Users at high settings in
+ <literal>biba</literal>, for example, will not be permitted
+ to access network interfaces with a label of low.</para>
+
+ <para>The <option>maclabel</option> may be passed to
+ <command>ifconfig</command> when setting the
+ <acronym>MAC</acronym> label on network interfaces. For
+ example:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig bge0 maclabel biba/equal</userinput></screen>
+
+ <para>will set the <acronym>MAC</acronym> label of
+ <literal>biba/equal</literal> on the &man.bge.4; interface.
+ When using a setting similar to
+ <literal>biba/high(low-high)</literal> the entire label should
+ be quoted; otherwise an error will be returned.</para>
+
+ <para>Each policy module which supports labeling has a tunable
+ which may be used to disable the <acronym>MAC</acronym>
+ label on network interfaces. Setting the label to
+ <option>equal</option> will have a similar effect. Review
+ the output from <command>sysctl</command>, the policy manual
+ pages, or even the information found later in this chapter
+ for those tunables.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Singlelabel or Multilabel?</title>
+<!-- Stopped here with my edits -->
+ <para>By default the system will use the
+ <option>singlelabel</option> option. But what does this
+ mean to the administrator? There are several differences
+ which, in their own right, offer pros and cons to the
+ flexibility in the systems security model.</para>
+
+ <para>The <option>singlelabel</option> only permits for one
+ label, for instance <literal>biba/high</literal> to be used
+ for each subject or object. It provides for lower
+ administration overhead but decreases the flexibility of
+ policies which support labeling. Many administrators may
+ want to use the <option>multilabel</option> option in
+ their security policy.</para>
+
+ <para>The <option>multilabel</option> option will permit each
+ subject or object to have its own independent
+ <acronym>MAC</acronym> label in
+ place of the standard <option>singlelabel</option> option
+ which will allow only one label throughout the partition.
+ The <option>multilabel</option> and <option>single</option>
+ label options are only required for the policies which
+ implement the labeling feature, including the Biba, Lomac,
+ <acronym>MLS</acronym> and <acronym>SEBSD</acronym>
+ policies.</para>
+
+ <para>In many cases, the <option>multilabel</option> may not need
+ to be set at all. Consider the following situation and
+ security model:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os; web-server using the <acronym>MAC</acronym>
+ framework and a mix of the various policies.</para>
+ </listitem>
+
+ <listitem>
+ <para>This machine only requires one label,
+ <literal>biba/high</literal>, for everything in the system.
+ Here the file system would not require the
+ <option>multilabel</option> option as a single label
+ will always be in effect.</para>
+ </listitem>
+
+ <listitem>
+ <para>But, this machine will be a web server and should have
+ the web server run at <literal>biba/low</literal> to prevent
+ write up capabilities. The Biba policy and how it works
+ will be discussed later, so if the previous comment was
+ difficult to interpret just continue reading and return.
+ The server could use a separate partition set at
+ <literal>biba/low</literal> for most if not all of its
+ runtime state. Much is lacking from this example, for
+ instance the restrictions on data, configuration and user
+ settings; however, this is just a quick example to prove the
+ aforementioned point.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>If any of the non-labeling policies are to be used,
+ then the <option>multilabel</option> option would never
+ be required. These include the <literal>seeotheruids</literal>,
+ <literal>portacl</literal> and <literal>partition</literal>
+ policies.</para>
+
+ <para>It should also be noted that using
+ <option>multilabel</option> with a partition and establishing
+ a security model based on <option>multilabel</option>
+ functionality could open the doors for higher administrative
+ overhead as everything in the file system would have a label.
+ This includes directories, files, and even device
+ nodes.</para>
+
+ <para>The following command will set <option>multilabel</option>
+ on the file systems to have multiple labels. This may only be
+ done in single user mode:</para>
+
+ <screen>&prompt.root; <userinput>tunefs -l enable /</userinput></screen>
+
+ <para>This is not a requirement for the swap file
+ system.</para>
+
+ <note>
+ <para>Some users have experienced problems with setting the
+ <option>multilabel</option> flag on the root partition.
+ If this is the case, please review the
+ <xref linkend="mac-troubleshoot"> of this chapter.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-planning">
+ <title>Planning the Security Configuration</title>
+
+ <para>Whenever a new technology is implemented, a planning phase is
+ always a good idea. During the planning stages, an administrator
+ should in general look at the <quote>big picture</quote>, trying
+ to keep in view at least the following:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The implementation requirements;</para>
+ </listitem>
+
+ <listitem>
+ <para>The implementation goals;</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>For <acronym>MAC</acronym> installations, these include:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>How to classify information and resources available on
+ the target systems.</para>
+ </listitem>
+
+ <listitem>
+ <para>What sorts of information or resources to restrict
+ access to along with the type of restrictions that should be
+ applied.</para>
+ </listitem>
+
+ <listitem>
+ <para>Which <acronym>MAC</acronym> module or modules will be
+ required to achieve this goal.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>It is always possible to reconfigure and change the
+ system resources and security settings, it is quite often very inconvenient to
+ search through the system and fix existing files and user
+ accounts. Planning helps to ensure a trouble-free and efficient
+ trusted system implementation. A trial run of the trusted system,
+ including the configuration, is often vital and definitely
+ beneficial <emphasis>before</emphasis> a <acronym>MAC</acronym>
+ implementation is used on production systems. The idea of just
+ letting loose on a system
+ with <acronym>MAC</acronym> is like setting up for failure.</para>
+
+ <para>Different environments may have explicit needs and
+ requirements. Establishing an in depth and complete security
+ profile will decrease the need of changes once the system
+ goes live. As such, the future sections will cover the
+ different modules available to administrators; describe their
+ use and configuration; and in some cases provide insight on
+ what situations they would be most suitable for. For instance,
+ a web server might roll out the &man.mac.biba.4; and
+ &man.mac.bsdextended.4; policies. In other cases, a machine
+ with very few local users, the &man.mac.partition.4; might
+ be a good choice.</para>
+ </sect1>
+
+ <sect1 id="mac-modules">
+ <title>Module Configuration</title>
+
+ <para>Every module included with the <acronym>MAC</acronym>
+ framework may be either compiled into the kernel as noted above
+ or loaded as a run-time kernel module.
+ The recommended method is to add the module name to the
+ <filename>/boot/loader.conf</filename> file so that it will load
+ during the initial boot operation.</para>
+
+ <para>The following sections will discuss the various
+ <acronym>MAC</acronym> modules and cover their features.
+ Implementing them into a specific environment will also
+ be a consideration of this chapter. Some modules support
+ the use of labeling, which is controlling access by enforcing
+ a label such as <quote>this is allowed and this is not</quote>.
+ A label configuration file may control how files may be accessed,
+ network communication can be exchanged, and more. The previous
+ section showed how the <option>multilabel</option> flag could
+ be set on file systems to enable per-file or per-partition
+ access control.</para>
+
+ <para>A single label configuration would enforce only one label
+ across the system, that is why the <command>tunefs</command>
+ option is called <option>multilabel</option>.</para>
+
+ <sect2 id="mac-seeotheruids">
+ <title>The MAC seeotheruids Module</title>
+
+ <indexterm>
+ <primary>MAC See Other UIDs Policy</primary>
+ </indexterm>
+ <para>Module name: <filename>mac_seeotheruids.ko</filename></para>
+
+ <para>Kernel configuration line:
+ <literal>options MAC_SEEOTHERUIDS</literal></para>
+
+ <para>Boot option:
+ <literal>mac_seeotheruids_load="YES"</literal></para>
+
+ <para>The &man.mac.seeotheruids.4; module mimics and extends
+ the <literal>security.bsd.see_other_uids</literal> and
+ <literal>security.bsd.see_other_gids</literal>
+ <command>sysctl</command> tunables. This option does
+ not require any labels to be set before configuration and
+ can operate transparently with the other modules.</para>
+
+ <para>After loading the module, the following
+ <command>sysctl</command> tunables may be used to control
+ the features:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.seeotheruids.enabled</literal>
+ will enable the module's features and use the default
+ settings. These default settings will deny users the
+ ability to view processes and sockets owned by other
+ users.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>security.mac.seeotheruids.specificgid_enabled</literal>
+ will allow a certain group to be exempt from this policy.
+ To exempt specific groups from this policy, use the
+ <literal>security.mac.seeotheruids.specificgid=<replaceable>XXX</replaceable></literal>
+ <command>sysctl</command> tunable. In the above example,
+ the <replaceable>XXX</replaceable> should be replaced with the
+ numeric group ID to be exempted.</para>
+ </listitem>
+
+ <listitem>
+ <para>
+ <literal>security.mac.seeotheruids.primarygroup_enabled</literal>
+ is used to exempt specific primary groups from this policy.
+ When using this tunable, the
+ <literal>security.mac.seeotheruids.specificgid_enabled</literal>
+ may not be set.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-bsdextended">
+ <title>The MAC bsdextended Module</title>
+
+ <indexterm>
+ <primary>MAC</primary>
+ <secondary>File System Firewall Policy</secondary>
+ </indexterm>
+ <para>Module name: <filename>mac_bsdextended.ko</filename></para>
+
+ <para>Kernel configuration line:
+ <literal>options MAC_BSDEXTENDED</literal></para>
+
+ <para>Boot option:
+ <literal>mac_bsdextended_load="YES"</literal></para>
+
+ <para>The &man.mac.bsdextended.4; module enforces the file system
+ firewall. This module's policy provides an extension to the
+ standard file system permissions model, permitting an
+ administrator to create a firewall-like ruleset to protect files,
+ utilities, and directories in the file system hierarchy. When
+ access to a file system object is attempted, the list of rules
+ is iterated until either a matching rule is located or the end
+ is reached. This behavior may be changed by the use of a
+ &man.sysctl.8; parameter,
+ security.mac.bsdextended.firstmatch_enabled. Similar to
+ other firewall modules in &os;, a file containing access control
+ rules can be created and read by the system at boot time using
+ an &man.rc.conf.5; variable.</para>
+
+ <para>The rule list may be entered using a utility, &man.ugidfw.8;,
+ that has a syntax similar to that of &man.ipfw.8;. More tools
+ can be written by using the functions in the
+ &man.libugidfw.3; library.</para>
+
+ <para>Extreme caution should be taken when working with this
+ module; incorrect use could block access to certain parts of
+ the file system.</para>
+
+ <sect2>
+ <title>Examples</title>
+
+ <para>After the &man.mac.bsdextended.4; module has
+ been loaded, the following command may be used to list the
+ current rule configuration:</para>
+
+ <screen>&prompt.root; <userinput>ugidfw list</userinput>
+0 slots, 0 rules</screen>
+
+ <para>As expected, there are no rules defined. This means that
+ everything is still completely accessible. To create a rule
+ which will block all access by users but leave
+ <username>root</username> unaffected, simply run the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>ugidfw add subject not uid root new object not uid root mode n</userinput></screen>
+
+ <note>
+ <para>In releases prior to &os;&nbsp;5.3, the
+ <parameter>add</parameter> parameter did not exist. In those
+ cases the <parameter>set</parameter> should be used
+ instead. See below for a command example.</para></note>
+
+ <para>This is a very bad idea as it will block all users from
+ issuing even the most simple commands, such as
+ <command>ls</command>. A more patriotic list of rules
+ might be:</para>
+
+ <screen>&prompt.root; <userinput>ugidfw set 2 subject uid <replaceable>user1</replaceable> object uid <replaceable>user2</replaceable> mode n</userinput>
+&prompt.root; <userinput>ugidfw set 3 subject uid <replaceable>user1</replaceable> object gid <replaceable>user2</replaceable> mode n</userinput></screen>
+
+ <para>This will block any and all access, including directory
+ listings, to <username><replaceable>user2</replaceable></username>'s home
+ directory from the username <username>user1</username>.</para>
+
+ <para>In place of <username>user1</username>, the
+ <option>not uid <replaceable>user2</replaceable></option> could
+ be passed. This will enforce the same access restrictions
+ above for all users in place of just one user.</para>
+
+ <note>
+ <para>The <username>root</username> user will be unaffected
+ by these changes.</para>
+ </note>
+
+ <para>This should provide a general idea of how the
+ &man.mac.bsdextended.4; module may be used to help fortify
+ a file system. For more information, see the
+ &man.mac.bsdextended.4; and the &man.ugidfw.8; manual
+ pages.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-ifoff">
+ <title>The MAC ifoff Module</title>
+
+ <indexterm>
+ <primary>MAC Interface Silencing Policy</primary>
+ </indexterm>
+ <para>Module name: <filename>mac_ifoff.ko</filename></para>
+
+ <para>Kernel configuration line:
+ <literal>options MAC_IFOFF</literal></para>
+
+ <para>Boot option: <literal>mac_ifoff_load="YES"</literal></para>
+
+ <para>The &man.mac.ifoff.4; module exists solely to disable network
+ interfaces on the fly and keep network interfaces from being
+ brought up during the initial system boot. It does not require
+ any labels to be set up on the system, nor does it have a
+ dependency on other <acronym>MAC</acronym> modules.</para>
+
+ <para>Most of the control is done through the
+ <command>sysctl</command> tunables listed below.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.ifoff.lo_enabled</literal> will
+ enable/disable all traffic on the loopback (&man.lo.4;)
+ interface.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.ifoff.bpfrecv_enabled</literal> will
+ enable/disable all traffic on the Berkeley Packet Filter
+ interface (&man.bpf.4;)</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.ifoff.other_enabled</literal> will
+ enable/disable traffic on all other interfaces.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>One of the most common uses of &man.mac.ifoff.4; is network
+ monitoring in an environment where network traffic should not
+ be permitted during the boot sequence. Another suggested use
+ would be to write a script which uses
+ <filename role="package">security/aide</filename> to automatically
+ block network traffic if it finds new or altered files in
+ protected directories.</para>
+ </sect1>
+
+ <sect1 id="mac-portacl">
+ <title>The MAC portacl Module</title>
+
+ <indexterm>
+ <primary>MAC Port Access Control List Policy</primary>
+ </indexterm>
+ <para>Module name: <filename>mac_portacl.ko</filename></para>
+
+ <para>Kernel configuration line:
+ <literal>MAC_PORTACL</literal></para>
+
+ <para>Boot option: <literal>mac_portacl_load="YES"</literal></para>
+
+ <para>The &man.mac.portacl.4; module is used to limit binding to
+ local <acronym>TCP</acronym> and <acronym>UDP</acronym> ports
+ using a variety of <command>sysctl</command> variables. In
+ essence &man.mac.portacl.4; makes it possible to allow
+ non-<username>root</username> users to bind to specified
+ privileged ports, i.e. ports fewer than 1024.</para>
+
+ <para>Once loaded, this module will enable the
+ <acronym>MAC</acronym> policy on all sockets. The following
+ tunables are available:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.portacl.enabled</literal> will
+ enable/disable the policy completely.<footnote><para>Due to
+ a bug the <literal>security.mac.portacl.enabled</literal>
+ <command>sysctl</command> variable will not work on
+ &os;&nbsp;5.2.1 or previous releases.</para></footnote></para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.portacl.port_high</literal> will set
+ the highest port number that &man.mac.portacl.4;
+ will enable protection for.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.portacl.suser_exempt</literal> will,
+ when set to a non-zero value, exempt the
+ <username>root</username> user from this policy.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.portacl.rules</literal> will
+ specify the actual mac_portacl policy; see below.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The actual <literal>mac_portacl</literal> policy, as
+ specified in the <literal>security.mac.portacl.rules</literal>
+ sysctl, is a text string of the form:
+ <literal>rule[,rule,...]</literal> with as many rules as
+ needed. Each rule is of the form:
+ <literal>idtype:id:protocol:port</literal>. The
+ <parameter>idtype</parameter> parameter can be
+ <literal>uid</literal> or <literal>gid</literal> and used to
+ interpret the <parameter>id</parameter> parameter as either a
+ user id or group id, respectively. The
+ <parameter>protocol</parameter> parameter is used to determine if
+ the rule should apply to <acronym>TCP</acronym> or
+ <acronym>UDP</acronym> by setting the parameter to
+ <literal>tcp</literal> or <literal>udp</literal>. The final
+ <parameter>port</parameter> parameter is the port number to allow
+ the specified user or group to bind to.</para>
+
+ <note>
+ <para>Since the ruleset is interpreted directly by the kernel
+ only numeric values can be used for the user ID, group ID, and
+ port parameters. I.e. user, group, and port service names
+ cannot be used.</para>
+ </note>
+
+ <para>By default, on &unix;-like systems, ports fewer than 1024
+ can only be used by/bound to privileged processes,
+ i.e. those run as <username>root</username>. For
+ &man.mac.portacl.4; to allow non-privileged processes to bind
+ to ports below 1024 this standard &unix; restriction has to be
+ disabled. This can be accomplished by setting the &man.sysctl.8;
+ variables <literal>net.inet.ip.portrange.reservedlow</literal> and
+ <literal>net.inet.ip.portrange.reservedhigh</literal>
+ to zero.</para>
+
+ <para>See the examples below or review the &man.mac.portacl.4;
+ manual page for further information.</para>
+
+ <sect2>
+ <title>Examples</title>
+
+ <para>The following examples should illuminate the above
+ discussion a little better:</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.port_high=1023</userinput>
+&prompt.root; <userinput>sysctl net.inet.ip.portrange.reservedlow=0 net.inet.ip.portrange.reservedhigh=0</userinput></screen>
+
+ <para>First we set &man.mac.portacl.4; to cover the standard
+ privileged ports and disable the normal &unix; bind
+ restrictions.</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.suser_exempt=1</userinput></screen>
+
+ <para>The <username>root</username> user should not be crippled
+ by this policy, thus set the
+ <literal>security.mac.portacl.suser_exempt</literal> to a
+ non-zero value. The &man.mac.portacl.4; module
+ has now been set up to behave the same way &unix;-like systems
+ behave by default.</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:80:tcp:80</userinput></screen>
+
+ <para>Allow the user with <acronym>UID</acronym> 80 (normally
+ the <username>www</username> user) to bind to port 80.
+ This can be used to allow the <username>www</username>
+ user to run a web server without ever having
+ <username>root</username> privilege.</para>
+
+ <screen>&prompt.root; <userinput>sysctl security.mac.portacl.rules=uid:1001:tcp:110,uid:1001:tcp:995</userinput></screen>
+
+ <para>Permit the user with the <acronym>UID</acronym> of
+ 1001 to bind to the <acronym>TCP</acronym> ports 110
+ (<quote>pop3</quote>) and 995 (<quote>pop3s</quote>).
+ This will permit this user to start a server that accepts
+ connections on ports 110 and 995.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-partition">
+ <title>The MAC partition Module</title>
+
+ <indexterm>
+ <primary>MAC Process Partition Policy</primary>
+ </indexterm>
+ <para>Module name: <filename>mac_partition.ko</filename></para>
+
+ <para>Kernel configuration line:
+ <literal>options MAC_PARTITION</literal></para>
+
+ <para>Boot option:
+ <literal>mac_partition_load="YES"</literal></para>
+
+ <para>The &man.mac.partition.4; policy will drop processes into
+ specific <quote>partitions</quote> based on their
+ <acronym>MAC</acronym> label. Think of it as a special
+ type of &man.jail.8;, though that is hardly a worthy
+ comparison.</para>
+
+ <para>This is one module that should be added to the
+ &man.loader.conf.5; file so that it loads
+ and enables the policy during the boot process.</para>
+
+ <para>Most configuration for this policy is done using
+ the &man.setpmac.8; utility which will be explained below.
+ The following <command>sysctl</command> tunable is
+ available for this policy:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.partition.enabled</literal> will
+ enable the enforcement of <acronym>MAC</acronym> process
+ partitions.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>When this policy is enabled, users will only be permitted
+ to see their processes, and any others within their partition,
+ but will not be permitted to work with
+ utilities outside the scope of this partition. For instance, a user in the
+ <literal>insecure</literal> class above will not be permitted
+ to access the <command>top</command> command as well as many
+ other commands that must spawn a process.</para>
+
+ <para>To set or drop utilities into a partition label, use the
+ <command>setpmac</command> utility:</para>
+
+ <screen>&prompt.root; <userinput>setpmac partition/13 top</userinput></screen>
+
+ <para>This will add the <command>top</command> command to the
+ label set on users in the <literal>insecure</literal> class.
+ Note that all processes spawned by users
+ in the <literal>insecure</literal> class will stay in the
+ <literal>partition/13</literal> label.</para>
+
+ <sect2>
+ <title>Examples</title>
+
+ <para>The following command will show you the partition label
+ and the process list:</para>
+
+ <screen>&prompt.root; <userinput>ps Zax</userinput></screen>
+
+ <para>This next command will allow the viewing of another
+ user's process partition label and that user's currently
+ running processes:</para>
+
+ <screen>&prompt.root; <userinput>ps -ZU trhodes</userinput></screen>
+
+ <note>
+ <para>Users can see processes in <username>root</username>'s
+ label unless the &man.mac.seeotheruids.4; policy is
+ loaded.</para>
+ </note>
+
+ <para>A really crafty implementation could have all of the
+ services disabled in <filename>/etc/rc.conf</filename> and
+ started by a script that starts them with the proper
+ labeling set.</para>
+
+ <note>
+ <para>The following policies support integer settings
+ in place of the three default labels offered. These options,
+ including their limitations, are further explained in
+ the module manual pages.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-mls">
+ <title>The MAC Multi-Level Security Module</title>
+
+ <indexterm>
+ <primary>MAC Multi-Level Security Policy</primary>
+ </indexterm>
+ <para>Module name: <filename>mac_mls.ko</filename></para>
+
+ <para>Kernel configuration line:
+ <literal>options MAC_MLS</literal></para>
+
+ <para>Boot option: <literal>mac_mls_load="YES"</literal></para>
+
+ <para>The &man.mac.mls.4; policy controls access between subjects
+ and objects in the system by enforcing a strict information
+ flow policy.</para>
+
+ <para>In <acronym>MLS</acronym> environments, a
+ <quote>clearance</quote> level is set in each subject or objects
+ label, along with compartments. Since these clearance or
+ sensibility levels can reach numbers greater than six thousand;
+ it would be a daunting task for any system administrator to
+ thoroughly configure each subject or object. Thankfully, three
+ <quote>instant</quote> labels are already included in this
+ policy.</para>
+
+ <para>These labels are <literal>mls/low</literal>,
+ <literal>mls/equal</literal> and <literal>mls/high</literal>.
+ Since these labels are described in depth in the manual page,
+ they will only get a brief description here:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The <literal>mls/low</literal> label contains a low
+ configuration which permits it to be dominated by all other
+ objects. Anything labeled with <literal>mls/low</literal>
+ will have a low clearance level and not be permitted to access
+ information of a higher level. In addition, this label will
+ prevent objects of a higher clearance level from writing or
+ passing information on to them.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <literal>mls/equal</literal> label should be
+ placed on objects considered to be exempt from the
+ policy.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <literal>mls/high</literal> label is the highest level
+ of clearance possible. Objects assigned this label will
+ hold dominance over all other objects in the system; however,
+ they will not permit the leaking of information to objects
+ of a lower class.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><acronym>MLS</acronym> provides for:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>A hierarchical security level with a set of non
+ hierarchical categories;</para>
+ </listitem>
+
+ <listitem>
+ <para>Fixed rules: no read up, no write down (a subject can
+ have read access to objects on its own level or below, but
+ not above. Similarly, a subject can have write access to
+ objects on its own level or above but not beneath.);</para>
+ </listitem>
+
+ <listitem>
+ <para>Secrecy (preventing inappropriate disclosure
+ of data);</para>
+ </listitem>
+
+ <listitem>
+ <para>Basis for the design of systems that concurrently handle
+ data at multiple sensitivity levels (without leaking
+ information between secret and confidential).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The following <command>sysctl</command> tunables are
+ available for the configuration of special services and
+ interfaces:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.mls.enabled</literal> is used to
+ enable/disable the <acronym>MLS</acronym> policy.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.mls.ptys_equal</literal> will label
+ all &man.pty.4; devices as <literal>mls/equal</literal> during
+ creation.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.mls.revocation_enabled</literal> is
+ used to revoke access to objects after their label changes
+ to a label of a lower grade.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.mls.max_compartments</literal> is
+ used to set the maximum number of compartment levels with
+ objects; basically the maximum compartment number allowed
+ on a system.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>To manipulate the <acronym>MLS</acronym> labels, the
+ &man.setfmac.8; command has been provided. To assign a label
+ to an object, issue the following command:</para>
+
+ <screen>&prompt.root; <userinput>setfmac mls/5 test</userinput></screen>
+
+ <para>To get the <acronym>MLS</acronym> label for the file
+ <filename>test</filename> issue the following command:</para>
+
+ <screen>&prompt.root; <userinput>getfmac test</userinput></screen>
+
+ <para>This is a summary of the <acronym>MLS</acronym>
+ policy's features. Another approach is to create a master policy
+ file in <filename class="directory">/etc</filename> which
+ specifies the <acronym>MLS</acronym> policy information and to
+ feed that file into the <command>setfmac</command> command. This
+ method will be explained after all policies are covered.</para>
+
+ <sect2>
+ <title>Planning Mandatory Sensitivity</title>
+
+ <para>With the Multi-Level Security Policy Module, an
+ administrator plans for controlling the flow of sensitive
+ information. By default, with its block read up block write
+ down nature, the system defaults everything to a low state.
+ Everything is accessible and an administrator
+ slowly changes this during the configuration stage; augmenting
+ the confidentiality of the information.</para>
+
+ <para>Beyond the three basic label options above, an administrator
+ may group users and groups as required to block the information
+ flow between them. It might be easier to look at the
+ information in clearance levels familiarized with words, for
+ instance classifications such as
+ <literal>Confidential</literal>, <literal>Secret</literal>,
+ and <literal>Top Secret</literal>. Some administrators might
+ just create different groups based on project levels.
+ Regardless of classification method, a well thought out plan
+ must exist before implementing such a restrictive policy.</para>
+
+ <para>Some example situations for this security policy module
+ could be an e-commerce web server, a file server holding critical
+ company information, and financial institution environments.
+ The most unlikely place would be a personal workstation with
+ only two or three users.</para>
+ </sect1>
+
+ <sect1 id="mac-biba">
+ <title>The MAC Biba Module</title>
+
+ <indexterm>
+ <primary>MAC Biba Integrity Policy</primary>
+ </indexterm>
+ <para>Module name: <filename>mac_biba.ko</filename></para>
+
+ <para>Kernel configuration line: <literal>options MAC_BIBA</literal></para>
+
+ <para>Boot option: <literal>mac_biba_load="YES"</literal></para>
+
+ <para>The &man.mac.biba.4; module loads the <acronym>MAC</acronym>
+ Biba policy. This policy works much like that of the
+ <acronym>MLS</acronym> policy with the exception that the rules
+ for information flow
+ are slightly reversed. This is said to prevent the downward
+ flow of sensitive information whereas the <acronym>MLS</acronym>
+ policy prevents the upward flow of sensitive information; thus,
+ much of this section can apply to both policies.</para>
+
+ <para>In Biba environments, an <quote>integrity</quote> label is
+ set on each subject or object. These labels are made up of
+ hierarchal grades, and non-hierarchal components. As an object's
+ or subject's grade ascends, so does its integrity.</para>
+
+ <para>Supported labels are <literal>biba/low</literal>,
+ <literal>biba/equal</literal>, and <literal>biba/high</literal>;
+ as explained below:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The <literal>biba/low</literal> label is considered the
+ lowest integrity an object or subject may have. Setting
+ this on objects or subjects will block their write access
+ to objects or subjects marked high. They still have read
+ access though.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <literal>biba/equal</literal> label should only be
+ placed on objects considered to be exempt from the
+ policy.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <literal>biba/high</literal> label will permit
+ writing to objects set at a lower label, but not
+ permit reading that object. It is recommended that this
+ label be placed on objects that affect the integrity of
+ the entire system.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Biba provides for:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Hierarchical integrity level with a set of non
+ hierarchical integrity categories;</para>
+ </listitem>
+
+ <listitem>
+ <para>Fixed rules: no write up, no read down (opposite of
+ <acronym>MLS</acronym>). A subject can have write access
+ to objects on its own level or below, but not above. Similarly, a
+ subject can have read access to objects on its own level
+ or above, but not below;</para>
+ </listitem>
+
+ <listitem>
+ <para>Integrity (preventing inappropriate modification of
+ data);</para>
+ </listitem>
+
+ <listitem>
+ <para>Integrity levels (instead of MLS sensitivity
+ levels).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The following <command>sysctl</command> tunables can
+ be used to manipulate the Biba policy.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><literal>security.mac.biba.enabled</literal> may be used
+ to enable/disable enforcement of the Biba policy on the
+ target machine.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.biba.ptys_equal</literal> may be
+ used to disable the Biba policy on &man.pty.4;
+ devices.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>security.mac.biba.revocation_enabled</literal>
+ will force the revocation of access to objects if the label
+ is changed to dominate the subject.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>To access the Biba policy setting on system objects, use
+ the <command>setfmac</command> and <command>getfmac</command>
+ commands:</para>
+
+ <screen>&prompt.root; <userinput>setfmac biba/low test</userinput>
+&prompt.root; <userinput>getfmac test</userinput>
+test: biba/low</screen>
+
+ <sect2>
+ <title>Planning Mandatory Integrity</title>
+
+ <para>Integrity, different from sensitivity, guarantees that the
+ information will never be manipulated by untrusted parties.
+ This includes information passed between subjects, objects,
+ and both. It ensures that users will only be able to modify
+ and in some cases even access information they explicitly need
+ to.</para>
+
+ <para>The &man.mac.biba.4; security policy module permits an
+ administrator to address which files and programs a user or
+ users may see and invoke while assuring that the programs and
+ files are free from threats and trusted by the system for that
+ user, or group of users.</para>
+
+ <para>During the initial planning phase, an administrator must be
+ prepared to partition users into grades, levels, and areas.
+ Users will be blocked access not only to data but programs
+ and utilities both before and after they start. The system will
+ default to a high label once this policy module is enabled, and
+ it is up to the administrator to configure the different grades
+ and levels for users. Instead of using clearance levels as
+ described above, a good planning method could include topics.
+ For instance, only allow developers modification access to the source code
+ repository, source code compiler, and other development
+ utilities. While other users would be grouped into other
+ categories such as testers, designers, or just ordinary
+ users and would only be permitted read access.</para>
+
+ <para>With its natural security control, a lower integrity subject
+ is unable to write to a higher integrity subject; a higher
+ integrity subject cannot observe or read a lower integrity
+ object. Setting a label at the lowest possible grade could make
+ it inaccessible to subjects. Some prospective environments for
+ this security policy module would include a constrained web
+ server, development and test machine, and source code
+ repository. A less useful implementation would be a personal
+ workstation, a machine used as a router, or a network
+ firewall.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-lomac">
+ <title>The MAC LOMAC Module</title>
+
+ <indexterm>
+ <primary>MAC LOMAC</primary>
+ </indexterm>
+ <para>Module name: <filename>mac_lomac.ko</filename></para>
+
+ <para>Kernel configuration line: <literal>options MAC_LOMAC</literal></para>
+ <para>Boot option: <literal>mac_lomac_load="YES"</literal></para>
+
+ <para>Unlike the <acronym>MAC</acronym> Biba policy, the
+ &man.mac.lomac.4; policy permits access to lower integrity
+ objects only after decreasing the integrity level to not disrupt
+ any integrity rules.</para>
+
+ <para>The <acronym>MAC</acronym> version of the Low-watermark
+ integrity policy, not to be confused with the older &man.lomac.4;
+ implementation, works almost identically to Biba, but with the
+ exception of using floating labels to support subject
+ demotion via an auxiliary grade compartment. This secondary
+ compartment takes the form of <literal>[auxgrade]</literal>.
+ When assigning a lomac policy with an auxiliary grade, it
+ should look a little bit like: <literal>lomac/10[2]</literal>
+ where the number two (2) is the auxiliary grade.</para>
+
+ <para>The <acronym>MAC</acronym> LOMAC policy relies on the
+ ubiquitous labeling of all system objects with integrity labels,
+ permitting subjects to read from low integrity objects and then
+ downgrading the label on the subject to prevent future writes to
+ high integrity objects. This is the
+ <literal>[auxgrade]</literal> option discussed above, thus the
+ policy may provide for greater compatibility and require less
+ initial configuration than Biba.</para>
+
+ <sect2>
+ <title>Examples</title>
+
+ <para>Like the Biba and <acronym>MLS</acronym> policies;
+ the <command>setfmac</command> and <command>setpmac</command>
+ utilities may be used to place labels on system objects:</para>
+
+ <screen>&prompt.root; <userinput>setfmac /usr/home/trhodes lomac/high[low]</userinput>
+&prompt.root; <userinput>getfmac /usr/home/trhodes</userinput> lomac/high[low]</screen>
+
+ <para>Notice the auxiliary grade here is <literal>low</literal>,
+ this is a feature provided only by the <acronym>MAC</acronym>
+ LOMAC policy.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-implementing">
+ <title>Nagios in a MAC Jail</title>
+
+ <indexterm>
+ <primary>Nagios in a MAC Jail</primary>
+ </indexterm>
+
+ <para>The following demonstration will implement a secure
+ environment using various <acronym>MAC</acronym> modules
+ with properly configured policies. This is only a test and
+ should not be considered the complete answer to everyone's
+ security woes. Just implementing a policy and ignoring it
+ never works and could be disastrous in a production
+ environment.</para>
+
+ <para>Before beginning this process, the
+ <literal>multilabel</literal> option must be set on each file
+ system as stated at the beginning of this chapter. Not doing
+ so will result in errors. While at it, ensure that the
+ <filename role="port">net-mngt/nagios-plugins</filename>,
+ <filename role="port">net-mngt/nagios</filename>, and
+ <filename role="port">www/apache13</filename> ports are all
+ installed, configured, and working correctly.</para>
+
+ <sect2>
+ <title>Create an insecure User Class</title>
+
+ <para>Begin the procedure by adding the following user class
+ to the <filename>/etc/login.conf</filename> file:</para>
+
+ <programlisting>insecure:\
+:copyright=/etc/COPYRIGHT:\
+:welcome=/etc/motd:\
+:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
+:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin
+:manpath=/usr/share/man /usr/local/man:\
+:nologin=/usr/sbin/nologin:\
+:cputime=1h30m:\
+:datasize=8M:\
+:vmemoryuse=100M:\
+:stacksize=2M:\
+:memorylocked=4M:\
+:memoryuse=8M:\
+:filesize=8M:\
+:coredumpsize=8M:\
+:openfiles=24:\
+:maxproc=32:\
+:priority=0:\
+:requirehome:\
+:passwordtime=91d:\
+:umask=022:\
+:ignoretime@:\
+:label=biba/10(10-10):</programlisting>
+
+ <para>And adding the following line to the default user
+ class:</para>
+
+ <programlisting>:label=biba/high:</programlisting>
+
+ <para>Once this is completed, the following command must be
+ issued to rebuild the database:</para>
+
+ <screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Boot Configuration</title>
+
+ <para>Do not reboot yet, just add the following lines to
+ <filename>/boot/loader.conf</filename> so the required
+ modules will load during system initialization:</para>
+
+ <programlisting>mac_biba_load="YES"
+mac_seeotheruids_load="YES"</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Configure Users</title>
+
+ <para>Set the <username>root</username> user to the default
+ class using:</para>
+
+ <screen>&prompt.root; <userinput>pw usermod root -L default</userinput></screen>
+
+ <para>All user accounts that are not <username>root</username>
+ or system users will now require a login class. The login
+ class is required otherwise users will be refused access
+ to common commands such as &man.vi.1;.
+ The following <command>sh</command> script should do the
+ trick:</para>
+
+ <screen>&prompt.root; <userinput>for x in `awk -F: '($3 &gt;= 1001) &amp;&amp; ($3 != 65534) { print $1 }' \</userinput>
+ <userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput></screen>
+
+ <para>Drop the <username>nagios</username> and
+ <username>www</username> users into the insecure class:</para>
+
+ <screen>&prompt.root; <userinput>pw usermod nagios -L insecure</userinput></screen>
+ <screen>&prompt.root; <userinput>pw usermod www -L insecure</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Create the Contexts File</title>
+
+ <para>A contexts file should now be created; the following example
+ file should be placed in
+ <filename>/etc/policy.contexts</filename>.</para>
+
+ <programlisting># This is the default BIBA policy for this system.
+
+# System:
+/var/run biba/equal
+/var/run/* biba/equal
+
+/dev biba/equal
+/dev/* biba/equal
+
+/var biba/equal
+/var/spool biba/equal
+/var/spool/* biba/equal
+
+/var/log biba/equal
+/var/log/* biba/equal
+
+/tmp biba/equal
+/tmp/* biba/equal
+/var/tmp biba/equal
+/var/tmp/* biba/equal
+
+/var/spool/mqueue biba/equal
+/var/spool/clientmqueue biba/equal
+
+# For Nagios:
+/usr/local/etc/nagios
+/usr/local/etc/nagios/* biba/10
+
+/var/spool/nagios biba/10
+/var/spool/nagios/* biba/10
+
+# For apache
+/usr/local/etc/apache biba/10
+/usr/local/etc/apache/* biba/10</programlisting>
+
+ <para>This policy will enforce security by setting restrictions
+ on the flow of information. In this specific configuration,
+ users, <username>root</username> and others, should never be
+ allowed to access <application>Nagios</application>.
+ Configuration files and processes that are a part of
+ <application>Nagios</application> will be completely self
+ contained or jailed.</para>
+
+ <para>This file may now be read into our system by issuing the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput>
+&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput></screen>
+
+ <note>
+ <para>The above file system layout may be different depending
+ on environment; however, it must be run on every single file
+ system.</para>
+ </note>
+
+ <para>The <filename>/etc/mac.conf</filename> file requires
+ the following modifications in the main section:</para>
+
+ <programlisting>default_labels file ?biba
+default_labels ifnet ?biba
+default_labels process ?biba
+default_labels socket ?biba</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Enable Networking</title>
+
+ <para>Add the following line to
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>security.mac.biba.trust_all_interfaces=1</programlisting>
+
+ <para>And the following to the network card configuration stored
+ in <filename>rc.conf</filename>. If the primary Internet
+ configuration is done via <acronym>DHCP</acronym>, this may
+ need to be configured manually after every system boot:</para>
+
+ <programlisting>maclabel biba/equal</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Testing the Configuration</title>
+
+ <indexterm>
+ <primary>MAC Configuration Testing</primary>
+ </indexterm>
+
+ <para>Ensure that the web server and
+ <application>Nagios</application> will not be started
+ on system initialization, and reboot. Ensure the
+ <username>root</username> user cannot access any of the files
+ in the <application>Nagios</application> configuration
+ directory. If <username>root</username> can issue an &man.ls.1;
+ command on <filename>/var/spool/nagios</filename>, then something
+ is wrong. Otherwise a <quote>permission denied</quote> error
+ should be returned.</para>
+
+ <para>If all seems well, <application>Nagios</application>,
+ <application>Apache</application>, and
+ <application>Sendmail</application> can now be started in a way
+ fitting of the security policy. The following commands will
+ make this happen:</para>
+
+ <screen>&prompt.root; <userinput>cd /etc/mail &amp;&amp; make stop &amp;&amp; \
+setpmac biba/equal make start &amp;&amp; setpmac biba/10\(10-10\) apachectl start &amp;&amp; \
+setpmac biba/10\(10-10\) /usr/local/etc/rc.d/nagios.sh forcestart</userinput></screen>
+
+ <para>Double check to ensure that everything is working
+ properly. If not, check the log files or error messages. Use
+ the &man.sysctl.8; utility to disable the &man.mac.biba.4;
+ security policy module enforcement and try starting everything
+ again, like normal.</para>
+
+ <note>
+ <para>The <username>root</username> user can change the security
+ enforcement and edit the configuration files without fear.
+ The following command will permit the degradation of the
+ security policy to a lower grade for a newly spawned
+ shell:</para>
+
+ <screen>&prompt.root; <userinput>setpmac biba/10 csh</userinput></screen>
+
+ <para>To block this from happening, force the user into a range
+ via &man.login.conf.5;. If &man.setpmac.8; attempts to run
+ a command outside of the compartment's range, an error will
+ be returned and the command will not be executed. In this
+ case, setting root to
+ <literal>biba/high(high-high)</literal>.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mac-userlocked">
+ <title>User Lock Down</title>
+
+ <para>This example considers a relatively small, fewer than fifty
+ users, storage system. Users would have login capabilities, and
+ be permitted to not only store data but access resources as
+ well.</para>
+
+ <para>For this scenario, the &man.mac.bsdextended.4; mixed with
+ &man.mac.seeotheruids.4; could co-exist and block access not
+ only to system objects but to hide user processes as well.
+
+ <para>Begin by adding the following lines to
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>mac_seeotheruids_enabled="YES"</programlisting>
+
+ <para>The &man.mac.bsdextended.4; security policy module may be
+ activated through the use of the following rc.conf
+ variable:</para>
+
+ <programlisting>ugidfw_enable="YES"</programlisting>
+
+ <para>Default rules stored in
+ <filename>/etc/rc.bsdextended</filename> will be loaded at system
+ initialization; however, the default entries may need
+ modification. Since this machine is expected only to service
+ users, everything may be left commented out except the last
+ two. These will force the loading of user owned system objects
+ by default.</para>
+
+ <para>Add the required users to this machine and reboot. For
+ testing purposes, try logging in as a different user across two
+ consoles. Run the <command>ps aux</command> command to see if
+ processes of other users are visible. Try to run &man.ls.1; on
+ another users home directory, it should fail.</para>
+
+ <para>Do not try to test with the <username>root</username> user
+ unless the specific <command>sysctl</command>s have been modified
+ to block super user access.</para>
+
+ <note>
+ <para>When a new user is added, their &man.mac.bsdextended.4;
+ rule will not be in the ruleset list. To update the ruleset
+ quickly, simply unload the security policy module and reload
+ it again using the &man.kldunload.8; and &man.kldload.8;
+ utilities.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="mac-troubleshoot">
+ <title>Troubleshooting the MAC Framework</title>
+
+ <indexterm>
+ <primary>MAC Troubleshooting</primary>
+ </indexterm>
+
+ <para>During the development stage, a few users reported problems
+ with normal configuration. Some of these problems
+ are listed below:</para>
+
+ <sect2>
+ <title>The <option>multilabel</option> option cannot be enabled on
+ <filename>/</filename></title>
+
+ <para>The <option>multilabel</option> flag does not stay
+ enabled on my root (<filename>/</filename>) partition!</para>
+
+
+ <para>It seems that one out of every fifty users has this
+ problem, indeed, we had this problem during our initial
+ configuration. Further observation of this so called
+ <quote>bug</quote> has lead me to believe that it is a
+ result of either incorrect documentation or misinterpretation
+ of the documentation. Regardless of why it happened, the
+ following steps may be taken to resolve it:</para>
+
+ <procedure>
+ <step>
+ <para>Edit <filename>/etc/fstab</filename> and set the root
+ partition at <option>ro</option> for read-only.</para>
+ </step>
+
+ <step>
+ <para>Reboot into single user mode.</para>
+ </step>
+
+ <step>
+ <para>Run <command>tunefs</command> <option>-l enable</option>
+ on <filename>/</filename>.</para>
+ </step>
+
+ <step>
+ <para>Reboot the system into normal mode.</para>
+ </step>
+
+ <step>
+ <para>Run <command>mount</command> <option>-urw</option>
+ <filename>/</filename> and change the <option>ro</option>
+ back to <option>rw</option> in <filename>/etc/fstab</filename>
+ and reboot the system again.</para>
+ </step>
+
+ <step>
+ <para>Double-check the output from the
+ <command>mount</command> to ensure that
+ <option>multilabel</option> has been properly set on the
+ root file system.</para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2>
+ <title>Cannot start a X11 server after <acronym>MAC</acronym></title>
+
+ <para>After establishing a secure environment with
+ <acronym>MAC</acronym>, I am no longer able to start
+ X!</para>
+
+ <para>This could be caused by the <acronym>MAC</acronym>
+ <literal>partition</literal> policy or by a mislabeling in
+ one of the <acronym>MAC</acronym> labeling policies. To
+ debug, try the following:</para>
+
+ <procedure>
+ <step>
+ <para>Check the error message; if the user is in the
+ <literal>insecure</literal> class, the
+ <literal>partition</literal> policy may be the culprit.
+ Try setting the user's class back to the
+ <literal>default</literal> class and rebuild the database
+ with the <command>cap_mkdb</command> command. If this
+ does not alleviate the problem, go to step two.</para>
+ </step>
+
+ <step>
+ <para>Double-check the label policies. Ensure that the
+ policies are set correctly for the user in question, the
+ X11 application, and
+ the <filename class="directory">/dev</filename>
+ entries.</para>
+ </step>
+
+ <step>
+ <para>If neither of these resolve the problem, send the
+ error message and a description of your environment to
+ the TrustedBSD discussion lists located at the
+ <ulink url="http://www.TrustedBSD.org">TrustedBSD</ulink>
+ website or to the &a.questions;
+ mailing list.</para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2>
+ <title>Error: &man..secure.path.3; cannot stat <filename>.login_conf</filename></title>
+
+ <para>When I attempt to switch from the <username>root</username>
+ to another user in the system, the error message
+ <errorname>_secure_path: unable to state .login_conf</errorname>.</para>
+
+ <para>This message is usually shown when the user has a higher
+ label setting then that of the user whom they are attempting to
+ become. For instance a user on the system,
+ <username>joe</username>, has a default label of
+ <option>biba/low</option>. The <username>root</username> user,
+ who has a label of <option>biba/high</option>, cannot view
+ <username>joe</username>'s home directory. This will happen
+ regardless if <username>root</username> has used the
+ <command>su</command> command to become <username>joe</username>,
+ or not. In this scenario, the Biba integrity model will not
+ permit <username>root</username> to view objects set at a lower
+ integrity level.</para>
+ </sect2>
+
+ <sect2>
+ <title>The <username>root</username> username is broken!</title>
+
+ <para>In normal or even single user mode, the
+ <username>root</username> is not recognized. The
+ <command>whoami</command> command returns 0 (zero) and
+ <command>su</command> returns <errorname>who are you?</errorname>.
+ What could be going on?</para>
+
+ <para>This can happen if a labeling policy has been disabled,
+ either by a &man.sysctl.8; or the policy module was unloaded.
+ If the policy is being disabled or has been temporarily
+ disabled, then the login capabilities database needs to be
+ reconfigured with the <option>label</option> option being
+ removed. Double check the <filename>login.conf</filename>
+ file to ensure that all <option>label</option> options have
+ been removed and rebuild the database with the
+ <command>cap_mkdb</command> command.</para>
+
+ <para>This may also happen if a policy restricts access to the
+ <filename>master.passwd</filename> file or database. Usually
+ caused by an administrator altering the file under a label
+ which conflicts with the general policy being used by the
+ system. In these cases, the user information would be read
+ by the system and access would be blocked as the file has
+ inherited the new label. Disable the policy via a
+ &man.sysctl.8; and everything should return to normal.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/mail/chapter.sgml b/el_GR.ISO8859-7/books/handbook/mail/chapter.sgml
new file mode 100644
index 0000000000..f1e2c14c67
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/mail/chapter.sgml
@@ -0,0 +1,2410 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Ηλεκτρονικό Ταχυδρομείο
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/mail/chapter.sgml
+ %SRCID% 1.142
+
+-->
+
+<chapter id="mail">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Bill</firstname>
+ <surname>Lloyd</surname>
+ <contrib>Αρχική συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Γράφτηκε ξανά από τον </contrib>
+ <!-- 2 Dec 1999 -->
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Ηλεκτρονικό Ταχυδρομείο</title>
+
+ <sect1 id="mail-synopsis">
+ <title>Σύνοψη</title>
+ <indexterm><primary>email</primary></indexterm>
+
+ <para>Το <quote>ηλεκτρονικό ταχυδρομείο</quote>, ευρύτερα γνωστό ως
+ email, είναι στις μέρες μας μια από τις πλέον διαδεδομένες μορφές
+ επικοινωνίας. Το κεφάλαιο αυτό παρέχει μια βασική εισαγωγή στη
+ λειτουργία ενός διακομιστή email στο &os;, καθώς και μια εισαγωγή στη
+ διαδικασία αποστολής και λήψης email στο &os;. Ωστόσο η αναφορά αυτή
+ δεν πρέπει να θεωρηθεί πλήρης, καθώς υπάρχουν ακόμα αρκετοί παράγοντες
+ που πρέπει να ληφθούν υπόψιν και έχουν εδώ παραλειφθεί. Για πιο πλήρη
+ ανάλυση του θέματος, ο αναγνώστης παραπέμπεται στα πολλά εξαιρετικά
+ βιβλία που αναφέρονται στο <xref linkend="bibliography">.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το λογισμικό που χρησιμοποιείται στην αποστολή και λήψη
+ ηλεκτρονικού ταχυδρομείου.</para>
+ </listitem>
+
+ <listitem>
+ <para>Που βρίσκονται τα βασικά αρχεία ρυθμίσεων του <application>
+ sendmail</application> στο &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τη διαφορά μεταξύ απομακρυσμένων και τοπικών θυρίδων
+ ταχυδρομείου (mailboxes).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εμποδίσετε ανεπιθύμητους spammers από το να
+ χρησιμοποιήσουν τον δικό σας εξυπηρετητή email ως
+ αναμεταδότη.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε και να ρυθμίσετε ένα εναλλακτικό
+ Αντιπρόσωπο Μεταφοράς Ταχυδρομείου (Mail Transfer Agent) στο
+ σύστημα σας, αντικαθιστώντας έτσι το
+ <application>sendmail</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αντιμετωπίσετε συνηθισμένα προβλήματα στον
+ διακομιστή ταχυδρομείου.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε το SMTP με το UUCP.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το σύστημα σας μόνο για αποστολή email.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε το email μέσω επιλογικής (dialup)
+ σύνδεσης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε πιστοποίηση αυθεντικότητας στο SMTP για
+ πρόσθετη ασφάλεια.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε και να χρησιμοποιήσετε μια εφαρμογή
+ αποστολής και λήψης email για χρήστες, όπως το
+ <application>mutt</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να κατεβάσετε το email σας από ένα απομακρυσμένο διακομιστή
+ <acronym>POP</acronym> ή <acronym>IMAP</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εφαρμόσετε φίλτρα και κανόνες στην εισερχόμενη
+ αλληλογραφία σας, με αυτόματο τρόπο.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να ρυθμίσετε σωστά τη σύνδεση του δικτύου σας
+ (<xref linkend="advanced-networking">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να ρυθμίσετε σωστά τις πληροφορίες DNS για τον διακομιστή
+ αλληλογραφίας σας (<xref linkend="network-servers">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου
+ κατασκευαστή (<xref linkend="ports">).</para></listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="mail-using">
+ <title>Χρησιμοποιώντας το Ηλεκτρονικό Ταχυδρομείο</title>
+ <indexterm><primary>POP</primary></indexterm>
+ <indexterm><primary>IMAP</primary></indexterm>
+ <indexterm><primary>DNS</primary></indexterm>
+
+ <para>Σε κάθε ανταλλαγή ηλεκτρονικού ταχυδρομείου, συνεργάζονται πέντε
+ βασικά τμήματα: Το <link linkend="mail-mua">πρόγραμμα χρήστη</link>,
+ ο <link linkend="mail-mta">δαίμονας του εξυπηρετητή</link>, το <link
+ linkend="mail-dns">DNS</link>, μια <link
+ linkend="mail-receive">απομακρυσμένη ή τοπική θυρίδα ταχυδρομείου
+ (mailbox)</link> και
+ φυσικά ο <link linkend="mail-host">υπολογιστής που διαχειρίζεται το
+ email (mailhost)</link>.</para>
+
+ <sect2 id="mail-mua">
+ <title>Το Πρόγραμμα Χρήστη</title>
+
+ <para>Η κατηγορία αυτή περιλαμβάνει προγράμματα όπως τα
+ <application>mutt</application>,
+ <application>alpine</application>, <application>elm</application>,
+ και <command>mail</command>, καθώς και προγράμματα που διαθέτουν
+ <acronym>GUI</acronym> όπως είναι τα
+ <application>balsa</application>,
+ <application>xfmail</application> (για να δώσουμε μερικά
+ παραδείγματα) και κάποια πιο
+ <quote>εξελιγμένα</quote> όπως είναι οι φυλλομετρητές για το WWW.
+ Τα προγράμματα αυτά, απλώς μεταβιβάζουν τις συναλλαγές ταχυδρομείου
+ στον τοπικό <link linkend="mail-host"><quote>mailhost</quote></link>,
+ είτε καλώντας κάποιον από τους <link linkend="mail-mta">δαίμονες του
+ εξυπηρετητή</link> που είναι διαθέσιμοι, ή παραδίδοντας τις
+ απευθείας μέσω <acronym>TCP</acronym>.</para>
+ </sect2>
+
+ <sect2 id="mail-mta">
+ <title>Δαίμονας Εξυπηρετητή Mailhost</title>
+ <indexterm>
+ <primary>mail server daemons</primary>
+ <secondary><application>sendmail</application></secondary>
+ </indexterm>
+ <indexterm>
+ <primary>mail server daemons</primary>
+ <secondary><application>postfix</application></secondary>
+ </indexterm>
+ <indexterm>
+ <primary>mail server daemons</primary>
+ <secondary><application>qmail</application></secondary>
+ </indexterm>
+ <indexterm>
+ <primary>mail server daemons</primary>
+ <secondary><application>exim</application></secondary>
+ </indexterm>
+
+ <para>Το &os; έρχεται με το <application>sendmail</application>
+ εγκατεστημένο από προεπιλογή, αλλά υποστηρίζει επίσης και μεγάλο
+ αριθμό από άλλους δαίμονες ταχυδρομείου, περιλαμβανομένων
+ και των:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><application>exim</application></para>
+ </listitem>
+
+ <listitem>
+ <para><application>postfix</application></para>
+ </listitem>
+
+ <listitem>
+ <para><application>qmail</application></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ο δαίμονας έχει συνήθως δύο λειτουργίες&mdash;είναι υπεύθυνος για
+ τη λήψη εισερχόμενου mail, όπως επίσης και την παράδοση του
+ εξερχόμενου mail. Όμως, <emphasis>δεν είναι</emphasis> υπεύθυνος για
+ τη συλλογή του mail με τη χρήση πρωτοκόλλων όπως τα
+ <acronym>POP</acronym> ή <acronym>IMAP</acronym> για την ανάγνωση του
+ ταχυδρομείου σας, ούτε επιτρέπει τη σύνδεση στις τοπικές θυρίδες
+ τύπου <filename>mbox</filename> ή Maildir. Πιθανόν να χρειαστείτε
+ κάποιο επιπρόσθετο <link linkend="mail-receive">δαίμονα</link> για
+ αυτό το σκοπό.</para>
+
+ <warning>
+ <para>Παλιότερες εκδόσεις του <application>sendmail</application>
+ έχουν κάποια σοβαρά προβλήματα ασφαλείας, μέσω των οποίων μπορεί
+ κάποιος εισβολέας να αποκτήσει τοπική ή απομακρυσμένη
+ πρόσβαση στο μηχάνημα σας. Για να αποφύγετε προβλήματα τέτοιου
+ είδους, βεβαιωθείτε ότι χρησιμοποιείτε κάποια πρόσφατη έκδοση.
+ Εναλλακτικά, μπορείτε να εγκαταστήσετε κάποιο άλλο
+ <acronym>MTA</acronym> από την <link linkend="ports">Συλλογή των
+ Ports του &os;</link>.</para>
+ </warning>
+ </sect2>
+
+ <sect2 id="mail-dns">
+ <title>Email και DNS</title>
+
+ <para>Το Σύστημα Ονομασίας Περιοχών (DNS) και ο δαίμονας του, ο
+ <command>named</command>, έχουν σημαντικό ρόλο στην παράδοση του
+ email. Για την παράδοση του email από το ένα site σε ένα άλλο, ο
+ δαίμονας του εξυπηρετητή θα ψάξει για το απομακρυσμένο site στο DNS,
+ για να καθορίσει ποιος υπολογιστής λαμβάνει το email για το
+ συγκεκριμένο προορισμό. Η διαδικασία αυτή συμβαίνει επίσης όταν ο
+ δικός σας εξυπηρετητής λαμβάνει email από κάποιο απομακρυσμένο
+ υπολογιστή.</para>
+
+ <indexterm>
+ <primary>MX record</primary>
+ </indexterm>
+
+ <para>Το <acronym>DNS</acronym> είναι υπεύθυνο για την αντιστοίχηση
+ ονομάτων υπολογιστών σε διευθύνσεις IP, όπως και για την αποθήκευση
+ πληροφοριών που σχετίζονται με την παράδοση ηλεκτρονικού
+ ταχυδρομείου, όπως οι εγγραφές MX. Η εγγραφή MX (Mail Exchanger)
+ αναγνωρίζει ποιος υπολογιστής (ή υπολογιστές) θα είναι υπεύθυνος
+ για τη λήψη ταχυδρομείου ενός συγκεκριμένου τομέα (domain). Αν δεν
+ έχετε εγγραφή MX για τον υπολογιστή ή τον τομέα σας, το email θα
+ παραδίδεται απευθείας στον υπολογιστή σας, με την προϋπόθεσή ότι
+ έχετε εγγραφή τύπου A που να δείχνει στον υπολογιστή σας ή στην
+ IP διεύθυνση του.</para>
+
+ <para>Μπορείτε να δείτε τις εγγραφές MX για οποιοδήποτε τομέα,
+ χρησιμοποιώντας την εντολή &man.host.1;, όπως φαίνεται στο
+ παρακάτω παράδειγμα:</para>
+
+ <screen>&prompt.user; <userinput>host -t mx FreeBSD.org</userinput>
+FreeBSD.org mail is handled (pri=10) by mx1.FreeBSD.org</screen>
+ </sect2>
+
+ <sect2 id="mail-receive">
+ <title>Λαμβάνοντας Mail</title>
+ <indexterm>
+ <primary>email</primary>
+ <secondary>receiving</secondary>
+ </indexterm>
+
+ <para>Ο mailhost είναι υπεύθυνος για την λήψη mail που προορίζεται για
+ τον τομέα σας. Θα συλλέξει όλο το mail που έρχεται προς τον τομέα,
+ και θα το αποθηκεύσει είτε στο
+ <filename>mbox</filename> (την προεπιλεγμένη μέθοδο για αποθήκευση
+ mail) ή σε μορφή Maildir, ανάλογα με τις ρυθμίσεις που έχετε κάνει.
+ Από τη στιγμή που το mail έχει αποθηκευθεί, μπορείτε είτε να το
+ διαβάσετε τοπικά, χρησιμοποιώντας εφαρμογές όπως το
+ &man.mail.1; ή το <application>mutt</application>, ή να το δείτε
+ μέσω απομακρυσμένης σύνδεσης, χρησιμοποιώντας κάποιο πρωτόκολλο όπως
+ το <acronym>POP</acronym> ή το <acronym>IMAP</acronym>.
+ Αυτό σημαίνει ότι αν επιθυμείτε να διαβάζετε το mail σας μόνο τοπικά,
+ δεν χρειάζεται να εγκαταστήσετε εξυπηρετητή
+ <acronym>POP</acronym> ή <acronym>IMAP</acronym>.</para>
+
+ <sect3 id="pop-and-imap">
+ <title>Πρόσβαση σε Απομακρυσμένες Θυρίδες μέσω <acronym>POP</acronym>
+ και <acronym>IMAP</acronym></title>
+
+ <indexterm><primary>POP</primary></indexterm>
+ <indexterm><primary>IMAP</primary></indexterm>
+ <para>Για να έχετε απομακρυσμένη πρόσβαση στις θυρίδες ταχυδρομείου,
+ είναι απαραίτητο να έχετε πρόσβαση σε ένα εξυπηρετητή
+ <acronym>POP</acronym> ή <acronym>IMAP</acronym>. Τα πρωτόκολλα
+ αυτά, επιτρέπουν στους χρήστες να συνδέονται στις θυρίδες τους
+ από απόσταση, με μεγάλη ευκολία. Και τα δύο πρωτόκολλα
+ (<acronym>POP</acronym> και <acronym>IMAP</acronym>) επιτρέπουν
+ στους χρήστες απομακρυσμένη πρόσβαση στις θυρίδες τους, αλλά το
+ <acronym>IMAP</acronym> προσφέρει αρκετά πλεονεκτήματα, ορισμένα
+ από τα οποία φαίνονται παρακάτω:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το <acronym>IMAP</acronym> μπορεί να αποθηκεύσει μηνύματα
+ σε ένα απομακρυσμένο εξυπηρετητή, όπως επίσης και να τα
+ ανακτήσει.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <acronym>IMAP</acronym> υποστηρίζει ταυτόχρονες
+ ενημερώσεις.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <acronym>IMAP</acronym> μπορεί να φανεί εξαιρετικά
+ χρήσιμο σε συνδέσεις χαμηλής ταχύτητας, καθώς επιτρέπει στους
+ χρήστες να κατεβάσουν τη δομή των μηνυμάτων, χωρίς να
+ κατεβάσουν το περιεχόμενο τους. Μπορεί επίσης να εκτελέσει
+ εργασίες όπως εύρεση μηνυμάτων απευθείας στον εξυπηρετητή,
+ ελαχιστοποιώντας με αυτό τον τρόπο τη μεταφορά δεδομένων
+ μεταξύ των πελατών και των εξυπηρετητών.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για να εγκαταστήσετε ένα εξυπηρετητή <acronym>POP</acronym> ή
+ <acronym>IMAP</acronym> θα πρέπει να ακολουθήσετε τα επόμενα
+ βήματα:</para>
+
+ <procedure>
+ <step>
+ <para>Επιλέξτε ένα εξυπηρετητή <acronym>IMAP</acronym> ή
+ <acronym>POP</acronym> που να εξυπηρετεί τις ανάγκες σας.
+ Οι παρακάτω εξυπηρετητές <acronym>POP</acronym> και
+ <acronym>IMAP</acronym> είναι αρκετά διαδεδομένοι και αποτελούν
+ καλά παραδείγματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><application>qpopper</application></para>
+ </listitem>
+
+ <listitem>
+ <para><application>teapop</application></para>
+ </listitem>
+
+ <listitem>
+ <para><application>imap-uw</application></para>
+ </listitem>
+
+ <listitem>
+ <para><application>courier-imap</application></para>
+ </listitem>
+
+ <listitem>
+ <para><application>dovecot</application></para>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>Εγκαταστήστε το δαίμονα <acronym>POP</acronym> ή
+ <acronym>IMAP</acronym> της επιλογής σας, από την Συλλογή των
+ Ports.</para>
+ </step>
+
+ <step>
+ <para>Αν χρειάζεται, τροποποιήστε το αρχείο
+ <filename>/etc/inetd.conf</filename> για να φορτώσετε τον
+ εξυπηρετητή <acronym>POP</acronym> ή
+ <acronym>IMAP</acronym>.</para>
+ </step>
+ </procedure>
+
+ <warning>
+ <para>Θα πρέπει να σημειώσουμε ότι τόσο το <acronym>POP</acronym>
+ όσο και το <acronym>IMAP</acronym> μεταδίδουν πληροφορίες όπως
+ το όνομα χρήστη και τον κωδικό σε μορφή απλού κειμένου. Αυτό
+ σημαίνει ότι αν θέλετε να ασφαλίσετε τη μετάδοση πληροφοριών
+ μέσω αυτών των πρωτοκόλλων, θα πρέπει να περάσετε αυτές τις
+ συνδέσεις μέσω του &man.ssh.1; (tunneling) ή να χρησιμοποιήσετε
+ SSL. Η διαδικασία tunneling περιγράφεται με λεπτομέρεια στο
+ <xref linkend="security-ssh-tunneling"> και το SSL στο
+ <xref linkend="openssl">.</para>
+ </warning>
+ </sect3>
+
+ <sect3 id="local">
+ <title>Πρόσβαση σε Τοπικές Θυρίδες Ταχυδρομείου</title>
+
+ <para>Μπορείτε να έχετε τοπική πρόσβαση στις θυρίδες ταχυδρομείου
+ χρησιμοποιώντας απευθείας κάποιο πρόγραμμα αποστολής/λήψης
+ (<acronym>MUA</acronym>) στον εξυπηρετητή που είναι αποθηκευμένες.
+ Κατάλληλες εφαρμογές για αυτό το σκοπό είναι π.χ. το
+ <application>mutt</application> ή το &man.mail.1;.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="mail-host">
+ <title>Ο Εξυπηρετητής Mail</title>
+ <indexterm><primary>mail host</primary></indexterm>
+
+ <para>Εξυπηρετητής mail θεωρείται ο υπολογιστής ο οποίος
+ είναι υπεύθυνος για την παράδοση και λήψη mail για τον υπολογιστή
+ σας, και ενδεχομένως για το δίκτυο σας.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="sendmail">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Christopher</firstname>
+ <surname>Shumway</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Ρύθμιση του <application>sendmail</application></title>
+
+ <indexterm>
+ <primary><application>sendmail</application></primary>
+ </indexterm>
+
+ <para>Το &man.sendmail.8; είναι ο προεπιλεγμένος Αντιπρόσωπος Μεταφοράς
+ Ταχυδρομείου (Mail Transfer Agent, MTA) στο &os;. Δουλειά του είναι να
+ δέχεται το email από τους Αντιπροσώπους Email Χρήστη
+ (Mail User Agents, <acronym>MUA</acronym>) και να το παραδίδει στο
+ κατάλληλο mailer που ορίζεται στο αρχείο ρυθμίσεων του. Το
+ <application>sendmail</application> μπορεί επίσης να δεχθεί συνδέσεις
+ δικτύου και να παραδώσει το mail σε τοπικές θυρίδες ή και σε κάποιο
+ άλλο πρόγραμμα.</para>
+
+ <para>Το <application>sendmail</application> χρησιμοποιεί τα ακόλουθα
+ αρχεία ρυθμίσεων:</para>
+
+ <indexterm>
+ <primary><filename>/etc/mail/access</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename>/etc/mail/aliases</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename>/etc/mail/local-host-names</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename>/etc/mail/mailer.conf</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename>/etc/mail/mailertable</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename>/etc/mail/sendmail.cf</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename>/etc/mail/virtusertable</filename></primary>
+ </indexterm>
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Όνομα Αρχείου</entry>
+ <entry>Λειτουργία</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>
+ <filename>/etc/mail/access</filename>
+ </entry>
+
+ <entry>Η βάση δεδομένων πρόσβασης του
+ <application>sendmail</application>.</entry>
+ </row>
+
+ <row>
+ <entry>
+ <filename>/etc/mail/aliases</filename>
+ </entry>
+
+ <entry>Παρωνύμια (aliases) για τις θυρίδες (Mailboxes)</entry>
+ </row>
+
+ <row>
+ <entry>
+ <filename>/etc/mail/local-host-names</filename>
+ </entry>
+
+ <entry>Λίστα των υπολογιστών για τους οποίους το
+ <application>sendmail</application> δέχεται mail</entry>
+ </row>
+
+ <row>
+ <entry>
+ <filename>/etc/mail/mailer.conf</filename>
+ </entry>
+
+ <entry>Ρυθμίσεις του προγράμματος mailer</entry>
+ </row>
+
+ <row>
+ <entry>
+ <filename>/etc/mail/mailertable</filename>
+ </entry>
+
+ <entry>Πίνακας παραδόσεων του mailer</entry>
+ </row>
+
+ <row>
+ <entry>
+ <filename>/etc/mail/sendmail.cf</filename>
+ </entry>
+
+ <entry>Το κεντρικό αρχείο ρυθμίσεων του
+ <application>sendmail</application></entry>
+ </row>
+
+ <row>
+ <entry>
+ <filename>/etc/mail/virtusertable</filename>
+ </entry>
+
+ <entry>Πίνακας εικονικών χρηστών και περιοχών (domains)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2>
+ <title><filename>/etc/mail/access</filename></title>
+
+ <para>Η βάση δεδομένων πρόσβασης καθορίζει ποιοι υπολογιστές ή
+ διευθύνσεις IP έχουν πρόσβαση στον τοπικό εξυπηρετητή mail και τι
+ είδους πρόσβαση έχουν. Η καταχώρηση ενός υπολογιστή μπορεί να έχει
+ τις επιλογές <option>OK</option>, <option>REJECT</option>,
+ <option>RELAY</option> ή απλά να μεταβιβάζει τον έλεγχο στη ρουτίνα
+ διαχείρισης λαθών του <application>sendmail</application> με κάποιο
+ συγκεκριμένο σφάλμα. Οι υπολογιστές που είναι καταχωρημένοι με την
+ επιλογή <option>OK</option>, η οποία είναι και η προεπιλεγμένη,
+ επιτρέπεται να στείλουν email σε αυτό τον υπολογιστή, εφόσον ο
+ τελικός προορισμός του μηνύματος είναι το τοπικό μηχάνημα. Οι
+ υπολογιστές που είναι καταχωρημένοι με την επιλογή
+ <option>REJECT</option> απορρίπτονται για οποιαδήποτε επικοινωνία
+ έχει να κάνει με μετάδοση mail. Οι υπολογιστές που είναι
+ καταχωρημένοι με την επιλογή <option>RELAY</option>, έχουν τη
+ δυνατότητα να στείλουν mail προς οποιαδήποτε κατεύθυνση μέσω του
+ συγκεκριμένου εξυπηρετητή.</para>
+
+ <example>
+ <title>Ρύθμιση της Βάσης Δεδομένων Πρόσβασης του
+ <application>sendmail</application></title>
+
+ <programlisting>cyberspammer.com 550 We do not accept mail from spammers
+FREE.STEALTH.MAILER@ 550 We do not accept mail from spammers
+another.source.of.spam REJECT
+okay.cyberspammer.com OK
+128.32 RELAY</programlisting>
+ </example>
+
+ <para>Σε αυτό το παράδειγμα έχουμε πέντε καταχωρήσεις. Οι διευθύνσεις
+ που φαίνονται στην αριστερή πλευρά του πίνακα, επηρεάζονται από τη
+ ενέργεια που φαίνεται στη δεξιά πλευρά. Τα πρώτα δύο παραδείγματα,
+ επιστρέφουν ένα κωδικό σφάλματος στη ρουτίνα διαχείρισης λαθών του
+ <application>sendmail</application>. Το μήνυμα εκτυπώνεται στον
+ απομακρυσμένο υπολογιστή, όταν το mail που λαμβάνεται ανήκει σε
+ κάποια από τις κατηγορίες της αριστερής πλευράς του πίνακα.
+ Η επόμενη καταχώρηση απορρίπτει την παραλαβή mail από ένα
+ συγκεκριμένο υπολογιστή στο Internet, τον
+ <hostid>another.source.of.spam</hostid>. Η επόμενη καταχώρηση κάνει
+ δεκτές τις συνδέσεις mail από τον υπολογιστή
+ <hostid role="fqdn">okay.cyberspammer.com</hostid>, το όνομα του
+ οποίου προσδιορίζεται ακριβέστερα σε σχέση με τη γραμμή
+ <hostid role="domainname">cyberspammer.com</hostid> που είδαμε
+ παραπάνω. Γραμμές που καθορίζουν ονόματα με μεγαλύτερη ακρίβεια,
+ έχουν προτεραιότητα σε σχέση με πιο ανακριβείς. Η τελευταία
+ καταχώρηση επιτρέπει την αναμετάδοση (relaying) ηλεκτρονικού
+ ταχυδρομείου από υπολογιστές με διευθύνσεις IP που ξεκινάνε με
+ <hostid>128.32</hostid>. Οι υπολογιστές αυτοί, μπορούν να στείλουν
+ mail μέσω του συγκεκριμένου εξυπηρετητή, το οποίο να κατευθύνεται σε
+ άλλους εξυπηρετητές ταχυδρομείου.</para>
+
+ <para>Σε περίπτωση ανανέωσης αυτού του αρχείου, θα πρέπει να εκτελέσετε
+ την εντολή <command>make</command> στον κατάλογο
+ <filename>/etc/mail/</filename> για να ανανεώσετε τη βάση
+ δεδομένων.</para>
+ </sect2>
+
+ <sect2>
+ <title><filename>/etc/mail/aliases</filename></title>
+
+ <para>Η βάση δεδομένων των παρωνυμίων (aliases), περιέχει μια λίστα από
+ εικονικές θυρίδες ταχυδρομείου που επεκτείνονται σε άλλους χρήστες,
+ αρχεία ή και άλλα παρωνύμια. Μερικά παραδείγματα χρήσης του
+ <filename>/etc/mail/aliases</filename> φαίνονται παρακάτω:</para>
+
+ <example>
+ <title>Παρωνύμια Mail</title>
+
+ <programlisting>root: localuser
+ftp-bugs: joe,eric,paul
+bit.bucket: /dev/null
+procmail: "|/usr/local/bin/procmail"</programlisting>
+ </example>
+
+ <para>Η μορφή του αρχείου είναι απλή. Το όνομα της θυρίδας βρίσκεται
+ στην αριστερή πλευρά της άνω-κάτω τελείας, και επεκτείνεται στον
+ προορισμό που βρίσκεται στη δεξιά πλευρά. Το πρώτο παράδειγμα,
+ απλώς ορίζει ότι η θυρίδα του χρήστη <username>root</username> θα
+ είναι στην πραγματικότητα η θυρίδα <username>localuser</username>.
+ Για την θυρίδα αυτή, γίνεται ξανά αναζήτηση στη βάση δεδομένων των
+ παρωνυμιών. Αν δεν βρεθεί άλλο όνομα που να ταιριάζει, το μήνυμα θα
+ παραδοθεί στον τοπικό χρήστη <username>localuser</username>. Το
+ επόμενο παράδειγμα δείχνει μια λίστα ταχυδρομείου. Τα μηνύματα που
+ απευθύνονται στη θυρίδα <username>ftp-bugs</username>, κατευθύνονται
+ σε τρεις τοπικές θυρίδες, τις <username>joe</username>,
+ <username>eric</username> και <username>paul</username>. Σημειώστε
+ ότι είναι δυνατόν να καθοριστεί μια απομακρυσμένη θυρίδα
+ χρησιμοποιώντας τη μορφή <email>user@example.com</email>.
+ Το επόμενο παράδειγμα, δείχνει πως μπορεί να γίνει εγγραφή του mail
+ σε ένα αρχείο, στη συγκεκριμένη περίπτωση το
+ <filename>/dev/null</filename>. Το τελευταίο παράδειγμα,
+ δείχνει πως γίνεται η αποστολή mail προς ένα πρόγραμμα.
+ Στο παράδειγμα αυτό, το μήνυμα γράφεται στην τυποποιημένη είσοδο
+ (standard input) του προγράμματος
+ <filename>/usr/local/bin/procmail</filename> χρησιμοποιώντας ένα
+ &unix; pipe.</para>
+
+ <para>Κάθε φορά που γίνεται ενημέρωση αυτού του αρχείου, θα πρέπει να
+ εκτελείτε την εντολή <command>make</command> στον κατάλογο
+ <filename>/etc/mail/</filename>, ώστε να ενημερωθεί η βάση
+ δεδομένων.</para>
+ </sect2>
+
+ <sect2>
+ <title><filename>/etc/mail/local-host-names</filename></title>
+
+ <para>Πρόκειται για μια λίστα από ονόματα υπολογιστών, την οποία το
+ &man.sendmail.8; θα δέχεται ως ονόματα για το τοπικό μηχάνημα.
+ Τοποθετήστε σε αυτήν τα ονόματα των υπολογιστών ή των τομέων για τους
+ οποίους θέλετε το <application>sendmail</application> να λαμβάνει
+ mail. Για παράδειγμα, αν ο συγκεκριμένος εξυπηρετητής mail πρόκειται
+ να λαμβάνει mail για τον τομέα
+ <hostid role="domainname">example.com</hostid> και για τον υπολογιστή
+ <hostid role="fqdn">mail.example.com</hostid>, το αρχείο
+ <filename>local-host-names</filename> θα μοιάζει με το
+ παρακάτω:</para>
+
+ <programlisting>example.com
+mail.example.com</programlisting>
+
+ <para>Κάθε φορά που ενημερώνεται αυτό το αρχείο, θα πρέπει να γίνεται
+ επανεκκίνηση του &man.sendmail.8; για να διαβάσει τις αλλαγές.</para>
+ </sect2>
+
+ <sect2>
+ <title><filename>/etc/mail/sendmail.cf</filename></title>
+
+ <para>Το <filename>sendmail.cf</filename> είναι το κεντρικό αρχείο
+ ρυθμίσεων του <application>sendmail</application>. Το αρχείο αυτό
+ ρυθμίζει τη συνολική συμπεριφορά του
+ <application>sendmail</application>, που περιλαμβάνει μεταξύ άλλων
+ την επανεγγραφή διευθύνσεων και την αποστολή μηνυμάτων απόρριψης προς
+ απομακρυσμένους εξυπηρετητές mail. Καθώς το αρχείο αυτό περιέχει τόσο
+ διαφορετικές ρυθμίσεις, είναι φυσικό να είναι αρκετά πολύπλοκο και
+ οι λεπτομέρειες του είναι έξω από το σκοπό αυτής της ενότητας.
+ Ευτυχώς, αυτό το αρχείο σπάνια χρειάζεται να αλλαχθεί σε τυπικούς
+ εξυπηρετητές mail.</para>
+
+ <para>Το βασικό αρχείο ρυθμίσεων του <application>sendmail</application>
+ μπορεί να παραχθεί με τη βοήθεια μακροεντολών τύπου
+ &man.m4.1; που καθορίζουν τη συμπεριφορά και τα χαρακτηριστικά του
+ <application>sendmail</application>. Για περισσότερες πληροφορίες,
+ παρακαλούμε διαβάστε το
+ <filename>/usr/src/contrib/sendmail/cf/README</filename>.</para>
+
+ <para>Για να ισχύσουν οι αλλαγές που κάνετε σε αυτό το αρχείο, θα πρέπει
+ να επανεκκινήσετε το <application>sendmail</application>.</para>
+ </sect2>
+
+ <sect2>
+ <title><filename>/etc/mail/virtusertable</filename></title>
+
+ <para>Το αρχείο <filename>virtusertable</filename> αντιστοιχεί
+ διευθύνσεις mail εικονικών τομέων σε πραγματικές θυρίδες ταχυδρομείου.
+ Οι θυρίδες αυτές μπορεί να είναι τοπικές, απομακρυσμένες, παρωνύμια
+ που έχουν οριστεί στο <filename>/etc/mail/aliases</filename>,
+ ή αρχεία.</para>
+
+ <example>
+ <title>Παράδειγμα Αντιστοίχησης Mail Εικονικού Τομέα</title>
+
+ <programlisting>root@example.com root
+postmaster@example.com postmaster@noc.example.net
+@example.com joe</programlisting>
+ </example>
+
+ <para>Στο παραπάνω παράδειγμα, έχουμε μια αντιστοίχηση για τον τομέα
+ <hostid role="domainname">example.com</hostid>. Η επεξεργασία αυτού
+ του αρχείου γίνεται από πάνω προς τα κάτω, και σταματάει στην εύρεση
+ του πρώτου ονόματος που ταιριάζει. Η πρώτη γραμμή του παραδείγματος,
+ αντιστοιχεί το <email>root@example.com</email> στην τοπική θυρίδα
+ <username>root</username>. Η επόμενη καταχώρηση αντιστοιχεί το
+ <email>postmaster@example.com</email> στη θυρίδα
+ <username>postmaster</username> στον υπολογιστή
+ <hostid role="fqdn">noc.example.net</hostid>. Τέλος, αν δεν βρεθεί
+ καμιά αντιστοίχηση για τον τομέα
+ <hostid role="domainname">example.com</hostid>, θα εφαρμοστεί η
+ τελευταία αντιστοίχηση, η οποία ταιριάζει με οποιοδήποτε mail σταλθεί
+ προς τον τομέα <hostid role="domainname">example.com</hostid>.
+ Στην περίπτωση αυτή, το μήνυμα θα παραδοθεί στην τοπική θυρίδα
+ <username>joe</username>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mail-changingmta">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Andrew</firstname>
+ <surname>Boothman</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Gregory</firstname>
+ <surname>Neil Shapiro</surname>
+ <contrib>Οι πληροφορίες που προέρχονται από e-mails έχουν γραφεί
+ από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Αλλάζοντας τον Αντιπρόσωπο Μεταφοράς Ταχυδρομείου (MTA)</title>
+ <indexterm>
+ <primary>email</primary>
+ <secondary>change mta</secondary>
+ </indexterm>
+
+ <para>Όπως έχουμε ήδη αναφέρει, το &os; έρχεται με το
+ <application>sendmail</application> προεγκατεστημένο ως Αντιπρόσωπο
+ Μεταφοράς Ταχυδρομείου (Mail Transfer Agent, MTA). Το πρόγραμμα αυτό
+ είναι από προεπιλογή υπεύθυνο για την εισερχόμενη και εξερχόμενη
+ αλληλογραφία.</para>
+
+ <para>Υπάρχει ωστόσο πληθώρα λόγων για τους οποίους κάποιοι διαχειριστές
+ επιλέγουν να αλλάξουν το MTA του συστήματος τους. Οι λόγοι αυτοί
+ κυμαίνονται από το ότι απλά θέλουν να δοκιμάσουν κάποιο άλλο MTA, ως
+ και το ότι χρειάζονται κάποιο ιδιαίτερο χαρακτηριστικό ή δυνατότητα που
+ υπάρχει σε κάποιο άλλο mailer. Ευτυχώς, το &os; κάνει εύκολη την αλλαγή
+ του αντιπροσώπου.</para>
+
+ <sect2>
+ <title>Εγκαταστήστε Νέο MTA</title>
+
+ <para>Υπάρχουν αρκετοί MTA για να επιλέξετε. Ένα καλό σημείο εκκίνησης
+ είναι η <link linkend="ports">Συλλογή των Ports του &os;</link> όπου
+ και θα μπορέσετε να βρείτε αρκετούς. Φυσικά είστε ελεύθερος να
+ επιλέξετε όποιο MTA θέλετε από οπουδήποτε, όσο τουλάχιστον μπορείτε
+ να το κάνετε να εκτελείτε στο &os;.</para>
+
+ <para>Ξεκινήστε εγκαθιστώντας το νέο σας MTA. Μετά την εγκατάσταση, θα
+ έχετε την ευκαιρία να αποφασίσετε αν πραγματικά καλύπτει τις ανάγκες
+ σας, καθώς και να ολοκληρώσετε τις ρυθμίσεις του πριν μεταφέρετε τη
+ διαχείριση mail του συστήματος από το
+ <application>sendmail</application> στο νέο σας πρόγραμμα. Κατά την
+ εγκατάσταση, βεβαιωθείτε ότι το νέο σας λογισμικό δεν θα προσπαθήσει
+ να εγκατασταθεί πάνω στα υπάρχοντα εκτελέσιμα του συστήματος, όπως το
+ <filename>/usr/bin/sendmail</filename>. Διαφορετικά, θα έχετε
+ ουσιαστικά βάλει το νέο σας λογισμικό mail σε χρήση, πριν προλάβετε
+ καλά-καλά να το ρυθμίσετε.</para>
+
+ <para>Παρακαλούμε να διαβάσετε την τεκμηρίωση του MTA που επιλέξατε,
+ για πληροφορίες σχετικά με τη ρύθμιση του.</para>
+ </sect2>
+
+ <sect2 id="mail-disable-sendmail">
+ <title>Απενεργοποιήστε το <application>sendmail</application></title>
+
+ <warning>
+ <para>Αν απενεργοποιήσετε τη δυνατότητα αποστολής (εξερχόμενα) του
+ <application>sendmail</application>, είναι σημαντικό να την
+ αντικαταστήσετε με ένα εναλλακτικό σύστημα παράδοσης mail. Αν
+ επιλέξετε να μην κάνετε το παραπάνω, τα μηνύματα του συστήματος,
+ όπως αυτά που παράγονται από το &man.periodic.8;, δεν θα μπορούν
+ να παραδοθούν μέσω email, όπως είναι το αναμενόμενο. Πολλά
+ τμήματα του συστήματος σας αναμένουν ότι υπάρχει σε λειτουργία
+ ένα σύστημα συμβατό με το <application>sendmail</application>.
+ Αν οι εφαρμογές συνεχίζουν να χρησιμοποιούν τα εκτελέσιμα του
+ <application>sendmail</application> προσπαθώντας να στείλουν
+ email μετά την απενεργοποίηση του, το mail πιθανώς θα
+ βρεθεί σε μια ανενεργή ουρά του
+ <application>sendmail</application> και δεν θα παραδοθεί
+ ποτέ.</para>
+ </warning>
+
+ <para>Για να απενεργοποιήσετε εντελώς το
+ <application>sendmail</application>, συμπεριλαμβανομένης και της
+ υπηρεσίας εξερχόμενων μηνυμάτων, χρησιμοποιήστε:</para>
+
+ <programlisting>sendmail_enable="NO"
+sendmail_submit_enable="NO"
+sendmail_outbound_enable="NO"
+sendmail_msp_queue_enable="NO"</programlisting>
+
+ <para>στο <filename>/etc/rc.conf.</filename></para>
+
+ <para>Αν θέλετε να απενεργοποιήσετε μόνο την υπηρεσία εισερχομένων
+ του <application>sendmail</application> θα πρέπει να θέσετε:</para>
+
+ <programlisting>sendmail_enable="NO"</programlisting>
+
+ <para>στο <filename>/etc/rc.conf</filename>. Περισσότερες πληροφορίες
+ για τις επιλογές εκκίνησης του <application>sendmail</application>,
+ διατίθενται από την αντίστοιχη σελίδα manual,
+ &man.rc.sendmail.8;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Εκκίνηση του Νέου σας MTA κατά την Εκκίνηση</title>
+
+ <para>Το νέο σας MTA θα ξεκινάει κατά την εκκίνηση, αν προσθέσετε μια
+ κατάλληλη γραμμή στο αρχείο <filename>/etc/rc.conf</filename>. Δείτε
+ το παρακάτω παράδειγμα για το
+ <application>postfix</application>:</para>
+
+ <screen>&prompt.root; echo '<replaceable>postfix</replaceable>_enable="YES"' &gt;&gt; /etc/rc.conf</screen>
+
+ <para>Το MTA θα ξεκινάει πλέον κατά την εκκίνηση.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αντικαθιστώντας το <application>sendmail</application> από
+ Προεπιλεγμένο Mailer Συστήματος</title>
+
+ <para>Το <application>sendmail</application> είναι τόσο γνωστό ως
+ στάνταρ λογισμικό στα συστήματα &unix;, ώστε πολλά άλλα προγράμματα
+ θεωρούν ότι είναι ήδη εγκατεστημένο και ρυθμισμένο. Για το λόγο αυτό,
+ πολλά εναλλακτικά MTA παρέχουν δικές τους συμβατές υλοποιήσεις του
+ <application>sendmail</application>. Οι υλοποιήσεις αυτές παρέχουν
+ παρόμοιο σύνολο εντολών, και μπορούν έτσι να χρησιμοποιηθούν ώστε να
+ αντικαταστήσουν <quote>απευθείας</quote> το
+ <application>sendmail</application>.</para>
+
+ <para>Για το λόγο αυτό, αν χρησιμοποιείτε κάποιο εναλλακτικό mailer, θα
+ θέλετε να εξασφαλίσετε ότι άλλα προγράμματα που προσπαθούν να
+ εκτελέσουν τα τυπικά εκτελέσιμα του
+ <application>sendmail</application> όπως το
+ <filename>/usr/bin/sendmail</filename>, θα εκτελέσουν στην
+ πραγματικότητα τον επιλεγμένο σας mailer. Ευτυχώς, το &os; παρέχει
+ ένα σύστημα που καλείτε &man.mailwrapper.8; και το οποίο αναλαμβάνει
+ αυτή τη δουλειά για σας.</para>
+
+ <para>Όταν το <application>sendmail</application> λειτουργεί όπως έχει
+ εγκατασταθεί αρχικά, θα βρείτε κάτι όπως το παρακάτω στο
+ <filename>/etc/mail/mailer.conf</filename>:</para>
+
+ <programlisting>sendmail /usr/libexec/sendmail/sendmail
+send-mail /usr/libexec/sendmail/sendmail
+mailq /usr/libexec/sendmail/sendmail
+newaliases /usr/libexec/sendmail/sendmail
+hoststat /usr/libexec/sendmail/sendmail
+purgestat /usr/libexec/sendmail/sendmail</programlisting>
+
+ <para>Αυτό σημαίνει ότι όταν εκτελείται κάποια από αυτές τις
+ συνηθισμένες εντολές (όπως το ίδιο το <filename>sendmail</filename>),
+ το σύστημα στην πραγματικότητα εκτελεί ένα αντίγραφο του mailwrapper
+ που ονομάζεται <filename>sendmail</filename>, και το οποίο ελέγχει το
+ <filename>mailer.conf</filename> και εκτελεί το
+ <filename>/usr/libexec/sendmail/sendmail</filename> αντί αυτού. Το
+ σύστημα αυτό διευκολύνει ιδιαίτερα την αλλαγή των εκτελέσιμων που
+ εκτελούνται στην πραγματικότητα όταν γίνεται κλήση των προεπιλεγμένων
+ λειτουργιών του <filename>sendmail</filename>.</para>
+
+ <para>Έτσι, αν θέλετε να εκτελείται το
+ <filename>/usr/local/supermailer/bin/sendmail-compat</filename>
+ αντί για το <application>sendmail</application>, θα μπορούσατε να
+ αλλάξετε το <filename>/etc/mail/mailer.conf</filename> ώστε να
+ γράφει:</para>
+
+ <programlisting>sendmail /usr/local/supermailer/bin/sendmail-compat
+send-mail /usr/local/supermailer/bin/sendmail-compat
+mailq /usr/local/supermailer/bin/mailq-compat
+newaliases /usr/local/supermailer/bin/newaliases-compat
+hoststat /usr/local/supermailer/bin/hoststat-compat
+purgestat /usr/local/supermailer/bin/purgestat-compat</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Ολοκληρώνοντας</title>
+
+ <para>Μόλις έχετε ρυθμίσει τα πάντα όπως επιθυμείτε, μπορείτε είτε
+ να κάνετε kill τις διεργασίες του
+ <application>sendmail</application> που δεν χρειάζεστε πλέον και
+ να εκκινήσετε τις αντίστοιχες του νέου σας λογισμικού, ή απλώς να
+ κάνετε επανεκκίνηση. Η επανεκκίνηση θα σας δώσει επίσης την
+ ευκαιρία να βεβαιωθείτε ότι το σύστημα σας έχει ρυθμιστεί σωστά,
+ ώστε το νέο σας MTA να ξεκινάει αυτόματα σε κάθε εκκίνηση.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mail-trouble">
+ <title>Αντιμετώπιση Προβλημάτων</title>
+ <indexterm>
+ <primary>email</primary>
+ <secondary>troubleshooting</secondary>
+ </indexterm>
+
+ <qandaset>
+ <qandaentry>
+ <question>
+ <para>Γιατί πρέπει να χρησιμοποιώ το πλήρες όνομα (FQDN) για
+ υπολογιστές που βρίσκονται στον τομέα μου;</para>
+ </question>
+
+ <answer>
+ <para>Το πιο πιθανό είναι να διαπιστώσετε ότι ο υπολογιστής
+ βρίσκεται στην πραγματικότητα σε διαφορετικό τομέα. Για
+ παράδειγμα, αν βρίσκεστε στο
+ <hostid role="fqdn">foo.bar.edu</hostid> και θέλετε να
+ επικοινωνήσετε με ένα υπολογιστή με το όνομα
+ <hostid>mumble</hostid> στον τομέα <hostid
+ role="domainname">bar.edu</hostid>, θα πρέπει να αναφερθείτε
+ σε αυτόν με το πλήρες του όνομα, <hostid
+ role="fqdn">mumble.bar.edu</hostid>, αντί για απλώς
+ <hostid>mumble</hostid>.</para>
+
+ <indexterm><primary>BIND</primary></indexterm>
+ <para>Παραδοσιακά, αυτό επιτρεπόταν από τους DNS resolvers του BIND.
+ Ωστόσο, η τρέχουσα έκδοση του <application>BIND</application> που
+ περιλαμβάνεται στο &os;, δεν παρέχει πλέον συντομεύσεις για
+ μη-πλήρη ονόματα τομέων, εκτός για τον τομέα στον οποίο βρίσκεστε.
+ Έτσι, ένας υπολογιστής με μη-πλήρες όνομα
+ <hostid>mumble</hostid> θα πρέπει να βρεθεί ως <hostid
+ role="fqdn">mumble.foo.bar.edu</hostid>, ή θα γίνει αναζήτηση
+ για αυτόν στο ριζικό τομέα.</para>
+
+ <para>Η συμπεριφορά αυτή είναι διαφορετική από την προηγούμενη, όπου
+ η αναζήτηση συνεχιζόταν και στο <hostid
+ role="domainname">mumble.bar.edu</hostid>, και το <hostid
+ role="domainname">mumble.edu</hostid>. Ρίξτε μια ματιά στο
+ RFC 1535 για το λόγο που το παραπάνω θεωρείτε κακή πρακτική, ή
+ ακόμα και κενό ασφαλείας.</para>
+
+ <para>Ένας τρόπος για να παρακάμψετε το πρόβλημα είναι να προσθέσετε
+ τη γραμμή:
+ <programlisting>search foo.bar.edu bar.edu</programlisting>
+ αντί για την προηγούμενη:
+ <programlisting>domain foo.bar.edu</programlisting>
+ στο αρχείο <filename>/etc/resolv.conf</filename>. Βεβαιωθείτε
+ ωστόσο ότι η σειρά αναζήτησης δεν πηγαίνει πέρα από το
+ <quote>όριο μεταξύ τοπικής και δημόσιας διαχείρισης</quote>,
+ όπως το αποκαλεί το RFC 1535.</para>
+ </answer>
+ </qandaentry>
+
+ <indexterm>
+ <primary>MX record</primary>
+ </indexterm>
+
+ <qandaentry>
+ <question>
+ <para>Το <application>sendmail</application> δίνει το μήνυμα
+ <errorname>mail loops back to myself</errorname> (το mail
+ επιστρέφει στον εαυτό μου)</para>
+ </question>
+
+ <answer>
+ <para>Η απάντηση σε αυτό, υπάρχει στο FAQ του
+ <application>sendmail</application> όπως φαίνεται παρακάτω:</para>
+
+ <programlisting>Λαμβάνω αυτά τα μηνύματα λάθους:
+
+553 MX list for domain.net points back to relay.domain.net
+554 &lt;user@domain.net&gt;... Local configuration error
+
+Πως μπορώ να λύσω το πρόβλημα;
+
+Έχετε ζητήσει το mail προς ένα τομέα (π.χ. το domain.net) να
+προωθείται προς ένα συγκεκριμένο υπολογιστή (στην περίπτωση αυτή
+το relay.domain.net) χρησιμοποιώντας μια εγγραφή MX, αλλά το
+μηχάνημα αναμετάδοσης (relay) δεν αναγνωρίζει τον εαυτό του ως
+domain.net. Προσθέστε το domain.net στο /etc/mail/local-host-names
+[είναι γνωστό ως /etc/sendmail.cw πριν την έκδοση 8.10]
+(αν χρησιμοποιείτε το FEATURE(use_cw_file)), διαφορετικά προσθέστε το
+<quote>Cw domain.net</quote> στο /etc/mail/sendmail.cf.</programlisting>
+
+ <para>Μπορείτε να βρείτε το FAQ του
+ <application>sendmail</application> στη διεύθυνση
+ <ulink url="http://www.sendmail.org/faq/"></ulink>, και συνίσταται
+ να το διαβάσετε αν θέλετε να <quote>πειράξετε</quote> τις
+ ρυθμίσεις του mail σας.</para>
+ </answer>
+ </qandaentry>
+
+ <indexterm><primary>PPP</primary></indexterm>
+ <qandaentry>
+ <question>
+ <para>Πως μπορώ να εκτελέσω εξυπηρετητή mail σε υπολογιστή που
+ συνδέεται μέσω επιλογικής σύνδεσης PPP;</para>
+ </question>
+
+ <answer>
+ <para>Θέλετε να συνδέσετε ένα &os; μηχάνημα σε ένα τοπικό δίκτυο
+ (LAN) στο Internet. Το &os; μηχάνημα θα γίνει πύλη ταχυδρομείου
+ για το LAN. Η σύνδεση PPP δεν είναι αποκλειστική.</para>
+
+ <indexterm><primary>UUCP</primary></indexterm>
+ <indexterm>
+ <primary>MX record</primary>
+ </indexterm>
+
+ <para>Υπάρχουν τουλάχιστον δύο τρόποι για να το κάνετε αυτό. Ο ένας
+ είναι με τη χρήση UUCP.</para>
+
+ <para>Ένας άλλος τρόπος είναι να βάλετε ένα εξυπηρετητή Internet ο
+ οποίος έχει συνεχή σύνδεση, να σας παρέχει υπηρεσία δευτερεύοντος
+ MX για τον τομέα σας. Για παράδειγμα, αν ο τομέας της εταιρίας
+ σας είναι <hostid role="domainname">example.com</hostid> και ο
+ παροχέας σας Internet έχει ορίσει το
+ <hostid role="domainname">example.net</hostid> να παρέχει
+ υπηρεσίες δευτερεύοντος MX για τον τομέα σας:</para>
+
+ <programlisting>example.com. MX 10 example.com.
+ MX 20 example.net.</programlisting>
+
+ <para>Μόνο ένας υπολογιστής μπορεί να καθοριστεί ως τελικός
+ παραλήπτης (προσθέστε το <literal>Cw example.com</literal> στο
+ αρχείο <filename>/etc/mail/sendmail.cf</filename> στο
+ <hostid role="domainname">example.com</hostid>).</para>
+
+ <para>Όταν το μηχάνημα που στέλνει μέσω του
+ <command>sendmail</command> προσπαθεί να παραδώσει το mail θα
+ προσπαθήσει να συνδεθεί στο δικό σας
+ (<hostid role="domainname">example.com</hostid>) μέσω της σύνδεσης
+ modem. Το πιο πιθανό είναι ότι δεν θα τα καταφέρει, γιατί δεν
+ θα είστε συνδεμένος εκείνη τη στιγμή. Το
+ <application>sendmail</application> θα το παραδώσει αυτόματα στην
+ υπηρεσία δευτερεύοντος MX, π.χ. τον παροχέα σας Internet
+ (<hostid role="domainname">example.net</hostid>). Το δευτερεύον
+ MX θα προσπαθεί περιοδικά να συνδεθεί στο μηχάνημα σας και να
+ παραδώσει το mail στον κύριο εξυπηρετητή MX
+ (<hostid role="domainname">example.com</hostid>).</para>
+
+ <para>Μπορείτε να χρησιμοποιήσετε κάτι όπως το παρακάτω ως script
+ εισόδου:</para>
+
+ <programlisting>#!/bin/sh
+# Put me in /usr/local/bin/pppmyisp
+( sleep 60 ; /usr/sbin/sendmail -q ) &amp;
+/usr/sbin/ppp -direct pppmyisp</programlisting>
+
+ <para>Αν πρόκειται να χρησιμοποιήσετε χωριστό script για την είσοδο
+ κάποιου χρήστη, μπορείτε να χρησιμοποιήσετε αντί για το παραπάνω
+ το <command>sendmail -qRexample.com</command> στο script. Αυτό
+ θα εξαναγκάσει την άμεση επεξεργασία όλου του mail στην ουρά για
+ το <hostid role="domainname">example.com</hostid>.</para>
+
+ <para>Πιο λεπτομερής περιγραφή της κατάστασης φαίνεται
+ παρακάτω:</para>
+
+ <para>Μήνυμα από την &a.isp;.</para>
+
+ <programlisting>&gt; παρέχουμε δευτερεύον MX για ένα πελάτη. Ο πελάτης συνδέεται στις
+&gt; υπηρεσίες μας αρκετές φορές τη μέρα αυτόματα, για να λαμβάνει τα email του
+&gt; στο πρωτεύον του MX (Δεν καλούμε την τοποθεσία του όταν λαμβάνουμε email
+&gt; για τον τομέα του). Το sendmail μας στέλνει το mailqueue κάθε 30 λεπτά.
+&gt; Τη δεδομένη στιγμή θα πρέπει να μείνει συνδεμένος για 30 λεπτά,
+&gt; για να είναι βέβαιος ότι όλο το email του θα έχει
+&gt; παραδοθεί στον πρωτεύοντα MX.
+&gt;
+&gt; Υπάρχει κάποια εντολή που να εξαναγκάσει το sendmail να στείλει
+&gt; όλα τα mails άμεσα; Ο χρήστης φυσικά δεν έχει δικαιώματα
+&gt; root στο μηχάνημα μας.
+
+Στην ενότητα <quote>privacy flags</quote> του sendmail.cf, υπάρχει ένας
+ορισμός Opgoaway,restrictqrun
+
+Αφαιρέστε το restrictqrun για να επιτρέψετε σε μη-root χρήστες να ξεκινήσουν
+την επεξεργασία της ουράς.
+Μπορεί επίσης να θέλετε να αναδιατάξετε τα MX. Είμαστε το 1ο MX για αυτού
+του είδους τους πελάτες, και έχουμε ορίσει:
+
+# If we are the best MX for a host, try directly instead of generating
+# local config error.
+OwTrue
+
+Με τον τρόπο αυτό, ένα απομακρυσμένο site θα παραδίδει απευθείας σε σας,
+χωρίς να προσπαθεί τη σύνδεση με το χρήστη. Έπειτα τα στέλνετε στον
+πελάτη σας. Αυτό λειτουργεί μόνο για <quote>μηχανήματα</quote>, και έτσι
+χρειάζεται να βάλετε τον πελάτη σας να ονομάσει το μηχάνημα του mail
+<quote>customer.com</quote> και επίσης
+<quote>hostname.customer.com</quote> στο DNS. Απλώς προσθέστε μια εγγραφή
+τύπου A στο DNS για το <quote>customer.com</quote>.</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question>
+ <para>Γιατί λαμβάνω συνέχεια μηνύματα λάθους <errorname>Relaying
+ Denied</errorname> όταν στέλνω mail από άλλους
+ υπολογιστές;</para>
+ </question>
+
+ <answer>
+ <para>Στις προεπιλεγμένες εγκαταστάσεις του &os;, το
+ <application>sendmail</application> είναι ρυθμισμένο να
+ στέλνει mail μόνο από τον υπολογιστή στον οποίο εκτελείται.
+ Για παράδειγμα, αν υπάρχει διαθέσιμος διακομιστής
+ <acronym>POP</acronym>, οι χρήστες θα μπορούν να ελέγχουν το
+ mail τους από το σχολείο, το γραφείο, ή άλλη απομακρυσμένη
+ τοποθεσία, αλλά θα εξακολουθούν να μην μπορούν να στείλουν
+ προς εξωτερικές διευθύνσεις. Τυπικά, λίγο μετά από μια απόπειρα
+ αποστολής, θα σταλεί ένα email από τον
+ <application>MAILER-DAEMON</application> με το μήνυμα λάθους
+ <errorname>5.7 Relaying Denied</errorname>.</para>
+
+ <para>Υπάρχουν διάφοροι τρόποι για να ξεπεράσετε το πρόβλημα.
+ Ο πλέον απλός είναι να βάλετε τη διεύθυνση του ISP σας σε
+ ένα αρχείο relay-domains,
+ <filename>/etc/mail/relay-domains</filename>. Ένας γρήγορος
+ τρόπος για να το κάνετε αυτό είναι:</para>
+
+ <screen>&prompt.root; <userinput>echo "your.isp.example.com" &gt; /etc/mail/relay-domains</userinput></screen>
+
+ <para>Αφού δημιουργήσετε ή επεξεργαστείτε αυτό το αρχείο, θα
+ πρέπει να επανεκκινήσετε το
+ <application>sendmail</application>. Αυτό δουλεύει μια χαρά
+ αν είστε διαχειριστής εξυπηρετητή και δεν επιθυμείτε να
+ στέλνετε mail τοπικά, ή αν θέλετε να χρησιμοποιήσετε ένα
+ σύστημα τύπου point και click σε ένα
+ άλλο μηχάνημα ή ακόμα και σε άλλο ISP. Είναι επίσης πολύ
+ χρήσιμο αν έχετε ρυθμίσει μόνο ένα ή δύο λογαριασμούς mail.
+ Αν θέλετε να προσθέσετε μεγαλύτερο αριθμό διευθύνσεων, μπορείτε
+ απλώς να ανοίξετε αυτό το αρχείο με τον επιθυμητό συντάκτη
+ κειμένου, και να προσθέσετε όλους τους τομείς, ένα σε κάθε
+ γραμμή:</para>
+
+ <programlisting>your.isp.example.com
+other.isp.example.net
+users-isp.example.org
+www.example.org</programlisting>
+
+ <para>Τώρα, οποιαδήποτε αποστολή mail από το σύστημα σας
+ από οποιοδήποτε υπολογιστή αυτής της λίστας (με την
+ προϋπόθεσή ο χρήστης να έχει λογαριασμό στο σύστημα σας), θα
+ είναι επιτυχής. Πρόκειται για ένα πολύ καλό τρόπο να
+ επιτρέψετε στους χρήστες να στέλνουν mail από το σύστημα σας
+ μέσω απομακρυσμένης σύνδεσης, χωρίς να επιτρέπετε σε άλλους να
+ στέλνουν SPAM μέσω του συστήματος σας.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="mail-advanced">
+ <title>Προχωρημένα Θέματα</title>
+
+ <para>Η ακόλουθη ενότητα καλύπτει πιο προχωρημένα θέματα, όπως τη ρύθμιση
+ του mail και ρυθμίσεις για ένα ολόκληρο τομέα.</para>
+
+ <sect2 id="mail-config">
+ <title>Βασικές Ρυθμίσεις</title>
+ <indexterm>
+ <primary>email</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <para>Χωρίς να χρειαστεί να κάνετε καμιά ρύθμιση, θα μπορείτε να
+ στείλετε mail προς εξωτερικούς υπολογιστές, αρκεί να έχετε ρυθμίσει
+ το <filename>/etc/resolv.conf</filename> ή να εκτελείτε το δικό
+ σας εξυπηρετητή DNS. Αν θέλετε να παραλαμβάνετε mail για τον
+ υπολογιστή σας στο δικό σας <application>sendmail</application> MTA,
+ υπάρχουν δύο μέθοδοι:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Μπορείτε να έχετε δικό σας τομέα και δικό σας εξυπηρετητή
+ DNS για τον τομέα σας. Για παράδειγμα, <hostid
+ role="domainname">FreeBSD.org</hostid></para>
+ </listitem>
+
+ <listitem>
+ <para>Να παραλαμβάνετε mail απευθείας στο μηχάνημα σας. Αυτό
+ γίνεται αν το mail παραδίδεται απευθείας στον υπολογιστή σας,
+ χρησιμοποιώντας τον όνομα του (πρέπει να βρίσκεται στο DNS).
+ Για παράδειγμα,
+ <hostid role="fqdn">example.FreeBSD.org</hostid>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm><primary>SMTP</primary></indexterm>
+ <para>Όποια επιλογή από τις παραπάνω και να κάνατε, για να είναι δυνατή
+ η παραλαβή mail απευθείας στον υπολογιστή σας, θα πρέπει να έχετε
+ μόνιμη στατική διεύθυνση IP (όχι δυναμική, όπως είναι οι περισσότερες
+ επιλογικές συνδέσεις PPP). Αν βρίσκεστε πίσω από κάποιο firewall,
+ θα πρέπει να επιτρέπει τη διακίνηση SMTP προς εσάς. Αν θέλετε να
+ λαμβάνετε mail απευθείας στον υπολογιστή σας, θα πρέπει να
+ εξασφαλίσετε <emphasis>ένα</emphasis> από τα παρακάτω:</para>
+
+ <itemizedlist>
+ <indexterm><primary>MX record</primary></indexterm>
+ <listitem>
+ <para>Να βεβαιωθείτε ότι η εγγραφή MX (με το χαμηλότερο αριθμό)
+ στο DNS σας, δείχνει προς τη διεύθυνση IP του
+ μηχανήματος σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να βεβαιωθείτε ότι δεν υπάρχει καμιά εγγραφή MX στο DNS για
+ τον υπολογιστή σας.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Όποιο από τα παραπάνω και αν κάνετε, θα μπορείτε να λαμβάνετε
+ mail απευθείας στον υπολογιστή σας.</para>
+
+ <para>Δοκιμάστε αυτό:</para>
+
+ <screen>&prompt.root; <userinput>hostname</userinput>
+example.FreeBSD.org
+&prompt.root; <userinput>host example.FreeBSD.org</userinput>
+example.FreeBSD.org has address 204.216.27.XX</screen>
+
+ <para>Αν βλέπετε το παραπάνω, το mail που κατευθύνεται απευθείας στο
+ <email role="nolink">yourlogin@example.FreeBSD.org</email> θα πρέπει
+ να λαμβάνεται χωρίς προβλήματα (θεωρώντας ότι το
+ <application>sendmail</application> εκτελείτε σωστά στον υπολογιστή
+ <hostid role="fqdn">example.FreeBSD.org</hostid>).</para>
+
+ <para>Αν αντί για αυτό δείτε κάτι σαν το παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput>
+example.FreeBSD.org has address 204.216.27.XX
+example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen>
+
+ <para>Όλο το mail που κατευθύνεται προς τον υπολογιστή σας (<hostid
+ role="fqdn">example.FreeBSD.org</hostid>) θα καταλήξει να
+ συλλέγεται στο <hostid>hub</hostid> με το ίδιο όνομα χρήστη, αντί να
+ σταλεί απευθείας στο μηχάνημα σας.</para>
+
+ <para>Τις παραπάνω πληροφορίες, τις χειρίζεται ο δικός σας εξυπηρετητής
+ DNS. Η εγγραφή DNS που περιέχει τις πληροφορίες δρομολόγησης για το
+ mail, είναι η <emphasis>M</emphasis>ail e<emphasis>X</emphasis>change.
+ Αν δεν υπάρχει εγγραφή MX, το mail θα παραδίδεται απευθείας στον
+ υπολογιστή μέσω της IP διεύθυνσης του.</para>
+
+ <para>Η καταχώριση MX για τον <hostid
+ role="fqdn">freefall.FreeBSD.org</hostid> έμοιαζε κάποια στιγμή με
+ την παρακάτω:</para>
+
+ <programlisting>freefall MX 30 mail.crl.net
+freefall MX 40 agora.rdrop.com
+freefall MX 10 freefall.FreeBSD.org
+freefall MX 20 who.cdrom.com</programlisting>
+
+ <para>Όπως μπορείτε να δείτε, ο <hostid>freefall</hostid> είχε πολλές
+ καταχωρήσεις MX. Η καταχώρηση με τον μικρότερο αριθμό, είναι ο
+ υπολογιστής που λαμβάνει το mail απευθείας, αν είναι διαθέσιμος.
+ Αν για κάποιο λόγο δεν είναι προσβάσιμος, οι άλλοι (που ορισμένες
+ φορές καλούνται <quote>backup MXes</quote>) δέχονται τα μηνύματα
+ προσωρινά και τα μεταβιβάζουν σε κάποιο υπολογιστή με χαμηλότερη
+ αρίθμηση, μόλις γίνει διαθέσιμος. Τελικά τα μηνύματα καταλήγουν
+ στον υπολογιστή με το μικρότερο αριθμό.</para>
+
+ <para>Οι εναλλακτικές τοποθεσίες MX, θα πρέπει να χρησιμοποιούν
+ διαφορετικές γραμμές για τη σύνδεση τους με το Internet. Αυτή είναι
+ η καλύτερη λύση. Ο παροχέας σας ή κάποιο άλλο φιλικό site, δεν
+ θα έχουν κανένα πρόβλημα να σας παρέχουν αυτή την υπηρεσία.</para>
+ </sect2>
+
+ <sect2 id="mail-domain">
+ <title>Mail για τον Τομέα Σας</title>
+
+ <para>Για να δημιουργήσετε ένα <quote>mailhost</quote> (δηλ. ένα
+ εξυπηρετητή mail) θα πρέπει οποιοδήποτε mail στέλνεται προς κάποιο
+ σταθμό εργασίας, να λαμβάνεται σε αυτόν. Βασικά θα θέλετε να
+ <quote>διεκδικείτε</quote> οποιοδήποτε mail που κατευθύνεται προς
+ οποιοδήποτε όνομα μηχανήματος του τομέα σας (στην περίπτωση μας το
+ <hostid role="fqdn">*.FreeBSD.org</hostid>) και να το ανακατευθύνετε
+ προς τον εξυπηρετητή mail, ώστε οι χρήστες σας να μπορούν να λάβουν
+ το mail τους από τον κεντρικό εξυπηρετητή.</para>
+
+ <indexterm><primary>DNS</primary></indexterm>
+ <para>Για ευκολία, θα πρέπει να έχετε ένα λογαριασμό χρήστη με το ίδιο
+ <emphasis>όνομα χρήστη</emphasis> και στα δύο μηχανήματα.
+ Χρησιμοποιήστε για το σκοπό αυτό την εντολή &man.adduser.8;.</para>
+
+ <para>Ο mailhost που θα χρησιμοποιήσετε, πρέπει να είναι το καθορισμένο
+ μηχάνημα για την ανταλλαγή μηνυμάτων για κάθε σταθμό εργασίας του
+ δικτύου. Αυτό γίνεται στις ρυθμίσεις DNS με τον ακόλουθο
+ τρόπο:</para>
+
+ <programlisting>example.FreeBSD.org A 204.216.27.XX ; Workstation
+ MX 10 hub.FreeBSD.org ; Mailhost</programlisting>
+
+ <para>Με τον τρόπο αυτό, το mail που κατευθύνεται προς κάποιο σταθμό
+ εργασίας θα ανακατευθυνθεί προς το mailhost, άσχετα με το που δείχνει
+ η εγγραφή τύπου Α. Το mail στέλνεται προς τον υπολογιστή MX.</para>
+
+ <para>Δεν μπορείτε να κάνετε το παραπάνω, αν δεν εκτελείτε το δικό σας
+ εξυπηρετητή DNS. Αν αυτό δεν συμβαίνει, και δεν μπορείτε να το
+ αλλάξετε, συνεννοηθείτε με τον παροχέα σας (ISP) ή με όποιον σας
+ παρέχει υπηρεσίες DNS.</para>
+
+ <para>Αν παρέχετε υπηρεσίες εικονικού ταχυδρομείου, οι παρακάτω
+ πληροφορίες θα σας φανούν χρήσιμες. Για το παράδειγμα μας, θα
+ υποθέσουμε ότι έχετε ένα πελάτη με το δικό του τομέα, στην περίπτωση
+ μας το <hostid role="domainname">customer1.org</hostid>, και θέλετε
+ όλο το mail για το <hostid role="domainname">customer1.org</hostid>
+ να στέλνεται στο δικό σας mailhost, <hostid
+ role="fqdn">mail.myhost.com</hostid>. Η καταχώριση σας στο DNS θα
+ μοιάζει με την παρακάτω:</para>
+
+ <programlisting>customer1.org MX 10 mail.myhost.com</programlisting>
+
+ <para>Σημειώστε ότι <emphasis>δεν χρειάζεστε</emphasis> εγγραφή τύπου Α
+ για το <hostid role="domainname">customer1.org</hostid> αν θέλετε
+ απλώς να χειρίζεστε email για αυτό τον τομέα.</para>
+
+ <note>
+ <para>Να έχετε υπόψη σας ότι δεν θα μπορείτε να κάνετε ping το <hostid
+ role="domainname">customer1.org</hostid> αν δεν υπάρχει για αυτό
+ εγγραφή τύπου Α.</para>
+ </note>
+
+ <para>Το τελευταίο πράγμα που πρέπει να κάνετε, είναι να ορίσετε στο
+ <application>sendmail</application> που εκτελείται στο δικό σας
+ mailhost, για ποιους τομείς ή / και μηχανήματα θα δέχεται mail.
+ Υπάρχουν μερικοί διαφορετικοί τρόποι για να γίνει αυτό. Μπορείτε να
+ χρησιμοποιήσετε έναν από τους παρακάτω:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Προσθέστε τα μηχανήματα στο αρχείο
+ <filename>/etc/mail/local-host-names</filename> αν χρησιμοποιείτε
+ τη δυνατότητα <literal>FEATURE(use_cw_file)</literal>.
+ Αν χρησιμοποιείτε κάποια έκδοση του
+ <application>sendmail</application> πριν την 8.10, το αρχείο είναι
+ το <filename>/etc/sendmail.cw</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Προσθέστε μια γραμμή <literal>Cwyour.host.com</literal> στο
+ αρχείο σας <filename>/etc/sendmail.cf</filename> ή στο αρχείο
+ <filename>/etc/mail/sendmail.cf</filename> αν χρησιμοποιείτε
+ την έκδοση 8.10 του <application>sendmail</application> ή κάποια
+ μεταγενέστερη.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="SMTP-UUCP">
+ <title>SMTP με UUCP</title>
+
+ <para>Η προεπιλεγμένη ρύθμιση του <application>sendmail</application>
+ που έρχεται με το &os;, προορίζεται για δικτυακές τοποθεσίες που είναι
+ απευθείας συνδεδεμένες στο Internet. Σε περιπτώσεις που είναι
+ επιθυμητή η ανταλλαγή email μέσω UUCP, θα πρέπει να χρησιμοποιηθεί
+ διαφορετικό αρχείο ρυθμίσεων για το
+ <application>sendmail</application>.</para>
+
+ <para>Η χειροκίνητη ρύθμιση του αρχείου
+ <filename>/etc/mail/sendmail.cf</filename> ανήκει στα προχωρημένα
+ θέματα. Η έκδοση 8 του <application>sendmail</application> παράγει
+ αρχεία ρυθμίσεων μέσω του προεπεξεργαστή &man.m4.1;, όπου οι ρυθμίσεις
+ γίνονται σε ένα ανώτερο επίπεδο αφαίρεσης. Μπορείτε να βρείτε τα
+ αρχεία ρύθμισης του&man.m4.1; στον κατάλογο
+ <filename>/usr/share/sendmail/cf</filename>. Διαβάστε το
+ <filename>README</filename> στον κατάλογο <filename>cf</filename>
+ για μια βασική εισαγωγή στις ρυθμίσεις του &man.m4.1;.</para>
+
+ <para>Ο καλύτερος τρόπος για την παράδοση mail μέσω του UUCP, είναι με
+ την χρήση της δυνατότητας <literal>mailertable</literal>. Παράγεται με
+ αυτό τον τρόπο μια βάση δεδομένων που μπορεί να χρησιμοποιήσει το
+ <application>sendmail</application> για να πάρει αποφάσεις σχετικά
+ με την δρομολόγηση.</para>
+
+ <para>Θα πρέπει αρχικά να δημιουργήσετε το αρχείο
+ <filename>.mc</filename>. Θα βρείτε μερικά παραδείγματα στον κατάλογο
+ <filename>/usr/share/sendmail/cf/cf</filename>.
+ Υποθέτοντας ότι έχετε ονομάσει το αρχείο σας
+ <filename>foo.mc</filename>, το μόνο που χρειάζεται να κάνετε για να
+ το μετατρέψετε σε ένα έγκυρο αρχείο <filename>sendmail.cf</filename>
+ είναι:</para>
+
+ <screen>&prompt.root; <userinput>cd /etc/mail</userinput>
+&prompt.root; <userinput>make foo.cf</userinput>
+&prompt.root; <userinput>cp foo.cf /etc/mail/sendmail.cf</userinput></screen>
+
+ <para>Ένα τυπικό αρχείο <filename>.mc</filename> θα δείχνει όπως το
+ παρακάτω:</para>
+
+ <programlisting>VERSIONID(`<replaceable>Your version number</replaceable>') OSTYPE(bsd4.4)
+
+FEATURE(accept_unresolvable_domains)
+FEATURE(nocanonify)
+FEATURE(mailertable, `hash -o /etc/mail/mailertable')
+
+define(`UUCP_RELAY', <replaceable>your.uucp.relay</replaceable>)
+define(`UUCP_MAX_SIZE', 200000)
+define(`confDONT_PROBE_INTERFACES')
+
+MAILER(local)
+MAILER(smtp)
+MAILER(uucp)
+
+Cw <replaceable>your.alias.host.name</replaceable>
+Cw <replaceable>youruucpnodename.UUCP</replaceable></programlisting>
+
+ <para>Οι γραμμές που περιέχουν τις δυνατότητες
+ <literal>accept_unresolvable_domains</literal>,
+ <literal>nocanonify</literal>, and
+ <literal>confDONT_PROBE_INTERFACES</literal> θα αποτρέψουν τη χρήση
+ του DNS κατά την παράδοση του mail. Η οδηγία
+ <literal>UUCP_RELAY</literal> απαιτείται για την υποστήριξη παράδοσης
+ μέσω του UUCP. Απλώς τοποθετήστε εκεί ένα όνομα μηχανήματος στο
+ Internet που να μπορεί να χειριστεί διευθύνσεις ψευδο-τομέων .UUCP.
+ Το πιο πιθανό είναι να βάλετε εκεί τον αναμεταδότη (relay) για mail
+ που παρέχει ο ISP σας.</para>
+
+ <para>Έχοντας κάνει το παραπάνω, θα χρειαστείτε ένα αρχείο
+ <filename>/etc/mail/mailertable</filename>. Αν έχετε μόνο μια σύνδεση
+ με τον έξω κόσμο που χρησιμοποιείται για όλα σας τα mail, το παρακάτω
+ αρχείο είναι επαρκές:</para>
+
+ <programlisting>#
+# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
+. uucp-dom:<replaceable>your.uucp.relay</replaceable></programlisting>
+
+ <para>Ένα πιο πολύπλοκο παράδειγμα θα μοιάζει με το παρακάτω:</para>
+
+ <programlisting>#
+# makemap hash /etc/mail/mailertable.db &lt; /etc/mail/mailertable
+#
+horus.interface-business.de uucp-dom:horus
+.interface-business.de uucp-dom:if-bus
+interface-business.de uucp-dom:if-bus
+.heep.sax.de smtp8:%1
+horus.UUCP uucp-dom:horus
+if-bus.UUCP uucp-dom:if-bus
+. uucp-dom:</programlisting>
+
+
+ <para>Οι τρεις πρώτες γραμμές χειρίζονται ειδικές περιπτώσεις, όπου το
+ mail που απευθύνεται σε κάποιο τομέα δεν θα πρέπει να σταλθεί στην
+ προεπιλεγμένη διαδρομή, αλλά αντίθετα σε κάποιο γειτονικό UUCP
+ προκειμένου να <quote>συντομευθεί</quote> το μονοπάτι παράδοσης.
+ Η επόμενη γραμμή χειρίζεται το mail προς τον τοπικό τομέα Ethernet,
+ όπου είναι δυνατή η παράδοση μέσω SMTP. Τέλος, οι γειτονικοί UUCP
+ αναφέρονται με γραφή ψευδο-τομέων UUCP ώστε να επιτρέπεται σε κάποιον
+ <literal><replaceable>uucp-neighbor
+ </replaceable>!<replaceable>recipient</replaceable></literal>
+ να παρακάμψει τους προεπιλεγμένους κανόνες. Η τελευταία γραμμή είναι
+ πάντα μια μοναδική τελεία, η οποία ταιριάζει με οτιδήποτε άλλο, με
+ παράδοση UUCP σε ένα γειτονικό UUCP ο οποίος ενεργεί ως γενική πύλη
+ mail προς τον υπόλοιπο κόσμο. Όλα τα ονόματα υπολογιστών που
+ βρίσκονται μετά το <literal>uucp-dom:</literal> θα πρέπει να είναι
+ έγκυροι UUCP γείτονες, όπως μπορείτε να βεβαιώσετε χρησιμοποιώντας
+ το <literal>uuname</literal>.</para>
+
+ <para>Σας υπενθυμίζουμε ότι αυτό το αρχείο πρέπει να μετατραπεί σε μια
+ βάση δεδομένων DBM πριν χρησιμοποιηθεί. Μπορείτε να βάλετε τη γραμμή
+ εντολών που απαιτείται για να επιτευχθεί αυτό ως σχόλιο στην αρχή
+ του αρχείου <filename>mailertable</filename>. Πρέπει πάντοτε να
+ εκτελείτε αυτή την εντολή κάθε φορά που αλλάζετε το αρχείο
+ <filename>mailertable</filename>.</para>
+
+ <para>Μια τελευταία υπόδειξη: αν δεν είστε βέβαιοι για το αν θα
+ λειτουργήσει κάποια συγκεκριμένη δρομολόγηση mail, θυμηθείτε την επιλογή
+ <option>-bt</option> του <application>sendmail</application>. Αυτή
+ ξεκινάει το <application>sendmail</application> σε
+ <emphasis>κατάσταση δοκιμής διευθύνσεων</emphasis>. Απλώς γράψτε
+ <literal>3,0</literal>, ακολουθούμενο από τη διεύθυνση που θέλετε να
+ ελέγξετε για δρομολόγηση mail. Η τελευταία γραμμή θα σας πει τον
+ εσωτερικό αντιπρόσωπο mail που χρησιμοποιήθηκε, τη διεύθυνση προορισμού
+ με την οποία κλήθηκε, καθώς και την (πιθανώς μεταφρασμένη) διεύθυνση.
+ Μπορείτε να βγείτε από αυτή την κατάσταση, πληκτρολογώντας
+ <keycombo action="simul"><keycap>Ctrl</keycap><keycap>D</keycap></keycombo>.</para>
+
+ <screen>&prompt.user; <userinput>sendmail -bt</userinput>
+ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
+Enter &lt;ruleset&gt; &lt;address&gt;
+<prompt>&gt;</prompt> <userinput>3,0 foo@example.com</userinput>
+canonify input: foo @ example . com
+...
+parse returns: $# uucp-dom $@ <replaceable>your.uucp.relay</replaceable> $: foo &lt; @ example . com . &gt;
+<prompt>&gt;</prompt> <userinput>^D</userinput></screen>
+ </sect1>
+
+ <sect1 id="outgoing-only">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Bill</firstname>
+ <surname>Moran</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Ρύθμιση Εξυπηρετητή Μόνο για Αποστολή</title>
+
+ <para>Υπάρχουν πολλές περιπτώσεις, που μπορεί να θέλετε μόνο να στέλνετε
+ mail μέσω κάποιου αναμεταδότη. Μερικά παραδείγματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ο υπολογιστής σας χρησιμοποιείται ως desktop, αλλά θέλετε να
+ χρησιμοποιήσετε προγράμματα όπως το &man.send-pr.1;. Για να γίνει
+ αυτό θα πρέπει να χρησιμοποιήσετε τον αναμεταδότη mail που παρέχει
+ ο ISP σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ο υπολογιστής σας είναι ένας εξυπηρετητής που δεν χειρίζεται το
+ mail τοπικά, αλλά χρειάζεται να το δώσει εξ' ολοκλήρου σε κάποιο
+ αναμεταδότη για επεξεργασία.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οποιοδήποτε σχεδόν <acronym>MTA</acronym> είναι ικανό να καλύψει
+ τον παραπάνω ρόλο. Δυστυχώς, μπορεί να είναι πολύ δύσκολο να
+ ρυθμίσετε σωστά ένα πλήρες <acronym>MTA</acronym> ώστε απλώς να
+ στέλνει το mail προς αναμετάδοση. Προγράμματα όπως το
+ <application>sendmail</application> και το
+ <application>postfix</application> είναι υπερβολικά μεγάλα για αυτή
+ τη δουλειά.</para>
+
+ <para>Επιπρόσθετα, αν χρησιμοποιείτε κάποια συνηθισμένη υπηρεσία
+ πρόσβασης στο Internet, η συμφωνία με την εταιρία παροχής μπορεί να
+ σας απαγορεύει να εκτελείτε το δικό σας
+ <quote>εξυπηρετητή mail</quote>.</para>
+
+ <para>Ο ευκολότερος τρόπος για να εκπληρώσετε αυτές τις ανάγκες είναι
+ να εγκαταστήσετε το port <filename role="package">mail/ssmtp</filename>
+ Εκτελέστε τις ακόλουθες εντολές ως <username>root</username>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/mail/ssmtp</userinput>
+&prompt.root; <userinput>make install replace clean</userinput></screen>
+
+ <para>Μετά την εγκατάσταση, το
+ <filename role="package">mail/ssmtp</filename> μπορεί να ρυθμιστεί με
+ ένα αρχείο τεσσάρων μόλις γραμμών, το οποίο βρίσκεται στο
+ <filename>/usr/local/etc/ssmtp/ssmtp.conf</filename>:</para>
+
+ <programlisting>root=yourrealemail@example.com
+mailhub=mail.example.com
+rewriteDomain=example.com
+hostname=_HOSTNAME_</programlisting>
+
+ <para>Βεβαιωθείτε ότι χρησιμοποιείτε την πραγματική διεύθυνση email για
+ τον <username>root</username>. Βάλτε τον αναμεταδότη mail του ISP σας
+ στη θέση <hostid role="fqdn">mail.example.com</hostid> (μερικοί ISP τον
+ ονομάζουν <quote>εξυπηρετητή εξερχόμενου ταχυδρομείου</quote> ή
+ <quote>εξυπηρετητή SMTP</quote>).</para>
+
+ <para>Βεβαιωθείτε ότι έχετε απενεργοποιήσει πλήρως το
+ <application>sendmail</application>, ακόμα και την υπηρεσία εξερχόμενων
+ μηνυμάτων. Δείτε το
+ <xref linkend="mail-disable-sendmail"> για λεπτομέρειες.</para>
+
+ <para>Υπάρχουν κάποιες ακόμα διαθέσιμες επιλογές στο
+ <filename role="package">mail/ssmtp</filename>. Δείτε το παράδειγμα του
+ αρχείου ρυθμίσεων στο <filename>/usr/local/etc/ssmtp</filename> ή τη
+ σελίδα manual του <application>ssmtp</application> για περισσότερα
+ παραδείγματα και πληροφορίες.</para>
+
+ <para>Ρυθμίζοντας το <application>ssmtp</application> με αυτό τον τρόπο,
+ θα είναι δυνατή η σωστή λειτουργία οποιουδήποτε λογισμικού στον
+ υπολογιστή σας που χρειάζεται να στείλει mail. Επίσης δεν παραβιάζεται
+ με αυτό τον τρόπο η άδεια χρήσης του ISP σας και δεν μπορεί ο
+ υπολογιστής σας να παραβιαστεί και να χρησιμοποιηθεί για την αποστολή
+ ανεπιθύμητων μηνυμάτων (spam).</para>
+ </sect1>
+
+ <sect1 id="SMTP-dialup">
+ <title>Χρησιμοποιώντας το Mail Μέσω Επιλογικής (Dialup) Σύνδεσης</title>
+
+ <para>Αν έχετε στατική διεύθυνση IP, δεν θα χρειαστεί να αλλάξετε καμιά
+ από τις προεπιλογές. Ρυθμίστε το όνομα του υπολογιστή σας ώστε να
+ ταιριάζει με αυτό που σας έχει οριστεί για το Internet, και το
+ <application>sendmail</application> θα κάνει τα υπόλοιπα.</para>
+
+ <para>Αν λαμβάνετε δυναμική IP και χρησιμοποιείτε επιλογική PPP σύνδεση
+ με το Internet, πιθανόν διαθέτετε μια θυρίδα ταχυδρομείου (mailbox)
+ στον εξυπηρετητή mail του παροχέα σας. Ας υποθέσουμε ότι ο τομέας του
+ ISP σας είναι <hostid role="domainname">example.net</hostid>, και ότι
+ το όνομα χρήστη σας είναι <username>user</username>, το μηχάνημα σας
+ λέγεται <hostid role="fqdn">bsd.home</hostid>, και ο ISP σας, σας έχει
+ πει ότι μπορείτε να χρησιμοποιήσετε το
+ <hostid role="fqdn">relay.example.net</hostid> ως αναμεταδότη για
+ το mail.</para>
+
+ <para>Για να μπορέσετε να λάβετε mail από τη θυρίδα σας, θα χρειαστείτε
+ κάποιο αντιπρόσωπο ανάληψης (retrieval agent). Το βοηθητικό πρόγραμμα
+ <application>fetchmail</application> είναι μια καλή επιλογή, καθώς
+ υποστηρίζει πολλά διαφορετικά πρωτόκολλα. Το πρόγραμμα αυτό είναι
+ διαθέσιμο ως πακέτο ή από την Συλλογή των Ports
+ (<filename role="package">mail/fetchmail</filename>). Συνήθως, ο
+ <acronym>ISP</acronym> σας θα παρέχει την υπηρεσία
+ <acronym>POP</acronym>. Αν χρησιμοποιείτε <acronym>PPP</acronym>
+ χρήστη, μπορείτε να κατεβάσετε αυτόματα το mail σας μετά την
+ αποκατάσταση της σύνδεσης σας, χρησιμοποιώντας την ακόλουθη καταχώριση
+ στο <filename>/etc/ppp/ppp.linkup</filename>:</para>
+
+ <programlisting>MYADDR:
+!bg su user -c fetchmail</programlisting>
+
+ <para>Αν χρησιμοποιείτε το <application>sendmail</application> (όπως
+ φαίνεται παρακάτω) για να παραδώσετε mail σε μη-τοπικούς λογαριασμούς,
+ πιθανόν να θέλετε το <application>sendmail</application> να
+ επεξεργάζεται την ουρά του mail αμέσως μετά την αποκατάσταση της
+ σύνδεσης. Για να το κάνετε αυτό, βάλτε την παρακάτω εντολή αμέσως μετά
+ την εντολή <command>fetchmail</command> στο αρχείο
+ <filename>/etc/ppp/ppp.linkup</filename>:</para>
+
+ <programlisting> !bg su user -c "sendmail -q"</programlisting>
+
+ <para>Ας υποθέσουμε ότι υπάρχει ένας λογαριασμός για τον
+ <username>user</username> στον <hostid
+ role="fqdn">bsd.home</hostid>. Στον προσωπικό κατάλογο του
+ <username>user</username> στο <hostid
+ role="fqdn">bsd.home</hostid>, δημιουργήστε ένα αρχείο
+ <filename>.fetchmailrc</filename>:</para>
+
+ <programlisting>poll example.net protocol pop3 fetchall pass MySecret</programlisting>
+
+ <para>Το αρχείο αυτό δεν θα πρέπει να είναι αναγνώσιμο από κανένα, εκτός
+ από τον <username>user</username>, καθώς περιέχει τον κωδικό
+ <literal>MySecret</literal>.</para>
+
+ <para>Για να μπορείτε να στείλετε mail με τη σωστή επικεφαλίδα
+ <literal>from:</literal>, θα πρέπει να ρυθμίσετε το
+ <application>sendmail</application> να χρησιμοποιεί το
+ <email>user@example.net</email> αντί για το
+ <email role="nolink">user@bsd.home</email>. Ίσως επίσης να θέλετε να
+ ρυθμίσετε το <application>sendmail</application> να στέλνει όλο το mail
+ μέσω του <hostid role="fqdn">relay.example.net</hostid>, ώστε η μετάδοση
+ του mail να είναι ταχύτερη.</para>
+
+ <para>Το ακόλουθο αρχείο <filename>.mc</filename> θα πρέπει να είναι
+ επαρκές:</para>
+
+ <programlisting>VERSIONID(`bsd.home.mc version 1.0')
+OSTYPE(bsd4.4)dnl
+FEATURE(nouucp)dnl
+MAILER(local)dnl
+MAILER(smtp)dnl
+Cwlocalhost
+Cwbsd.home
+MASQUERADE_AS(`example.net')dnl
+FEATURE(allmasquerade)dnl
+FEATURE(masquerade_envelope)dnl
+FEATURE(nocanonify)dnl
+FEATURE(nodns)dnl
+define(`SMART_HOST', `relay.example.net')
+Dmbsd.home
+define(`confDOMAIN_NAME',`bsd.home')dnl
+define(`confDELIVERY_MODE',`deferred')dnl</programlisting>
+
+ <para>Διαβάστε την προηγούμενη ενότητα για λεπτομέρειες σχετικά με την
+ μετατροπή αυτού του αρχείου <filename>.mc</filename> σε ένα αρχείο
+ <filename>sendmail.cf</filename>. Επίσης, μη ξεχάσετε να
+ επανεκκινήσετε το <application>sendmail</application> μετά την
+ ενημέρωση του <filename>sendmail.cf</filename>.</para>
+ </sect1>
+
+ <sect1 id="SMTP-Auth">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>James</firstname>
+ <surname>Gorham</surname>
+ <contrib>Γράφτηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Πιστοποίηση Αυθεντικότητας στο SMTP</title>
+
+ <para>Η χρήση <acronym>SMTP</acronym> με πιστοποίηση αυθεντικότητας στον
+ εξυπηρετητή ταχυδρομείου σας, μπορεί να σας προσφέρει μια σειρά από
+ οφέλη. Μπορεί να προσθέσει ένα ακόμα επίπεδο ασφάλειας στο
+ <application>sendmail</application>, ενώ έχει και το πλεονέκτημα ότι
+ δίνει τη δυνατότητα στους χρήστες φορητών υπολογιστών (που συχνά
+ συνδέονται μέσω διαφορετικών δικτύων) να χρησιμοποιούν τον ίδιο
+ εξυπηρετητή ταχυδρομείου χωρίς την ανάγκη επαναρύθμισης κάθε φορά του
+ προγράμματος αποστολής / λήψης ταχυδρομείου.</para>
+
+ <procedure>
+ <step>
+ <para>Εγκαταστήστε το
+ <filename role="package">security/cyrus-sasl2</filename>
+ από τη Συλλογή των Ports. Το port αυτό
+ υποστηρίζει μια σειρά από επιλογές που μπορείτε να θέσετε κατά
+ την μεταγλώττιση. Για να μπορέσετε να χρησιμοποιήσετε την
+ μέθοδο αυθεντικοποίησης στο SMTP που συζητάμε εδώ, βεβαιωθείτε
+ ότι είναι ενεργοποιημένη η επιλογή <option>LOGIN</option>.</para>
+ </step>
+
+ <step>
+ <para>Μετά την εγκατάσταση του
+ <filename role="package">security/cyrus-sasl2</filename>,
+ τροποποιήστε το αρχείο
+ <filename>/usr/local/lib/sasl2/Sendmail.conf</filename>
+ (ή δημιουργήστε το αν δεν υπάρχει) και προσθέστε την παρακάτω
+ γραμμή:</para>
+
+ <programlisting>pwcheck_method: saslauthd</programlisting>
+ </step>
+
+ <step>
+ <para>Εγκαταστήστε έπειτα το
+ <filename role="package">security/cyrus-sasl2-saslauthd</filename>,
+ και προσθέστε στο <filename>/etc/rc.conf</filename> την ακόλουθη
+ γραμμή:</para>
+
+ <programlisting>saslauthd_enable="YES"</programlisting>
+
+ <para>Τέλος, ξεκινήστε το δαίμονα saslauthd:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/saslauthd start</userinput></screen>
+
+ <para>Ο δαίμονας αυτός δρα ως ενδιάμεσος για το
+ <application>sendmail</application> ώστε να γίνεται πιστοποίηση
+ αυθεντικότητας μέσω της βάσης δεδομένων κωδικών
+ <filename>passwd</filename> του &os; συστήματος σας. Με αυτό τον
+ τρόπο απαλλάσσεστε από την ανάγκη δημιουργίας νέου σετ από ονόματα
+ χρηστών και κωδικούς για κάθε χρήστη που χρειάζεται να
+ χρησιμοποιήσει πιστοποίηση στο <acronym>SMTP</acronym>.
+ Χρησιμοποιείται το ίδιο όνομα και κωδικός, τόσο για είσοδο στο
+ σύστημα, όσο και για το mail.</para>
+ </step>
+
+ <step>
+ <para>Επεξεργαστείτε τώρα το <filename>/etc/make.conf</filename> και
+ προσθέστε τις ακόλουθες γραμμές:</para>
+
+ <programlisting>SENDMAIL_CFLAGS=-I/usr/local/include/sasl -DSASL
+SENDMAIL_LDFLAGS=-L/usr/local/lib
+SENDMAIL_LDADD=-lsasl2</programlisting>
+
+ <para>Οι γραμμές αυτές, παρέχουν στο
+ <application>sendmail</application> τις κατάλληλες ρυθμίσεις ώστε
+ να συνδεθεί σωστά με το
+ <filename role="package">cyrus-sasl2</filename> κατά τη διάρκεια
+ της μεταγλώττισης. Βεβαιωθείτε ότι είναι εγκατεστημένο το πακέτο
+ <filename role="package">cyrus-sasl2</filename> πριν ξεκινήσετε
+ την επαναμεταγλώττιση του
+ <application>sendmail</application>.</para>
+ </step>
+
+ <step>
+ <para>Επαναμεταγλωττίστε το <application>sendmail</application>
+ εκτελώντας τις παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/lib/libsmutil</userinput>
+&prompt.root; <userinput>make cleandir && make obj && make</userinput>
+&prompt.root; <userinput>cd /usr/src/lib/libsm</userinput>
+&prompt.root; <userinput>make cleandir && make obj && make</userinput>
+&prompt.root; <userinput>cd /usr/src/usr.sbin/sendmail</userinput>
+&prompt.root; <userinput>make cleandir && make obj && make && make install</userinput></screen>
+
+ <para>Η μεταγλώττιση του <application>sendmail</application> δεν
+ πρέπει να παρουσιάσει προβλήματα, αν το
+ <filename>/usr/src</filename> δεν έχει αλλάξει σε μεγάλο βαθμό
+ και εφόσον υπάρχουν οι κοινόχρηστες βιβλιοθήκες που
+ απαιτούνται.</para>
+ </step>
+
+ <step>
+ <para>Μετά την μεταγλώττιση και επανεγκατάσταση του
+ <application>sendmail</application>, επεξεργαστείτε το αρχείο
+ <filename>/etc/mail/freebsd.mc</filename> (ή όποιο αρχείο
+ χρησιμοποιείτε ως <filename>.mc</filename>. Πολλοί διαχειριστές
+ επιλέγουν να χρησιμοποιήσουν την έξοδο της εντολής &man.hostname.1;
+ ως όνομα για το αρχείο <filename>.mc</filename> για να εξασφαλίσουν
+ ότι είναι μοναδικό). Προσθέστε σε αυτό τις ακόλουθες
+ γραμμές:</para>
+
+ <programlisting>dnl set SASL options
+TRUST_AUTH_MECH(`GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl
+define(`confAUTH_MECHANISMS', `GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN')dnl</programlisting>
+
+ <para>Οι επιλογές αυτές ρυθμίζουν τις διαφορετικές μεθόδους που
+ έχει στη διάθεση του το <application>sendmail</application>,
+ προκειμένου να πιστοποιήσει τους χρήστες. Αν θέλετε να
+ χρησιμοποιήσετε κάποια μέθοδο διαφορετική από το
+ <application>pwcheck</application>, δείτε την τεκμηρίωση που
+ περιλαμβάνεται.</para>
+ </step>
+
+ <step>
+ <para>Τέλος, εκτελέστε &man.make.1; ενώ βρίσκεστε στον κατάλογο
+ <filename>/etc/mail</filename>. Με τον τρόπο αυτό, θα
+ χρησιμοποιηθεί το νέο σας <filename>.mc</filename> αρχείο και
+ θα δημιουργηθεί ένα αρχείο <filename>.cf</filename> με όνομα
+ <filename>freebsd.cf</filename> (ή οτιδήποτε όνομα είχατε δώσει
+ στο αρχείο <filename>.mc</filename>). Χρησιμοποιήστε έπειτα την
+ εντολή <command>make install restart</command>, η οποία θα
+ αντιγράψει το αρχείο στο <filename>sendmail.cf</filename>, και
+ θα επανεκκινήσει σωστά το <application>sendmail</application>.
+ Για περισσότερες λεπτομέρειες σχετικά με αυτή τη διαδικασία, θα
+ πρέπει να διαβάσετε το αρχείο
+ <filename>/etc/mail/Makefile</filename>.</para>
+ </step>
+ </procedure>
+
+ <para>Αν όλα πήγαν καλά, θα πρέπει να μπορείτε να δώσετε τα στοιχεία
+ εισόδου σας στο πρόγραμμα που χρησιμοποιείτε για αποστολή και λήψη
+ mail, και να στείλετε ένα δοκιμαστικό μήνυμα. Για να διερευνήσετε
+ περισσότερο τη λειτουργία, θέστε την επιλογή
+ <option>LogLevel</option> του <application>sendmail</application> στο
+ 13 και παρακολουθήστε το <filename>/var/log/maillog</filename>
+ για τυχόν λάθη.</para>
+
+ <para>Για περισσότερες πληροφορίες, παρακαλούμε να δείτε τη σελίδα του
+ <application>sendmail</application> που αφορά την
+ <ulink url="http://www.sendmail.org/~ca/email/auth.html">πιστοποίηση
+ αυθεντικότητας στο <acronym>SMTP</acronym></ulink>.</para>
+ </sect1>
+
+ <sect1 id="mail-agents">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Silver</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Προγράμματα Ταχυδρομείου για τον Χρήστη</title>
+
+ <indexterm>
+ <primary>Mail User Agents</primary>
+ </indexterm>
+
+ <para>Ένα πρόγραμμα Αντιπροσώπου Ταχυδρομείου Χρήστη (Mail User Agent,
+ <acronym>MUA</acronym>), είναι μια εφαρμογή που χρησιμοποιείται για την
+ αποστολή και λήψη email. Επιπλέον, καθώς το email
+ <quote>εξελίσσεται</quote> και γίνεται πιο πολύπλοκο, τα
+ <acronym>MUA</acronym> γίνονται όλο και ισχυρότερα όσο αφορά τον τρόπο
+ που αλληλεπιδρούν με το email. Αυτό δίνει στους χρήστες περισσότερες
+ λειτουργίες και ευελιξία. To &os; περιέχει υποστήριξη για μεγάλο αριθμό
+ από προγράμματα ταχυδρομείου, και όλα μπορούν να εγκατασταθούν πολύ
+ εύκολα μέσω της <link
+ linkend="ports">Συλλογής των Ports του &os;</link>. Οι χρήστες
+ μπορούν να επιλέξουν μεταξύ γραφικών προγραμμάτων, όπως το
+ <application>evolution</application> ή το
+ <application>balsa</application>, και προγράμματα κονσόλας όπως τα
+ <application>mutt</application>, <application>alpine</application>
+ ή <command>mail</command>, ή ακόμα και τις διεπαφές web που προσφέρονται
+ από μερικούς μεγάλους οργανισμούς.</para>
+
+ <sect2 id="mail-command">
+ <title>mail</title>
+
+ <para>Το &man.mail.1; είναι το προεπιλεγμένο πρόγραμμα ταχυδρομείου
+ (<acronym>MUA</acronym>) in &os;. Πρόκειται για ένα
+ <acronym>MUA</acronym> κονσόλας, το οποίο προσφέρει όλες τις βασικές
+ λειτουργίες που απαιτούνται για την αποστολή και λήψη email
+ σε μορφή κειμένου, αν και έχει περιορισμένες δυνατότητες όσο αφορά
+ συνημμένα αρχεία και υποστηρίζει μόνο τοπικές θυρίδες.</para>
+
+ <para>Αν και το <command>mail</command> δεν υποστηρίζει εγγενώς τη
+ λήψη email μέσω διακομιστών <acronym>POP</acronym> ή
+ <acronym>IMAP</acronym>, είναι ωστόσο δυνατόν να κατεβάσετε τα
+ email σε μια τοπική θυρίδα (<filename>mbox</filename>) χρησιμοποιώντας
+ κάποια εφαρμογή όπως το <application>fetchmail</application>, το
+ οποίο θα συζητήσουμε αργότερα σε αυτό το κεφάλαιο (<xref
+ linkend="mail-fetchmail">).</para>
+
+ <para>Για την αποστολή και λήψη email, απλώς εκτελέστε την εντολή
+ <command>mail</command> όπως φαίνεται στο παρακάτω παράδειγμα:</para>
+
+ <screen>&prompt.user; <userinput>mail</userinput></screen>
+
+ <para>Τα περιεχόμενα της θυρίδας του χρήστη στον κατάλογο
+ <filename class="directory">/var/mail</filename> θα διαβαστούν
+ αυτόματα από το πρόγραμμα <command>mail</command>.
+ Αν η θυρίδα ταχυδρομείου είναι άδεια, το πρόγραμμα τερματίζεται με
+ το μήνυμα ότι δεν βρέθηκε αλληλογραφία. Μετά την ανάγνωση της
+ θυρίδας, ξεκινά η διεπαφή της εφαρμογής και εμφανίζεται μια λίστα με
+ μηνύματα. Τα μηνύματα αριθμούνται αυτόματα, όπως φαίνεται στο
+ παρακάτω παράδειγμα:</para>
+
+ <screen>Mail version 8.1 6/6/93. Type ? for help.
+"/var/mail/marcs": 3 messages 3 new
+>N 1 root@localhost Mon Mar 8 14:05 14/510 "test"
+ N 2 root@localhost Mon Mar 8 14:05 14/509 "user account"
+ N 3 root@localhost Mon Mar 8 14:05 14/509 "sample"</screen>
+
+ <para>Τα μηνύματα μπορούν πλέον να διαβαστούν με την εντολή
+ <keycap>t</keycap> της εντολής <command>mail</command>, ακολουθούμενη
+ με τον αριθμό του mail που θέλετε να εμφανιστεί. Στο παράδειγμα αυτό
+ θα διαβάσουμε το πρώτο μήνυμα:</para>
+
+ <screen>&amp; <userinput>t 1</userinput>
+Message 1:
+From root@localhost Mon Mar 8 14:05:52 2004
+X-Original-To: marcs@localhost
+Delivered-To: marcs@localhost
+To: marcs@localhost
+Subject: test
+Date: Mon, 8 Mar 2004 14:05:52 +0200 (SAST)
+From: root@localhost (Charlie Root)
+
+This is a test message, please reply if you receive it.</screen>
+
+ <para>Όπως φαίνεται στο παραπάνω παράδειγμα, η χρήση του πλήκτρου
+ <keycap>t</keycap> θα προκαλέσει την εμφάνιση του μηνύματος με
+ πλήρεις επικεφαλίδες. Για να δείτε ξανά τη λίστα με τα μηνύματα,
+ χρησιμοποιήστε το πλήκτρο <keycap>h</keycap>.</para>
+
+ <para>Αν το mail απαιτεί απάντηση, μπορείτε να χρησιμοποιήσετε την
+ εντολή <command>mail</command> χρησιμοποιώντας τις ενσωματωμένες
+ εντολές <keycap>R</keycap> ή <keycap>r</keycap>. Το πλήκτρο
+ <keycap>R</keycap> οδηγεί το <command>mail</command> να απαντήσει
+ μόνο στον αποστολέα του μηνύματος, ενώ το <keycap>r</keycap> απαντάει
+ όχι μόνο στον αποστολέα, αλλά σε όλους τους παραλήπτες του μηνύματος.
+ Μπορείτε επίσης να προσθέσετε μετά από τις εντολές αυτές, τον αριθμό
+ του μηνύματος στο οποίο θέλετε να απαντήσετε. Αφού το κάνετε αυτό,
+ θα πρέπει να γράψετε την απάντηση σας και να σημειώσετε το τέλος της
+ γράφοντας μια μόνο <keycap>.</keycap> σε μια νέα γραμμή. Μπορείτε να
+ δείτε ένα παράδειγμα παρακάτω:</para>
+
+ <screen>&amp; <userinput>R 1</userinput>
+To: root@localhost
+Subject: Re: test
+
+<userinput>Thank you, I did get your email.
+.</userinput>
+EOT</screen>
+
+ <para>Για να στείλετε νέο mail, θα πρέπει να χρησιμοποιήσετε το πλήκτρο
+ <keycap>m</keycap>, ακολουθούμενο από την διεύθυνση του παραλήπτη.
+ Μπορείτε να δώσετε πολλαπλούς παραλήπτες, χωρίζοντας μεταξύ τους
+ τις διευθύνσεις με <keycap>,</keycap>. Μπορείτε έπειτα να βάλετε το
+ θέμα του μηνύματος και να συνεχίσετε με το περιεχόμενο. Το τέλος του
+ μηνύματος καθορίζεται γράφοντας μια μοναδική <keycap>.</keycap> σε μια
+ νέα γραμμή.</para>
+
+ <screen>&amp; <userinput>mail root@localhost</userinput>
+Subject: <userinput>I mastered mail
+
+Now I can send and receive email using mail ... :)
+.</userinput>
+EOT</screen>
+
+ <para>Όσο βρίσκεστε μέσα στην εντολή <command>mail</command>, μπορείτε
+ να χρησιμοποιήσετε το πλήκτρο <keycap>?</keycap> για την εμφάνιση
+ βοήθειας οποιαδήποτε στιγμή. Μπορείτε επίσης να συμβουλευτείτε την
+ σελίδα manual του &man.mail.1; για περισσότερες πληροφορίες σχετικά
+ με την εντολή <command>mail</command>.</para>
+
+ <note>
+ <para>Όπως αναφέραμε προηγουμένως, η εντολή &man.mail.1; δεν
+ σχεδιάστηκε αρχικά για να χειρίζεται συνημμένα, και για το λόγο
+ αυτό οι δυνατότητες τις στο συγκεκριμένο θέμα είναι μικρές.
+ Νεώτερα <acronym>MUA</acronym>, όπως το
+ <application>mutt</application>, χειρίζονται τα συνημμένα με πολύ
+ πιο έξυπνο τρόπο. Αλλά αν παρ' όλα αυτά επιθυμείτε να
+ χρησιμοποιήσετε την εντολή <command>mail</command>, μάλλον θα
+ σας φανεί χρήσιμο το port
+ <filename role="package">converters/mpack</filename>.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="mutt-command">
+ <title>mutt</title>
+
+ <para>Το <application>mutt</application> είναι ένα μικρό, αλλά
+ πολύ ισχυρό πρόγραμμα αποστολής και λήψης mail, με εξαιρετικά
+ χαρακτηριστικά τα οποία περιλαμβάνουν:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Την ικανότητα να δείχνει μηνύματα με την μορφή
+ συζητήσεων</para>
+ </listitem>
+
+ <listitem>
+ <para>Υποστήριξη PGP για ψηφιακή υπογραφή και κρυπτογράφηση
+ email</para>
+ </listitem>
+
+ <listitem>
+ <para>Υποστήριξη MIME</para>
+ </listitem>
+
+ <listitem>
+ <para>Υποστήριξη Maildir</para>
+ </listitem>
+
+ <listitem>
+ <para>Εξαιρετικές δυνατότητες παραμετροποίησης</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Όλες αυτές οι δυνατότητες, κάνουν το
+ <application>mutt</application> ένα από τα πιο εξελιγμένα διαθέσιμα
+ προγράμματα ταχυδρομείου. Δείτε την τοποθεσία <ulink
+ url="http://www.mutt.org"></ulink> για περισσότερες πληροφορίες
+ σχετικά με το <application>mutt</application>.</para>
+
+ <para>Μπορείτε να εγκαταστήσετε τη σταθερή έκδοση του
+ <application>mutt</application> μέσω του port <filename
+ role="package">mail/mutt</filename>, ενώ και η τρέχουσα υπό εξέλιξη
+ έκδοση είναι διαθέσιμη μέσω του port <filename
+ role="package">mail/mutt-devel</filename>. Μετά την εγκατάσταση
+ του port, μπορείτε να εκτελέσετε το <application>mutt</application>,
+ με την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.user; <userinput>mutt</userinput></screen>
+
+ <para>Το <application>mutt</application> θα διαβάσει αυτόματα τα
+ περιεχόμενα της θυρίδας ταχυδρομείου χρήστη στον κατάλογο <filename
+ class="directory">/var/mail</filename>, και θα δείξει τα περιεχόμενα
+ του αν αυτό είναι εφικτό. Αν δεν υπάρχουν mails στη θυρίδα του
+ χρήστη, το <application>mutt</application> θα εισέλθει σε κατάσταση
+ αναμονής εντολών. Το παρακάτω παράδειγμα, δείχνει το
+ <application>mutt</application> να απεικονίζει μια λίστα
+ μηνυμάτων:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/mutt1" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Για να διαβάσετε email, απλώς επιλέξτε το χρησιμοποιώντας τα
+ βελάκια, και πιέστε <keycap>Enter</keycap>. Μπορείτε να δείτε ένα
+ παράδειγμα απεικόνισης mail από το <application>mutt</application>
+ παρακάτω:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/mutt2" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Όπως και το &man.mail.1;, το <application>mutt</application>,
+ σας επιτρέπει να απαντήσετε τόσο στον αποστολέα του μηνύματος, όσο και
+ σε όλους τους παραλήπτες. Για να απαντήσετε μόνο στον αποστολέα του
+ email, χρησιμοποιήστε το πλήκτρο
+ <keycap>r</keycap>. Για να απαντήσετε στην ομάδα χρηστών η οποία
+ περιλαμβάνει τόσο τον αρχικό αποστολέα, όσο και τους υπόλοιπους
+ παραλήπτες του μηνύματος, χρησιμοποιήστε το πλήκτρο
+ <keycap>g</keycap>.</para>
+
+ <note>
+ <para>Το <application>mutt</application> χρησιμοποιεί το
+ &man.vi.1; ως συντάκτη κειμένου για δημιουργία και απάντηση σε
+ email. Η ρύθμιση αυτή μπορεί να αλλαχθεί από το χρήστη
+ δημιουργώντας ή τροποποιώντας το αρχείο
+ <filename>.muttrc</filename> στον προσωπικό του κατάλογο, και
+ θέτοντας τη μεταβλητή <literal>editor</literal>, ή αλλάζοντας την
+ μεταβλητή περιβάλλοντος <envar>EDITOR</envar>. Δείτε την τοποθεσία
+ <ulink url="http://www.mutt.org/"></ulink> για περισσότερες
+ πληροφορίες σχετικά με τη ρύθμιση του
+ <application>mutt</application>.</para>
+ </note>
+
+ <para>Για να συντάξετε ένα νέο μήνυμα, πιέστε το πλήκτρο
+ <keycap>m</keycap>. Αφού γράψετε το κατάλληλο θέμα, το
+ <application>mutt</application> θα ξεκινήσει το &man.vi.1;
+ επιτρέποντας σας να γράψετε το mail. Μόλις ολοκληρώσετε,
+ αποθηκεύστε και τερματίστε το <command>vi</command> και το
+ <application>mutt</application> θα συνεχίσει, δείχνοντας σας μια
+ οθόνη περίληψης του mail το οποίο πρόκειται να σταλεί. Για να
+ στείλετε το mail, πιέστε το πλήκτρο <keycap>y</keycap>. Μπορείτε
+ να δείτε παρακάτω ένα παράδειγμα της οθόνης περίληψης:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/mutt3" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Το <application>mutt</application> περιέχει επίσης εκτεταμένη
+ βοήθεια, στην οποία μπορείτε να έχετε πρόσβαση σχεδόν από κάθε σημείο
+ του μενού, πιέζοντας το πλήκτρο <keycap>?</keycap>. Η γραμμή στην
+ κορυφή της οθόνης δείχνει επίσης τις συντομεύσεις πληκτρολογίου,
+ όπου υπάρχουν.</para>
+ </sect2>
+
+ <sect2 id="alpine-command">
+ <title>alpine</title>
+
+ <para>Το <application>alpine</application> απευθύνεται κυρίως στον
+ αρχάριο χρήστη, αλλά περιλαμβάνει επίσης κάποια προχωρημένα
+ χαρακτηριστικά.</para>
+
+ <warning>
+ <para>Το <application>alpine</application> έχει ιστορικό προβλημάτων
+ ασφαλείας. Στο παρελθόν, ανακαλύφθηκαν προβλήματα που επέτρεπαν σε
+ απομακρυσμένους εισβολείς να εκτελέσουν το δικό τους κώδικα στο
+ τοπικό σύστημα, στέλνοντας απλώς ένα ειδικά διαμορφωμένο email.
+ Όλα αυτά τα <emphasis>γνωστά</emphasis> προβλήματα έχουν πλέον
+ διορθωθεί, αλλά ο κώδικας του <application>alpine</application>
+ είναι γραμμένος με ιδιαίτερα ανασφαλή τρόπο, και ο Υπεύθυνος
+ Ασφάλειας του &os;, πιστεύει ότι είναι αρκετά πιθανόν να υπάρχουν
+ και άλλα κενά ασφαλείας που δεν έχουν ανακαλυφθεί ακόμα.
+ Εγκαταστήστε το <application>alpine</application> με δική σας
+ ευθύνη.</para>
+ </warning>
+
+ <para>Η τρέχουσα έκδοση του <application>alpine</application> μπορεί να
+ εγκατασταθεί χρησιμοποιώντας το port <filename
+ role="package">mail/alpine</filename>. Μετά την εγκατάσταση του
+ port το <application>alpine</application> μπορεί να ξεκινήσει
+ χρησιμοποιώντας την παρακάτω εντολή:</para>
+
+ <screen>&prompt.user; <userinput>alpine</userinput></screen>
+
+ <para>Την πρώτη φορά που θα εκτελέσετε το
+ <application>alpine</application> θα σας δείξει μια αρχική σελίδα
+ χαιρετισμού, με μια σύντομη εισαγωγή, καθώς και μια αίτηση από την
+ ομάδα ανάπτυξης του <application>alpine</application> να τους στείλετε
+ ένα ανώνυμο mail το οποίο θα τους βοηθήσει να έχουν μια ιδέα για το
+ πόσοι χρήστες χρησιμοποιούν το λογισμικό. Για να στείλετε αυτό το
+ ανώνυμο μήνυμα, πιέστε <keycap>Enter</keycap>, ή εναλλακτικά πιέστε
+ <keycap>E</keycap> για να κλείσετε την οθόνη χαιρετισμού χωρίς να
+ στείλετε το ανώνυμο μήνυμα. Ένα παράδειγμα της σελίδας χαιρετισμού
+ φαίνεται παρακάτω:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/pine1" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Θα εμφανιστεί κατόπιν το κύριο μενού, στο οποίο μπορείτε να
+ μετακινηθείτε εύκολα χρησιμοποιώντας τα βελάκια. Αυτό το κύριο μενού
+ παρέχει πλήκτρα συντόμευσης για δημιουργία νέων mail, για
+ ανίχνευση στους καταλόγους mail, και ακόμα για διαχείριση καταχωρήσεων
+ στο βιβλίο διευθύνσεων. Κάτω από το κύριο μενού, εμφανίζονται
+ συντομεύσεις πληκτρολογίου σχετικές με την εργασία που γίνεται τη
+ συγκεκριμένη στιγμή.</para>
+
+ <para>Ο προεπιλεγμένος κατάλογος που ανοίγει το
+ <application>alpine</application> είναι το
+ <filename class="directory">inbox</filename>. Για να δείτε το
+ ευρετήριο των μηνυμάτων, πιέστε το <keycap>I</keycap>, ή επιλέξτε το
+ <guimenuitem>MESSAGE INDEX</guimenuitem> όπως φαίνεται
+ παρακάτω:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/pine2" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Το ευρετήριο μηνυμάτων δείχνει μηνύματα από τον τρέχοντα
+ κατάλογο, και μπορείτε να μετακινηθείτε σε αυτό με τα βελάκια.
+ Μπορείτε να διαβάσετε το επιλεγμένο μήνυμα, πιέζοντας το πλήκτρο
+ <keycap>Enter</keycap>.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/pine3" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Στην εικόνα που φαίνεται παρακάτω, το
+ <application>alpine</application> απεικονίζει ένα υπόδειγμα μηνύματος.
+ Στο κάτω μέρος της οθόνης φαίνονται σχετικές συντομεύσεις
+ πληκτρολογίου. Ένα παράδειγμα τέτοιας συντόμευσης, είναι το πλήκτρο
+ <keycap>r</keycap> το οποίο λέει στο <acronym>MUA</acronym> να
+ δημιουργήσει απάντηση προς το τρέχον μήνυμα που απεικονίζεται.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/pine4" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Η απάντηση σε ένα mail μέσω του <application>alpine</application>
+ γίνεται με τη χρήση του συντάκτη κειμένου
+ <application>pico</application>, ο οποίος εγκαθίσταται από
+ προεπιλογή μαζί με το <application>alpine</application>.
+ Το <application>pico</application> διευκολύνει τη μετακίνηση μέσα στο
+ μήνυμα, και είναι κάπως πιο εύκολο για τους αρχάριους χρήστες σε
+ σχέση με το &man.vi.1; ή το &man.mail.1;. Μόλις ολοκληρώσετε την
+ απάντηση, μπορείτε να στείλετε το μήνυμα πιέζοντας τα πλήκτρα
+ <keycombo action="simul"><keycap>Ctrl</keycap><keycap>X</keycap>
+ </keycombo>. Το <application>alpine</application> θα σας ζητήσει να
+ το επιβεβαιώσετε.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="mail/pine5" format="PNG">
+ </imageobject>
+ </mediaobject>
+
+ <para>Μπορείτε να προσαρμόσετε το <application>alpine</application>
+ με τη χρήση της επιλογής <guimenuitem>SETUP</guimenuitem> από το κύριο
+ μενού. Συμβουλευθείτε την τοποθεσία <ulink
+ url="http://www.washington.edu/alpine/"></ulink> για περισσότερες
+ πληροφορίες.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mail-fetchmail">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Silver</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Χρησιμοποιώντας το fetchmail</title>
+
+ <indexterm>
+ <primary>fetchmail</primary>
+ </indexterm>
+
+ <para>Το <application>fetchmail</application> είναι ένας πλήρης πελάτης
+ για <acronym>IMAP</acronym> και <acronym>POP</acronym>, ο οποίος
+ επιτρέπει στους χρήστες να κατεβάζουν αυτόματα mail από απομακρυσμένους
+ εξυπηρετητές <acronym>IMAP</acronym> και <acronym>POP</acronym> και
+ να το αποθηκεύουν σε τοπικές θυρίδες, από όπου μπορεί έπειτα να υπάρχει
+ πιο εύκολη πρόσβαση. Το <application>fetchmail</application> μπορεί να
+ εγκατασταθεί χρησιμοποιώντας το port <filename
+ role="package">mail/fetchmail</filename> και παρέχει διάφορα
+ χαρακτηριστικά, μερικά από τα οποία περιλαμβάνουν:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Υποστήριξη των πρωτοκόλλων <acronym>POP3</acronym>,
+ <acronym>APOP</acronym>, <acronym>KPOP</acronym>,
+ <acronym>IMAP</acronym>, <acronym>ETRN</acronym> και
+ <acronym>ODMR</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Δυνατότητα προώθησης email μέσω <acronym>SMTP</acronym>, το
+ οποίο επιτρέπει τη φυσιολογική λειτουργία του φιλτραρίσματος, της
+ προώθησης, και των παρωνυμίων (aliases).</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να λειτουργήσει σε κατάσταση δαίμονα, ώστε να ελέγχει
+ περιοδικά για νέα μηνύματα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να ανακτά πολλαπλές θυρίδες και να τις προωθεί, ανάλογα
+ με τις ρυθμίσεις του, σε διαφορετικούς τοπικούς χρήστες.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αν και είναι έξω από τους σκοπούς αυτού του κειμένου να εξηγήσει
+ όλες τις δυνατότητες του <application>fetchmail</application>, θα
+ αναφερθούμε σε κάποιες βασικές λειτουργίες.
+ Το <application>fetchmail</application> χρησιμοποιεί ένα αρχείο
+ ρυθμίσεων γνωστό ως <filename>.fetchmailrc</filename>, για να
+ λειτουργήσει σωστά. Το αρχείο αυτό περιέχει τις πληροφορίες του
+ εξυπηρετητή αλλά και τα στοιχεία εισόδου του χρήστη. Λόγω των
+ ευαίσθητων πληροφοριών του αρχείου αυτού, σας συμβουλεύουμε να
+ χρησιμοποιήσετε την παρακάτω εντολή ώστε η ανάγνωση του να επιτρέπεται
+ μόνο από τον ιδιοκτήτη του:</para>
+
+ <screen>&prompt.user; <userinput>chmod 600 .fetchmailrc</userinput></screen>
+
+ <para>Το <filename>.fetchmailrc</filename> που φαίνεται παρακάτω είναι ένα
+ παράδειγμα με το οποίο μπορείτε να κατεβάσετε τη θυρίδα ενός χρήστη
+ μέσω του πρωτοκόλλου <acronym>POP</acronym>. Κατευθύνει το
+ <application>fetchmail</application> να συνδεθεί στο <hostid
+ role="fqdn">example.com</hostid> χρησιμοποιώντας όνομα χρήστη
+ <username>joesoap</username> και κωδικό <literal>XXX</literal>.
+ Το παράδειγμα υποθέτει ότι ο χρήστης <username>joesoap</username> είναι
+ επίσης και χρήστης του τοπικού συστήματος.</para>
+
+ <programlisting>poll example.com protocol pop3 username "joesoap" password "XXX"</programlisting>
+
+ <para>Το επόμενο παράδειγμα, δείχνει σύνδεση σε πολλαπλούς
+ <acronym>POP</acronym> και <acronym>IMAP</acronym> εξυπηρετητές, και
+ ανακατευθύνει σε διαφορετικούς τοπικούς χρήστες όπου είναι
+ απαραίτητο:</para>
+
+ <programlisting>poll example.com proto pop3:
+user "joesoap", with password "XXX", is "jsoap" here;
+user "andrea", with password "XXXX";
+poll example2.net proto imap:
+user "john", with password "XXXXX", is "myth" here;</programlisting>
+
+ <para>Το βοηθητικό πρόγραμμα <application>fetchmail</application> μπορεί
+ να λειτουργήσει σε κατάσταση δαίμονα, αν το εκτελέσετε με την επιλογή
+ <option>-d</option>, ακολουθούμενη από ένα διάστημα (σε δευτερόλεπτα)
+ το οποίο θα χρησιμοποιηθεί για να ερωτώνται οι εξυπηρετητές που
+ είναι καταχωρημένοι στο αρχείο <filename>.fetchmailrc</filename>.
+ Το παρακάτω παράδειγμα οδηγεί το <application>fetchmail</application>
+ να ανιχνεύει για νέο mail κάθε 600 δευτερόλεπτα:</para>
+
+ <screen>&prompt.user; <userinput>fetchmail -d 600</userinput></screen>
+
+ <para>Μπορείτε να βρείτε περισσότερες πληροφορίες για το
+ <application>fetchmail</application> στην τοποθεσία <ulink
+ url="http://fetchmail.berlios.de/"></ulink>.</para>
+ </sect1>
+
+ <sect1 id="mail-procmail">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Silver</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Χρησιμοποιώντας το procmail</title>
+
+ <indexterm>
+ <primary>procmail</primary>
+ </indexterm>
+
+ <para>Το βοηθητικό πρόγραμμα <application>procmail</application> είναι
+ μια απίστευτα ισχυρή εφαρμογή που μπορεί να χρησιμοποιηθεί για το
+ φιλτράρισμα του εισερχόμενου mail. Επιτρέπει στους χρήστες να
+ ορίζουν <quote>κανόνες</quote> οι οποίοι μπορεί να ταιριάζουν σε
+ εισερχόμενα mail και να εκτελούν διάφορες λειτουργίες, ή να
+ ανακατευθύνουν το mail σε εναλλακτικές θυρίδες ή / και διευθύνσεις
+ ταχυδρομείου. Το <application>procmail</application> μπορεί να
+ εγκατασταθεί χρησιμοποιώντας το port <filename
+ role="package">mail/procmail</filename>. Μετά την εγκατάσταση του,
+ μπορεί να ενσωματωθεί σχεδόν σε οποιοδήποτε
+ <acronym>MTA</acronym>. Συμβουλευθείτε την τεκμηρίωση του
+ <acronym>MTA</acronym> που χρησιμοποιείτε για περισσότερες πληροφορίες.
+ Εναλλακτικά, μπορείτε να ενσωματώσετε το
+ <application>procmail</application> προσθέτοντας την ακόλουθη γραμμή
+ σε ένα αρχείο <filename>.forward</filename> στον κατάλογο του χρήστη,
+ χρησιμοποιώντας τις δυνατότητες του
+ <application>procmail</application>:</para>
+
+ <programlisting>"|exec /usr/local/bin/procmail || exit 75"</programlisting>
+
+ <para>Στην παρακάτω ενότητα, θα δείξουμε μερικούς από τους βασικούς
+ κανόνες του <application>procmail</application>, καθώς και σύντομες
+ περιγραφές της λειτουργίας τους. Πρέπει να τοποθετήσετε αυτούς (και
+ άλλους) κανόνες σε ένα αρχείο <filename>.procmailrc</filename>, το οποίο
+ θα πρέπει να βρίσκεται μέσα στον κατάλογο του χρήστη:</para>
+
+ <para>Μπορείτε να βρείτε τους περισσότερους από αυτούς τους κανόνες, στη
+ σελίδα manual του &man.procmailex.5;.</para>
+
+ <para>Προώθηση όλου του email της διεύθυνσης
+ <email>user@example.com</email> προς την εξωτερική
+ διεύθυνση <email role="nolink">goodmail@example2.com</email>:</para>
+
+ <programlisting>:0
+* ^From.*user@example.com
+! goodmail@example2.com</programlisting>
+
+ <para>Προώθηση όλων των email που είναι μικρότερα από 1000 bytes προς μια
+ εξωτερική διεύθυνση email <email
+ role="nolink">goodmail@example2.com</email>:</para>
+
+ <programlisting>:0
+* &lt; 1000
+! goodmail@example2.com</programlisting>
+
+ <para>Αποστολή όλου του mail που στάλθηκε προς το
+ <email>alternate@example.com</email> σε μια θυρίδα που καλείται
+ <filename>alternate</filename>:</para>
+
+ <programlisting>:0
+* ^TOalternate@example.com
+alternate</programlisting>
+
+ <para>Αποστολή όλου του mail με θέμα <quote>Spam</quote> προς το
+ <filename>/dev/null</filename>:</para>
+
+ <programlisting>:0
+^Subject:.*Spam
+/dev/null</programlisting>
+
+ <para>Μια χρήσιμη λύση που ξεχωρίζει τα email από τις λίστες ταχυδρομείου
+ <hostid role="domainname">&os;.org</hostid> και τοποθετεί το κάθε
+ μήνυμα σε διαφορετική θυρίδα:</para>
+
+ <programlisting>:0
+* ^Sender:.owner-freebsd-\/[^@]+@FreeBSD.ORG
+{
+ LISTNAME=${MATCH}
+ :0
+ * LISTNAME??^\/[^@]+
+ FreeBSD-${MATCH}
+}</programlisting>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml b/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml
new file mode 100644
index 0000000000..6155afbbd0
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/mirrors/chapter.sgml
@@ -0,0 +1,3424 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Που θα Βρείτε το FreeBSD
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml
+ %SRCID% 1.503
+
+-->
+
+<appendix id="mirrors">
+ <title>Που θα Βρείτε το &os;</title>
+
+ <sect1 id="mirrors-cdrom">
+ <title>Εκδόσεις σε CDROM και DVD</title>
+
+ <sect2>
+ <title>Retail Εκδόσεις</title>
+
+ <para>Το &os; είναι διαθέσιμο ως εμπορικό προϊόν (&os; CD, επιπρόσθετο
+ λογισμικό, και τυπωμένη τεκμηρίωση) από διάφορους προμηθευτές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <address>
+ <otheraddr>CompUSA</otheraddr>
+ WWW: <otheraddr><ulink url="http://www.compusa.com/"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Frys Electronics</otheraddr>
+ WWW: <otheraddr><ulink url="http://www.frys.com/"></ulink></otheraddr>
+ </address>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>CD και DVD διανομές</title>
+
+ <para>Το &os; είναι διαθέσιμο σε CD και DVD για αγορά μέσω διαδικτύου
+ από τους παρακάτω προμηθευτές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <address>
+ <otheraddr>&os; Mall, Inc.</otheraddr>
+ <street>700 Harvest Park Ste F</street>
+ <city>Brentwood</city>, <state>CA</state> <postcode>94513</postcode>
+ <country>USA</country>
+ Τηλέφωνο: <phone>+1 925 674-0783</phone>
+ Fax: <fax>+1 925 674-0821</fax>
+ Email: <email>info@freebsdmall.com</email>
+ WWW: <otheraddr><ulink url="http://www.freebsdmall.com/"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Dr. Hinner EDV</otheraddr>
+ <street>St. Augustinus-Str. 10</street>
+ <postcode>D-81825</postcode> <city>M&uuml;nchen</city>
+ <country>Germany</country>
+ Τηλέφωνο: <phone>(089) 428 419</phone>
+ WWW: <otheraddr><ulink url="http://www.hinner.de/linux/freebsd.html"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Ikarios</otheraddr>
+ <street>22-24 rue Voltaire</street>
+ <postcode>92000</postcode> <city>Nanterre</city>
+ <country>France</country>
+ WWW: <otheraddr><ulink url="http://ikarios.com/form/#freebsd"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>JMC Software</otheraddr>
+ <country>Ireland</country>
+ Τηλέφωνο: <phone>353 1 6291282</phone>
+ WWW: <otheraddr><ulink url="http://www.thelinuxmall.com"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>The Linux Emporium</otheraddr>
+ <street>Hilliard House, Lester Way</street>
+ <city>Wallingford</city>
+ <postcode>OX10 9TA</postcode>
+ <country>United Kingdom</country>
+ Τηλέφωνο: <phone>+44 1491 837010</phone>
+ Fax: <fax>+44 1491 837016</fax>
+ WWW: <otheraddr><ulink url="http://www.linuxemporium.co.uk/products/bsd/"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Linux+ DVD Magazine</otheraddr>
+ <street>Lewartowskiego 6</street>
+ <city>Warsaw</city>
+ <postcode>00-190</postcode>
+ <country>Poland</country>
+ Τηλέφωνο: <phone>+48 22 860 18 18</phone>
+ Email: <email>editors@lpmagazine.org</email>
+ WWW: <otheraddr><ulink url="http://www.lpmagazine.org/"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Linux System Labs Australia</otheraddr>
+ <street>21 Ray Drive</street>
+ <city>Balwyn North</city>
+ <postcode>VIC - 3104</postcode>
+ <country>Australia</country>
+ Τηλέφωνο: <phone>+61 3 9857 5918</phone>
+ Fax: <fax>+61 3 9857 8974</fax>
+ WWW: <otheraddr><ulink url="http://www.lsl.com.au"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>LinuxCenter.Kz</otheraddr>
+ <city>Ust-Kamenogorsk</city>
+ <country>Kazakhstan</country>
+ Τηλέφωνο: <phone>+7-705-501-6001</phone>
+ Email: <email>info@linuxcenter.kz</email>
+ WWW: <otheraddr><ulink url="http://linuxcenter.kz/page.php?page=fr"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>LinuxCenter.Ru</otheraddr>
+ <street>Galernaya Street, 55</street>
+ <city>Saint-Petersburg</city>
+ <postcode>190000</postcode>
+ <country>Russia</country>
+ Τηλέφωνο: <phone>+7-812-3125208</phone>
+ Email: <email>info@linuxcenter.ru</email>
+ WWW: <otheraddr><ulink url="http://linuxcenter.ru/shop/freebsd"></ulink></otheraddr>
+ </address>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Διανομείς</title>
+
+ <para>Αν είστε μεταπωλητής και μπορείτε να διανείμετε σε CD-ROM προϊόντα
+ βασισμένα στο &os;, παρακαλούμε επικοινωνήστε με κάποιον από τους
+ διανομείς:</para>
+
+ <itemizedlist>
+ <listitem>
+ <address>
+ <otheraddr>Cylogistics</otheraddr>
+ <street>809B Cuesta Dr., #2149</street>
+ <city>Mountain View</city>, <state>CA</state> <postcode>94040</postcode>
+ <country>USA</country>
+ Τηλέφωνο: <phone>+1 650 694-4949</phone>
+ Fax: <fax>+1 650 694-4953</fax>
+ Email: <email>sales@cylogistics.com</email>
+ WWW: <otheraddr><ulink url="http://www.cylogistics.com/"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Ingram Micro</otheraddr>
+ <street>1600 E. St. Andrew Place</street>
+ <city>Santa Ana</city>, <state>CA</state> <postcode>92705-4926</postcode>
+ <country>USA</country>
+ Τηλέφωνο: <phone>1 (800) 456-8000</phone>
+ WWW: <otheraddr><ulink url="http://www.ingrammicro.com/"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Kudzu, LLC</otheraddr>
+ <street>7375 Washington Ave. S.</street>
+ <city>Edina</city>, <state>MN</state> <postcode>55439</postcode>
+ <country>USA</country>
+ Τηλέφωνο: <phone>+1 952 947-0822</phone>
+ Fax: <fax>+1 952 947-0876</fax>
+ Email: <email>sales@kudzuenterprises.com</email>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>LinuxCenter.Ru</otheraddr>
+ <street>Galernaya Street, 55</street>
+ <city>Saint-Petersburg</city>
+ <postcode>190000</postcode>
+ <country>Russia</country>
+ Τηλέφωνο: <phone>+7-812-3125208</phone>
+ Email: <email>info@linuxcenter.ru</email>
+ WWW: <otheraddr><ulink url="http://linuxcenter.ru/freebsd"></ulink></otheraddr>
+ </address>
+ </listitem>
+
+ <listitem>
+ <address>
+ <otheraddr>Navarre Corp</otheraddr>
+ <street>7400 49th Ave South</street>
+ <city>New Hope</city>, <state>MN</state> <postcode>55428</postcode>
+ <country>USA</country>
+ Τηλέφωνο: <phone>+1 763 535-8333</phone>
+ Fax: <fax>+1 763 535-0341</fax>
+ WWW: <otheraddr><ulink url="http://www.navarre.com/"></ulink></otheraddr>
+ </address>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mirrors-ftp">
+ <title>Εξυπηρετητές FTP</title>
+
+ <para>Οι επίσημες εκδόσεις του &os; είναι διαθέσιμες μέσω ανώνυμης FTP
+ σύνδεσης από διάφορους εξυπηρετητές FTP σε όλο τον κόσμο. Ο κεντρικός
+ εξυπηρετητής <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/"></ulink>
+ έχει πολύ καλή σύνδεση με τον υπόλοιπο κόσμο, και επιτρέπει ένα μεγάλο
+ αριθμό ταυτόχρονων συνδέσεων. Ακόμα κι έτσι όμως, είναι μάλλον καλή
+ ιδέα να βρείτε κάποιο εξυπηρετητή FTP που είναι πιο <quote>κοντά</quote>
+ σας (ειδικά αν θέλετε να στήσετε κάποιο τοπικό mirror site).</para>
+
+ <para>Το &os; είναι επίσης διαθέσιμο μέσω σύνδεσης ανώνυμου FTP από τα
+ παρακάτω mirror sites. Αν επιλέξετε να κατεβάσετε το &os; μέσω ανώνυμου
+ FTP, σας παρακαλούμε να διαλέξετε κάποιο εξυπηρετητή ο οποίος είναι
+ κοντά σας. Τα mirror sites που αναφέρονται ως <quote>Κύρια Mirror
+ Sites</quote> έχουν συνήθως την πλήρη συλλογή αρχείων του &os; (όλες τις
+ διαθέσιμες εκδόσεις, για κάθε διαθέσιμη αρχιτεκτονική συστήματος), αλλά
+ είναι πιθανόν να πετύχετε καλύτερες ταχύτητες εξυπηρέτησης με κάποιο
+ εξυπηρετητή που είναι στη δική σας χώρα ή περιοχή. Τα τοπικά sites
+ έχουν συνήθως τις πιο πρόσφατες εκδόσεις για τις πιο δημοφιλείς
+ αρχιτεκτονικές συστήματος, οπότε μπορεί να μην έχουν όλες τις πιθανές
+ εκδόσεις του &os;. Όλα τα sites δέχονται συνδέσεις μέσω ανώνυμου FTP.
+ Μερικά από αυτά μπορεί να υποστηρίζουν και άλλης μορφής συνδέσεις. Οι
+ εναλλακτικές μορφές σύνδεσης αναφέρονται ξεχωριστά για κάθε site
+ παρακάτω:</para>
+
+ &chap.mirrors.ftp.inc;
+ </sect1>
+
+ <sect1 id="mirrors-bittorrent">
+ <title>BitTorrent</title>
+
+ <indexterm>
+ <primary>BitTorrent</primary>
+ </indexterm>
+
+ <para>Μπορείτε να ανακτήσετε τα βασικά αρχεία ISO των εκδόσεων του &os;,
+ μέσω του συστήματος BitTorrent. Στην τοποθεσία <ulink
+ url="http://torrents.freebsd.org:8080/">http://torrents.freebsd.org:8080</ulink>
+ υπάρχει μια πλήρης συλλογή από αρχεία torrent που μπορείτε να
+ κατεβάσετε.</para>
+
+ <para>Για να χρησιμοποιήσετε τα αρχεία torrent, θα χρειαστείτε κατάλληλο
+ λογισμικό-πελάτη, όπως αυτό που παρέχεται από το port ή πακέτο
+ <filename role="package">net-p2p/py-bittorrent</filename>.</para>
+
+ <para>Αφού κατεβάσετε το αρχείο ISO με το BitTorrent, μπορείτε να το
+ γράψετε σε CD ή DVD, όπως περιγράφεται στο <xref linkend="burncd">
+ (burncd).</para>
+ </sect1>
+
+ <sect1 id="anoncvs">
+ <title>Ανώνυμο CVS</title>
+
+ <sect2>
+ <title><anchor id="anoncvs-intro">Εισαγωγή</title>
+
+ <indexterm>
+ <primary>CVS</primary>
+ <secondary>anonymous</secondary>
+ </indexterm>
+
+ <para>Η σύνδεση ανώνυμου CVS (ή <emphasis>anoncvs</emphasis> όπως
+ λέγεται μερικές φορές) υποστηρίζεται από τα εργαλεία CVS που
+ διανέμονται με το ίδιο το &os; για συγχρονισμό τοπικών αρχείων με
+ ένα απομακρυσμένο repository. Ένα από τα χαρακτηριστικά του CVS
+ είναι ότι επιτρέπει στους χρήστες του &os; να συγχρονίζουν, χωρίς
+ ιδιαίτερα δικαιώματα χρήστη, τα τοπικά αντίγραφα πηγαίου κώδικα που
+ έχουν με τους κεντρικούς, επίσημους εξυπηρετητές CVS του &os;
+ project. Για να χρησιμοποιήσει κανείς το CVS αρκεί: (α) να ορίσει
+ την τιμή της μεταβλητής περιβάλλοντος <envar>CVSROOT</envar> έτσι
+ ώστε να δείχνει προς έναν από τους επίσημους εξυπηρετητές, και (β)
+ να δώσει τον κωδικό <quote>anoncvs</quote> στην προτροπή της
+ εντολής <command>cvs login</command>. Τότε μπορεί να χρησιμοποιήσει
+ το εργαλείο &man.cvs.1; για να προσπελάσει το απομακρυσμένο CVS
+ repository του &os; σαν ένα οποιοδήποτε τοπικό repository.</para>
+
+ <note>
+ <para>Η εντολή <command>cvs login</command> αποθηκεύει τους κωδικούς
+ που χρησιμοποιούνται για πιστοποίησης της ταυτότητάς σας στον
+ εξυπηρετητή CVS σε ένα αρχείο με
+ όνομα <filename>.cvspass</filename> στον <envar>HOME</envar>
+ κατάλογο του τοπικού σας λογαριασμού. Αν αυτό το αρχείο δεν
+ υπάρχει ήδη, μπορεί να αποτύχει η εντολή <command>cvs
+ login</command> την πρώτη φορά. Μπορείτε απλά να δημιουργήσετε
+ ένα άδειο αρχείο <filename>.cvspass</filename> και να ξανατρέξετε
+ την εντολή <command>cvs login</command>.</para>
+ </note>
+
+ <para>Μπορεί να πει κανείς ότι το <link linkend="cvsup">CVSup</link>
+ και το <emphasis>anoncvs</emphasis> είναι ουσιαστικά παρόμοιοι
+ τρόποι συγχρονισμού αρχείων και υποστηρίζουν την ίδια
+ λειτουργικότητα, αλλά υπάρχουν κάποιες διαφορές οι οποίες μπορεί να
+ παίξουν σημαντικό ρόλο στην επιλογή μεταξύ αυτών των δύο μεθόδων.
+ Γενικά, το <application>CVSup</application> κάνει πολύ πιο αποδοτική
+ χρήση της σύνδεσης που έχετε και χρησιμοποιεί ένα πολύ πιο έξυπνο
+ πρωτόκολλο επικοινωνίας, αλλά υπάρχει και το αντίστοιχο τίμημα. Για
+ να χρησιμοποιήσετε το <application>CVSup</application> πρέπει να
+ εγκαταστήσετε και να ρυθμίσετε ένα ειδικό πρόγραμμα πελάτη, και τότε
+ μπορείτε να συγχρονίσετε μόνο μεγάλες συλλογές αρχείων &mdash; τις
+ οποίες το <application>CVSup</application> αποκαλεί
+ <quote>συλλογές</quote> (collections).</para>
+
+ <para>Το <application>anoncvs</application>, από την άλλη, μπορεί να
+ χρησιμοποιηθεί για να εξετάσει κανείς τις αλλαγές ενός και μόνο
+ αρχείου ή ενός μόνο προγράμματος και των συνοδευτικών του αρχείων
+ (π.χ. τον πηγαίο κώδικα της εντολής <command>ls</command> ή
+ της <command>grep</command>), με χρήση του ονόματος του κατάλληλου
+ module. Το <application>anoncvs</application> είναι πιο βολικό για
+ εργασίες που απαιτούν βέβαια μόνο ανάγνωση. Οπότε, αν θέλετε να
+ υποστηρίξετε την ανάπτυξη προγραμμάτων τοπικά,
+ το <application>CVSup</application> είναι μάλλον μονόδρομος.</para>
+ </sect2>
+
+ <sect2>
+ <title><anchor id="anoncvs-usage">Χρησιμοποιώντας Ανώνυμο CVS</title>
+
+ <para>Η ρύθμιση του &man.cvs.1; ώστε να χρησιμοποιεί ένα ανώνυμο CVS
+ repository γίνεται απλώς ρυθμίζοντας την μεταβλητή περιβάλλοντος
+ <envar>CVSROOT</envar> ώστε να δείχνει σε έναν από τους
+ <emphasis>anoncvs</emphasis> εξυπηρετητές του &os; project. Την ώρα
+ που γράφονται αυτές οι γραμμές, είναι διαθέσιμοι οι ακόλουθοι
+ εξυπηρετητές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>Γαλλία</emphasis>:
+ :pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
+ (Για pserver χρησιμοποιήστε την εντολή
+ <command>cvs login</command> και δώστε τον κωδικό
+ <quote>anoncvs</quote> όταν σας ζητηθεί. Το ssh δεν απαιτεί
+ τη χρήση κωδικού.)</para>
+ </listitem>
+ <!--
+ <listitem>
+ <para><emphasis>Ιαπωνία</emphasis>:
+ :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
+ (Χρησιμοποιήστε την εντολή <command>cvs login</command> και
+ δώστε τον κωδικό <quote>anoncvs</quote> όταν σας
+ ζητηθεί.)</para>
+ </listitem>
+ -->
+ <listitem>
+ <para><emphasis>Ταΐβάν</emphasis>:
+ :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs
+ (Για pserver χρησιμοποιήστε την εντολή
+ <command>cvs login</command> και δώστε οτιδήποτε για κωδικό
+ όταν σας ζητηθεί, Το ssh δεν απαιτεί τη χρήση κωδικού.)</para>
+
+ <programlisting>SSH2 HostKey: 1024 02:ed:1b:17:d6:97:2b:58:5e:5c:e2:da:3b:89:88:26 /etc/ssh/ssh_host_rsa_key.pub
+SSH2 HostKey: 1024 e8:3b:29:7b:ca:9f:ac:e9:45:cb:c8:17:ae:9b:eb:55 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Ηνωμένες Πολιτείες Αμερικής</emphasis>:
+ anoncvs@anoncvs1.FreeBSD.org:/home/ncvs (Για πρόσβαση μέσω ssh,
+ χρησιμοποιήστε την έκδοση 2 του ssh, χωρίς κωδικό.)</para>
+
+ <programlisting>SSH2 HostKey: 2048 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62 /etc/ssh/ssh_host_dsa_key.pub</programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <para>Καθώς το CVS σας επιτρέπει να κάνετε <quote>check out</quote>
+ ουσιαστικά οποιαδήποτε έκδοση του πηγαίου κώδικα του &os; υπήρξε
+ ποτέ (και σε ορισμένες περιπτώσεις ακόμα και εκδόσεις που δεν έχουν
+ κυκλοφορήσει ακόμα), θα πρέπει να είστε εξοικειωμένος με την επιλογή
+ του &man.cvs.1; με την οποία επιλέγεται το revision (πρόκειται για
+ την <option>-r</option>) και ποιες είναι οι επιτρεπτές τιμές
+ της για το repository του &os; project.</para>
+
+ <para>Υπάρχουν δύο είδη tags (ετικετών), τα revision tags (ετικέτες
+ έκδοσης) και τα branch tags. Ένα revision tag αναφέρεται σε μια
+ συγκεκριμένη έκδοση. Η έννοια του παραμένει σταθερή μέρα με τη
+ μέρα. Από την άλλη, ένα branch tag δείχνει την τελευταία έκδοση
+ μιας συγκεκριμένης πορείας ανάπτυξης, σε κάθε χρονική στιγμή. Καθώς
+ το branch tag δεν αναφέρεται σε κάποια συγκεκριμένη έκδοση, μπορεί
+ αύριο να σημαίνει κάτι διαφορετικό από ότι σημαίνει σήμερα.</para>
+
+ <para>Το <xref linkend="cvs-tags"> περιέχει revision tags τα οποία
+ μπορεί να ενδιαφέρουν τους χρήστες. Υπενθυμίζουμε ότι κανένα από
+ αυτά δεν είναι έγκυρο για την Συλλογή των Ports, καθώς αυτή δεν
+ έχει πολλαπλές εκδόσεις (revisions).<para>
+
+ <para>Όταν καθορίζετε κάποιο branch tag, φυσιολογικά λαμβάνετε τις
+ τελευταίες εκδόσεις των αρχείων που υπάρχουν σε αυτή τη γραμμή
+ ανάπτυξης. Αν θέλετε να λάβετε κάποια παλιότερη έκδοση, μπορείτε
+ χρησιμοποιώντας την ημερομηνία σε συνδυασμό με την επιλογή
+ <option>-D date</option>. Δείτε τη σελίδα manual του &man.cvs.1;
+ για περισσότερες λεπτομέρειες.</para>
+ </sect2>
+
+ <sect2>
+ <title>Παραδείγματα</title>
+
+ <para>Αν και πραγματικά συνίσταται να διαβάσετε προσεκτικά τη σελίδα
+ manual του &man.cvs.1; πριν κάνετε οτιδήποτε, παρακάτω σας δίνουμε
+ κάποια γρήγορα παραδείγματα τα οποία ουσιαστικά θα σας δείξουν πως
+ να χρησιμοποιήσετε το Ανώνυμο CVS:</para>
+
+ <example>
+ <title>Λήψη (Check out) Κάποιου Αρχείου από το -CURRENT
+ (&man.ls.1;):</title>
+
+ <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
+&prompt.user; <userinput>cvs login</userinput>
+<emphasis>Στην προτροπή, δώστε οποιαδήποτε λέξη για</emphasis> <quote>password</quote>.
+&prompt.user; <userinput>cvs co ls</userinput></screen>
+ </example>
+
+ <example>
+ <title>Χρήση SSH για Λήψη (check out) του Δέντρου
+ <filename>src/</filename>:</title>
+ <screen>&prompt.user; <userinput>cvs -d anoncvs@anoncvs1.FreeBSD.org:/home/ncvs co src</userinput>
+The authenticity of host 'anoncvs1.freebsd.org (216.87.78.137)' can't be established.
+DSA key fingerprint is 53:1f:15:a3:72:5c:43:f6:44:0e:6a:e9:bb:f8:01:62.
+Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>
+Warning: Permanently added 'anoncvs1.freebsd.org' (DSA) to the list of known hosts.</screen>
+ </example>
+
+ <example>
+ <title>Λήψη της Έκδοσης του Αρχείου &man.ls.1; από το 8-STABLE
+ Branch:</title>
+
+ <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
+&prompt.user; <userinput>cvs login</userinput>
+<emphasis>Στην προτροπή, δώστε οποιαδήποτε λέξη για</emphasis> <quote>password</quote>.
+&prompt.user; <userinput>cvs co -rRELENG_8 ls</userinput></screen>
+ </example>
+
+ <example>
+ <title>Δημιουργία μιας Λίστας Αλλαγών (ως Unified Diffs) της
+ &man.ls.1;:</title>
+
+ <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
+&prompt.user; <userinput>cvs login</userinput>
+<emphasis>Στην προτροπή, δώστε οποιαδήποτε λέξη για</emphasis> <quote>password</quote>.
+&prompt.user; <userinput>cvs rdiff -u -rRELENG_8_0_0_RELEASE -rRELENG_8_1_0_RELEASE ls</userinput></screen>
+ </example>
+
+ <example>
+ <title>Βρίσκοντας Ποια Άλλα Ονόματα Modules μπορούν να
+ Χρησιμοποιηθούν:</title>
+
+ <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.tw.FreeBSD.org:/home/ncvs</userinput>
+&prompt.user; <userinput>cvs login</userinput>
+<emphasis>Στην προτροπή, δώστε οποιαδήποτε λέξη για</emphasis> <quote>password</quote>.
+&prompt.user; <userinput>cvs co modules</userinput>
+&prompt.user; <userinput>more modules/modules</userinput></screen>
+ </example>
+ </sect2>
+
+ <sect2>
+ <title>Άλλες Πηγές Πληροφοριών</title>
+
+ <para>Οι παρακάτω πηγές πληροφοριών ίσως σας φανούν χρήσιμες για να
+ μάθετε το CVS:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="http://users.csc.calpoly.edu/~gfisher/classes/308/handouts/cvs-basics.html">CVS Tutorial</ulink> από το California Polytechnic State
+ University.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://ximbiot.com/cvs/wiki/">CVS Home</ulink>,
+ η ομάδα ανάπτυξης και υποστήριξης του CVS.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.FreeBSD.org/cgi/cvsweb.cgi">CVSweb</ulink>
+ Διεπαφή Web για το CVS του &os; Project.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+
+ <sect1 id="ctm">
+ <title>Χρησιμοποιώντας το CTM</title>
+
+ <indexterm>
+ <primary>CTM</primary>
+ </indexterm>
+
+ <para>Το <application>CTM</application> είναι μια μέθοδος να διατηρούμε
+ σε συγχρονισμό ένα απομακρυσμένο κατάλογο με ένα κεντρικό. Αναπτύχθηκε
+ για χρήση με το δέντρο πηγαίου κώδικα του &os;, αν και άλλοι άνθρωποι
+ μπορεί να το βρουν χρήσιμο και για διαφορετικούς σκοπούς καθώς περνάει
+ ο καιρός. Τη δεδομένη στιγμή υπάρχει ελάχιστη ως ανύπαρκτη τεκμηρίωση
+ για την διαδικασία δημιουργίας αρχείων διαφορών (deltas), και αν
+ χρειάζεστε περισσότερες πληροφορίες, επικοινωνήστε με τη λίστα
+ ταχυδρομείου &a.ctm-users.name; ειδικά αν θέλετε να χρησιμοποιήσετε το
+ <application>CTM</application> για άλλες εφαρμογές.</para>
+
+ <sect2>
+ <title>Γιατί Πρέπει να Χρησιμοποιήσω το
+ <application>CTM</application>;</title>
+
+ <para>Το <application>CTM</application> θα σας δώσει ένα τοπικό
+ αντίγραφο του δέντρου πηγαίου κώδικα του &os;. Υπάρχει διαθέσιμος
+ ένας αριθμός από <quote>γεύσεις</quote> του δέντρου. Το
+ <application>CTM</application> μπορεί να σας παρέχει τις πληροφορίες
+ που χρειάζεστε, είτε αποφασίσετε να παρακολουθείτε ολόκληρο το
+ δέντρο, είτε κάποιο από τα παρακλάδια του.
+ Αν ανήκετε στα ενεργά μέλη ανάπτυξης του &os; αλλά έχετε κακής
+ ποιότητας (ή καθόλου) TCP/IP συνδεσιμότητα, ή απλά θέλετε οι
+ αλλαγές να σας έρχονται αυτόματα, το <application>CTM</application>
+ έχει φτιαχτεί για σας. Θα χρειαστεί να παίρνετε ως τρία deltas την
+ ημέρα για τα κλαδιά του δέντρου που έχουν την πιο ενεργή ανάπτυξη.
+ Θα πρέπει ωστόσο να θεωρήσετε ως καλύτερη λύση την αυτόματη
+ αποστολή τους μέσω email. Τα μεγέθη των ανανεώσεων κρατούνται πάντα
+ όσο το δυνατόν πιο μικρά. Συνήθως είναι μικρότερα από 5Κ,
+ περιστασιακά (ένα στα δέκα) είναι από 10-50Κ και ορισμένες φορές
+ εμφανίζονται και κάποια που είναι 100Κ ή και μεγαλύτερα.</para>
+
+ <para>Θα πρέπει επίσης να εξοικειωθείτε με τις διάφορες παγίδες που
+ σχετίζονται με την απευθείας εργασία στον υπό ανάπτυξη πηγαίο κώδικα
+ σε σχέση με μια έτοιμη, προκατασκευασμένη έκδοση. Αυτό ισχύει ακόμα
+ περισσότερο αν επιλέξετε να χρησιμοποιήσετε τον πηγαίο κώδικα από το
+ <quote>current</quote>. Σας συνιστούμε να διαβάσετε πως να
+ <link linkend="current">χρησιμοποιήσετε το current στο &os;</link>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Τι Χρειάζομαι για να Χρησιμοποιήσω το
+ <application>CTM</application>;</title>
+
+ <para>Θα χρειαστείτε δύο πράγματα: Την εφαρμογή
+ <application>CTM</application> και τις αρχικές αλλαγές (deltas) για
+ να τις εισάγετε σε αυτήν (ώστε να φτάσετε στο επίπεδο του
+ <quote>current</quote>).</para>
+
+ <para>Το <application>CTM</application> είναι μέρος του &os; από
+ την έκδοση 2.0, και βρίσκεται στον κατάλογο
+ <filename>/usr/src/usr.sbin/ctm</filename> εφόσον έχετε
+ εγκατεστημένο τον πηγαίο κώδικα.</para>
+
+ <para>Τα <quote>deltas</quote> με τα οποία τροφοδοτείτε το
+ <application>CTM</application> μπορείτε να τα αποκτήσετε με δύο
+ τρόπους, μέσω FTP ή μέσω email. Αν έχετε γενική FTP πρόσβαση στο
+ Internet, θα βρείτε υποστήριξη για το <application>CTM</application>
+ στις ακόλουθες τοποθεσίες FTP:</para>
+
+ <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/"></ulink></para>
+
+ <para>ή δείτε το τμήμα <link
+ linkend="mirrors-ctm">mirrors</link>.</para>
+
+ <para>Κάντε FTP στο σχετικό κατάλογο και διαβάστε το αρχείο
+ <filename>README</filename> για να ξεκινήσετε.</para>
+
+ <para>Αν θέλετε να λαμβάνετε τα deltas μέσω email:</para>
+
+ <para>Γραφτείτε συνδρομητής σε μια από τις λίστες διανομής του
+ <application>CTM</application>. Η λίστα &a.ctm-cvs-cur.name;
+ υποστηρίζει ολόκληρο το δέντρο του CVS. Η λίστα
+ &a.ctm-src-cur.name; υποστηρίζει την κεφαλή (head) του κλάδου
+ ανάπτυξης (development branch). Η λίστα &a.ctm-src-7.name;
+ υποστηρίζει την έκδοση 7.X κ.ο.κ. Αν δεν γνωρίζετε πως να εγγραφείτε
+ σε μια λίστα, κάντε κλικ στο όνομα της λίστας που εμφανίζεται
+ παραπάνω ή πηγαίνετε στο &a.mailman.lists.link; και κάντε κλικ στη
+ λίστα που θέλετε να εγγραφείτε. Η σελίδα της λίστας θα πρέπει να
+ περιέχει όλες τις απαραίτητες πληροφορίες σχετικά με τις
+ συνδρομές.</para>
+
+ <para>Όταν αρχίσετε να λαμβάνετε ανανεώσεις
+ <application>CTM</application> μέσω mail, μπορείτε να
+ χρησιμοποιήσετε το πρόγραμμα <command>ctm_rmail</command> για να τις
+ αποσυμπιέσετε και να τις εφαρμόσετε. Μπορείτε στην πραγματικότητα
+ να χρησιμοποιήσετε το πρόγραμμα <command>ctm_rmail</command>
+ απευθείας μέσω μιας εγγραφής στο <filename>/etc/aliases</filename>
+ αν θέλετε η διαδικασία να εκτελείται αυτοματοποιημένα. Δείτε τη
+ σελίδα manual του <command>ctm_rmail</command> για περισσότερες
+ λεπτομέρειες.</para>
+
+ <note>
+ <para>Άσχετα με τη μέθοδο που θα χρησιμοποιήσετε για να λάβετε τα
+ deltas του <application>CTM</application> θα πρέπει να εγγραφείτε
+ στη λίστα &a.ctm-announce.name;. Στο μέλλον, αυτό θα είναι και το
+ μόνο μέρος στο οποίο θα δημοσιεύονται πληροφορίες σχετικά με τις
+ λειτουργίες του συστήματος <application>CTM</application>. Κάντε
+ κλικ στο όνομα της παραπάνω λίστας, και ακολουθείστε τις οδηγίες
+ για να εγγραφείτε.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας το <application>CTM</application> για Πρώτη
+ Φορά</title>
+
+ <para>Πριν αρχίσετε να χρησιμοποιείτε <application>CTM</application>
+ deltas, θα πρέπει να έχετε ένα σημείο εκκίνησης για τα delta που
+ έχουν δημιουργηθεί μετά από αυτό.</para>
+
+ <para>Θα πρέπει πρώτα να καθορίσετε τι έχετε ήδη. Οποιοσδήποτε μπορεί
+ να αρχίσει από ένα <quote>άδειο</quote> κατάλογο. Θα πρέπει να
+ ξεκινήσετε με ένα αρχικό <quote>Κενό</quote> delta για να αρχίσετε
+ με το <application>CTM</application> δέντρο σας. Από κάποιο σημείο
+ θεωρούμε ότι ένα από αυτά τα <quote>αρχικά</quote> deltas θα
+ διανέμονται σε CD για τη δική σας διευκόλυνση, ωστόσο αυτό δεν
+ συμβαίνει τη δεδομένη στιγμή.</para>
+
+ <para>Καθώς τα δέντρα είναι αρκετές δεκάδες megabytes, είναι
+ προτιμότερο να ξεκινήσετε από κάτι που έχετε ήδη. Αν έχετε CD
+ κάποιας διανομής (RELEASE), μπορείτε να αντιγράψετε ή να
+ αποσυμπιέσετε από εκεί τον αρχικό πηγαίο κώδικα. Έτσι θα γλυτώσετε
+ σημαντικό μέρος της μεταφοράς δεδομένων.</para>
+
+ <para>Μπορείτε να αναγνωρίσετε αυτά τα <quote>αρχικά</quote> deltas
+ από το <literal>X</literal> που ακολουθεί τον αριθμό τους
+ (για παράδειγμα <filename>src-cur.3210XEmpty.gz</filename>). Ο
+ χαρακτηρισμός μετά το <literal>X</literal> αντιστοιχεί στην πηγή
+ του αρχικού σας <quote>seed</quote>.
+ Το <filename>Empty</filename> είναι ένας άδειος κατάλογος. Κατά
+ κανόνα δημιουργείται μια μετάβαση από το <literal>Empty</literal>
+ κάθε 100 deltas. Επίσης τα αρχεία αυτά είναι μεγάλα! Συνηθισμένο
+ μέγεθος για <filename>XEmpty</filename> deltas είναι τα 70 ως 80 MB
+ συμπιεσμένων με <command>gzip</command> δεδομένων.</para>
+
+ <para>Μόλις επιλέξετε ένα βασικό delta για να ξεκινήσετε, θα
+ χρειαστείτε επίσης όλα τα deltas με μεγαλύτερους από αυτό
+ αριθμούς.</para>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας το <application>CTM</application> στην
+ Καθημερινή σας Ζωή</title>
+
+ <para>Για να εφαρμόσετε τα deltas, απλώς γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>cd /where/ever/you/want/the/stuff</userinput>
+&prompt.root; <userinput>ctm -v -v /where/you/store/your/deltas/src-xxx.*</userinput></screen>
+
+ <para>Το <application>CTM</application> αντιλαμβάνεται deltas τα οποία
+ έχουν συμπιεστεί μέσω <command>gzip</command>, και έτσι δεν
+ χρειάζεται να χρησιμοποιήσετε την <command>gunzip</command>,
+ γλυτώνοντας με αυτό τον τρόπο χώρο στο δίσκο.</para>
+
+ <para>Το <application>CTM</application> δεν πρόκειται να πειράξει τα
+ αρχεία σας αν δεν είναι απόλυτα σίγουρο για τη διαδικασία ανανέωσης.
+ Για να επαληθεύσετε ένα delta μπορείτε επίσης να χρησιμοποιήσετε την
+ επιλογή <option>-c</option> και το <application>CTM</application>
+ δεν θα πειράξει τίποτα, απλώς θα επαληθεύσει την ακεραιότητα του
+ delta και θα δει αν μπορεί να το εφαρμόσει χωρίς προβλήματα στο
+ τρέχον δέντρο.</para>
+
+ <para>Υπάρχουν και άλλες επιλογές στο <application>CTM</application>,
+ δείτε τις αντίστοιχες σελίδες manual ή κοιτάξτε τον πηγαίο κώδικα
+ για περισσότερες πληροφορίες.</para>
+
+ <para>Αυτό είναι όλο στην πραγματικότητα. Κάθε φορά που λαμβάνετε ένα
+ νέο delta, απλώς περάστε το στο <application>CTM</application> ώστε
+ να έχετε πάντοτε ανανεωμένο τον πηγαίο σας κώδικα.</para>
+
+ <para>Μην σβήνετε τα deltas αν είναι δύσκολο να τα κατεβάσετε ξανά.
+ Ίσως θέλετε να τα φυλάξετε για την περίπτωση που κάτι πάει στραβά.
+ Ακόμα και αν το μόνο μέσο που έχετε είναι δισκέτες, κάντε αντίγραφο
+ χρησιμοποιώντας την <command>fdwrite</command>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Κρατώντας τις Τοπικές σας Αλλαγές</title>
+
+ <para>Ως προγραμματιστής, θα θέλετε να πειραματιστείτε και να αλλάξετε
+ αρχεία στο δέντρο του πηγαίου κώδικα. Το
+ <application>CTM</application> υποστηρίζει περιορισμένου τύπου
+ τοπικές αλλαγές: πριν ελέγξει για την παρουσία ενός αρχείου
+ <filename>foo</filename>, ελέγχει πρώτα για το
+ <filename>foo.ctm</filename>. Αν το αρχείο αυτό υπάρχει, το
+ <application>CTM</application> θα χρησιμοποιήσει αυτό αντί για το
+ <filename>foo</filename>.</para>
+
+ <para>Η συμπεριφορά αυτή μας παρέχει ένα απλό τρόπο να διατηρήσουμε
+ τοπικές αλλαγές: απλώς αντιγράψτε τα αρχεία που σκοπεύετε να
+ αλλάξετε σε αντίστοιχα αρχεία με κατάληξη <filename>.ctm</filename>.
+ Μπορείτε κατόπιν να κάνετε ότι αλλαγές θέλετε στον κώδικα ενώ το
+ <application>CTM</application> θα διατηρεί ανανεωμένο το αρχείο
+ <filename>.ctm</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Άλλες Ενδιαφέρουσες Επιλογές του
+ <application>CTM</application></title>
+
+ <sect3>
+ <title>Βρίσκοντας τι Ακριβώς θα Αλλάξει σε μια Ανανέωση</title>
+
+ <para>Μπορείτε να προσδιορίσετε τις αλλαγές που θα προκαλέσει το
+ <application>CTM</application> στο repository του πηγαίου σας
+ κώδικα, χρησιμοποιώντας την επιλογή <option>-l</option>.</para>
+
+ <para>Αυτό θα είναι χρήσιμο αν θέλετε να κρατήσετε ημερολόγιο των
+ αλλαγών, αν θέλετε να επεξεργαστείτε τα τροποποιημένα αρχεία πριν
+ ή μετά την τροποποίηση τους, ή αν απλώς αισθάνεστε ελαφρώς
+ παρανοϊκός.</para>
+ </sect3>
+
+ <sect3>
+ <title>Δημιουργώντας Αντίγραφα Ασφαλείας πριν την Ανανέωση</title>
+
+ <para>Μερικές φορές θα θέλετε να κρατήσετε αντίγραφο ασφαλείας όλων
+ των αρχείων που πρόκειται να αλλαχθούν από μια ανανέωση μέσω
+ <application>CTM</application>.</para>
+
+ <para>Δίνοντας την επιλογή <option>-B backup-file</option>
+ το <application>CTM</application> θα δημιουργήσει αντίγραφο
+ ασφαλείας όλων των αρχείων που πρόκειται να αλλαχθούν από κάποιο
+ συγκεκριμένο delta στο αρχείο
+ <filename>backup-file</filename>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Περιορίζοντας τα Αρχεία που θα Αλλαχθούν από Κάποια
+ Ανανέωση</title>
+
+ <para>Μερικές φορές ίσως να ενδιαφέρεστε να περιορίσετε την περιοχή
+ δράσης μιας συγκεκριμένης ανανέωσης μέσω
+ <application>CTM</application> ή ίσως σας ενδιαφέρει να πάρετε
+ μόνο λίγα αρχεία από κάποια σειρά από deltas.</para>
+
+ <para>Μπορείτε να ελέγξετε τη λίστα των αρχείων στα οποία θα
+ λειτουργήσει το <application>CTM</application> χρησιμοποιώντας ως
+ φίλτρα, regular expressions με τις επιλογές <option>-e</option>
+ και <option>-x</option>.</para>
+
+ <para>Για παράδειγμα, για να εξάγετε ένα ανανεωμένο αντίγραφο του
+ αρχείου <filename>lib/libc/Makefile</filename> από την συλλογή σας
+ των αποθηκευμένων <application>CTM</application> deltas, εκτελέστε
+ τις εντολές:</para>
+
+ <screen>&prompt.root; <userinput>cd /where/ever/you/want/to/extract/it/</userinput>
+&prompt.root; <userinput>ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*</userinput></screen>
+
+ <para>Για κάθε αρχείο που καθορίζεται σε ένα
+ <application>CTM</application> delta, οι επιλογές
+ <option>-e</option> και <option>-x</option> εφαρμόζονται με τη
+ σειρά που εμφανίζονται στη γραμμή εντολών. Στο αρχείο γίνεται
+ επεξεργασία από το <application>CTM</application>, μόνο αν
+ μαρκαριστεί ως έγκυρο προς ανανέωση μετά την εφαρμογή όλων των
+ επιλογών <option>-e</option> και <option>-x</option>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Μελλοντικά Σχέδια για το <application>CTM</application></title>
+
+ <para>Είναι πάρα πολλά:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Χρήση κάποιου είδους πιστοποίησης στο σύστημα
+ <application>CTM</application> ώστε να αναγνωρίζονται τυχόν
+ ψεύτικες ανανεώσεις.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ξεκαθάρισμα των επιλογών του <application>CTM</application>,
+ καθώς προκαλούν σύγχυση και δεν είναι προφανείς.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Διάφορα</title>
+
+ <para>Υπάρχει επίσης και μια σειρά από deltas για την συλλογή των
+ <literal>ports</literal>, αλλά δεν έχει εκδηλωθεί ακόμα αρκετό
+ ενδιαφέρον για αυτή.</para>
+ </sect2>
+
+ <sect2 id="mirrors-ctm">
+ <title>CTM Mirrors</title>
+
+ <para>Το <link linkend="ctm">CTM</link>/&os; διατίθεται μέσω ανώνυμου
+ FTP από τα ακόλουθα mirrors. Αν επιλέξετε να κατεβάσετε το
+ <application>CTM</application> μέσω ανώνυμου FTP, σας παρακαλούμε
+ προσπαθήστε να επιλέξετε μια τοποθεσία κοντά σε σας.</para>
+
+ <para>Σε περίπτωση προβλημάτων, παρακαλούμε επικοινωνήστε με τη λίστα
+ &a.ctm-users.name;.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Καλιφόρνια, Bay Area, επίσημη πηγή</term>
+
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Νότια Αφρική, αντίγραφα ασφαλείας για παλιά deltas</term>
+
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="ftp://ftp.za.FreeBSD.org/pub/FreeBSD/CTM/"></ulink></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ταϊβάν/R.O.C.</term>
+
+ <listitem>
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="ftp://ctm.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="ftp://ctm2.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="ftp://ctm3.tw.FreeBSD.org/pub/FreeBSD/development/CTM/"></ulink></para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Αν δεν βρήκατε κάποιο mirror στην περιοχή σας, ή αν το mirror δεν
+ είναι πλήρες, προσπαθήστε να χρησιμοποιήσετε μια μηχανή αναζήτησης
+ όπως η <ulink url="http://www.alltheweb.com/">alltheweb</ulink>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="cvsup">
+ <title>Χρησιμοποιώντας το CVSup</title>
+
+ <sect2 id="cvsup-intro">
+ <title>Εισαγωγή</title>
+
+ <para>Το <application>CVSup</application> είναι ένα λογισμικό για την
+ διανομή και ανανέωση δέντρων πηγαίου κώδικα από ένα κεντρικό (master)
+ CVS repository το οποίο βρίσκεται σε κάποιο απομακρυσμένο υπολογιστή.
+ Το repository του &os; βρίσκεται σε ένα κεντρικό μηχάνημα στην
+ Καλιφόρνια. Με το <application>CVSup</application>, οι χρήστες του
+ &os; μπορούν εύκολα να διατηρήσουν ανανεωμένα τα αντίγραφα του
+ πηγαίου τους κώδικα.</para>
+
+ <para>Το <application>CVSup</application> χρησιμοποιεί ένα μοντέλο
+ ανανέωσης γνωστό ως <emphasis>pull</emphasis>. Στο μοντέλο αυτό,
+ κάθε πελάτης ζητά τις ανανεώσεις από τον εξυπηρετητή, όταν και αν
+ τις επιθυμεί. Ο εξυπηρετητής περιμένει, παθητικά, τις απαιτήσεις από
+ τους πελάτες. Με τον τρόπο αυτό, κάθε ανανέωση ξεκινάει κατόπιν
+ απαίτησης του πελάτη. Ο εξυπηρετητής ποτέ δεν στέλνει ανανεώσεις που
+ δεν έχουν ζητηθεί. Οι χρήστες θα πρέπει είτε να εκτελέσουν το
+ <application>CVSup</application> χειροκίνητα για να λάβουν μια
+ ανανέωση, είτε θα πρέπει να ρυθμίσουν κατάλληλα το
+ <command>cron</command> ώστε να το εκτελεί αυτόματα κατά τακτά
+ χρονικά διαστήματα.</para>
+
+ <para>Ο όρος <application>CVSup</application>, γραμμένος με κεφαλαία
+ και μικρά όπως φαίνεται, αναφέρεται σε ολόκληρο το πακέτο λογισμικού.
+ Τα βασικά του τμήματα είναι η εντολή πελάτη <command>cvsup</command>
+ η οποία εκτελείται στο μηχάνημα του κάθε χρήστη, και το πρόγραμμα του
+ εξυπηρετητή <command>cvsupd</command> το οποίο εκτελείται σε κάθε ένα
+ από τα mirror sites του &os;.</para>
+
+ <para>Καθώς διαβάζετε την τεκμηρίωση και τις λίστες ταχυδρομείου του
+ &os;, μπορεί να βρείτε αναφορές στην εφαρμογή
+ <application>sup</application>. Το <application>sup</application>
+ ήταν ο πρόγονος του <application>CVSup</application>, και εξυπηρετούσε
+ παρόμοιο σκοπό. Το <application>CVSup</application> χρησιμοποιείται
+ με αρκετά όμοιο τρόπο με το sup, και στην πραγματικότητα, χρησιμοποιεί
+ αρχεία ρυθμίσεων τα οποία έχουν πίσω συμβατότητα με αυτά του
+ <command>sup</command>. Το <application>sup</application> δεν
+ χρησιμοποιείται πλέον στο &os; Project, επειδή το <application>CVSup
+ </application> είναι ταχύτερο και προσφέρει μεγαλύτερη
+ ευελιξία.</para>
+
+ <note>
+ <para>Το πρόγραμμα <application>csup</application> είναι το
+ <application>CVSup</application> ξαναγραμμένο σε γλώσσα C. Το
+ μεγαλύτερο του πλεονέκτημα είναι ότι είναι ταχύτερο, και δεν
+ εξαρτάται από την γλώσσα προγραμματισμού Modula-3, την οποία και
+ δεν χρειάζεται πλέον να εγκαταστήσετε. Επίσης μπορείτε να το
+ χρησιμοποιήσετε άμεσα, καθώς περιλαμβάνεται στο βασικό σύστημα.
+ Αν αποφασίσετε να χρησιμοποιήσετε
+ το <application>csup</application>, απλώς παραλείψτε τα βήματα για
+ την εγκατάσταση του <application>CVSup</application> και
+ αντικαταστήστε κάθε αναφορά στο <application>CVSup</application> σε
+ αυτό το άρθρο, με <application>csup</application>.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="cvsup-install">
+ <title>Εγκατάσταση</title>
+
+ <para>Ο ευκολότερος τρόπος για να εγκαταστήσετε το
+ <application>CVSup</application> είναι μέσω του έτοιμου πακέτου
+ <filename role="package">net/cvsup</filename> από την
+ <link linkend="ports">συλλογή πακέτων</link> του &os;. Αν προτιμάτε
+ να μεταγλωττίσετε το <application>CVSup</application> από τον πηγαίο
+ κώδικα, μπορείτε να χρησιμοποιήσετε το port
+ <filename role="package">net/cvsup</filename>. Σας προειδοποιούμε
+ ωστόσο ότι το port <filename role="package">net/cvsup</filename>
+ εξαρτάται από την Modula-3, η οποία χρειάζεται αρκετό χρόνο και χώρο
+ στο δίσκο για να κατέβει και να μεταγλωττιστεί.</para>
+
+ <note>
+ <para>Αν πρόκειται να χρησιμοποιήσετε το
+ <application>CVSup</application> σε ένα μηχάνημα το οποίο δεν θα
+ διαθέτει γραφικό περιβάλλον μέσω του
+ <application>&xorg;</application>, όπως π.χ. σε ένα εξυπηρετητή,
+ βεβαιωθείτε ότι εγκαθιστάτε το αντίστοιχο port το οποίο δεν
+ περιλαμβάνει γραφικό περιβάλλον, δηλαδή το
+ <filename role="package">net/cvsup-without-gui</filename>.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="cvsup-config">
+ <title>Ρύθμιση του CVSup</title>
+
+ <para>Η λειτουργία του <application>CVSup</application> ελέγχεται
+ από ένα αρχείο ρυθμίσεων που καλείται <filename>supfile</filename>.
+ Υπάρχουν κάποια υποδείγματα από <filename>supfiles</filename> στον
+ κατάλογο <ulink type="html"
+ url="file://localhost/usr/share/examples/cvsup/"><filename>/usr/share/examples/cvsup/</filename></ulink>.</para>
+
+ <para>Οι πληροφορίες στο <filename>supfile</filename> απαντούν
+ τις ακόλουθες ερωτήσεις για το
+ <application>CVSup</application>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link linkend="cvsup-config-files">Ποια αρχεία θέλετε να
+ λάβετε;</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="cvsup-config-vers">Ποιες εκδόσεις των αρχείων
+ θέλετε;</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="cvsup-config-where">Από που θέλετε να τα
+ λάβετε;</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="cvsup-config-dest">Που θέλετε να τα
+ αποθηκεύσετε στο μηχάνημα σας;</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="cvsup-config-status">Που θέλετε να αποθηκεύσετε
+ τα αρχεία κατάστασης;</link></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Στα επόμενα τμήματα, θα δημιουργήσουμε ένα τυπικό
+ <filename>supfile</filename> απαντώντας κάθε μια από τις ερωτήσεις
+ αυτές με τη σειρά. Πρώτα, θα περιγράψουμε τη συνολική δομή ενός
+ <filename>supfile</filename>.</para>
+
+ <para>Ένα <filename>supfile</filename> είναι ένα αρχείο κειμένου. Τα
+ σχόλια ξεκινάνε με <literal>#</literal> και επεκτείνονται ως το τέλος
+ της γραμμής. Οι κενές γραμμές, καθώς και αυτές που περιέχουν μόνο
+ σχόλια, αγνοούνται.</para>
+
+ <para>Κάθε γραμμή από τις υπόλοιπες περιγράφει ένα σετ αρχείων τα οποία
+ επιθυμεί να λάβει ο χρήστης. Η γραμμή ξεκινάει με το όνομα μιας
+ <quote>συλλογής</quote>, ενός λογικού γκρουπ από αρχεία που ορίζεται
+ από τον εξυπηρετητή. Το όνομα της συλλογής δηλώνει στον εξυπηρετητή
+ ποια αρχεία επιθυμείτε. Μετά το όνομα της συλλογής, μπορεί να
+ υπάρχουν από μηδέν ως κάποια πεδία, τα οποία χωρίζονται μεταξύ τους
+ με κενά διαστήματα. Τα πεδία αυτά απαντούν τις ερωτήσεις που τέθηκαν
+ παραπάνω. Υπάρχουν δύο τύποι πεδίων: πεδία σήμανσης (flags) και
+ πεδία τιμών. Ένα πεδίο σήμανσης αποτελείται από μια μόνο λέξη κλειδί
+ π.χ. <literal>delete</literal> ή <literal>compress</literal>. Ένα
+ πεδίο τιμής ξεκινάει επίσης με μια λέξη κλειδί, αλλά αυτή ακολουθείτε
+ χωρίς την παρεμβολή κενού διαστήματος από <literal>=</literal> και μια
+ δεύτερη λέξη. Για παράδειγμα το <literal>release=cvs</literal>
+ αποτελεί ένα πεδίο τιμής.</para>
+
+ <para>Ένα <filename>supfile</filename> τυπικά καθορίζει προς λήψη
+ περισσότερες από μία συλλογές. Ένα τρόπος για να δομήσετε ένα
+ <filename>supfile</filename> είναι να καθορίσετε όλα τα σχετικά πεδία
+ χωριστά για κάθε συλλογή. Με τον τρόπο αυτό ωστόσο το
+ <filename>supfile</filename> θα καταλάβει αρκετές γραμμές και θα είναι
+ άβολο, επειδή τα περισσότερα πεδία είναι ίδια για όλες τις συλλογές
+ που περιέχονται σε αυτό. Το <application>CVSup</application> παρέχει
+ ένα μηχανισμό χρήσης προεπιλεγμένων τιμών, ώστε να αποφεύγονται αυτά
+ τα προβλήματα. Οι γραμμές που ξεκινάνε με το ειδικό όνομα
+ ψευτό-συλλογής <literal>*default</literal> μπορούν να χρησιμοποιηθούν
+ για να θέσουν πεδία σήμανσης και τιμών τα οποία θα χρησιμοποιηθούν ως
+ προεπιλογές για τις συλλογές του <filename>supfile</filename> που
+ βρίσκονται μετά από αυτά. Μια προεπιλεγμένη τιμή μπορεί να αλλάξει
+ αν καθοριστεί ξανά με νέα τιμή μέσα στην ίδια τη συλλογή. Οι
+ προεπιλογές μπορούν επίσης να αλλάξουν, ή να προστεθούν νέες,
+ βάζοντας πρόσθετα <literal>*default</literal> σε οποιοδήποτε σημείο
+ μέσα στο <filename>supfile</filename>.</para>
+
+ <para>Γνωρίζοντας τα παραπάνω, θα προχωρήσουμε τώρα στη δόμηση ενός
+ <filename>supfile</filename> για λήψη και ανανέωση του κυρίως δέντρου
+ πηγαίου κώδικα για το <link
+ linkend="current">&os;-CURRENT</link>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><anchor id="cvsup-config-files">Ποια αρχεία θέλετε να
+ λάβετε;</para>
+
+ <para>Τα αρχεία που είναι διαθέσιμα μέσω της
+ <application>CVSup</application> είναι οργανωμένα σε γκρουπ που
+ ονομάζονται <quote>συλλογές</quote>. Περιγραφή των διαθέσιμων
+ συλλογών θα βρείτε στο
+ <link linkend="cvsup-collec">ακόλουθο τμήμα</link>. Στο
+ παράδειγμα μας, θέλουμε να λάβουμε το πλήρες δέντρο πηγαίου κώδικα
+ του &os; συστήματος. Υπάρχει μια μεγάλη συλλογή
+ <literal>src-all</literal> η οποία θα μας την δώσει όλη. Σαν
+ πρώτο βήμα για την δόμηση του <filename>supfile</filename>, απλώς
+ γράφουμε τις συλλογές, μία σε κάθε γραμμή (στην περίπτωση μας
+ έχουμε μόνο μια γραμμή):</para>
+
+ <programlisting>src-all</programlisting>
+ </listitem>
+
+ <listitem>
+ <para><anchor id="cvsup-config-vers">Ποιες εκδόσεις των αρχείων
+ θέλετε να λάβετε;</para>
+
+ <para>Με το <application>CVSup</application>, μπορείτε ουσιαστικά
+ να λάβετε οποιαδήποτε έκδοση του πηγαίου κώδικα υπήρξε ποτέ. Αυτό
+ είναι δυνατόν επειδή ο εξυπηρετητής
+ <application>cvsupd</application> λειτουργεί απευθείας από το
+ CVS repository, το οποίο περιέχει όλες τις εκδόσεις. Δηλώνετε
+ ποια από αυτές θέλετε χρησιμοποιώντας τα πεδία τιμών
+ <literal>tag=</literal> και <option>date=</option>.</para>
+
+ <warning>
+ <para>Θα πρέπει να δώσετε ιδιαίτερη προσοχή στον καθορισμό των
+ πεδίων <literal>tag=</literal> ώστε να είναι σωστά. Κάποια
+ tags είναι έγκυρα μόνο για συγκεκριμένες συλλογές αρχείων. Αν
+ καθορίσετε λανθασμένο tag (ή κάνετε ορθογραφικό λάθος) το
+ <application>CVSup</application> θα σβήσει αρχεία τα οποία
+ πιθανώς δεν θέλετε να σβηστούν. Ειδικότερα, για την συλλογή των
+ <literal>ports-*</literal>, χρησιμοποιήστε <emphasis> μόνο το
+ </emphasis> <literal>tag=.</literal>.</para>
+ </warning>
+
+ <para>Το πεδίο <literal>tag=</literal> δείχνει προς ένα συμβολικό
+ tag στο repository. Υπάρχουν δύο είδη tags, τα tags εκδόσεων
+ (revision tags) και τα tags κλάδων (branch tags). Ένα revision
+ tag αναφέρεται σε μια συγκεκριμένη έκδοση. Η σημασία του
+ διατηρείται ίδια από τη μια μέρα στην άλλη. Από την άλλη, ένα
+ branch tag, αναφέρεται στην τελευταία έκδοση μια συγκεκριμένης
+ γραμμής ανάπτυξης, σε κάθε χρονική στιγμή. Επειδή ένα branch tag
+ δεν αναφέρεται σε κάποια συγκεκριμένη έκδοση, μπορεί αύριο να
+ σημαίνει κάτι διαφορετικό από ότι σημαίνει σήμερα.</para>
+
+ <para>Στο <xref linkend="cvs-tags"> θα βρείτε branch tags τα οποία
+ μπορεί να σας ενδιαφέρουν. Όταν καθορίζετε ένα tag στο αρχείο
+ ρυθμίσεων του <application>CVSup</application>, θα πρέπει πριν
+ από αυτό να βάζετε τη λέξη κλειδί <literal>tag=</literal> (δηλ. το
+ <literal>RELENG_8</literal> θα γίνει
+ <literal>tag=RELENG_8</literal>). Να έχετε υπόψιν σας ότι για την
+ συλλογή των Ports, το <literal>tag=.</literal> είναι το μόνο
+ έγκυρο.</para>
+
+ <warning>
+ <para>Να είστε ιδιαίτερα προσεκτικός, ώστε να γράψετε το tag
+ ακριβώς όπως φαίνεται. Το <application>CVSup</application> δεν
+ μπορεί να διαχωρίσει μεταξύ έγκυρων και μη-έγκυρων tags. Αν
+ γράψετε λάθος το tag, το <application>CVSup</application> θα
+ συμπεριφερθεί σαν να έχετε δώσει ένα έγκυρο tag το οποίο δεν
+ αναφέρεται σε κανένα αρχείο. Στην περίπτωση αυτή θα διαγράψει
+ τα υπάρχοντα αρχεία σας πηγαίου κώδικα.</para>
+ </warning>
+
+ <para>Όταν καθορίσετε κάποιο branch tag, φυσιολογικά θα λάβετε τις
+ τελευταίες εκδόσεις των αρχείων που υπάρχουν σε αυτή τη γραμμή
+ ανάπτυξης. Αν θέλετε να λάβετε κάποιες παλιότερες εκδόσεις,
+ μπορείτε να το κάνετε καθορίζοντας μια ημερομηνία μέσω του πεδίου
+ τιμών <option>date=</option>. Η σελίδα manual &man.csup.1; εξηγεί
+ πως μπορείτε να το κάνετε.</para>
+
+ <para>Στο παράδειγμα μας, επιθυμούμε να λάβουμε το &os;-CURRENT.
+ Προσθέτουμε τη γραμμή αυτή στην αρχή του
+ <filename>supfile</filename> αρχείου μας:</para>
+
+ <programlisting>*default tag=.</programlisting>
+
+ <para>Υπάρχει μια σημαντική ειδική περίπτωση όταν δεν καθορίσετε
+ ούτε πεδίο <literal>tag=</literal> ούτε πεδίο
+ <literal>date=</literal>. Στην περίπτωση αυτή θα λάβετε τα
+ κανονικά αρχεία RCS απευθείας από το CVS repository του
+ εξυπηρετητή, αντί για να λάβετε κάποια συγκεκριμένη έκδοση. Οι
+ προγραμματιστές γενικά προτιμούν αυτό τον τρόπο λειτουργίας.
+ Διατηρώντας πλήρες αντίγραφο του CVS repository στα συστήματα τους
+ έχουν την ικανότητα να βλέπουν το ιστορικό αλλαγών κάθε έκδοσης
+ και να εξετάζουν παλιότερες εκδόσεις των αρχείων. Τα παραπάνω
+ πλεονεκτήματα ωστόσο έχουν το κόστος της μεγαλύτερης χρήσης χώρου
+ στο σκληρό δίσκο.</para>
+ </listitem>
+
+ <listitem>
+ <para><anchor id="cvsup-config-where">Από που θέλετε να τα
+ λάβετε;</para>
+
+ <para>Χρησιμοποιούμε το πεδίο <literal>host=</literal> για να πούμε
+ στο <command>cvsup</command> από που να λάβει τις ανανεώσεις του.
+ Οποιοδήποτε από τα
+ <link linkend="cvsup-mirrors">CVSup mirror sites</link> είναι
+ κατάλληλο, αν και θα πρέπει να προσπαθήσετε να επιλέξετε κάποιο
+ το οποίο να βρίσκεται κοντά σας. Στο παράδειγμα μας, θα
+ χρησιμοποιήσουμε μια φανταστική τοποθεσία διανομής του &os;, το
+ <hostid role="fqdn">cvsup99.FreeBSD.org</hostid>:</para>
+
+ <programlisting>*default host=cvsup99.FreeBSD.org</programlisting>
+
+ <para>Θα πρέπει να αλλάξετε το host σε κάποιο που πραγματικά υπάρχει
+ πριν εκτελέσετε το <application>CVSup</application>. Κάθε φορά
+ που εκτελείτε το <command>cvsup</command>, έχετε την δυνατότητα
+ να ανατρέπετε αυτή τη ρύθμιση μέσω της γραμμής εντολών με την
+ επιλογή <option>-h <replaceable>hostname</replaceable></option>.</para>
+ </listitem>
+
+ <listitem>
+ <para><anchor id="cvsup-config-dest">Που θέλετε να τα αποθηκεύσετε
+ στο μηχάνημα σας;</para>
+
+ <para>Το πεδίο <literal>prefix=</literal> δηλώνει στην
+ <command>cvsup</command> που να αποθηκεύσει τα αρχεία που
+ λαμβάνει. Στο παράδειγμα μας, θα βάλουμε τα αρχεία του πηγαίου
+ κώδικα, απευθείας στο κύριο δέντρο πηγαίου κώδικα,
+ <filename>/usr/src</filename>. Ο κατάλογος
+ <filename>src</filename> θεωρείται δεδομένος για τις συλλογές
+ που έχουμε επιλέξει να λάβουμε, και έτσι ο σωστός προσδιορισμός
+ είναι αυτός που φαίνεται παρακάτω:</para>
+
+ <programlisting>*default prefix=/usr</programlisting>
+ </listitem>
+
+ <listitem>
+ <para><anchor id="cvsup-config-status">Που θα αποθηκεύσει το
+ <command>cvsup</command> τα αρχεία κατάστασης του;</para>
+
+ <para>Ο πελάτης <application>CVSup</application> διατηρεί κάποια
+ αρχεία κατάστασης (status files) σε αυτό που αποκαλείται κατάλογος
+ <quote>base</quote>. Τα αρχεία αυτά βοηθούν το
+ <application>CVSup</application> να λειτουργεί πιο αποδοτικά
+ κρατώντας λογαριασμό των ανανεώσεων που έχετε ήδη λάβει. Θα
+ χρησιμοποιήσουμε τον προεπιλεγμένο κατάλογο base,
+ <filename>/var/db</filename>:</para>
+
+ <programlisting>*default base=/var/db</programlisting>
+
+ <para>Αν ο base κατάλογος σας δεν υπάρχει ήδη, τώρα είναι μια καλή
+ στιγμή να τον δημιουργήσετε. O πελάτης <command>cvsup</command>
+ δεν θα εκτελείται αν ο base κατάλογος δεν υπάρχει.</para>
+ </listitem>
+
+ <listitem>
+ <para>Διάφορες ρυθμίσεις για το <filename>supfile</filename>:</para>
+
+ <para>Υπάρχει ακόμα μια κοινή γραμμή ρυθμίσεων, η οποία τυπικά
+ υπάρχει στο <filename>supfile</filename>:</para>
+
+ <programlisting>*default release=cvs delete use-rel-suffix compress</programlisting>
+
+ <para>Το <literal>release=cvs</literal> δείχνει ότι ο εξυπηρετητής
+ θα πρέπει να λάβει τις πληροφορίες του μέσω του κύριου CVS
+ repository του &os;. Αυτό ισχύει σχεδόν πάντα, αλλά υπάρχουν και
+ άλλες πιθανότητες που ξεφεύγουν από το σκοπό αυτής της
+ συζήτησης.</para>
+
+ <para>Η λέξη <literal>delete</literal> δίνει δικαιώματα στο
+ <application>CVSup</application> να διαγράφει αρχεία.
+ Θα πρέπει πάντοτε να έχετε την επιλογή αυτή, ώστε το
+ <application>CVSup</application> να μπορεί να κρατήσει το δέντρο
+ του πηγαίου σας κώδικα πλήρως ανανεωμένο. Το
+ <application>CVSup</application> είναι αρκετά προσεκτικό ώστε να
+ σβήνει μόνο τα αρχεία που βρίσκονται υπό την ευθύνη του. Αν τυχόν
+ βάλετε έξτρα αρχεία στον ίδιο κατάλογο, δεν θα τα αγγίξει.</para>
+
+ <para>Η επιλογή <literal>use-rel-suffix</literal> είναι...
+ αρχαιολογική. Αν πραγματικά θέλετε να μάθετε σχετικά με αυτήν,
+ διαβάστε τη σελίδα manual &man.cvsup.1;. Αλλιώς, απλώς
+ χρησιμοποιήστε την, και μην ανησυχείτε ιδιαίτερα για αυτή.</para>
+
+ <para>Η επιλογή <literal>compress</literal> ενεργοποιεί τη χρήση
+ συμπίεσης τύπου gzip στο κανάλι επικοινωνίας. Αν έχετε σύνδεση
+ δικτύου τύπου T1 ή και πιο γρήγορη, μάλλον δεν θα πρέπει να
+ χρησιμοποιήσετε συμπίεση. Σε διαφορετική περίπτωση, θα βοηθήσει
+ εξαιρετικά.</para>
+ </listitem>
+
+ <listitem>
+ <para>Όλες οι επιλογές μαζί:</para>
+
+ <para>Εδώ είναι το πλήρες <filename>supfile</filename> για το
+ παράδειγμα μας:</para>
+
+ <programlisting>*default tag=.
+*default host=cvsup99.FreeBSD.org
+*default prefix=/usr
+*default base=/var/db
+*default release=cvs delete use-rel-suffix compress
+
+src-all</programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <sect3 id="cvsup-refuse-file">
+ <title>Το Αρχείο <filename>refuse</filename></title>
+
+ <para>Όπως αναφέραμε παραπάνω, το <application>CVSup</application>
+ χρησιμοποιεί <emphasis>μέθοδο pull</emphasis>. Βασικά αυτό σημαίνει
+ ότι συνδέεστε στον εξυπηρετητή <application>CVSup</application>,
+ αυτός λέει <quote>Αυτά είναι τα αρχεία που μπορείτε να κατεβάσετε
+ από μένα..</quote>, και το δικό σας πρόγραμμα απαντάει
+ <quote>Εντάξει, θα πάρω αυτό, αυτό, αυτό, και αυτό.</quote> Στην
+ προεπιλεγμένη ρύθμιση, ο πελάτης <application>CVSup</application> θα
+ πάρει κάθε αρχείο που συνδέεται με την συλλογή και το tag που έχετε
+ καθορίσει στο αρχείο ρυθμίσεων. Ωστόσο μπορεί να μην το επιθυμείτε
+ αυτό πάντα, ειδικά αν συγχρονίζετε τα δέντρα
+ <filename>doc</filename>, <filename>ports</filename> ή
+ <filename>www</filename> &mdash; οι περισσότεροι άνθρωποι δεν
+ μπορούν να διαβάσουν τέσσερις ή πέντε γλώσσες και έτσι δεν
+ χρειάζεται να κατεβάσουν αρχεία που αναφέρονται ειδικά σε αυτές. Αν
+ χρησιμοποιείτε το <application>CVSup</application> για την συλλογή
+ των Ports, μπορείτε να ξεπεράσετε αυτή τη συμπεριφορά καθορίζοντας
+ συγκεκριμένες συλλογές (π.χ. <emphasis>ports-astrology</emphasis>,
+ <emphasis>ports-biology</emphasis> αντί για
+ <emphasis>ports-all</emphasis>). Ωστόσο, επειδή τα δέντρα
+ <filename>doc</filename> και <filename>www</filename> δεν διαθέτουν
+ συλλογές χωρισμένες ανά γλώσσα, μπορείτε να χρησιμοποιήσετε ένα από
+ τα βολικά χαρακτηριστικά του <application>CVSup</application>: το
+ αρχείο <filename>refuse</filename>.</para>
+
+ <para>Το αρχείο <filename>refuse</filename> ουσιαστικά λέει στο
+ <application>CVSup</application> ότι δεν πρέπει να πάρει κάθε αρχείο
+ από μια συλλογή. Με άλλα λόγια, λέει στον πελάτη να
+ <emphasis>αρνηθεί</emphasis> συγκεκριμένα αρχεία που προσφέρει ο
+ εξυπηρετητής. Το αρχείο <filename>refuse</filename> μπορεί να
+ βρεθεί (ή να δημιουργηθεί αν δεν έχετε ήδη) στο
+ <filename><replaceable>base</replaceable>/sup/</filename>.
+ Το <replaceable>base</replaceable> καθορίζεται στο
+ <filename>supfile</filename>. Το δικό μας
+ <replaceable>base</replaceable> είναι στο
+ <filename>/var/db</filename>, το οποίο σημαίνει ότι το προεπιλεγμένο
+ αρχείο <filename>refuse</filename> θα είναι το
+ <filename>/var/db/sup/refuse</filename>.</para>
+
+ <para>Το αρχείο <filename>refuse</filename> έχει ιδιαίτερα απλή μορφή.
+ Απλώς περιέχει τα ονόματα των αρχείων και καταλόγων τα οποία δεν
+ επιθυμείτε να κατεβάσετε. Για παράδειγμα, αν δεν μιλάτε γλώσσες
+ εκτός από Αγγλικά και λίγα Γερμανικά, και δεν αισθάνεστε την ανάγκη
+ να διαβάσετε την Γερμανική μετάφραση της τεκμηρίωσης, μπορείτε να
+ βάλετε τα ακόλουθα στο δικό σας αρχείο
+ <filename>refuse</filename>:</para>
+
+ <screen>doc/bn_*
+doc/da_*
+doc/de_*
+doc/el_*
+doc/es_*
+doc/fr_*
+doc/it_*
+doc/ja_*
+doc/nl_*
+doc/no_*
+doc/pl_*
+doc/pt_*
+doc/ru_*
+doc/sr_*
+doc/tr_*
+doc/zh_*</screen>
+
+ <para>κ.ο.κ. για τις υπόλοιπες γλώσσες (μπορείτε να βρείτε την πλήρη
+ λίστα στο <ulink
+ url="http://www.FreeBSD.org/cgi/cvsweb.cgi/"> &os; CVS
+ repository</ulink>).</para>
+
+ <para>Με αυτή τη χρήσιμη δυνατότητα, οι χρήστες που έχουν αργή σύνδεση
+ ή πληρώνουν το Internet με χρονοχρέωση ανά λεπτό, θα μπορέσουν να
+ εξοικονομήσουν πολύτιμο χρόνο καθώς δεν θα χρειάζεται πλέον να
+ κατεβάσουν αρχεία που δεν πρόκειται να χρησιμοποιήσουν ποτέ. Για
+ περισσότερες πληροφορίες σχετικά με τα αρχεία
+ <filename>refuse</filename> και άλλα χρήσιμα χαρακτηριστικά του
+ <application>CVSup</application>, παρακαλούμε διαβάστε την
+ αντίστοιχη σελίδα του manual.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Εκτελώντας το <application>CVSup</application></title>
+
+ <para>Είστε τώρα έτοιμοι να δοκιμάσετε μια ανανέωση. Η γραμμή εντολής
+ για το σκοπό αυτό είναι ιδιαίτερα απλή:</para>
+
+ <screen>&prompt.root; <userinput>cvsup <replaceable>supfile</replaceable></userinput></screen>
+
+ <para>όπου το <filename><replaceable>supfile</replaceable></filename>
+ είναι φυσικά το όνομα του αρχείου <filename>supfile</filename> που
+ μόλις δημιουργήσατε. Υποθέτοντας ότι χρησιμοποιείτε τα X11, η εντολή
+ <command>cvsup</command> θα σας εμφανίσει ένα γραφικό παράθυρο με
+ κάποια πλήκτρα συνηθισμένων λειτουργιών. Πιέστε το πλήκτρο
+ <guibutton>go</guibutton>, και παρακολουθήστε την εκτέλεση.<para>
+
+ <para>Καθώς στην περίπτωση μας ανανεώνεται το πραγματικό δέντρο
+ <filename>/usr/src</filename>, θα χρειαστεί να εκτελέσετε το
+ πρόγραμμα ως <username>root</username> ώστε η
+ <command>cvsup</command> να έχει τα δικαιώματα που χρειάζεται για να
+ ανανεώσει τα αρχεία σας. Καθώς μόλις έχετε δημιουργήσει το αρχείο
+ ρυθμίσεων, και δεν έχετε ποτέ πριν χρησιμοποιήσει το πρόγραμμα, ίσως
+ αισθάνεστε λίγο άβολα. Υπάρχει εύκολος τρόπος να κάνετε δοκιμαστική
+ εκτέλεση χωρίς να πειράξετε τα πολύτιμα αρχεία σας. Απλώς
+ δημιουργήστε ένα άδειο κατάλογο σε ένα βολικό μέρος, και δώστε το σαν
+ έξτρα παράμετρο στην γραμμή εντολών:</para>
+
+ <screen>&prompt.root; <userinput>mkdir /var/tmp/dest</userinput>
+&prompt.root; <userinput>cvsup supfile /var/tmp/dest</userinput></screen>
+
+ <para>Ο κατάλογος που καθορίσατε θα χρησιμοποιηθεί ως προορισμός για
+ όλες τις ανανεώσεις αρχείων. Το <application>CVSup</application> θα
+ εξετάσει τα κανονικά αρχεία σας στο <filename>/usr/src</filename>,
+ αλλά δεν θα τροποποιήσει ούτε θα διαγράψει κανένα από αυτά. Κάθε
+ ανανέωση αρχείου θα γίνει στον κατάλογο
+ <filename>/var/tmp/dest/usr/src</filename>.
+ Το <application>CVSup</application> όταν εκτελείται με αυτό τον τρόπο
+ αφήνει επίσης ανέπαφα τα αρχεία κατάστασης του στον κατάλογο base. Οι
+ νέες εκδόσεις των αρχείων αυτών θα γραφούν στον καθορισμένο κατάλογο.
+ Αν έχετε απλώς πρόσβαση ανάγνωσης στο <filename>/usr/src</filename>,
+ δεν χρειάζεστε να είστε καν <username>root</username> για να κάνετε
+ αυτή τη δοκιμαστική εκτέλεση.</para>
+
+ <para>Αν δεν εκτελείτε τα X11 ή απλώς δεν σας αρέσουν τα γραφικά
+ περιβάλλοντα, μπορείτε να δώσετε κάποιες επιλογές στην γραμμή εντολών
+ όταν εκτελείτε την <command>cvsup</command>:</para>
+
+ <screen>&prompt.root; <userinput>cvsup -g -L 2 <replaceable>supfile</replaceable></userinput></screen>
+
+ <para>Η επιλογή <option>-g</option> λέει στο
+ <application>CVSup</application> να μη χρησιμοποιήσει το γραφικό του
+ περιβάλλον. Αυτό γίνεται αυτόματα αν δεν εκτελούνται τα X11, αλλά
+ διαφορετικά θα πρέπει να το καθορίσετε.</para>
+
+ <para>Η επιλογή <option>-L 2</option> λέει στο
+ <application>CVSup</application> να εμφανίσει όλες τις λεπτομέρειες
+ για όλες τις ανανεώσεις αρχείων που εκτελεί. Υπάρχουν τρία επίπεδα
+ περιγραφής, από το <option>-L 0</option> ως το <option>-L 2</option>.
+ Η προεπιλογή είναι το 0, που σημαίνει απόλυτη σιωπή εκτός από μηνύματα
+ λάθους.</para>
+
+ <para>Υπάρχουν διαθέσιμες αρκετές ακόμα επιλογές. Για μια περιληπτική
+ λίστα, γράψτε <command>cvsup -H</command>. Για περισσότερο
+ λεπτομερείς περιγραφές, δείτε τη σελίδα του manual.</para>
+
+ <para>Όταν μείνετε ικανοποιημένος από τον τρόπο που γίνονται οι
+ ανανεώσεις, μπορείτε να κανονίσετε την σε τακτά διαστήματα εκτέλεση
+ του <application>CVSup</application> με την χρήση του
+ &man.cron.8;. Προφανώς δεν θα πρέπει να αφήσετε το
+ <application>CVSup</application> να χρησιμοποιεί το γραφικό του
+ περιβάλλον όταν το εκτελείτε μέσω του &man.cron.8;.</para>
+ </sect2>
+
+ <sect2 id="cvsup-collec">
+ <title>Συλλογές Αρχείων του<application>CVSup</application></title>
+
+ <para>Οι συλλογές αρχείων που διατίθενται μέσω του
+ <application>CVSup</application> είναι οργανωμένες ιεραρχικά.
+ Υπάρχουν λίγες μεγάλες συλλογές, και αυτές χωρίζονται σε μικρότερες
+ υπο-συλλογές. Η λήψη μιας μεγάλης συλλογής, ισοδυναμεί με την λήψη
+ κάθε μιας από τις υπο-συλλογές τις. Οι ιεραρχικές σχέσεις μεταξύ των
+ συλλογών, αντικατοπτρίζονται παρακάτω με την χρήση των εσοχών.</para>
+
+ <para>Οι πιο συχνά χρησιμοποιούμενες συλλογές είναι η
+ <literal>src-all</literal>, και η
+ <literal>ports-all</literal>. Οι άλλες συλλογές χρησιμοποιούνται μόνο
+ από μικρές ομάδες ανθρώπων για ειδικούς σκοπούς, και κάποια mirror
+ sites μπορεί να μην τις έχουν καθόλου.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>cvs-all release=cvs</literal></term>
+
+ <listitem>
+ <para>Το κύριο CVS repository του &os;, που περιλαμβάνει και τον
+ κώδικα κρυπτογραφίας.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>distrib release=cvs</literal></term>
+
+ <listitem>
+ <para>Αρχεία που αναφέρονται στην διανομή και το mirroring
+ του &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>doc-all release=cvs</literal></term>
+
+ <listitem>
+ <para>Πηγαίος κώδικας για το &os; Handbook και την υπόλοιπη
+ τεκμηρίωση. Δεν περιλαμβάνει αρχεία για το web site του
+ &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-all release=cvs</literal></term>
+
+ <listitem>
+ <para>Η συλλογή Ports του &os;.</para>
+
+ <important id="cvsup-collec-pbase-warn">
+ <para>Αν δεν θέλετε να ανανεώσετε όλο το
+ <literal>ports-all</literal> (το πλήρες δέντρο των
+ ports), αλλά να χρησιμοποιήσετε μια από τις υποσυλλογές
+ που φαίνονται παρακάτω, βεβαιωθείτε ότι
+ <emphasis>πάντα</emphasis> ανανεώνετε την υποσυλλογή
+ <literal>ports-base</literal>! Όταν κάτι αλλάζει στο
+ σύστημα μεταγλώττισης των ports που αντιπροσωπεύεται από
+ το <literal>ports-base</literal>, είναι πρακτικά βέβαιο
+ ότι οι αλλαγές αυτές πολύ σύντομα θα χρησιμοποιηθούν από
+ <quote>πραγματικά</quote> ports. Έτσι, αν ανανεώνετε
+ μόνο τα <quote>πραγματικά</quote> ports και αυτά
+ χρησιμοποιούν κάποιες από τις νέες δυνατότητες, υπάρχει
+ μεγάλη πιθανότητα η μεταγλώττιση τους να αποτύχει με
+ κάποιο μυστηριώδες μήνυμα λάθους. Το
+ <emphasis>πρώτο</emphasis> πράγμα που πρέπει να κάνετε
+ σε αυτή την περίπτωση είναι να βεβαιωθείτε ότι είναι
+ ενημερωμένη η συλλογή σας
+ <literal>ports-base</literal>.</para>
+ </important>
+
+ <important id="cvsup-collec-index-warn">
+ <para>Αν σκοπεύετε να δημιουργήσετε το δικό σας τοπικό
+ αντίγραφο του <filename>ports/INDEX</filename>, θα
+ <emphasis>πρέπει</emphasis> να δεχτείτε τη συλλογή
+ <literal>ports-all</literal> (ολόκληρο το δέντρο των
+ ports). H δημιουργία του
+ <filename>ports/INDEX</filename> από μη-πλήρες δέντρο
+ δεν υποστηρίζεται. Δείτε το
+ <ulink url="&url.books.faq;/applications.html#MAKE-INDEX"> FAQ</ulink>.</para>
+ </important>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>ports-accessibility
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό για την βοήθεια χρηστών με
+ αναπηρίες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-arabic
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Αραβικής Γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-archivers
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία αποθήκευσης και συμπίεσης.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-astro
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Ports σχετικά με αστρονομία.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-audio
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη ήχου.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-base
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Βασικά αρχεία των ports για υποστήριξη του
+ συστήματος μεταγλώττισης. Διάφορα αρχεία που
+ βρίσκονται στους υποκαταλόγους
+ <filename>Mk/</filename> και
+ <filename>Tools/</filename> του
+ <filename>/usr/ports</filename>.</para>
+
+ <note>
+ <para>Παρακαλούμε δείτε την <link
+ linkend="cvsup-collec-pbase-warn">σημαντική
+ προειδοποίηση παραπάνω</link>: θα πρέπει
+ <emphasis>πάντοτε</emphasis> να ενημερώνετε αυτή
+ την υποσυλλογή, όταν ενημερώνετε οποιοδήποτε τμήμα
+ της συλλογής Ports του &os;.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-benchmarks
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Προγράμματα μέτρησης απόδοσης
+ (Benchmarks).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-biology
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Βιολογία.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-cad
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία σχεδίασης με τη βοήθεια
+ υπολογιστή.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-chinese
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Κινεζικής Γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-comms
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό επικοινωνιών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-converters
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Μετατροπείς χαρακτήρων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-databases
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Βάσεις Δεδομένων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-deskutils
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Αντικείμενα που βρίσκονταν συνήθως σε ένα
+ γραφείο πριν την εφεύρεση των υπολογιστών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-devel
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Βοηθητικά προγράμματα για την ανάπτυξη
+ λογισμικού.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-dns
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό σχετικό με DNS.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-editors
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Συντάκτες κειμένου.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-emulators
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εξομοιωτές άλλων λειτουργικών συστημάτων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-finance
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Χρηματοοικονομικά προγράμματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-ftp
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Προγράμματα FTP (πελάτες και
+ εξυπηρετητές).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-games
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Παιχνίδια.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-german
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Γερμανικής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-graphics
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία γραφικών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-hebrew
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη εβραϊκής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-hungarian
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Ουγγαρέζικης γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-irc
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Προγράμματα για το IRC.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-japanese
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Ιαπωνικής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-java
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία για την &java;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-korean
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Κορεατικής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-lang
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Γλώσσες προγραμματισμού.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-mail
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Προγράμματα ηλεκτρονικού ταχυδρομείου.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-math
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό μαθηματικών υπολογισμών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-misc
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Διάφορα βοηθητικά προγράμματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-multimedia
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό πολυμέσων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-net
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό δικτύων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-net-im
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό άμεσων μηνυμάτων (instant
+ messaging).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-net-mgmt
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό διαχείρισης δικτύων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-net-p2p
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Δικτύωση peer-to-peer.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-news
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό για το USENET.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-palm
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό για την υποστήριξη συσκευών τύπου
+ <trademark class="trade">Palm</trademark>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-polish
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Πολωνικής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-ports-mgmt
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία για τη διαχείριση πακέτων και
+ ports.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-portuguese
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Πορτογαλικής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-print
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό εκτυπώσεων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-russian
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Ρωσικής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-science
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Επιστημονικά προγράμματα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-security
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία ασφαλείας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-shells
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Shells για την γραμμή εντολών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-sysutils
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Βοηθητικά προγράμματα συστήματος.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-textproc
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία επεξεργασίας κειμένου (δεν περιλαμβάνει
+ επιτραπέζια τυπογραφία).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-ukrainian
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Ουκρανικής γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-vietnamese
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Υποστήριξη Βιετναμέζικης γλώσσας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-www
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Λογισμικό που σχετίζεται με τον παγκόσμιο ιστό
+ (World Wide Web).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Ports για υποστήριξη του συστήματος X
+ Windows.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-clocks
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Ρολόγια για το X11.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-drivers
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Προγράμματα οδήγησης για τα X11.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-fm
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Διαχειριστές αρχείων για τα X11.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-fonts
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Γραμματοσειρές και εργαλεία γραμματοσειρών για
+ X11.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-toolkits
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλειοθήκες X11.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-servers
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εξυπηρετητές X11.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-themes
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Θέματα για X11.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ports-x11-wm
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Διαχειριστές παραθύρων (window managers) για
+ X11.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>projects-all release=cvs</literal></term>
+
+ <listitem>
+ <para>Πηγαίος κώδικας για το projects repository του
+ &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-all release=cvs</literal></term>
+
+ <listitem>
+ <para>Ο βασικός πηγαίος κώδικα του &os;, συμπεριλαμβανομένου
+ του κώδικα κρυπτογραφίας.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>src-base
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Διάφορα αρχεία στην κορυφή του
+ <filename>/usr/src</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-bin
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία που πιθανόν να απαιτούνται σε κατάσταση
+ λειτουργίας ενός χρήστη (single-user)
+ (<filename>/usr/src/bin</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-cddl
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία και βιβλιοθήκες που καλύπτονται από την
+ άδεια χρήσης CDDL
+ (<filename>/usr/src/cddl</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-contrib
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία και βιβλιοθήκες που δεν ανήκουν στο
+ &os; Project, και τα οποία χρησιμοποιούνται
+ ουσιαστικά αναλλοίωτα
+ (<filename>/usr/src/contrib</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-crypto release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία και βιβλιοθήκες κρυπτογράφησης που δεν
+ ανήκουν στο &os; project και τα οποία
+ χρησιμοποιούνται ουσιαστικά αναλλοίωτα
+ (<filename>/usr/src/crypto</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-eBones release=cvs</literal></term>
+
+ <listitem>
+ <para>Kerberos και DES
+ (<filename>/usr/src/eBones</filename>). Δεν
+ χρησιμοποιούνται στις τρέχουσες εκδόσεις του
+ &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-etc
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Αρχεία ρυθμίσεων του συστήματος
+ (<filename>/usr/src/etc</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-games
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Παιχνίδια
+ (<filename>/usr/src/games</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-gnu
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία που καλύπτονται από την άδεια χρήσης
+ GNU Public License
+ (<filename>/usr/src/gnu</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-include
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Αρχεία επικεφαλίδων
+ (<filename>/usr/src/include</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-kerberos5
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Πακέτο ασφαλείας Kerberos5
+ (<filename>/usr/src/kerberos5</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-kerberosIV
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Πακέτο ασφαλείας KerberosIV
+ (<filename>/usr/src/kerberosIV</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-lib
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Βιβλιοθήκες
+ (<filename>/usr/src/lib</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-libexec
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Προγράμματα συστήματος τα οποία φυσιολογικά
+ εκτελούνται από άλλα προγράμματα
+ (<filename>/usr/src/libexec</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-release
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Αρχεία που απαιτούνται για την παραγωγή μιας
+ έκδοσης του &os;
+ (<filename>/usr/src/release</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-rescue
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Προγράμματα με στατική μεταγλώττιση για χρήση
+ σε έκτακτες περιπτώσεις επαναφοράς του συστήματος.
+ Δείτε το &man.rescue.8;
+ (<filename>/usr/src/rescue</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-sbin release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία συστήματος για λειτουργία σε κατάσταση
+ ενός χρήστη (single user mode)
+ (<filename>/usr/src/sbin</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-secure
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Βιβλιοθήκες και εντολές κρυπτογράφησης
+ (<filename>/usr/src/secure</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-share
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Αρχεία τα οποία μπορεί να είναι κοινά ανάμεσα σε
+ πολλαπλά συστήματα
+ (<filename>/usr/src/share</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-sys
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Ο πυρήνας
+ (<filename>/usr/src/sys</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-sys-crypto
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Κώδικας κρυπτογραφίας του πυρήνα
+ (<filename>/usr/src/sys/crypto</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-tools
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Διάφορα εργαλεία για τη συντήρηση του &os;
+ (<filename>/usr/src/tools</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-usrbin
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία χρήστη
+ (<filename>/usr/src/usr.bin</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>src-usrsbin
+ release=cvs</literal></term>
+
+ <listitem>
+ <para>Εργαλεία συστήματος
+ (<filename>/usr/src/usr.sbin</filename>).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>www release=cvs</literal></term>
+
+ <listitem>
+ <para>Ο πηγαίος κώδικας για την τοποθεσία WWW του
+ &os;.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>distrib release=self</literal></term>
+
+ <listitem>
+ <para>Τα αρχεία ρυθμίσεων του ίδιου του εξυπηρετητή
+ <application>CVSup</application>. Χρησιμοποιείται από
+ <application>CVSup</application> mirror sites.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>gnats release=current</literal></term>
+
+ <listitem>
+ <para>H βάση δεδομένων του συστήματος παρακολούθησης προβλημάτων
+ GNATS.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>mail-archive release=current</literal></term>
+
+ <listitem>
+ <para>Τα αρχεία της λίστας ταχυδρομείου του &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>www release=current</literal></term>
+
+ <listitem>
+ <para>Προ-επεξεργασμένα αρχεία της δικτυακής τοποθεσίας (WWW) του
+ &os; (όχι ο πηγαίος κώδικας). Χρησιμοποιείται από WWW mirror
+ sites.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2>
+ <title>Για Περισσότερες Πληροφορίες</title>
+
+ <para>Για το FAQ του <application>CVSup</application> και άλλες
+ πληροφορίες σχετικά με αυτό, δείτε τη
+ <ulink url="http://www.cvsup.org">Σελίδα του CVSup</ulink>.</para>
+
+ <para>Συζητήσεις σχετικά με τη χρήση του
+ <application>CVSup</application> στο &os; λαμβάνουν χώρα στην
+ &a.hackers;. Στη λίστα αυτή, καθώς και στην &a.announce;
+ ανακοινώνονται και οι νέες εκδόσεις του προγράμματος.</para>
+
+ <para>Για ερωτήσεις ή αναφορές σφαλμάτων σχετικά με το
+ <application>CVSup</application> ρίξτε μια ματιά στο
+ <ulink url="http://www.cvsup.org/faq.html#bugreports">CVSup FAQ</ulink>.</para>
+ </sect2>
+
+ <sect2 id="cvsup-mirrors">
+ <title>Τοποθεσίες CVSup</title>
+
+ <para>Μπορείτε να βρείτε εξυπηρετητές <link linkend="cvsup">CVSup</link>
+ για το &os; στις ακόλουθες τοποθεσίες:</para>
+
+ &chap.mirrors.cvsup.inc;
+ </sect2>
+ </sect1>
+
+ <sect1 id="cvs-tags">
+ <title>Ετικέτες (Tags) για το CVS</title>
+
+ <para>Όταν κατεβάζετε ή ανανεώνετε τον πηγαίο κώδικα μέσω της
+ <application>cvs</application> η της
+ <application>CVSup</application>, θα πρέπει να καθορίσετε μια ετικέτα
+ έκδοσης (revision tag). Ένα revision tag αναφέρεται είτε σε μια
+ συγκεκριμένη πορεία ανάπτυξης του &os;, είτε σε ένα συγκεκριμένο χρονικό
+ σημείο. Ο πρώτος τύπος ονομάζεται
+ <quote>ετικέτα κλάδου (branch tag)</quote>, και ο δεύτερος ονομάζεται
+ <quote>ετικέτα έκδοσης (release tag)</quote>.</para>
+
+ <sect2>
+ <title>Ετικέτες Κλάδων (Branch Tags)</title>
+
+ <para>Όλες αυτές, με την εξαίρεση του <literal>HEAD</literal> (το οποίο
+ είναι πάντα έγκυρη ετικέτα), ισχύουν μόνο για το δέντρο
+ <filename>src/</filename>. Τα δέντρα <filename>ports/</filename>,
+ <filename>doc/</filename>, και <filename>www/</filename> δεν έχουν
+ κλάδους.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>HEAD</term>
+
+ <listitem>
+ <para>Πρόκειται για το συμβολικό όνομα της κύριας γραμμής
+ ανάπτυξης, ή &os;-CURRENT. Είναι επίσης το προεπιλεγμένο tag αν
+ δεν καθοριστεί κάποιο συγκεκριμένο revision.</para>
+
+ <para>Στο <application>CVSup</application>, το tag αυτό
+ αντιπροσωπεύεται από μια <literal>.</literal> (δεν πρόκειται για
+ σημείο στίξης της πρότασης, αλλά για τον πραγματικό χαρακτήρα
+ <literal>.</literal>).</para>
+
+ <note>
+ <para>Στο CVS, αυτή είναι και η προεπιλογή αν δεν καθοριστεί
+ revision tag. Συνήθως <emphasis>δεν</emphasis> είναι καλή
+ ιδέα να κάνετε checkout και ανανέωση στον πηγαίο κώδικα του
+ CURRENT σε ένα μηχάνημα STABLE, εκτός αν αυτή είναι πραγματικά
+ η πρόθεση σας.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_9</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-9.X, γνωστή επίσης και ως
+ &os;&nbsp;9-STABLE</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_9_0</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-9.0, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-8.X, γνωστή επίσης και ως
+ &os; 8-STABLE</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8_2</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-8.2, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8_1</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-8.1, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8_0</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-8.0, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-7.X, γνωστή επίσης και ως
+ &os; 7-STABLE</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_4</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-7.4, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_3</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-7.3, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_2</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-7.2, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_1</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-7.1, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_0</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-7.0, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-6.X, γνωστή επίσης και ως
+ &os; 6-STABLE</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_4</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-6.4, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_3</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-6.3, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_2</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-6.2, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_1</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-6.1, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_0</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-6.0, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-5.X, γνωστή επίσης ως
+ &os; 5-STABLE.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_5</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-5.5, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_4</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-5.4, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_3</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης του &os;-5.3, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_2</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης &os;-5.2 και &os;-5.2.1, χρησιμοποιείται
+ μόνο για ενημερώσεις ασφαλείας και άλλες κρίσιμες
+ διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_1</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-5.1, χρησιμοποιείται μόνο για
+ για ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_0</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-5.0, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-4.X, γνωστή επίσης και ως
+ &os; 4-STABLE.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_11</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.11, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_10</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.10, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_9</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.9, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_8</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.8, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_7</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.7, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_6</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για τα &os;-4.6 και &os;-4.6.2,
+ χρησιμοποιείται μόνο για ενημερώσεις ασφαλείας και άλλες
+ κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_5</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.5, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_4</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.4, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_3</term>
+
+ <listitem>
+ <para>Η γραμμή έκδοσης για το &os;-4.3, χρησιμοποιείται μόνο για
+ ενημερώσεις ασφαλείας και άλλες κρίσιμες διορθώσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_3</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-3.X, γνωστή επίσης και ως
+ 3.X-STABLE.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2</term>
+
+ <listitem>
+ <para>Η γραμμή ανάπτυξης για το &os;-2.2.X, γνωστή επίσης και ως
+ 2.2-STABLE. Η γραμμή αυτή θεωρείται ουσιαστικά
+ παρωχημένη.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2>
+ <title>Ετικέτες Εκδόσεων (Release Tags)</title>
+
+ <para>Οι ετικέτες αυτές αναφέρονται σε μια συγκεκριμένη χρονική στιγμή
+ κατά την οποία έγινε μια κανονική έκδοση (release) του &os;. Η
+ διαδικασία της έκδοσης τεκμηριώνεται με περισσότερες λεπτομέρειες στα
+ έγγραφα <ulink
+ url="&url.base;/releng/">Πληροφορίες Διαδικασίας
+ Έκδοσης</ulink> και <ulink
+ url="&url.articles.releng;/release-proc.html">Διαδικασία
+ Έκδοσης</ulink>.
+ Το δέντρο <filename class="directory">src</filename> χρησιμοποιεί
+ ονόματα ετικετών που ξεκινούν με τη λέξη <literal>RELENG_</literal>.
+ Τα δέντρα <filename class="directory">ports</filename> και
+ <filename class="directory">doc</filename> χρησιμοποιούν ετικέτες που
+ ξεκινούν με τη λέξη <literal>RELEASE</literal>.
+ Τέλος, στο δέντρο <filename class="directory">www</filename> δεν
+ δίνεται κάποια ειδική ετικέτα που να έχει σχέση με τις
+ εκδόσεις.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>RELENG_9_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 9.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8_2_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 8.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8_1_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 8.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_8_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 8.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_4_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 7.4</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_3_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 7.3</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_2_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 7.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_1_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 7.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_7_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 7.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_4_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 6.4</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_3_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 6.3</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_2_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 6.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_1_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 6.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_6_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 6.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_5_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 5.5</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_4_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 5.4</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_11_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.11</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_3_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 5.3</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_10_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.10</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_2_1_RELEASE</term>
+
+ <listitem>
+ <para>&os; 5.2.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_2_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 5.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_9_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.9</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_1_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 5.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_8_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.8</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_5_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 5.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_7_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.7</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_6_2_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.6.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_6_1_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.6.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_6_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.6</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_5_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.5</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_4_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.4</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_3_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.3</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_2_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_1_1_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.1.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_1_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_4_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os; 4.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_3_5_0_RELEASE</term>
+
+ <listitem>
+ <para>&os;-3.5</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_3_4_0_RELEASE</term>
+
+ <listitem>
+ <para>&os;-3.4</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_3_3_0_RELEASE</term>
+
+ <listitem>
+ <para>&os;-3.3</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_3_2_0_RELEASE</term>
+
+ <listitem>
+ <para>&os;-3.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_3_1_0_RELEASE</term>
+
+ <listitem>
+ <para>&os;-3.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_3_0_0_RELEASE</term>
+
+ <listitem>
+ <para>&os;-3.0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2_8_RELEASE</term>
+
+ <listitem>
+ <para>&os;-2.2.8</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2_7_RELEASE</term>
+
+ <listitem>
+ <para>&os;-2.2.7</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2_6_RELEASE</term>
+
+ <listitem>
+ <para>&os;-2.2.6</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2_5_RELEASE</term>
+
+ <listitem>
+ <para>&os;-2.2.5</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2_2_RELEASE</term>
+
+ <listitem>
+ <para>&os;-2.2.2</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2_1_RELEASE</term>
+
+ <listitem>
+ <para>&os;-2.2.1</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RELENG_2_2_0_RELEASE</term>
+
+ <listitem>
+ <para>&os;-2.2.0</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mirrors-afs">
+ <title>Τοποθεσίες AFS</title>
+
+ <para>Εξυπηρετητές AFS για το &os; θα βρείτε στις ακόλουθες
+ τοποθεσίες:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Σουηδία</term>
+
+ <listitem>
+ <para>Η διαδρομή για τα αρχεία είναι:
+ <filename>/afs/stacken.kth.se/ftp/pub/FreeBSD/</filename></para>
+
+ <programlisting>stacken.kth.se # Stacken Computer Club, KTH, Sweden
+130.237.234.43 #hot.stacken.kth.se
+130.237.237.230 #fishburger.stacken.kth.se
+130.237.234.3 #milko.stacken.kth.se</programlisting>
+
+ <para>Υπεύθυνος Συντήρησης: <email>ftp@stacken.kth.se</email></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+
+ <sect1 id="mirrors-rsync">
+ <title>Τοποθεσίες rsync</title>
+
+ <para>Το &os; είναι διαθέσιμο μέσω του πρωτοκόλλου rsync στις ακόλουθες
+ τοποθεσίες. Το βοηθητικό πρόγραμμα <application>rsync</application>
+ λειτουργεί με περίπου τον ίδιο τρόπο με την εντολή &man.rcp.1;, αλλά
+ έχει περισσότερες επιλογές και χρησιμοποιεί το πρωτόκολλο απομακρυσμένης
+ ανανέωσης το οποίο μεταφέρει μόνο τις διαφορές μεταξύ δύο σετ αρχείων,
+ επιταχύνοντας έτσι ιδιαίτερα το συγχρονισμό μέσω του δικτύου. Αυτό
+ είναι περισσότερο χρήσιμο αν διατηρείτε mirror του διακομιστή FTP ή του
+ CVS Repository του &os;. Η συλλογή εφαρμογών
+ <application>rsync</application> διατίθεται για πολλά λειτουργικά
+ συστήματα, στο &os; δείτε το port
+ <filename role="package">net/rsync</filename> ή χρησιμοποιήστε το
+ αντίστοιχο πακέτο.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Δημοκρατία της Τσεχίας</term>
+
+ <listitem>
+ <para>rsync://ftp.cz.FreeBSD.org/</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>ftp: Μερικό mirror του διακομιστή FTP του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>&os;: Πλήρες mirror του διακομιστή FTP του &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ολλανδία</term>
+
+ <listitem>
+ <para>rsync://ftp.nl.FreeBSD.org/</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os;: Πλήρες mirror του διακομιστή
+ FTP του &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ρωσία</term>
+
+ <listitem>
+ <para>rsync://ftp.mtu.ru/</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os;: Πλήρες mirror του διακομιστή FTP του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>&os;-gnats: Η βάση δεδομένων του συστήματος
+ παρακολούθησης σφαλμάτων GNATS.</para>
+ </listitem>
+
+ <listitem>
+ <para>&os;-Archive: Mirror του διακομιστή FTP παλαιότερων
+ εκδόσεων (archive) του &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Σουηδία</term>
+
+ <listitem>
+ <para>rsync://ftp4.se.freebsd.org/</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os;: Πλήρες mirror του διακομιστή FTP του &os;</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ταΐβάν</term>
+
+ <listitem>
+ <para>rsync://ftp.tw.FreeBSD.org/</para>
+ <para>rsync://ftp2.tw.FreeBSD.org/</para>
+ <para>rsync://ftp6.tw.FreeBSD.org/</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os;: Πλήρες mirror του διακομιστή FTP του
+ &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ηνωμένο Βασίλειο</term>
+
+ <listitem>
+ <para>rsync://rsync.mirrorservice.org/</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>sites/ftp.freebsd.org: Πλήρες mirror του διακομιστή
+ FTP του &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ηνωμένες Πολιτείες Αμερικής</term>
+
+ <listitem>
+ <para>rsync://ftp-master.FreeBSD.org/</para>
+
+ <para>Ο διακομιστής αυτός μπορεί να χρησιμοποιηθεί μόνο από κύρια
+ mirror sites του &os;.</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os;: To κύριο (master) σύστημα αρχείων του
+ διακομιστή FTP του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>acl: Η κύρια λίστα ACL του &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>rsync://ftp13.FreeBSD.org/</para>
+
+ <para>Διαθέσιμες Συλλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&os;: Πλήρες mirror του διακομιστή FTP του &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+</appendix>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../appendix.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "appendix")
+ fill-column: 78
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml b/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml
new file mode 100644
index 0000000000..aa6326ca92
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/multimedia/chapter.sgml
@@ -0,0 +1,2047 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Πολυμέσα
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml
+ %SRCID% 1.144
+
+-->
+
+<chapter id="multimedia">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Ross</firstname>
+ <surname>Lippert</surname>
+ <contrib>Επεξεργασία από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Πολυμέσα</title>
+ <sect1 id="multimedia-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το &os; υποστηρίζει μεγάλη ποικιλία από κάρτες ήχου, επιτρέποντας
+ σας έτσι να απολαύσετε υψηλής πιστότητας ήχο από τον υπολογιστή σας.
+ Περιλαμβάνεται η δυνατότητα να εγγράψετε και να αναπαράγετε ήχο MPEG
+ Audio Layer 3 (MP3), WAV, και Ogg Vorbis καθώς και πολλά άλλα
+ formats. Το &os; Ports Collection επίσης περιέχει
+ εφαρμογές που σας επιτρέπουν να επεξεργαστείτε τον ηχογραφημένο σας ήχο,
+ να προσθέσετε ηχητικά εφέ, και να ελέγξετε συσκευές MIDI.</para>
+
+ <para>Με λίγο πειραματισμό, το &os; μπορεί να υποστηρίξει
+ αναπαραγωγή αρχείων video και DVD. Ο αριθμός των εφαρμογών που
+ κωδικοποιούν, μετατρέπουν, και αναπαράγουν διάφορους τύπους video είναι
+ πιο περιορισμένος από τον αριθμό των εφαρμογών ήχου. Για παράδειγμα,
+ όταν γράφηκε αυτό το κείμενο, δεν υπήρχε καμιά καλή εφαρμογή
+ επανακωδικοποίησης στη συλλογή των Ports του &os;, που θα μπορούσε
+ να χρησιμοποιηθεί για μετατροπή μεταξύ formats, όπως το
+ <filename role="package">audio/sox</filename>. Παρ' όλα αυτά, το τοπίο
+ σε αυτό τον τομέα, και όσο αφορά το λογισμικό, αλλάζει ραγδαία.</para>
+
+ <para>Το κεφάλαιο αυτό θα περιγράψει τα απαραίτητα βήματα για τη ρύθμιση
+ της κάρτας ήχου σας. Η ρύθμιση και εγκατάσταση του X11
+ (<xref linkend="x11">) έχει ήδη φροντίσει για τα πιθανά προβλήματα
+ υλικού της κάρτας γραφικών σας, αν και μπορεί να χρειάζεται να
+ εφαρμόσετε κάποιες ακόμα μικρο-ρυθμίσεις για καλύτερη αναπαραγωγή.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να ρυθμίσετε το σύστημα σας ώστε να αναγνωρίζεται η
+ κάρτα ήχου σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μεθόδους για να ελέγξετε τη λειτουργία της κάρτας σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να επιλύσετε προβλήματα σχετικά με τις ρυθμίσεις ήχου.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αναπαράγετε και να κωδικοποιήσετε MP3 και άλλους τύπους
+ αρχείων ήχου.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως υποστηρίζεται το video από τον X server.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κάποια ports αναπαραγωγής/κωδικοποίησης video που δίνουν καλά
+ αποτελέσματα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αναπαράγετε DVD, και αρχεία <filename>.mpg</filename> και
+ <filename>.avi</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να κάνετε rip το περιεχόμενο CD και DVD σε αρχεία.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε μια κάρτα τηλεόρασης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε ένα σαρωτή εικόνων.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem><para>Να ξέρετε πως θα ρυθμίσετε και θα εγκαταστήσετε νέο
+ πυρήνα (<xref linkend="kernelconfig">).</para></listitem>
+ </itemizedlist>
+
+ <warning>
+ <para>Αν προσπαθήσετε να προσαρτήσετε μουσικά CD
+ με την εντολή &man.mount.8; θα προκληθεί κατ' ελάχιστον
+ σφάλμα, ή στη χειρότερη περίπτωση <emphasis>kernel
+ panic</emphasis>. Τέτοια μέσα έχουν εξειδικευμένες κωδικοποιήσεις
+ που διαφέρουν από το συνηθισμένο σύστημα αρχείων ISO.</para>
+ </warning>
+ </sect1>
+
+ <sect1 id="sound-setup">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Moses</firstname>
+ <surname>Moore</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ <!-- 20 November 2000 -->
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Βελτιώθηκε από τον </contrib>
+ <!-- 13 September 2004 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Ρύθμιση της Κάρτας Ήχου</title>
+
+ <sect2 id="sound-device">
+ <title>Ρυθμίζοντας το Σύστημα</title>
+
+ <indexterm><primary>PCI</primary></indexterm>
+ <indexterm><primary>ISA</primary></indexterm>
+ <indexterm><primary>sound cards</primary></indexterm>
+ <para>Πριν ξεκινήσετε, θα πρέπει να ξέρετε το μοντέλο της κάρτας που
+ έχετε, το ολοκληρωμένο κύκλωμα που χρησιμοποιεί, καθώς και αν είναι PCI
+ ή ISA. Το &os; υποστηρίζει μεγάλη ποικιλία καρτών ήχου, τόσο PCI όσο
+ και ISA. Ελέγξτε τις υποστηριζόμενες συσκευές ήχου στις
+ <ulink url="&rel.current.hardware;">Σημειώσεις Υλικού</ulink> για να
+ δείτε αν η κάρτα σας υποστηρίζεται. Στις Σημειώσεις Υλικού αναφέρεται
+ επίσης ποιο πρόγραμμα οδήγησης υποστηρίζει την κάρτα σας.</para>
+
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <para>Για να χρησιμοποιήσετε την συσκευή ήχου που διαθέτετε, θα πρέπει να
+ φορτώσετε τον κατάλληλο οδηγό συσκευής. Αυτό μπορεί να επιτευχθεί με δύο
+ τρόπους. Ο ευκολότερος είναι απλώς να φορτώσετε ένα module (άρθρωμα)
+ για την κάρτα ήχου στον πυρήνα, χρησιμοποιώντας την εντολή
+ &man.kldload.8;, με τη βοήθεια της γραμμής εντολών:
+ </para>
+
+ <screen>&prompt.root; <userinput>kldload snd_emu10k1</userinput></screen>
+
+ <para>ή προσθέτοντας την κατάλληλη γραμμή στο αρχείο
+ <filename>/boot/loader.conf</filename> όπως παρακάτω:</para>
+
+ <programlisting>snd_emu10k1_load="YES"</programlisting>
+
+ <para>Τα παραπάνω παραδείγματα είναι για μια κάρτα ήχου Creative
+ &soundblaster; Live!. Υπάρχουν διαθέσιμα και άλλα modules για κάρτες
+ ήχου και μπορείτε να τα δείτε στο αρχείο
+ <filename>/boot/defaults/loader.conf</filename>.
+ Αν δεν είστε σίγουρος για το πρόγραμμα οδήγησης που πρέπει να
+ χρησιμοποιήσετε, μπορείτε να προσπαθήσετε να φορτώσετε το module
+ <filename>snd_driver</filename>:</para>
+
+ <screen>&prompt.root; <userinput>kldload snd_driver</userinput></screen>
+
+ <para>Πρόκειται για ένα μετα-πρόγραμμα οδήγησης, το οποίο φορτώνει με
+ μιας όλα τα κοινά προγράμματα οδήγησης για κάρτες ήχου. Με τον τρόπο
+ αυτό μπορείτε να επιταχύνετε την ανίχνευση για το σωστό οδηγό. Μπορείτε
+ επίσης να φορτώσετε όλα τα προγράμματα οδήγησης μέσω του αρχείου
+ <filename>/boot/loader.conf</filename>.</para>
+
+ <para>Αν επιθυμείτε να βρείτε το επιλεγμένο πρόγραμμα οδήγησης της κάρτας
+ σας μετά τη φόρτωση του <filename>snd_driver</filename>, μπορείτε να
+ ελέγξετε το αρχείο <filename>/dev/sndstat</filename> με την βοήθεια της
+ εντολής <command>cat /dev/sndstat</command>.</para>
+
+ <para>Μια δεύτερη μέθοδος είναι να μεταγλωττίσετε την υποστήριξη της
+ κάρτας ήχου σας, στατικά, απευθείας στον πυρήνα. Το παρακάτω τμήμα
+ παρέχει τις πληροφορίες που χρειάζεστε για να προσθέσετε υποστήριξη για
+ το υλικό σας με αυτό τον τρόπο. Για περισσότερες πληροφορίες σχετικά με
+ την μεταγλώττιση του πυρήνα, δείτε το <xref linkend="kernelconfig">.
+ </para>
+
+ <sect3>
+ <title>Δημιουργώντας Προσαρμοσμένο Πυρήνα με Υποστήριξη Ήχου</title>
+
+ <para>Αρχικά, πρέπει να προσθέσετε το γενικό πρόγραμμα οδήγησης ήχου
+ (audio framework driver) &man.sound.4; στον πυρήνα σας. Θα χρειαστεί
+ να προσθέσετε την ακόλουθη γραμμή στο αρχείο ρυθμίσεων του πυρήνα:
+ </para>
+
+ <programlisting>device sound</programlisting>
+
+ <para>Έπειτα, θα πρέπει να προσθέσετε υποστήριξη για την κάρτα ήχου σας.
+ Πρέπει να γνωρίζετε από πριν ποιο πρόγραμμα οδήγησης την υποστηρίζει.
+ Ελέγξτε τη λίστα των υποστηριζόμενων καρτών στις
+ <ulink url="&rel.current.hardware;">Σημειώσεις Υλικού</ulink>,
+ για να καθορίσετε το σωστό οδηγό για την δική σας. Για παράδειγμα,
+ ή Creative &soundblaster; Live!, υποστηρίζεται από τον οδηγό
+ &man.snd.emu10k1.4;. Για να προσθέσετε υποστήριξη για αυτή την κάρτα,
+ χρησιμοποιήστε την ακόλουθη γραμμή:</para>
+
+ <programlisting>device snd_emu10k1</programlisting>
+
+ <para>Βεβαιωθείτε ότι διαβάσατε την σελίδα του manual για το πρόγραμμα
+ οδήγησης, ώστε να χρησιμοποιήσετε τη σωστή σύνταξη. Η ακριβής σύνταξη
+ για κάθε υποστηριζόμενη κάρτα ήχου στο αρχείο ρυθμίσεων πυρήνα, μπορεί
+ να βρεθεί επίσης στο αρχείο
+ <filename>/usr/src/sys/conf/NOTES</filename>.</para>
+
+ <para>Για κάρτα ήχου τύπου ISA που δεν είναι Plug'N'Play μπορεί να
+ χρειαστεί να δώσετε στον πυρήνα πληροφορίες σχετικά με τις ρυθμίσεις
+ της (όπως το IRQ, θύρα I/O κλπ), όπως γίνεται τυπικά σε αυτές τις
+ περιπτώσεις. Αυτό μπορεί να γίνει μέσω του αρχείου
+ <filename>/boot/device.hints</filename>. Κατά τη διαδικασία της
+ εκκίνησης, ο &man.loader.8; θα διαβάσει το αρχείο και θα μεταβιβάσει
+ τις ρυθμίσεις στον πυρήνα. Για παράδειγμα, μια παλιά Creative
+ &soundblaster; 16 ISA μη-PnP κάρτα χρησιμοποιεί το πρόγραμμα οδήγησης
+ &man.snd.sbc.4; σε συνδυασμό με το <literal>snd_sb16</literal>. Για
+ την κάρτα αυτή πρέπει να προστεθούν οι παρακάτω γραμμές στο αρχείο
+ ρυθμίσεων πυρήνα:</para>
+
+ <programlisting>device snd_sbc
+device snd_sb16</programlisting>
+
+ <para>και οι παρακάτω γραμμές στο αρχείο
+ <filename>/boot/device.hints</filename>:</para>
+
+ <programlisting>hint.sbc.0.at="isa"
+hint.sbc.0.port="0x220"
+hint.sbc.0.irq="5"
+hint.sbc.0.drq="1"
+hint.sbc.0.flags="0x15"</programlisting>
+
+ <para>Στην περίπτωση αυτή, η κάρτα χρησιμοποιεί τη θύρα I/O
+ <literal>0x220</literal> και το IRQ <literal>5</literal>.</para>
+
+ <para>Η σύνταξη που χρησιμοποιείται στο αρχείο
+ <filename>/boot/device.hints</filename> εξηγείται στη σελίδα manual
+ του &man.sound.4; καθώς και στη σελίδα manual του αντίστοιχου
+ προγράμματος οδήγησης.</para>
+
+ <para>Οι ρυθμίσεις που φαίνονται παραπάνω είναι οι προεπιλεγμένες. Σε
+ ορισμένες περιπτώσεις, μπορεί να χρειαστεί να αλλάξετε το IRQ ή άλλες
+ ρυθμίσεις ώστε να ταιριάζουν με τις ρυθμίσεις της κάρτας σας. Δείτε τη
+ σελίδα manual της &man.snd.sbc.4; για περισσότερες πληροφορίες σχετικά
+ με την κάρτα αυτή.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="sound-testing">
+ <title>Δοκιμάζοντας την Κάρτα Ήχου</title>
+
+ <para>Αφού κάνετε επανεκκίνηση με τον νέο πυρήνα (ή αφού φορτώσετε το
+ απαραίτητο module), Θα πρέπει να δείτε μηνύματα σχετικά με την κάρτα
+ ήχου στην προσωρινή μνήμη (buffer) καταγραφής του συστήματος
+ (&man.dmesg.8;) αντίστοιχα με τα παρακάτω:</para>
+
+ <screen>pcm0: &lt;Intel ICH3 (82801CA)&gt; port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
+pcm0: [GIANT-LOCKED]
+pcm0: &lt;Cirrus Logic CS4205 AC97 Codec&gt;</screen>
+
+ <para>Η κατάσταση της κάρτας ήχου μπορεί να ελεγχθεί μέσω του αρχείου
+ <filename>/dev/sndstat</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cat /dev/sndstat</userinput>
+FreeBSD Audio Driver (newpcm)
+Installed devices:
+pcm0: &lt;Intel ICH3 (82801CA)&gt; at io 0xd800, 0xdc80 irq 5 bufsz 16384
+kld snd_ich (1p/2r/0v channels duplex default)</screen>
+
+ <para>Τα μηνύματα στο σύστημα σας μπορεί να είναι διαφορετικά. Αν δεν
+ δείτε συσκευές τύπου <devicename>pcm</devicename>, επιστρέψτε και
+ ελέγξτε τα βήματα που κάνατε προηγουμένως. Κοιτάξτε το αρχείο
+ ρυθμίσεων πυρήνα και βεβαιωθείτε ότι έχετε επιλέξει το σωστό πρόγραμμα
+ οδήγησης. Για συνήθη προβλήματα και την αντιμετώπιση τους, δείτε το
+ τμήμα <xref linkend="troubleshooting">.</para>
+
+ <para>Αν όλα πάνε καλά, η κάρτα ήχου σας θα λειτουργεί. Αν ο οδηγός CD ή
+ DVD που διαθέτετε είναι συνδεμένος με την κάρτα ήχου μέσω της αναλογικής
+ του εξόδου, μπορείτε να βάλετε ένα μουσικό CD και να το αναπαράγετε με
+ το πρόγραμμα &man.cdcontrol.1;:</para>
+
+ <screen>&prompt.user; <userinput>cdcontrol -f /dev/acd0 play 1</userinput></screen>
+
+ <para>Άλλες εφαρμογές, όπως το <filename
+ role="package">audio/workman</filename> παρέχουν φιλικότερο περιβάλλον
+ εργασίας. Ίσως θέλετε να εγκαταστήσετε μια εφαρμογή όπως το
+ <filename role="package">audio/mpg123</filename> για να αναπαράγετε
+ αρχεία ήχου MP3.</para>
+
+ <para>Ένας άλλος γρήγορος τρόπος για να ελέγξετε την κάρτα ήχου σας, είναι
+ να στείλετε δεδομένα στην συσκευή <filename>/dev/dsp</filename>, όπως
+ παρακάτω:</para>
+
+ <screen>&prompt.user; <userinput>cat <replaceable>filename</replaceable> &gt; /dev/dsp</userinput></screen>
+
+ <para>όπου το <filename><replaceable>filename</replaceable></filename>
+ μπορεί να είναι οποιοδήποτε αρχείο. Η παραπάνω εντολή θα πρέπει να
+ παράγει κάποιο ήχο (θόρυβο) επιβεβαιώνοντας τη σωστή λειτουργία της
+ κάρτας ήχου.</para>
+
+ <note>
+ <para>Τα αρχεία συσκευών <filename>/dev/dsp*</filename> δημιουργούνται
+ αυτόματα όταν χρειάζεται. Δεν υπάρχουν αν δεν χρησιμοποιούνται και
+ δεν θα εμφανιστούν στην έξοδο της &man.ls.1;</para>
+ </note>
+
+ <para>Η ένταση ήχου της κάρτας μπορεί να αλλάξει μέσω της εντολής
+ &man.mixer.8;. Περισσότερες πληροφορίες μπορείτε να βρείτε στην σελίδα
+ του manual της &man.mixer.8;.</para>
+
+ <sect3 id="troubleshooting">
+ <title>Συνηθισμένα Προβλήματα</title>
+
+ <indexterm><primary>device nodes</primary></indexterm>
+ <indexterm><primary>I/O port</primary></indexterm>
+ <indexterm><primary>IRQ</primary></indexterm>
+ <indexterm><primary>DSP</primary></indexterm>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Πρόβλημα</entry>
+ <entry>Λύση</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><errorname>sb_dspwr(XX) timed out</errorname></entry>
+ <entry><para>Δεν είναι σωστά ρυθμισμένη η θύρα I/O.</para></entry>
+ </row>
+
+ <row>
+ <entry><errorname>bad irq XX</errorname></entry>
+ <entry><para>Το IRQ δεν είναι σωστά ρυθμισμένο. Βεβαιωθείτε ότι
+ το IRQ που έχετε δηλώσει είναι το ίδιο με αυτό που έχει
+ ρυθμιστεί στην κάρτα.</para></entry>
+ </row>
+
+ <row>
+ <entry><errorname>xxx: gus pcm not attached, out of memory</errorname></entry>
+ <entry><para>Δεν υπάρχει αρκετή διαθέσιμη μνήμη για να
+ γίνει χρήση της συσκευής.</para></entry>
+ </row>
+
+ <row>
+ <entry><errorname>xxx: can't open /dev/dsp!</errorname></entry>
+ <entry><para>Ελέγξτε με την βοήθεια της εντολής
+ <command>fstat | grep dsp</command> αν κάποια άλλη εφαρμογή
+ απασχολεί τη συγκεκριμένη συσκευή. Συνήθεις ύποπτοι είναι
+ η εφαρμογή <application>esound</application> καθώς και το
+ σύστημα υποστήριξης ήχου του περιβάλλοντος
+ <application>KDE</application>.</para></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Ένα ακόμα πρόβλημα δημιουργείται από ορισμένες σύγχρονες κάρτες
+ γραφικών οι οποίες περιέχουν μια δική τους συσκευή ήχου για χρήση
+ μέσω συνδέσεων <acronym>HDMI</acronym> ή αντίστοιχων. Σε ορισμένες
+ περιπτώσεις, είναι πιθανόν αυτή η συσκευή να εντοπισθεί πριν την
+ κανονική κάρτα ήχου με αποτέλεσμα να πάρει τη θέση της προεπιλεγμένης
+ συσκευής ήχου. Για να ελέγξετε αν συμβαίνει αυτό, εκτελέστε την
+ εντολή <application>dmesg</application> και ψάξτε για τη λέξη
+ <literal>pcm</literal>. Η έξοδος θα μοιάζει με την παρακάτω:</para>
+
+ <programlisting>...
+hdac0: HDA Driver Revision: 20100226_0142
+hdac1: HDA Driver Revision: 20100226_0142
+hdac0: HDA Codec #0: NVidia (Unknown)
+hdac0: HDA Codec #1: NVidia (Unknown)
+hdac0: HDA Codec #2: NVidia (Unknown)
+hdac0: HDA Codec #3: NVidia (Unknown)
+pcm0: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 0 nid 1 on hdac0
+pcm1: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 1 nid 1 on hdac0
+pcm2: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 2 nid 1 on hdac0
+pcm3: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; at cad 3 nid 1 on hdac0
+hdac1: HDA Codec #2: Realtek ALC889
+pcm4: &lt;HDA Realtek ALC889 PCM #0 Analog&gt; at cad 2 nid 1 on hdac1
+pcm5: &lt;HDA Realtek ALC889 PCM #1 Analog&gt; at cad 2 nid 1 on hdac1
+pcm6: &lt;HDA Realtek ALC889 PCM #2 Digital&gt; at cad 2 nid 1 on hdac1
+pcm7: &lt;HDA Realtek ALC889 PCM #3 Digital&gt; at cad 2 nid 1 on hdac1
+...</programlisting>
+
+ <para>Στο παράδειγμα μας, η κάρτα γραφικών (<literal>NVidia</literal>)
+ εντοπίστηκε πριν την κανονική κάρτα ήχου
+ (<literal>Realtek ALC889</literal>). Για να χρησιμοποιήσετε την
+ πραγματική κάρτα ήχου ως την προεπιλεγμένη συσκευή ήχου, αλλάξτε το
+ <literal>hw.snd.default_unit</literal> όπως φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>sysctl hw.snd.default_unit=<replaceable>n</replaceable></userinput></screen>
+
+ <para>Το <replaceable>n</replaceable> είναι ο αριθμός της συσκευής που
+ θα χρησιμοποιηθεί, στο παράδειγμα μας το <literal>4</literal>.
+ Προσθέστε την παρακάτω γραμμή στο
+ <filename>/etc/sysctl.conf</filename> για να γίνει μόνιμη αυτή η
+ αλλαγή:</para>
+
+ <programlisting>hw.snd.default_unit=<replaceable>4</replaceable></programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2 id="sound-multiple-sources">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Munish</firstname>
+ <surname>Chopra</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+ <title>Χρησιμοποιώντας Πολλαπλές Πηγές Ήχου</title>
+
+ <para>Είναι πολλές φορές επιθυμητό να έχουμε πολλαπλές πηγές ήχου που να
+ αναπαράγονται ταυτόχρονα, όπως όταν για παράδειγμα το
+ <application>esound</application> ή το
+ <application>artsd</application> δεν επιτρέπουν κοινή χρήση της συσκευής
+ ήχου σε κάποια συγκεκριμένη εφαρμογή.</para>
+
+ <para>Το &os; επιτρέπει αυτή τη λειτουργία μέσω των <emphasis>Εικονικών
+ Καναλιών Ήχου (Virtual Sound Channels)</emphasis>, τα οποία μπορούν να
+ ενεργοποιηθούν μέσω των δυνατοτήτων που παρέχονται από το
+ &man.sysctl.8;. Τα Εικονικά Κανάλια σας επιτρέπουν να πολυπλέξετε τους
+ ήχους που αναπαράγει η κάρτα σας, αναμιγνύοντας τον ήχο στον πυρήνα.
+ </para>
+
+ <para>Για να ρυθμίσετε το πλήθος των εικονικών καναλιών, υπάρχουν τρεις
+ ρυθμίσεις sysctl που μπορούν να γίνουν αν είστε ο χρήστης
+ <username>root</username>, όπως φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>sysctl dev.pcm.0.play.vchans=4</userinput>
+&prompt.root; <userinput>sysctl dev.pcm.0.rec.vchans=4</userinput>
+&prompt.root; <userinput>sysctl hw.snd.maxautovchans=4</userinput></screen>
+
+ <para>Το παραπάνω παράδειγμα παραχωρεί τέσσερα εικονικά κανάλια, τα οποία
+ άνετα επαρκούν για καθημερινή χρήση. Οι τιμές
+ <varname>dev.pcm.0.play.vchans=4</varname> και
+ <varname>dev.pcm.0.rec.vchans=4</varname> αναφέρονται στον αριθμό των
+ εικονικών καναλιών που διαθέτει η συσκευή <devicename>pcm0</devicename>
+ για αναπαραγωγή και εγγραφή, και μπορούν να ρυθμιστούν μετά την
+ προσάρτηση της συσκευής. Η μεταβλητή
+ <literal>hw.snd.maxautovchans</literal> είναι ο αριθμός των εικονικών
+ καναλιών που παραχωρούνται σε μια νέα συσκευή ήχου όταν αυτή
+ προσαρτάται μέσω της εντολής &man.kldload.8;. Καθώς το module
+ <devicename>pcm</devicename> μπορεί να φορτωθεί ανεξάρτητα από τα
+ προγράμματα οδήγησης του υλικού, το
+ <varname>hw.snd.maxautovchans</varname> μπορεί να αποθηκεύσει το
+ μέγιστο πλήθος των εικονικών καναλιών που θα παραχωρηθούν σε όσες
+ συσκευές ήχου προσαρτηθούν αργότερα. Δείτε τη σελίδα manual
+ &man.pcm.4; για περισσότερες λεπτομέρειες.</para>
+
+ <note>
+ <para>Δεν μπορείτε να αλλάξετε τον αριθμό των εικονικών καναλιών μιας
+ συσκευής όσο αυτή είναι σε χρήση. Πρώτα κλείστε όσα προγράμματα
+ χρησιμοποιούν τη συσκευή, όπως προγράμματα αναπαραγωγής μουσικής ή
+ δαίμονες ήχου.</para>
+ </note>
+
+ <para>Η σωστή συσκευή <devicename>pcm</devicename> αποδίδεται αυτόματα
+ και διάφανα σε κάθε πρόγραμμα που ζητά να χρησιμοποιήσει το
+ <filename>/dev/dsp0</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Josef</firstname>
+ <surname>El-Rayes</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Ρυθμίζοντας Προεπιλεγμένες Τιμές για τα Κανάλια του Μίκτη</title>
+
+ <para>Οι προεπιλεγμένες τιμές για τα διάφορα κανάλια του μίκτη, είναι
+ ενσωματωμένες στον πηγαίο κώδικα του προγράμματος οδήγησης &man.pcm.4;.
+ Υπάρχουν πολλές διαφορετικές εφαρμογές και δαίμονες που σας επιτρέπουν
+ να αλλάξετε τιμές στο μίκτη, απομνημονεύοντας τις μεταξύ διαδοχικών
+ κλήσεων, αλλά ή λύση αυτή δεν είναι και η καλύτερη. Είναι δυνατόν να
+ ορίσετε προεπιλεγμένες τιμές μίξης σε επίπεδο προγράμματος οδήγησης.
+ Αυτό μπορεί να επιτευχθεί με την ρύθμιση κατάλληλων τιμών
+ στο αρχείο <filename>/boot/device.hints</filename>, π.χ.:</para>
+
+<programlisting>hint.pcm.0.vol="50"</programlisting>
+
+ <para>Το παραπάνω ρυθμίζει την ένταση του ήχου στην προεπιλεγμένη τιμή
+ 50, όταν φορτωθεί το module &man.pcm.4;.</para>
+ </sect2>
+</sect1>
+
+ <sect1 id="sound-mp3">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- 11 Sept 2001 -->
+ </sect1info>
+
+ <title>Ήχος MP3</title>
+
+ <para>Τα αρχεία ήχου MP3 (MPEG Layer 3 Audio) επιτυγχάνουν ποιότητα ήχου
+ πολύ κοντά στο μουσικό CD, και είναι καλό να έχετε δυνατότητα
+ αναπαραγωγής τους στο &os; σύστημα σας.</para>
+
+ <sect2 id="mp3-players">
+ <title>Προγράμματα Αναπαραγωγής MP3</title>
+
+ <para>Το πιο δημοφιλές, με μεγάλη διαφορά, πρόγραμμα αναπαραγωγής MP3
+ για το Χ11, είναι η εφαρμογή <application>XMMS</application>
+ (X Multimedia System). Μπορείτε να χρησιμοποιήσετε τα skins του
+ <application>Winamp</application> με το
+ <application>XMMS</application> καθώς το γραφικό του περιβάλλον είναι
+ σχεδόν όμοιο με το <application>Winamp</application> της Nullsoft.
+ Το <application>XMMS</application> έχει επίσης ενσωματωμένη δυνατότητα
+ χρήσης plug-ins.</para>
+
+ <para>Το <application>XMMS</application> μπορεί να εγκατασταθεί από το
+ port <filename role="package">multimedia/xmms</filename> ή από
+ πακέτο.</para>
+
+ <para>Το περιβάλλον του <application>XMMS</application> το καθιστά
+ εύκολο στη χρήση, καθώς διαθέτει λίστα αναπαραγωγής (playlist),
+ γραφικό ισοσταθμιστή και άλλες λειτουργίες. Όσοι είναι εξοικειωμένοι
+ με το <application>Winamp</application> θα βρουν το
+ <application>XMMS</application> απλό στη χρήση του.</para>
+
+ <para>Το port <filename role="package">audio/mpg123</filename> είναι
+ ένα εναλλακτικό πρόγραμμα αναπαραγωγής MP3 μέσω της γραμμής εντολών.
+ </para>
+
+ <para>Το <application>mpg123</application> μπορεί να εκτελεστεί
+ καθορίζοντας τη συσκευή ήχου και το αρχείο MP3 στη γραμμή εντολών.
+ Θεωρώντας ότι η συσκευή ήχου είναι το
+ <devicename>/dev/dsp1.0</devicename> και θέλετε να αναπαράγετε το
+ αρχείο <replaceable>Foobar-GreatestHits.mp3</replaceable>,
+ θα χρησιμοποιήσετε την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>mpg123 -a <devicename>/dev/dsp1.0</devicename> <replaceable>Foobar-GreatestHits.mp3</replaceable></userinput>
+High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
+Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
+Uses code from various people. See 'README' for more!
+THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
+
+
+
+
+
+Playing MPEG stream from Foobar-GreatestHits.mp3 ...
+MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
+</screen>
+ </sect2>
+
+ <sect2 id="rip-cd">
+ <title>Αποθήκευση (Rip) Αρχείων από Μουσικά CD</title>
+
+ <para>Πριν κωδικοποιήσετε ένα ολόκληρο CD ή ένα κομμάτι από CD σε αρχείο
+ MP3, θα πρέπει να αντιγράψετε τα μουσικά δεδομένα από το CD στο σκληρό
+ σας δίσκο. Αυτό γίνεται γράφοντας τα δεδομένα τύπου CDDA (CD Digital
+ Audio) σε αρχεία WAV.</para>
+
+ <para>Το εργαλείο <command>cdda2wav</command>, το οποίο ανήκει στη
+ συλλογή εργαλείων
+ <filename role="package">sysutils/cdrtools</filename> μπορεί να
+ χρησιμοποιηθεί τόσο για την ανάκτηση των δεδομένων ήχου από μουσικά
+ CD, όσο και πληροφοριών που σχετίζονται με αυτά.</para>
+
+ <para>Έχοντας το μουσικό CD στον οδηγό, μπορείτε να χρησιμοποιήσετε την
+ ακόλουθη εντολή (ως <username>root</username>) για να αποθηκεύσετε ένα
+ ολόκληρο CD σε χωριστά (ανά κομμάτι) αρχεία WAV:</para>
+
+ <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -B</userinput></screen>
+
+ <para>Το <application>cdda2wav</application> υποστηρίζει οδηγούς CDROM
+ τύπου ATAPI (IDE). Για να διαβάσετε δεδομένα από μια συσκευή IDE,
+ χρησιμοποιήστε το όνομα συσκευής αντί για τον αριθμό μονάδας SCSI. Για
+ παράδειγμα, για να αποθηκεύσετε το κομμάτι 7 από ένα οδηγό IDE:</para>
+ <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>/dev/acd0</replaceable> -t 7</userinput></screen>
+
+ <para>Το <option>-D <replaceable>0,1,0</replaceable></option>
+ δείχνει τη συσκευή SCSI <devicename>0,1,0</devicename>,
+ που αντιστοιχεί στην έξοδο της εντολής <command>cdrecord
+ -scanbus</command>.</para>
+
+ <para>Για να διαβάσετε μεμονωμένα κομμάτια, χρησιμοποιήστε την επιλογή
+ <option>-t</option> όπως φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -t 7</userinput></screen>
+
+ <para>Το παράδειγμα αυτό διαβάζει το κομμάτι επτά του μουσικού CD. Για
+ να διαβάσετε μια σειρά από κομμάτια, για παράδειγμα από το ένα ως το
+ επτά, καθορίστε μια περιοχή:</para>
+
+ <screen>&prompt.root; <userinput>cdda2wav -D <replaceable>0,1,0</replaceable> -t 1+7</userinput></screen>
+
+ <para>Μπορείτε επίσης να χρησιμοποιήσετε το βοηθητικό πρόγραμμα
+ &man.dd.1; για να διαβάσετε μουσικά κομμάτια από οδηγούς ATAPI.
+ Διαβάστε το <xref linkend="duplicating-audiocds"> για περισσότερες
+ πληροφορίες σχετικά με αυτή τη δυνατότητα.</para>
+
+ </sect2>
+
+ <sect2 id="mp3-encoding">
+ <title>Κωδικοποιώντας MP3</title>
+
+ <para>Στις μέρες μας, το προτιμώμενο πρόγραμμα κωδικοποίησης είναι το
+ <application>Lame</application>.
+ Μπορείτε να το βρείτε στη συλλογή των ports, στο
+ <filename role="package">audio/lame</filename>.</para>
+
+ <para>Χρησιμοποιώντας τα αρχεία WAV που έχετε αποθηκεύσει, μπορείτε να
+ μετατρέψετε το αρχείο
+ <filename><replaceable>audio01.wav</replaceable></filename> σε
+ <filename><replaceable>audio01.mp3</replaceable></filename> με την
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>lame -h -b <replaceable>128</replaceable> \
+--tt "<replaceable>Foo Song Title</replaceable>" \
+--ta "<replaceable>FooBar Artist</replaceable>" \
+--tl "<replaceable>FooBar Album</replaceable>" \
+--ty "<replaceable>2001</replaceable>" \
+--tc "<replaceable>Ripped and encoded by Foo</replaceable>" \
+--tg "<replaceable>Genre</replaceable>" \
+<replaceable>audio01.wav audio01.mp3</replaceable></userinput></screen>
+
+ <para>Τα 128&nbsp;kbits είναι η τυπικά χρησιμοποιούμενη ποιότητα για
+ αρχεία MP3. Ωστόσο, πολλοί προτιμούν μεγαλύτερη ποιότητα όπως 160 ή
+ 192. Όσο μεγαλύτερος είναι ο ρυθμός δεδομένων (bitrate), τόσο
+ περισσότερο χώρο αποθήκευσης θα χρειάζεται το αρχείο MP3 που θα
+ προκύψει, ωστόσο και η ποιότητα θα είναι υψηλότερη. Η επιλογή
+ <option>-h</option> ενεργοποιεί τη δυνατότητα <quote>υψηλότερης
+ ποιότητας αλλά ελαφρά πιο αργής κωδικοποίησης</quote>. Οι επιλογές που
+ ξεκινούν με <option>--t</option> δείχνουν ετικέτες (tags) ID3, οι
+ οποίες συνήθως περιέχουν πληροφορίες σχετικές με το τραγούδι και οι
+ οποίες μπορούν να ενσωματωθούν μέσα σε αρχεία MP3. Μπορείτε να βρείτε
+ περισσότερες επιλογές σχετικά με την κωδικοποίηση, αν συμβουλευτείτε
+ τη σελίδα manual του προγράμματος
+ <application>lame</application>.</para>
+ </sect2>
+
+ <sect2 id="mp3-decoding">
+ <title>Αποκωδικοποιώντας MP3</title>
+
+ <para>Για να μπορέσετε να γράψετε μουσικό CD από αρχεία MP3, θα πρέπει
+ να τα μετατρέψετε ξανά σε μορφή ασυμπίεστου αρχείου WAV. Τόσο το
+ <application>XMMS</application> όσο και το
+ <application>mpg123</application> υποστηρίζουν εξαγωγή αρχείου MP3 σε
+ ασυμπίεστη μορφή αρχείου.</para>
+
+ <para>Γράφοντας στο Δίσκο μέσω του <application>XMMS</application>:
+ </para>
+
+ <procedure>
+ <step>
+ <para>Ξεκινήστε το <application>XMMS</application>.</para>
+ </step>
+
+ <step>
+ <para>Κάντε δεξί κλικ στο παράθυρο της εφαρμογής για να ανοίξετε το
+ μενού του <application>XMMS</application>.</para>
+ </step>
+
+ <step>
+ <para>Επιλέξτε <literal>Preferences</literal> από τα
+ <literal>Options</literal>.</para>
+ </step>
+
+ <step>
+ <para>Αλλάξτε το Output Plugin σε <quote>Disk Writer
+ Plugin</quote>.</para>
+ </step>
+
+ <step>
+ <para>Πιέστε <literal>Configure</literal>.</para>
+ </step>
+
+ <step>
+ <para>Γράψτε (ή επιλέξτε browse) ένα κατάλογο για να αποθηκεύσετε
+ τα αποσυμπιεσμένα αρχεία.</para>
+ </step>
+
+ <step>
+ <para>Φορτώστε το αρχείο MP3 στο <application>XMMS</application>
+ όπως συνήθως, με την ένταση στο 100% και τις ρυθμίσεις EQ
+ ανενεργές.</para>
+ </step>
+
+ <step>
+ <para>Πιέστε το <literal>Play</literal>. Το
+ <application>XMMS</application> θα φαίνεται ότι αναπαράγει το
+ MP3, αλλά δεν θα ακούγεται κανείς ήχος. Στην πραγματικότητα
+ αναπαράγει το MP3 σε αρχείο.</para>
+ </step>
+
+ <step>
+ <para>Όταν τελειώσετε, βεβαιωθείτε ότι επαναφέρατε τη ρύθμιση του
+ προεπιλεγμένου Output Plugin στην προηγούμενη επιλογή της, για να
+ μπορέσετε να ακούσετε ξανά αρχεία MP3.</para>
+ </step>
+ </procedure>
+
+ <para>Γράφοντας στην έξοδο μέσω του <application>mpg123</application>:
+ </para>
+
+ <procedure>
+ <step>
+ <para>Εκτελέστε
+ <command>mpg123 -s <replaceable>audio01.mp3</replaceable>
+ &gt; <replaceable>audio01.pcm</replaceable></command></para>
+ </step>
+ </procedure>
+
+ <para>Το <application>XMMS</application> γράφει αρχεία σε μορφή WAV,
+ ενώ το <application>mpg123</application> μετατρέπει το MP3 σε μη-
+ επεξεργασμένα (raw) δεδομένα ήχου PCM. Και οι δύο αυτές μορφές μπορούν
+ να χρησιμοποιηθούν με την εφαρμογή <application>cdrecord</application>
+ για τη δημιουργία μουσικών CD. Για την εφαρμογή &man.burncd.8; θα
+ πρέπει να χρησιμοποιήσετε δεδομένα PCM. Αν χρησιμοποιήσετε αρχεία WAV
+ θα παρατηρήσετε ένα μικρό ήχο (tick) στην αρχή κάθε κομματιού. Ο
+ ήχος αυτός προέρχεται από την επικεφαλίδα (header) του αρχείου WAV.
+ Μπορείτε να αφαιρέσετε την επικεφαλίδα με τη βοήθεια του προγράμματος
+ <application>SoX</application> (μπορείτε να το εγκαταστήσετε από το
+ port <filename role="package">audio/sox</filename> ή το αντίστοιχο
+ πακέτο):</para>
+
+ <screen>&prompt.user; <userinput>sox -t wav -r 44100 -s -w -c 2 <replaceable>track.wav track.raw</replaceable></userinput></screen>
+
+ <para>Διαβάστε το <xref linkend="creating-cds"> για περισσότερες
+ πληροφορίες σχετικά με τη χρήση CD εγγραφής στο &os;</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="video-playback">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Ross</firstname>
+ <surname>Lippert</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- 5 June 2002 -->
+ </sect1info>
+
+ <title>Αναπαραγωγή Video</title>
+
+ <para>Η αναπαραγωγή video είναι μια καινούρια και ραγδαία αναπτυσσόμενη
+ περιοχή εφαρμογών. Θα χρειαστεί να δείξετε υπομονή. Δεν πρόκειται να
+ λειτουργήσουν όλα τόσο ομαλά όπως στον ήχο.</para>
+
+ <para>Πριν ξεκινήσετε, θα πρέπει να γνωρίζετε το μοντέλο της κάρτας
+ γραφικών που έχετε καθώς και το ολοκληρωμένο κύκλωμα που χρησιμοποιεί.
+ Αν και το <application>&xorg;</application> υποστηρίζει μεγάλη γκάμα από
+ κάρτες γραφικών, αυτές που παρέχουν καλή απόδοση είναι λιγότερες.
+ Για να πάρετε μια λίστα των εκτεταμένων δυνατοτήτων που
+ υποστηρίζονται από την κάρτα σας, χρησιμοποιήστε την εντολή
+ &man.xdpyinfo.1; την ώρα που εκτελούνται τα X11.</para>
+
+ <para>Είναι γενικά καλή ιδέα να έχετε ένα μικρό αρχείο MPEG το οποίο
+ μπορεί να χρησιμοποιηθεί για δοκιμές διαφορετικών επιλογών και
+ προγραμμάτων αναπαραγωγής. Κάποια προγράμματα αναπαραγωγής DVD αναζητούν
+ από προεπιλογή το δίσκο DVD στη συσκευή <filename>/dev/dvd</filename>.
+ Σε ορισμένα το όνομα της συσκευής είναι ενσωματωμένο στον κώδικα του
+ προγράμματος. Για το λόγο αυτό, ίσως είναι χρήσιμο να φτιάξετε
+ συμβολικές συνδέσεις προς τις πραγματικές συσκευές:</para>
+
+ <screen>&prompt.root; <userinput>ln -sf /dev/acd0 /dev/dvd</userinput>
+&prompt.root; <userinput>ln -sf /dev/acd0 /dev/rdvd</userinput></screen>
+
+ <para>Σημειώστε ότι λόγω της φύσης του συστήματος &man.devfs.5;,
+ αυτού του είδους οι συνδέσεις δεν παραμένουν μετά την επανεκκίνηση του
+ συστήματος σας. Για να δημιουργούνται οι συμβολικές συνδέσεις αυτόματα
+ σε κάθε εκκίνηση του συστήματος σας, προσθέστε τις ακόλουθες γραμμές
+ στο αρχείο <filename>/etc/devfs.conf</filename>:
+ </para>
+
+ <programlisting>link acd0 dvd
+link acd0 rdvd</programlisting>
+
+ <para>Επιπρόσθετα, η αποκωδικοποίηση DVD, η οποία χρειάζεται κλήση ειδικών
+ λειτουργιών του DVD-ROM, απαιτεί και άδεια εγγραφής (write permission)
+ στις συσκευές DVD.</para>
+
+ <para>Για τη βελτίωση της λειτουργίας της κοινόχρηστης μνήμης του
+ συστήματος X11, συνίσταται να αυξήσετε τις τιμές κάποιων μεταβλητών
+ &man.sysctl.8;:</para>
+
+ <programlisting>kern.ipc.shmmax=67108864
+kern.ipc.shmall=32768</programlisting>
+
+ <sect2 id="video-interface">
+ <title>Προσδιορισμός Δυνατοτήτων Κάρτας Γραφικών</title>
+
+ <indexterm><primary>XVideo</primary></indexterm>
+ <indexterm><primary>SDL</primary></indexterm>
+ <indexterm><primary>DGA</primary></indexterm>
+
+ <para>Υπάρχουν αρκετοί διαφορετικοί τρόποι για την απεικόνιση video στο
+ X11. Το τι θα δουλέψει τελικά, εξαρτάται σε μεγάλο βαθμό από το υλικό
+ σας. Κάθε μέθοδος που περιγράφουμε παρακάτω θα δώσει διαφορετική
+ ποιότητα σε διαφορετικό υλικό. Επίσης, η αναπαραγωγή video στο X11 είναι
+ ένα θέμα στο οποίο πρόσφατα δίνεται μεγάλη σημασία, και πιθανόν θα
+ υπάρχουν αρκετές βελτιώσεις σε κάθε νέα έκδοση του
+ <application>&xorg;</application>.</para>
+
+ <para>Κατάλογος κοινών διεπαφών video:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>X11: Συνηθισμένη έξοδος του X11 με χρήση κοινόχρηστης μνήμης.
+ </para>
+ </listitem>
+ <listitem>
+ <para>XVideo: μια επέκταση της διεπαφής X11 που υποστηρίζει αναπαραγωγή
+ video σε οποιαδήποτε σχεδιάσιμη επιφάνεια του X11.</para>
+ </listitem>
+ <listitem>
+ <para>SDL: Simple Directmedia Layer.</para>
+ </listitem>
+ <listitem>
+ <para>DGA: Direct Graphics Access.</para>
+ </listitem>
+ <listitem>
+ <para>SVGAlib: Επίπεδο γραφικών χαμηλού επιπέδου για κονσόλα.</para>
+ </listitem>
+ </orderedlist>
+
+ <sect3 id="video-interface-xvideo">
+ <title>XVideo</title>
+
+ <para>Το <application>&xorg;</application> διαθέτει μια επέκταση που
+ ονομάζεται <emphasis>XVideo</emphasis> (γνωστή και ως Xvideo, Xv,
+ xv) και το οποίο επιτρέπει την απευθείας απεικόνιση video σε
+ σχεδιάσιμα αντικείμενα μέσω ειδικής επιτάχυνσης. Η επέκταση αυτή
+ παρέχει αναπαραγωγή πολύ καλής ποιότητας, ακόμα και σε μηχανήματα
+ χαμηλών προδιαγραφών.</para>
+
+ <para>Για να δείτε αν χρησιμοποιείται η επέκταση, χρησιμοποιήστε την
+ εντολή <command>xvinfo</command>:</para>
+
+ <screen>&prompt.user; <userinput>xvinfo</userinput></screen>
+
+ <para>Το XVideo υποστηρίζεται από την κάρτα σας αν το αποτέλεσμα δείχνει
+ όπως παρακάτω:</para>
+<screen>X-Video Extension version 2.2
+screen #0
+ Adaptor #0: "Savage Streams Engine"
+ number of ports: 1
+ port base: 43
+ operations supported: PutImage
+ supported visuals:
+ depth 16, visualID 0x22
+ depth 16, visualID 0x23
+ number of attributes: 5
+ "XV_COLORKEY" (range 0 to 16777215)
+ client settable attribute
+ client gettable attribute (current value is 2110)
+ "XV_BRIGHTNESS" (range -128 to 127)
+ client settable attribute
+ client gettable attribute (current value is 0)
+ "XV_CONTRAST" (range 0 to 255)
+ client settable attribute
+ client gettable attribute (current value is 128)
+ "XV_SATURATION" (range 0 to 255)
+ client settable attribute
+ client gettable attribute (current value is 128)
+ "XV_HUE" (range -180 to 180)
+ client settable attribute
+ client gettable attribute (current value is 0)
+ maximum XvImage size: 1024 x 1024
+ Number of image formats: 7
+ id: 0x32595559 (YUY2)
+ guid: 59555932-0000-0010-8000-00aa00389b71
+ bits per pixel: 16
+ number of planes: 1
+ type: YUV (packed)
+ id: 0x32315659 (YV12)
+ guid: 59563132-0000-0010-8000-00aa00389b71
+ bits per pixel: 12
+ number of planes: 3
+ type: YUV (planar)
+ id: 0x30323449 (I420)
+ guid: 49343230-0000-0010-8000-00aa00389b71
+ bits per pixel: 12
+ number of planes: 3
+ type: YUV (planar)
+ id: 0x36315652 (RV16)
+ guid: 52563135-0000-0000-0000-000000000000
+ bits per pixel: 16
+ number of planes: 1
+ type: RGB (packed)
+ depth: 0
+ red, green, blue masks: 0x1f, 0x3e0, 0x7c00
+ id: 0x35315652 (RV15)
+ guid: 52563136-0000-0000-0000-000000000000
+ bits per pixel: 16
+ number of planes: 1
+ type: RGB (packed)
+ depth: 0
+ red, green, blue masks: 0x1f, 0x7e0, 0xf800
+ id: 0x31313259 (Y211)
+ guid: 59323131-0000-0010-8000-00aa00389b71
+ bits per pixel: 6
+ number of planes: 3
+ type: YUV (packed)
+ id: 0x0
+ guid: 00000000-0000-0000-0000-000000000000
+ bits per pixel: 0
+ number of planes: 0
+ type: RGB (packed)
+ depth: 1
+ red, green, blue masks: 0x0, 0x0, 0x0</screen>
+
+ <para>Παρατηρήστε επίσης ότι τα formats που εμφανίζονται (YUV2, YUV12,
+ κ.λ.π.) δεν διατίθενται σε όλες τις εκδόσεις του XVideo, και η απουσία
+ τους μπορεί να επηρεάσει κάποια προγράμματα αναπαραγωγής.</para>
+
+ <para>Αν το αποτέλεσμα δείχνει κάπως έτσι:</para>
+<screen>X-Video Extension version 2.2
+screen #0
+no adaptors present</screen>
+
+ <para>Τότε πιθανώς το XVideo δεν υποστηρίζεται από την κάρτα σας.</para>
+
+ <para>Αν το XVideo δεν υποστηρίζεται από την κάρτα σας, αυτό σημαίνει απλά
+ ότι θα είναι πιο δύσκολο ο υπολογιστής σας να ανταποκριθεί στις
+ υπολογιστικές απαιτήσεις της απεικόνισης video. Ωστόσο, ανάλογα με την
+ κάρτα γραφικών και τον επεξεργαστή σας, είναι ακόμα πιθανόν να έχετε
+ ικανοποιητική αναπαραγωγή. Ίσως πρέπει να διαβάσετε μεθόδους για
+ τη βελτίωση της απόδοσης, στα προχωρημένα θέματα,
+ <xref linkend="video-further-reading">.</para>
+
+ </sect3>
+
+ <sect3 id="video-interface-SDL">
+ <title>Το Επίπεδο Simple Directmedia Layer</title>
+
+ <para>Το Simple Directmedia Layer, SDL, προορίζονταν να γίνει ένα επίπεδο
+ συμβατότητας μεταξύ των &microsoft.windows;, BeOS, και του &unix;,
+ επιτρέποντας ανάπτυξη εφαρμογών ήχου και εικόνας, κατάλληλες για κάθε
+ μια από αυτές τις πλατφόρμες (cross-platform). Το επίπεδο SDL παρέχει
+ χαμηλού επιπέδου πρόσβαση στο υλικό, και σε ορισμένες περιπτώσεις μπορεί
+ να είναι πιο αποδοτικό από την διεπαφή X11.</para>
+
+ <para>Το SDL μπορεί να βρεθεί στο
+ <filename role="package">devel/sdl12</filename>.</para>
+
+ </sect3>
+
+ <sect3 id="video-interface-DGA">
+ <title>Το Επίπεδο Direct Graphics Access</title>
+
+ <para>Το Direct Graphics Access είναι μια επέκταση του X11 που επιτρέπει
+ σε ένα πρόγραμμα να προσπεράσει τον X server και να αλλάξει απευθείας
+ τα περιεχόμενα του framebuffer (μνήμης γραφικών). Δεδομένου ότι
+ βασίζεται σε διαχείριση μνήμης χαμηλού επιπέδου, τα προγράμματα που το
+ χρησιμοποιούν πρέπει να εκτελούνται ως <username>root</username>.</para>
+
+ <para>Η επέκταση DGA μπορεί να ελεγχθεί και να μετρηθεί ως προς την
+ απόδοση της με το πρόγραμμα &man.dga.1;. Όταν εκτελείται η εντολή
+ <command>dga</command>, αλλάζει τα χρώματα της οθόνης σε κάθε πίεση
+ ενός πλήκτρου. Για να ακυρώσετε την εκτέλεση, πιέστε <keycap>q</keycap>.
+ </para>
+
+ </sect3>
+
+ </sect2>
+
+ <sect2 id="video-ports">
+ <title>Πακέτα και Ports που Σχετίζονται με Video</title>
+
+ <indexterm><primary>video ports</primary></indexterm>
+ <indexterm><primary>video packages</primary></indexterm>
+
+ <para>Το τμήμα αυτό περιγράφει το λογισμικό που διατίθεται στη συλλογή
+ των ports του &os; και το οποίο μπορεί να χρησιμοποιηθεί για αναπαραγωγή
+ video. Ο τομέας της αναπαραγωγής video είναι ιδιαίτερα ενεργός όσο αφορά
+ την ανάπτυξη λογισμικού, και έτσι οι δυνατότητες των εφαρμογών πιθανώς
+ να αποκλίνουν κάπως από αυτές που περιγράφονται εδώ.</para>
+
+ <para>Είναι αρχικά σημαντικό να γνωρίζετε ότι αρκετές από τις εφαρμογές
+ video που εκτελούνται στο &os; αναπτύχθηκαν αρχικά ως εφαρμογές Linux.
+ Πολλές από αυτές τις εφαρμογές είναι ακόμα ποιότητας beta. Κάποια από τα
+ προβλήματα που μπορεί να συναντήσετε στις εφαρμογές video του &os;
+ περιλαμβάνουν:</para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>Μια εφαρμογή δεν μπορεί να αναπαράγει ένα αρχείο που
+ δημιουργήθηκε από κάποια άλλη.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μια εφαρμογή δεν μπορεί να αναπαράγει ένα αρχείο που δημιούργησε
+ η ίδια.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η ίδια εφαρμογή, σε δυο διαφορετικά μηχανήματα, και αφού έχει
+ μεταγλωττιστεί σε κάθε μηχάνημα ειδικά για αυτό, αναπαράγει το ίδιο
+ αρχείο με διαφορετικό τρόπο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κάποιο φαινομενικά απλό φίλτρο, όπως αυτό της αλλαγής μεγέθους
+ εικόνας (rescaling), έχει ως αποτέλεσμα την δημιουργία κακής
+ ποιότητας video (τεχνουργημάτων) εξαιτίας προβληματικής ρουτίνας
+ μεγέθυνσης</para>
+ </listitem>
+
+ <listitem>
+ <para>Κάποια εφαρμογή τερματίζεται απότομα συχνά.</para>
+ </listitem>
+
+ <listitem>
+ <para>Δεν εγκαθίσταται η τεκμηρίωση του προγράμματος κατά την
+ εγκατάσταση του port, ενώ μπορεί να βρεθεί είτε στο δικτυακό τόπο
+ του προγράμματος είτε στον κατάλογο
+ <filename class='directory'>work</filename> του port.</para>
+ </listitem>
+
+ </orderedlist>
+
+ <para>Πολλές από τις εφαρμογές αυτές μπορεί επίσης να παρουσιάσουν
+ συμπτώματα <quote>Linux-ισμού</quote>. Μπορεί δηλ. να εμφανίζουν
+ προβλήματα που οφείλονται στον τρόπο με τον οποίο υλοποιούνται κάποιες
+ στάνταρ βιβλιοθήκες στις διανομές του Linux, ή ίσως οι συγγραφείς να
+ έχουν θεωρήσει ως δεδομένες κάποιες δυνατότητες του πυρήνα όπως
+ υπάρχουν στο Linux. Τα προβλήματα αυτά δεν είναι σίγουρο ότι
+ ανακαλύπτονται και διορθώνονται πάντα από τους συντηρητές του port, το
+ οποίο μπορεί να οδηγήσει σε προβλήματα όπως τα παρακάτω:</para>
+
+ <orderedlist>
+
+ <listitem>
+ <para>Χρήση του αρχείου <filename>/proc/cpuinfo</filename> για την
+ ανίχνευση των δυνατοτήτων του επεξεργαστή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κακή χρήση των threads (νημάτων) το οποίο οδηγεί το πρόγραμμα
+ σε κόλλημα αντί για κανονικό τερματισμό στο τέλος της εκτέλεσης.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Χρήση λογισμικού που δεν υπάρχει ακόμα στη συλλογή των ports του
+ &os; σε συνδυασμό με την εφαρμογή.</para>
+ </listitem>
+
+ </orderedlist>
+
+ <para>Μέχρι στιγμής οι συγγραφείς των εφαρμογών αυτών έχουν αποδειχθεί
+ συνεργάσιμοι με τους συντηρητές των ports, ώστε να ελαχιστοποιηθούν οι
+ επεμβάσεις που χρειάζονται για την μετατροπή (porting) των εφαρμογών.
+ </para>
+
+ <sect3 id="video-mplayer">
+ <title>MPlayer</title>
+
+ <para>Ο <application>MPlayer</application> είναι μια εφαρμογή
+ αναπαραγωγής video που αναπτύχθηκε πρόσφατα και εξελίσσεται ταχύτατα.
+ Οι στόχοι της ομάδας ανάπτυξης του <application>MPlayer</application>
+ είναι η ταχύτητα και η ευελιξία στο Linux και στα άλλα Unix. Η
+ δημιουργία του ξεκίνησε όταν ο αρχηγός της ομάδας ανάπτυξης κουράστηκε
+ να αντιμετωπίζει τα προβλήματα αναπαραγωγής των μέχρι τότε διαθέσιμων
+ προγραμμάτων. Κάποιοι υποστηρίζουν ότι το γραφικό περιβάλλον
+ θυσιάστηκε για να δημιουργηθεί μια ομοιόμορφη σχεδίαση. Ωστόσο, μόλις
+ συνηθίσετε τις επιλογές που δίνονται από τη γραμμή εντολών και τα
+ αντίστοιχα πλήκτρα, θα μπορέσετε να τον χρησιμοποιήσετε αρκετά καλά.
+ </para>
+
+ <sect4 id="video-mplayer-building">
+ <title>Μεταγλώττιση του MPlayer</title>
+ <indexterm><primary>MPlayer</primary>
+ <secondary>making</secondary></indexterm>
+
+ <para>Ο <application>MPlayer</application> βρίσκεται στο <filename
+ role="package">multimedia/mplayer</filename>.
+ Ο <application>MPlayer</application> κάνει πλήθος ελέγχων του υλικού
+ κατά τη διαδικασία της μεταγλώττισης, φτιάχνοντας έτσι ένα
+ εκτελέσιμο το οποίο δεν έχει φορητότητα από ένα σύστημα σε ένα άλλο.
+ Για το σκοπό αυτό, είναι σημαντικό να τον εγκαταστήσετε από τα ports
+ και όχι από έτοιμο πακέτο. Επιπρόσθετα, μπορείτε να καθορίσετε
+ πλήθος επιλογών στην γραμμή εντολών του <command>make</command>
+ όπως περιγράφεται στο <filename>Makefile</filename> και κατά την
+ έναρξη της διαδικασίας μεταγλώττισης:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/multimedia/mplayer</userinput>
+&prompt.root; <userinput>make</userinput>
+N - O - T - E
+
+Take a careful look into the Makefile in order
+to learn how to tune mplayer towards you personal preferences!
+For example,
+make WITH_GTK1
+builds MPlayer with GTK1-GUI support.
+If you want to use the GUI, you can either install
+/usr/ports/multimedia/mplayer-skins
+or download official skin collections from
+http://www.mplayerhq.hu/homepage/dload.html
+</screen>
+
+ <para>Οι προεπιλεγμένες επιλογές μάλλον είναι κατάλληλες για
+ τους περισσότερους χρήστες. Αν ωστόσο χρειάζεστε τον αποκωδικοποιητή
+ XviD, θα πρέπει να καθορίσετε την επιλογή
+ <makevar>WITH_XVID</makevar> στην γραμμή εντολών. Μπορείτε επίσης
+ να ορίσετε την προεπιλεγμένη συσκευή DVD χρησιμοποιώντας την επιλογή
+ <makevar>WITH_DVD_DEVICE</makevar>, διαφορετικά θα χρησιμοποιηθεί η
+ προεπιλεγμένη συσκευή <filename>/dev/acd0</filename>.</para>
+
+ <para>Όταν γράφονταν αυτό το κείμενο, το port του
+ <application>MPlayer</application> δημιουργούσε επίσης την
+ τεκμηρίωση του προγράμματος και δύο εκτελέσιμα, τον
+ <command>mplayer</command>, και τον
+ <command>mencoder</command>, το οποίο είναι ένα εργαλείο για
+ επανακωδικοποίηση video.</para>
+
+ <para>Η HTML τεκμηρίωση του <application>MPlayer</application>
+ είναι ιδιαίτερα πληροφοριακή. Αν ο αναγνώστης βρει ότι οι
+ πληροφορίες αυτού του κεφαλαίου όσο αφορά το υλικό και τις διεπαφές
+ video είναι ελλιπείς, η τεκμηρίωση του
+ <application>MPlayer</application> αποτελεί ένα ιδιαίτερα
+ αναλυτικό συμπλήρωμα. Θα πρέπει σίγουρα να διαθέσετε χρόνο για να
+ διαβάσετε την τεκμηρίωση του <application>MPlayer</application>
+ αν αναζητάτε πληροφορίες σχετικά με την υποστήριξη video στο &unix;.
+ </para>
+
+ </sect4>
+
+ <sect4 id="video-mplayer-using">
+ <title>Χρησιμοποιώντας τον MPlayer</title>
+ <indexterm><primary>MPlayer</primary>
+ <secondary>use</secondary></indexterm>
+
+ <para>Κάθε χρήστης του <application>MPlayer</application> πρέπει να
+ δημιουργήσει ένα υποκατάλογο <filename>.mplayer</filename> μέσα στον
+ προσωπικό του κατάλογο. Για να δημιουργήσετε τον απαραίτητο
+ υποκατάλογο, μπορείτε να γράψετε το παρακάτω:</para>
+
+<screen>&prompt.user; <userinput>cd /usr/ports/multimedia/mplayer</userinput>
+&prompt.user; <userinput>make install-user</userinput></screen>
+
+ <para>Οι επιλογές της γραμμής εντολών του <command>mplayer</command>
+ περιγράφονται στη σελίδα του manual. Για ακόμα περισσότερες
+ λεπτομέρειες, υπάρχει τεκμηρίωση σε μορφή HTML. Στο τμήμα αυτό θα
+ περιγράψουμε μερικές μόνο κοινές χρήσεις.</para>
+
+ <para>Για να αναπαράγετε ένα αρχείο, όπως το
+ <filename><replaceable>testfile.avi</replaceable></filename>,
+ μέσω ενός από τα αρκετά video interfaces χρησιμοποιήστε την επιλογή
+ <option>-vo</option>:</para>
+
+ <screen>&prompt.user; <userinput>mplayer -vo xv <replaceable>testfile.avi</replaceable></userinput></screen>
+ <screen>&prompt.user; <userinput>mplayer -vo sdl <replaceable>testfile.avi</replaceable></userinput></screen>
+ <screen>&prompt.user; <userinput>mplayer -vo x11 <replaceable>testfile.avi</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>mplayer -vo dga <replaceable>testfile.avi</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>mplayer -vo 'sdl:dga' <replaceable>testfile.avi</replaceable></userinput></screen>
+
+ <para>Αξίζει τον κόπο να δοκιμάσετε όλες αυτές τις επιλογές, καθώς η
+ απόδοση τους εξαρτάται από πολλούς παράγοντες και διαφοροποιείται
+ αρκετά ανάλογα με το υλικό του υπολογιστή σας.</para>
+
+ <para>Για αναπαραγωγή από DVD, αντικαταστήστε το
+ <filename><replaceable>testfile.avi</replaceable></filename> με
+ <option>dvd://<replaceable>N</replaceable> -dvd-device
+ <replaceable>DEVICE</replaceable></option> όπου το
+ <replaceable>N</replaceable> είναι ο αριθμός του τίτλου
+ (title number) που επιθυμείτε να αναπαράγετε και
+ <filename><replaceable>DEVICE</replaceable></filename> είναι το όνομα
+ συσκευής του DVD-ROM. Για παράδειγμα, για να αναπαράγετε τον τίτλο 3
+ από τη συσκευή <filename>/dev/dvd</filename>:</para>
+
+ <screen>&prompt.root; <userinput>mplayer -vo xv dvd://3 -dvd-device /dev/dvd</userinput></screen>
+
+ <note>
+ <para>Η προεπιλεγμένη συσκευή DVD μπορεί να καθοριστεί κατά τη
+ διάρκεια της μεταγλώττισης του <application>MPlayer</application>
+ port μέσω της επιλογής <makevar>WITH_DVD_DEVICE</makevar>. Από
+ προεπιλογή, η συσκευή αυτή είναι η <filename>/dev/acd0</filename>.
+ Μπορείτε να βρείτε περισσότερες πληροφορίες στο αρχείο
+ <filename>Makefile</filename> του port.</para>
+ </note>
+
+ <para>Για τα πλήκτρα που χρησιμοποιούνται για παύση, διακοπή,
+ μετακίνηση κλπ. κατά τη διάρκεια της αναπαραγωγής, συμβουλευτείτε
+ την βοήθεια που μπορείτε να δείτε εκτελώντας
+ <command>mplayer -h</command> ή διαβάστε τη σελίδα του manual.
+ </para>
+
+ <para>Επιπρόσθετα, σημαντικές επιλογές αναπαραγωγής είναι:
+ <option>-fs -zoom</option> το οποίο ενεργοποιεί απεικόνιση σε πλήρη
+ οθόνη και το <option>-framedrop</option> το οποίο βοηθάει στην
+ αύξηση της απόδοσης.</para>
+
+ <para>Για να μείνει το μέγεθος της γραμμής εντολών το δυνατόν μικρό,
+ ο χρήστης μπορεί να δημιουργήσει ένα αρχείο
+ <filename>.mplayer/config</filename> και να ορίσει εκεί τις
+ προεπιλεγμένες επιλογές:</para>
+<programlisting>vo=xv
+fs=yes
+zoom=yes</programlisting>
+
+ <para>Τέλος, ο <command>mplayer</command> μπορεί να χρησιμοποιηθεί για
+ την εξαγωγή (rip) ενός τίτλου DVD σε ένα αρχείο
+ <filename>.vob</filename> file. Για την εξαγωγή του δεύτερου τίτλου
+ από ένα DVD, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd</userinput></screen>
+
+ <para>Το αρχείο εξόδου, <filename>out.vob</filename>, θα είναι τύπου
+ MPEG και μπορείτε να το μεταχειριστείτε μέσω άλλων πακέτων video που
+ περιγράφονται σε αυτό το τμήμα.</para>
+
+ </sect4>
+ <sect4 id="video-mencoder">
+ <title>mencoder</title>
+ <indexterm>
+ <primary>mencoder</primary>
+ </indexterm>
+
+ <para>Πριν χρησιμοποιήσετε το <command>mencoder</command>
+ είναι καλή ιδέα να εξοικειωθείτε με τις επιλογές που αναφέρονται
+ στην τεκμηρίωση HTML. Υπάρχει σελίδα manual, αλλά δεν είναι πολύ
+ χρήσιμη χωρίς την HTML τεκμηρίωση. Υπάρχουν πάρα πολλοί τρόποι για
+ να βελτιώσετε την ποιότητα, να μειώσετε το ρυθμό δεδομένων (bitrate)
+ να αλλάξετε μορφή αρχείου, και κάποια από αυτά τα κόλπα μπορεί να
+ κάνουν τη διαφορά μεταξύ καλής και κακής απόδοσης. Εδώ θα δείτε
+ μερικά παραδείγματα για να ξεκινήσετε. Πρώτα μια απλή αντιγραφή:
+ </para>
+
+ <screen>&prompt.user; <userinput>mencoder <replaceable>input.avi</replaceable> -oac copy -ovc copy -o <replaceable>output.avi</replaceable></userinput></screen>
+
+ <para>Λανθασμένοι συνδυασμοί στη γραμμή εντολών, μπορεί να δώσουν
+ αρχεία εξόδου τα οποία δεν μπορεί να αναπαράγει ούτε ο ίδιος ο
+ <command>mplayer</command>. Έτσι, αν απλώς θέλετε να κάνετε rip
+ ένα αρχείο, μείνετε στην επιλογή <option>-dumpfile</option> του
+ <command>mplayer</command>.</para>
+
+ <para>Για να μετατρέψετε το
+ <filename><replaceable>input.avi</replaceable></filename> σε codec
+ MPEG4 με ήχο MPEG3 (απαιτείται το <filename
+ role="package">audio/lame</filename>):</para>
+
+ <screen>&prompt.user; <userinput>mencoder <replaceable>input.avi</replaceable> -oac mp3lame -lameopts br=192 \
+ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o <replaceable>output.avi</replaceable></userinput></screen>
+
+ <para>Με τον τρόπο αυτό παράγεται έξοδος που μπορεί να αναπαραχθεί
+ από τον <command>mplayer</command> και το <command>xine</command>.
+ </para>
+
+ <para>Μπορείτε να αντικαταστήσετε το
+ <filename><replaceable>input.avi</replaceable></filename>
+ με την επιλογή <option>dvd://1 -dvd-device /dev/dvd</option> και
+ να το εκτελέσετε ως <username>root</username> για να
+ επανακωδικοποιήσετε απευθείας ένα τίτλο DVD. Μια και πιθανώς
+ δεν θα μείνετε ικανοποιημένος με το αποτέλεσμα από την πρώτη φορά,
+ σας συνιστούμε να κατεβάσετε τον τίτλο σε ένα αρχείο
+ και να δουλέψετε σε αυτό.</para>
+ </sect4>
+
+ </sect3>
+
+ <sect3 id="video-xine">
+ <title>Το Πρόγραμμα Αναπαραγωγής xine</title>
+
+ <para>Το <application>xine</application> είναι ένα project με ευρύ
+ σκοπό, το οποίο προορίζεται όχι μόνο να γίνει ένα πρόγραμμα όλα
+ σε ένα όσο αφορά το video, αλλά επίσης στο να παράγει μια
+ επαναχρησιμοποιήσιμη βασική βιβλιοθήκη και ένα αρθρωτό εκτελέσιμο το
+ οποίο μπορεί να επεκταθεί με πρόσθετα (plugins). Μπορείτε να το
+ εγκαταστήσετε τόσο από πακέτο, όσο και από το port, <filename
+ role="package">multimedia/xine</filename>.</para>
+
+ <para>Το <application>xine</application> είναι ακόμα κάπως
+ χοντροκομμένο, αλλά σίγουρα έχει ξεκινήσει καλά. Στην πράξη, το xine
+ χρειάζεται είτε γρήγορο επεξεργαστή και κάρτα γραφικών, ή υποστήριξη της
+ επέκτασης XVideo. Το γραφικό περιβάλλον είναι χρησιμοποιήσιμο, αλλά
+ κάπως αδέξια φτιαγμένο.</para>
+
+ <para>Την ώρα που γράφονταν αυτές οι γραμμές δεν διανέμονταν module
+ μαζί με την εφαρμογή <application>xine</application>, ικανό να
+ αναπαράγει DVD με CSS κωδικοποίηση. Υπάρχουν εκδόσεις από τρίτους
+ κατασκευαστές οι οποίες έχουν ενσωματωμένο το παραπάνω module αλλά
+ καμιά από αυτές δεν βρίσκεται στην συλλογή των ports του &os;.</para>
+
+ <para>Σε σύγκριση με τον <application>MPlayer</application>, το
+ <application>xine</application> κάνει περισσότερα για το χρήστη, αλλά
+ την ίδια στιγμή, δεν επιτρέπει τόσο λεπτομερειακό έλεγχο. Το
+ <application>xine</application> αποδίδει καλύτερα σε λειτουργία XVideo.
+ </para>
+
+ <para>Από προεπιλογή, το <application>xine</application> θα ξεκινήσει σε
+ γραφικό περιβάλλον (GUI). Μπορείτε να χρησιμοποιήσετε το μενού για να
+ ανοίξετε ένα συγκεκριμένο αρχείο:</para>
+
+ <screen>&prompt.user; <userinput>xine</userinput></screen>
+
+ <para>Εναλλακτικά, μπορείτε να το καλέσετε να αναπαράγει ένα αρχείο
+ απευθείας από την γραμμή εντολών, χωρίς τη χρήση του GUI:</para>
+
+ <screen>&prompt.user; <userinput>xine -g -p <replaceable>mymovie.avi</replaceable></userinput></screen>
+
+ </sect3>
+
+ <sect3 id="video-ports-transcode">
+ <title>Τα Βοηθητικά Προγράμματα transcode</title>
+
+ <para>Η εφαρμογή <application>transcode</application> δεν είναι πρόγραμμα
+ αναπαραγωγής, αλλά μια σουίτα εργαλείων για επανακωδικοποίηση αρχείων
+ video και ήχου. Με την εφαρμογή <application>transcode</application>,
+ έχετε την δυνατότητα να αναμίξετε αρχεία video, να επισκευάσετε
+ χαλασμένα αρχεία, χρησιμοποιώντας εργαλεία της γραμμής εντολών τα οποία
+ χειρίζονται δεδομένα από τα κανάλια <filename>stdin/stdout</filename>.
+ </para>
+
+ <para>Μεγάλο πλήθος εφαρμογών μπορούν να καθοριστούν κατά τη διάρκεια της
+ μεταγλώττισης του port
+ <filename role="package">multimedia/transcode</filename> και συνιστούμε
+ την ακόλουθη γραμμή εντολών για τη μεταγλώττιση του
+ <application>transcode</application>:</para>
+
+ <screen>&prompt.root; <userinput>make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
+WITH_MJPEG=yes -DWITH_XVID=yes</userinput></screen>
+
+ <para>Οι προτεινόμενες επιλογές είναι κατάλληλες για τους περισσότερους
+ χρήστες.</para>
+
+ <para>Για να σας δείξουμε τις ικανότητες του <command>transcode</command>,
+ δείτε ένα παράδειγμα μετατροπής αρχείου DivX σε PAL MPEG-1 (PAL VCD):
+ </para>
+
+ <screen>&prompt.user; <userinput>transcode -i <replaceable>input.avi</replaceable> -V --export_prof vcd-pal -o output_vcd</userinput>
+&prompt.user; <userinput>mplex -f 1 -o <replaceable>output_vcd.mpg output_vcd.m1v output_vcd.mpa</replaceable></userinput></screen>
+
+ <para>Το αρχείο MPEG που προκύπτει, το
+ <filename><replaceable>output_vcd.mpg</replaceable></filename>,
+ μπορεί να αναπαραχθεί από τον
+ <application>MPlayer</application>. Μπορείτε επίσης να γράψετε το
+ αρχείο σε ένα CD-R για να δημιουργήσετε ένα Video CD, και στην περίπτωση
+ αυτή θα χρειαστεί να εγκαταστήσετε τα προγράμματα
+ <filename role="package">multimedia/vcdimager</filename> και
+ <filename role="package">sysutils/cdrdao</filename>.</para>
+
+ <para>Υπάρχει σελίδα manual για το <command>transcode</command>, αλλά
+ πρέπει επίσης να συμβουλευτείτε το
+ <ulink url="http://www.transcoding.org/cgi-bin/transcode">transcode
+ wiki</ulink> για περισσότερες πληροφορίες και παραδείγματα.</para>
+ </sect3>
+
+ </sect2>
+
+ <sect2 id="video-further-reading">
+ <title>Επιπλέον Διάβασμα</title>
+
+ <para>Υπάρχει ραγδαία εξέλιξη στα διαθέσιμα πακέτα video για το &os;.
+ Είναι αρκετά πιθανό ότι στο άμεσο μέλλον πολλά από τα προβλήματα που
+ αναφέρονται εδώ θα έχουν επιλυθεί. Στο ενδιάμεσο διάστημα, όσοι
+ ενδιαφέρονται να χρησιμοποιήσουν τις δυνατότητες A/V του &os; στο έπακρο
+ θα πρέπει να συνδυάσουν γνώσεις από διάφορα FAQ και tutorials και να
+ χρησιμοποιήσουν αρκετές διαφορετικές εφαρμογές. Το τμήμα αυτό υπάρχει
+ ακριβώς για να δείξει στον αναγνώστη που μπορεί να βρει τέτοιες
+ πρόσθετες πληροφορίες.</para>
+
+ <para>Η
+ <ulink url="http://www.mplayerhq.hu/DOCS/">Τεκμηρίωση του Mplayer
+ </ulink> είναι αρκετά πληροφοριακή όσο αφορά το τεχνικό επίπεδο.
+ Αν έχετε σκοπό να αποκτήσετε υψηλό ποσοστό εμπειρίας σε σχέση με το
+ video στο &unix;, θα πρέπει οπωσδήποτε να την συμβουλευτείτε. Η λίστα
+ αλληλογραφίας του <application>MPlayer</application> είναι εχθρική σε
+ όποιον δεν έχει κάνει τον κόπο να διαβάσει την τεκμηρίωση, έτσι αν
+ σκοπεύετε να κάνετε αναφορές σφαλμάτων, βεβαιωθείτε ότι την έχετε
+ διαβάσει.</para>
+
+ <para>Το
+ <ulink
+ url="http://dvd.sourceforge.net/xine-howto/en_GB/html/howto.html">
+ xine HOWTO</ulink>
+ περιέχει ένα κεφάλαιο σχετικά με την βελτίωση της απόδοσης, το οποίο
+ είναι κοινό για όλα τα προγράμματα αναπαραγωγής.</para>
+
+ <para>Τέλος, υπάρχουν κάποιες άλλες πολλά υποσχόμενες εφαρμογές που ίσως
+ επιθυμείτε να δοκιμάσετε:</para>
+
+ <itemizedlist>
+
+ <listitem>
+ <para>Το <ulink
+ url="http://avifile.sourceforge.net/">Avifile</ulink> το οποίο
+ είναι επίσης port,
+ <filename role='package'>multimedia/avifile</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <ulink
+ url="http://www.dtek.chalmers.se/groups/dvd/">Ogle</ulink>
+ το οποίο είναι επίσης port,
+ <filename role='package'>multimedia/ogle</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <ulink url="http://xtheater.sourceforge.net/">Xtheater</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para>Το <filename
+ role="package">multimedia/dvdauthor</filename>, το οποίο είναι
+ εφαρμογή DVD authoring ανοικτού κώδικα.</para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="tvcard">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Josef</firstname>
+ <surname>El-Rayes</surname>
+ <contrib>Αρχική συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Βελτιώθηκε και προσαρμόστηκε από τον </contrib>
+ <!-- 02 January 2004 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Ρύθμιση Κάρτας Τηλεόρασης</title>
+ <indexterm>
+ <primary>TV cards</primary>
+ </indexterm>
+
+ <sect2>
+ <title>Εισαγωγή</title>
+
+ <para>Οι κάρτες τηλεόρασης σας επιτρέπουν να βλέπετε τηλεόραση, κανονική
+ ή καλωδιακή, στον υπολογιστή σας. Οι περισσότερες από αυτές δέχονται
+ επίσης σήμα σύνθετου (composite) video, μέσω εισόδου RCA ή S-video,
+ και κάποιες από αυτές διαθέτουν και ραδιοφωνικό δέκτη FM.</para>
+
+ <para>Το &os; παρέχει υποστήριξη για κάρτες TV τύπου PCI που
+ χρησιμοποιούν τα ολοκληρωμένα κυκλώματα σύλληψης video,
+ Brooktree Bt848/849/878/879 ή Conexant CN-878/Fusion 878a με το
+ πρόγραμμα οδήγησης &man.bktr.4;. Θα πρέπει επίσης να βεβαιωθείτε ότι
+ η κάρτα έρχεται με δέκτη που υποστηρίζεται. Συμβουλευτείτε τη σελίδα
+ manual του &man.bktr.4; για να δείτε τη λίστα των υποστηριζόμενων
+ δεκτών.</para>
+ </sect2>
+
+ <sect2>
+ <title>Εγκαθιστώντας το Πρόγραμμα Οδήγησης</title>
+
+ <para>Για να χρησιμοποιήσετε την κάρτα θα πρέπει να φορτώσετε το
+ πρόγραμμα οδήγησης &man.bktr.4;, προσθέτοντας την ακόλουθη γραμμή στο
+ αρχείο <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>bktr_load="YES"</programlisting>
+
+ <para>Εναλλακτικά, μπορείτε να προσθέσετε στατική υποστήριξη για την
+ κάρτα στο πυρήνα σας, και για το σκοπό αυτό προσθέστε τις ακόλουθες
+ γραμμές στο αρχείο ρυθμίσεων του πυρήνα:</para>
+
+ <programlisting>device bktr
+device iicbus
+device iicbb
+device smbus</programlisting>
+
+ <para>Οι επιπρόσθετοι οδηγοί συσκευών είναι απαραίτητοι, επειδή τα
+ εξαρτήματα της κάρτας επικοινωνούν μεταξύ τους διαμέσου ενός διαύλου
+ I2C. Αφού κάνετε τις απαραίτητες αλλαγές στο αρχείο, μεταγλωττίστε και
+ εγκαταστήστε το νέο πυρήνα.</para>
+
+ <para>Μόλις τελειώσετε με αυτή τη διαδικασία, θα πρέπει να
+ επανεκκινήσετε το σύστημα σας. Κατά τη διάρκεια της εκκίνησης, θα
+ πρέπει να δείτε κάποια μηνύματα από την κάρτα σας, όπως τα παρακάτω:
+ </para>
+
+ <programlisting>bktr0: &lt;BrookTree 848A&gt; mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
+iicbb0: &lt;I2C bit-banging driver&gt; on bti2c0
+iicbus0: &lt;Philips I2C bus&gt; on iicbb0 master-only
+iicbus1: &lt;Philips I2C bus&gt; on iicbb0 master-only
+smbus0: &lt;System Management Bus&gt; on bti2c0
+bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
+
+ <para>Φυσικά, τα μηνύματα αυτά θα διαφέρουν ανάλογα με το υλικό σας.
+ Ωστόσο θα πρέπει να ελέγξετε ότι ανιχνεύθηκε σωστά ο δέκτης. Είναι
+ δυνατόν να αλλάξετε κάποιες από τις παραμέτρους που ανιχνεύθηκαν
+ χρησιμοποιώντας MIBs του &man.sysctl.8; καθώς και επιλογές στο αρχείο
+ ρυθμίσεων πυρήνα. Για παράδειγμα, να θέλετε να επιβάλετε ο δέκτης να
+ είναι τύπου Philips SECAM, θα πρέπει να προσθέσετε την ακόλουθη γραμμή
+ στο αρχείο ρυθμίσεων του πυρήνα σας:</para>
+
+ <programlisting>options OVERRIDE_TUNER=6</programlisting>
+
+ <para>ή μπορείτε να χρησιμοποιήσετε απευθείας το &man.sysctl.8;:</para>
+
+ <screen>&prompt.root; <userinput>sysctl hw.bt848.tuner=6</userinput></screen>
+
+ <para>Δείτε τη σελίδα manual του &man.bktr.4; καθώς και το αρχείο
+ <filename>/usr/src/sys/conf/NOTES</filename> για περισσότερες
+ λεπτομέρειες σχετικά με τις διαθέσιμες επιλογές.</para>
+ </sect2>
+
+ <sect2>
+ <title>Χρήσιμες Εφαρμογές</title>
+
+ <para>Για να χρησιμοποιήσετε την κάρτα τηλεόρασης, θα πρέπει να
+ εγκαταστήσετε μια από τις παρακάτω εφαρμογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το <filename role="package">multimedia/fxtv</filename>
+ παρέχει δυνατότητα να δείτε τηλεόραση σε παράθυρο, καθώς και
+ την δυνατότητα σύλληψης εικόνας / ήχου / video.</para>
+ </listitem>
+ <listitem>
+ <para>Το <filename role="package">multimedia/xawtv</filename>
+ είναι επίσης εφαρμογή τηλεόρασης, με δυνατότητες όμοιες με το
+ <application>fxtv</application>.</para>
+ </listitem>
+ <listitem>
+ <para>Το <filename role="package">misc/alevt</filename>
+ αποκωδικοποιεί και απεικονίζει Videotext/Teletext.</para>
+ </listitem>
+ <listitem>
+ <para>Το <filename role="package">audio/xmradio</filename> είναι μια
+ εφαρμογή για να χρησιμοποιήσετε το δέκτη FM που είναι
+ ενσωματωμένος σε κάποιες κάρτες τηλεόρασης.</para>
+ </listitem>
+ <listitem>
+ <para>Το <filename role="package">audio/wmtune</filename> είναι μια
+ βολική desktop εφαρμογή για ραδιοφωνικούς δέκτες.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μπορείτε να βρείτε περισσότερες εφαρμογές στη συλλογή των Ports
+ του &os;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <para>Αν αντιμετωπίσετε κάποιο πρόβλημα με την κάρτα τηλεόρασης, θα
+ πρέπει πρώτα να ελέγξετε αν το ολοκληρωμένο σύλληψης video καθώς και
+ ο δέκτης υποστηρίζονται από το πρόγραμμα οδήγησης &man.bktr.4; και
+ αν έχετε χρησιμοποιήσει τις σωστές ρυθμίσεις στις επιλογές σας. Για
+ επιπλέον υποστήριξη καθώς και διάφορες ερωτήσεις σχετικά με την κάρτα
+ σας, ίσως θέλετε να επικοινωνήσετε με τη λίστα &a.multimedia.name; και
+ να διαβάσετε τις παλιότερες δημοσιεύσεις από τα αρχεία της λίστας.
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="mythtv">
+ <title>MythTV</title>
+
+ <para>Το MythTV είναι ένα πρόγραμμα τύπου <acronym
+ role="Personal Video Recorder">PVR</acronym> (Προσωπικός καταγραφέας
+ video).</para>
+
+ <para>Στον κόσμο του &linux; το MythTV είναι ένα γνωστό πρόγραμμα με
+ πολλές εξαρτήσεις οι οποίες δυσκολεύουν την εγκατάσταση του.
+ Το port του &os; απλοποιεί το μεγαλύτερο μέρος της διαδικασίας αλλά
+ ορισμένα τμήματα του πρέπει να εγκατασταθούν χειροκίνητα. Η ενότητα
+ αυτή περιέχει οδηγίες που θα σας βοηθήσουν να ρυθμίσετε το
+ MythTV.</para>
+
+ <sect2>
+ <title>Υλικό</title>
+
+ <para>Το MythTV έχει σχεδιαστεί να χρησιμοποιεί το <acronym
+ role="Video for Linux">V4L</acronym> για την πρόσβαση σε συσκευές
+ video όπως κωδικοποιητές (encoders) και δέκτες. Τη δεδομένη στιγμή,
+ το MythTV λειτουργεί καλύτερα με κάρτες DVB-S/C/T με διασύνδεση
+ <acronym role="Universal Serial Bus">USB</acronym> που
+ υποστηρίζονται από το <filename
+ role="package">multimedia/webcamd</filename> καθώς το
+ <application>webcamd</application> παρέχει μια εφαρμογή χρήστη για
+ το <acronym role="Video for Linux">V4L</acronym>. Οποιαδήποτε κάρτα
+ <acronym role="Digital Video Broadcasting">DVB</acronym> που
+ υποστηρίζεται από το <application>webcamd</application> θα πρέπει
+ φυσιολογικά να λειτουργεί με το MythTV. Μπορείτε ωστόσο να βρείτε
+ <ulink url="http://wiki.freebsd.org/WebcamCompat">εδώ</ulink> μια
+ λίστα με δοκιμάσμενες κάρτες. Για κάρτες τις Hauppauge μπορείτε
+ να βρείτε προγράμματα οδήγησης στα πακέτα
+ <filename role="package">multimedia/pvr250</filename>
+ και <filename role="package">multimedia/pvrxxx</filename>, αλλά
+ να έχετε υπόψη σας ότι χρησιμοποιούν μια μη-τυποποιημένη διεπαφή
+ η οποία δεν λειτουργεί με εκδόσεις του MythTV μεταγενέστερες της
+ 0.23.</para>
+
+ <para>Το <ulink url="http://wiki.freebsd.org/HTPC">HTPC</ulink>
+ περιέχει μια λίστα όλων των διαθέσιμων προγραμμάτων οδήγησης
+ <acronym role="Digital Video Broadcasting">DVB</acronym>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Εξαρτήσεις</title>
+
+ <para>Καθώς το MythTV είναι ευέλικτο και αρθρωτό, επιτρέπει στο
+ χρήστη να έχει το frontend και το backend σε διαφορετικά
+ μηχανήματα.</para>
+
+ <para>Για το frontend, απαιτείται το <filename
+ role="package">multimedia/mythtv-frontend</filename> και ο
+ εξυπηρετητής X τον οποίο μπορείτε να βρείτε στο <filename
+ role="package">x11/xorg</filename>. Ιδανικά, ο υπολογιστής που
+ θα εκτελεί το frontend θα πρέπει επίσης να έχει μια κάρτα γραφικών
+ η οποία να υποστηρίζει <acronym
+ role="X-Video Motion Compensation">XvMC</acronym> και προαιρετικά
+ ένα τηλεχειριστήριο συμβατό με <acronym
+ role="Linux Infrared Remote Control">LIRC</acronym>.</para>
+
+ <para>Για το backend, χρειάζεται το <filename
+ role="package">multimedia/mythtv</filename> όπως και μια βάση
+ δεδομένων &mysql; και προαιρετικά ένας δέκτης και αποθηκευτικός
+ χώρος για εγγραφές. Το πακέτο για την &mysql; θα πρέπει να
+ εγκατασταθεί αυτόματα ως εξάρτηση κατά την εγκατάσταση του
+ <filename role="package">multimedia/mythtv</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Εγκατάσταση MythTV</title>
+
+ <para>Για να εγκαταστήσετε το MythTV, χρησιμοποιήστε τα παρακάτω
+ βήματα. Αρχικά εγκαταστήστε το MythTV από την Συλλογή των Ports
+ του &os;:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/multimedia/mythtv</userinput>
+&prompt.root; <userinput>make install</userinput></screen>
+
+ <para>Εγκαταστήστε τη βάση δεδομένων του MythTV:</para>
+
+ <screen>&prompt.root; <userinput>mysql -uroot -p < /usr/local/share/mythtv/database/mc.sql</userinput></screen>
+
+ <para>Ρυθμίστε το backend:</para>
+
+ <screen>&prompt.root; <userinput>mythtv-setup</userinput></screen>
+
+ <para>Ξεκινήστε το backend:</para>
+
+ <screen>&prompt.root; <userinput>echo 'mythbackend_enable="YES"' >> /etc/rc.conf</userinput>
+&prompt.root; <userinput>/usr/local/etc/rc.d/mythbackend start</userinput></screen>
+ </sect2>
+ </sect1>
+
+ <sect1 id="scanners">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ <contrib>Γράφηκε από τον </contrib>
+ <!-- 04 August 2004 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Σαρωτές Εικόνας</title>
+ <indexterm>
+ <primary>image scanners</primary>
+ </indexterm>
+
+ <sect2>
+ <title>Εισαγωγή</title>
+
+ <para>Στο &os; η πρόσβαση σε σαρωτές παρέχεται από το
+ <application>SANE</application> (Scanner Access Now
+ Easy) <acronym role="Application Programming
+ Interface">API</acronym> το οποίο διατίθεται μέσα από την συλλογή των
+ Ports του &os;. Το <application>SANE</application> χρησιμοποιεί επίσης
+ κάποιους οδηγούς συσκευών του &os; για να αποκτήσει πρόσβαση στο υλικό
+ του σαρωτή.</para>
+
+ <para>Το &os; υποστηρίζει σαρωτές SCSI και USB. Βεβαιωθείτε ότι ο
+ σαρωτής σας υποστηρίζεται από το <application>SANE</application> πριν
+ ξεκινήσετε οποιαδήποτε εγκατάσταση και ρύθμιση. Το
+ <application>SANE</application> διαθέτει μια λίστα <ulink
+ url="http://www.sane-project.org/sane-supported-devices.html">
+ υποστηριζόμενων συσκευών</ulink> η οποία παρέχει πληροφορίες για την
+ υποστήριξη κάθε σαρωτή και την εξέλιξη της. Σε συστήματα πριν το
+ &os;&nbsp;8.X θα βρείτε επίσης τη λίστα των υποστηριζόμενων USB
+ σαρωτών στη σελίδα manual του &man.uscanner.4;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του Πυρήνα</title>
+
+ <para>Όπως είπαμε παραπάνω, υποστηρίζονται σαρωτές τόσο SCSI όσο και
+ USB. Ανάλογα με το τρόπο διασύνδεσης του σαρωτή σας, θα χρειαστείτε
+ διαφορετικούς οδηγούς συσκευών.</para>
+
+ <sect3 id="scanners-kernel-usb">
+ <title>Διασύνδεση USB</title>
+
+ <para>Ο πυρήνας <filename>GENERIC</filename>, από προεπιλογή, περιέχει
+ τους οδηγούς συσκευών που απαιτούνται για την υποστήριξη σαρωτών
+ USB. Αν αποφασίσετε να χρησιμοποιήσετε εξειδικευμένο πυρήνα,
+ βεβαιωθείτε ότι έχετε τις ακόλουθες γραμμές στο αρχείο ρυθμίσεων
+ σας:</para>
+
+ <programlisting>device usb
+device uhci
+device ohci
+device ehci</programlisting>
+
+ <para>Σε συστήματα πριν το &os;&nbsp;8.X, θα χρειαστείτε επίσης
+ την παρακάτω γραμμή:</para>
+
+ <programlisting>device uscanner</programlisting>
+
+ <para>Σε αυτές τις εκδόσεις του &os;, η υποστήριξη των σαρωτών
+ USB γίνεται μέσω της συσκευής &man.uscanner.4;. Από το
+ &os;&nbsp;8.0 και μετά, η υποστήριξη αυτή παρέχεται απευθείας από
+ τη βιβλιοθήκη &man.libusb.3;.</para>
+
+ <para>Αφού επανεκκινήσετε με το σωστό πυρήνα, συνδέστε το USB σαρωτή
+ σας. Θα πρέπει να δείτε μια γραμμή σχετική με την ανίχνευση του
+ σαρωτή στην προσωρινή μνήμη μηνυμάτων του συστήματος
+ (&man.dmesg.8;):</para>
+
+ <screen>ugen0.2: &lt;EPSON&gt; at usbus0</screen>
+
+ <para>ή σε ένα σύστημα &os;&nbsp;7.X:</para>
+
+ <screen>uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2</screen>
+
+ <para>Τα μηνύματα αυτά δείχνουν ότι ο σαρωτής μας χρησιμοποιεί την
+ συσκευή <filename>/dev/ugen0.2</filename> ή την συσκευή
+ <filename>/dev/uscanner0</filename> ανάλογα με την έκδοση του
+ &os; που χρησιμοποιείται. Στο παράδειγμα μας, χρησιμοποιήσαμε ένα
+ σαρωτή &epson.perfection;&nbsp;1650 USB.</para>
+ </sect3>
+
+ <sect3>
+ <title>Διασύνδεση Τύπου SCSI</title>
+
+ <para>Αν ο σαρωτής σας έρχεται με διασύνδεση τύπου SCSI, είναι
+ σημαντικό να γνωρίζετε τι κάρτα ελεγκτή SCSI θα χρησιμοποιήσετε.
+ Ανάλογα με το ολοκληρωμένο κύκλωμα της κάρτας SCSI που
+ χρησιμοποιείται, θα πρέπει να ρυθμίσετε κατάλληλα το αρχείο
+ ρυθμίσεων πυρήνα. Ο πυρήνας <filename>GENERIC</filename> υποστηρίζει
+ τους πιο κοινούς ελεγκτές SCSI. Βεβαιωθείτε ότι διαβάσατε το αρχείο
+ <filename>NOTES</filename> και προσθέστε τη σωστή γραμμή στο αρχείο
+ ρυθμίσεων πυρήνα. Εκτός από το πρόγραμμα οδήγησης του ελεγκτή SCSI,
+ θα πρέπει ακόμα να έχετε τις ακόλουθες γραμμές στο αρχείο ρυθμίσεων
+ του πυρήνα σας:</para>
+
+ <programlisting>device scbus
+device pass</programlisting>
+
+ <para>Μόλις μεταγλωττίσετε και εγκαταστήσετε τον πυρήνα, θα μπορέσετε
+ να δείτε τις συσκευές στην προσωρινή μνήμη μηνυμάτων συστήματος,
+ κατά τη διάρκεια της εκκίνησης:</para>
+
+ <screen>pass2 at aic0 bus 0 target 2 lun 0
+pass2: &lt;AGFA SNAPSCAN 600 1.10&gt; Fixed Scanner SCSI-2 device
+pass2: 3.300MB/s transfers</screen>
+
+ <para>Αν ο σαρωτής σας δεν ήταν ενεργοποιημένος κατά την εκκίνηση του
+ συστήματος σας, είναι ακόμα δυνατόν να εξαναγκάσετε τον εντοπισμό
+ του, εκτελώντας ανίχνευση του διαύλου SCSI με την βοήθεια της
+ εντολής &man.camcontrol.8;:</para>
+
+ <screen>&prompt.root; <userinput>camcontrol rescan all</userinput>
+Re-scan of bus 0 was successful
+Re-scan of bus 1 was successful
+Re-scan of bus 2 was successful
+Re-scan of bus 3 was successful</screen>
+
+ <para>Ο σαρωτής θα εμφανιστεί τότε στη λίστα των συσκευών SCSI:</para>
+
+ <screen>&prompt.root; <userinput>camcontrol devlist</userinput>
+&lt;IBM DDRS-34560 S97B&gt; at scbus0 target 5 lun 0 (pass0,da0)
+&lt;IBM DDRS-34560 S97B&gt; at scbus0 target 6 lun 0 (pass1,da1)
+&lt;AGFA SNAPSCAN 600 1.10&gt; at scbus1 target 2 lun 0 (pass3)
+&lt;PHILIPS CDD3610 CD-R/RW 1.00&gt; at scbus2 target 0 lun 0 (pass2,cd0)</screen>
+
+ <para>Περισσότερες πληροφορίες σχετικά με τις συσκευές SCSI είναι
+ διαθέσιμες στις σελίδες manual &man.scsi.4; και &man.camcontrol.8;.
+ </para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του SANE</title>
+
+ <para>Το σύστημα <application>SANE</application> χωρίζεται σε δύο
+ κομμάτια: στο backend
+ (<filename role="package">graphics/sane-backends</filename>) και στο
+ frontend
+ (<filename role="package">graphics/sane-frontends</filename>). Το
+ backend παρέχει πρόσβαση στον ίδιο το σαρωτή. Στη λίστα
+ <ulink url="http://www.sane-project.org/sane-supported-devices.html">
+ υποστηριζόμενων συσκευών</ulink> του <application>SANE</application>
+ μπορείτε να βρείτε ποιο backend υποστηρίζει τον σαρωτή σας. Είναι
+ υποχρεωτικό να βρείτε το σωστό backend για να μπορέσετε να
+ χρησιμοποιήσετε το σαρωτή σας. Το τμήμα του frontend παρέχει το
+ γραφικό περιβάλλον εργασίας για τη σάρωση
+ (<application>xscanimage</application>).</para>
+
+ <para>Το πρώτο βήμα είναι να εγκαταστήσετε το port ή το πακέτο
+ <filename role="package">graphics/sane-backends</filename>. Μετά
+ χρησιμοποιήστε την εντολή <command>sane-find-scanner</command> για να
+ ελέγξετε την ανίχνευση του σαρωτή σας από το σύστημα
+ <application>SANE</application>:</para>
+
+ <screen>&prompt.root; <userinput>sane-find-scanner -q</userinput>
+found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3</screen>
+
+ <para>Η έξοδος θα σας δείξει το είδος σύνδεσης του σαρωτή καθώς και το
+ όνομα συσκευής που χρησιμοποιείται για τη σύνδεση με το σύστημα σας.
+ Το όνομα του κατασκευαστή και του μοντέλου ίσως να μην εμφανιστούν,
+ αλλά αυτό δεν είναι σημαντικό.</para>
+
+ <note>
+ <para>Ορισμένοι USB σαρωτές απαιτούν τη φόρτωση firmware. Η διαδικασία
+ εξηγείται στη σελίδα manual του backend. Θα πρέπει επίσης να
+ διαβάσετε τις σελίδες manual &man.sane-find-scanner.1; και
+ &man.sane.7;.</para>
+ </note>
+
+ <para>Πρέπει τώρα να ελέγξουμε αν ο σαρωτής θα αναγνωριστεί από το
+ frontend πρόγραμμα σάρωσης. Από προεπιλογή, το
+ <application>SANE</application> backend έρχεται με ένα εργαλείο
+ γραμμής εντολών, το &man.scanimage.1;. Η εντολή αυτή σας επιτρέπει
+ την απαρίθμηση των συσκευών και τη σάρωσης εικόνας από τη γραμμή
+ εντολών. Η επιλογή <option>-L</option> χρησιμοποιείται για την
+ απαρίθμηση των συσκευών σάρωσης:</para>
+
+ <screen>&prompt.root; <userinput>scanimage -L</userinput>
+device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scanner</screen>
+
+ <para>Ή για παράδειγμα με τον σαρωτή που χρησιμοποιήσαμε στο <xref
+ linkend="scanners-kernel-usb">:</para>
+
+ <screen>&prompt.root; <userinput>scanimage -L</userinput>
+device 'epson2:libusb:/dev/usb:/dev/ugen0.2' is a Epson GT-8200 flatbed scanner</screen>
+
+ <para>Η παραπάνω έξοδος προέρχεται από ένα σύστημα &os;&nbsp;8.X και
+ η γραμμή <literal>'epson2:libusb:/dev/usb:/dev/ugen0.2'</literal>
+ μας πληροφορεί για το όνομα του backend (<literal>epson2</literal>)
+ και το όνομα της συσκευής (<literal>/dev/ugen0.2</literal>) που
+ χρησιμοποιεί ο σαρωτής μας.</para>
+
+ <note>
+ <para>Αν δεν δείτε έξοδο, ή δείτε ένα μήνυμα ότι δεν ανιχνεύθηκε
+ σαρωτής, σημαίνει ότι το &man.scanimage.1; δεν μπόρεσε να
+ αναγνωρίσει το σαρωτή. Αν συμβεί αυτό, θα χρειαστεί να
+ επεξεργαστείτε το αρχείο ρυθμίσεων του backend και να ορίσετε το
+ σαρωτή που θα χρησιμοποιηθεί. Ο κατάλογος
+ <filename class="directory">/usr/local/etc/sane.d/</filename>
+ περιέχει όλα τα αρχεία ρυθμίσεων του backend. Το πρόβλημα
+ αναγνώρισης εμφανίζεται σε ορισμένα μοντέλα USB σαρωτών.</para>
+
+ <para>Για παράδειγμα, με το σαρωτή USB που χρησιμοποιείται στο
+ <xref linkend="scanners-kernel-usb">, η εντολή
+ <command>sane-find-scanner</command> δίνει τις ακόλουθες
+ πληροφορίες:</para>
+
+ <screen>&prompt.root; <userinput>sane-find-scanner -q</userinput>
+found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0</screen>
+
+ <para>Ο σαρωτής βρέθηκε, χρησιμοποιεί διασύνδεση USB και το όνομα
+ συσκευής του είναι <filename>/dev/uscanner0</filename>.
+ Τώρα πρέπει να δούμε αν αναγνωρίζεται και σωστά:</para>
+
+ <screen>&prompt.root; <userinput>scanimage -L</userinput>
+
+No scanners were identified. If you were expecting something different,
+check that the scanner is plugged in, turned on and detected by the
+sane-find-scanner tool (if appropriate). Please read the documentation
+which came with this software (README, FAQ, manpages).</screen>
+
+ <para>Αφού ο σαρωτής δεν αναγνωρίστηκε, θα χρειαστεί να
+ επεξεργαστούμε το αρχείο
+ <filename>/usr/local/etc/sane.d/epson2.conf</filename>. Το μοντέλο
+ σαρωτή που χρησιμοποιήθηκε ήταν το &epson.perfection;&nbsp;1650,
+ έτσι ξέρουμε ότι ο σαρωτής θα χρησιμοποιεί το backend
+ <literal>epson2</literal>. Βεβαιωθείτε ότι διαβάσατε τα βοηθητικά
+ σχόλια στα αρχεία ρυθμίσεων του backend. Είναι αρκετά απλό να
+ αλλάξετε γραμμές: Μετατρέψτε σε σχόλια όσες γραμμές δείχνουν λάθος
+ τύπο διασύνδεσης για το σαρωτή σας (στην περίπτωση μας θα
+ μετατρέψουμε σε σχόλια όλες τις γραμμές που ξεκινάνε με τη λέξη
+ <literal>scsi</literal> καθώς ο σαρωτής μας χρησιμοποιεί διασύνδεση
+ USB), και προσθέστε στο τέλος του αρχείου μια γραμμή που να ορίζει
+ το είδος διασύνδεσης και το όνομα συσκευής που χρησιμοποιείτε. Στην
+ περίπτωση μας προσθέσαμε την ακόλουθη γραμμή:</para>
+
+ <programlisting>usb /dev/uscanner0</programlisting>
+
+ <para>Σας παρακαλούμε να βεβαιωθείτε ότι διαβάσατε τα σχόλια που
+ παρέχονται στο αρχείο ρυθμίσεων του backend καθώς και στις
+ αντίστοιχες σελίδες manual για περισσότερες λεπτομέρειες καθώς και
+ για τη σύνταξη που πρέπει να χρησιμοποιήσετε. Μπορούμε τώρα να
+ επιβεβαιώσουμε ότι ο σαρωτής αναγνωρίζεται:</para>
+
+ <screen>&prompt.root; <userinput>scanimage -L</userinput>
+device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scanner</screen>
+
+ <para>Ο USB σαρωτής μας αναγνωρίστηκε. Δεν είναι σημαντικό ότι η
+ μάρκα και το μοντέλο δεν ταιριάζουν ακριβώς με το δικό μας.
+ Το βασικό σημείο είναι το πεδίο
+ <literal>`epson:/dev/uscanner0'</literal>, το οποίο δείχνει το
+ σωστό backend και όνομα συσκευής.</para>
+ </note>
+
+ <para>Μόλις η εντολή <command>scanimage -L</command> μπορέσει να δει το
+ σαρωτή, η ρύθμιση έχει ολοκληρωθεί. Η συσκευή είναι έτοιμη να
+ χρησιμοποιηθεί.</para>
+
+ <para>Αν και η &man.scanimage.1; μας επιτρέπει να σαρώσουμε εικόνα από
+ τη γραμμή εντολών, είναι προτιμότερο να χρησιμοποιήσουμε κάποιο
+ πρόγραμμα σε γραφικό περιβάλλον για την εργασία αυτή. Το
+ <application>SANE</application> μας προσφέρει ένα απλό αλλά αποδοτικό
+ γραφικό περιβάλλον: το <application>xscanimage</application>
+ (<filename role="package">graphics/sane-frontends</filename>).</para>
+
+ <para>Το <application>Xsane</application> (<filename
+ role="package">graphics/xsane</filename>) είναι επίσης ένα δημοφιλές
+ frontend πρόγραμμα σάρωσης. To frontend αυτό προσφέρει προχωρημένες
+ δυνατότητες, όπως διαφορετικούς τρόπους σάρωσης (φωτοτυπία, fax, κλπ)
+ διόρθωση χρωμάτων, πολλαπλή σάρωση κ.α. Και οι δύο αυτές εφαρμογές
+ διατίθενται επίσης σαν πρόσθετο (plugin) πρόγραμμα για χρήση με το
+ <application>GIMP</application>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Δίνοντας σε Άλλους Χρήστες Πρόσβαση στο Σαρωτή σας</title>
+
+ <para>Όλες οι παραπάνω λειτουργίες έγιναν με τα προνόμια του χρήστη
+ <username>root</username>. Μπορεί ωστόσο, να θέλετε να δώσετε πρόσβαση
+ στο σαρωτή σας και σε άλλους χρήστες. Ο χρήστης χρειάζεται άδεια
+ ανάγνωσης και εγγραφής στο αρχείο συσκευής που χρησιμοποιείται από το
+ σαρωτή. Σαν παράδειγμα, ο σαρωτής μας χρησιμοποιεί το αρχείο συσκευής
+ <filename>/dev/ugen0.2</filename> το οποίο στην πραγματικότητα είναι
+ ένας συμβολικός δεσμός προς το πραγματικό αρχείο συσκευής, το
+ <filename>/dev/usb/0.2.0</filename> (μπορείτε να το επιβεβαιώσετε
+ εύκολα με μια ματιά στον κατάλογο <filename
+ class="directory">/dev</filename>). Τόσο ο συμβολικός δεσμός όσο
+ και το αρχείο συσκευής ανήκουν στις ομάδες
+ <groupname>wheel</groupname> και <groupname>operator</groupname>.
+ Αν προσθέσουμε το χρήστη
+ <username><replaceable>joe</replaceable></username> σε αυτές τις
+ ομάδες, θα μπορεί να χρησιμοποιήσει το σαρωτή. Για λόγους ασφαλείας
+ όμως θα πρέπει να είμαστε ιδιαίτερα προσεκτικοί όταν προσθέτουμε
+ ένα χρήστη σε μια ομάδα, ειδικά αν πρόκειται για την
+ <groupname>wheel</groupname>. Μια καλύτερη λύση θα ήταν να
+ δημιουργήσουμε μια ομάδα ειδικά για τη χρήση των συσκευών
+ USB, και να επιτρέψουμε πρόσβαση στον σαρωτή στα μέλη της ομάδας
+ αυτής.</para>
+
+ <para>Για παράδειγμα, θα χρησιμοποιήσουμε μια ομάδα με το όνομα
+ <groupname><replaceable>usb</replaceable></groupname>. Το πρώτο
+ βήμα είναι η δημιουργία αυτής της ομάδας με τη βοήθεια της εντολής
+ &man.pw.8;:</para>
+
+ <screen>&prompt.root; <userinput>pw groupadd usb</userinput></screen>
+
+ <para>Θα πρέπει έπειτα να αλλάξουμε τα δικαιώματα του συμβολικού
+ δεσμού <filename>/dev/ugen0.2</filename> και του αρχείου συσκευής
+ <filename>/dev/ugen0.2.0</filename> ώστε να είναι προσβάσιμα από
+ την ομάδα <groupname>usb</groupname> με δυνατότητα εγγραφής
+ (δικαιώματα <literal>0660</literal> ή <literal>0664</literal>).
+ Από προεπιλογή, μόνο ο ιδιοκτήτης αυτών των αρχείων
+ (ο <username>root</username>) έχει τα απαραίτητα δικαιώματα εγγραφής.
+ Όλα τα παραπάνω μπορούν να γίνουν με τις παρακάτω γραμμές στο αρχείο
+ <filename>/etc/devfs.rules</filename>:</para>
+
+ <programlisting>[system=5]
+add path ugen0.2 mode 660 group usb
+add path usb/0.2.0 mode 0660 group usb</programlisting>
+
+ <para>Οι χρήστες του &os;&nbsp;7.X θα χρειαστούν τις παρακάτω
+ γραμμές, με το σωστό αρχείο συσκευής (τις περισσότερες φορές θα
+ είναι το <filename>/dev/uscanner0</filename>):</para>
+
+ <programlisting>[system=5]
+add path uscanner0 mode 0660 group usb</programlisting>
+
+ <para>Έπειτα, προσθέστε την ακόλουθη γραμμή στο αρχείο
+ <filename>/etc/rc.conf</filename> και επανεκκινήστε το μηχάνημα:
+ </para>
+
+ <programlisting>devfs_system_ruleset="system"</programlisting>
+
+ <para>Περισσότερες πληροφορίες σχετικά με αυτές τις γραμμές, μπορείτε να
+ βρείτε στη σελίδα manual του &man.devfs.8;.</para>
+
+ <para>Έπειτα από τα παραπάνω βήματα, για να δώσετε πρόσβαση στο USB
+ σαρωτή σε κάποιο χρήστη, αρκεί να προσθέσετε το λογαριασμό του στην
+ ομάδα <groupname><replaceable>usb</replaceable></groupname>:</para>
+
+ <screen>&prompt.root; <userinput>pw groupmod usb -m <replaceable>joe</replaceable></userinput></screen>
+
+ <para>Για περισσότερες λεπτομέρειες, διαβάστε τη σελίδα manual του
+ &man.pw.8;.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/network-servers/chapter.sgml b/el_GR.ISO8859-7/books/handbook/network-servers/chapter.sgml
new file mode 100644
index 0000000000..d5683302d4
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/network-servers/chapter.sgml
@@ -0,0 +1,4894 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Εξυπηρετητές Δικτύου
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/network-servers/chapter.sgml
+ %SRCID% 1.1
+
+-->
+
+<chapter id="network-servers">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <contrib>Αναδιοργανώθηκε από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- 23 July 2004 -->
+ </chapterinfo>
+
+ <title>Εξυπηρετητές Δικτύου</title>
+
+ <sect1 id="network-servers-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το κεφάλαιο αυτό καλύπτει ορισμένες από τις πιο συχνά
+ χρησιμοποιούμενες δικτυακές υπηρεσίες των συστημάτων &unix;. Θα
+ παρουσιάσουμε την εγκατάσταση, ρύθμιση, έλεγχο και συντήρηση πολλών
+ διαφορετικών τύπων δικτυακών υπηρεσιών. Σε όλο το κεφάλαιο, για τη
+ δική σας διευκόλυνση, υπάρχουν παραδείγματα διαφόρων αρχείων ρυθμίσεων.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να διαχειρίζεστε την υπηρεσία <application>inetd</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε ένα δικτυακό σύστημα αρχείων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε ένα εξυπηρετητή δικτυακών πληροφοριών για το
+ διαμοιρασμό λογαριασμών χρηστών.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε το DHCP για την αυτόματη ρύθμιση των
+ παραμέτρων του δικτύου.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε ένα εξυπηρετητή ονομασίας περιοχών (DNS).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε τον εξυπηρετητή
+ ιστοσελίδων <application>Apache</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε ένα εξυπηρετητή μεταφοράς αρχείων (FTP).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε ένα εξυπηρετητή αρχείων και εκτυπωτών για
+ πελάτες &windows; με χρήση της εφαρμογής <application>Samba</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να συγχρονίσετε την ημερομηνία και την ώρα, και να ρυθμίσετε
+ ένα εξυπηρετητή ώρας με τη βοήθεια του NTP πρωτοκόλλου.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε τις βασικές έννοιες των αρχείων script
+ <filename>/etc/rc</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να είστε εξοικειωμένοι με τη βασική ορολογία των δικτύων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου
+ κατασκευαστή (<xref linkend="ports">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="network-inetd">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <contrib>Updated for &os; 6.1-RELEASE by </contrib>
+ <othername>The &os; Documentation Project</othername>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>The <application>inetd</application> <quote>Super-Server</quote></title>
+
+ <sect2 id="network-inetd-overview">
+ <title>Overview</title>
+
+ <para>&man.inetd.8; is sometimes referred to as the <quote>Internet
+ Super-Server</quote> because it manages connections for
+ several services. When a
+ connection is received by <application>inetd</application>, it
+ determines which program the connection is destined for, spawns
+ the particular process and delegates the socket to it (the program
+ is invoked with the service socket as its standard input, output
+ and error descriptors). Running
+ <application>inetd</application> for servers that are not heavily used can reduce the
+ overall system load, when compared to running each daemon
+ individually in stand-alone mode.</para>
+
+ <para>Primarily, <application>inetd</application> is used to
+ spawn other daemons, but several trivial protocols are handled
+ directly, such as <application>chargen</application>,
+ <application>auth</application>, and
+ <application>daytime</application>.</para>
+
+ <para>This section will cover the basics in configuring
+ <application>inetd</application> through its command-line
+ options and its configuration file,
+ <filename>/etc/inetd.conf</filename>.</para>
+ </sect2>
+
+ <sect2 id="network-inetd-settings">
+ <title>Settings</title>
+
+ <para><application>inetd</application> is initialized through
+ the &man.rc.8; system. The
+ <literal>inetd_enable</literal> option is set to
+ <literal>NO</literal> by default, but may be turned on
+ by <application>sysinstall</application> during installation,
+ depending on the configuration chosen by the user.
+ Placing:
+ <programlisting>inetd_enable="YES"</programlisting> or
+ <programlisting>inetd_enable="NO"</programlisting> into
+ <filename>/etc/rc.conf</filename> will enable or disable
+ <application>inetd</application> starting at boot time.
+ The command:
+ <programlisting>/etc/rc.d/inetd rcvar</programlisting>
+ can be run to display the current effective setting.</para>
+
+ <para>Additionally, different command-line options can be passed
+ to <application>inetd</application> via the
+ <literal>inetd_flags</literal> option.</para>
+ </sect2>
+
+ <sect2 id="network-inetd-cmdline">
+ <title>Command-Line Options</title>
+
+ <para>Like most server daemons, <application>inetd</application>
+ has a number of options that it can be passed in order to
+ modify its behaviour. The full list of options reads:</para>
+
+ <para><command>inetd</command> <option>[-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname]
+ [-p filename] [-R rate] [-s maximum] [configuration file]</option></para>
+
+ <para>Options can be passed to <application>inetd</application> using the
+ <literal>inetd_flags</literal> option in
+ <filename>/etc/rc.conf</filename>. By default,
+ <literal>inetd_flags</literal> is set to
+ <literal>-wW -C 60</literal>, which turns on TCP wrapping for
+ <application>inetd</application>'s services, and prevents any
+ single IP address from requesting any service more than 60 times
+ in any given minute.</para>
+
+ <para>Novice users may be pleased to note that
+ these parameters usually do not need to be modified,
+ although we mention the rate-limiting options below as
+ they be useful should you find that you are receiving an
+ excessive amount of connections. A full list of options
+ can be found in the &man.inetd.8; manual.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>-c maximum</term>
+
+ <listitem>
+ <para>Specify the default maximum number of simultaneous
+ invocations of each service; the default is unlimited.
+ May be overridden on a per-service basis with the
+ <option>max-child</option> parameter.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-C rate</term>
+
+ <listitem>
+ <para>Specify the default maximum number of times a
+ service can be invoked from a single IP address in one
+ minute; the default is unlimited. May be overridden on a
+ per-service basis with the
+ <option>max-connections-per-ip-per-minute</option>
+ parameter.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-R rate</term>
+
+ <listitem>
+ <para>Specify the maximum number of times a service can be
+ invoked in one minute; the default is 256. A rate of 0
+ allows an unlimited number of invocations.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-s maximum</term>
+
+ <listitem>
+ <para>Specify the maximum number of times a service can be
+ invoked from a single IP address at any one time; the
+ default is unlimited. May be overridden on a per-service
+ basis with the <option>max-child-per-ip</option>
+ parameter.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="network-inetd-conf">
+ <!-- XXX This section isn't very clear, and could do with some lovin' -->
+ <title><filename>inetd.conf</filename></title>
+
+ <para>Configuration of <application>inetd</application> is
+ done via the file <filename>/etc/inetd.conf</filename>.</para>
+
+ <para>When a modification is made to
+ <filename>/etc/inetd.conf</filename>,
+ <application>inetd</application> can be forced to re-read its
+ configuration file by running the command:</para>
+
+ <example id="network-inetd-reread">
+ <title>Reloading the <application>inetd</application>
+ configuration file</title>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/inetd reload</userinput></screen>
+ </example>
+
+ <para>Each line of the configuration file specifies an
+ individual daemon. Comments in the file are preceded by a
+ <quote>#</quote>. The format of each entry in
+ <filename>/etc/inetd.conf</filename> is as follows:</para>
+
+ <programlisting>service-name
+socket-type
+protocol
+{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
+user[:group][/login-class]
+server-program
+server-program-arguments</programlisting>
+
+ <para>An example entry for the &man.ftpd.8; daemon
+ using IPv4 might read:</para>
+
+ <programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
+
+ <variablelist>
+ <varlistentry>
+ <term>service-name</term>
+
+ <listitem>
+ <para>This is the service name of the particular daemon.
+ It must correspond to a service listed in
+ <filename>/etc/services</filename>. This determines
+ which port <application>inetd</application> must listen
+ to. If a new service is being created, it must be
+ placed in <filename>/etc/services</filename>
+ first.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>socket-type</term>
+
+ <listitem>
+ <para>Either <literal>stream</literal>,
+ <literal>dgram</literal>, <literal>raw</literal>, or
+ <literal>seqpacket</literal>. <literal>stream</literal>
+ must be used for connection-based, TCP daemons, while
+ <literal>dgram</literal> is used for daemons utilizing
+ the <acronym>UDP</acronym> transport protocol.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>protocol</term>
+
+ <listitem>
+ <para>One of the following:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Protocol</entry>
+ <entry>Explanation</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>tcp, tcp4</entry>
+ <entry>TCP IPv4</entry>
+ </row>
+ <row>
+ <entry>udp, udp4</entry>
+ <entry>UDP IPv4</entry>
+ </row>
+ <row>
+ <entry>tcp6</entry>
+ <entry>TCP IPv6</entry>
+ </row>
+ <row>
+ <entry>udp6</entry>
+ <entry>UDP IPv6</entry>
+ </row>
+ <row>
+ <entry>tcp46</entry>
+ <entry>Both TCP IPv4 and v6</entry>
+ </row>
+ <row>
+ <entry>udp46</entry>
+ <entry>Both UDP IPv4 and v6</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]</term>
+
+ <listitem>
+ <para><option>wait|nowait</option> indicates whether the
+ daemon invoked from <application>inetd</application> is
+ able to handle its own socket or not.
+ <option>dgram</option> socket types must use the
+ <option>wait</option> option, while stream socket
+ daemons, which are usually multi-threaded, should use
+ <option>nowait</option>. <option>wait</option> usually
+ hands off multiple sockets to a single daemon, while
+ <option>nowait</option> spawns a child daemon for each
+ new socket.</para>
+
+ <para>The maximum number of child daemons
+ <application>inetd</application> may spawn can be set
+ using the <option>max-child</option> option. If a limit
+ of ten instances of a particular daemon is needed, a
+ <literal>/10</literal> would be placed after
+ <option>nowait</option>. Specifying <literal>/0</literal>
+ allows an unlimited number of children</para>
+
+ <para>In addition to <option>max-child</option>, two other
+ options which limit the maximum connections from a single
+ place to a particular daemon can be enabled.
+ <option>max-connections-per-ip-per-minute</option> limits
+ the number of connections from any particular IP address
+ per minutes, e.g. a value of ten would limit any particular
+ IP address connecting to a particular service to ten
+ attempts per minute. <option>max-child-per-ip</option>
+ limits the number of children that can be started on
+ behalf on any single IP address at any moment. These
+ options are useful to prevent intentional or unintentional
+ excessive resource consumption and Denial of Service (DoS)
+ attacks to a machine.</para>
+
+ <para>In this field, either of <option>wait</option> or
+ <option>nowait</option> is mandatory.
+ <option>max-child</option>,
+ <option>max-connections-per-ip-per-minute</option> and
+ <option>max-child-per-ip</option> are
+ optional.</para>
+
+ <para>A stream-type multi-threaded daemon without any
+ <option>max-child</option>,
+ <option>max-connections-per-ip-per-minute</option> or
+ <option>max-child-per-ip</option> limits
+ would simply be: <literal>nowait</literal>.</para>
+
+ <para>The same daemon with a maximum limit of ten daemons
+ would read: <literal>nowait/10</literal>.</para>
+
+ <para>The same setup with a limit of twenty
+ connections per IP address per minute and a maximum
+ total limit of ten child daemons would read:
+ <literal>nowait/10/20</literal>.</para>
+
+ <para>These options are utilized by the default
+ settings of the &man.fingerd.8; daemon,
+ as seen here:</para>
+
+ <programlisting>finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s</programlisting>
+
+ <para>Finally, an example of this field with a maximum of
+ 100 children in total, with a maximum of 5 for any one
+ IP address would read:
+ <literal>nowait/100/0/5</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>user</term>
+
+ <listitem>
+ <para>This is the username that the particular daemon
+ should run as. Most commonly, daemons run as the
+ <username>root</username> user. For security purposes, it is
+ common to find some servers running as the
+ <username>daemon</username> user, or the least privileged
+ <username>nobody</username> user.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>server-program</term>
+
+ <listitem>
+ <para>The full path of the daemon to be executed when a
+ connection is received. If the daemon is a service
+ provided by <application>inetd</application> internally,
+ then <option>internal</option> should be
+ used.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>server-program-arguments</term>
+
+ <listitem>
+ <para>This works in conjunction with
+ <option>server-program</option> by specifying the
+ arguments, starting with <literal>argv[0]</literal>,
+ passed to the daemon on invocation. If
+ <command>mydaemon -d</command> is the command line,
+ <literal>mydaemon -d</literal> would be the value of
+ <option>server-program-arguments</option>. Again, if
+ the daemon is an internal service, use
+ <option>internal</option> here.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect2>
+
+ <sect2 id="network-inetd-security">
+ <title>Security</title>
+
+ <para>Depending on the choices made at install time, many
+ of <application>inetd</application>'s services may be enabled
+ by default. If there is no apparent need for a particular
+ daemon, consider disabling it. Place a <quote>#</quote> in front of the
+ daemon in question in <filename>/etc/inetd.conf</filename>,
+ and then <link linkend="network-inetd-reread">reload the
+ inetd configuration</link>. Some daemons, such as
+ <application>fingerd</application>, may not be desired at all
+ because they provide
+ information that may be useful to an attacker.</para>
+
+ <para>Some daemons are not security-conscious and have long, or
+ non-existent, timeouts for connection attempts. This allows an
+ attacker to slowly send connections to a particular daemon,
+ thus saturating available resources. It may be a good idea to
+ place <option>max-connections-per-ip-per-minute</option>,
+ <option>max-child</option> or <option>max-child-per-ip</option> limitations on certain
+ daemons if you find that you have too many connections.</para>
+
+ <para>By default, TCP wrapping is turned on. Consult the
+ &man.hosts.access.5; manual page for more information on placing
+ TCP restrictions on various <application>inetd</application>
+ invoked daemons.</para>
+ </sect2>
+
+ <sect2 id="network-inetd-misc">
+ <title>Miscellaneous</title>
+
+ <para><application>daytime</application>,
+ <application>time</application>,
+ <application>echo</application>,
+ <application>discard</application>,
+ <application>chargen</application>, and
+ <application>auth</application> are all internally provided
+ services of <application>inetd</application>.</para>
+
+ <para>The <application>auth</application> service provides
+ identity
+ network services, and is
+ configurable to a certain degree, whilst the others are simply on or off.</para>
+
+ <para>Consult the &man.inetd.8; manual page for more in-depth
+ information.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-nfs">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Reorganized and enhanced by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Bill</firstname>
+ <surname>Swingle</surname>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Network File System (NFS)</title>
+
+ <indexterm><primary>NFS</primary></indexterm>
+ <para>Among the many different file systems that FreeBSD supports
+ is the Network File System, also known as <acronym role="Network
+ File System">NFS</acronym>. <acronym role="Network File
+ System">NFS</acronym> allows a system to share directories and
+ files with others over a network. By using <acronym
+ role="Network File System">NFS</acronym>, users and programs can
+ access files on remote systems almost as if they were local
+ files.</para>
+
+ <para>Some of the most notable benefits that
+ <acronym>NFS</acronym> can provide are:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Local workstations use less disk space because commonly
+ used data can be stored on a single machine and still remain
+ accessible to others over the network.</para>
+ </listitem>
+
+ <listitem>
+ <para>There is no need for users to have separate home
+ directories on every network machine. Home directories
+ could be set up on the <acronym>NFS</acronym> server and
+ made available throughout the network.</para>
+ </listitem>
+
+ <listitem>
+ <para>Storage devices such as floppy disks, CDROM drives, and
+ &iomegazip; drives can be used by other machines on the network.
+ This may reduce the number of removable media drives
+ throughout the network.</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2>
+ <title>How <acronym>NFS</acronym> Works</title>
+
+ <para><acronym>NFS</acronym> consists of at least two main
+ parts: a server and one or more clients. The client remotely
+ accesses the data that is stored on the server machine. In
+ order for this to function properly a few processes have to be
+ configured and running.</para>
+
+ <para>The server has to be running the following daemons:</para>
+ <indexterm>
+ <primary>NFS</primary>
+ <secondary>server</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>file server</primary>
+ <secondary>UNIX clients</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary><application>rpcbind</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary><application>mountd</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary><application>nfsd</application></primary>
+ </indexterm>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="3*">
+
+ <thead>
+ <row>
+ <entry>Daemon</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><application>nfsd</application></entry>
+ <entry>The <acronym>NFS</acronym> daemon which services
+ requests from the <acronym>NFS</acronym>
+ clients.</entry>
+ </row>
+ <row>
+ <entry><application>mountd</application></entry>
+ <entry>The <acronym>NFS</acronym> mount daemon which carries out
+ the requests that &man.nfsd.8; passes on to it.</entry>
+ </row>
+ <row>
+ <entry><application>rpcbind</application></entry>
+ <entry> This daemon allows
+ <acronym>NFS</acronym> clients to discover which port
+ the <acronym>NFS</acronym> server is using.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>The client can also run a daemon, known as
+ <application>nfsiod</application>. The
+ <application>nfsiod</application> daemon services the requests
+ from the <acronym>NFS</acronym> server. This is optional, and
+ improves performance, but is not required for normal and
+ correct operation. See the &man.nfsiod.8; manual page for
+ more information.
+ </para>
+ </sect2>
+
+ <sect2 id="network-configuring-nfs">
+ <title>Configuring <acronym>NFS</acronym></title>
+ <indexterm>
+ <primary>NFS</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <para><acronym>NFS</acronym> configuration is a relatively
+ straightforward process. The processes that need to be
+ running can all start at boot time with a few modifications to
+ your <filename>/etc/rc.conf</filename> file.</para>
+
+ <para>On the <acronym>NFS</acronym> server, make sure that the
+ following options are configured in the
+ <filename>/etc/rc.conf</filename> file:</para>
+
+ <programlisting>rpcbind_enable="YES"
+nfs_server_enable="YES"
+mountd_flags="-r"</programlisting>
+
+ <para><application>mountd</application> runs automatically
+ whenever the <acronym>NFS</acronym> server is enabled.</para>
+
+ <para>On the client, make sure this option is present in
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>nfs_client_enable="YES"</programlisting>
+
+ <para>The <filename>/etc/exports</filename> file specifies which
+ file systems <acronym>NFS</acronym> should export (sometimes
+ referred to as <quote>share</quote>). Each line in
+ <filename>/etc/exports</filename> specifies a file system to be
+ exported and which machines have access to that file system.
+ Along with what machines have access to that file system,
+ access options may also be specified. There are many such
+ options that can be used in this file but only a few will be
+ mentioned here. You can easily discover other options by
+ reading over the &man.exports.5; manual page.</para>
+
+ <para>Here are a few example <filename>/etc/exports</filename>
+ entries:</para>
+
+ <indexterm>
+ <primary>NFS</primary>
+ <secondary>export examples</secondary>
+ </indexterm>
+
+ <para>The following examples give an idea of how to export
+ file systems, although the settings may be different depending
+ on your environment and network configuration. For instance,
+ to export the <filename>/cdrom</filename> directory to three
+ example machines that have the same domain name as the server
+ (hence the lack of a domain name for each) or have entries in
+ your <filename>/etc/hosts</filename> file. The
+ <option>-ro</option> flag makes the exported file system
+ read-only. With this flag, the remote system will not be able
+ to write any changes to the exported file system.</para>
+
+ <programlisting>/cdrom -ro host1 host2 host3</programlisting>
+
+ <para>The following line exports <filename>/home</filename> to
+ three hosts by IP address. This is a useful setup if you have
+ a private network without a <acronym>DNS</acronym> server
+ configured. Optionally the <filename>/etc/hosts</filename>
+ file could be configured for internal hostnames; please review
+ &man.hosts.5; for more information. The
+ <option>-alldirs</option> flag allows the subdirectories to be
+ mount points. In other words, it will not mount the
+ subdirectories but permit the client to mount only the
+ directories that are required or needed.</para>
+
+ <programlisting>/home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4</programlisting>
+
+ <para>The following line exports <filename>/a</filename> so that
+ two clients from different domains may access the file system.
+ The <option>-maproot=root</option> flag allows the
+ <username>root</username> user on the remote system to write
+ data on the exported file system as <username>root</username>.
+ If the <literal>-maproot=root</literal> flag is not specified,
+ then even if a user has <username>root</username> access on
+ the remote system, he will not be able to modify files on
+ the exported file system.</para>
+
+ <programlisting>/a -maproot=root host.example.com box.example.org</programlisting>
+
+ <para>In order for a client to access an exported file system,
+ the client must have permission to do so. Make sure the
+ client is listed in your <filename>/etc/exports</filename>
+ file.</para>
+
+ <para>In <filename>/etc/exports</filename>, each line represents
+ the export information for one file system to one host. A
+ remote host can only be specified once per file system, and may
+ only have one default entry. For example, assume that
+ <filename>/usr</filename> is a single file system. The
+ following <filename>/etc/exports</filename> would be
+ invalid:</para>
+
+ <programlisting># Invalid when /usr is one file system
+/usr/src client
+/usr/ports client</programlisting>
+
+ <para>One file system, <filename>/usr</filename>, has two lines
+ specifying exports to the same host, <hostid>client</hostid>.
+ The correct format for this situation is:</para>
+
+ <programlisting>/usr/src /usr/ports client</programlisting>
+
+ <para>The properties of one file system exported to a given host
+ must all occur on one line. Lines without a client specified
+ are treated as a single host. This limits how you can export
+ file systems, but for most people this is not an issue.</para>
+
+ <para>The following is an example of a valid export list, where
+ <filename>/usr</filename> and <filename>/exports</filename>
+ are local file systems:</para>
+
+ <programlisting># Export src and ports to client01 and client02, but only
+# client01 has root privileges on it
+/usr/src /usr/ports -maproot=root client01
+/usr/src /usr/ports client02
+# The client machines have root and can mount anywhere
+# on /exports. Anyone in the world can mount /exports/obj read-only
+/exports -alldirs -maproot=root client01 client02
+/exports/obj -ro</programlisting>
+
+ <para>The <application>mountd</application> daemon must be forced to
+ recheck the <filename>/etc/exports</filename> file whenever it has
+ been modified, so the changes can take effect. This can be
+ accomplished either by sending a HUP signal to the running daemon:</para>
+
+ <screen>&prompt.root; <userinput>kill -HUP `cat /var/run/mountd.pid`</userinput></screen>
+
+ <para>or by invoking the <command>mountd</command> &man.rc.8; script
+ with the appropriate parameter:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/mountd onereload</userinput></screen>
+
+ <para>Please refer to <xref linkend="configtuning-rcd"> for more
+ information about using rc scripts.</para>
+
+ <para>Alternatively, a reboot will make FreeBSD set everything
+ up properly. A reboot is not necessary though.
+ Executing the following commands as <username>root</username>
+ should start everything up.</para>
+
+ <para>On the <acronym>NFS</acronym> server:</para>
+
+ <screen>&prompt.root; <userinput>rpcbind</userinput>
+&prompt.root; <userinput>nfsd -u -t -n 4</userinput>
+&prompt.root; <userinput>mountd -r</userinput></screen>
+
+ <para>On the <acronym>NFS</acronym> client:</para>
+
+ <screen>&prompt.root; <userinput>nfsiod -n 4</userinput></screen>
+
+ <para>Now everything should be ready to actually mount a remote file
+ system. In these examples the
+ server's name will be <hostid>server</hostid> and the client's
+ name will be <hostid>client</hostid>. If you only want to
+ temporarily mount a remote file system or would rather test the
+ configuration, just execute a command like this as <username>root</username> on the
+ client:</para>
+ <indexterm>
+ <primary>NFS</primary>
+ <secondary>mounting</secondary>
+ </indexterm>
+ <screen>&prompt.root; <userinput>mount server:/home /mnt</userinput></screen>
+
+ <para>This will mount the <filename>/home</filename> directory
+ on the server at <filename>/mnt</filename> on the client. If
+ everything is set up correctly you should be able to enter
+ <filename>/mnt</filename> on the client and see all the files
+ that are on the server.</para>
+
+ <para>If you want to automatically mount a remote file system
+ each time the computer boots, add the file system to the
+ <filename>/etc/fstab</filename> file. Here is an example:</para>
+
+ <programlisting>server:/home /mnt nfs rw 0 0</programlisting>
+
+ <para>The &man.fstab.5; manual page lists all the available
+ options.</para>
+ </sect2>
+
+ <sect2>
+ <title>Locking</title>
+
+ <para>Some applications (e.g. <application>mutt</application>)
+ require file locking to operate correctly. In the case of
+ <acronym>NFS</acronym>, <application>rpc.lockd</application>
+ can be used for file locking. To enable it, add the following
+ to the <filename>/etc/rc.conf</filename> file on both client
+ and server (it is assumed that the <acronym>NFS</acronym>
+ client and server are configured already):</para>
+
+ <programlisting>rpc_lockd_enable="YES"
+rpc_statd_enable="YES"</programlisting>
+
+ <para>Start the application by using:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/nfslocking start</userinput></screen>
+
+ <para>If real locking between the <acronym>NFS</acronym> clients
+ and <acronym>NFS</acronym> server is not required, it is
+ possible to let the <acronym>NFS</acronym> client do locking
+ locally by passing <option>-L</option> to &man.mount.nfs.8;.
+ Refer to the &man.mount.nfs.8; manual page for further details.
+ </para>
+ </sect2>
+
+ <sect2>
+ <title>Practical Uses</title>
+
+ <para><acronym>NFS</acronym> has many practical uses. Some of
+ the more common ones are listed below:</para>
+
+ <indexterm>
+ <primary>NFS</primary>
+ <secondary>uses</secondary>
+ </indexterm>
+ <itemizedlist>
+ <listitem>
+ <para>Set several machines to share a CDROM or other media
+ among them. This is cheaper and often a more convenient
+ method to install software on multiple machines.</para>
+ </listitem>
+
+ <listitem>
+ <para>On large networks, it might be more convenient to
+ configure a central <acronym>NFS</acronym> server in which
+ to store all the user home directories. These home
+ directories can then be exported to the network so that
+ users would always have the same home directory,
+ regardless of which workstation they log in to.</para>
+ </listitem>
+
+ <listitem>
+ <para>Several machines could have a common
+ <filename>/usr/ports/distfiles</filename> directory. That
+ way, when you need to install a port on several machines,
+ you can quickly access the source without downloading it
+ on each machine.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="network-amd">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Wylie</firstname>
+ <surname>Stilwell</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Rewritten by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+ <title>Automatic Mounts with <application>amd</application></title>
+
+ <indexterm><primary>amd</primary></indexterm>
+ <indexterm><primary>automatic mounter daemon</primary></indexterm>
+
+ <para>&man.amd.8; (the automatic mounter daemon)
+ automatically mounts a
+ remote file system whenever a file or directory within that
+ file system is accessed. Filesystems that are inactive for a
+ period of time will also be automatically unmounted by
+ <application>amd</application>. Using
+ <application>amd</application> provides a simple alternative
+ to permanent mounts, as permanent mounts are usually listed in
+ <filename>/etc/fstab</filename>.</para>
+
+ <para><application>amd</application> operates by attaching
+ itself as an NFS server to the <filename>/host</filename> and
+ <filename>/net</filename> directories. When a file is accessed
+ within one of these directories, <application>amd</application>
+ looks up the corresponding remote mount and automatically mounts
+ it. <filename>/net</filename> is used to mount an exported
+ file system from an IP address, while <filename>/host</filename>
+ is used to mount an export from a remote hostname.</para>
+
+ <para>An access to a file within
+ <filename>/host/foobar/usr</filename> would tell
+ <application>amd</application> to attempt to mount the
+ <filename>/usr</filename> export on the host
+ <hostid>foobar</hostid>.</para>
+
+ <example>
+ <title>Mounting an Export with <application>amd</application></title>
+
+ <para>You can view the available mounts of a remote host with
+ the <command>showmount</command> command. For example, to
+ view the mounts of a host named <hostid>foobar</hostid>, you
+ can use:</para>
+
+ <screen>&prompt.user; <userinput>showmount -e foobar</userinput>
+Exports list on foobar:
+/usr 10.10.10.0
+/a 10.10.10.0
+&prompt.user; <userinput>cd /host/foobar/usr</userinput></screen>
+ </example>
+
+ <para>As seen in the example, the <command>showmount</command> shows
+ <filename>/usr</filename> as an export. When changing directories to
+ <filename>/host/foobar/usr</filename>, <application>amd</application>
+ attempts to resolve the hostname <hostid>foobar</hostid> and
+ automatically mount the desired export.</para>
+
+ <para><application>amd</application> can be started by the
+ startup scripts by placing the following lines in
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>amd_enable="YES"</programlisting>
+
+ <para>Additionally, custom flags can be passed to
+ <application>amd</application> from the
+ <varname>amd_flags</varname> option. By default,
+ <varname>amd_flags</varname> is set to:</para>
+
+ <programlisting>amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"</programlisting>
+
+ <para>The <filename>/etc/amd.map</filename> file defines the
+ default options that exports are mounted with. The
+ <filename>/etc/amd.conf</filename> file defines some of the more
+ advanced features of <application>amd</application>.</para>
+
+ <para>Consult the &man.amd.8; and &man.amd.conf.5; manual pages for more
+ information.</para>
+ </sect2>
+
+ <sect2 id="network-nfs-integration">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>John</firstname>
+ <surname>Lind</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+ <title>Problems Integrating with Other Systems</title>
+
+ <para>Certain Ethernet adapters for ISA PC systems have limitations
+ which can lead to serious network problems, particularly with NFS.
+ This difficulty is not specific to FreeBSD, but FreeBSD systems
+ are affected by it.</para>
+
+ <para>The problem nearly always occurs when (FreeBSD) PC systems are
+ networked with high-performance workstations, such as those made
+ by Silicon Graphics, Inc., and Sun Microsystems, Inc. The NFS
+ mount will work fine, and some operations may succeed, but
+ suddenly the server will seem to become unresponsive to the
+ client, even though requests to and from other systems continue to
+ be processed. This happens to the client system, whether the
+ client is the FreeBSD system or the workstation. On many systems,
+ there is no way to shut down the client gracefully once this
+ problem has manifested itself. The only solution is often to
+ reset the client, because the NFS situation cannot be
+ resolved.</para>
+
+ <para>Though the <quote>correct</quote> solution is to get a
+ higher performance and capacity Ethernet adapter for the
+ FreeBSD system, there is a simple workaround that will allow
+ satisfactory operation. If the FreeBSD system is the
+ <emphasis>server</emphasis>, include the option
+ <option>-w=1024</option> on the mount from the client. If the
+ FreeBSD system is the <emphasis>client</emphasis>, then mount
+ the NFS file system with the option <option>-r=1024</option>.
+ These options may be specified using the fourth field of the
+ <filename>fstab</filename> entry on the client for automatic
+ mounts, or by using the <option>-o</option> parameter of the
+ &man.mount.8; command for manual mounts.</para>
+
+ <para>It should be noted that there is a different problem,
+ sometimes mistaken for this one, when the NFS servers and
+ clients are on different networks. If that is the case, make
+ <emphasis>certain</emphasis> that your routers are routing the
+ necessary <acronym>UDP</acronym> information, or you will not get anywhere, no
+ matter what else you are doing.</para>
+
+ <para>In the following examples, <hostid>fastws</hostid> is the host
+ (interface) name of a high-performance workstation, and
+ <hostid>freebox</hostid> is the host (interface) name of a FreeBSD
+ system with a lower-performance Ethernet adapter. Also,
+ <filename>/sharedfs</filename> will be the exported NFS
+ file system (see &man.exports.5;), and
+ <filename>/project</filename> will be the mount point on the
+ client for the exported file system. In all cases, note that
+ additional options, such as <option>hard</option> or
+ <option>soft</option> and <option>bg</option> may be desirable in
+ your application.</para>
+
+ <para>Examples for the FreeBSD system (<hostid>freebox</hostid>)
+ as the client in <filename>/etc/fstab</filename> on
+ <hostid>freebox</hostid>:</para>
+
+ <programlisting>fastws:/sharedfs /project nfs rw,-r=1024 0 0</programlisting>
+
+ <para>As a manual mount command on <hostid>freebox</hostid>:</para>
+
+ <screen>&prompt.root; <userinput>mount -t nfs -o -r=1024 fastws:/sharedfs /project</userinput></screen>
+
+ <para>Examples for the FreeBSD system as the server in
+ <filename>/etc/fstab</filename> on
+ <hostid>fastws</hostid>:</para>
+
+ <programlisting>freebox:/sharedfs /project nfs rw,-w=1024 0 0</programlisting>
+
+ <para>As a manual mount command on <hostid>fastws</hostid>:</para>
+
+ <screen>&prompt.root; <userinput>mount -t nfs -o -w=1024 freebox:/sharedfs /project</userinput></screen>
+
+ <para>Nearly any 16-bit Ethernet adapter will allow operation
+ without the above restrictions on the read or write size.</para>
+
+ <para>For anyone who cares, here is what happens when the
+ failure occurs, which also explains why it is unrecoverable.
+ NFS typically works with a <quote>block</quote> size of
+ 8&nbsp;K (though it may do fragments of smaller sizes). Since
+ the maximum Ethernet packet is around 1500&nbsp;bytes, the NFS
+ <quote>block</quote> gets split into multiple Ethernet
+ packets, even though it is still a single unit to the
+ upper-level code, and must be received, assembled, and
+ <emphasis>acknowledged</emphasis> as a unit. The
+ high-performance workstations can pump out the packets which
+ comprise the NFS unit one right after the other, just as close
+ together as the standard allows. On the smaller, lower
+ capacity cards, the later packets overrun the earlier packets
+ of the same unit before they can be transferred to the host
+ and the unit as a whole cannot be reconstructed or
+ acknowledged. As a result, the workstation will time out and
+ try again, but it will try again with the entire 8&nbsp;K
+ unit, and the process will be repeated, ad infinitum.</para>
+
+ <para>By keeping the unit size below the Ethernet packet size
+ limitation, we ensure that any complete Ethernet packet
+ received can be acknowledged individually, avoiding the
+ deadlock situation.</para>
+
+ <para>Overruns may still occur when a high-performance
+ workstations is slamming data out to a PC system, but with the
+ better cards, such overruns are not guaranteed on NFS
+ <quote>units</quote>. When an overrun occurs, the units
+ affected will be retransmitted, and there will be a fair
+ chance that they will be received, assembled, and
+ acknowledged.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-nis">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Bill</firstname>
+ <surname>Swingle</surname>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Eric</firstname>
+ <surname>Ogren</surname>
+ <contrib>Enhanced by </contrib>
+ </author>
+ <author>
+ <firstname>Udo</firstname>
+ <surname>Erdelhoff</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Network Information System (NIS/YP)</title>
+
+ <sect2>
+ <title>What Is It?</title>
+ <indexterm><primary>NIS</primary></indexterm>
+ <indexterm><primary>Solaris</primary></indexterm>
+ <indexterm><primary>HP-UX</primary></indexterm>
+ <indexterm><primary>AIX</primary></indexterm>
+ <indexterm><primary>Linux</primary></indexterm>
+ <indexterm><primary>NetBSD</primary></indexterm>
+ <indexterm><primary>OpenBSD</primary></indexterm>
+
+ <para><acronym role="Network Information System">NIS</acronym>,
+ which stands for Network Information Services, was developed
+ by Sun Microsystems to centralize administration of &unix;
+ (originally &sunos;) systems. It has now essentially become
+ an industry standard; all major &unix; like systems
+ (&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD,
+ etc) support <acronym role="Network Information
+ System">NIS</acronym>.</para>
+
+ <indexterm><primary>yellow pages</primary><see>NIS</see></indexterm>
+
+ <para><acronym role="Network Information System">NIS</acronym>
+ was formerly known as Yellow Pages, but because of trademark
+ issues, Sun changed the name. The old term (and yp) is still
+ often seen and used.</para>
+
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>domains</secondary>
+ </indexterm>
+
+ <para>It is a RPC-based client/server system that allows a group
+ of machines within an NIS domain to share a common set of
+ configuration files. This permits a system administrator to
+ set up NIS client systems with only minimal configuration data
+ and add, remove or modify configuration data from a single
+ location.</para>
+
+ <indexterm><primary>Windows NT</primary></indexterm>
+
+ <para>It is similar to the &windowsnt; domain system; although
+ the internal implementation of the two are not at all similar,
+ the basic functionality can be compared.</para>
+ </sect2>
+
+ <sect2>
+ <title>Terms/Processes You Should Know</title>
+
+ <para>There are several terms and several important user
+ processes that you will come across when attempting to
+ implement NIS on FreeBSD, whether you are trying to create an
+ NIS server or act as an NIS client:</para>
+
+ <indexterm>
+ <primary><application>rpcbind</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary><application>portmap</application></primary>
+ </indexterm>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="3*">
+
+ <thead>
+ <row>
+ <entry>Term</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>NIS domainname</entry>
+
+ <entry>An NIS master server and all of its clients
+ (including its slave servers) have a NIS domainname.
+ Similar to an &windowsnt; domain name, the NIS
+ domainname does not have anything to do with
+ <acronym>DNS</acronym>.</entry>
+ </row>
+ <row>
+ <entry><application>rpcbind</application></entry>
+
+ <entry>Must be running in order to enable
+ <acronym>RPC</acronym> (Remote Procedure Call, a
+ network protocol used by NIS). If
+ <application>rpcbind</application> is not running, it
+ will be impossible to run an NIS server, or to act as
+ an NIS client.</entry>
+ </row>
+ <row>
+ <entry><application>ypbind</application></entry>
+
+ <entry><quote>Binds</quote> an NIS client to its NIS
+ server. It will take the NIS domainname from the
+ system, and using <acronym>RPC</acronym>, connect to
+ the server. <application>ypbind</application> is the
+ core of client-server communication in an NIS
+ environment; if <application>ypbind</application> dies
+ on a client machine, it will not be able to access the
+ NIS server.</entry>
+ </row>
+ <row>
+ <entry><application>ypserv</application></entry>
+ <entry>Should only be running on NIS servers; this is
+ the NIS server process itself. If &man.ypserv.8;
+ dies, then the server will no longer be able to
+ respond to NIS requests (hopefully, there is a slave
+ server to take over for it). There are some
+ implementations of NIS (but not the FreeBSD one), that
+ do not try to reconnect to another server if the
+ server it used before dies. Often, the only thing
+ that helps in this case is to restart the server
+ process (or even the whole server) or the
+ <application>ypbind</application> process on the
+ client.
+ </entry>
+ </row>
+ <row>
+ <entry><application>rpc.yppasswdd</application></entry>
+ <entry>Another process that should only be running on
+ NIS master servers; this is a daemon that will allow NIS
+ clients to change their NIS passwords. If this daemon
+ is not running, users will have to login to the NIS
+ master server and change their passwords there.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ <!-- XXX Missing: rpc.ypxfrd (not important, though) May only run
+ on the master -->
+
+ </sect2>
+
+ <sect2>
+ <title>How Does It Work?</title>
+
+ <para>There are three types of hosts in an NIS environment:
+ master servers, slave servers, and clients. Servers act as a
+ central repository for host configuration information. Master
+ servers hold the authoritative copy of this information, while
+ slave servers mirror this information for redundancy. Clients
+ rely on the servers to provide this information to
+ them.</para>
+
+ <para>Information in many files can be shared in this manner.
+ The <filename>master.passwd</filename>,
+ <filename>group</filename>, and <filename>hosts</filename>
+ files are commonly shared via NIS. Whenever a process on a
+ client needs information that would normally be found in these
+ files locally, it makes a query to the NIS server that it is
+ bound to instead.</para>
+
+ <sect3>
+ <title>Machine Types</title>
+
+ <itemizedlist>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>master server</secondary>
+ </indexterm>
+ <listitem>
+ <para>A <emphasis>NIS master server</emphasis>. This
+ server, analogous to a &windowsnt; primary domain
+ controller, maintains the files used by all of the NIS
+ clients. The <filename>passwd</filename>,
+ <filename>group</filename>, and other various files used
+ by the NIS clients live on the master server.</para>
+
+ <note><para>It is possible for one machine to be an NIS
+ master server for more than one NIS domain. However,
+ this will not be covered in this introduction, which
+ assumes a relatively small-scale NIS
+ environment.</para></note>
+ </listitem>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>slave server</secondary>
+ </indexterm>
+ <listitem>
+ <para><emphasis>NIS slave servers</emphasis>. Similar to
+ the &windowsnt; backup domain controllers, NIS slave
+ servers maintain copies of the NIS master's data files.
+ NIS slave servers provide the redundancy, which is
+ needed in important environments. They also help to
+ balance the load of the master server: NIS Clients
+ always attach to the NIS server whose response they get
+ first, and this includes slave-server-replies.</para>
+ </listitem>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>client</secondary>
+ </indexterm>
+ <listitem>
+ <para><emphasis>NIS clients</emphasis>. NIS clients, like
+ most &windowsnt; workstations, authenticate against the
+ NIS server (or the &windowsnt; domain controller in the
+ &windowsnt; workstations case) to log on.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Using NIS/YP</title>
+
+ <para>This section will deal with setting up a sample NIS
+ environment.</para>
+
+ <sect3>
+ <title>Planning</title>
+
+ <para>Let us assume that you are the administrator of a small
+ university lab. This lab, which consists of 15 FreeBSD
+ machines, currently has no centralized point of
+ administration; each machine has its own
+ <filename>/etc/passwd</filename> and
+ <filename>/etc/master.passwd</filename>. These files are
+ kept in sync with each other only through manual
+ intervention; currently, when you add a user to the lab, you
+ must run <command>adduser</command> on all 15 machines.
+ Clearly, this has to change, so you have decided to convert
+ the lab to use NIS, using two of the machines as
+ servers.</para>
+
+ <para>Therefore, the configuration of the lab now looks something
+ like:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Machine name</entry>
+ <entry>IP address</entry>
+ <entry>Machine role</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><hostid>ellington</hostid></entry>
+ <entry><hostid role="ipaddr">10.0.0.2</hostid></entry>
+ <entry>NIS master</entry>
+ </row>
+ <row>
+ <entry><hostid>coltrane</hostid></entry>
+ <entry><hostid role="ipaddr">10.0.0.3</hostid></entry>
+ <entry>NIS slave</entry>
+ </row>
+ <row>
+ <entry><hostid>basie</hostid></entry>
+ <entry><hostid role="ipaddr">10.0.0.4</hostid></entry>
+ <entry>Faculty workstation</entry>
+ </row>
+ <row>
+ <entry><hostid>bird</hostid></entry>
+ <entry><hostid role="ipaddr">10.0.0.5</hostid></entry>
+ <entry>Client machine</entry>
+ </row>
+ <row>
+ <entry><hostid>cli[1-11]</hostid></entry>
+ <entry><hostid role="ipaddr">10.0.0.[6-17]</hostid></entry>
+ <entry>Other client machines</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>If you are setting up a NIS scheme for the first time, it
+ is a good idea to think through how you want to go about it. No
+ matter what the size of your network, there are a few decisions
+ that need to be made.</para>
+
+ <sect4>
+ <title>Choosing a NIS Domain Name</title>
+
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>domainname</secondary>
+ </indexterm>
+ <para>This might not be the <quote>domainname</quote> that
+ you are used to. It is more accurately called the
+ <quote>NIS domainname</quote>. When a client broadcasts
+ its requests for info, it includes the name of the NIS
+ domain that it is part of. This is how multiple servers
+ on one network can tell which server should answer which
+ request. Think of the NIS domainname as the name for a
+ group of hosts that are related in some way.</para>
+
+ <para>Some organizations choose to use their Internet
+ domainname for their NIS domainname. This is not
+ recommended as it can cause confusion when trying to debug
+ network problems. The NIS domainname should be unique
+ within your network and it is helpful if it describes the
+ group of machines it represents. For example, the Art
+ department at Acme Inc. might be in the
+ <quote>acme-art</quote> NIS domain. For this example,
+ assume you have chosen the name
+ <literal>test-domain</literal>.</para>
+
+ <indexterm><primary>SunOS</primary></indexterm>
+ <para>However, some operating systems (notably &sunos;) use
+ their NIS domain name as their Internet domain name. If one
+ or more machines on your network have this restriction, you
+ <emphasis>must</emphasis> use the Internet domain name as
+ your NIS domain name.</para>
+ </sect4>
+
+ <sect4>
+ <title>Physical Server Requirements</title>
+
+ <para>There are several things to keep in mind when choosing
+ a machine to use as a NIS server. One of the unfortunate
+ things about NIS is the level of dependency the clients
+ have on the server. If a client cannot contact the server
+ for its NIS domain, very often the machine becomes
+ unusable. The lack of user and group information causes
+ most systems to temporarily freeze up. With this in mind
+ you should make sure to choose a machine that will not be
+ prone to being rebooted regularly, or one that might be
+ used for development. The NIS server should ideally be a
+ stand alone machine whose sole purpose in life is to be an
+ NIS server. If you have a network that is not very
+ heavily used, it is acceptable to put the NIS server on a
+ machine running other services, just keep in mind that if
+ the NIS server becomes unavailable, it will affect
+ <emphasis>all</emphasis> of your NIS clients
+ adversely.</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>NIS Servers</title>
+
+ <para> The canonical copies of all NIS information are stored
+ on a single machine called the NIS master server. The
+ databases used to store the information are called NIS maps.
+ In FreeBSD, these maps are stored in
+ <filename>/var/yp/[domainname]</filename> where
+ <filename>[domainname]</filename> is the name of the NIS
+ domain being served. A single NIS server can support
+ several domains at once, therefore it is possible to have
+ several such directories, one for each supported domain.
+ Each domain will have its own independent set of
+ maps.</para>
+
+ <para>NIS master and slave servers handle all NIS requests
+ with the <command>ypserv</command> daemon.
+ <command>ypserv</command> is responsible for receiving
+ incoming requests from NIS clients, translating the
+ requested domain and map name to a path to the corresponding
+ database file and transmitting data from the database back
+ to the client.</para>
+
+ <sect4>
+ <title>Setting Up a NIS Master Server</title>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>server configuration</secondary>
+ </indexterm>
+ <para>Setting up a master NIS server can be relatively
+ straight forward, depending on your needs. FreeBSD comes
+ with support for NIS out-of-the-box. All you need is to
+ add the following lines to
+ <filename>/etc/rc.conf</filename>, and FreeBSD will do the
+ rest for you.</para>
+
+ <procedure>
+ <step>
+ <para><programlisting>nisdomainname="test-domain"</programlisting>
+ This line will set the NIS domainname to
+ <literal>test-domain</literal>
+ upon network setup (e.g. after reboot).</para>
+ </step>
+ <step>
+ <para><programlisting>nis_server_enable="YES"</programlisting>
+ This will tell FreeBSD to start up the NIS server processes
+ when the networking is next brought up.</para>
+ </step>
+ <step>
+ <para><programlisting>nis_yppasswdd_enable="YES"</programlisting>
+ This will enable the <command>rpc.yppasswdd</command>
+ daemon which, as mentioned above, will allow users to
+ change their NIS password from a client machine.</para>
+ </step>
+ </procedure>
+
+ <note>
+ <para>Depending on your NIS setup, you may need to add
+ further entries. See the <link
+ linkend="network-nis-server-is-client">section about NIS
+ servers that are also NIS clients</link>, below, for
+ details.</para>
+ </note>
+
+ <para>Now, all you have to do is to run the command
+ <command>/etc/netstart</command> as superuser. It will
+ set up everything for you, using the values you defined in
+ <filename>/etc/rc.conf</filename>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Initializing the NIS Maps</title>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>maps</secondary>
+ </indexterm>
+ <para>The <emphasis>NIS maps</emphasis> are database files,
+ that are kept in the <filename>/var/yp</filename>
+ directory. They are generated from configuration files in
+ the <filename>/etc</filename> directory of the NIS master,
+ with one exception: the
+ <filename>/etc/master.passwd</filename> file. This is for
+ a good reason, you do not want to propagate passwords to
+ your <username>root</username> and other administrative
+ accounts to all the servers in the NIS domain. Therefore,
+ before we initialize the NIS maps, you should:</para>
+
+ <screen>&prompt.root; <userinput>cp /etc/master.passwd /var/yp/master.passwd</userinput>
+&prompt.root; <userinput>cd /var/yp</userinput>
+&prompt.root; <userinput>vi master.passwd</userinput></screen>
+
+ <para>You should remove all entries regarding system
+ accounts (<username>bin</username>,
+ <username>tty</username>, <username>kmem</username>,
+ <username>games</username>, etc), as well as any accounts
+ that you do not want to be propagated to the NIS clients
+ (for example <username>root</username> and any other UID 0
+ (superuser) accounts).</para>
+
+ <note><para>Make sure the
+ <filename>/var/yp/master.passwd</filename> is neither group
+ nor world readable (mode 600)! Use the
+ <command>chmod</command> command, if appropriate.</para></note>
+
+ <indexterm><primary>Tru64 UNIX</primary></indexterm>
+
+ <para>When you have finished, it is time to initialize the
+ NIS maps! FreeBSD includes a script named
+ <command>ypinit</command> to do this for you (see its
+ manual page for more information). Note that this script
+ is available on most &unix; Operating Systems, but not on
+ all. On Digital UNIX/Compaq Tru64 UNIX it is called
+ <command>ypsetup</command>. Because we are generating
+ maps for an NIS master, we are going to pass the
+ <option>-m</option> option to <command>ypinit</command>.
+ To generate the NIS maps, assuming you already performed
+ the steps above, run:</para>
+
+ <screen>ellington&prompt.root; <userinput>ypinit -m test-domain</userinput>
+Server Type: MASTER Domain: test-domain
+Creating an YP server will require that you answer a few questions.
+Questions will all be asked at the beginning of the procedure.
+Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
+Ok, please remember to go back and redo manually whatever fails.
+If you don't, something might not work.
+At this point, we have to construct a list of this domains YP servers.
+rod.darktech.org is already known as master server.
+Please continue to add any slave servers, one per line. When you are
+done with the list, type a &lt;control D&gt;.
+master server : ellington
+next host to add: <userinput>coltrane</userinput>
+next host to add: <userinput>^D</userinput>
+The current list of NIS servers looks like this:
+ellington
+coltrane
+Is this correct? [y/n: y] <userinput>y</userinput>
+
+[..output from map generation..]
+
+NIS Map update completed.
+ellington has been setup as an YP master server without any errors.</screen>
+
+ <para><command>ypinit</command> should have created
+ <filename>/var/yp/Makefile</filename> from
+ <filename>/var/yp/Makefile.dist</filename>.
+ When created, this file assumes that you are operating
+ in a single server NIS environment with only FreeBSD
+ machines. Since <literal>test-domain</literal> has
+ a slave server as well, you must edit
+ <filename>/var/yp/Makefile</filename>:</para>
+
+ <screen>ellington&prompt.root; <userinput>vi /var/yp/Makefile</userinput></screen>
+
+ <para>You should comment out the line that says</para>
+
+ <programlisting>NOPUSH = "True"</programlisting>
+
+ <para>(if it is not commented out already).</para>
+ </sect4>
+
+ <sect4>
+ <title>Setting up a NIS Slave Server</title>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>slave server</secondary>
+ </indexterm>
+ <para>Setting up an NIS slave server is even more simple than
+ setting up the master. Log on to the slave server and edit the
+ file <filename>/etc/rc.conf</filename> as you did before.
+ The only difference is that we now must use the
+ <option>-s</option> option when running <command>ypinit</command>.
+ The <option>-s</option> option requires the name of the NIS
+ master be passed to it as well, so our command line looks
+ like:</para>
+
+ <screen>coltrane&prompt.root; <userinput>ypinit -s ellington test-domain</userinput>
+
+Server Type: SLAVE Domain: test-domain Master: ellington
+
+Creating an YP server will require that you answer a few questions.
+Questions will all be asked at the beginning of the procedure.
+
+Do you want this procedure to quit on non-fatal errors? [y/n: n] <userinput>n</userinput>
+
+Ok, please remember to go back and redo manually whatever fails.
+If you don't, something might not work.
+There will be no further questions. The remainder of the procedure
+should take a few minutes, to copy the databases from ellington.
+Transferring netgroup...
+ypxfr: Exiting: Map successfully transferred
+Transferring netgroup.byuser...
+ypxfr: Exiting: Map successfully transferred
+Transferring netgroup.byhost...
+ypxfr: Exiting: Map successfully transferred
+Transferring master.passwd.byuid...
+ypxfr: Exiting: Map successfully transferred
+Transferring passwd.byuid...
+ypxfr: Exiting: Map successfully transferred
+Transferring passwd.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring group.bygid...
+ypxfr: Exiting: Map successfully transferred
+Transferring group.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring services.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring rpc.bynumber...
+ypxfr: Exiting: Map successfully transferred
+Transferring rpc.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring protocols.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring master.passwd.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring networks.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring networks.byaddr...
+ypxfr: Exiting: Map successfully transferred
+Transferring netid.byname...
+ypxfr: Exiting: Map successfully transferred
+Transferring hosts.byaddr...
+ypxfr: Exiting: Map successfully transferred
+Transferring protocols.bynumber...
+ypxfr: Exiting: Map successfully transferred
+Transferring ypservers...
+ypxfr: Exiting: Map successfully transferred
+Transferring hosts.byname...
+ypxfr: Exiting: Map successfully transferred
+
+coltrane has been setup as an YP slave server without any errors.
+Don't forget to update map ypservers on ellington.</screen>
+
+ <para>You should now have a directory called
+ <filename>/var/yp/test-domain</filename>. Copies of the NIS
+ master server's maps should be in this directory. You will
+ need to make sure that these stay updated. The following
+ <filename>/etc/crontab</filename> entries on your slave
+ servers should do the job:</para>
+
+ <programlisting>20 * * * * root /usr/libexec/ypxfr passwd.byname
+21 * * * * root /usr/libexec/ypxfr passwd.byuid</programlisting>
+
+ <para>These two lines force the slave to sync its maps with
+ the maps on the master server. Although these entries are
+ not mandatory, since the master server attempts to ensure
+ any changes to its NIS maps are communicated to its slaves
+ and because password information is vital to systems
+ depending on the server, it is a good idea to force the
+ updates. This is more important on busy networks where map
+ updates might not always complete.</para>
+
+ <para>Now, run the command <command>/etc/netstart</command> on the
+ slave server as well, which again starts the NIS server.</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>NIS Clients</title>
+
+ <para> An NIS client establishes what is called a binding to a
+ particular NIS server using the
+ <command>ypbind</command> daemon.
+ <command>ypbind</command> checks the system's default
+ domain (as set by the <command>domainname</command> command),
+ and begins broadcasting RPC requests on the local network.
+ These requests specify the name of the domain for which
+ <command>ypbind</command> is attempting to establish a binding.
+ If a server that has been configured to serve the requested
+ domain receives one of the broadcasts, it will respond to
+ <command>ypbind</command>, which will record the server's
+ address. If there are several servers available (a master and
+ several slaves, for example), <command>ypbind</command> will
+ use the address of the first one to respond. From that point
+ on, the client system will direct all of its NIS requests to
+ that server. <command>ypbind</command> will
+ occasionally <quote>ping</quote> the server to make sure it is
+ still up and running. If it fails to receive a reply to one of
+ its pings within a reasonable amount of time,
+ <command>ypbind</command> will mark the domain as unbound and
+ begin broadcasting again in the hopes of locating another
+ server.</para>
+
+ <sect4>
+ <title>Setting Up a NIS Client</title>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>client configuration</secondary>
+ </indexterm>
+ <para>Setting up a FreeBSD machine to be a NIS client is fairly
+ straightforward.</para>
+
+ <procedure>
+ <step>
+ <para>Edit the file <filename>/etc/rc.conf</filename> and
+ add the following lines in order to set the NIS domainname
+ and start <command>ypbind</command> upon network
+ startup:</para>
+
+ <programlisting>nisdomainname="test-domain"
+nis_client_enable="YES"</programlisting>
+ </step>
+
+ <step>
+ <para>To import all possible password entries from the NIS
+ server, remove all user accounts from your
+ <filename>/etc/master.passwd</filename> file and use
+ <command>vipw</command> to add the following line to
+ the end of the file:</para>
+
+ <programlisting>+:::::::::</programlisting>
+
+ <note>
+ <para>This line will afford anyone with a valid account in
+ the NIS server's password maps an account. There are
+ many ways to configure your NIS client by changing this
+ line. See the <link linkend="network-netgroups">netgroups
+ section</link> below for more information.
+ For more detailed reading see O'Reilly's book on
+ <literal>Managing NFS and NIS</literal>.</para>
+ </note>
+
+ <note>
+ <para>You should keep at least one local account (i.e.
+ not imported via NIS) in your
+ <filename>/etc/master.passwd</filename> and this
+ account should also be a member of the group
+ <groupname>wheel</groupname>. If there is something
+ wrong with NIS, this account can be used to log in
+ remotely, become <username>root</username>, and fix things.</para>
+ </note>
+ </step>
+
+ <step>
+ <para>To import all possible group entries from the NIS
+ server, add this line to your
+ <filename>/etc/group</filename> file:</para>
+
+ <programlisting>+:*::</programlisting>
+ </step>
+ </procedure>
+
+ <para>After completing these steps, you should be able to run
+ <command>ypcat passwd</command> and see the NIS server's
+ passwd map.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>NIS Security</title>
+
+ <para>In general, any remote user can issue an RPC to
+ &man.ypserv.8; and retrieve the contents of your NIS maps,
+ provided the remote user knows your domainname. To prevent
+ such unauthorized transactions, &man.ypserv.8; supports a
+ feature called <quote>securenets</quote> which can be used to
+ restrict access to a given set of hosts. At startup,
+ &man.ypserv.8; will attempt to load the securenets information
+ from a file called
+ <filename>/var/yp/securenets</filename>.</para>
+
+ <note>
+ <para>This path varies depending on the path specified with the
+ <option>-p</option> option. This file contains entries that
+ consist of a network specification and a network mask separated
+ by white space. Lines starting with <quote>#</quote> are
+ considered to be comments. A sample securenets file might look
+ like this:</para>
+ </note>
+
+ <programlisting># allow connections from local host -- mandatory
+127.0.0.1 255.255.255.255
+# allow connections from any host
+# on the 192.168.128.0 network
+192.168.128.0 255.255.255.0
+# allow connections from any host
+# between 10.0.0.0 to 10.0.15.255
+# this includes the machines in the testlab
+10.0.0.0 255.255.240.0</programlisting>
+
+ <para>If &man.ypserv.8; receives a request from an address that
+ matches one of these rules, it will process the request
+ normally. If the address fails to match a rule, the request
+ will be ignored and a warning message will be logged. If the
+ <filename>/var/yp/securenets</filename> file does not exist,
+ <command>ypserv</command> will allow connections from any
+ host.</para>
+
+ <para>The <command>ypserv</command> program also has support for
+ Wietse Venema's <application>TCP Wrapper</application> package.
+ This allows the administrator to use the
+ <application>TCP Wrapper</application> configuration files for
+ access control instead of
+ <filename>/var/yp/securenets</filename>.</para>
+
+ <note>
+ <para>While both of these access control mechanisms provide some
+ security, they, like the privileged port test, are
+ vulnerable to <quote>IP spoofing</quote> attacks. All
+ NIS-related traffic should be blocked at your firewall.</para>
+
+ <para>Servers using <filename>/var/yp/securenets</filename>
+ may fail to serve legitimate NIS clients with archaic TCP/IP
+ implementations. Some of these implementations set all
+ host bits to zero when doing broadcasts and/or fail to
+ observe the subnet mask when calculating the broadcast
+ address. While some of these problems can be fixed by
+ changing the client configuration, other problems may force
+ the retirement of the client systems in question or the
+ abandonment of <filename>/var/yp/securenets</filename>.</para>
+
+ <para>Using <filename>/var/yp/securenets</filename> on a
+ server with such an archaic implementation of TCP/IP is a
+ really bad idea and will lead to loss of NIS functionality
+ for large parts of your network.</para>
+
+ <indexterm><primary>TCP Wrappers</primary></indexterm>
+ <para>The use of the <application>TCP Wrapper</application>
+ package increases the latency of your NIS server. The
+ additional delay may be long enough to cause timeouts in
+ client programs, especially in busy networks or with slow
+ NIS servers. If one or more of your client systems
+ suffers from these symptoms, you should convert the client
+ systems in question into NIS slave servers and force them
+ to bind to themselves.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Barring Some Users from Logging On</title>
+
+ <para>In our lab, there is a machine <hostid>basie</hostid> that
+ is supposed to be a faculty only workstation. We do not want
+ to take this machine out of the NIS domain, yet the
+ <filename>passwd</filename> file on the master NIS server
+ contains accounts for both faculty and students. What can we
+ do?</para>
+
+ <para>There is a way to bar specific users from logging on to a
+ machine, even if they are present in the NIS database. To do
+ this, all you must do is add
+ <literal>-<replaceable>username</replaceable></literal> to the
+ end of the <filename>/etc/master.passwd</filename> file on the
+ client machine, where <replaceable>username</replaceable> is
+ the username of the user you wish to bar from logging in.
+ This should preferably be done using <command>vipw</command>,
+ since <command>vipw</command> will sanity check your changes
+ to <filename>/etc/master.passwd</filename>, as well as
+ automatically rebuild the password database when you finish
+ editing. For example, if we wanted to bar user
+ <username>bill</username> from logging on to
+ <hostid>basie</hostid> we would:</para>
+
+ <screen>basie&prompt.root; <userinput>vipw</userinput>
+<userinput>[add -bill to the end, exit]</userinput>
+vipw: rebuilding the database...
+vipw: done
+
+basie&prompt.root; <userinput>cat /etc/master.passwd</userinput>
+
+root:[password]:0:0::0:0:The super-user:/root:/bin/csh
+toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
+daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
+operator:*:2:5::0:0:System &:/:/sbin/nologin
+bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
+tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
+kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
+games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
+news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
+man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
+bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
+uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
+xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
+pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
+nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
++:::::::::
+-bill
+
+basie&prompt.root;</screen>
+ </sect2>
+
+ <sect2 id="network-netgroups">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Udo</firstname>
+ <surname>Erdelhoff</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Using Netgroups</title>
+ <indexterm><primary>netgroups</primary></indexterm>
+
+ <para>The method shown in the previous section works reasonably
+ well if you need special rules for a very small number of
+ users and/or machines. On larger networks, you
+ <emphasis>will</emphasis> forget to bar some users from logging
+ onto sensitive machines, or you may even have to modify each
+ machine separately, thus losing the main benefit of NIS:
+ <emphasis>centralized</emphasis> administration.</para>
+
+ <para>The NIS developers' solution for this problem is called
+ <emphasis>netgroups</emphasis>. Their purpose and semantics
+ can be compared to the normal groups used by &unix; file
+ systems. The main differences are the lack of a numeric ID
+ and the ability to define a netgroup by including both user
+ accounts and other netgroups.</para>
+
+ <para>Netgroups were developed to handle large, complex networks
+ with hundreds of users and machines. On one hand, this is
+ a Good Thing if you are forced to deal with such a situation.
+ On the other hand, this complexity makes it almost impossible to
+ explain netgroups with really simple examples. The example
+ used in the remainder of this section demonstrates this
+ problem.</para>
+
+ <para>Let us assume that your successful introduction of NIS in
+ your laboratory caught your superiors' interest. Your next
+ job is to extend your NIS domain to cover some of the other
+ machines on campus. The two tables contain the names of the
+ new users and new machines as well as brief descriptions of
+ them.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>User Name(s)</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><username>alpha</username>, <username>beta</username></entry>
+ <entry>Normal employees of the IT department</entry>
+ </row>
+
+ <row>
+ <entry><username>charlie</username>, <username>delta</username></entry>
+ <entry>The new apprentices of the IT department</entry>
+ </row>
+
+ <row>
+ <entry><username>echo</username>, <username>foxtrott</username>, <username>golf</username>, ...</entry>
+ <entry>Ordinary employees</entry>
+ </row>
+
+ <row>
+ <entry><username>able</username>, <username>baker</username>, ...</entry>
+ <entry>The current interns</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Machine Name(s)</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <!-- Names taken from "Good Omens" by Neil Gaiman and Terry
+ Pratchett. Many thanks for a brilliant book. -->
+
+ <entry><hostid>war</hostid>, <hostid>death</hostid>,
+ <hostid>famine</hostid>,
+ <hostid>pollution</hostid></entry>
+ <entry>Your most important servers. Only the IT
+ employees are allowed to log onto these
+ machines.</entry>
+ </row>
+ <row>
+ <!-- gluttony was omitted because it was too fat -->
+
+ <entry><hostid>pride</hostid>, <hostid>greed</hostid>,
+ <hostid>envy</hostid>, <hostid>wrath</hostid>,
+ <hostid>lust</hostid>, <hostid>sloth</hostid></entry>
+ <entry>Less important servers. All members of the IT
+ department are allowed to login onto these
+ machines.</entry>
+ </row>
+
+ <row>
+ <entry><hostid>one</hostid>, <hostid>two</hostid>,
+ <hostid>three</hostid>, <hostid>four</hostid>,
+ ...</entry>
+
+ <entry>Ordinary workstations. Only the
+ <emphasis>real</emphasis> employees are allowed to use
+ these machines.</entry>
+ </row>
+
+ <row>
+ <entry><hostid>trashcan</hostid></entry>
+ <entry>A very old machine without any critical data.
+ Even the intern is allowed to use this box.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>If you tried to implement these restrictions by separately
+ blocking each user, you would have to add one
+ <literal>-<replaceable>user</replaceable></literal> line to
+ each system's <filename>passwd</filename> for each user who is
+ not allowed to login onto that system. If you forget just one
+ entry, you could be in trouble. It may be feasible to do this
+ correctly during the initial setup, however you
+ <emphasis>will</emphasis> eventually forget to add the lines
+ for new users during day-to-day operations. After all, Murphy
+ was an optimist.</para>
+
+ <para>Handling this situation with netgroups offers several
+ advantages. Each user need not be handled separately; you
+ assign a user to one or more netgroups and allow or forbid
+ logins for all members of the netgroup. If you add a new
+ machine, you will only have to define login restrictions for
+ netgroups. If a new user is added, you will only have to add
+ the user to one or more netgroups. Those changes are
+ independent of each other: no more <quote>for each combination
+ of user and machine do...</quote> If your NIS setup is planned
+ carefully, you will only have to modify exactly one central
+ configuration file to grant or deny access to machines.</para>
+
+ <para>The first step is the initialization of the NIS map
+ netgroup. FreeBSD's &man.ypinit.8; does not create this map by
+ default, but its NIS implementation will support it once it has
+ been created. To create an empty map, simply type</para>
+
+ <screen>ellington&prompt.root; <userinput>vi /var/yp/netgroup</userinput></screen>
+
+ <para>and start adding content. For our example, we need at
+ least four netgroups: IT employees, IT apprentices, normal
+ employees and interns.</para>
+
+ <programlisting>IT_EMP (,alpha,test-domain) (,beta,test-domain)
+IT_APP (,charlie,test-domain) (,delta,test-domain)
+USERS (,echo,test-domain) (,foxtrott,test-domain) \
+ (,golf,test-domain)
+INTERNS (,able,test-domain) (,baker,test-domain)</programlisting>
+
+ <para><literal>IT_EMP</literal>, <literal>IT_APP</literal> etc.
+ are the names of the netgroups. Each bracketed group adds
+ one or more user accounts to it. The three fields inside a
+ group are:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>The name of the host(s) where the following items are
+ valid. If you do not specify a hostname, the entry is
+ valid on all hosts. If you do specify a hostname, you
+ will enter a realm of darkness, horror and utter confusion.</para>
+ </listitem>
+
+ <listitem>
+ <para>The name of the account that belongs to this
+ netgroup.</para>
+ </listitem>
+
+ <listitem>
+ <para>The NIS domain for the account. You can import
+ accounts from other NIS domains into your netgroup if you
+ are one of the unlucky fellows with more than one NIS
+ domain.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Each of these fields can contain wildcards. See
+ &man.netgroup.5; for details.</para>
+
+ <note>
+ <indexterm><primary>netgroups</primary></indexterm>
+ <para>Netgroup names longer than 8 characters should not be
+ used, especially if you have machines running other
+ operating systems within your NIS domain. The names are
+ case sensitive; using capital letters for your netgroup
+ names is an easy way to distinguish between user, machine
+ and netgroup names.</para>
+
+ <para>Some NIS clients (other than FreeBSD) cannot handle
+ netgroups with a large number of entries. For example, some
+ older versions of &sunos; start to cause trouble if a netgroup
+ contains more than 15 <emphasis>entries</emphasis>. You can
+ circumvent this limit by creating several sub-netgroups with
+ 15 users or less and a real netgroup that consists of the
+ sub-netgroups:</para>
+
+ <programlisting>BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
+BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
+BIGGRP3 (,joe31,domain) (,joe32,domain)
+BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3</programlisting>
+
+ <para>You can repeat this process if you need more than 225
+ users within a single netgroup.</para>
+ </note>
+
+ <para>Activating and distributing your new NIS map is
+ easy:</para>
+
+ <screen>ellington&prompt.root; <userinput>cd /var/yp</userinput>
+ellington&prompt.root; <userinput>make</userinput></screen>
+
+ <para>This will generate the three NIS maps
+ <filename>netgroup</filename>,
+ <filename>netgroup.byhost</filename> and
+ <filename>netgroup.byuser</filename>. Use &man.ypcat.1; to
+ check if your new NIS maps are available:</para>
+
+ <screen>ellington&prompt.user; <userinput>ypcat -k netgroup</userinput>
+ellington&prompt.user; <userinput>ypcat -k netgroup.byhost</userinput>
+ellington&prompt.user; <userinput>ypcat -k netgroup.byuser</userinput></screen>
+
+ <para>The output of the first command should resemble the
+ contents of <filename>/var/yp/netgroup</filename>. The second
+ command will not produce output if you have not specified
+ host-specific netgroups. The third command can be used to
+ get the list of netgroups for a user.</para>
+
+ <para>The client setup is quite simple. To configure the server
+ <hostid>war</hostid>, you only have to start
+ &man.vipw.8; and replace the line</para>
+
+ <programlisting>+:::::::::</programlisting>
+
+ <para>with</para>
+
+ <programlisting>+@IT_EMP:::::::::</programlisting>
+
+ <para>Now, only the data for the users defined in the netgroup
+ <literal>IT_EMP</literal> is imported into
+ <hostid>war</hostid>'s password database and only
+ these users are allowed to login.</para>
+
+ <para>Unfortunately, this limitation also applies to the
+ <literal>~</literal> function of the shell and all routines
+ converting between user names and numerical user IDs. In
+ other words, <command>cd
+ ~<replaceable>user</replaceable></command> will not work,
+ <command>ls -l</command> will show the numerical ID instead of
+ the username and <command>find . -user joe -print</command>
+ will fail with <errorname>No such user</errorname>. To fix
+ this, you will have to import all user entries
+ <emphasis>without allowing them to login onto your
+ servers</emphasis>.</para>
+
+ <para>This can be achieved by adding another line to
+ <filename>/etc/master.passwd</filename>. This line should
+ contain:</para>
+
+ <para><literal>+:::::::::/sbin/nologin</literal>, meaning
+ <quote>Import all entries but replace the shell with
+ <filename>/sbin/nologin</filename> in the imported
+ entries</quote>. You can replace any field in the
+ <literal>passwd</literal> entry by placing a default value in
+ your <filename>/etc/master.passwd</filename>.</para>
+
+ <!-- Been there, done that, got the scars to prove it - ue -->
+ <warning>
+ <para>Make sure that the line
+ <literal>+:::::::::/sbin/nologin</literal> is placed after
+ <literal>+@IT_EMP:::::::::</literal>. Otherwise, all user
+ accounts imported from NIS will have <filename>/sbin/nologin</filename> as their
+ login shell.</para>
+ </warning>
+
+ <para>After this change, you will only have to change one NIS
+ map if a new employee joins the IT department. You could use
+ a similar approach for the less important servers by replacing
+ the old <literal>+:::::::::</literal> in their local version
+ of <filename>/etc/master.passwd</filename> with something like
+ this:</para>
+
+ <programlisting>+@IT_EMP:::::::::
++@IT_APP:::::::::
++:::::::::/sbin/nologin</programlisting>
+
+ <para>The corresponding lines for the normal workstations
+ could be:</para>
+
+ <programlisting>+@IT_EMP:::::::::
++@USERS:::::::::
++:::::::::/sbin/nologin</programlisting>
+
+ <para>And everything would be fine until there is a policy
+ change a few weeks later: The IT department starts hiring
+ interns. The IT interns are allowed to use the normal
+ workstations and the less important servers; and the IT
+ apprentices are allowed to login onto the main servers. You
+ add a new netgroup <literal>IT_INTERN</literal>, add the new
+ IT interns to this netgroup and start to change the
+ configuration on each and every machine... As the old saying
+ goes: <quote>Errors in centralized planning lead to global
+ mess</quote>.</para>
+
+ <para>NIS' ability to create netgroups from other netgroups can
+ be used to prevent situations like these. One possibility
+ is the creation of role-based netgroups. For example, you
+ could create a netgroup called
+ <literal>BIGSRV</literal> to define the login
+ restrictions for the important servers, another netgroup
+ called <literal>SMALLSRV</literal> for the less
+ important servers and a third netgroup called
+ <literal>USERBOX</literal> for the normal
+ workstations. Each of these netgroups contains the netgroups
+ that are allowed to login onto these machines. The new
+ entries for your NIS map netgroup should look like this:</para>
+
+ <programlisting>BIGSRV IT_EMP IT_APP
+SMALLSRV IT_EMP IT_APP ITINTERN
+USERBOX IT_EMP ITINTERN USERS</programlisting>
+
+ <para>This method of defining login restrictions works
+ reasonably well if you can define groups of machines with
+ identical restrictions. Unfortunately, this is the exception
+ and not the rule. Most of the time, you will need the ability
+ to define login restrictions on a per-machine basis.</para>
+
+ <para>Machine-specific netgroup definitions are the other
+ possibility to deal with the policy change outlined above. In
+ this scenario, the <filename>/etc/master.passwd</filename> of
+ each box contains two lines starting with <quote>+</quote>.
+ The first of them adds a netgroup with the accounts allowed to
+ login onto this machine, the second one adds all other
+ accounts with <filename>/sbin/nologin</filename> as shell. It
+ is a good idea to use the <quote>ALL-CAPS</quote> version of
+ the machine name as the name of the netgroup. In other words,
+ the lines should look like this:</para>
+
+ <programlisting>+@<replaceable>BOXNAME</replaceable>:::::::::
++:::::::::/sbin/nologin</programlisting>
+
+ <para>Once you have completed this task for all your machines,
+ you will not have to modify the local versions of
+ <filename>/etc/master.passwd</filename> ever again. All
+ further changes can be handled by modifying the NIS map. Here
+ is an example of a possible netgroup map for this
+ scenario with some additional goodies:</para>
+
+ <programlisting># Define groups of users first
+IT_EMP (,alpha,test-domain) (,beta,test-domain)
+IT_APP (,charlie,test-domain) (,delta,test-domain)
+DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
+DEPT2 (,golf,test-domain) (,hotel,test-domain)
+DEPT3 (,india,test-domain) (,juliet,test-domain)
+ITINTERN (,kilo,test-domain) (,lima,test-domain)
+D_INTERNS (,able,test-domain) (,baker,test-domain)
+#
+# Now, define some groups based on roles
+USERS DEPT1 DEPT2 DEPT3
+BIGSRV IT_EMP IT_APP
+SMALLSRV IT_EMP IT_APP ITINTERN
+USERBOX IT_EMP ITINTERN USERS
+#
+# And a groups for a special tasks
+# Allow echo and golf to access our anti-virus-machine
+SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
+#
+# machine-based netgroups
+# Our main servers
+WAR BIGSRV
+FAMINE BIGSRV
+# User india needs access to this server
+POLLUTION BIGSRV (,india,test-domain)
+#
+# This one is really important and needs more access restrictions
+DEATH IT_EMP
+#
+# The anti-virus-machine mentioned above
+ONE SECURITY
+#
+# Restrict a machine to a single user
+TWO (,hotel,test-domain)
+# [...more groups to follow]</programlisting>
+
+ <para>If you are using some kind of database to manage your user
+ accounts, you should be able to create the first part of the
+ map with your database's report tools. This way, new users
+ will automatically have access to the boxes.</para>
+
+ <para>One last word of caution: It may not always be advisable
+ to use machine-based netgroups. If you are deploying a couple of
+ dozen or even hundreds of identical machines for student labs,
+ you should use role-based netgroups instead of machine-based
+ netgroups to keep the size of the NIS map within reasonable
+ limits.</para>
+ </sect2>
+
+ <sect2>
+ <title>Important Things to Remember</title>
+
+ <para>There are still a couple of things that you will need to do
+ differently now that you are in an NIS environment.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Every time you wish to add a user to the lab, you
+ must add it to the master NIS server <emphasis>only</emphasis>,
+ and <emphasis>you must remember to rebuild the NIS
+ maps</emphasis>. If you forget to do this, the new user will
+ not be able to login anywhere except on the NIS master.
+ For example, if we needed to add a new user
+ <username>jsmith</username> to the lab, we would:</para>
+
+ <screen>&prompt.root; <userinput>pw useradd jsmith</userinput>
+&prompt.root; <userinput>cd /var/yp</userinput>
+&prompt.root; <userinput>make test-domain</userinput></screen>
+
+ <para>You could also run <command>adduser jsmith</command> instead
+ of <command>pw useradd jsmith</command>.</para>
+ </listitem>
+ <listitem>
+ <para><emphasis>Keep the administration accounts out of the
+ NIS maps</emphasis>. You do not want to be propagating
+ administrative accounts and passwords to machines that
+ will have users that should not have access to those
+ accounts.</para>
+ </listitem>
+ <listitem>
+ <para><emphasis>Keep the NIS master and slave secure, and
+ minimize their downtime</emphasis>. If somebody either
+ hacks or simply turns off these machines, they have
+ effectively rendered many people without the ability to
+ login to the lab.</para>
+
+ <para>This is the chief weakness of any centralized administration
+ system. If you do
+ not protect your NIS servers, you will have a lot of angry
+ users!</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>NIS v1 Compatibility</title>
+
+ <para> FreeBSD's <application>ypserv</application> has some
+ support for serving NIS v1 clients. FreeBSD's NIS
+ implementation only uses the NIS v2 protocol, however other
+ implementations include support for the v1 protocol for
+ backwards compatibility with older systems. The
+ <application>ypbind</application> daemons supplied with these
+ systems will try to establish a binding to an NIS v1 server
+ even though they may never actually need it (and they may
+ persist in broadcasting in search of one even after they
+ receive a response from a v2 server). Note that while support
+ for normal client calls is provided, this version of
+ <application>ypserv</application> does not handle v1 map
+ transfer requests; consequently, it cannot be used as a master
+ or slave in conjunction with older NIS servers that only
+ support the v1 protocol. Fortunately, there probably are not
+ any such servers still in use today.</para>
+ </sect2>
+
+ <sect2 id="network-nis-server-is-client">
+ <title>NIS Servers That Are Also NIS Clients</title>
+
+ <para> Care must be taken when running
+ <application>ypserv</application> in a multi-server domain
+ where the server machines are also NIS clients. It is
+ generally a good idea to force the servers to bind to
+ themselves rather than allowing them to broadcast bind
+ requests and possibly become bound to each other. Strange
+ failure modes can result if one server goes down and others
+ are dependent upon it. Eventually all the clients will time
+ out and attempt to bind to other servers, but the delay
+ involved can be considerable and the failure mode is still
+ present since the servers might bind to each other all over
+ again.</para>
+
+ <para>You can force a host to bind to a particular server by running
+ <command>ypbind</command> with the <option>-S</option>
+ flag. If you do not want to do this manually each time you
+ reboot your NIS server, you can add the following lines to
+ your <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>nis_client_enable="YES" # run client stuff as well
+nis_client_flags="-S <replaceable>NIS domain</replaceable>,<replaceable>server</replaceable>"</programlisting>
+
+ <para>See &man.ypbind.8; for further information.</para>
+ </sect2>
+
+ <sect2>
+ <title>Password Formats</title>
+ <indexterm>
+ <primary>NIS</primary>
+ <secondary>password formats</secondary>
+ </indexterm>
+ <para>One of the most common issues that people run into when trying
+ to implement NIS is password format compatibility. If your NIS
+ server is using DES encrypted passwords, it will only support
+ clients that are also using DES. For example, if you have
+ &solaris; NIS clients in your network, then you will almost certainly
+ need to use DES encrypted passwords.</para>
+
+ <para>To check which format your servers
+ and clients are using, look at <filename>/etc/login.conf</filename>.
+ If the host is configured to use DES encrypted passwords, then the
+ <literal>default</literal> class will contain an entry like this:</para>
+
+ <programlisting>default:\
+ :passwd_format=des:\
+ :copyright=/etc/COPYRIGHT:\
+ [Further entries elided]</programlisting>
+
+ <para>Other possible values for the <literal>passwd_format</literal>
+ capability include <literal>blf</literal> and <literal>md5</literal>
+ (for Blowfish and MD5 encrypted passwords, respectively).</para>
+
+ <para>If you have made changes to
+ <filename>/etc/login.conf</filename>, you will also need to
+ rebuild the login capability database, which is achieved by
+ running the following command as
+ <username>root</username>:</para>
+
+ <screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
+
+ <note><para>The format of passwords already in
+ <filename>/etc/master.passwd</filename> will not be updated
+ until a user changes his password for the first time
+ <emphasis>after</emphasis> the login capability database is
+ rebuilt.</para></note>
+
+ <para>Next, in order to ensure that passwords are encrypted with
+ the format that you have chosen, you should also check that
+ the <literal>crypt_default</literal> in
+ <filename>/etc/auth.conf</filename> gives precedence to your
+ chosen password format. To do this, place the format that you
+ have chosen first in the list. For example, when using DES
+ encrypted passwords, the entry would be:</para>
+
+ <programlisting>crypt_default = des blf md5</programlisting>
+
+ <para>Having followed the above steps on each of the &os; based
+ NIS servers and clients, you can be sure that they all agree
+ on which password format is used within your network. If you
+ have trouble authenticating on an NIS client, this is a pretty
+ good place to start looking for possible problems. Remember:
+ if you want to deploy an NIS server for a heterogenous
+ network, you will probably have to use DES on all systems
+ because it is the lowest common standard.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-dhcp">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Greg</firstname>
+ <surname>Sutter</surname>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Automatic Network Configuration (DHCP)</title>
+
+ <sect2>
+ <title>What Is DHCP?</title>
+ <indexterm>
+ <primary>Dynamic Host Configuration Protocol</primary>
+ <see>DHCP</see>
+ </indexterm>
+ <indexterm>
+ <primary>Internet Software Consortium (ISC)</primary>
+ </indexterm>
+
+ <para>DHCP, the Dynamic Host Configuration Protocol, describes
+ the means by which a system can connect to a network and obtain the
+ necessary information for communication upon that network. FreeBSD
+ versions prior to 6.0 use the ISC (Internet Software
+ Consortium) DHCP client (&man.dhclient.8;) implementation.
+ Later versions use the OpenBSD <command>dhclient</command>
+ taken from OpenBSD&nbsp;3.7. All
+ information here regarding <command>dhclient</command> is for
+ use with either of the ISC or OpenBSD DHCP clients. The DHCP
+ server is the one included in the ISC distribution.</para>
+ </sect2>
+
+ <sect2>
+ <title>What This Section Covers</title>
+
+ <para>This section describes both the client-side components of the ISC and OpenBSD DHCP client and
+ server-side components of the ISC DHCP system. The
+ client-side program, <command>dhclient</command>, comes
+ integrated within FreeBSD, and the server-side portion is
+ available from the <filename
+ role="package">net/isc-dhcp3-server</filename> port. The
+ &man.dhclient.8;, &man.dhcp-options.5;, and
+ &man.dhclient.conf.5; manual pages, in addition to the
+ references below, are useful resources.</para>
+ </sect2>
+
+ <sect2>
+ <title>How It Works</title>
+ <indexterm><primary>UDP</primary></indexterm>
+ <para>When <command>dhclient</command>, the DHCP client, is
+ executed on the client machine, it begins broadcasting
+ requests for configuration information. By default, these
+ requests are on UDP port 68. The server replies on UDP 67,
+ giving the client an IP address and other relevant network
+ information such as netmask, router, and DNS servers. All of
+ this information comes in the form of a DHCP
+ <quote>lease</quote> and is only valid for a certain time
+ (configured by the DHCP server maintainer). In this manner,
+ stale IP addresses for clients no longer connected to the
+ network can be automatically reclaimed.</para>
+
+ <para>DHCP clients can obtain a great deal of information from
+ the server. An exhaustive list may be found in
+ &man.dhcp-options.5;.</para>
+ </sect2>
+
+ <sect2>
+ <title>FreeBSD Integration</title>
+
+ <para>&os; fully integrates the ISC or OpenBSD DHCP client,
+ <command>dhclient</command> (according to the &os; version you run). DHCP client support is provided
+ within both the installer and the base system, obviating the need
+ for detailed knowledge of network configurations on any network
+ that runs a DHCP server. <command>dhclient</command> has been
+ included in all FreeBSD distributions since 3.2.</para>
+ <indexterm>
+ <primary><application>sysinstall</application></primary>
+ </indexterm>
+
+ <para>DHCP is supported by
+ <application>sysinstall</application>. When configuring a
+ network interface within
+ <application>sysinstall</application>, the second question
+ asked is: <quote>Do you want to try DHCP configuration of
+ the interface?</quote>. Answering affirmatively will
+ execute <command>dhclient</command>, and if successful, will
+ fill in the network configuration information
+ automatically.</para>
+
+ <para>There are two things you must do to have your system use
+ DHCP upon startup:</para>
+ <indexterm>
+ <primary>DHCP</primary>
+ <secondary>requirements</secondary>
+ </indexterm>
+ <itemizedlist>
+ <listitem>
+ <para>Make sure that the <devicename>bpf</devicename>
+ device is compiled into your kernel. To do this, add
+ <literal>device bpf</literal> to your kernel
+ configuration file, and rebuild the kernel. For more
+ information about building kernels, see <xref
+ linkend="kernelconfig">.</para> <para>The
+ <devicename>bpf</devicename> device is already part of
+ the <filename>GENERIC</filename> kernel that is supplied
+ with FreeBSD, so if you do not have a custom kernel, you
+ should not need to create one in order to get DHCP
+ working.</para>
+ <note>
+ <para>For those who are particularly security conscious,
+ you should be warned that <devicename>bpf</devicename>
+ is also the device that allows packet sniffers to work
+ correctly (although they still have to be run as
+ <username>root</username>). <devicename>bpf</devicename>
+ <emphasis>is</emphasis> required to use DHCP, but if
+ you are very sensitive about security, you probably
+ should not add <devicename>bpf</devicename> to your
+ kernel in the expectation that at some point in the
+ future you will be using DHCP.</para>
+ </note>
+ </listitem>
+ <listitem>
+ <para>Edit your <filename>/etc/rc.conf</filename> to
+ include the following:</para>
+
+ <programlisting>ifconfig_fxp0="DHCP"</programlisting>
+
+ <note>
+ <para>Be sure to replace <literal>fxp0</literal> with the
+ designation for the interface that you wish to dynamically
+ configure, as described in
+ <xref linkend="config-network-setup">.</para>
+ </note>
+
+ <para>If you are using a different location for
+ <command>dhclient</command>, or if you wish to pass additional
+ flags to <command>dhclient</command>, also include the
+ following (editing as necessary):</para>
+
+ <programlisting>dhcp_program="/sbin/dhclient"
+dhcp_flags=""</programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm>
+ <primary>DHCP</primary>
+ <secondary>server</secondary>
+ </indexterm>
+ <para>The DHCP server, <application>dhcpd</application>, is included
+ as part of the <filename
+ role="package">net/isc-dhcp3-server</filename> port in the ports
+ collection. This port contains the ISC DHCP server and
+ documentation.</para>
+ </sect2>
+
+ <sect2>
+ <title>Files</title>
+ <indexterm>
+ <primary>DHCP</primary>
+ <secondary>configuration files</secondary>
+ </indexterm>
+ <itemizedlist>
+ <listitem><para><filename>/etc/dhclient.conf</filename></para>
+ <para><command>dhclient</command> requires a configuration file,
+ <filename>/etc/dhclient.conf</filename>. Typically the file
+ contains only comments, the defaults being reasonably sane. This
+ configuration file is described by the &man.dhclient.conf.5;
+ manual page.</para>
+ </listitem>
+
+ <listitem><para><filename>/sbin/dhclient</filename></para>
+ <para><command>dhclient</command> is statically linked and
+ resides in <filename>/sbin</filename>. The &man.dhclient.8;
+ manual page gives more information about
+ <command>dhclient</command>.</para>
+ </listitem>
+
+ <listitem><para><filename>/sbin/dhclient-script</filename></para>
+ <para><command>dhclient-script</command> is the FreeBSD-specific
+ DHCP client configuration script. It is described in
+ &man.dhclient-script.8;, but should not need any user
+ modification to function properly.</para>
+ </listitem>
+
+ <listitem><para><filename>/var/db/dhclient.leases</filename></para>
+ <para>The DHCP client keeps a database of valid leases in this
+ file, which is written as a log. &man.dhclient.leases.5;
+ gives a slightly longer description.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Further Reading</title>
+
+ <para>The DHCP protocol is fully described in
+ <ulink url="http://www.freesoft.org/CIE/RFC/2131/">RFC 2131</ulink>.
+ An informational resource has also been set up at
+ <ulink url="http://www.dhcp.org/"></ulink>.</para>
+ </sect2>
+
+ <sect2 id="network-dhcp-server">
+ <title>Installing and Configuring a DHCP Server</title>
+
+ <sect3>
+ <title>What This Section Covers</title>
+
+ <para>This section provides information on how to configure
+ a FreeBSD system to act as a DHCP server using the ISC
+ (Internet Software Consortium) implementation of the DHCP
+ server.</para>
+
+ <para>The server is not provided as part of
+ FreeBSD, and so you will need to install the
+ <filename role="package">net/isc-dhcp3-server</filename>
+ port to provide this service. See <xref linkend="ports"> for
+ more information on using the Ports Collection.</para>
+ </sect3>
+
+ <sect3>
+ <title>DHCP Server Installation</title>
+ <indexterm>
+ <primary>DHCP</primary>
+ <secondary>installation</secondary>
+ </indexterm>
+ <para>In order to configure your FreeBSD system as a DHCP
+ server, you will need to ensure that the &man.bpf.4;
+ device is compiled into your kernel. To do this, add
+ <literal>device bpf</literal> to your kernel
+ configuration file, and rebuild the kernel. For more
+ information about building kernels, see <xref
+ linkend="kernelconfig">.</para>
+
+ <para>The <devicename>bpf</devicename> device is already
+ part of the <filename>GENERIC</filename> kernel that is
+ supplied with FreeBSD, so you do not need to create a custom
+ kernel in order to get DHCP working.</para>
+
+ <note>
+ <para>Those who are particularly security conscious
+ should note that <devicename>bpf</devicename>
+ is also the device that allows packet sniffers to work
+ correctly (although such programs still need privileged
+ access). <devicename>bpf</devicename>
+ <emphasis>is</emphasis> required to use DHCP, but if
+ you are very sensitive about security, you probably
+ should not include <devicename>bpf</devicename> in your
+ kernel purely because you expect to use DHCP at some
+ point in the future.</para>
+ </note>
+
+ <para>The next thing that you will need to do is edit the sample
+ <filename>dhcpd.conf</filename> which was installed by the
+ <filename role="package">net/isc-dhcp3-server</filename> port.
+ By default, this will be
+ <filename>/usr/local/etc/dhcpd.conf.sample</filename>, and you
+ should copy this to
+ <filename>/usr/local/etc/dhcpd.conf</filename> before proceeding
+ to make changes.</para>
+ </sect3>
+
+ <sect3>
+ <title>Configuring the DHCP Server</title>
+ <indexterm>
+ <primary>DHCP</primary>
+ <secondary>dhcpd.conf</secondary>
+ </indexterm>
+ <para><filename>dhcpd.conf</filename> is
+ comprised of declarations regarding subnets and hosts, and is
+ perhaps most easily explained using an example :</para>
+
+ <programlisting>option domain-name "example.com";<co id="domain-name">
+option domain-name-servers 192.168.4.100;<co id="domain-name-servers">
+option subnet-mask 255.255.255.0;<co id="subnet-mask">
+
+default-lease-time 3600;<co id="default-lease-time">
+max-lease-time 86400;<co id="max-lease-time">
+ddns-update-style none;<co id="ddns-update-style">
+
+subnet 192.168.4.0 netmask 255.255.255.0 {
+ range 192.168.4.129 192.168.4.254;<co id="range">
+ option routers 192.168.4.1;<co id="routers">
+}
+
+host mailhost {
+ hardware ethernet 02:03:04:05:06:07;<co id="hardware">
+ fixed-address mailhost.example.com;<co id="fixed-address">
+}</programlisting>
+
+ <calloutlist>
+ <callout arearefs="domain-name">
+ <para>This option specifies the domain that will be provided
+ to clients as the default search domain. See
+ &man.resolv.conf.5; for more information on what this
+ means.</para>
+ </callout>
+
+ <callout arearefs="domain-name-servers">
+ <para>This option specifies a comma separated list of DNS
+ servers that the client should use.</para>
+ </callout>
+
+ <callout arearefs="subnet-mask">
+ <para>The netmask that will be provided to clients.</para>
+ </callout>
+
+ <callout arearefs="default-lease-time">
+ <para>A client may request a specific length of time that a
+ lease will be valid. Otherwise the server will assign
+ a lease with this expiry value (in seconds).</para>
+ </callout>
+
+ <callout arearefs="max-lease-time">
+ <para>This is the maximum length of time that the server will
+ lease for. Should a client request a longer lease, a lease
+ will be issued, although it will only be valid for
+ <literal>max-lease-time</literal> seconds.</para>
+ </callout>
+
+ <callout arearefs="ddns-update-style">
+ <para>This option specifies whether the DHCP server should
+ attempt to update DNS when a lease is accepted or released.
+ In the ISC implementation, this option is
+ <emphasis>required</emphasis>.</para>
+ </callout>
+
+ <callout arearefs="range">
+ <para>This denotes which IP addresses should be used in
+ the pool reserved for allocating to clients. IP
+ addresses between, and including, the ones stated are
+ handed out to clients.</para>
+ </callout>
+
+ <callout arearefs="routers">
+ <para>Declares the default gateway that will be provided to
+ clients.</para>
+ </callout>
+
+ <callout arearefs="hardware">
+ <para>The hardware MAC address of a host (so that the DHCP server
+ can recognize a host when it makes a request).</para>
+ </callout>
+
+ <callout arearefs="fixed-address">
+ <para>Specifies that the host should always be given the
+ same IP address. Note that using a hostname is
+ correct here, since the DHCP server will resolve the
+ hostname itself before returning the lease
+ information.</para>
+ </callout>
+ </calloutlist>
+
+ <para>Once you have finished writing your
+ <filename>dhcpd.conf</filename>,
+ you should enable the DHCP server in
+ <filename>/etc/rc.conf</filename>, i.e. by adding:</para>
+
+ <programlisting>dhcpd_enable="YES"
+dhcpd_ifaces="dc0"</programlisting>
+
+ <para>Replace the <literal>dc0</literal> interface name with the
+ interface (or interfaces, separated by whitespace) that your DHCP
+ server should listen on for DHCP client requests.</para>
+
+ <para>Then, you can proceed to start the server by issuing the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/isc-dhcpd.sh start</userinput></screen>
+
+ <para>Should you need to make changes to the configuration of your
+ server in the future, it is important to note that sending a
+ <literal>SIGHUP</literal> signal to
+ <application>dhcpd</application> does <emphasis>not</emphasis>
+ result in the configuration being reloaded, as it does with most
+ daemons. You will need to send a <literal>SIGTERM</literal>
+ signal to stop the process, and then restart it using the command
+ above.</para>
+ </sect3>
+
+ <sect3>
+ <title>Files</title>
+ <indexterm>
+ <primary>DHCP</primary>
+ <secondary>configuration files</secondary>
+ </indexterm>
+ <itemizedlist>
+ <listitem><para><filename>/usr/local/sbin/dhcpd</filename></para>
+ <para><application>dhcpd</application> is statically linked and
+ resides in <filename>/usr/local/sbin</filename>. The
+ &man.dhcpd.8; manual page installed with the
+ port gives more information about
+ <application>dhcpd</application>.</para>
+ </listitem>
+
+ <listitem><para><filename>/usr/local/etc/dhcpd.conf</filename></para>
+ <para><application>dhcpd</application> requires a configuration
+ file, <filename>/usr/local/etc/dhcpd.conf</filename> before it
+ will start providing service to clients. This file needs to
+ contain all the information that should be provided to clients
+ that are being serviced, along with information regarding the
+ operation of the server. This configuration file is described
+ by the &man.dhcpd.conf.5; manual page installed
+ by the port.</para>
+ </listitem>
+
+ <listitem><para><filename>/var/db/dhcpd.leases</filename></para>
+ <para>The DHCP server keeps a database of leases it has issued
+ in this file, which is written as a log. The manual page
+ &man.dhcpd.leases.5;, installed by the port
+ gives a slightly longer description.</para>
+ </listitem>
+
+ <listitem><para><filename>/usr/local/sbin/dhcrelay</filename></para>
+ <para><application>dhcrelay</application> is used in advanced
+ environments where one DHCP server forwards a request from a
+ client to another DHCP server on a separate network. If you
+ require this functionality, then install the <filename
+ role="package">net/isc-dhcp3-relay</filename> port. The
+ &man.dhcrelay.8; manual page provided with the
+ port contains more detail.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ </sect2>
+
+ </sect1>
+
+ <sect1 id="network-dns">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ </author>
+
+ <author>
+ <firstname>Daniel</firstname>
+ <surname>Gerzo</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Domain Name System (<acronym>DNS</acronym>)</title>
+
+ <sect2>
+ <title>Overview</title>
+ <indexterm><primary>BIND</primary></indexterm>
+
+ <para>&os; utilizes, by default, a version of BIND (Berkeley
+ Internet Name Domain), which is the most common implementation
+ of the <acronym>DNS</acronym> protocol. <acronym>DNS</acronym>
+ is the protocol through which names are mapped to
+ <acronym>IP</acronym> addresses, and vice versa. For example, a
+ query for <hostid role="fqdn">www.FreeBSD.org</hostid> will
+ receive a reply with the <acronym>IP</acronym> address of The
+ &os; Project's web server, whereas, a query for <hostid
+ role="fqdn">ftp.FreeBSD.org</hostid> will return the
+ <acronym>IP</acronym> address of the corresponding
+ <acronym>FTP</acronym> machine. Likewise, the opposite can
+ happen. A query for an <acronym>IP</acronym> address can
+ resolve its hostname. It is not necessary to run a name server
+ to perform <acronym>DNS</acronym> lookups on a system.</para>
+
+ <para>&os; currently comes with <acronym>BIND</acronym>9
+ <acronym>DNS</acronym> server software by default. Our
+ installation provides enhanced security features, a new file
+ system layout and automated &man.chroot.8; configuration.</para>
+
+ <indexterm><primary>DNS</primary></indexterm>
+ <para><acronym>DNS</acronym> is coordinated across the Internet
+ through a somewhat complex system of authoritative root, Top
+ Level Domain (<acronym>TLD</acronym>), and other smaller-scale
+ name servers which host and cache individual domain
+ information.</para>
+
+ <para>Currently, BIND is maintained by the
+ Internet Software Consortium
+ <ulink url="http://www.isc.org/"></ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Terminology</title>
+
+ <para>To understand this document, some terms related to
+ <acronym>DNS</acronym> must be understood.</para>
+
+ <indexterm><primary>resolver</primary></indexterm>
+ <indexterm><primary>reverse DNS</primary></indexterm>
+ <indexterm><primary>root zone</primary></indexterm>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="3*">
+
+ <thead>
+ <row>
+ <entry>Term</entry>
+ <entry>Definition</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>Forward <acronym>DNS</acronym></entry>
+ <entry>Mapping of hostnames to IP addresses.</entry>
+ </row>
+
+ <row>
+ <entry>Origin</entry>
+ <entry>Refers to the domain covered in a particular zone
+ file.</entry>
+ </row>
+
+ <row>
+ <entry><application>named</application>, BIND, name server</entry>
+ <entry>Common names for the BIND name server package within
+ &os;.</entry>
+ </row>
+
+ <row>
+ <entry>Resolver</entry>
+ <entry>A system process through which a
+ machine queries a name server for zone information.</entry>
+ </row>
+
+ <row>
+ <entry>Reverse <acronym>DNS</acronym></entry>
+ <entry>The opposite of forward <acronym>DNS</acronym>;
+ mapping of <acronym>IP</acronym> addresses to
+ hostnames.</entry>
+ </row>
+
+ <row>
+ <entry>Root zone</entry>
+
+ <entry>The beginning of the Internet zone hierarchy.
+ All zones fall under the root zone, similar to how
+ all files in a file system fall under the root
+ directory.</entry>
+ </row>
+
+ <row>
+ <entry>Zone</entry>
+ <entry>An individual domain, subdomain, or portion of the
+ <acronym>DNS</acronym> administered by the same
+ authority.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <indexterm>
+ <primary>zones</primary>
+ <secondary>examples</secondary>
+ </indexterm>
+
+ <para>Examples of zones:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><hostid>.</hostid> is the root zone.</para>
+ </listitem>
+
+ <listitem>
+ <para><hostid>org.</hostid> is a Top Level Domain
+ (<acronym>TLD</acronym>) under the root zone.</para>
+ </listitem>
+
+ <listitem>
+ <para><hostid role="domainname">example.org.</hostid> is a
+ zone under the <hostid>org.</hostid>
+ <acronym>TLD</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para><hostid>1.168.192.in-addr.arpa</hostid> is a zone
+ referencing all <acronym>IP</acronym> addresses which fall
+ under the <hostid role="ipaddr">192.168.1.*</hostid>
+ <acronym>IP</acronym> space.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>As one can see, the more specific part of a hostname appears
+ to its left. For example, <hostid
+ role="domainname">example.org.</hostid> is more specific than
+ <hostid>org.</hostid>, as <hostid>org.</hostid> is more specific
+ than the root zone. The layout of each part of a hostname is
+ much like a file system: the
+ <filename role="directory">/dev</filename> directory falls
+ within the root, and so on.</para>
+ </sect2>
+
+ <sect2>
+ <title>Reasons to Run a Name Server</title>
+
+ <para>Name servers usually come in two forms: an authoritative
+ name server, and a caching name server.</para>
+
+ <para>An authoritative name server is needed when:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>One wants to serve <acronym>DNS</acronym> information to
+ the world, replying authoritatively to queries.</para>
+ </listitem>
+
+ <listitem>
+ <para>A domain, such as <hostid
+ role="domainname">example.org</hostid>, is registered and
+ <acronym>IP</acronym> addresses need to be assigned to
+ hostnames under it.</para>
+ </listitem>
+
+ <listitem>
+ <para>An <acronym>IP</acronym> address block requires reverse
+ <acronym>DNS</acronym> entries (<acronym>IP</acronym> to
+ hostname).</para>
+ </listitem>
+
+ <listitem>
+ <para>A backup or second name server, called a slave, will
+ reply to queries.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>A caching name server is needed when:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>A local <acronym>DNS</acronym> server may cache and
+ respond more quickly than querying an outside name
+ server.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>When one queries for <hostid
+ role="fqdn">www.FreeBSD.org</hostid>, the resolver usually
+ queries the uplink <acronym>ISP</acronym>'s name server, and
+ retrieves the reply. With a local, caching
+ <acronym>DNS</acronym> server, the query only has to be made
+ once to the outside world by the caching <acronym>DNS</acronym>
+ server. Every additional query will not have to look to the
+ outside of the local network, since the information is cached
+ locally.</para>
+ </sect2>
+
+ <sect2>
+ <title>How It Works</title>
+ <para>In &os;, the BIND daemon is called
+ <application>named</application> for obvious reasons.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>File</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>&man.named.8;</entry>
+ <entry>The BIND daemon.</entry>
+ </row>
+
+ <row>
+ <entry>&man.rndc.8;</entry>
+ <entry>Name server control utility.</entry>
+ </row>
+
+ <row>
+ <entry><filename role="directory">/etc/namedb</filename></entry>
+ <entry>Directory where BIND zone information resides.</entry>
+ </row>
+
+ <row>
+ <entry><filename>/etc/namedb/named.conf</filename></entry>
+ <entry>Configuration file of the daemon.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Depending on how a given zone is configured on the server,
+ the files related to that zone can be found in the <filename
+ role="directory">master</filename>, <filename
+ role="directory">slave</filename>, or <filename
+ role="directory">dynamic</filename> subdirectories of the
+ <filename role="directory">/etc/namedb</filename> directory.
+ These files contain the <acronym>DNS</acronym> information that
+ will be given out by the name server in response to queries.</para>
+ </sect2>
+
+ <sect2>
+ <title>Starting BIND</title>
+ <indexterm>
+ <primary>BIND</primary>
+ <secondary>starting</secondary>
+ </indexterm>
+
+ <para>Since BIND is installed by default, configuring it all is
+ relatively simple.</para>
+
+ <para>The default <application>named</application> configuration
+ is that of a basic resolving name server, ran in a
+ &man.chroot.8; environment. To start the server one time with
+ this configuration, use the following command:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/named forcestart</userinput></screen>
+
+ <para>To ensure the <application>named</application> daemon is
+ started at boot each time, put the following line into the
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>named_enable="YES"</programlisting>
+
+ <para>There are obviously many configuration options for
+ <filename>/etc/namedb/named.conf</filename> that are beyond the
+ scope of this document. However, if you are interested in the
+ startup options for <application>named</application> on &os;,
+ take a look at the
+ <literal>named_<replaceable>*</replaceable></literal> flags in
+ <filename>/etc/defaults/rc.conf</filename> and consult the
+ &man.rc.conf.5; manual page. The
+ <xref linkend="configtuning-rcd"> section is also a good read.</para>
+ </sect2>
+
+ <sect2>
+ <title>Configuration Files</title>
+ <indexterm>
+ <primary>BIND</primary>
+ <secondary>configuration files</secondary>
+ </indexterm>
+
+ <para>Configuration files for <application>named</application>
+ currently reside in
+ <filename role="directory">/etc/namedb</filename> directory and
+ will need modification before use, unless all that is needed is
+ a simple resolver. This is where most of the configuration will
+ be performed.</para>
+
+ <sect3>
+ <title>Using <command>make-localhost</command></title>
+
+ <para>To configure a master zone for the localhost visit the
+ <filename role="directory">/etc/namedb</filename> directory
+ and run the following command:</para>
+
+ <screen>&prompt.root; <userinput>sh make-localhost</userinput></screen>
+
+ <para>If all went well, a new file should exist in the
+ <filename class="directory">master</filename> subdirectory.
+ The filenames should be <filename>localhost.rev</filename> for
+ the local domain name and <filename>localhost-v6.rev</filename>
+ for <acronym>IPv6</acronym> configurations. As the default
+ configuration file, required information will
+ be present in the <filename>named.conf</filename> file.</para>
+ </sect3>
+
+ <sect3>
+ <title><filename>/etc/namedb/named.conf</filename></title>
+
+ <programlisting>// &dollar;FreeBSD&dollar;
+//
+// Refer to the named.conf(5) and named(8) man pages, and the documentation
+// in /usr/share/doc/bind9 for more details.
+//
+// If you are going to set up an authoritative server, make sure you
+// understand the hairy details of how DNS works. Even with
+// simple mistakes, you can break connectivity for affected parties,
+// or cause huge amounts of useless Internet traffic.
+
+options {
+ directory "/etc/namedb";
+ pid-file "/var/run/named/pid";
+ dump-file "/var/dump/named_dump.db";
+ statistics-file "/var/stats/named.stats";
+
+// If named is being used only as a local resolver, this is a safe default.
+// For named to be accessible to the network, comment this option, specify
+// the proper IP address, or delete this option.
+ listen-on { 127.0.0.1; };
+
+// If you have IPv6 enabled on this system, uncomment this option for
+// use as a local resolver. To give access to the network, specify
+// an IPv6 address, or the keyword "any".
+// listen-on-v6 { ::1; };
+
+// In addition to the "forwarders" clause, you can force your name
+// server to never initiate queries of its own, but always ask its
+// forwarders only, by enabling the following line:
+//
+// forward only;
+
+// If you've got a DNS server around at your upstream provider, enter
+// its IP address here, and enable the line below. This will make you
+// benefit from its cache, thus reduce overall DNS traffic in the Internet.
+/*
+ forwarders {
+ 127.0.0.1;
+ };
+*/</programlisting>
+
+ <para>Just as the comment says, to benefit from an uplink's
+ cache, <literal>forwarders</literal> can be enabled here.
+ Under normal circumstances, a name server will recursively
+ query the Internet looking at certain name servers until it
+ finds the answer it is looking for. Having this enabled will
+ have it query the uplink's name server (or name server
+ provided) first, taking advantage of its cache. If the uplink
+ name server in question is a heavily trafficked, fast name
+ server, enabling this may be worthwhile.</para>
+
+ <warning>
+ <para><hostid role="ipaddr">127.0.0.1</hostid> will
+ <emphasis>not</emphasis> work here. Change this
+ <acronym>IP</acronym> address to a name server at your
+ uplink.</para>
+ </warning>
+
+ <programlisting> /*
+ * If there is a firewall between you and nameservers you want
+ * to talk to, you might need to uncomment the query-source
+ * directive below. Previous versions of BIND always asked
+ * questions using port 53, but BIND versions 8 and later
+ * use a pseudo-random unprivileged UDP port by default.
+ */
+ // query-source address * port 53;
+};
+
+// If you enable a local name server, don't forget to enter 127.0.0.1
+// first in your /etc/resolv.conf so this server will be queried.
+// Also, make sure to enable it in /etc/rc.conf.
+
+zone "." {
+ type hint;
+ file "named.root";
+};
+
+zone "0.0.127.IN-ADDR.ARPA" {
+ type master;
+ file "master/localhost.rev";
+};
+
+// RFC 3152
+zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA" {
+ type master;
+ file "master/localhost-v6.rev";
+};
+
+// NB: Do not use the IP addresses below, they are faked, and only
+// serve demonstration/documentation purposes!
+//
+// Example slave zone config entries. It can be convenient to become
+// a slave at least for the zone your own domain is in. Ask
+// your network administrator for the IP address of the responsible
+// primary.
+//
+// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
+// (This is named after the first bytes of the IP address, in reverse
+// order, with ".IN-ADDR.ARPA" appended.)
+//
+// Before starting to set up a primary zone, make sure you fully
+// understand how DNS and BIND works. There are sometimes
+// non-obvious pitfalls. Setting up a slave zone is simpler.
+//
+// NB: Don't blindly enable the examples below. :-) Use actual names
+// and addresses instead.
+
+/* An example master zone
+zone "example.net" {
+ type master;
+ file "master/example.net";
+};
+*/
+
+/* An example dynamic zone
+key "exampleorgkey" {
+ algorithm hmac-md5;
+ secret "sf87HJqjkqh8ac87a02lla==";
+};
+zone "example.org" {
+ type master;
+ allow-update {
+ key "exampleorgkey";
+ };
+ file "dynamic/example.org";
+};
+*/
+
+/* Examples of forward and reverse slave zones
+zone "example.com" {
+ type slave;
+ file "slave/example.com";
+ masters {
+ 192.168.1.1;
+ };
+};
+zone "1.168.192.in-addr.arpa" {
+ type slave;
+ file "slave/1.168.192.in-addr.arpa";
+ masters {
+ 192.168.1.1;
+ };
+};
+*/</programlisting>
+
+ <para>In <filename>named.conf</filename>, these are examples of
+ slave entries for a forward and reverse zone.</para>
+
+ <para>For each new zone served, a new zone entry must be added
+ to <filename>named.conf</filename>.</para>
+
+ <para>For example, the simplest zone entry for
+ <hostid role="domainname">example.org</hostid> can look
+ like:</para>
+
+ <programlisting>zone "example.org" {
+ type master;
+ file "master/example.org";
+};</programlisting>
+
+ <para>The zone is a master, as indicated by the
+ <option>type</option> statement, holding its zone information
+ in <filename>/etc/namedb/master/example.org</filename>
+ indicated by the <option>file</option> statement.</para>
+
+ <programlisting>zone "example.org" {
+ type slave;
+ file "slave/example.org";
+};</programlisting>
+
+ <para>In the slave case, the zone information is transferred
+ from the master name server for the particular zone, and saved
+ in the file specified. If and when the master server dies or
+ is unreachable, the slave name server will have the
+ transferred zone information and will be able to serve
+ it.</para>
+ </sect3>
+
+ <sect3>
+ <title>Zone Files</title>
+ <indexterm>
+ <primary>BIND</primary>
+ <secondary>zone files</secondary>
+ </indexterm>
+
+ <para>An example master zone file for <hostid
+ role="domainname">example.org</hostid> (existing within
+ <filename>/etc/namedb/master/example.org</filename>) is as
+ follows:</para>
+
+ <programlisting>&dollar;TTL 3600 ; 1 hour
+example.org. IN SOA ns1.example.org. admin.example.org. (
+ 2006051501 ; Serial
+ 10800 ; Refresh
+ 3600 ; Retry
+ 604800 ; Expire
+ 86400 ; Minimum TTL
+ )
+
+; DNS Servers
+ IN NS ns1.example.org.
+ IN NS ns2.example.org.
+
+; MX Records
+ IN MX 10 mx.example.org.
+ IN MX 20 mail.example.org.
+
+ IN A 192.168.1.1
+
+; Machine Names
+localhost IN A 127.0.0.1
+ns1 IN A 192.168.1.2
+ns2 IN A 192.168.1.3
+mx IN A 192.168.1.4
+mail IN A 192.168.1.5
+
+; Aliases
+www IN CNAME @</programlisting>
+
+ <para>
+ Note that every hostname ending in a <quote>.</quote> is an
+ exact hostname, whereas everything without a trailing
+ <quote>.</quote> is referenced to the origin. For example,
+ <literal>www</literal> is translated into
+ <literal>www.<replaceable>origin</replaceable></literal>.
+ In our fictitious zone file, our origin is
+ <hostid>example.org.</hostid>, so <literal>www</literal>
+ would translate to <hostid>www.example.org.</hostid>
+ </para>
+
+ <para>
+ The format of a zone file follows:
+ </para>
+ <programlisting>recordname IN recordtype value</programlisting>
+
+ <indexterm>
+ <primary>DNS</primary>
+ <secondary>records</secondary>
+ </indexterm>
+ <para>
+ The most commonly used DNS records:
+ </para>
+
+ <variablelist>
+ <varlistentry>
+ <term>SOA</term>
+
+ <listitem><para>start of zone authority</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>NS</term>
+
+ <listitem><para>an authoritative name server</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>A</term>
+
+ <listitem><para>a host address</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CNAME</term>
+
+ <listitem><para>the canonical name for an alias</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>MX</term>
+
+ <listitem><para>mail exchanger</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>PTR</term>
+
+ <listitem><para>a domain name pointer (used in reverse DNS)
+ </para></listitem>
+ </varlistentry>
+ </variablelist>
+
+ <programlisting>
+example.org. IN SOA ns1.example.org. admin.example.org. (
+ 2006051501 ; Serial
+ 10800 ; Refresh after 3 hours
+ 3600 ; Retry after 1 hour
+ 604800 ; Expire after 1 week
+ 86400 ) ; Minimum TTL of 1 day</programlisting>
+
+
+
+ <variablelist>
+ <varlistentry>
+ <term><hostid role="domainname">example.org.</hostid></term>
+
+ <listitem><para>the domain name, also the origin for this
+ zone file.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><hostid role="fqdn">ns1.example.org.</hostid></term>
+
+ <listitem><para>the primary/authoritative name server for this
+ zone.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>admin.example.org.</literal></term>
+
+ <listitem><para>the responsible person for this zone,
+ email address with <quote>@</quote>
+ replaced. (<email>admin@example.org</email> becomes
+ <literal>admin.example.org</literal>)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>2006051501</literal></term>
+
+ <listitem><para>the serial number of the file. This
+ must be incremented each time the zone file is
+ modified. Nowadays, many admins prefer a
+ <literal>yyyymmddrr</literal> format for the serial
+ number. <literal>2006051501</literal> would mean
+ last modified 05/15/2006, the latter
+ <literal>01</literal> being the first time the zone
+ file has been modified this day. The serial number
+ is important as it alerts slave name servers for a
+ zone when it is updated.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <programlisting>
+ IN NS ns1.example.org.</programlisting>
+
+ <para>
+ This is an NS entry. Every name server that is going to reply
+ authoritatively for the zone must have one of these entries.
+ </para>
+
+ <programlisting>
+localhost IN A 127.0.0.1
+ns1 IN A 192.168.1.2
+ns2 IN A 192.168.1.3
+mx IN A 192.168.1.4
+mail IN A 192.168.1.5</programlisting>
+
+ <para>
+ The A record indicates machine names. As seen above,
+ <hostid role="fqdn">ns1.example.org</hostid> would resolve
+ to <hostid role="ipaddr">192.168.1.2</hostid>.
+ </para>
+
+ <programlisting>
+ IN A 192.168.1.1</programlisting>
+
+ <para>This line assigns IP address
+ <hostid role="ipaddr">192.168.1.1</hostid> to the current origin,
+ in this case <hostid role="domainname">example.org</hostid>.</para>
+
+ <programlisting>
+www IN CNAME @</programlisting>
+
+ <para>
+ The canonical name record is usually used for giving aliases
+ to a machine. In the example, <hostid>www</hostid> is
+ aliased to the <quote>master</quote> machine which name equals
+ to domain name <hostid role="domainname">example.org</hostid>
+ (<hostid role="ipaddr">192.168.1.1</hostid>).
+ CNAMEs can be used to provide alias
+ hostnames, or round robin one hostname among multiple
+ machines.
+ </para>
+
+ <indexterm>
+ <primary>MX record</primary>
+ </indexterm>
+
+ <programlisting>
+ IN MX 10 mail.example.org.</programlisting>
+
+ <para>
+ The MX record indicates which mail
+ servers are responsible for handling incoming mail for the
+ zone. <hostid role="fqdn">mail.example.org</hostid> is the
+ hostname of the mail server, and 10 being the priority of
+ that mail server.
+ </para>
+
+ <para>
+ One can have several mail servers, with priorities of 10,
+ 20 and so on. A mail server attempting to deliver to <hostid
+ role="domainname">example.org</hostid> would first try the
+ highest priority MX (the record with the lowest priority
+ number), then the second highest, etc, until the mail can be
+ properly delivered.
+ </para>
+
+ <para>
+ For in-addr.arpa zone files (reverse DNS), the same format is
+ used, except with PTR entries instead of
+ A or CNAME.
+ </para>
+
+ <programlisting>$TTL 3600
+
+1.168.192.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
+ 2006051501 ; Serial
+ 10800 ; Refresh
+ 3600 ; Retry
+ 604800 ; Expire
+ 3600 ) ; Minimum
+
+ IN NS ns1.example.org.
+ IN NS ns2.example.org.
+
+1 IN PTR example.org.
+2 IN PTR ns1.example.org.
+3 IN PTR ns2.example.org.
+4 IN PTR mx.example.org.
+5 IN PTR mail.example.org.</programlisting>
+
+ <para>This file gives the proper IP address to hostname
+ mappings of our above fictitious domain.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Caching Name Server</title>
+ <indexterm>
+ <primary>BIND</primary>
+ <secondary>caching name server</secondary>
+ </indexterm>
+
+ <para>A caching name server is a name server that is not
+ authoritative for any zones. It simply asks queries of its
+ own, and remembers them for later use. To set one up, just
+ configure the name server as usual, omitting any inclusions of
+ zones.</para>
+ </sect2>
+
+ <sect2>
+ <title>Security</title>
+
+ <para>Although BIND is the most common implementation of DNS,
+ there is always the issue of security. Possible and
+ exploitable security holes are sometimes found.
+ </para>
+
+ <para>While &os; automatically drops
+ <application>named</application> into a &man.chroot.8;
+ environment; there are several other security mechanisms in
+ place which could help to lure off possible
+ <acronym>DNS</acronym> service attacks.</para>
+
+ <para>It is always good idea to read <ulink
+ url="http://www.cert.org/">CERT</ulink>'s security advisories
+ and to subscribe to the &a.security-notifications; to stay up to
+ date with the current Internet and &os; security issues.</para>
+
+ <tip>
+ <para>If a problem arises, keeping sources up to date and
+ having a fresh build of <application>named</application> would
+ not hurt.</para>
+ </tip>
+ </sect2>
+
+ <sect2>
+ <title>Further Reading</title>
+
+ <para>BIND/<application>named</application> manual pages:
+ &man.rndc.8; &man.named.8; &man.named.conf.5;</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="http://www.isc.org/products/BIND/">Official ISC BIND
+ Page</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.isc.org/sw/guild/bf/">Official ISC BIND
+ Forum</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.nominum.com/getOpenSourceResource.php?id=6">
+ BIND FAQ</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.oreilly.com/catalog/dns5/">O'Reilly
+ DNS and BIND 5th Edition</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.isi.edu/in-notes/rfc1034.txt">RFC1034
+ - Domain Names - Concepts and Facilities</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.isi.edu/in-notes/rfc1035.txt">RFC1035
+ - Domain Names - Implementation and Specification</ulink></para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-apache">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+
+ <author>
+ <firstname>Βαγγέλης</firstname>
+ <surname>Τυπάλδος</surname>
+ <contrib>Μετάφραση </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Ο εξυπηρετητής HTTP Apache</title>
+
+ <indexterm><primary>εξυπηρετητές web</primary>
+ <secondary>εγκατάσταση</secondary></indexterm>
+ <indexterm><primary>Apache</primary></indexterm>
+
+ <sect2>
+ <title>Σύνοψη</title>
+
+ <para>Το &os; χρησιμοποιείται για να φιλοξενεί παγκοσμίως ιστοσελίδες
+ μεγάλης επισκεψιμότητας. Οι περισσότεροι διακομιστές web στο
+ διαδίκτυο χρησιμοποιούν τον <application>εξυπηρετητή HTTP
+ Apache</application>. Τα πακέτα λογισμικού
+ του <application>Apache</application> θα πρέπει να περιέχονται στο
+ μέσο εγκατατάστασης του &os; που χρησιμοποιείτε. Αν δεν εγκαταστήσατε
+ τον <application>Apache</application> κατά την διάρκεια της
+ εγκατάστασης του &os;, τότε μπορείτε να τον εγκαταστήσετε από το
+ πακέτο <filename role="package">www/apache13</filename> ή από το
+ πακέτο <filename role="package">www/apache20</filename>.</para>
+
+ <para>Αφού ολοκληρώσετε επιτυχώς την εγκατάσταση
+ του <application>Apache</application>, θα πρέπει να κάνετε τις
+ απαραίτητες ρυθμίσεις.</para>
+
+ <note>
+ <para>Αυτή η ενότητα καλύπτει την έκδοση
+ εξυπηρετητών <application>Apache HTTP 1.3.X</application>, μιας που
+ αυτή η έκδοση είναι η πιο διαδεδομένη για το &os;.
+ Ο <application>Apache</application>&nbsp;2.X παρουσιάζει πολλές νέες
+ τεχνολογίες αλλά αυτές δεν περιγράφονται σε αυτή την ενότητα.
+ Περισσότερες πληροφορίες για
+ τον <application>Apache</application>&nbsp;2.X, μπορείτε να δείτε
+ στην σελίδα <ulink url="http://httpd.apache.org/"></ulink>.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Ρυθμίσεις</title>
+
+ <indexterm>
+ <primary>Apache</primary>
+ <secondary>αρχείο ρυθμίσεων</secondary>
+ </indexterm>
+
+ <para>Στο &os; το σημαντικότερο αρχείο ρυθμίσεων
+ του <application>Εξυπηρετητή HTTP Apache</application> είναι
+ το <filename>/usr/local/etc/apache/httpd.conf</filename>. Είναι ένα
+ τυπικό &unix; ρυθμιστικό αρχείο κειμένου, με γραμμές σχολίων που
+ ξεκινούν με τον χαρακτήρα <literal>#</literal>. Σκοπός μας εδώ δεν
+ είναι μια ολοκληρωμένη περιγραφή όλων των πιθανών επιλογών, επομένως
+ θα περιγράψουμε μόνο τις πιο δημοφιλείς επιλογές ρυθμίσεις
+ (configuration directives).</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>ServerRoot "/usr/local"</literal></term>
+
+ <listitem>
+ <para>Εδώ περιγράφεται ο προεπιλεγμένος ιεραρχικά κατάλογος
+ εγκατάστασης για τον <application>Apache</application>. Τα
+ εκτελέσιμα αρχεία είναι αποθηκευμένα στους
+ υποκαταλόγους <filename class="directory">bin</filename>
+ και <filename class="directory">sbin</filename> του
+ καταλόγου <quote>ServerRoot</quote> και τα αρχεία ρυθμίσεων
+ αποθηκεύονται στον
+ κατάλογο <filename class="directory">etc/apache</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ServerAdmin you@your.address</literal></term>
+
+ <listitem>
+ <para>Η ηλεκτρονική διεύθυνση στην οποία θα πρέπει να
+ αποστέλλονται αναφορές προβλημάτων σχετικά με τον
+ εξυπηρετητή. Αυτή η διεύθυνση εμφανίζεται σε κάποιες σελίδες που
+ δημιουργούνται από τον εξυπηρετητή, όπως οι σελίδες
+ σφαλμάτων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>ServerName www.example.com</literal></term>
+
+ <listitem>
+ <para>Το <literal>ServerName</literal> σας επιτρέπει να θέσετε ένα
+ όνομα κόμβου (hostname) για τον εξυπηρετητή σας, το οποίο
+ αποστέλλεται πίσω στους clients αν είναι διαφορετικό από εκείνο
+ που έχετε ήδη ρυθμίσει στον κόμβο σας (εδώ μπορείτε, για
+ παράδειγμα, να χρησιμοποιήσετε <hostid>www</hostid> αντί του
+ πραγματικού ονόματος του κόμβου).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>DocumentRoot "/usr/local/www/data"</literal></term>
+
+ <listitem>
+ <para><literal>DocumentRoot</literal>: Είναι ο κατάλογος από τον
+ οποίο θα προσφέρονται τα έγγραφα σας. Προεπιλεγμένα, όλα τα
+ αιτήματα θα εξυπηρετούνται από αυτό τον κατάλογο, αλλά μπορούν
+ επίσης να χρησιμοποιηθούν συμβολικοί δεσμοί (symbolic link) ή
+ παρωνύμια (aliases) που θα στοχεύουν σε άλλες τοποθεσίες.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Πριν κάνετε οποιαδήποτε αλλαγή, είναι καλό να δημιουργείτε
+ αντίγραφα ασφαλείας (backup) του αρχείου ρυθμίσεων
+ του <application>Apache</application>. Μόλις κρίνετε πως είστε
+ ικανοποιημένος με τις αρχικές ρυθμίσεις μπορείτε να ξεκινήσετε με την
+ εκτέλεση του <application>Apache</application>.</para>
+
+<!-- sect3 for performance tuning directives? maxservers minservers -->
+<!-- etc..?? -->
+
+<!-- Advanced configuration section.
+
+Performance tuning directives.
+
+Log file format -->
+ </sect2>
+
+ <sect2>
+ <title>Εκτέλεση του <application>Apache</application></title>
+
+ <indexterm>
+ <primary>Apache</primary>
+ <secondary>εκκίνηση ή σταμάτημα</secondary>
+ </indexterm>
+
+ <para>O <application>Apache</application> δεν τρέχει διαμέσου του
+ υπερ-διακομιστή <application>inetd</application> όπως κάνουν πολλοί
+ άλλοι δικτυακοί εξυπηρετητές. Είναι ρυθμισμένος να τρέχει αυτόνομα
+ για να εξυπηρετεί καλύτερα τις αιτήσεις HTTP των πελατών του, δηλαδή
+ των προγραμμάτων πλοήγησης (browsers). Η εγκατάσταση
+ του <application>Apache</application> από τα &os; Ports περιέχει ένα
+ βοηθητικό shell script για την εκκίνηση, το σταμάτημα και την
+ επανεκκίνηση του εξυπηρετητή. Για να ξεκινήσετε
+ τον <application>Apache</application> για πρώτη φορά, απλά
+ τρέξτε:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/sbin/apachectl start</userinput></screen>
+
+ <para>Μπορείτε οποιαδήποτε στιγμή να σταματήσετε τον εξυπηρετητή,
+ πληκτρολογώντας:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/sbin/apachectl stop</userinput></screen>
+
+ <para>Μετά από αλλαγές που πιθανώς να κάνατε για οποιονδήποτε λόγο στο
+ αρχείο ρυθμίσεων, θα χρειαστεί να επανεκκινήσετε τον
+ εξυπηρετητή:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/sbin/apachectl restart</userinput></screen>
+
+ <para>Για να επανεκκινήσετε τον <application>Apache</application> δίχως
+ να διακόψετε τις τρέχουσες συνδέσεις, τρέξτε:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/sbin/apachectl graceful</userinput></screen>
+
+ <para>Περισσότερες πληροφορίες θα βρείτε στη σελίδα βοήθειας του
+ &man.apachectl.8;.</para>
+
+ <para>Για να ξεκινάει ο <application>Apache</application> αυτόματα κατά
+ τη διάρκεια εκκίνησης του συστήματος, προσθέστε την ακόλουθη γραμμή
+ στο <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>apache_enable="YES"</programlisting>
+
+ <para>Αν επιθυμείτε να παρέχονται κατά την εκκίνηση του συστήματος
+ πρόσθετες επιλογές στην γραμμή εντολών για το
+ πρόγραμμα <application>Apache</application> <command>httpd</command>
+ μπορείτε να τις δηλώσετε με μια πρόσθετη γραμμή
+ στο <filename>rc.conf</filename>:</para>
+
+ <programlisting>apache_flags=""</programlisting>
+
+ <para>Τώρα που έχει ξεκινήσει ο εξυπηρετής web, μπορείτε να δείτε την
+ ιστοσελίδα σας στοχεύοντας το πρόγραμμα πλοήγησης
+ στο <literal>http://localhost/</literal>. Η προκαθορισμένη σελίδα που
+ εμφανίζεται είναι
+ η <filename>/usr/local/www/data/index.html</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Virtual Hosting</title>
+
+ <para>Ο <application>Apache</application> υποστηρίζει δύο διαφορετικούς
+ τύπους Virtual Hosting. Το Ονομαστικό virtual hosting χρησιμοποιεί
+ τους HTTP/1.1 headers για να καθορίσει τον κόμβο. Αυτό επιτρέπει την
+ κοινή χρήση της ίδιας IP για πολλά και διαφορετικά domains.</para>
+
+ <para>Για να ρυθμίσετε τον <application>Apache</application> να
+ χρησιμοποιεί το Ονομαστικό Virtual Hosting εισάγετε μια καταχώριση
+ στο <filename>httpd.conf</filename> σαν την ακόλουθη:</para>
+
+ <programlisting>NameVirtualHost *</programlisting>
+
+ <para>Αν ο διακομιστής web
+ ονομάζεται <hostid role="fqdn">www.domain.tld</hostid> και επιθυμείτε
+ να εγκαταστήσετε ένα virtual domain για
+ το <hostid role="fqdn">www.someotherdomain.tld</hostid> τότε θα πρέπει
+ να προσθέσετε τις ακόλουθες καταχωρήσεις
+ στο<filename>httpd.conf</filename>:</para>
+
+ <screen>&lt;VirtualHost *&gt;
+ServerName www.domain.tld
+DocumentRoot /www/domain.tld
+&lt;/VirtualHost&gt;
+
+&lt;VirtualHost *&gt;
+ServerName www.someotherdomain.tld
+DocumentRoot /www/someotherdomain.tld
+&lt;/VirtualHost&gt;</screen>
+
+ <para>Αντικαταστήστε τις παραπάνω διευθύνσεις με εκείνες που επιθυμείτε
+ να χρησιμοποιήσετε και την κατάλληλη διαδρομή προς τα έγγραφά
+ σας.</para>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με τις ρυθμίσεις για τα
+ virtual host, σας προτρέπουμε να συμβουλευτείτε την επίσημη τεκμηρίωση
+ του <application>Apache</application>
+ στο <ulink url="http://httpd.apache.org/docs/vhosts/"></ulink>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Apache Modules</title>
+
+ <indexterm>
+ <primary>Apache</primary>
+ <secondary>modules</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Apache</primary>
+ <secondary>αρθρώματα</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Apache</primary>
+ <secondary>επεκτάσεις</secondary>
+ </indexterm>
+
+ <para>Υπάρχουν πολλοί και διάφοροι διαθέσιμοι τύποι αρθρωμάτων (modules)
+ για τον <application>Apache</application>, τα οποία επεκτείνουν κι
+ εμπλουτίζουν τις λειτουργίες του βασικού εξυπηρετητή. Η Συλλογή των
+ Ports του &os; παρέχει έναν εύκολο τρόπο για να εγκαταστήσετε
+ τον <application>Apache</application> και μερικά από τα πιο δημοφιλή
+ αρθρώματα.</para>
+
+ <sect3>
+ <title>mod_ssl</title>
+
+ <indexterm>
+ <primary>web servers</primary>
+ <secondary>secure</secondary>
+ </indexterm>
+ <indexterm><primary>SSL</primary></indexterm>
+ <indexterm><primary>cryptography</primary></indexterm>
+
+ <para>Το άρθρωμα <application>mod_ssl</application> χρησιμοποιεί την
+ βιβλιοθήκη OpenSSL για να παρέχει ισχυρή κρυπτογράφηση διαμέσου των
+ πρωτοκόλων Secure Sockets Layer (SSL v2/v3) και Transport Layer
+ Security (TLS v1). Το άρθρωμα παρέχει όλα τα απαραίτητα συστατικά
+ για να μπορεί να αιτείται υπογεγγραμμένα πιστοποιητικά από έμπιστους
+ εξουσιοδοτημένους φορείς πιστοποίησης έτσι ώστε να μπορείτε να
+ τρέχετε έναν ασφαλή εξυπηρετητή web στο &os;.</para>
+
+ <para>Εάν δεν έχετε εγκαταστήσει ακόμη
+ τον <application>Apache</application>, μπορείτε να εγκαταστήσετε την
+ έκδοση του <application>Apache</application> 1.3.X που περιλαμβάνει
+ το <application>mod_ssl</application> από την
+ port <filename role="package">www/apache13-modssl</filename> . Το
+ SSL είναι επίσης διαθέσιμο για
+ τον <application>Apache</application>&nbsp;2.X στην
+ port <filename role="package">www/apache20</filename>, όπου το SSL
+ είναι ενεργοποιημένο από προεπιλογή.</para>
+
+<!-- XXX add more information about configuring mod_ssl here. -->
+<!-- Generating keys, getting the key signed, setting up your secure -->
+<!-- web server! -->
+ </sect3>
+
+ <sect3>
+ <title>Δυναμικές Ιστοσελίδες με Perl &amp; PHP</title>
+
+ <para>Την τελευταία δεκαετία, πολλές επιχειρήσεις στρέψανε τις
+ δραστηριότητες τους προς το Ίντερνετ με σκοπό να βελτιώσουν τα έσοδα
+ τους και για μεγαλύτερη προβολή. Αυτό με τη σειρά του δημιούργησε
+ την ανάγκη για διαδραστικό διαδικτυακό περιεχόμενο. Ενώ κάποιες
+ εταιρείες, όπως η &microsoft;, παρουσίασαν λύσεις ενσωματωμένες στα
+ ιδιόκτητα προϊόντα τους, η κοινότητα ανοιχτού λογισμικού έλαβε το
+ μήνυμα. Στις σύγχρονες επιλογές για διαδικτυακές σελίδες δυναμικού
+ περιεχομένου περιλαμβάνονται τα Django, Ruby on Rails, mod_perl και
+ mod_php.
+
+ <application>mod_perl</application> &amp;
+ <application>mod_php</application>.</para>
+
+ <sect4>
+ <title>mod_perl</title>
+
+ <indexterm>
+ <primary>mod_perl</primary>
+ <secondary>Perl</secondary>
+ </indexterm>
+
+ <para>Το γεγονός συνύπαρξης <application>Apache</application>/Perl
+ φέρνει κοντά τη μεγάλη δύναμη της γλώσσας προγραμματισμού Perl και
+ τον <application>εξυπηρετητή HTTP Apache</application>. Με το
+ άρθρωμα <application>mod_perl</application> έχετε τη δυνατότητα να
+ γράψετε επεκτάσεις για τον <application>Apache</application> εξ'
+ ολοκλήρου σε Perl. Επιπλέον, ο διατηρήσιμος μεταγλωττιστής που
+ είναι ενσωματωμένος στον εξυπηρετητή σας επιτρέπει να αποφύγετε την
+ χρήση ενός εξωτερικού μεταγλωττιστή Perl και να επιβαρυνθείτε από το
+ χρόνο εκκίνησης του.</para>
+
+ <para>Το <application>mod_perl</application> διατίθεται με διάφορους
+ τρόπους. Για να χρησιμοποιήσετε
+ το <application>mod_perl</application> να θυμάστε ότι το mod_perl
+ 1.0 <application>mod_perl</application> 1.0 δουλεύει μόνο με
+ τον <application>Apache</application> 1.3 και
+ το <application>mod_perl</application> 2.0 δουλεύει μόνο με
+ τον <application>Apache</application> 2.
+ Το <application>mod_perl</application> 1.0 είναι διαθέσιμο στο
+ port <filename role="package">www/mod_perl</filename> ενώ μια
+ στατικά μεταγλωττισμένη έκδοση είναι διαθέσιμη
+ στο <filename role="package">www/apache13-modperl</filename>.
+ Το <application>mod_perl</application> 2.0 διατίθεται στο
+ port <filename role="package">www/mod_perl2</filename>.</para>
+ </sect4>
+
+ <sect4>
+ <sect4info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συγγραφή από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect4info>
+ <title>mod_php</title>
+
+ <indexterm>
+ <primary>mod_php</primary>
+ <secondary>PHP</secondary>
+ </indexterm>
+
+ <para>Το <acronym>PHP</acronym>, γνωστό και ως <quote>PHP: Hypertext
+ Preprocessor</quote> είναι μια script γλώσσα προγραμματισμού
+ γενικής χρήσης αλλά ιδιαίτερα κατάλληλη για ανάπτυξη λογισμικού Web.
+ Η σύνταξή της προέρχεται από τις C, &java; και Perl και έχει την
+ δυνατότητα να ενσωματώνεται σε κώδικα <acronym>HTML</acronym>, με
+ σκοπό να επιτρέπει στους προγραμματιστές web να γράφουν γρήγορα
+ δυναμικές ιστοσελίδες.</para>
+
+ <para>Ο <application>Apache</application> υποστηρίζει
+ το <acronym>PHP</acronym>5. Μπορείτε να ξεκινήσετε εγκαθιστώντας το
+ πακέτο <filename role="package">lang/php5</filename>.</para>
+
+ <para>Αν το πακέτο <filename role="package">lang/php5</filename>
+ εγκαθίσταται για πρώτη φορά, αυτόματα θα σας εμφανιστούν όλες οι
+ δυνατές επιλογές <literal>OPTIONS</literal>. Αν κάποιο μενού δεν
+ εμφανίζεται, π.χ. επειδή το
+ πακέτο <filename role="package">lang/php5</filename> είχε
+ εγκατασταθεί στο παρελθόν, μπορείτε πάντα να ρυθμίσετε από την αρχή
+ το πακέτο, τρέχοντας στον κατάλογο του port:</para>
+
+ <screen>&prompt.root; <userinput>make config</userinput></screen>
+
+ <para>Στις επιλογές εγκατάστασης, διαλέξτε την
+ επιλογή <literal>APACHE</literal> ώστε να συμπεριληφθεί και το
+ άρθρωμα <application>mod_php</application> για τον
+ εξυπηρετητή <application>Apache</application>.</para>
+
+ <note>
+ <para>Μερικές τοποθεσίες χρησιμοποιούν ακόμη
+ το <acronym>PHP</acronym>4 για διάφορους λόγους (π.χ. θέματα
+ συμβατότητος ή επειδή έχουν ήδη εγκατεστημένες εφαρμογές που το
+ απαιτούν). Αν είναι ανάγκη να χρησιμοποιήσετε
+ το <application>mod_php4</application> αντί
+ του <application>mod_php5</application>, τότε χρησιμοποιείστε το
+ port <filename role="package">lang/php4</filename>. Το
+ port <filename role="package">lang/php4</filename> υποστηρίζει
+ πολλές από τις ρυθμίσεις και τις επιλογές εγκατάστασης του
+ port <filename role="package">lang/php5</filename>.</para>
+ </note>
+
+ <para>Με αυτό τον τρόπο θα εγκατασταθούν και θα ρυθμιστούν τα
+ απαιτούμενα αρθρώματα ώστε να υποστηρίζουν δυναμικές
+ εφαρμογές <acronym>PHP</acronym>. Για επιβεβαίωση ελέγξτε πως έχουν
+ προστεθεί στις αντίστοιχες ενότητες
+ του <filename>/usr/local/etc/apache/httpd.conf</filename> τα
+ ακόλουθα::</para>
+
+ <programlisting>LoadModule php5_module libexec/apache/libphp5.so</programlisting>
+
+ <programlisting>AddModule mod_php5.c
+ &lt;IfModule mod_php5.c&gt;
+ DirectoryIndex index.php index.html
+ &lt;/IfModule&gt;
+ &lt;IfModule mod_php5.c&gt;
+ AddType application/x-httpd-php .php
+ AddType application/x-httpd-php-source .phps
+ &lt;/IfModule&gt;</programlisting>
+
+ <para>Αφού ολοκληρώσετε τον έλεγχο, για να φορτωθεί το
+ άρθρωμα <acronym>PHP</acronym> χρειάζεται μια απλή κλήση με την
+ εντολή <command>apachectl</command> για μια κανονική (graceful)
+ επανεκκίνηση:</para>
+
+ <screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
+
+ <para>Για μελλοντικές αναβαθμίσεις του <acronym>PHP</acronym>, δεν
+ απαιτείται η εντολή <command>make config</command>. Οι
+ επιλεγμένες <literal>OPTIONS</literal> αποθηκεύονται αυτόματα από το
+ μηχανισμό εγκατάστασης των Ports του &os;.</para>
+
+ <para>Η σύνθεση του <acronym>PHP</acronym> στο &os;, είναι εξαιρετικά
+ στοιχειακή, και ο βασικός κορμός που έχει εγκατασταθεί είναι πολύ
+ περιορισμένος. Είναι πολύ εύκολο όμως να προσθέσουμε επεκτάσεις
+ χρησιμοποιώντας το
+ port <filename role="package">lang/php5-extensions</filename>. Αυτό
+ το port παρέχει μενού επιλογών για την εγκατάσταση των επεκτάσιμων
+ συστατικών του <acronym>PHP</acronym>. Εναλλακτικά, μπορείτε να
+ εγκαταστήσετε καθεμία επέκταση ξεχωριστά χρησιμοποιώντας το
+ κατάλληλο port.</para>
+
+ <para>Για παράδειγμα, για να προσθέσετε στο <acronym>PHP</acronym>5,
+ τη δυνατότητα υποστήριξης για βάσεις
+ δεδομένων<application>MySQL</application> απλά εγκαταστήστε το
+ port <filename role="package">databases/php5-mysql</filename>.</para>
+
+ <para>Μετά την εγκατάσταση ενός νέου αρθρώματος ή κάποιας άλλης
+ επέκτασης, ο εξυπηρετητής <application>Apache</application> θα
+ πρέπει να επαναφορτωθεί για να ενεργοποιηθούν οι νέες
+ ρυθμίσεις:</para>
+
+ <screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
+ </sect4>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-ftp">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Πρωτόκολο Μεταφοράς Αρχείων (FTP)</title>
+
+ <indexterm><primary>FTP servers</primary></indexterm>
+
+ <sect2>
+ <title>Σύνοψη</title>
+
+ <para>Το Πρωτόκολο Μεταφοράς Αρχείων (File Transfer Protocol - FTP)
+ παρέχει στους χρήστες έναν εύκολο τρόπο για να μεταφέρουν τα αρχεία
+ τους από και προς έναν εξυπηρετητή <acronym role="File Transfer
+ Protocol">FTP</acronym>. Το βασικό σύστημα του &os; περιλαμβάνει ένα
+ εξυπηρετητή FTP, το <application>ftpd</application>. Αυτό καθιστά την
+ εγκατάσταση και την διαχείριση του εξυπηρετητή <acronym role="File
+ Transfer Protocol">FTP</acronym> πολύ εύκολη υπόθεση.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρυθμίσεις</title>
+
+ <para>Το πιο σημαντικό βήμα στις ρυθμίσεις είναι να αποφασίσετε σε
+ ποιούς λογαριασμούς θα επιτραπεί η πρόσβαση στον εξυπηρετητή FTP. Ένα
+ συνηθισμένο σύστημα &os; δημιουργεί μερικούς λογαριασμούς συστήματος
+ για διάφορους δαίμονες, αλλά δεν πρέπει να επιτρέπεται η πρόσβαση στο
+ σύστημα με αυτούς τους λογαριασμούς. Το
+ αρχείο <filename>/etc/ftpusers</filename> περιέχει μια λίστα από
+ χρήστες για τους οποίους απορρίπτεται η πρόσβαση μέσω FTP.
+ Προεπιλεγμένα, περιέχονται οι προαναφερθέντες λογαριασμοί του
+ συστήματος, αλλά μπορείτε επίσης να προσθέσετε συγκεκριμένους χρήστες
+ που δε θα πρέπει να έχουν πρόσβαση μέσω FTP.</para>
+
+ <para>Μπορείτε αν θέλετε να περιορίσετε την πρόσβαση σε κάποιους
+ χρήστες, δίχως όμως να τους εμποδίσετε πλήρως. Αυτό μπορεί να συμβεί
+ με τις ρυθμίσεις του αρχείου <filename>/etc/ftpchroot</filename>.
+ Αυτό το αρχείο περιέχει λίστες χρηστών και ομάδων περιορισμένης
+ πρόσβασης FTP. Η σελίδα βοήθειας &man.ftpchroot.5; περιέχει όλες τις
+ απαραίτητες λεπτομέρειες, επομένως δε θα χρειαστεί να μπούμε σε
+ λεπτομέρειες εδώ.</para>
+
+ <indexterm>
+ <primary>FTP</primary>
+ <secondary>anonymous</secondary>
+ </indexterm>
+
+ <para>Αν επιθυμείτε να ενεργοποιήσετε ανώνυμη πρόσβαση FTP στον
+ εξυπηρετητή σας, θα πρέπει να δημιουργήσετε, στο &os; σύστημα σας, ένα
+ χρήστη με όνομα <username>ftp</username> . Οι ανώνυμοι χρήστες θα
+ μπορούν να εισέρχονται στον εξυπηρετητή FTP με το γενικό όνομα
+ χρήστη <username>ftp</username> ή με <username>anonymous</username>
+ και με οποιαδήποτε κωδικό πρόσβασης (συνηθίζεται να ζητείται η
+ διεύθυνση email του χρήστη ως κωδικός πρόσβασης). Ο εξυπηρετητής FTP
+ θα καλέσει το &man.chroot.2; μόλις εισέλθη ο ανώνυμος χρήστης, για να
+ του περιορίσει την πρόσβαση, επιτρέποντας του μόνο τον αρχικό κατάλογο
+ (home directory) του χρήστη <username>ftp</username>.</para>
+
+ <para>Υπάρχουν δύο αρχεία κειμένου για τον ορισμό μηνυμάτων
+ καλωσορίσματος που θα εμφανίζονται στους πελάτες FTP. Το περιεχόμενο
+ του αρχείου <filename>/etc/ftpwelcome</filename> εμφανίζεται στους
+ χρήστες πριν φτάσουν στην προτροπή εισόδου. Μετά από μια πετυχημένη
+ είσοδο στο σύστημα, εμφανίζεται το περιεχόμενο του
+ αρχείου <filename>/etc/ftpmotd</filename>. Παρατηρήστε πως η διαδρομή
+ σε αυτό το αρχείο είναι σχετική με το περιβάλλον πρόσβασης, επομένως
+ για τους ανώνυμους χρήστες θα εμφανίζεται το περιεχόμενο του
+ αρχείου <filename>~ftp/etc/ftpmotd</filename>.</para>
+
+ <para>Αφού ρυθμίσετε κατάλληλα τον εξυπηρετητή FTP, θα πρέπει να τον
+ ενεργοποιήσετε στο αρχείο <filename>/etc/inetd.conf</filename>. Το
+ μόνο που χρειάζεται να κάνετε είναι να αφαιρέσετε το σύμβολο
+ σχολιασμού <quote>#</quote> μπροστά από την υπάρχουσα
+ γραμμή <application>ftpd</application> :</para>
+
+ <programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
+
+ <para>Όπως εξηγήσαμε στο <xref linkend="network-inetd-reread">, η
+ διεργασία <application>inetd</application> θα πρέπει να ξαναφορτώνεται
+ αν έχουν γίνει αλλαγές στο αρχείο ρυθμίσεων της.</para>
+
+ <para>Τώρα μπορείτε να δώσετε τα στοιχεία του λογαριασμού σας για να
+ εισέλθετε στον εξυπηρετητή FTP.</para>
+
+ <screen>&prompt.user; <userinput>ftp localhost</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Συντήρηση</title>
+
+ <indexterm><primary>syslog</primary></indexterm>
+ <indexterm>
+ <primary>log files</primary>
+ <secondary>FTP</secondary>
+ </indexterm>
+
+ <para>Ο δαίμονας <application>ftpd</application> χρησιμοποιεί το
+ &man.syslog.3; για την δημιουργία μηνυμάτων αναφοράς. Προεπιλεγμένα,
+ ο δαίμονας των log του συστήματος θα εναποθέτει τις σχετικές με το FTP
+ αναφορές στο αρχείο <filename>/var/log/xferlog</filename>. Η
+ τοποθεσία του αρχείου αναφοράς μπορεί να τροποποιηθεί αλλάζοντας την
+ ακόλουθη γραμμή στο <filename>/etc/syslog.conf</filename>:</para>
+
+ <programlisting>ftp.info /var/log/xferlog</programlisting>
+
+ <indexterm>
+ <primary>FTP</primary>
+ <secondary>anonymous</secondary>
+ </indexterm>
+
+ <para>Πρέπει να είστε ενήμεροι για τα προβλήματα που μπορούν να
+ παρουσιαστούν σχετικά με τη λειτουργία ενός ανώνυμου εξυπηρετητή FTP.
+ Ειδικότερα, θα πρέπει να σκεφτείτε σοβαρά αν όντως επιθυμείτε να έχουν
+ δυνατότητα να ανεβάζουν αρχεία οι ανώνυμοι χρήστες σας. Αν αφήσετε
+ οποιονδήποτε ανώνυμο χρήστη να ανεβάζει αρχεία, μπορεί ξαφνικά να
+ ανακαλύψετε πως ο εξυπηρετητής σας FTP χρησιμοποιείται για διακίνηση
+ πειρατικού εμπορικού λογισμικού ή για άλλο, ακόμα χειρότερο, παράνομο
+ υλικό. Εάν όντως χρειάζεται οι χρήστες να έχουν άδεια προσθήκης
+ αρχείων, τότε θα πρέπει να ρυθμίσετε τις άδειες έτσι ώστε τα αρχεία
+ αυτά να μην είναι ορατά από άλλους ανώνυμους χρήστες, έως ότου να
+ πάρουν την ασφαλή έγκριση σας.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="network-samba">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>File and Print Services for &microsoft.windows; clients (Samba)</title>
+
+ <indexterm><primary>Samba server</primary></indexterm>
+ <indexterm><primary>Microsoft Windows</primary></indexterm>
+ <indexterm>
+ <primary>file server</primary>
+ <secondary>Windows clients</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>print server</primary>
+ <secondary>Windows clients</secondary>
+ </indexterm>
+
+ <sect2>
+ <title>Overview</title>
+
+ <para><application>Samba</application> is a popular open source
+ software package that provides file and print services for
+ &microsoft.windows; clients. Such clients can connect to and
+ use FreeBSD filespace as if it was a local disk drive, or
+ FreeBSD printers as if they were local printers.</para>
+
+ <para><application>Samba</application> software packages should
+ be included on your FreeBSD installation media. If you did
+ not install <application>Samba</application> when you first
+ installed FreeBSD, then you can install it from the <filename
+ role="package">net/samba3</filename> port or package.</para>
+
+<!-- mention LDAP, Active Directory, WinBIND, ACL, Quotas, PAM, .. -->
+
+ </sect2>
+
+ <sect2>
+ <title>Configuration</title>
+
+ <para>A default <application>Samba</application> configuration
+ file is installed as
+ <filename>/usr/local/etc/smb.conf.default</filename>. This
+ file must be copied to
+ <filename>/usr/local/etc/smb.conf</filename> and customized
+ before <application>Samba</application> can be used.</para>
+
+ <para>The <filename>smb.conf</filename> file contains runtime
+ configuration information for
+ <application>Samba</application>, such as definitions of the
+ printers and <quote>file system shares</quote> that you would
+ like to share with &windows; clients. The
+ <application>Samba</application> package includes a web based
+ tool called <application>swat</application> which provides a
+ simple way of configuring the <filename>smb.conf</filename>
+ file.</para>
+
+ <sect3>
+ <title>Using the Samba Web Administration Tool (SWAT)</title>
+
+ <para>The Samba Web Administration Tool (SWAT) runs as a
+ daemon from <application>inetd</application>. Therefore, the
+ following line in <filename>/etc/inetd.conf</filename>
+ should be uncommented before <application>swat</application> can be
+ used to configure <application>Samba</application>:</para>
+
+ <programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat</programlisting>
+ <para>As explained in <xref linkend="network-inetd-reread">,
+ the <application>inetd</application> must be reloaded after this configuration
+ file is changed.</para>
+
+ <para>Once <application>swat</application> has been enabled in
+ <filename>inetd.conf</filename>, you can use a browser to
+ connect to <ulink url="http://localhost:901"></ulink>. You will
+ first have to log on with the system <username>root</username> account.</para>
+
+<!-- XXX screenshots go here, loader is creating them -->
+
+ <para>Once you have successfully logged on to the main
+ <application>Samba</application> configuration page, you can
+ browse the system documentation, or begin by clicking on the
+ <guimenu>Globals</guimenu> tab. The <guimenu>Globals</guimenu> section corresponds to the
+ variables that are set in the <literal>[global]</literal>
+ section of
+ <filename>/usr/local/etc/smb.conf</filename>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Global Settings</title>
+
+ <para>Whether you are using <application>swat</application> or
+ editing <filename>/usr/local/etc/smb.conf</filename>
+ directly, the first directives you are likely to encounter
+ when configuring <application>Samba</application>
+ are:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>workgroup</literal></term>
+
+ <listitem>
+ <para>NT Domain-Name or Workgroup-Name for the computers
+ that will be accessing this server.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>netbios name</literal></term>
+ <indexterm><primary>NetBIOS</primary></indexterm>
+
+ <listitem>
+ <para>This sets the NetBIOS name by which a <application>Samba</application> server
+ is known. By default it is the same as the first
+ component of the host's DNS name.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>server string</literal></term>
+
+ <listitem>
+ <para>This sets the string that will be displayed with
+ the <command>net view</command> command and some other
+ networking tools that seek to display descriptive text
+ about the server.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3>
+ <title>Security Settings</title>
+
+ <para>Two of the most important settings in
+ <filename>/usr/local/etc/smb.conf</filename> are the
+ security model chosen, and the backend password format for
+ client users. The following directives control these
+ options:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>security</literal></term>
+
+ <listitem>
+ <para>The two most common options here are
+ <literal>security = share</literal> and <literal>security
+ = user</literal>. If your clients use usernames that
+ are the same as their usernames on your &os; machine
+ then you will want to use user level security. This
+ is the default security policy and it requires clients
+ to first log on before they can access shared
+ resources.</para>
+
+ <para>In share level security, client do not need to log
+ onto the server with a valid username and password
+ before attempting to connect to a shared resource.
+ This was the default security model for older versions
+ of <application>Samba</application>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>passdb backend</literal></term>
+
+ <indexterm><primary>NIS+</primary></indexterm>
+ <indexterm><primary>LDAP</primary></indexterm>
+ <indexterm><primary>SQL database</primary></indexterm>
+
+ <listitem>
+ <para><application>Samba</application> has several
+ different backend authentication models. You can
+ authenticate clients with LDAP, NIS+, a SQL database,
+ or a modified password file. The default
+ authentication method is <literal>smbpasswd</literal>,
+ and that is all that will be covered here.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Assuming that the default <literal>smbpasswd</literal>
+ backend is used, the
+ <filename>/usr/local/private/smbpasswd</filename> file must
+ be created to allow <application>Samba</application> to
+ authenticate clients. If you would like to give
+ your &unix; user accounts access from &windows; clients, use the
+ following command:</para>
+
+ <screen>&prompt.root; <userinput>smbpasswd -a username</userinput></screen>
+
+ <para>Please see the
+ <ulink
+ url="http://www.samba.org/samba/docs/man/Samba-HOWTO-Collection/">Official Samba HOWTO</ulink>
+ for additional information about configuration
+ options. With the basics outlined here, you should have
+ everything you need to start running
+ <application>Samba</application>.</para>
+ </sect3>
+
+ </sect2>
+ <sect2>
+ <title>Starting <application>Samba</application></title>
+
+ <para>The <filename role="package">net/samba3</filename> port adds
+ a new startup script, which can be used to control
+ <application>Samba</application>. To enable this script, so
+ that it can be used for example to start, stop or restart
+ <application>Samba</application>, add the following line to the
+ <filename>/etc/rc.conf</filename> file:</para>
+
+ <programlisting>samba_enable="YES"</programlisting>
+
+ <note>
+ <para>This will also configure <application>Samba</application>
+ to automatically start at system boot time.</para>
+ </note>
+
+ <para>It is possible then to start
+ <application>Samba</application> at any time by typing:</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba start</userinput>
+Starting SAMBA: removing stale tdbs :
+Starting nmbd.
+Starting smbd.</screen>
+
+ <para>Please refer to <xref linkend="configtuning-rcd"> for more
+ information about using rc scripts.</para>
+
+ <para><application>Samba</application> actually consists of
+ three separate daemons. You should see that both the
+ <application>nmbd</application> and <application>smbd</application> daemons
+ are started by the <filename>samba.sh</filename> script. If
+ you enabled winbind name resolution services in
+ <filename>smb.conf</filename>, then you will also see that
+ the <application>winbindd</application> daemon is started.</para>
+
+ <para>You can stop <application>Samba</application> at any time
+ by typing :</para>
+
+ <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/samba.sh stop</userinput></screen>
+
+ <para><application>Samba</application> is a complex software
+ suite with functionality that allows broad integration with
+ &microsoft.windows; networks. For more information about
+ functionality beyond the basic installation described here,
+ please see <ulink url="http://www.samba.org"></ulink>.</para>
+ </sect2>
+
+ </sect1>
+
+ <sect1 id="network-ntp">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Hukins</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Συγχρονισμός Ρολογιού Συστήματος με NTP</title>
+
+ <indexterm><primary>NTP</primary></indexterm>
+
+ <sect2>
+ <title>Σύνοψη</title>
+
+ <para>Με το πέρασμα του χρόνου, το ρολόι συστήματος ενός υπολογιστή έχει
+ την τάση να αποσυγχρονίζεται. Το Πρωτόκολο Χρονισμού Δικτύων (Network
+ Time Protocol ή NTP) παρέχει ένα τρόπο για να εξασφαλίσετε την
+ ακρίβεια του clock σας. </para>
+
+ <para>Πολλές διαδικτυακές υπηρεσίες βασίζονται ή ωφελούνται σε μεγάλο
+ βαθμό από την ακρίβεια του ρολογιού συστήματος ενός υπολογιστή. Για
+ παράδειγμα, ένας εξυπηρετητής web μπορεί να δεχθεί αιτήσεις για
+ αποστολή ενός αρχείου όταν το αρχείο αυτό έχει τροποποιηθεί μέχρι
+ κάποια συγκεκριμένη ώρα. Σε ένα περιβάλλον τοπικού δικτύου, είναι
+ θεμελιώδης αρχή οι υπολογιστές που θα διαμοιραστούν αρχεία από τον
+ ίδιο διακομιστή αρχείων να έχουν συγχρονισμένα ρολόγια, έτσι ώστε τα
+ χρονικά χαρακτηριστικά του αρχείου να συμφωνούν. Επίσης διεργασίες
+ όπως η &man.cron.8; βασίζονται σε ένα ακριβές ρολόι ώστε να μπορούν να
+ τρέχουν εντολές στους προκαθορισμένους χρόνους.</para>
+
+ <indexterm>
+ <primary>NTP</primary>
+ <secondary>ntpd</secondary>
+ </indexterm>
+ <para>Το &os; διατίθεται με τον εξυπηρετητή <acronym role="Network Time
+ Protocol">NTP</acronym> &man.ntpd.8;, ο οποίος μπορεί να
+ χρησιμοποιηθεί για να συγχρονίζει το ρολόι συστήματος του υπολογιστή
+ σας, εξετάζοντας άλλους εξυπηρετητές <acronym role="Network Time
+ Protocol">NTP</acronym> ή να παρέχει ο ίδιος υπηρεσίες συγχρονισμού σε
+ άλλα μηχανήματα.</para>
+ </sect2>
+
+ <sect2>
+ <title>Επιλογή των Κατάλληλων Εξυπηρετητών NTP</title>
+
+ <indexterm>
+ <primary>NTP</primary>
+ <secondary>επιλογή εξυπηρετητών</secondary>
+ </indexterm>
+
+ <para>Για να συγχρονίσετε το ρολόι συστήματος του υπολογιστή σας θα
+ πρέπει να βρείτε έναν ή περισσότερους
+ διαθέσιμους <acronym role="Network Time Protocol">NTP</acronym>
+ εξυπηρετητές για να χρησιμοποιήσετε. Ο διαχειριστής δικτύου ή ο ISP
+ σας μπορεί να έχουν εγκαταστήσει κάποιον εξυπηρετητή NTP για αυτό το
+ σκοπό&nbsp;&mdash; ελέγξτε την τεκμηρίωση τους να δείτε αν υπάρχει
+ τέτοια περίπτωση. Επιπλέον, υπάρχει
+ μία <ulink url="http://ntp.isc.org/bin/view/Servers/WebHome">online
+ λίστα εξυπηρετητών δημόσιας πρόσβασης</ulink>, που μπορείτε να
+ χρησιμοποιήσετε για να βρείτε έναν κοντινό εξυπηρετητή NTP. Όποιον
+ εξυπηρετητή κι αν επιλέξετε, ενημερωθείτε για την πολιτική χρήσης του
+ και ζητήστε άδεια να τον χρησιμοποιήσετε αν χρειάζεται τέτοια
+ άδεια.</para>
+
+ <para> Είναι καλή ιδέα να επιλέξετε πολλούς εξυπηρετητές NTP, οι οποίοι
+ να μην συνδέονται μεταξύ τους, στην περίπτωση που κάποιος από τους
+ εξυπηρετητές που χρησιμοποιείτε γίνει απρόσιτος ή το ρολόι του είναι
+ ανακριβές. Ο εξυπηρετητής &man.ntpd.8; του &os; χειρίζεται έξυπνα τις
+ απαντήσεις που λαμβάνει από τους υπόλοιπους εξυπηρετητές&nbsp;&mdash;
+ ευνοεί τους πιο αξιόπιστους και δείχνει μικρότερη προτίμηση στους
+ λιγότερο αξιόπιστους εξυπηρετητές.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρυθμίστε Το Μηχάνημα Σας</title>
+
+ <indexterm>
+ <primary>NTP</primary>
+ <secondary>ρυθμίσεις</secondary>
+ </indexterm>
+
+ <sect3>
+ <title>Βασικές Ρυθμίσεις</title>
+ <indexterm><primary>ntpdate</primary></indexterm>
+
+ <para>Αν επιθυμείτε να συγχρονίζεται το clock σας μόνο κατά την
+ εκκίνηση λειτουργίας του μηχανήματος, τότε μπορείτε να
+ χρησιμοποιήσετε το &man.ntpdate.8;. Αυτός ο τρόπος συγχρονισμού
+ είναι κατάλληλος για μηχανήματα desktop τα οποία κάνουν επανακκίνηση
+ ανά τακτά χρονικά διαστήματα και μόνο σε ειδικές περιπτώσεις έχουν
+ ανάγκη συγχρονισμού. Αντιθέτως, τα υπόλοιπα μηχανήματα θα πρέπει να
+ τρέχουν την διεργασία &man.ntpd.8;.</para>
+
+ <para>Είναι καλή πρακτική τα μηχανήματα που τρέχουν &man.ntpd.8; να
+ χρησιμοποιούν και το &man.ntpdate.8; κατά τη διάρκεια εκκίνησης
+ τους. Το &man.ntpd.8; μεταβάλλει το clock βαθμιαία, ενώ το
+ &man.ntpdate.8; ρυθμίζει άμεσα το clock ανεξάρτητα από το πόσο
+ μεγάλη είναι η χρονική διαφορά μεταξύ πραγματικής και τρέχουσας ώρας
+ του clock του μηχανήματος.</para>
+
+ <para>Για να ενεργοποιήσετε το &man.ntpdate.8; κατά την εκκίνηση,
+ προσθέστε <literal>ntpdate_enable="YES"</literal>
+ στο <filename>/etc/rc.conf</filename>. Θα πρέπει να προσδιορίσετε
+ στο <varname>ntpdate_flags</varname> όλους τους διακομιστές με τους
+ οποίους επιθυμείτε να συγχρονίζεστε και όλα τα flag που θέλετε να
+ συνοδεύουν το&man.ntpdate.8;.</para>
+ </sect3>
+
+ <sect3>
+ <indexterm>
+ <primary>NTP</primary>
+ <secondary>ntp.conf</secondary>
+ </indexterm>
+
+ <title>Γενικές Ρυθμίσεις</title>
+
+ <para>Οι ρυθμίσεις του NTP βρίσκονται στο
+ αρχείο <filename>/etc/ntp.conf</filename> και είναι στη μορφή που
+ περιγράφεται στο &man.ntp.conf.5;. Ακολουθεί ένα απλό
+ παράδειγμα:</para>
+
+ <programlisting>server ntplocal.example.com prefer
+server timeserver.example.org
+server ntp2a.example.net
+
+driftfile /var/db/ntp.drift</programlisting>
+
+ <para>Η επιλογή <literal>server</literal> προσδιορίζει ποιοι
+ εξυπηρετητές θα χρησιμοποιηθούν, παραθέτοντας έναν σε κάθε
+ γραμμή. Αν ένας εξυπηρετητής φέρει το
+ πρόθεμα <literal>prefer</literal>, όπως συμβαίνει με
+ τον <hostid role="fqdn">ntplocal.example.com</hostid>, τότε αυτός ο
+ εξυπηρετητής είναι ο προτιμώμενος. Θα απορριφθεί η απάντηση από τον
+ προτιμώμενο εξυπηρετητή σε περίπτωση που διαφέρει σημαντικά από
+ όλους τους άλλους εξυπηρετητές, Σε περίπτωση που δεν υπάρχει μεγάλη
+ απόκλιση θα χρησιμοποιηθεί δίχως να ληφθούν υπόψιν οι άλλες
+ απαντήσεις. Το πρόθεμα <literal>prefer</literal> συνήθως
+ χρησιμοποιείται με εξυπηρετητές NTP ακριβείας, όπως αυτοί που φέρουν
+ ειδικούς μηχανισμούς παρακολούθησης χρονισμού.</para>
+
+ <para>Η επιλογή <literal>driftfile</literal> προσδιορίζει ποιό αρχείο
+ χρησιμοποιείται για να διατηρεί τη συχνότητα διόρθωσης του clock του
+ συστήματος. Το πρόγραμμα &man.ntpd.8; χρησιμοποιεί αυτόματα αυτή τη
+ τιμή για να αντισταθμίζει τις φυσικές αποκλίσεις του clock,
+ επιτρέποντας του να διατηρεί μια λογική ρύθμιση, ακόμη κι αν του
+ απαγορευτεί για κάποιο χρονικό διάστημα η πρόσβαση προς όλες τις
+ εξωτερικές πηγές συγχρονισμού.</para>
+
+ <para>Η επιλογή <literal>driftfile</literal> προσδιορίζει ποιό αρχείο
+ χρησιμοποιείται για να αποθηκεύει πληροφορίες σχετικά με τις
+ προηγούμενες απαντήσεις από τους εξυπηρετητές NTP. Αυτό το αρχείο
+ περιέχει εσωτερικές πληροφορίες του NTP. Δεν θα έπρεπε να
+ τροποποιείτε από καμμία άλλη διεργασία.</para>
+ </sect3>
+
+ <sect3>
+ <title>Έλεγχος Πρόσβασης στον Εξυπηρετητή Σας</title>
+
+ <para>Προεπιλεγμένα, ο εξυπηρετητής σας NTP θα είναι προσβάσιμος από
+ όλους τους κόμβους στο διαδίκτυο. Η
+ επιλογή <literal>restrict</literal>
+ στο <filename>/etc/ntp.conf</filename> σας επιτρέπει να ελέγχετε
+ ποια μηχανήματα θα μπορούν να έχουν πρόσβαση στον εξυπηρετή
+ σας. </para>
+
+ <para>Αν επιθυμείτε να απορρίψετε την πρόσβαση προς τον εξυπηρετητή
+ σας NTP για όλα τα μηχανήματα, προσθέστε την ακόλουθη γραμμή
+ στο <filename>/etc/ntp.conf</filename>:</para>
+
+ <programlisting>restrict default ignore</programlisting>
+
+ <para>Αν θέλετε μόνο να επιτρέψετε τον συγχρονισμό του εξυπηρετητή σας
+ με μηχανήματα εντός του δικτύου σας, αλλά δίχως δυνατότητα ρύθμισης
+ του εξυπηρετητή ή να γίνουν ομοιόβαθμα με άδεια συγχρονισμού, τότε
+ αντιθέτως προσθέστε:</para>
+
+ <programlisting>restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap</programlisting>
+
+ <para>όπου <hostid role="ipaddr">192.168.1.0</hostid> είναι η
+ διεύθυνση IP του δικτύου
+ και <hostid role="netmask">255.255.255.0</hostid> είναι η μάσκα του
+ δικτύου σας.</para>
+
+ <para>Το <filename>/etc/ntp.conf</filename> μπορεί να περιέχει
+ πολλαπλές επιλογές <literal>restrict</literal>. Για περισσότερες
+ πληροφορίες, δείτε την υποενότητα <literal>Υποστήριξη Ελέγχου
+ Πρόσβασης (Access Control Support)</literal>, υποενότητα του
+ &man.ntp.conf.5;.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Εκτέλεση του NTP Εξυπηρετητή Σας</title>
+
+ <para>Για να βεβαιωθείτε πως ο εξυπηρετητής NTP θα ξεκινάει κατά την
+ διάρκεια εκκίνησης του συστήματος, προσθέστε τη
+ γραμμή <literal>ntpd_enable="YES"</literal>στο<filename>/etc/rc.conf</filename>.
+ Για να ξεκινήσετε τον εξυπηρετητή δίχως να επανεκκινήσετε το μηχάνημα
+ σας, τρέξτε &man.ntpd.8; προσδιορίζοντας κάθε επιπρόσθετη παράμετρο
+ από τα <varname>ntpd_flags</varname>
+ στο <filename>/etc/rc.conf</filename>. Για παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>ntpd -p /var/run/ntpd.pid</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Χρήση του ntpd με Προσωρινή Σύνδεση στο Ίντερνετ</title>
+
+ <para>Το πρόγραμμα &man.ntpd.8; δεν χρειάζεται μια μόνιμη σύνδεση στο
+ Ίντερνετ για να δουλέψει σωστά. Αν έχετε μια προσωρινή σύνδεση που
+ είναι ρυθμισμένη να κάνει κλήσεις μέσω τηλεφώνου (dial out on demand),
+ είναι καλό να μην είναι η κίνηση δεδομένων του NTP το αίτιο της κλήσης
+ ή αυτή που θα κρατάει ενεργή την σύνδεση. Αν χρησιμοποιείτε PPP
+ χρήστη, μπορείτε να χρησιμοποιήσετε <literal>φίλτρα</literal> στους
+ κώδικες παραπομπής του <filename>/etc/ppp/ppp.conf</filename>, όπως
+ για παράδειγμα:</para>
+
+ <programlisting> set filter dial 0 deny udp src eq 123
+ # Prevent NTP traffic from initiating dial out
+ set filter dial 1 permit 0 0
+ set filter alive 0 deny udp src eq 123
+ # Prevent incoming NTP traffic from keeping the connection open
+ set filter alive 1 deny udp dst eq 123
+ # Prevent outgoing NTP traffic from keeping the connection open
+ set filter alive 2 permit 0/0 0/0</programlisting>
+
+ <para>Για περισσότερες λεπτομέρειες δείτε το <literal>PACKET
+ FILTERING</literal> στην ενότητα &man.ppp.8; και τα παραδείγματα
+ στο <filename>/usr/share/examples/ppp/</filename>.</para>
+
+ <note>
+ <para>Σημείωση: Μερικοί ISP μπλοκάρουν την χρήση θύρας με χαμηλό
+ αριθμό, εμποδίζοντας στο NTP να δουλεύει αφού οι απαντήσεις δεν
+ φτάνουν ποτέ στο μηχάνημα σας.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Περαιτέρω Πληροφορίες</title>
+
+ <para>Η τεκμηρίωση για τους εξυπηρετητές NTP διατίθεται και σε φόρμα
+ HTML στο <filename>/usr/share/doc/ntp/</filename>.</para>
+ </sect2>
+ </sect1>
+
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
+<!-- LocalWords: config mnt www -->
diff --git a/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml b/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml
new file mode 100644
index 0000000000..7c1b2bad29
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/pgpkeys/chapter.sgml
@@ -0,0 +1,64 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Κλειδιά PGP
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+ %SRCID% 1.286
+
+-->
+
+<!--
+
+ Μην κάνετε αλλαγές σε αυτό το αρχείο, εκτός από αυτές που
+ περιγράφονται στο script addkey.sh.
+
+ Δείτε το αρχείο README στον κατάλογο doc/share/pgpkeys.
+
+-->
+
+<appendix id="pgpkeys">
+ <title>Κλειδιά PGP</title>
+
+ <indexterm><primary>pgp keys</primary></indexterm>
+ <para>Στο παράρτημα αυτό, θα βρείτε τα δημόσια PGP κλειδιά των officers
+ και των μελών της ομάδας ανάπτυξης του &os;. Μπορείτε να τα
+ χρησιμοποιήσετε για να ελέγξετε μια ψηφιακή υπογραφή ή για να στείλετε
+ κρυπτογραφημένο email σε κάποιο μέλος της ομάδας. Μπορείτε να
+ κατεβάσετε την πλήρη λίστα από κλειδιά χρηστών του <hostid
+ role="domainname">FreeBSD.org</hostid>, από την τοποθεσία
+ <ulink url="&url.base;/doc/pgpkeyring.txt">http://www.FreeBSD.org/doc/pgpkeyring.txt</ulink>.</para>
+
+ <sect1 id="pgpkeys-officers">
+ <title>Officers</title>
+
+ &section.pgpkeys-officers;
+ </sect1>
+
+ <sect1 id="pgpkeys-core">
+ <title>Μέλη της Ομάδας Core</title>
+
+ &section.pgpkeys-core;
+ </sect1>
+
+ <sect1 id="pgpkeys-developers">
+ <title>Μέλη της Ομάδας Ανάπτυξης</title>
+
+ &section.pgpkeys-developers;
+ </sect1>
+</appendix>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../appendix.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "appendix")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml b/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml
new file mode 100644
index 0000000000..e9f6c5126b
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/ports/chapter.sgml
@@ -0,0 +1,1639 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Εγκατάσταση Εφαρμογών: Packages και Ports
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/ports/chapter.sgml
+ %SRCID% 1.293
+
+-->
+
+<chapter id="ports">
+ <title>Εγκατάσταση Εφαρμογών: Πακέτα και Ports</title>
+
+ <sect1 id="ports-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>ports</primary></indexterm>
+ <indexterm><primary>Packages</primary></indexterm>
+ <para>Το &os; συνοδεύεται από μία πλούσια συλλογή από προγράμματα σαν
+ μέρος του βασικού συστήματος. Όμως, λίγα μπορεί να κάνει κάποιος πριν
+ βρεθεί στην ανάγκη να εγκαταστήσει μια πρόσθετη εφαρμογή για να
+ υλοποιήσει μια πραγματική εργασία. Το &os; παρέχει δυο συμπληρωματικές
+ τεχνολογίες για να εγκαταστήσετε πρόσθετες εφαρμογές στο σύστημα σας:
+ τη Συλλογή των Ports (Ports Collection, για εγκατάσταση από τον
+ πηγαίο κώδικα), και τα πακέτα (packages, για εγκατάσταση από
+ προ-μεταγλωττισμένα εκτελέσιμα πακέτα). Κάθε μία από τις δυο μεθόδους
+ μπορεί να χρησιμοποιηθεί για να εγκαταστήσετε τις νεότερες εκδόσεις από
+ τις αγαπημένες σας εφαρμογές, από τοπικά αποθηκευτικά μέσα ή απευθείας
+ από το δίκτυο.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να εγκαθιστάτε προ-μεταγλωττισμένα πακέτα λογισμικού.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να μεταγλωττίζετε πρόσθετο λογισμικό από τον πηγαίο κώδικα
+ χρησιμοποιώντας την Συλλογή των Ports.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να κάνετε απεγκατάσταση εγκαταστημένων πακέτων ή
+ ports.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αλλάζετε τις προκαθορισμένες ρυθμίσεις που χρησιμοποιεί
+ η Συλλογή των Ports.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να βρίσκετε τα κατάλληλα πακέτα λογισμικού.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αναβαθμίζετε τις εφαρμογές σας.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="ports-overview">
+ <title>Επισκόπησή της εγκατάστασης λογισμικού</title>
+
+ <para>Αν έχετε χρησιμοποιήσει ένα &unix; σύστημα στο παρελθόν, θα
+ γνωρίζετε ότι η συνηθισμένη διαδικασία για την εγκατάσταση πρόσθετου
+ λογισμικού είναι περίπου η παρακάτω:</para>
+
+ <procedure>
+ <step>
+ <para><quote>Κατέβασμα</quote> του λογισμικού, που μπορεί να
+ διανέμεται σε μορφή πηγαίου κώδικα, ή σαν εκτελέσιμο.</para>
+ </step>
+
+ <step>
+ <para>Αποσυμπίεση του λογισμικού από την μορφή της διανομής του
+ (συνήθως ένα tarball συμπιεσμένο με το &man.compress.1;,
+ &man.gzip.1;, ή &man.bzip2.1;).</para>
+ </step>
+
+ <step>
+ <para>Εντοπισμός της τεκμηρίωσης (πιθανώς ένα αρχείο
+ <filename>INSTALL</filename> ή <filename>README</filename>
+ ή μερικά αρχεία μέσα σε ένα υποκατάλογο <filename>doc/</filename>)
+ και ανάγνωσή τους για το πως θα εγκατασταθεί το λογισμικό.</para>
+ </step>
+
+ <step>
+ <para>Αν το λογισμικό διανέμεται με τη μορφή πηγαίου κώδικα,
+ μεταγλώττιση του. Αυτό μπορεί να περιλαμβάνει την επεξεργασία ενός
+ <filename>Makefile</filename>, ή την εκτέλεση ενός
+ <command>configure</command> script, και άλλες εργασίες.</para>
+ </step>
+
+ <step>
+ <para>Δοκιμή και εγκατάσταση του λογισμικού.</para>
+ </step>
+ </procedure>
+
+ <para>Και αυτά μόνο αν όλα πάνε καλά. Αν εγκαθιστάτε ένα λογισμικό που
+ δεν έχει μεταφερθεί στο &os; ίσως να πρέπει να τροποποιήσετε τον πηγαίο
+ κώδικα για να δουλέψει σωστά.</para>
+
+ <para>Αν το θέλετε, μπορείτε να συνεχίσετε να εγκαθιστάτε λογισμικό με
+ τον <quote>παραδοσιακό</quote> τρόπο στο &os;. Όμως, το &os;
+ παρέχει δυο τεχνολογίες που μπορούν να σας γλιτώσουν από πολύ κόπο:
+ τα πακέτα και τα ports. Την στιγμή που γράφτηκε αυτό το κείμενο,
+ διατίθονταν με αυτόν τον τρόπο πάνω από &os.numports; πρόσθετες
+ εφαρμογές.</para>
+
+ <para>Για οποιαδήποτε εφαρμογή, το αντίστοιχο &os; πακέτο της
+ είναι ένα μοναδικό αρχείο που πρέπει εσείς να <quote>κατεβάσετε</quote>.
+ Το πακέτο περιέχει προ-μεταγλωττισμένα αντίγραφα από όλες τις εντολές
+ της εφαρμογής, όπως επίσης και αρχεία παραμετροποίησης ή τεκμηρίωσης.
+ Ένα τέτοιο πακέτο σε μορφή αρχείου, μπορείτε να το χειριστείτε με τις
+ εντολές διαχείρισής πακέτων του &os;, όπως οι &man.pkg.add.1;,
+ &man.pkg.delete.1;, &man.pkg.info.1;, και πάει λέγοντας.
+ Η εγκατάσταση μιας νέας εφαρμογής μπορεί να γίνει με μία μόνο
+ εντολή.</para>
+
+ <para>Ένα &os; port για μία εφαρμογή είναι μια συλλογή από αρχεία
+ σχεδιασμένα για να αυτοματοποιήσουν την διαδικασία μεταγλώττισης της
+ εφαρμογής από τον πηγαίο κώδικα.</para>
+
+ <para>Θυμηθείτε ότι υπάρχουν μερικά βήματα που θα πρέπει λογικά να κάνετε
+ αν μεταγλωττίσετε ένα πρόγραμμα μόνος σας (<quote>κατέβασμα</quote>,
+ αποσυμπίεση, προσαρμογή (patching), μεταγλώττιση, εγκατάσταση).
+ Τα αρχεία που αποτελούν ένα port περιέχουν όλες τις απαραίτητες
+ πληροφορίες για να επιτρέψουν στο σύστημα να κάνει όλα αυτά για εσάς.
+ Εσείς εκτελείτε μερικές απλές εντολές, και ο πηγαίος κώδικας για την
+ εφαρμογή αυτόματα <quote>κατεβαίνει</quote>, αποσυμπιέζεται,
+ προσαρμόζεται, μεταγλωττίζεται, και εγκαθίσταται για εσάς.</para>
+
+ <para>Στην πραγματικότητα, το σύστημα ports μπορεί επίσης να
+ χρησιμοποιηθεί για να δημιουργηθούν πακέτα που μπορείτε αργότερα να
+ διαχειριστείτε με την <command>pkg_add</command> και τις άλλες εντολές
+ διαχείρισής πακέτων που θα αναφερθούν σε λίγο.</para>
+
+ <para>Τόσο τα πακέτα, όσο και τα ports κατανοούν τις
+ <emphasis>εξαρτήσεις (dependencies)</emphasis>. Ας υποθέσουμε ότι
+ θέλετε να εγκαταστήσετε μία εφαρμογή που εξαρτάται από μία συγκεκριμένη
+ βιβλιοθήκη για να λειτουργήσει. Τόσο η εφαρμογή, όσο και η βιβλιοθήκη
+ διατίθενται ως πακέτα και ports του &os;. Αν χρησιμοποιήσετε την εντολή
+ <command>pkg_add</command> ή το σύστημα των ports για να εγκαταστήσετε
+ την εφαρμογή, αμφότερα θα παρατηρήσουν ότι η βιβλιοθήκη δεν είναι
+ εγκατεστημένη, και αυτόματα θα την εγκαταστήσουν πριν από το
+ πρόγραμμα.</para>
+
+ <para>Έχοντας αναφέρει ότι οι δύο τεχνολογίες είναι αρκετά όμοιες, ίσως να
+ αναρωτιέστε γιατί το &os; προσφέρει και τις δύο. Τα πακέτα και τα
+ ports αμφότερα έχουν τα δικά τους πλεονεκτήματα, και το τι θα
+ χρησιμοποιήσετε εξαρτάται από την δική σας προτίμηση.</para>
+
+ <itemizedlist>
+ <title>Πλεονεκτήματα των Πακέτων</title>
+
+ <listitem>
+ <para>Ένα συμπιεσμένο tarball πακέτου είναι συνήθως μικρότερο από
+ το συμπιεσμένο tarball που περιέχει τον πηγαίο κώδικα για την
+ εφαρμογή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα πακέτα δεν χρειάζονται μεταγλώττιση. Για
+ μεγάλες εφαρμογές, όπως είναι ο
+ <application>Mozilla</application>, το
+ <application>KDE</application>, ή το
+ <application>GNOME</application> αυτό μπορεί να είναι σημαντικό,
+ ιδιαίτερα αν βρίσκεστε σε ένα αργό μηχάνημα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα πακέτα δεν απαιτούν να κατανοήσετε την διαδικασία
+ που σχετίζεται με την μεταγλώττιση λογισμικού στο &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Πλεονεκτήματα των Ports</title>
+
+ <listitem>
+ <para>Τα πακέτα συνήθως είναι μεταγλωττισμένα με συντηρητικές
+ επιλογές, επειδή πρέπει να λειτουργούν στον μέγιστο αριθμό
+ συστημάτων. Με εγκατάσταση από το port, μπορείτε να ρυθμίσετε τις
+ επιλογές μεταγλώττισης (για παράδειγμα) να δημιουργήσουν εκτελέσιμο
+ κώδικα που να εκμεταλλεύεται τις ικανότητες ενός Pentium 4 ή Athlon
+ επεξεργαστή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μερικές εφαρμογές έχουν επιλογές μεταγλώττισης που σχετίζονται
+ με το τι μπορούν να κάνουν και τι όχι. Για παράδειγμα, ο
+ <application>Apache</application> μπορεί να μεταγλωττιστεί με ένα
+ ευρύ φάσμα από επιλογές. Μεταγλωττίζοντας τον από το port, δεν
+ είναι ανάγκη να δεχτείτε τις προεπιλεγμένες επιλογές, μπορείτε να
+ κάνετε τις δικές σας.</para>
+
+ <para>Σε μερικές περιπτώσεις, μπορεί να υπάρχουν πολλαπλά πακέτα
+ για την ίδια εφαρμογή, με διαφορετικές ρυθμίσεις. Για παράδειγμα,
+ το <application>Ghostscript</application> διατίθεται ως ένα πακέτο
+ <filename>ghostscript</filename> και ένα πακέτο
+ <filename>ghostscript-nox11</filename>, αναλόγως αν
+ θα εγκαταστήσετε ή όχι έναν X11 server. Αυτού του τύπου
+ οι ρυθμίσεις είναι δυνατές με τα πακέτα, αλλά γρήγορα
+ γίνονται αδύνατες αν μία εφαρμογή έχει περισσότερες από μία ή δύο
+ διαφορετικές ρυθμίσεις μεταγλώττισης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι συνθήκες των αδειών διανομής από μερικές διανομές
+ λογισμικού, απαγορεύουν την διανομή εκτελέσιμου κώδικα. Πρέπει να
+ διανεμηθούν με την μορφή πηγαίου κώδικα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μερικά άτομα δεν εμπιστεύονται τα έτοιμα εκτελέσιμα.
+ Τουλάχιστον με τον πηγαίο κώδικα, μπορείτε (θεωρητικά) να τον
+ διαβάσετε και να ψάξετε για πιθανά προβλήματα μόνος σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν έχετε τοπικά, δικά σας patches, θα χρειαστείτε τον πηγαίο
+ κώδικα για να τα εφαρμόσετε.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μερικά άτομα γουστάρουν να έχουν τον πηγαίο κώδικα, ώστε να τον
+ διαβάσουν αν βαρεθούνε, να τον αλλάξουν (hack), να δανειστούν από
+ αυτόν (αν βέβαια το επιτρέπει η άδεια), κ.λ.π.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για να είστε ενήμερος για τα ανανεωμένα ports, εγγραφείτε στην
+ &a.ports; και στην &a.ports-bugs;.</para>
+
+ <warning>
+ <para>Πριν εγκαταστήσετε οποιοδήποτε εφαρμογή, πρέπει να ελέγχετε το
+ <ulink url="http://vuxml.freebsd.org/"></ulink> για θέματα ασφαλείας
+ που σχετίζονται με την εφαρμογή σας.</para>
+
+ <para>Μπορείτε επίσης να εγκαταστήσετε το <filename
+ role="package">ports-mgmt/portaudit</filename> το οποίο αυτόματα
+ θα ελέγχει όλες τις εγκαταστημένες εφαρμογές για γνωστά τρωτά
+ σημεία. Έλεγχος επίσης θα πραγματοποιείται πριν τη μεταγλώττιση
+ οποιουδήποτε port. Στο ενδιάμεσο, μπορείτε να χρησιμοποιείτε την
+ εντολή <command>portaudit -F -a</command> αφότου έχετε πρώτα
+ εγκαταστήσει μερικά πακέτα.</para>
+ </warning>
+
+ <para>Το υπόλοιπο αυτού του κεφαλαίου εξηγεί πως να χρησιμοποιήσετε τα
+ πακέτα και τα ports για να εγκαταστήσετε και να διαχειριστείτε πρόσθετο
+ λογισμικό στο &os;.</para>
+ </sect1>
+
+ <sect1 id="ports-finding-applications">
+ <title>Βρίσκοντας την Εφαρμογή σας</title>
+
+ <para>Πριν εγκαταστήσετε οποιαδήποτε εφαρμογή πρέπει να γνωρίζετε τι
+ θέλετε να κάνει, και πως ονομάζεται η εφαρμογή.</para>
+
+ <para>Η λίστα των διαθέσιμων εφαρμογών στο &os; μεγαλώνει συνεχώς.
+ Ευτυχώς, υπάρχουν πολλοί τρόποι να βρείτε αυτό που θέλετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Στη δικτυακή τοποθεσία του &os; θα βρείτε μια
+ λίστα από όλες τις διαθέσιμες εφαρμογές, στο <ulink
+ url="&url.base;/ports/index.html">http://www.FreeBSD.org/ports/</ulink>.
+ Η λίστα αυτή ανανεώνεται συχνά, ενώ υπάρχει και δυνατότητα
+ αναζήτησης. Τα ports είναι χωρισμένα σε κατηγορίες, και μπορείτε
+ να αναζητήσετε μία εφαρμογή είτε με το όνομα (αν το ξέρετε), ή να
+ δείτε όλες τις εφαρμογές που είναι διαθέσιμες σε μια
+ κατηγορία.</para>
+ </listitem>
+
+ <indexterm><primary>FreshPorts</primary></indexterm>
+ <listitem>
+ <para>Ο Dan Langille διατηρεί το FreshPorts, στο <ulink
+ url="http://www.FreshPorts.org/"></ulink>. Το FreshPorts
+ καταγράφει τις αλλαγές των εφαρμογών στο δέντρο των ports καθώς
+ συμβαίνουν, επιτρέποντάς σας να <quote>παρακολουθείτε</quote> ένα
+ ή περισσότερα ports, και μπορεί να σας στείλει email όταν αυτά
+ ανανεώνονται.</para>
+ </listitem>
+
+ <indexterm><primary>FreshMeat</primary></indexterm>
+ <listitem>
+ <para>Αν δεν γνωρίζετε το όνομα της εφαρμογής που θέλετε,
+ δοκιμάστε να χρησιμοποιήσετε ένα site σαν το FreshMeat (<ulink
+ url="http://www.freshmeat.net/"></ulink>) για να βρείτε μία
+ εφαρμογή, και μετά μπορείτε να ελέγξετε ξανά το site του &os; για
+ να δείτε αν η εφαρμογή έχει γίνει port.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν ξέρετε το ακριβές όνομα του port, και θέλετε μόνο να
+ βρείτε σε ποια κατηγορία είναι, μπορείτε να χρησιμοποιήσετε την
+ εντολή &man.whereis.1;. Απλά γράψτε
+ <command>whereis <replaceable>αρχείο</replaceable></command>, όπου
+ <replaceable>αρχείο</replaceable> είναι το πρόγραμμα που θέλετε να
+ εγκαταστήσετε. Αν αυτό βρίσκεται στο σύστημα σας, η εντολή θα σας
+ πει που είναι, όπως παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>whereis lsof</userinput>
+lsof: /usr/ports/sysutils/lsof</screen>
+
+ <para>Αυτό μας λέει ότι το <command>lsof</command> (ένα εργαλείο
+ συστήματος) μπορεί να βρεθεί στον κατάλογο
+ <filename>/usr/ports/sysutils/lsof</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Επιπρόσθετα, μπορείτε να χρησιμοποιήσετε μια απλή εντολή
+ &man.echo.1; για να εντοπίσετε την τοποθεσία κάποιου προγράμματος
+ μέσα στα ports. Για παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>echo /usr/ports/*/*lsof*</userinput>
+/usr/ports/sysutils/lsof</screen>
+
+ <para>Σημειώστε ότι το παραπάνω θα δείξει επίσης και οποιαδήποτε
+ αρχεία έχουν κατέβει στον κατάλογο
+ <filename class="directory">/usr/ports/distfiles</filename> εφόσον
+ ταιριάζουν στην αναζήτηση.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ακόμη ένας τρόπος να βρείτε ένα συγκεκριμένο port, είναι
+ χρησιμοποιώντας τον εσωτερικό μηχανισμό αναζήτησης της Συλλογής των
+ Ports. Γα να χρησιμοποιήσετε αυτό τον τρόπο αναζήτησης, Θα
+ χρειαστεί να βρίσκεστε στον κατάλογο
+ <filename>/usr/ports</filename>. Όταν βρεθείτε σε αυτόν τον
+ κατάλογο, εκτελέστε το <command>make <maketarget>search</maketarget>
+ name=<replaceable>όνομα--προγράμματος</replaceable></command> όπου
+ <replaceable>όνομα--προγράμματος</replaceable> είναι το όνομα
+ του προγράμματος που θέλετε να βρείτε. Για παράδειγμα, αν αναζητάτε
+ το <command>lsof</command>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
+&prompt.root; <userinput>make search name=lsof</userinput>
+Port: lsof-4.56.4
+Path: /usr/ports/sysutils/lsof
+Info: Lists information about open files (similar to fstat(1))
+Maint: obrien@FreeBSD.org
+Index: sysutils
+B-deps:
+R-deps: </screen>
+
+ <para>Το τμήμα της εξόδου που πρέπει να προσέξετε ιδιαίτερα
+ είναι η γραμμή <quote>Path:</quote>, αφού αυτή σας
+ λέει που να βρείτε το port. Οι υπόλοιπες πληροφορίες που
+ παρέχονται δεν χρειάζονται για να εγκατασταθεί το port, για αυτό
+ δεν θα αναλυθούν εδώ.</para>
+
+ <para>Για πιο λεπτομερή αναζήτηση μπορείτε να χρησιμοποιήσετε επίσης
+ <command>make <maketarget>search</maketarget> key=<replaceable>φράση</replaceable></command> όπου
+ <replaceable>φράση</replaceable> είναι κάποιο κείμενο προς
+ αναζήτηση. Αυτό αναζητά ονόματα port, σχόλια, περιγραφές και
+ εξαρτήσεις, και μπορεί να χρησιμοποιηθεί για να βρεθούν ports που
+ σχετίζονται με ένα συγκεκριμένο θέμα, εάν δεν γνωρίζετε το όνομα
+ του προγράμματος που αναζητάτε.</para>
+
+ <para>Σε όλες τις παραπάνω περιπτώσεις, η φράση προς αναζήτηση είναι
+ case-insensitive (δεν λαμβάνει υπόψη τις διαφορές κεφαλαίων-μικρών).
+ Η αναζήτηση για το <quote>LSOF</quote>, θα δώσει τα ίδια
+ αποτελέσματα με την αναζήτηση για το <quote>lsof</quote>.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="packages-using">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ <!-- 30 Mar 2001 -->
+ </sect1info>
+
+ <title>Χρησιμοποιώντας το Σύστημα των Πακέτων</title>
+
+ <para>Υπάρχουν διάφορα εργαλεία με τα οποία μπορείτε να διαχειριστείτε τα
+ πακέτα στο &os;:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Σε ένα σύστημα που βρίσκεται ήδη σε λειτουργία, μπορείτε να
+ εκτελέσετε το <application>sysinstall</application> για να
+ εγκαταστήσετε, να διαγράψετε, και να δείτε τις εγκατεστημένες και
+ τις διαθέσιμες εφαρμογές. Για περισσότερες πληροφορίες, δείτε το
+ <xref linkend="packages">.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τα διάφορα εργαλεία διαχείρισης μέσω της γραμμής εντολών, που
+ αποτελούν και το αντικείμενο συζήτησης αυτής της ενότητας.</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2>
+ <title>Εγκαθιστώντας ένα Πακέτο</title>
+ <indexterm>
+ <primary>packages</primary>
+ <secondary>installing</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary><command>pkg_add</command></primary>
+ </indexterm>
+ <para>Μπορείτε να χρησιμοποιήσετε το εργαλείο &man.pkg.add.1; για να
+ εγκαταστήσετε ένα πακέτο λογισμικού του &os; από ένα τοπικά
+ αποθηκευμένο αρχείο ή από έναν διακομιστή στο δίκτυο.</para>
+
+ <example>
+ <title><quote>Κατέβασμα</quote> ενός πακέτου χειροκίνητα και
+ εγκατάσταση του τοπικά</title>
+
+ <screen>&prompt.root; <userinput>ftp -a <replaceable>ftp2.FreeBSD.org</replaceable></userinput>
+Connected to ftp2.FreeBSD.org.
+220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
+331 Guest login ok, send your email address as password.
+230-
+230- This machine is in Vienna, VA, USA, hosted by Verio.
+230- Questions? E-mail freebsd@vienna.verio.net.
+230-
+230-
+230 Guest login ok, access restrictions apply.
+Remote system type is UNIX.
+Using binary mode to transfer files.
+<prompt>ftp></prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
+250 CWD command successful.
+<prompt>ftp></prompt> <userinput>get lsof-4.56.4.tgz</userinput>
+local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
+200 PORT command successful.
+150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
+100% |**************************************************| 92375 00:00 ETA
+226 Transfer complete.
+92375 bytes received in 5.60 seconds (16.11 KB/s)
+<prompt>ftp></prompt> <userinput>exit</userinput>
+&prompt.root; <userinput>pkg_add <replaceable>lsof-4.56.4.tgz</replaceable></userinput></screen>
+ </example>
+
+ <para>Εάν δεν έχετε μία τοπική πηγή πακέτων (όπως είναι ένα
+ &os; CD-ROM set) τότε ίσως είναι ευκολότερο να χρησιμοποιήσετε
+ την επιλογή <option>-r</option> για το &man.pkg.add.1;. Αυτή θα
+ κάνει το εργαλείο να καθορίσει αυτόματα τη σωστή μορφή και έκδοση
+ και έπειτα να ανακτήσει και να εγκαταστήσει το πακέτο από ένα FTP
+ site.</para>
+
+ <indexterm><primary><command>pkg_add</command></primary></indexterm>
+ <screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>
+
+ <para>Το παραπάνω παράδειγμα θα <quote>κατεβάσει</quote> και θα
+ εγκαταστήσει το σωστό πακέτο χωρίς περαιτέρω επέμβαση του χρήστη.
+ Αν δεν θέλετε να χρησιμοποιήσετε το κύριο site διανομής πακέτων,
+ μπορείτε να χρησιμοποιήσετε κάποιο mirror. Για το σκοπό αυτό, θα
+ πρέπει να ρυθμίσετε σωστά την τιμή της <envar>PACKAGESITE</envar>,
+ ώστε να παρακάμψετε τις προεπιλεγμένες ρυθμίσεις. Το &man.pkg.add.1;
+ χρησιμοποιεί το &man.fetch.3; για να <quote>κατεβάσει</quote> τα
+ αρχεία, και αυτό με τη σειρά του χρησιμοποιεί διάφορες μεταβλητές
+ περιβάλλοντος, περιλαμβανομένων των
+ <envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>, και
+ <envar>FTP_PASSWORD</envar>. Ίσως χρειαστεί να ρυθμίσετε μία ή
+ περισσότερες από αυτές αν βρίσκεστε πίσω από ένα firewall, ή ίσως να
+ χρειαστεί να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το
+ &man.fetch.3; για την πλήρη λίστα των μεταβλητών. Προσέξτε ότι στο
+ παραπάνω παράδειγμα χρησιμοποιείται το <literal>lsof</literal> αντί
+ του <literal>lsof-4.56.4</literal>. Όταν γίνεται απομακρυσμένη λήψη,
+ πρέπει να αφαιρεθεί ο αριθμός έκδοσης του πακέτου.
+ Το &man.pkg.add.1; θα <quote>κατεβάσει</quote> αυτόματα την τελευταία
+ έκδοση της εφαρμογής.</para>
+
+ <note>
+ <para>Το &man.pkg.add.1; θα <quote>κατεβάσει</quote> την τελευταία
+ έκδοση της εφαρμογής αν χρησιμοποιείτε &os.current; ή
+ &os.stable;. Αν τρέχετε μια -RELEASE έκδοση, θα
+ <quote>κατεβάσει</quote> την έκδοση του πακέτου που έχει
+ μεταγλωττιστεί με την έκδοση σας. Είναι δυνατό να το αλλάξετε
+ αυτό, αλλάζοντας την <envar>PACKAGESITE</envar>.
+ Για παράδειγμα, αν τρέχετε ένα σύστημα &os;&nbsp;8.1-RELEASE,
+ το &man.pkg.add.1;, από προεπιλογή, θα προσπαθήσει να
+ <quote>κατεβάσει</quote> πακέτα από το
+ <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8.1-release/Latest/</literal>.
+ Αν θέλετε να αναγκάσετε το &man.pkg.add.1;
+ να <quote>κατεβάσει</quote> πακέτα του &os;&nbsp;8-STABLE, θέστε
+ την <envar>PACKAGESITE</envar> ως
+ <literal>ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/</literal>.</para>
+ </note>
+
+ <para>Τα αρχεία των πακέτων διανέμονται σε μορφές
+ <filename>.tgz</filename> και <filename>.tbz</filename>. Μπορείτε
+ να τα βρείτε στο <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/"></ulink>,
+ ή στα CD-ROM της διανομής του &os;. Κάθε CD στο &os; 4-CD set (και
+ στο PowerPak, κλπ.) περιέχει πακέτα στον κατάλογο
+ <filename>/packages</filename>. Η κατηγοριοποίηση των πακέτων
+ ακολουθεί την δομή του δέντρου <filename>/usr/ports</filename>.
+ Κάθε κατηγορία έχει το δικό της κατάλογο, και κάθε πακέτο μπορεί να
+ βρεθεί στον κατάλογο <filename>All</filename>.</para>
+
+ <para>Η δομή των καταλόγων του συστήματος πακέτων ταιριάζει με την
+ αντίστοιχη των ports. Τα δύο συστήματα συνεργάζονται μεταξύ τους για
+ να δημιουργήσουν το συνολικό σύστημα πακέτων/ports.</para>
+ </sect2>
+
+ <sect2>
+ <title>Διαχείριση των Πακέτων</title>
+
+ <indexterm>
+ <primary>packages</primary>
+ <secondary>managing</secondary>
+ </indexterm>
+ <para>Το &man.pkg.info.1; είναι ένα εργαλείο που παραθέτει και
+ περιγράφει τα διάφορα πακέτα που είναι εγκαταστημένα.</para>
+
+ <indexterm>
+ <primary><command>pkg_info</command></primary>
+ </indexterm>
+ <screen>&prompt.root; <userinput>pkg_info</userinput>
+cvsup-16.1 A general network file distribution system optimized for CV
+docbook-1.2 Meta-port for the different versions of the DocBook DTD
+...</screen>
+ <para>Το &man.pkg.version.1; είναι ένα εργαλείο που συνοψίζει τις
+ εκδόσεις όλων των εγκαταστημένων πακέτων. Συγκρίνει την έκδοση κάθε
+ πακέτου, με την τρέχουσα έκδοση που βρίσκεται στο δέντρο των
+ ports.</para>
+
+ <indexterm>
+ <primary><command>pkg_version</command></primary>
+ </indexterm>
+ <screen>&prompt.root; <userinput>pkg_version</userinput>
+cvsup =
+docbook =
+...</screen>
+
+ <para>Τα σύμβολα στην δεύτερη στήλη δηλώνουν την σχετική ηλικία
+ μεταξύ των εγκατεστημένων εκδόσεων και των εκδόσεων που είναι
+ διαθέσιμες στο τοπικό δέντρο των ports.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Σύμβολο</entry>
+ <entry>Σημασία</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>=</entry>
+ <entry>Η έκδοση του εγκατεστημένου πακέτου ταιριάζει με αυτή
+ που είναι διαθέσιμη στο τοπικό δέντρο των ports.</entry>
+ </row>
+
+ <row>
+ <entry>&lt;</entry>
+ <entry>Η εγκατεστημένη έκδοση είναι παλαιότερη από αυτή που
+ είναι διαθέσιμη στο δέντρο των ports.</entry>
+ </row>
+
+ <row>
+ <entry>&gt;</entry>
+ <entry>Η εγκατεστημένη έκδοση είναι νεότερη από αυτή που είναι
+ διαθέσιμη στο τοπικό δέντρο των ports. (Το τοπικό δέντρο των
+ ports είναι πιθανότατα απαρχαιωμένο.)</entry>
+ </row>
+
+ <row>
+ <entry>?</entry>
+ <entry>Το εγκατεστημένο πακέτο δεν βρίσκεται στα περιεχόμενα
+ των ports. (Αυτό μπορεί να συμβεί, για παράδειγμα, αν ένα
+ εγκατεστημένο port έχει αφαιρεθεί από την Συλλογή των Ports,
+ ή έχει μετονομαστεί.)</entry>
+ </row>
+
+ <row>
+ <entry>*</entry>
+ <entry>Υπάρχουν πολλαπλές εκδόσεις του πακέτου.</entry>
+ </row>
+
+ <row>
+ <entry>!</entry>
+ <entry>Το εγκατεστημένο πακέτο υπάρχει στο index, αλλά για
+ κάποιο λόγο το <command>pkg_version</command> δεν κατάφερε να
+ συγκρίνει την έκδοση του εγκατεστημένου πακέτου με την
+ αντίστοιχη καταχώρηση στο index.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>Αφαιρώντας ένα Πακέτο</title>
+ <indexterm>
+ <primary><command>pkg_delete</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>packages</primary>
+ <secondary>deleting</secondary>
+ </indexterm>
+ <para>Για να αφαιρέσετε ένα εγκατεστημένο πακέτο λογισμικού,
+ χρησιμοποιήστε το εργαλείο &man.pkg.delete.1;.</para>
+
+ <screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>
+
+ <para>Σημειώστε ότι το &man.pkg.delete.1; απαιτεί το πλήρες όνομα και
+ αριθμό έκδοσης του πακέτου. Η παραπάνω εντολή δεν θα λειτουργήσει
+ αν δώσετε απλώς <replaceable>xchat</replaceable> αντί για
+ <replaceable>xchat-1.7.1</replaceable>. Είναι ωστόσο εύκολο να
+ χρησιμοποιήσετε την &man.pkg.version.1; για να βρείτε την έκδοση του
+ εγκατεστημένου πακέτου. Αντί για αυτό, μπορείτε επίσης να
+ χρησιμοποιήσετε ένα μπαλαντέρ:</para>
+
+ <screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat\*</replaceable></userinput></screen>
+
+ <para>Στην περίπτωση αυτή, θα διαγραφούν όλα τα πακέτα που τα ονόματα
+ τους αρχίζουν με <literal>xchat</literal>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Διάφορα</title>
+
+ <para>Όλες οι πληροφορίες για τα πακέτα είναι αποθηκευμένες στον
+ κατάλογο <filename>/var/db/pkg</filename>. Στα αρχεία αυτού του
+ καταλόγου, θα βρείτε τη περιγραφή κάθε πακέτου, καθώς και τη λίστα
+ των αρχείων που εγκαθιστά.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ports-using">
+ <title>Χρησιμοποιώντας την Συλλογή των Ports</title>
+
+ <para>Τα παρακάτω τμήματα δίνουν βασικές οδηγίες χρήσης της
+ Συλλογής των Ports για εγκατάσταση ή διαγραφή προγραμμάτων στο
+ σύστημα σας. Μπορείτε να βρείτε λεπτομερή περιγραφή των διαθέσιμων
+ επιλογών του <command>make</command> και των μεταβλητών περιβάλλοντος
+ στο &man.ports.7;.</para>
+
+ <sect2 id="ports-tree">
+ <title>Ανακτώντας την Συλλογή των Ports</title>
+
+ <para>Πριν μπορέσετε να εγκαταστήσετε προγράμματα μέσω των ports,
+ πρέπει πρώτα να ανακτήσετε την Συλλογή των Ports. Πρόκειται
+ ουσιαστικά για μια συλλογή από <filename>Makefiles</filename>,
+ patches, και αρχεία περιγραφής που τοποθετούνται στο
+ <filename>/usr/ports</filename>.</para>
+
+ <para>Όταν εγκαταστήσατε το &os; σύστημα σας,
+ το <application>sysinstall</application> σας ρώτησε αν θέλατε
+ να εγκαταστήσετε την Συλλογή των Ports. Αν επιλέξατε όχι, μπορείτε να
+ ακολουθήσετε αυτές τις οδηγίες για να ανακτήσετε την Συλλογή των
+ Ports:</para>
+
+ <procedure>
+ <title>Μέθοδος CVSup</title>
+
+ <para>Αυτή είναι μια γρήγορη μέθοδος για να ανακτήσετε και να
+ διατηρήσετε ένα ανανεωμένο αντίγραφο της Συλλογής των Ports,
+ χρησιμοποιώντας το πρωτόκολλο <application>CVSup</application>.
+ Αν θέλετε να μάθετε περισσότερα για το
+ <application>CVSup</application>, δείτε το
+ <link linkend="cvsup">Χρησιμοποιώντας το CVSup</link>.</para>
+
+ <note>
+ <para>Η υλοποίηση του <application>CVSup</application> που
+ περιλαμβάνεται σε ένα σύστημα &os;, ονομάζεται
+ <application>csup</application>.</para>
+ </note>
+
+ <para>Σιγουρευθείτε ότι το
+ <filename role="directory">/usr/ports</filename>
+ είναι άδειο πριν εκτελέσετε το <application>csup</application> για
+ πρώτη φορά! Εάν έχετε ήδη ανακτήσει τη Συλλογή των Ports μέσω
+ κάποιας άλλης πηγής, το <application>csup</application>
+ δεν θα διαγράψει patches που έχουν αφαιρεθεί στο μεταξύ.</para>
+
+ <step>
+ <para>Εκτελέστε το <command>csup</command>:</para>
+
+ <screen>&prompt.root; <userinput>csup -L 2 -h <replaceable>cvsup.FreeBSD.org</replaceable> /usr/share/examples/cvsup/ports-supfile</userinput></screen>
+
+ <para>Αλλάξτε το
+ <replaceable>cvsup.FreeBSD.org</replaceable> με έναν
+ κοντινό σας διακομιστή <application>CVSup</application>. Δείτε
+ το <link linkend="cvsup-mirrors">CVSup Mirrors</link> (<xref
+ linkend="cvsup-mirrors">) για την πλήρη λίστα των mirror
+ sites.</para>
+
+ <note>
+ <para>Αν θέλετε, μπορείτε να χρησιμοποιήσετε το δικό σας
+ <filename>ports-supfile</filename>, ώστε να αποφύγετε
+ (για παράδειγμα) να δηλώσετε τον διακομιστή
+ <application>CVSup</application> στην γραμμή εντολών.</para>
+
+ <procedure>
+ <step>
+ <para>Σε αυτή την περίπτωση, ως <username>root</username>,
+ αντιγράψτε το
+ <filename>/usr/share/examples/cvsup/ports-supfile</filename>
+ σε μία νέα τοποθεσία, όπως το <filename>/root</filename> ή
+ τον δικό σας home κατάλογο.</para>
+ </step>
+
+ <step>
+ <para>Τροποποιήστε το <filename>ports-supfile</filename>.</para>
+ </step>
+
+ <step>
+ <para>Αλλάξτε το
+ <replaceable>CHANGE_THIS.FreeBSD.org</replaceable>
+ με έναν κοντινό σας διακομιστή
+ <application>CVSup</application>.Δείτε το <link
+ linkend="cvsup-mirrors">CVSup Mirrors</link>
+ (<xref linkend="cvsup-mirrors">) για την
+ πλήρη λίστα των mirror sites.</para>
+ </step>
+
+ <step>
+ <para>Εκτελέστε τώρα το <command>csup</command>, με τον
+ ακόλουθο τρόπο:</para>
+
+ <screen>&prompt.root; <userinput>csup -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen>
+ </step>
+ </procedure>
+ </note>
+ </step>
+
+ <step>
+ <para>Εκτελώντας την εντολή &man.csup.1; αργότερα, θα
+ <quote>κατεβάσει</quote> και θα εφαρμόσει όλες
+ τις πρόσφατες αλλαγές στην Συλλογή των Ports, εκτός από το να
+ επανα-μεταγλωττίσει τα ports για το σύστημα σας.</para>
+ </step>
+ </procedure>
+
+ <procedure>
+ <title>Μέθοδος Portsnap</title>
+
+ <para>Το <application>Portsnap</application> είναι ένα εναλλακτικό
+ σύστημα για την διανομή της Συλλογής των Ports. Παρακαλώ ελέγξτε το
+ <link linkend="updating-upgrading-portsnap">Χρησιμοποιώντας το
+ Portsnap</link> για μία λεπτομερή περιγραφή όλων των
+ χαρακτηριστικών της εφαρμογής.</para>
+
+ <step>
+ <para><quote>Κατεβάστε</quote> ένα συμπιεσμένο snapshot της
+ Συλλογής των Ports
+ <filename class="directory">/var/db/portsnap</filename>.
+ Αν θέλετε, μπορείτε να αποσυνδεθείτε από το Διαδίκτυο μετά από
+ αυτό το βήμα.</para>
+
+ <screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
+ </step>
+
+ <step>
+ <para>Αν εκτελείτε το <application>Portsnap</application> για
+ πρώτη φορά, κάντε εξαγωγή του snapshot μέσα στο <filename
+ class="directory">/usr/ports</filename>:</para>
+
+ <screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
+
+ <para>Εάν ήδη έχετε ένα γεμάτο <filename
+ class="directory">/usr/ports</filename> και απλώς το ανανεώνετε,
+ εκτελέστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portsnap update</userinput></screen>
+ </step>
+ </procedure>
+
+ <procedure>
+ <title>Μέθοδος Sysinstall</title>
+
+ <para>Αυτή η μέθοδος χρησιμοποιεί το
+ <application>sysinstall</application> για την εγκατάσταση της
+ Συλλογής των Ports από το μέσο εγκατάστασης. Σημειώστε ότι με αυτό
+ τον τρόπο θα εγκαταστήσετε το παλαιό αντίγραφο της
+ Συλλογής των Ports, που αντιστοιχεί στην ημερομηνία της έκδοσης του
+ &os; που χρησιμοποιείτε. Εάν έχετε πρόσβαση στο Διαδίκτυο, πρέπει
+ πάντα να χρησιμοποιείτε μία από τις μεθόδους που αναφέρθηκαν πιο
+ πάνω.</para>
+
+ <step>
+ <para>Ως <username>root</username>, εκτελέστε το
+ <command>sysinstall</command> όπως φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>sysinstall</userinput></screen>
+ </step>
+
+ <step>
+ <para>Επιλέξτε το <guimenuitem>Configure</guimenuitem>,
+ και πιέστε <keycap>Enter</keycap>.</para>
+ </step>
+
+ <step>
+ <para>Επιλέξτε το <guimenuitem>Distributions</guimenuitem>, και
+ πιέστε <keycap>Enter</keycap>.</para>
+ </step>
+
+ <step>
+ <para>Μετακινηθείτε στο <guimenuitem>ports</guimenuitem>, και πιέστε
+ <keycap>Space</keycap>.</para>
+ </step>
+
+ <step>
+ <para>Μετακινηθείτε στο <guimenuitem>Exit</guimenuitem>, και πιέστε
+ <keycap>Enter</keycap>.</para>
+ </step>
+
+ <step>
+ <para>Επιλέξτε το μέσο εγκατάστασης της επιθυμίας σας, όπως CDROM,
+ FTP, και πάει λέγοντας.</para>
+ </step>
+
+ <step>
+ <para>Μετακινηθείτε στο <guimenuitem>Exit</guimenuitem> και πιέστε
+ <keycap>Enter</keycap>.</para>
+ </step>
+
+ <step>
+ <para>Πιέστε <keycap>X</keycap> για να βγείτε από το
+ <application>sysinstall</application>.</para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2 id="ports-skeleton">
+ <title>Εγκαθιστώντας Ports</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>installing</secondary>
+ </indexterm>
+ <para>Το πρώτο πράγμα που πρέπει να διευκρινιστεί σχετικά
+ με την Συλλογή των Ports είναι η έννοια του όρου
+ <quote>skeleton (σκελετός)</quote>. Με λίγα λόγια, ένα port skeleton
+ είναι η ελάχιστη συλλογή αρχείων που καθοδηγούν ένα σύστημα &os; ώστε
+ να μεταγλωττίσει και να εγκαταστήσει σωστά ένα πρόγραμμα. Κάθε port
+ skeleton περιέχει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ένα <filename>Makefile</filename>. Το
+ <filename>Makefile</filename> περιέχει διάφορες δηλώσεις
+ που ορίζουν πως πρέπει να μεταγλωττιστεί η εφαρμογή και που
+ πρέπει να εγκατασταθεί στο σύστημά σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα αρχείο <filename>distinfo</filename>. Αυτό το αρχείο
+ περιέχει πληροφορίες για τα αρχεία που πρέπει να
+ <quote>κατέβουν</quote> για την μεταγλώττιση του port, και τα
+ checksums τους (χρησιμοποιώντας το &man.sha256.1;), για να
+ επιβεβαιωθεί ότι τα αρχεία δεν έχουν αλλοιωθεί κατά την διάρκεια
+ της μεταφοράς τους.</para>
+ </listitem>
+
+ <listitem>
+ <para>Έναν κατάλογο <filename>files</filename>. Αυτός ο
+ κατάλογος περιέχει τα patches που επιτρέπουν στο πρόγραμμα να
+ μεταγλωττιστεί και εγκατασταθεί στο &os; σύστημα σας. Τα patches
+ είναι μικρά αρχεία που ορίζουν αλλαγές σε συγκεκριμένα αρχεία.
+ Είναι σε μορφή κοινού κειμένου, και βασικά λένε
+ <quote>Αφαίρεσε την γραμμή 10</quote> ή
+ <quote>Μετέτρεψε τη γραμμή 26 σε αυτό ...</quote>. Τα patches
+ είναι επίσης γνωστά ως <quote>diffs</quote> επειδή δημιουργούνται
+ με το πρόγραμμα &man.diff.1;.</para>
+
+ <para>Αυτός ο κατάλογος μπορεί να περιέχει και άλλα αρχεία που
+ χρησιμοποιούνται για να μεταγλωττιστεί το port.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα αρχείο <filename>pkg-descr</filename>. Αυτό είναι μία πιο
+ λεπτομερής, συχνά πολλών γραμμών, περιγραφή του
+ προγράμματος.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα αρχείο <filename>pkg-plist</filename>. Αυτό περιέχει μια
+ λίστα όλων των αρχείων που θα εγκατασταθούν από το port.
+ Επίσης καθοδηγεί το σύστημα των ports τι αρχεία να αφαιρέσει
+ κατά την απεγκατάσταση.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μερικά ports έχουν και άλλα αρχεία, όπως το
+ <filename>pkg-message</filename>. Το σύστημα των ports χρησιμοποιεί
+ αυτά τα αρχεία για να χειριστεί ειδικές περιστάσεις. Αν θέλετε
+ περισσότερες λεπτομέρειες για αυτά τα αρχεία, και τα ports
+ γενικότερα, δείτε το <ulink
+ url="&url.books.porters-handbook;/index.html">&os; Porter's
+ Handbook</ulink>.</para>
+
+ <para>Το port περιέχει οδηγίες για το πως να μεταγλωττιστεί ο πηγαίος
+ κώδικας, αλλά δεν περιέχει τον πηγαίο κώδικα. Μπορείτε να
+ προμηθευτείτε τον πηγαίο κώδικα από ένα CD-ROM ή από το Διαδίκτυο.
+ Ο πηγαίος κώδικας διανέμεται με οποιοδήποτε τρόπο επιθυμεί ο
+ δημιουργός του. Συχνά είναι ένα tarred και gzipped αρχείο,
+ αλλά μπορεί να είναι συμπιεσμένος με κάποιο άλλο εργαλείο ή να είναι
+ ακόμα και ασυμπίεστος. Ο πηγαίος κώδικας του προγράμματος, σε
+ οποιαδήποτε μορφή κι αν διατίθεται, λέγεται <quote>distfile</quote>.
+ Οι δύο μέθοδοι για να εγκαταστήσετε ένα &os; port περιγράφονται
+ παρακάτω.</para>
+
+ <note>
+ <para>Πρέπει να συνδεθείτε ως <username>root</username> για να
+ εγκαταστήσετε ports.</para>
+ </note>
+
+ <warning>
+ <para>Πριν εγκαταστήσετε οποιαδήποτε port, πρέπει να σιγουρευτείτε
+ ότι έχετε μία ανανεωμένη Συλλογή των Ports, και πρέπει να ελέγξετε
+ το <ulink url="http://vuxml.freebsd.org/"></ulink> για θέματα
+ ασφαλείας σχετικά με το port που ενδιαφέρεστε.</para>
+
+ <para>Αν θέλετε να ελέγχετε αυτόματα για τυχόν προβλήματα ασφαλείας
+ πριν από κάθε εγκατάσταση νέας εφαρμογής, μπορείτε να
+ χρησιμοποιήσετε το <application>portaudit</application>.
+ Θα βρείτε αυτό το εργαλείο στην Συλλογή των Ports
+ (<filename role="package">ports-mgmt/portaudit</filename>). Είναι
+ καλή ιδέα να εκτελέσετε το <command>portaudit -F</command> πριν
+ εγκαταστήσετε ένα νέο port, για να ανακτήσετε την τρέχουσα βάση
+ δεδομένων προβλημάτων ασφαλείας. Αντίστοιχος έλεγχος και ανανέωση
+ της βάσης δεδομένων εκτελείται επίσης αυτόματα κατά τον καθημερινό
+ έλεγχο ασφαλείας του συστήματος. Για περισσότερες
+ πληροφορίες διαβάστε τις σελίδες manual &man.portaudit.1; και
+ &man.periodic.8;.</para>
+ </warning>
+
+ <para>Η Συλλογή των Ports προϋποθέτει ότι έχετε λειτουργική σύνδεση με
+ το Διαδίκτυο. Εάν δεν έχετε, θα χρειαστεί να βάλετε μόνος σας ένα
+ αντίγραφο του distfile μέσα στο
+ <filename>/usr/ports/distfiles</filename>.</para>
+
+ <para>Αρχικά, μετακινηθείτε στον κατάλογο του port που θέλετε να
+ εγκαταστήσετε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>
+
+ <para>Μόλις βρεθείτε στον κατάλογο <filename>lsof</filename>, θα
+ δείτε τον port skeleton. Το επόμενο βήμα είναι να μεταγλωττίσετε,
+ ή να <quote>κτίσετε (build)</quote>, το port. Αυτό γίνεται απλά
+ πληκτρολογώντας <command>make</command> στην γραμμή εντολών. Όταν το
+ κάνετε, θα δείτε κάτι όπως αυτό:</para>
+
+ <screen>&prompt.root; <userinput>make</userinput>
+&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
+&gt;&gt; Attempting to fetch from ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/.
+===&gt; Extracting for lsof-4.57
+...
+[extraction output snipped]
+...
+&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
+===&gt; Patching for lsof-4.57
+===&gt; Applying FreeBSD patches for lsof-4.57
+===&gt; Configuring for lsof-4.57
+...
+[configure output snipped]
+...
+===&gt; Building for lsof-4.57
+...
+[compilation output snipped]
+...
+&prompt.root;</screen>
+
+ <para>Προσέξτε ότι μόλις η μεταγλώττιση ολοκληρωθεί θα επιστρέψετε
+ στην γραμμή εντολών. Το επόμενο βήμα είναι να εγκαταστήσετε το
+ port. Για να το εγκαταστήσετε, χρειάζεται απλώς να προσθέσετε μια
+ λέξη στην εντολή <command>make</command>, και αυτή η λέξη είναι
+ <maketarget>install</maketarget>:</para>
+
+ <screen>&prompt.root; <userinput>make install</userinput>
+===&gt; Installing for lsof-4.57
+...
+[installation output snipped]
+...
+===&gt; Generating temporary packing list
+===&gt; Compressing manual pages for lsof-4.57
+===&gt; Registering installation for lsof-4.57
+===&gt; SECURITY NOTE:
+ This port has installed the following binaries which execute with
+ increased privileges.
+&prompt.root;</screen>
+
+ <para>Μόλις επιστρέψετε στην γραμμή εντολών, θα πρέπει να μπορείτε
+ να εκτελέσετε την εφαρμογή που μόλις εγκαταστήσατε. Θα δείτε μια
+ προειδοποίηση ασφαλείας, επειδή το <command>lsof</command> είναι ένα
+ πρόγραμμα που τρέχει με αυξημένα προνόμια. Κατά την μεταγλώττιση
+ και εγκατάσταση των ports, θα πρέπει να προσέχετε οποιαδήποτε
+ προειδοποίηση εμφανιστεί.</para>
+
+ <para>Μια καλή ιδέα, είναι να διαγράψετε τον υποκατάλογο
+ που περιέχει όλα τα προσωρινά αρχεία που χρησιμοποιήθηκαν κατά την
+ μεταγλώττιση. Όχι μόνο καταναλώνουν πολύτιμο χώρο, άλλα μπορεί να
+ προκαλέσουν προβλήματα αργότερα όταν θα θελήσετε να εγκαταστήσετε μια
+ νεότερη έκδοση του port.</para>
+
+ <screen>&prompt.root; <userinput>make clean</userinput>
+===&gt; Cleaning for lsof-4.57
+&prompt.root;</screen>
+
+ <note>
+ <para>Μπορείτε να γλιτώσετε δύο πρόσθετα βήματα απλώς εκτελώντας
+ <command>make <maketarget>install clean</maketarget></command> αντί
+ για <command>make</command>,
+ <command>make <maketarget>install</maketarget></command> και
+ <command>make <maketarget>clean</maketarget></command>
+ ως τρία ξεχωριστά βήματα.</para>
+ </note>
+
+ <note>
+ <para>Μερικά κελύφη κρατάνε μια λίστα από τις εντολές που βρίσκονται
+ διαθέσιμες στους καταλόγους που αναφέρονται στην μεταβλητή
+ περιβάλλοντος <envar>PATH</envar>, για να επιταχύνουν τις
+ αναζητήσεις για τα εκτελέσιμα αρχεία αυτών των εντολών.
+ Αν χρησιμοποιείτε ένα από αυτά τα κελύφη, θα πρέπει
+ να χρησιμοποιήσετε την εντολή <command>rehash</command> μετά
+ την εγκατάσταση ενός port, πριν μπορέσετε να χρησιμοποιήσετε τις
+ νέες εντολές. Αυτή η εντολή λειτουργεί σε κελύφη όπως το
+ <command>tcsh</command>. Χρησιμοποιήστε την εντολή
+ <command>hash -r</command> για κελύφη όπως το
+ <command>sh</command>. Δείτε την τεκμηρίωση του κελύφους σας για
+ περισσότερες πληροφορίες.</para>
+ </note>
+
+ <para>Μερικά προϊόντα τρίτων κατασκευαστών σε DVD-ROM, όπως το &os;
+ Toolkit από το <ulink
+ url="http://www.freebsdmall.com/">&os; Mall</ulink>, περιέχουν
+ distfiles. Αυτά μπορούν να χρησιμοποιηθούν με την Συλλογή των Ports.
+ Προσαρτήστε το DVD-ROM στο <filename>/cdrom</filename>. Αν
+ χρησιμοποιείτε κάποιο διαφορετικό σημείο προσάρτησης, ρυθμίστε την
+ μεταβλητή <makevar>CD_MOUNTPTS</makevar> του make. Τα αναγκαία
+ distfiles θα χρησιμοποιηθούν αυτόματα αν υπάρχουν στο δισκάκι.</para>
+
+ <note>
+ <para>Πρέπει να γνωρίζετε ότι οι άδειες μερικών ports δεν επιτρέπουν
+ την διανομή τους σε CD-ROM. Αυτό μπορεί να οφείλεται π.χ. στο ότι
+ πρέπει να συμπληρώσετε μια φόρμα εγγραφής πριν
+ <quote>κατεβάσετε</quote> την εφαρμογή, ή στο ότι δεν επιτρέπεται η
+ επαναδιανομή, ή σε κάποιο άλλο λόγο. Εάν θέλετε να εγκαταστήσετε
+ ένα port που δεν περιλαμβάνεται στο CD-ROM, θα χρειαστεί να είστε
+ συνδεδεμένος στο Διαδίκτυο για να το επιτύχετε.</para>
+ </note>
+
+ <para>Το σύστημα των ports χρησιμοποιεί το &man.fetch.3; για να
+ <quote>κατεβάσει</quote> τα αρχεία. Το &man.fetch.3;
+ χρησιμοποιεί διάφορες μεταβλητές περιβάλλοντος, περιλαμβανομένων των
+ <envar>FTP_PASSIVE_MODE</envar>, <envar>FTP_PROXY</envar>, και
+ <envar>FTP_PASSWORD</envar>. Ίσως χρειαστεί να ρυθμίσετε μία ή
+ περισσότερες αν βρίσκεστε πίσω από ένα firewall, ή ίσως να χρειαστεί
+ να χρησιμοποιήσετε έναν FTP/HTTP proxy. Δείτε το &man.fetch.3; για
+ μια πλήρη λίστα των μεταβλητών αυτών.</para>
+
+ <para>Για χρήστες που δεν μπορούν να είναι συνδεδεμένοι όλη την ώρα,
+ διατίθεται η επιλογή
+ <command>make <maketarget>fetch</maketarget></command>.
+ Απλώς εκτελέστε την εντολή στον κατάλογο
+ (<filename>/usr/ports</filename>) και τα απαραίτητα αρχεία
+ θα <quote>κατέβουν</quote> για εσάς. Η εντολή αυτή θα λειτουργήσει
+ και σε υποκαταλόγους, όπως για παράδειγμα:
+ <filename>/usr/ports/net</filename>. Προσέξτε ότι αν ένα port
+ εξαρτάται από βιβλιοθήκες ή άλλα ports, η εντολή αυτή
+ <emphasis>δεν</emphasis> θα ανακτήσει τα distfiles τους.
+ Αντικαταστήστε το <maketarget>fetch</maketarget> με το
+ <maketarget>fetch-recursive</maketarget>
+ αν θέλετε μαζί με το port να ανακτήσετε και όλες τις
+ εξαρτήσεις του.</para>
+
+ <note>
+ <para>Μπορείτε να μεταγλωττίσετε όλα τα ports σε μία κατηγορία ή
+ ακόμα και σε όλες, εκτελώντας το <command>make</command> στον αρχικό
+ κατάλογο, όπως με την προαναφερθείσα
+ <command>make <maketarget>fetch</maketarget></command> μέθοδο.
+ Αυτό όμως είναι επικίνδυνο, γιατί μερικά ports δεν μπορούν να
+ συνυπάρχουν. Σε άλλες περιπτώσεις, μερικά ports μπορεί να
+ εγκαταστήσουν δυο διαφορετικά αρχεία με το με το ίδιο
+ όνομα.</para>
+ </note>
+
+ <para>Σε μερικές σπάνιες περιπτώσεις, οι χρήστες μπορεί να χρειάζεται
+ να ανακτήσουν τα tarballs από ένα site διαφορετικό από τα
+ <makevar>MASTER_SITES</makevar> (η τοποθεσία από όπου
+ <quote>κατεβαίνουν</quote> τα αρχεία). Μπορείτε να αλλάξετε την
+ επιλογή <makevar>MASTER_SITES</makevar> με την ακόλουθη
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
+&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
+ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
+
+ <para>Σε αυτό το παράδειγμα αλλάξαμε την επιλογή
+ <makevar>MASTER_SITES</makevar> σε <hostid
+ role="fqdn">ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>.</para>
+
+ <note>
+ <para>Μερικά ports επιτρέπουν (ή απαιτούν) να δώσετε επιλογές
+ μεταγλώττισης που μπορούν να ενεργοποιήσουν/απενεργοποιήσουν
+ τμήματα της εφαρμογής που είναι αχρείαστα, συγκεκριμένες επιλογές
+ ασφαλείας, και άλλες τροποποιήσεις. Κοινά παραδείγματα τέτοιων
+ ports είναι τα <filename role="package">www/firefox</filename>,
+ <filename role="package">security/gpgme</filename>, και το
+ <filename role="package">mail/sylpheed-claws</filename>. Όταν
+ υπάρχουν διαθέσιμες τέτοιες επιλογές, θα εμφανιστεί στην οθόνη
+ σας σχετικό μήνυμα.</para>
+ </note>
+
+ <sect3>
+ <title>Παρακάμπτοντας τους Προεπιλεγμένους Καταλόγους των
+ Ports</title>
+
+ <para>Μερικές φορές είναι χρήσιμο (ή επιτακτικό) να χρησιμοποιήσετε
+ ένα διαφορετικό κατάλογο εργασίας και εγκατάστασης. Οι μεταβλητές
+ <makevar>WRKDIRPREFIX</makevar> και <makevar>PREFIX</makevar>
+ μπορούν να παρακάμψουν τους προεπιλεγμένους καταλόγους. Για
+ παράδειγμα, η εντολή:</para>
+
+ <screen>&prompt.root; <userinput>make WRKDIRPREFIX=/usr/home/example/ports install</userinput></screen>
+
+ <para>θα μεταγλωττίσει το port στο
+ <filename>/usr/home/example/ports</filename> και θα εγκαταστήσει
+ τα πάντα στο <filename>/usr/local</filename>, ενώ η εντολή:</para>
+
+ <screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>
+
+ <para>θα μεταγλωττίσει το port στο <filename>/usr/ports</filename> και
+ θα το εγκαταστήσει στο
+ <filename>/usr/home/example/local</filename>.</para>
+
+ <para>Και φυσικά η εντολή:</para>
+
+ <screen>&prompt.root; <userinput>make WRKDIRPREFIX=../ports PREFIX=../local install</userinput></screen>
+
+ <para>θα συνδυάσει και τα δυο (είναι πολύ μεγάλη για να την δείξουμε
+ εδώ, άλλα πρέπει να πήρατε την γενική ιδέα).</para>
+
+ <para>Εναλλακτικά, αυτές οι μεταβλητές μπορούν να ρυθμιστούν ως μέρος
+ του περιβάλλοντος σας. Διαβάστε την σελίδα manual για το κέλυφος
+ σας, για να βρείτε τις σχετικές οδηγίες.</para>
+ </sect3>
+
+ <sect3>
+ <title>Αντιμετωπίζοντας το <command>imake</command></title>
+
+ <para>Μερικά ports που χρησιμοποιούν το <command>imake</command>
+ (μέρος του X Window System) δεν συνεργάζονται σωστά με το
+ <makevar>PREFIX</makevar>, και επιμένουν να εγκατασταθούν
+ στο <filename>/usr/X11R6</filename>. Όμοια, μερικά Perl
+ ports αγνοούν το <makevar>PREFIX</makevar> και εγκαθίστανται στο
+ δέντρο Perl. Το να κάνετε αυτά τα ports να σέβονται το
+ <makevar>PREFIX</makevar> είναι μία δύσκολη ή αδύνατη
+ δουλειά.</para>
+ </sect3>
+
+ <sect3>
+ <title>Επαναρύθμιση Επιλογών Ports</title>
+
+ <para>Όταν μεταγλωττίζετε κάποια ports, μπορεί να εμφανιστεί στην
+ οθόνη σας ένα μενού επιλογών (βασισμένο σε ncurses) το οποίο να σας
+ επιτρέπει να αλλάξετε διάφορες επιλογές μεταγλώττισης. Δεν είναι
+ σπάνιο κάποιοι χρήστες να θέλουν να επισκεφτούν ξανά αυτό το μενού,
+ για να προσθέσουν, να αφαιρέσουν ή να αλλάξουν κάποιες επιλογές,
+ μετά την μεταγλώττιση του port. Μια επιλογή είναι να μετακινηθείτε
+ στον κατάλογο του port και να γράψετε
+ <command>make <maketarget>config</maketarget></command>, με το
+ οποίο θα εμφανιστεί ξανά το μενού με τις προηγούμενες ρυθμίσεις σας
+ ήδη επιλεγμένες. Μια άλλη δυνατότητα, είναι να χρησιμοποιήσετε την
+ εντολή <command>make <maketarget>showconfig</maketarget></command>,
+ με την οποία θα δείτε όλες τις επιλεγμένες ρυθμίσεις του port.
+ Τέλος, μια ακόμα επιλογή είναι να εκτελέσετε την εντολή
+ <command>make <maketarget>rmconfig</maketarget></command> η οποία
+ θα αφαιρέσει όλες τις αποθηκευμένες επιλογές και θα σας επιτρέψει να
+ ξεκινήσετε ξανά από την αρχή. Όλες αυτές οι επιλογές, και ακόμα
+ περισσότερες, εξηγούνται στη σελίδα manual του &man.ports.7;.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="ports-removing">
+ <title>Αφαιρώντας Εγκατεστημένα Ports</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>removing</secondary>
+ </indexterm>
+ <para>Τώρα που γνωρίσατε πως να εγκαθιστάτε ports, πιθανώς θα
+ αναρωτιέστε πως αφαιρούνται, στην περίπτωση που εγκαταστήσατε ένα
+ και αργότερα αποφασίσατε ότι εγκαταστήσατε το λάθος port.
+ Θα αφαιρέσουμε το προηγούμενο παράδειγμα (που ήταν το
+ <command>lsof</command> για όσους δεν το πρόσεξαν). Τα ports
+ αφαιρούνται όπως και τα πακέτα (το αναλύσαμε στην ενότητα <link
+ linkend="packages-using">Χρησιμοποιώντας το Σύστημα των
+ Πακέτων</link>), χρησιμοποιώντας την
+ εντολή &man.pkg.delete.1;:</para>
+
+ <screen>&prompt.root; <userinput>pkg_delete lsof-4.57</userinput></screen>
+ </sect2>
+
+ <sect2 id="ports-upgrading">
+ <title>Αναβαθμίζοντας τα Ports</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>upgrading</secondary>
+ </indexterm>
+ <para>Αρχικά, δείτε τα παρωχημένα ports για τα οποία υπάρχουν
+ διαθέσιμες νεότερες εκδόσεις στην Συλλογή των Ports, με την εντολή
+ &man.pkg.version.1;:</para>
+
+ <screen>&prompt.root; <userinput>pkg_version -v</userinput></screen>
+
+ <sect3 id="ports-file-updating">
+ <title><filename>/usr/ports/UPDATING</filename></title>
+
+ <para>Μόλις ανανεώσετε την Συλλογή των Ports, πρέπει να ελέγξετε το
+ αρχείο <filename>/usr/ports/UPDATING</filename>, πριν επιχειρήσετε
+ την αναβάθμιση ενός port. Αυτό το αρχείο περιγράφει διάφορα πιθανά
+ προβλήματα, καθώς και ενδεχόμενα πρόσθετα βήματα που πρέπει να
+ εκτελέσετε όταν ανανεώνετε ένα port. Παραδείγματα των παραπάνω,
+ είναι η αλλαγή μορφής κάποιων αρχείων, αλλαγή στην τοποθεσία
+ των αρχείων ρυθμίσεων, ή άλλες ασυμβατότητες
+ με παλαιότερες εκδόσεις.</para>
+
+ <para>Αν το <filename>UPDATING</filename> αναιρεί κάτι που διαβάσατε
+ εδώ, θεωρήστε ότι ισχύει το <filename>UPDATING</filename>.</para>
+ </sect3>
+
+ <sect3 id="portupgrade">
+ <title>Αναβαθμίζοντας Ports με το Portupgrade</title>
+
+ <indexterm>
+ <primary>portupgrade</primary>
+ </indexterm>
+
+ <para>Το εργαλείο <application>portupgrade</application> είναι
+ σχεδιασμένο για να αναβαθμίζει εύκολα εγκατεστημένα ports.
+ Διατίθεται από το
+ <filename role="package">ports-mgmt/portupgrade</filename> port.
+ Εγκαταστήστε το όπως κάθε port, χρησιμοποιώντας την εντολή
+ <command>make <maketarget>install clean</maketarget></command>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portupgrade</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Η εντολή <command>pkgdb -F</command> θα διαβάσει και θα
+ διορθώσει όλες τις ασυνέπειες που ίσως υπάρχουν στη λίστα των
+ εγκατεστημένων ports. Είναι καλή ιδέα είναι να την εκτελείτε
+ συχνά, ενδεχομένως πριν από κάθε αναβάθμιση.</para>
+
+ <para>Όταν εκτελείτε το <command>portupgrade -a</command>, το
+ <application>portupgrade</application> θα αρχίσει να αναβαθμίζει
+ όλα τα παρωχημένα ports που είναι εγκατεστημένα στο σύστημα σας.
+ Χρησιμοποιήστε την επιλογή <option>-i</option> αν θέλετε να σας
+ ρωτά για επιβεβαίωση για κάθε ξεχωριστή αναβάθμιση.</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -ai</userinput></screen>
+
+ <para>Αν θέλετε να αναβαθμίσετε μόνο μία συγκεκριμένη εφαρμογή, και
+ όχι όλα τα διαθέσιμα ports, χρησιμοποιήστε το
+ <command>portupgrade <replaceable>pkgname</replaceable></command>.
+ Συμπεριλάβετε την επιλογή <option>-R</option> αν το
+ <application>portupgrade</application> πρέπει πρώτα να αναβαθμίσει
+ όλα τα ports που απαιτούνται για την συγκεκριμένη εφαρμογή.</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -R firefox</userinput></screen>
+
+ <para>Για να χρησιμοποιήσετε πακέτα αντί για ports στην εγκατάσταση,
+ δώστε την επιλογή <option>-P</option>. Με αυτή την επιλογή το
+ <application>portupgrade</application> αναζητά
+ τους τοπικούς καταλόγους που ορίζονται στο <envar>PKG_PATH</envar>,
+ ή ανακτά τα πακέτα από απομακρυσμένα sites εάν δεν βρεθούν τοπικά.
+ Αν τα πακέτα δεν μπορούν να ανακτηθούν με τους παραπάνω τρόπους, το
+ <application>portupgrade</application> θα χρησιμοποιήσει τα ports.
+ Για να αποφύγετε εντελώς την χρήση των ports, καθορίστε την επιλογή
+ <option>-PP</option>.</para>
+
+ <screen>&prompt.root; <userinput>portupgrade -PR gnome2</userinput></screen>
+
+ <para>Για να ανακτήσετε απλώς τα distfiles (ή τα πακέτα, αν έχετε
+ ορίσει την επιλογή <option>-P</option>) χωρίς να μεταγλωττίσετε ή να
+ εγκαταστήσετε τίποτα, χρησιμοποιήστε το <option>-F</option>.
+ Για περισσότερες πληροφορίες, δείτε το &man.portupgrade.1;.</para>
+ </sect3>
+
+ <sect3 id="portmanager">
+ <title>Αναβαθμίζοντας Ports με το Portmanager</title>
+
+ <indexterm>
+ <primary>portmanager</primary>
+ </indexterm>
+ <para>Το <application>Portmanager</application> είναι ένα ακόμα
+ εργαλείο για εύκολη αναβάθμιση εγκατεστημένων ports. Διατίθεται
+ από το <filename role="package">ports-mgmt/portmanager</filename>
+ port:</para>
+
+ <screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmanager</filename></userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Όλα τα εγκατεστημένα ports μπορούν να αναβαθμιστούν
+ χρησιμοποιώντας αυτή την απλή εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portmanager -u</userinput></screen>
+
+ <para>Μπορείτε να προσθέσετε την επιλογή <option>-ui</option> για να
+ ερωτηθείτε να επιβεβαιώσετε κάθε βήμα που θα εκτελέσει το
+ <application>Portmanager</application>.
+ Το <application>Portmanager</application> μπορεί επίσης
+ να χρησιμοποιηθεί για να εγκαταστήσετε νέα ports στο σύστημα.
+ Σε αντίθεση με την εντολή
+ <command>make <maketarget>install clean</maketarget></command>, το
+ <application>Portmanager</application> θα αναβαθμίσει όλες
+ τις εξαρτήσεις πριν την μεταγλώττιση και εγκατάσταση του
+ επιλεγμένου port.</para>
+
+ <screen>&prompt.root; <userinput>portmanager <replaceable>x11/gnome2</replaceable></userinput></screen>
+
+ <para>Αν υπάρχουν προβλήματα που σχετίζονται με τις εξαρτήσεις ενός
+ επιλεγμένου port, μπορείτε να χρησιμοποιήσετε το
+ <application>Portmanager</application> για να τις
+ επανα-μεταγλωττίσει όλες με την σωστή σειρά. Μόλις τελειώσει με
+ τις εξαρτήσεις, θα επανα-μεταγλωττίσει και το προβληματικό
+ port.</para>
+
+ <screen>&prompt.root; <userinput>portmanager <replaceable>graphics/gimp</replaceable> -f</userinput></screen>
+
+ <para>Για περισσότερες πληροφορίες δείτε τη σελίδα manual
+ &man.portmanager.1;.</para>
+ </sect3>
+
+ <sect3 id="portmaster">
+ <title>Αναβαθμίζοντας τα Ports μέσω του Portmaster</title>
+
+ <indexterm>
+ <primary>portmaster</primary>
+ </indexterm>
+ <para>Το <application>Portmaster</application> είναι ένα ακόμα
+ εργαλείο για την αναβάθμιση των εγκατεστημένων ports. Το
+ <application>Portmaster</application> σχεδιάστηκε ώστε να
+ χρησιμοποιεί τα εργαλεία που παρέχει το <quote>βασικό</quote>
+ σύστημα (δεν εξαρτάται από άλλα ports) και χρησιμοποιεί τις
+ πληροφορίες του <filename class="directory">/var/db/pkg</filename>
+ για να καθορίσει ποια ports θα αναβαθμίσει. Είναι διαθέσιμο μέσω
+ του port
+ <filename role="package">ports-mgmt/portmaster</filename>:</para>
+
+ <screen>&prompt.root; <userinput>cd <filename class="directory">/usr/ports/ports-mgmt/portmaster</filename></userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Το <application>Portmaster</application> ομαδοποιεί τα ports
+ σε τέσσερις κατηγορίες:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Root ports (δεν εξαρτώνται από άλλα, και ούτε άλλα
+ εξαρτώνται από αυτά)</para>
+ </listitem>
+
+ <listitem>
+ <para>Trunk ports (δεν εξαρτώνται από άλλα, ωστόσο κάποια πακέτα
+ εξαρτώνται από αυτά)</para>
+ </listitem>
+
+ <listitem>
+ <para>Branch ports (έχουν εξαρτήσεις και προς τις δύο
+ κατευθύνσεις)</para>
+ </listitem>
+
+ <listitem>
+ <para>Leaf ports (εξαρτώνται από άλλα, αλλά όχι το
+ αντίθετο)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μπορείτε να δείτε μια λίστα όλων των εγκατεστημένων ports και
+ να ψάξετε για ενημερωμένες εκδόσεις, χρησιμοποιώντας την επιλογή
+ <option>-L</option>:</para>
+
+ <screen>&prompt.root; <userinput>portmaster -L</userinput>
+===>>> Root ports (No dependencies, not depended on)
+===>>> ispell-3.2.06_18
+===>>> screen-4.0.3
+ ===>>> New version available: screen-4.0.3_1
+===>>> tcpflow-0.21_1
+===>>> 7 root ports
+...
+===>>> Branch ports (Have dependencies, are depended on)
+===>>> apache-2.2.3
+ ===>>> New version available: apache-2.2.8
+...
+===>>> Leaf ports (Have dependencies, not depended on)
+===>>> automake-1.9.6_2
+===>>> bash-3.1.17
+ ===>>> New version available: bash-3.2.33
+...
+===>>> 32 leaf ports
+
+===>>> 137 total installed ports
+ ===>>> 83 have new versions available</screen>
+
+ <para>Μπορείτε να αναβαθμίσετε όλα τα εγκατεστημένα ports με την
+ παρακάτω απλή εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portmaster -a</userinput></screen>
+
+ <note><para>Από προεπιλογή, το <application>Portmaster</application>
+ θα δημιουργήσει αντίγραφο ασφαλείας του εγκατεστημένου πακέτου
+ πριν το διαγράψει. Αν η εγκατάσταση της νέας έκδοσης είναι
+ επιτυχής, το <application>Portmaster</application> θα σβήσει το
+ αντίγραφο αυτό. Αν χρησιμοποιήσετε την επιλογή
+ <option>-b</option>, το <application>Portmaster</application> δεν
+ θα σβήσει αυτόματα το αντίγραφο. Αν χρησιμοποιήσετε την επιλογή
+ <option>-i</option>, θα θέσετε το
+ <application>Portmaster</application> σε διαδραστική λειτουργία,
+ όπου θα σας ζητάει επιβεβαίωση πριν την αναβάθμιση κάθε
+ port.</para></note>
+
+ <para>Αν αντιμετωπίσετε λάθη κατά τη διαδικασία της αναβάθμισης,
+ μπορείτε να χρησιμοποιήσετε την επιλογή <option>-f</option> για
+ να αναβαθμίσετε και να μεταγλωττίσετε ξανά όλα τα ports:</para>
+
+ <screen>&prompt.root; <userinput>portmaster -af</userinput></screen>
+
+ <para>Μπορείτε επίσης να χρησιμοποιήσετε το
+ <application>Portmaster</application> για να εγκαταστήσετε νέα
+ ports στο σύστημα σας, αναβαθμίζοντας και όλες τις εξαρτήσεις τους
+ πριν τη μεταγλώττιση και εγκατάσταση τους:</para>
+
+ <screen>&prompt.root; <userinput>portmaster <replaceable>shells/bash</replaceable></userinput></screen>
+
+ <para>Παρακαλούμε δείτε τη σελίδα manual του &man.portmaster.8; για
+ περισσότερες πληροφορίες.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="ports-disk-space">
+ <title>Ports και Αποθηκευτικός Χώρος</title>
+
+ <indexterm>
+ <primary>ports</primary>
+ <secondary>disk-space</secondary>
+ </indexterm>
+ <para>Η Συλλογή των Ports καταναλώνει διαθέσιμο χώρο στο δίσκο με την
+ πάροδο του χρόνου. Μετά την μεταγλώττιση και εγκατάσταση λογισμικού
+ από τα ports, πρέπει πάντα να θυμάστε να καθαρίζετε τους προσωρινούς
+ καταλόγους <filename class="directory">work</filename>
+ χρησιμοποιώντας την εντολή
+ <command>make <maketarget>clean</maketarget></command>. Mπορείτε να
+ καθαρίσετε όλη την Συλλογή των Ports με την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>portsclean -C</userinput></screen>
+
+ <para>Με την πάροδο του χρόνου, θα συσσωρευτούν πολλά αρχεία διανομής
+ πηγαίου κώδικα στον κατάλογο
+ <filename class="directory">distfiles</filename>.
+ Μπορείτε να τα αφαιρέσετε χειροκίνητα, ή μπορείτε να χρησιμοποιήσετε
+ την ακόλουθη εντολή για να διαγράψετε όλα τα distfiles που δεν
+ σχετίζονται πλέον με κανένα port:</para>
+
+ <screen>&prompt.root; <userinput>portsclean -D</userinput></screen>
+
+ <para>Ή για να αφαιρέσετε όλα τα distfiles που δεν σχετίζονται με
+ κανένα port που βρίσκεται εγκατεστημένο στο σύστημα σας:</para>
+
+ <screen>&prompt.root; <userinput>portsclean -DD</userinput></screen>
+
+ <note>
+ <para>Το εργαλείο <command>portsclean</command> εγκαθίσταται ως μέρος
+ του <application>portupgrade</application>.</para>
+ </note>
+
+ <para>Μην ξεχνάτε να αφαιρείτε τα εγκατεστημένα ports όταν δεν τα
+ χρειάζεστε πλέον. Ένα καλό εργαλείο για να αυτοματοποιηθεί αυτή η
+ εργασία, είναι το port
+ <filename role="package">ports-mgmt/pkg_cutleaves</filename>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ports-nextsteps">
+ <title>Ενέργειες μετά την Εγκατάσταση</title>
+
+ <para>Μετά την εγκατάσταση μιας νέας εφαρμογής, λογικά θα θέλετε
+ να διαβάσετε ότι τεκμηρίωση υπάρχει, να τροποποιήσετε τα
+ αρχεία ρυθμίσεων που χρειάζεται, να βεβαιωθείτε ότι η
+ εφαρμογή ξεκινάει κατά την εκκίνηση (αν είναι daemon), κ.λ.π.</para>
+
+ <para>Τα ακριβή βήματα που θα χρειαστούν για να ρυθμίσετε κάθε
+ εφαρμογή, θα είναι προφανώς διαφορετικά. Όμως, αν μόλις
+ εγκαταστήσατε μια νέα εφαρμογή και αναρωτιέστε <quote>Τώρα τι;</quote>
+ οι παρακάτω συμβουλές μπορεί να σας βοηθήσουν:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Χρησιμοποιήστε το &man.pkg.info.1; για να δείτε τι αρχεία
+ εγκαταστάθηκαν, και που. Για παράδειγμα, αν μόλις εγκαταστήσατε το
+ FooPackage version 1.0.0, τότε η εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>
+
+ <para>θα σας δείξει όλα τα αρχεία που εγκαταστάθηκαν από αυτό το
+ πακέτο. Προσέξτε τα αρχεία στον κατάλογο
+ <filename>man/</filename>, που θα είναι σελίδες manual, τους
+ κατάλογους <filename>etc/</filename>, όπου θα είναι τα αρχεία
+ ρυθμίσεων, και το <filename>doc/</filename>, όπου θα βρίσκεται πιο
+ περιεκτική τεκμηρίωση.</para>
+
+ <para>Αν δεν είστε σίγουρος ποια έκδοση της εφαρμογής εγκαταστήσατε,
+ μια εντολή όπως αυτή:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info | grep -i <replaceable>foopackage</replaceable></userinput></screen>
+
+ <para>θα βρει όλα τα εγκατεστημένα πακέτα που έχουν το
+ <replaceable>foopackage</replaceable> στο όνομα του πακέτου.
+ Αντικαταστήστε το <replaceable>foopackage</replaceable> στην
+ γραμμή εντολών με το πακέτο που αναζητάτε.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μόλις δείτε που βρίσκονται τα manual pages της εφαρμογής, δείτε
+ τα με την &man.man.1;. Όμοια, δείτε τα παραδείγματα των αρχείων
+ ρύθμισης, και όποια άλλη πρόσθετη τεκμηρίωση διατίθεται.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν υπάρχει web site για την εφαρμογή, ελέγξτε το για πρόσθετη
+ τεκμηρίωση, συχνές ερωτήσεις (FAQ), και άλλα. Αν δεν είστε
+ σίγουρος για την διεύθυνσή του web site, ίσως το βρείτε στην έξοδο
+ της εντολής:</para>
+
+ <screen>&prompt.root; <userinput>pkg_info <replaceable>foopackage-1.0.0</replaceable></userinput></screen>
+
+ <para>Αν υπάρχει γραμμή <literal>WWW:</literal>, θα πρέπει να
+ έχει το URL για το web site της εφαρμογής.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ports που πρέπει να ξεκινούν κατά την εκκίνηση
+ (όπως διακομιστές Internet) συνήθως εγκαθιστούν ένα script στο
+ <filename>/usr/local/etc/rc.d</filename>. Πρέπει να ελέγξετε το
+ script για την ορθότητα του και να το τροποποιήσετε ή να το
+ μετονομάσετε αν χρειάζεται. Δείτε το <link
+ linkend="configtuning-starting-services">Εκκινώντας
+ Υπηρεσίες</link> για περισσότερες πληροφορίες.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="ports-broken">
+ <title>Αντιμετωπίζοντας Χαλασμένα Ports</title>
+
+ <para>Αν έρθετε αντιμέτωπος με ένα port το οποίο δεν λειτουργεί,
+ υπάρχουν κάποια πράγματα που μπορείτε να κάνετε:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Δείτε αν εκκρεμεί κάποια διόρθωση για το port στο
+ <ulink url="&url.base;/support.html#gnats">Problem Report
+ database</ulink>. Εάν ναι, μπορείτε να χρησιμοποιήσετε τη
+ προτεινόμενη διόρθωση.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ζητήστε βοήθεια από τον συντηρητή του port. Πληκτρολογήστε
+ <command>make <maketarget>maintainer</maketarget></command> ή
+ διαβάστε το <filename>Makefile</filename> για να βρείτε την
+ διεύθυνση email του συντηρητή. Στο μήνυμα σας, θυμηθείτε να
+ συμπεριλάβετε το όνομα και την έκδοση του port (στείλτε τη γραμμή
+ <literal>&dollar;&os;:</literal> από το
+ <filename>Makefile</filename>) καθώς και την έξοδο του
+ σφάλματος.</para>
+
+ <note>
+ <para>Μερικά ports δεν συντηρούνται από κάποιο συγκεκριμένο άτομο,
+ αλλά από κάποια <ulink
+ url="&url.articles.mailing-list-faq;/article.html">mailing
+ list</ulink>. Πολλές, αν όχι όλες, από αυτές τις διευθύνσεις
+ έχουν την μορφή
+ <email role="nolink">freebsd-listname@FreeBSD.org</email>.
+ Παρακαλούμε να το έχετε υπόψη σας κατά τη διατύπωση των
+ ερωτήσεων σας.</para>
+
+ <para>Συγκεκριμένα, τα ports που φαίνονται ότι συντηρούνται από το
+ <email role="nolink">ports@FreeBSD.org</email>, δεν
+ συντηρούνται από κανέναν στην πραγματικότητα. Διορθώσεις και
+ υποστήριξη, αν υπάρχουν, έρχονται γενικά από την κοινότητα που
+ συμμετέχει στην συγκεκριμένη mailing list. Χρειαζόμαστε πάντοτε
+ περισσότερους εθελοντές!</para>
+ </note>
+
+ <para>Αν δεν λάβετε απάντηση,
+ μπορείτε να χρησιμοποιήσετε το &man.send-pr.1; για να στείλετε
+ μια αναφορά σφάλματος (δείτε το <ulink
+ url="&url.articles.problem-reports;/article.html">Γράφοντας
+ Αναφορές Σφάλματος για το &os;</ulink>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Διορθώστε το! Το <ulink
+ url="&url.books.porters-handbook;/index.html">Porter's
+ Handbook</ulink> περιέχει λεπτομερείς πληροφορίες για την υποδομή
+ των <quote>Ports</quote> ώστε να μπορείτε να διορθώσετε το
+ περιστασιακό προβληματικό port ή ακόμα και να δημιουργήσετε ένα
+ δικό σας port!</para>
+ </listitem>
+
+ <listitem>
+ <para>Ανακτήστε το πακέτο από ένα κοντινό σας FTP site. Η
+ <quote>κύρια</quote> συλλογή πακέτων βρίσκεται στο <hostid
+ role="fqdn">ftp.FreeBSD.org</hostid>, στον <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">κατάλογο
+ πακέτων</ulink>. Πριν τη χρησιμοποιήσετε, ελέγξτε
+ <emphasis>πρώτα</emphasis> το <link
+ linkend="mirrors-ftp">τοπικό σας mirror</link>.
+ Τα πακέτα είναι πιο σίγουρο ότι θα λειτουργήσουν,
+ από το να προσπαθείτε να μεταγλωττίσετε τον πηγαίο κώδικα, και
+ η διαδικασία τελειώνει πιο γρήγορα. Χρησιμοποιήστε το πρόγραμμα
+ &man.pkg.add.1; για να εγκαταστήσετε το πακέτο στο
+ σύστημα σας.</para>
+ </listitem>
+ </orderedlist>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.sgml b/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.sgml
new file mode 100644
index 0000000000..5d5f83dbbb
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/ppp-and-slip/chapter.sgml
@@ -0,0 +1,3416 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: PPP και SLIP
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml
+ %SRCID% 1.196
+
+-->
+
+<chapter id="ppp-and-slip">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Αναδομήθηκε, αναδιοργανώθηκε, και ανανεώθηκε από
+ τον </contrib>
+ <!-- 1 Mar 2000 -->
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>PPP και SLIP</title>
+
+ <sect1 id="ppp-and-slip-synopsis">
+ <title>Σύνοψη</title>
+ <indexterm id="ppp-ppp">
+ <primary>PPP</primary>
+ </indexterm>
+ <indexterm id="ppp-slip">
+ <primary>SLIP</primary>
+ </indexterm>
+
+ <para>Το &os; διαθέτει πλήθος τρόπων για τη σύνδεση ενός υπολογιστή με
+ ένα άλλο. Για να επιτύχετε σύνδεση μέσω modem στο Internet ή σε ένα
+ άλλο δίκτυο, ή για να επιτρέψετε σε άλλους να συνδεθούν μέσω
+ του συστήματος σας, απαιτείται η χρήση PPP ή SLIP. Το κεφάλαιο αυτό
+ περιγράφει λεπτομερώς τον τρόπο ρύθμισης των παραπάνω υπηρεσιών για
+ χρήση μέσω modem.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να ρυθμίσετε το PPP χρήστη (User PPP).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το PPP πυρήνα (Kernel PPP, μόνο για
+ &os;&nbsp;7.X).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το <acronym>PPPoE</acronym> (PPP μέσω
+ Ethernet).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το <acronym>PPPoA</acronym> (PPP μέσω
+ ATM).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε ένα πελάτη και εξυπηρετητή SLIP (μόνο για
+ &os;&nbsp;7.X).</para>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm id="ppp-ppp-user">
+ <primary>PPP</primary>
+ <secondary>user PPP</secondary>
+ </indexterm>
+ <indexterm id="ppp-ppp-kernel">
+ <primary>PPP</primary>
+ <secondary>kernel PPP</secondary>
+ </indexterm>
+ <indexterm id="ppp-ppp-ethernet">
+ <primary>PPP</primary>
+ <secondary>over Ethernet</secondary>
+ </indexterm>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να είστε εξοικειωμένος με τη βασική ορολογία των δικτύων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να κατανοείτε τις βασικές έννοιες και το σκοπό των επιλογικών
+ συνδέσεων και του PPP και/ή SLIP.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μπορεί να αναρωτιέστε ποια είναι η βασική διαφορά μεταξύ του PPP
+ χρήστη και του PPP πυρήνα. Η απάντηση είναι απλή: το PPP χρήστη
+ επεξεργάζεται τα δεδομένα εισόδου και εξόδου μέσω προγραμμάτων χρήστη
+ (userland) αντί διαμέσου του πυρήνα του λειτουργικού. Αυτό προκαλεί
+ κάποιες επιβαρύνσεις λόγω της αντιγραφής δεδομένων μεταξύ του πυρήνα
+ και της εφαρμογής χρήστη, αλλά επιτρέπει κατά πολύ πιο πλούσια (από
+ άποψη δυνατοτήτων) υλοποίηση του PPP πρωτοκόλλου. Το PPP χρήστη
+ χρησιμοποιεί τη συσκευή <devicename>tun</devicename> για την
+ επικοινωνία με τον έξω κόσμο, ενώ το PPP πυρήνα χρησιμοποιεί την
+ συσκευή <devicename>ppp</devicename>.</para>
+
+ <note>
+ <para>Σε όλο το κεφάλαιο, το PPP χρήστη θα αναφέρεται απλά ως
+ <application>ppp</application> εκτός και αν χρειάζεται να γίνει
+ διάκριση σε σχέση με άλλο λογισμικό PPP όπως το
+ <application>pppd</application> (μόνο για το &os;&nbsp;7.X). Εκτός
+ αν αναφέρεται διαφορετικά, όλες οι εντολές που εξηγούνται στο
+ κεφάλαιο αυτό θα πρέπει να εκτελούνται ως
+ <username>root</username>.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="userppp">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Ενημερώθηκε και βελτιώθηκε από τον </contrib>
+ </author>
+ </authorgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Brian</firstname>
+ <surname>Somers</surname>
+ <contrib>Αρχική συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Nik</firstname>
+ <surname>Clayton</surname>
+ <contrib>Με τη βοήθεια των </contrib>
+ </author>
+
+ <author>
+ <firstname>Dirk</firstname>
+ <surname>Fr&ouml;mberg</surname>
+ </author>
+
+ <author>
+ <firstname>Peter</firstname>
+ <surname>Childs</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Χρησιμοποιώντας το PPP Χρήστη</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα ονόματα συσκευών για τις
+ σειριακές θύρες μετονομάστηκαν από
+ <filename>/dev/cuad<replaceable>N</replaceable></filename> σε
+ <filename>/dev/cuau<replaceable>N</replaceable></filename> και από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα χρειαστεί να προσαρμόσουν τις
+ παρακάτω οδηγίες σύμφωνα με αυτές τις αλλαγές.</para>
+ </warning>
+
+ <sect2>
+ <title>PPP Χρήστη</title>
+
+ <sect3>
+ <title>Προϋποθέσεις</title>
+
+ <para>Το κείμενο αυτό προϋποθέτει ότι έχετε τα παρακάτω:</para>
+
+ <itemizedlist>
+ <indexterm id="ppp-isp">
+ <primary>ISP</primary>
+ </indexterm>
+ <indexterm id="ppp-ppp2">
+ <primary>PPP</primary>
+ </indexterm>
+ <listitem>
+ <para>Λογαριασμό σε κάποιο Παροχέα Υπηρεσιών Internet (ISP) στον
+ οποίο συνδέεστε χρησιμοποιώντας PPP.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα modem ή άλλη συσκευή συνδεμένη στο σύστημα σας,
+ και ρυθμισμένη σωστά ώστε να σας επιτρέπει να συνδεθείτε στον
+ ISP σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τους αριθμούς κλήσης για τον ISP σας.</para>
+ </listitem>
+
+ <indexterm id="ppp-pap">
+ <primary>PAP</primary>
+ </indexterm>
+ <indexterm id="ppp-chap">
+ <primary>CHAP</primary>
+ </indexterm>
+ <indexterm id="ppp-unix">
+ <primary>UNIX</primary>
+ </indexterm>
+ <indexterm id="ppp-login">
+ <primary>login name</primary>
+ </indexterm>
+ <indexterm id="ppp-password">
+ <primary>password</primary>
+ </indexterm>
+ <listitem>
+ <para>Το όνομα χρήστη (login) και τον κωδικό σας (password).
+ Είτε κανονικό όνομα και κωδικό (τύπου &unix;) ή ένα ζεύγος
+ ονόματος / κωδικού τύπου PAP ή CHAP.</para>
+ </listitem>
+
+ <indexterm id="ppp-nameserver">
+ <primary>nameserver</primary>
+ </indexterm>
+ <listitem>
+ <para>Τις IP διευθύνσεις ενός ή περισσότερων διακομιστών
+ ονομάτων (DNS). Φυσιολογικά, ο ISP σας θα σας δώσει δύο
+ τέτοιες διευθύνσεις. Αν δεν έχετε τουλάχιστον μία, μπορείτε
+ να ενεργοποιήσετε την εντολή <command>enable dns</command> στο
+ <filename>ppp.conf</filename> και το
+ <application>ppp</application> θα ρυθμίσει τους διακομιστές
+ ονομάτων για σας. Το χαρακτηριστικό αυτό εξαρτάται από την
+ υποστήριξη της διαπραγμάτευσης DNS από τον ISP σας.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ο ISP σας ενδεχομένως να σας δώσει και τις παρακάτω πληροφορίες,
+ αλλά δεν είναι εντελώς απαραίτητες:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τη διεύθυνση IP για την πύλη (gateway) του ISP σας.
+ Η πύλη είναι το μηχάνημα μέσω του οποίου συνδέεστε, και θα
+ αποτελέσει την <emphasis>προεπιλεγμένη διαδρομή</emphasis>
+ (default route) για το μηχάνημα σας. Αν δεν έχετε αυτή την
+ πληροφορία, θα χρησιμοποιηθεί μια εικονική, και όταν συνδεθείτε
+ θα λάβετε την κανονική διεύθυνση από τον διακομιστή PPP του
+ ISP σας.</para>
+
+ <para>Αυτή η διεύθυνση IP αναφέρεται ως
+ <literal>HISADDR</literal> από το
+ <application>ppp</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τη μάσκα δικτύου (netmask) που πρέπει να χρησιμοποιήσετε.
+ Αν ο ISP σας δε σας την παρέχει, μπορείτε με ασφάλεια να
+ χρησιμοποιήσετε την τιμή <hostid
+ role="netmask">255.255.255.255</hostid>.</para>
+ </listitem>
+
+ <indexterm id="ppp-static-ip">
+ <primary>static IP address</primary>
+ </indexterm>
+ <listitem>
+ <para>Αν ο ISP σας παρέχει στατική διεύθυνση και όνομα υπολογιστή
+ (hostname) μπορείτε να χρησιμοποιήσετε αυτά. Διαφορετικά,
+ θα αφήσουμε τον απομακρυσμένο υπολογιστή να δώσει όποια
+ διεύθυνση IP θεωρεί κατάλληλη.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αν σας λείπουν κάποιες από τις απαιτούμενες πληροφορίες,
+ επικοινωνήστε με τον ISP σας.</para>
+
+ <note>
+ <para>Σε ολόκληρη την παρούσα ενότητα, πολλά από τα παραδείγματα
+ που δείχνουν τα περιεχόμενα των αρχείων ρυθμίσεων, είναι
+ αριθμημένα ανά γραμμή. Οι αριθμοί αυτοί εξυπηρετούν στην
+ παρουσίαση και τη συζήτηση του κάθε παραδείγματος, και δεν
+ πρέπει να γραφούν μέσα στο πραγματικό αρχείο. Είναι επίσης
+ σημαντικό να τηρείτε η σωστή στοίχιση σε κάθε αρχείο, με τη
+ χρήση στηλοθετών (tabs) και κενών διαστημάτων.</para>
+ </note>
+ </sect3>
+
+ <sect3>
+ <title>Αυτόματη Ρύθμιση <application>PPP</application></title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <para>Τόσο το <command>ppp</command> όσο και το
+ <command>pppd</command> (η υλοποίηση του PPP σε επίπεδο πυρήνα,
+ μόνο στο &os;&nbsp;7.X)
+ χρησιμοποιούν τα αρχεία ρυθμίσεων στον κατάλογο
+ <filename class="directory">/etc/ppp</filename>. Μπορείτε να
+ βρείτε παραδείγματα για το ppp χρήστη στον κατάλογο <filename
+ class="directory">/usr/share/examples/ppp/</filename>.</para>
+
+ <para>H ρύθμιση του <command>ppp</command> απαιτεί την τροποποίηση
+ ενός αριθμού από αρχεία, ανάλογα με τις απαιτήσεις σας. Το τι θα
+ βάλετε σε αυτά, εξαρτάται σε ένα ποσοστό από το αν ο ISP σας
+ αποδίδει στατικές διευθύνσεις IP (δηλ. σας παρέχει μια διεύθυνση
+ IP η οποία δεν αλλάζει) ή δυναμικές (δηλ. η IP διεύθυνση σας
+ αλλάζει κάθε φορά που συνδέεστε στον ISP σας).</para>
+
+ <sect4 id="userppp-staticIP">
+ <title>PPP και Στατικές Διευθύνσεις IP</title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>with static IP addresses</secondary>
+ </indexterm>
+
+ <para>Θα χρειαστεί να τροποποιήσετε το αρχείο ρυθμίσεων
+ <filename>/etc/ppp/ppp.conf</filename>. Θα πρέπει να μοιάζει με
+ αυτό που φαίνεται παρακάτω:</para>
+
+ <note>
+ <para>Οι γραμμές που τελειώνουν με <literal>:</literal> ξεκινούν
+ στην πρώτη στήλη (αρχή της γραμμής) &mdash; όλες οι άλλες
+ γραμμές θα πρέπει να στοιχισθούν με τον τρόπο που φαίνεται, με
+ τη χρήση κενών ή στηλοθετών.</para>
+ </note>
+
+ <programlisting>1 default:
+2 set log Phase Chat LCP IPCP CCP tun command
+3 ident user-ppp VERSION (built COMPILATIONDATE)
+4 set device /dev/cuau0
+5 set speed 115200
+6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \
+7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT"
+8 set timeout 180
+9 enable dns
+10
+11 provider:
+12 set phone "(123) 456 7890"
+13 set authname foo
+14 set authkey bar
+15 set login "TIMEOUT 10 \"\" \"\" gin:--gin: \\U word: \\P col: ppp"
+16 set timeout 300
+17 set ifaddr <replaceable>x.x.x.x</replaceable> <replaceable>y.y.y.y</replaceable> 255.255.255.255 0.0.0.0
+18 add default HISADDR</programlisting>
+
+ <variablelist>
+ <varlistentry>
+ <term>Γραμμή 1:</term>
+
+ <listitem>
+ <para>Αναγνωρίζει την προεπιλεγμένη καταχώριση. Οι εντολές
+ σε αυτή την καταχώριση εκτελούνται αυτόματα, όταν εκτελείται
+ το ppp.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 2:</term>
+
+ <listitem>
+ <para>Ενεργοποιεί την καταγραφή (logging) των παραμέτρων.
+ Όταν οι ρυθμίσεις που έχουν γίνει λειτουργούν ικανοποιητικά,
+ η γραμμή αυτή θα πρέπει να μικρύνει στην παρακάτω:</para>
+
+ <programlisting>set log phase tun</programlisting>
+
+ <para>για να αποφευχθούν μεγάλα μεγέθη στα αρχεία
+ καταγραφής.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 3:</term>
+
+ <listitem>
+ <para>Λέει στο PPP πως να αναφέρει πληροφορίες για τον εαυτό
+ του στην άλλη μεριά της σύνδεσης. Η διαδικασία αυτή γίνεται
+ αν το PPP έχει πρόβλημα στην διαπραγμάτευση και ολοκλήρωση
+ της σύνδεσης, παρέχοντας με αυτό τον τρόπο πληροφορίες στον
+ απομακρυσμένο διαχειριστή. Οι πληροφορίες αυτές μπορεί να
+ είναι χρήσιμες στην επίλυση του προβλήματος.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 4:</term>
+
+ <listitem>
+ <para>Αναγνωρίζει τη συσκευή στην οποία είναι συνδεμένο το
+ modem. Η συσκευή <devicename>COM1</devicename> είναι η
+ <filename class="devicefile">/dev/cuau0</filename>
+ και η <devicename>COM2</devicename> είναι η
+ <filename class="devicefile">/dev/cuau1</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 5:</term>
+
+ <listitem>
+ <para>Καθορίζει την ταχύτητα με την οποία επιθυμείτε να
+ συνδεθείτε. Αν δεν λειτουργεί η τιμή 115200 (η οποία πρέπει
+ να λειτουργεί με κάθε σχετικά σύγχρονο modem), δοκιμάστε
+ με 38400.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμές 6 &amp; 7:</term>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>user PPP</secondary>
+ </indexterm>
+
+ <listitem>
+ <para>Το αλφαριθμητικό που θα χρησιμοποιηθεί για την κλήση.
+ Το PPP χρήστη χρησιμοποιεί σύνταξη expect-send παρόμοια με
+ αυτή που χρησιμοποιεί το πρόγραμμα &man.chat.8;. Δείτε τη
+ σελίδα manual για πληροφορίες σχετικά με τις δυνατότητες
+ αυτής της γλώσσας.</para>
+
+ <para>Σημειώστε ότι αυτή η εντολή συνεχίζει στην επόμενη
+ γραμμή για λόγους αναγνωσιμότητας. Αυτό μπορεί να γίνει σε
+ κάθε εντολή του <filename>ppp.conf</filename>, εφόσον το
+ <literal>\</literal> είναι ο τελευταίος χαρακτήρας της
+ γραμμής.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 8:</term>
+
+ <listitem>
+ <para>Καθορίζει το χρόνο τερματισμού λόγω αδράνειας της
+ σύνδεσης. Τα 180 δευτερόλεπτα είναι η προεπιλεγμένη τιμή,
+ έτσι η γραμμή αυτή είναι εδώ καθαρά διακοσμητική.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 9:</term>
+
+ <listitem>
+ <para>Λέει στο PPP να ρωτήσει την άλλη πλευρά για να
+ επιβεβαιώσει τις τοπικές ρυθμίσεις του resolver. Αν
+ εκτελείτε τοπικό διακομιστή ονομάτων (DNS), θα πρέπει να
+ μετατρέψετε αυτή τη γραμμή σε σχόλιο ή να την
+ αφαιρέσετε.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 10:</term>
+
+ <listitem>
+ <para>Κενή γραμμή ώστε η ανάγνωση του αρχείου να είναι πιο
+ εύκολη. Οι κενές γραμμές αγνοούνται από το PPP.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 11:</term>
+
+ <listitem>
+ <para>Αναγνωρίζει την καταχώριση ενός παροχέα με το όνομα
+ <quote>provider</quote>. Μπορείτε εδώ να χρησιμοποιήσετε
+ το όνομα του <acronym>ISP</acronym> σας, ώστε αργότερα
+ να ξεκινάτε τη σύνδεση σας με την επιλογή
+ <option>load <replaceable>ISP</replaceable></option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 12:</term>
+
+ <listitem>
+ <para>Θέτει τον αριθμό κλήσης για αυτό τον παροχέα. Μπορείτε
+ να καθορίσετε πολλαπλούς αριθμούς κλήσης χρησιμοποιώντας
+ άνω-κάτω τελεία (<literal>:</literal>) ή τον χαρακτήρα
+ (<literal>|</literal>) ως διαχωριστικό. Η διαφορά μεταξύ
+ των δύο διαχωριστικών περιγράφεται στο &man.ppp.8;.
+ Περιληπτικά, αν θέλετε να δοκιμάζονται κυκλικά όλοι οι
+ αριθμοί, χρησιμοποιήστε την άνω-κάτω τελεία. Αν θέλετε να
+ γίνεται πάντοτε απόπειρα κλήσης του πρώτου αριθμού και οι
+ υπόλοιποι να δοκιμάζονται μόνο αν ο πρώτος αποτύχει,
+ χρησιμοποιήστε το χαρακτήρα παροχέτευσης. Να γράφετε
+ πάντοτε όλο το σύνολο των τηλεφωνικών αριθμών με τον τρόπο
+ που φαίνεται.</para>
+
+ <para>Αν ο αριθμός τηλεφώνου περιέχει κενά, θα πρέπει να τον
+ περικλείσετε σε εισαγωγικά (<literal>"</literal>).
+ Η παράλειψη τους, αν και είναι απλό σφάλμα, μπορεί να
+ προκαλέσει προβλήματα που δεν μπορούν να εντοπιστούν
+ εύκολα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμές 13 &amp; 14:</term>
+
+ <listitem>
+ <para>Αναγνωρίζει το όνομα χρήστη και τον κωδικό του. Όταν
+ συνδέεστε χρησιμοποιώντας προτροπή τύπου &unix;, οι τιμές
+ αυτές αναφέρονται από την εντολή
+ <command>set login</command> χρησιμοποιώντας τις μεταβλητές
+ \U και \P. Όταν συνδέεστε με χρήση PAP ή CHAP, οι τιμές
+ αυτές χρησιμοποιούνται την ώρα της πιστοποίησης
+ ταυτότητας του χρήστη.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 15:</term>
+
+ <listitem>
+ <indexterm><primary>PAP</primary></indexterm>
+ <indexterm><primary>CHAP</primary></indexterm>
+ <para>Αν χρησιμοποιείτε PPP ή CHAP, δεν θα υπάρχει στο σημείο
+ αυτό προτροπή εισόδου (login), και θα πρέπει να μετατρέψετε
+ τη γραμμή αυτή σε σχόλιο ή να την αφαιρέσετε. Δείτε την
+ <link linkend="userppp-PAPnCHAP">Πιστοποίηση PAP
+ και CHAP</link> για περισσότερες λεπτομέρειες.</para>
+
+ <para>Το αλφαριθμητικό εισόδου χρησιμοποιεί σύνταξη παρόμοια
+ με το &man.chat.8;, όπως συμβαίνει και με το αλφαριθμητικό
+ κλήσης. Στο παράδειγμα μας, το αλφαριθμητικό
+ χρησιμοποιείται για μια υπηρεσία στην οποία η συνεδρία
+ εισόδου μοιάζει με την παρακάτω:</para>
+
+ <screen>J. Random Provider
+login: <replaceable>foo</replaceable>
+password: <replaceable>bar</replaceable>
+protocol: ppp</screen>
+
+ <para>Θα χρειαστεί να αλλάξετε αυτό το script ανάλογα με τις
+ ανάγκες σας. Όταν γράφετε αυτό το script την πρώτη φορά,
+ βεβαιωθείτε ότι έχετε ενεργοποιήσει το αρχείο καταγραφής
+ για το <quote>chat</quote> ώστε να μπορείτε να προσδιορίσετε
+ αν η διαδικασία αναγνώρισης προχωράει σωστά.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 16:</term>
+
+ <indexterm><primary>timeout</primary></indexterm>
+ <listitem>
+ <para>Θέτει το χρόνο αδράνειας (σε δευτερόλεπτα) για τη
+ σύνδεση. Εδώ, η σύνδεση θα κλείσει αυτόματα αν δεν υπάρχει
+ κίνηση για 300 δευτερόλεπτα. Αν δεν θέλετε να γίνεται
+ ποτέ τερματισμός της σύνδεσης λόγω αδράνειας, θέστε αυτή τη
+ τιμή σε μηδέν, ή χρησιμοποιήστε την επιλογή
+ <option>-ddial</option> στη γραμμή εντολής.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 17:</term>
+
+ <indexterm><primary>ISP</primary></indexterm>
+ <listitem>
+ <para>Θέτει τη διεύθυνση της διεπαφής. Το αλφαριθμητικό
+ <replaceable>x.x.x.x</replaceable> θα πρέπει να
+ αντικατασταθεί με τη διεύθυνση IP που σας έχει αποδοθεί από
+ τον παροχέα σας. Το αλφαριθμητικό
+ <replaceable>y.y.y.y</replaceable> θα πρέπει να
+ αντικατασταθεί με την διεύθυνση IP που έχει καθορίσει ο
+ ISP σας ως πύλη (gateway, το μηχάνημα στο οποίο συνδέεστε).
+ Αν ο ISP σας δεν σας έχει δώσει διεύθυνση πύλης,
+ χρησιμοποιήστε την <hostid
+ role="netmask">10.0.0.2/0</hostid>. Αν πρέπει να
+ χρησιμοποιήσετε μια IP διεύθυνση που έχετε
+ <quote>μαντέψει</quote>, βεβαιωθείτε ότι έχετε δημιουργήσει
+ μια καταχώριση στο <filename>/etc/ppp/ppp.linkup</filename>
+ σύμφωνα με τις οδηγίες για το <link
+ linkend="userppp-dynamicIP">PPP και Δυναμικές IP
+ Διευθύνσεις</link>. Αν παραλείψετε αυτή τη γραμμή, το
+ <command>ppp</command> δεν θα μπορεί να εκτελεστεί σε
+ κατάσταση <option>-auto</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 18:</term>
+
+ <listitem>
+ <para>Προσθέστε μια προεπιλεγμένη διαδρομή (default route)
+ προς το μηχάνημα πύλης (gateway) του ISP σας. Η ειδική λέξη
+ <literal>HISADDR</literal> αντικαθίσταται με την διεύθυνση
+ πύλης που καθορίζεται στη γραμμή 17. Είναι σημαντικό η
+ γραμμή αυτή να εμφανίζεται μετά την γραμμή 17, διαφορετικά
+ το <literal>HISADDR</literal> δεν θα έχει ακόμα λάβει αρχική
+ τιμή.</para>
+
+ <para>Αν δεν επιθυμείτε να εκτελέσετε το ppp σε κατάσταση
+ <option>-auto</option>, θα πρέπει να μετακινήσετε αυτή τη
+ γραμμή στο αρχείο <filename>ppp.linkup</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Δεν είναι απαραίτητο να προσθέσετε καταχώριση στο αρχείο
+ <filename>ppp.linkup</filename> όταν έχετε στατική διεύθυνση IP
+ και εκτελείτε το ppp σε κατάσταση <option>-auto</option>. Στην
+ περίπτωση αυτή, οι καταχωρίσεις σας στον πίνακα δρομολόγησης είναι
+ σωστές πριν καν συνδεθείτε. Ίσως ωστόσο να θέλετε να
+ δημιουργήσετε μια καταχώριση για να εκτελέσετε κάποια προγράμματα
+ μετά την αποκατάσταση της σύνδεσης. Θα το εξηγήσουμε αυτό
+ αργότερα σε ένα παράδειγμα με το sendmail.</para>
+
+ <para>Μπορείτε να βρείτε παραδείγματα αρχείων ρυθμίσεων στον
+ κατάλογο <filename
+ class="directory">usr/share/examples/ppp/</filename>.</para>
+ </sect4>
+
+ <sect4 id="userppp-dynamicIP">
+ <title>PPP και Δυναμικές Διευθύνσεις IP</title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>with dynamic IP addresses</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>IPCP</primary>
+ </indexterm>
+ <para>Αν ο παροχέας σας δεν δίνει στατικές διευθύνσεις, το
+ <command>ppp</command> μπορεί να ρυθμιστεί να διαπραγματεύεται
+ την τοπική και την απομακρυσμένη διεύθυνση. Αυτό γίνεται
+ <quote>μαντεύοντας</quote> μια διεύθυνση IP, και επιτρέποντας στο
+ <command>ppp</command> να την θέσει έπειτα σωστά, χρησιμοποιώντας
+ το πρωτόκολλο IPCP (IP Configuration Protocol) μετά τη σύνδεση.
+ Το αρχείο ρυθμίσεων <filename>ppp.conf</filename> είναι το ίδιο
+ όπως και στο
+ <link linkend="userppp-staticIP">PPP και Στατικές Διευθύνσεις
+ IP</link>, με την παρακάτω μόνο αλλαγή:</para>
+
+ <programlisting>17 set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.255 0.0.0.0</programlisting>
+
+ <para>Όπως και προηγουμένως, δεν πρέπει να περιλάβετε τον αριθμό
+ γραμμής. Απαιτείται εσοχή ενός τουλάχιστον κενού
+ διαστήματος.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Γραμμή 17:</term>
+
+ <listitem>
+ <para>Ο αριθμός μετά το χαρακτήρα <literal>/</literal>
+ είναι το πλήθος των bits της διεύθυνσης για το οποίο θα
+ επιμείνει το ppp. Ίσως θέλετε να χρησιμοποιήσετε αριθμούς
+ IP πιο κατάλληλους για την περίσταση, αλλά το παράδειγμα
+ που δίνουμε παραπάνω θα λειτουργήσει πάντα.</para>
+
+ <para>Το τελευταίο όρισμα (το <literal>0.0.0.0</literal>) λέει
+ στο PPP να αρχίσει τις διαπραγματεύσεις με την διεύθυνση
+ <hostid role="ipaddr">0.0.0.0</hostid> αντί για την <hostid
+ role="ipaddr">10.0.0.1</hostid>. Αυτό είναι απαραίτητο σε
+ ορισμένους ISP. Μη χρησιμοποιήσετε το
+ <literal>0.0.0.0</literal> ως πρώτο όρισμα στην
+ <command>set ifaddr</command>, καθώς θα εμποδίσει την PPP
+ να ρυθμίσει την αρχική διαδρομή στην κατάσταση
+ <option>-auto</option> .</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Αν δεν χρησιμοποιείτε την επιλογή <option>-auto</option>,
+ θα χρειαστεί να δημιουργήσετε μια καταχώριση στο αρχείο
+ <filename>/etc/ppp/ppp.linkup</filename>.
+ Το αρχείο <filename>ppp.linkup</filename> χρησιμοποιείται μετά
+ την αποκατάσταση της σύνδεσης. Στο σημείο αυτό, το
+ <command>ppp</command> θα έχει ήδη αποδώσει διεύθυνση στην
+ διεπαφή και θα είναι πλέον δυνατόν να προσθέσετε τις καταχωρίσεις
+ στον πίνακα δρομολόγησης:</para>
+
+ <programlisting>1 provider:
+2 add default HISADDR</programlisting>
+
+ <variablelist>
+ <varlistentry>
+ <term>Γραμμή 1:</term>
+
+ <listitem>
+ <para>Με την αποκατάσταση της σύνδεσης, το
+ <command>ppp</command> θα ψάξει για μια καταχώριση στο
+ <filename>ppp.linkup</filename> σύμφωνα με τους παρακάτω
+ κανόνες: Αρχικά θα προσπαθήσει να ταιριάξει την πρώτη
+ ετικέτα που έχει χρησιμοποιηθεί στο αρχείο
+ <filename>ppp.conf</filename>. Αν αυτό αποτύχει, θα ψάξει
+ για μια καταχώριση για την διεύθυνση IP της πύλης.
+ Η καταχώριση αυτή είναι μια ετικέτα μορφής IP διεύθυνσης,
+ με τέσσερις οκτάδες. Αν δεν έχει ακόμα βρεθεί η σωστή
+ καταχώριση, θα γίνει ανίχνευση για την καταχώριση
+ <literal>MYADDR</literal>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 2:</term>
+
+ <listitem>
+ <para>Η γραμμή αυτή λέει στο <command>ppp</command> να
+ προσθέσει μια προεπιλεγμένη διαδρομή η οποία να δείχνει στο
+ <literal>HISADDR</literal>. Το <literal>HISADDR</literal>
+ θα αντικατασταθεί με τη διεύθυνση IP της πύλης όπως
+ αυτή αποδόθηκε μέσω του πρωτοκόλλου IPCP.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Δείτε την καταχώριση <literal>pmdemand</literal> στα αρχεία
+ <filename>/usr/share/examples/ppp/ppp.conf.sample</filename>
+ και
+ <filename>/usr/share/examples/ppp/ppp.linkup.sample</filename>
+ για ένα πιο λεπτομερές παράδειγμα.</para>
+ </sect4>
+
+ <sect4>
+ <title>Λήψη Εισερχόμενων Κλήσεων</title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>receiving incoming calls</secondary>
+ </indexterm>
+
+ <para>Όταν ρυθμίζετε το <application>ppp</application> να λαμβάνει
+ εισερχόμενες κλήσεις σε ένα μηχάνημα που συνδέεται σε ένα τοπικό
+ δίκτυο (LAN), θα πρέπει να αποφασίσετε αν θέλετε να προωθούνται
+ πακέτα προς αυτό. Αν ναι, θα πρέπει να αποδώσετε στο μηχάνημα
+ μια διεύθυνση IP η οποία να ανήκει στο ίδιο υποδίκτυο με το LAN,
+ και να χρησιμοποιήσετε την εντολή <command>enable proxy</command>
+ στο αρχείο <filename>/etc/ppp/ppp.conf</filename>. Θα πρέπει
+ επίσης να επιβεβαιώσετε ότι το αρχείο
+ <filename>/etc/rc.conf</filename> περιέχει τα παρακάτω:</para>
+
+ <programlisting>gateway_enable="YES"</programlisting>
+ </sect4>
+
+ <sect4>
+ <title>Ποιο getty;</title>
+
+ <para>Η ενότητα <link linkend="dialup">Υπηρεσία Εισόδου μέσω
+ Επιλογικής Σύνδεσης (dial in)</link> παρέχει μια καλή περιγραφή
+ σχετικά με την ενεργοποίηση υπηρεσιών επιλογικών κλήσεων
+ χρησιμοποιώντας την &man.getty.8;.</para>
+
+ <para>Μια εναλλακτική στην <command>getty</command> είναι η <ulink
+ url="http://mgetty.greenie.net/">mgetty</ulink> (από το πακέτο
+ <filename role="package">comms/mgetty+sendfax</filename>),
+ μια πιο έξυπνη έκδοση της <command>getty</command>, η οποία έχει
+ σχεδιαστεί για να λαμβάνει υπόψιν τις επιλογικές γραμμές.</para>
+
+ <para>Τα πλεονεκτήματα της <command>mgetty</command> είναι ότι
+ <emphasis>επικοινωνεί</emphasis> ενεργά με τα modem, το οποίο
+ σημαίνει ότι αν η θύρα είναι απενεργοποιημένη στο
+ <filename>/etc/ttys</filename>, το modem σας δεν θα απαντήσει
+ στην κλήση.</para>
+
+ <para>Μεταγενέστερες εκδόσεις της <command>mgetty</command>
+ (από την 0.99beta και μετά) υποστηρίζουν επίσης αυτόματη
+ ανίχνευση PPP streams, επιτρέποντας στους πελάτες σας πρόσβαση
+ στον εξυπηρετητή χωρίς χρήση scripts.</para>
+
+ <para>Διαβάστε την ενότητα <link linkend="userppp-mgetty">Mgetty
+ και AutoPPP</link> για περισσότερες πληροφορίες σχετικά με την
+ <command>mgetty</command>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Άδειες για το <application>PPP</application></title>
+
+ <para>Φυσιολογικά, η εκτέλεση της εντολής <command>ppp</command>
+ πρέπει να γίνεται ως χρήστης <username>root</username>. Αν
+ ωστόσο θέλετε να επιτρέψετε την εκτέλεση του
+ <command>ppp</command> σε κατάσταση εξυπηρετητή ως κανονικός
+ χρήστης (με τον τρόπο που περιγράφεται παρακάτω) θα πρέπει να
+ δώσετε σε αυτό το χρήστη τα κατάλληλα δικαιώματα για να
+ εκτελεί το <command>ppp</command>, προσθέτοντας τον στην ομάδα
+ <groupname>network</groupname> στο αρχείο
+ <filename>/etc/group</filename>.</para>
+
+ <para>Θα πρέπει επίσης να τους δώσετε πρόσβαση σε ένα ή
+ περισσότερα τμήματα του αρχείου ρυθμίσεων, χρησιμοποιώντας την
+ εντολή <command>allow</command>:</para>
+
+ <programlisting>allow users fred mary</programlisting>
+
+ <para>Αν χρησιμοποιήσετε την επιλογή αυτή στο τμήμα
+ <literal>default</literal>, θα δώσετε σε αυτούς τους χρήστες
+ πρόσβαση σε όλες τις ρυθμίσεις.</para>
+ </sect4>
+
+ <sect4>
+ <title>Κελύφη PPP για Χρήστες με Δυναμικά IP</title>
+
+ <indexterm>
+ <primary>PPP shells</primary>
+ </indexterm>
+
+ <para>Δημιουργήστε ένα αρχείο με το όνομα
+ <filename>/etc/ppp/ppp-shell</filename> το οποίο να περιέχει τα
+ παρακάτω:</para>
+
+ <programlisting>#!/bin/sh
+IDENT=`echo $0 | sed -e 's/^.*-\(.*\)$/\1/'`
+CALLEDAS="$IDENT"
+TTY=`tty`
+
+if [ x$IDENT = xdialup ]; then
+ IDENT=`basename $TTY`
+fi
+
+echo "PPP for $CALLEDAS on $TTY"
+echo "Starting PPP for $IDENT"
+
+exec /usr/sbin/ppp -direct $IDENT</programlisting>
+
+ <para>Το script αυτό θα πρέπει να γίνει εκτελέσιμο. Δημιουργήστε
+ τώρα ένα συμβολικό δεσμό που να ονομάζεται
+ <filename>ppp-dialup</filename> χρησιμοποιώντας τις παρακάτω
+ εντολές:</para>
+
+ <screen>&prompt.root; <userinput>ln -s ppp-shell /etc/ppp/ppp-dialup</userinput></screen>
+
+ <para>Θα πρέπει να χρησιμοποιήσετε αυτό το script ως το
+ <emphasis>κέλυφος</emphasis> για όλους τους dialup χρήστες.
+ Εδώ φαίνεται ένα παράδειγμα του <filename>/etc/passwd</filename>
+ για ένα χρήστη dialup με όνομα
+ <username>pchilds</username> (θυμηθείτε ότι δεν πρέπει να
+ τροποποιείτε άμεσα το αρχείο των κωδικών, αλλά μέσω της εντολής
+ &man.vipw.8;).</para>
+
+ <programlisting>pchilds:*:1011:300:Peter Childs PPP:/home/ppp:/etc/ppp/ppp-dialup</programlisting>
+
+ <para>Δημιουργήστε ένα κατάλογο <filename
+ class="directory">/home/ppp</filename> προσβάσιμο για ανάγνωση
+ από όλους, ο οποίος θα περιέχει τα παρακάτω κενά αρχεία:</para>
+
+ <screen>-r--r--r-- 1 root wheel 0 May 27 02:23 .hushlogin
+-r--r--r-- 1 root wheel 0 May 27 02:22 .rhosts</screen>
+
+ <para>τα οποία εμποδίζουν την εμφάνιση του μηνύματος από το αρχείο
+ <filename>/etc/motd</filename>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Κελύφη PPP για Χρήστες με Στατικό IP</title>
+
+ <indexterm>
+ <primary>PPP shells</primary>
+ </indexterm>
+
+ <para>Δημιουργήστε το αρχείο <filename>ppp-shell</filename>
+ όπως φαίνεται παραπάνω, και για κάθε λογαριασμό με στατικό
+ IP, δημιουργήστε ένα συμβολικό δεσμό προς το
+ <filename>ppp-shell</filename>.</para>
+
+ <para>Για παράδειγμα, αν έχετε τρεις πελάτες dialup, τους
+ <username>fred</username>, <username>sam</username>, και
+ <username>mary</username>, στους οποίους εκτελείτε δρομολόγηση
+ /24 CIDR, θα πρέπει να γράψετε τα παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-fred</userinput>
+&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-sam</userinput>
+&prompt.root; <userinput>ln -s /etc/ppp/ppp-shell /etc/ppp/ppp-mary</userinput></screen>
+
+ <para>Για κάθε λογαριασμό χρήστη dialup, θα πρέπει να ρυθμιστεί
+ το κέλυφος στο συμβολικό δεσμό που δημιουργήθηκε παραπάνω (για
+ παράδειγμα ο συμβολικός δεσμός για το κέλυφος του χρήστη
+ <username>mary</username> θα πρέπει να είναι ο
+ <filename>/etc/ppp/ppp-mary</filename>).</para>
+ </sect4>
+
+ <sect4>
+ <title>Ρύθμιση του <filename>ppp.conf</filename> για Χρήστες με
+ Δυναμικό IP</title>
+
+ <para>Το αρχείο <filename>/etc/ppp/ppp.conf</filename> θα πρέπει να
+ περιέχει κάτι αντίστοιχο με το παρακάτω:</para>
+
+ <programlisting>default:
+ set debug phase lcp chat
+ set timeout 0
+
+ttyu0:
+ set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255
+ enable proxy
+
+ttyu1:
+ set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255
+ enable proxy</programlisting>
+
+ <note>
+ <para>Η στοίχιση είναι σημαντική.</para>
+ </note>
+
+ <para>Για κάθε συνεδρία, φορτώνεται η ενότητα
+ <literal>default:</literal>. Για κάθε γραμμή dialup που
+ ενεργοποιείται στο <filename>/etc/ttys</filename>, θα πρέπει να
+ δημιουργήσετε μια καταχώριση όμοια με αυτή που φαίνεται παραπάνω
+ για το <literal>ttyu0:</literal>. Κάθε γραμμή θα πρέπει να
+ παίρνει μια μοναδική διεύθυνση IP από το απόθεμα των IP
+ διευθύνσεων που προορίζονται για τους δυναμικούς χρήστες.</para>
+ </sect4>
+
+ <sect4>
+ <title>Ρύθμιση του <filename>ppp.conf</filename> για Χρήστες με
+ Στατικό IP</title>
+
+ <para>Εκτός από τα περιεχόμενα του υποδείγματος
+ <filename>/usr/share/examples/ppp/ppp.conf</filename> θα πρέπει
+ να προσθέσετε μια ενότητα για καθένα από τους χρήστες dialup
+ στους οποίους έχει αποδοθεί στατικό IP. Θα συνεχίσουμε με το
+ παράδειγμα μας με τους χρήστες
+ <username>fred</username>, <username>sam</username>, και
+ <username>mary</username>.</para>
+
+ <programlisting>fred:
+ set ifaddr 203.14.100.1 203.14.101.1 255.255.255.255
+
+sam:
+ set ifaddr 203.14.100.1 203.14.102.1 255.255.255.255
+
+mary:
+ set ifaddr 203.14.100.1 203.14.103.1 255.255.255.255</programlisting>
+
+ <para>Το αρχείο <filename>/etc/ppp/ppp.linkup</filename>
+ θα πρέπει επίσης να περιέχει πληροφορίες δρομολόγησης για κάθε
+ χρήστη με στατικό IP (αν απαιτείται). Η παρακάτω γραμμή θα
+ προσθέσει μια διαδρομή προς τη διεύθυνση δικτύου
+ <hostid role="ipaddr">203.14.101.0/24</hostid>
+ μέσω της σύνδεσης ppp του πελάτη.</para>
+
+ <programlisting>fred:
+ add 203.14.101.0 netmask 255.255.255.0 HISADDR
+
+sam:
+ add 203.14.102.0 netmask 255.255.255.0 HISADDR
+
+mary:
+ add 203.14.103.0 netmask 255.255.255.0 HISADDR</programlisting>
+ </sect4>
+
+ <sect4 id="userppp-mgetty">
+ <title><command>mgetty</command> και AutoPPP</title>
+
+ <indexterm>
+ <primary><command>mgetty</command></primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>AutoPPP</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>LCP</primary>
+ </indexterm>
+
+ <para>Το port
+ <filename role="package">comms/mgetty+sendfax</filename>, έρχεται
+ με προεπιλεγμένη την επιλογή <literal>AUTO_PPP</literal>,
+ επιτρέποντας έτσι στην <command>mgetty</command> να ανιχνεύει την
+ φάση LCP των συνδέσεων PPP και να εκτελεί αυτόματα ένα κέλυφος
+ ppp. Ωστόσο, καθώς με αυτό τον τρόπο δεν ενεργοποιείται η
+ προεπιλεγμένη ακολουθία ονόματος χρήστη και κωδικού, είναι
+ απαραίτητο να γίνει πιστοποίηση των χρηστών με τη χρήση PAP ή
+ CHAP.</para>
+
+ <para>Η ενότητα αυτή προϋποθέτει ότι ο χρήστης έχει ρυθμίσει,
+ μεταγλωττίσει και εγκαταστήσει με επιτυχία το port <filename
+ role="package">comms/mgetty+sendfax</filename> στο σύστημα
+ του.</para>
+
+ <para>Βεβαιωθείτε ότι το αρχείο σας
+ <filename>/usr/local/etc/mgetty+sendfax/login.config</filename>
+ περιέχει τα παρακάτω:</para>
+
+ <programlisting>/AutoPPP/ - - /etc/ppp/ppp-pap-dialup</programlisting>
+
+ <para>Αυτό θα πει στην <command>mgetty</command> να εκτελέσει το
+ script <filename>ppp-pap-dialup</filename> για τις PPP συνδέσεις
+ που ανιχνεύθηκαν.</para>
+
+ <para>Δημιουργήστε ένα αρχείο με το όνομα
+ <filename>/etc/ppp/ppp-pap-dialup</filename> το οποίο θα περιέχει
+ τα ακόλουθα (το αρχείο θα πρέπει να είναι εκτελέσιμο):</para>
+
+ <programlisting>#!/bin/sh
+exec /usr/sbin/ppp -direct pap$IDENT</programlisting>
+
+ <para>Για κάθε γραμμή dialup που είναι ενεργοποιημένη στο
+ <filename>/etc/ttys</filename>, δημιουργήστε μια αντίστοιχη
+ καταχώριση στο αρχείο <filename>/etc/ppp/ppp.conf</filename>.
+ Η καταχώριση αυτή μπορεί να συνυπάρχει χωρίς πρόβλημα με αυτές
+ που ορίσαμε παραπάνω.</para>
+
+ <programlisting>pap:
+ enable pap
+ set ifaddr 203.14.100.1 203.14.100.20-203.14.100.40
+ enable proxy</programlisting>
+
+ <para>Κάθε χρήστης που εισέρχεται με αυτό τον τρόπο, θα πρέπει να
+ διαθέτει όνομα χρήστη/κωδικό στο αρχείο
+ <filename>/etc/ppp/ppp.secret</filename>. Εναλλακτικά, μπορείτε
+ να προσθέσετε την παρακάτω επιλογή ώστε να γίνεται πιστοποίηση
+ των χρηστών μέσω PAP με βάση τα στοιχεία του αρχείου
+ <filename>/etc/passwd</filename>.</para>
+
+ <programlisting>enable passwdauth</programlisting>
+
+ <para>Αν θέλετε να αποδώσετε στατικό IP σε κάποιους χρήστες,
+ μπορείτε να καθορίσετε την διεύθυνση ως τρίτο όρισμα στο αρχείο
+ <filename>/etc/ppp/ppp.secret</filename>. Για παραδείγματα,
+ δείτε το αρχείο
+ <filename>/usr/share/examples/ppp/ppp.secret.sample</filename>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Επεκτάσεις MS</title>
+
+ <indexterm>
+ <primary>DNS</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>NetBIOS</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>Microsoft extensions</secondary>
+ </indexterm>
+
+ <para>Είναι δυνατόν να ρυθμίσετε το PPP ώστε να παρέχει
+ διευθύνσεις DNS και NetBIOS κατά απαίτηση.</para>
+
+ <para>Για να ενεργοποιήσετε αυτές τις επεκτάσεις με την έκδοση
+ 1.x του PPP, θα πρέπει να προσθέσετε τις παρακάτω γραμμές στο
+ σχετικό τμήμα του <filename>/etc/ppp/ppp.conf</filename>.</para>
+
+ <programlisting>enable msext
+set ns 203.14.100.1 203.14.100.2
+set nbns 203.14.100.5</programlisting>
+
+ <para>Για το PPP από την έκδοση 2 και πάνω:</para>
+
+ <programlisting>accept dns
+set dns 203.14.100.1 203.14.100.2
+set nbns 203.14.100.5</programlisting>
+
+ <para>Το παραπάνω θα ενημερώσει τους πελάτες για τον κύριο και
+ δευτερεύοντα εξυπηρετητή DNS, και για τον εξυπηρετητή ονομάτων
+ NetBIOS.</para>
+
+ <para>Από την έκδοση 2 και πάνω, αν παραλειφθεί η γραμμή
+ <literal>set dns</literal>, το PPP θα χρησιμοποιήσει τις γραμμές
+ που θα βρει στο <filename>/etc/resolv.conf</filename>.</para>
+ </sect4>
+
+ <sect4 id="userppp-PAPnCHAP">
+ <title>Πιστοποίηση PAP και CHAP</title>
+
+ <indexterm><primary>PAP</primary></indexterm>
+ <indexterm><primary>CHAP</primary></indexterm>
+ <para>Κάποιοι ISP ρυθμίζουν τα συστήματα τους με τέτοιο τρόπο, ώστε
+ το κομμάτι της σύνδεσης που ασχολείται με την πιστοποίηση του
+ χρήστη να γίνεται μέσω των μηχανισμών PAP ή CHAP. Αν συμβαίνει
+ αυτό στη δική σας περίπτωση, ο ISP σας δεν θα σας στείλει προτροπή
+ login όταν συνδεθείτε, αλλά θα αρχίσει απευθείας τη μετάδοση
+ PPP.</para>
+
+ <para>Το PAP είναι λιγότερο ασφαλές από το CHAP, αλλά η ασφάλεια
+ εδώ δεν είναι τόσο σπουδαίο θέμα, καθώς οι κωδικοί (αν και
+ στέλνονται ως κανονικό κείμενο) μεταδίδονται μόνο μέσω σειριακής
+ γραμμής. Έτσι δεν υπάρχει πραγματική δυνατότητα των crackers
+ να <quote>κρυφακούσουν</quote>.</para>
+
+ <para>Χρησιμοποιώντας ως αναφορά τις ενότητες <link
+ linkend="userppp-staticIP">PPP και Στατικές Διευθύνσεις
+ IP</link> ή <link linkend="userppp-dynamicIP">PPP και Δυναμικές
+ Διευθύνσεις IP</link>, θα πρέπει να γίνουν οι παρακάτω
+ αλλαγές:</para>
+
+ <programlisting>13 set authname <replaceable>MyUserName</replaceable>
+14 set authkey <replaceable>MyPassword</replaceable>
+15 set login</programlisting>
+
+ <variablelist>
+ <varlistentry>
+ <term>Γραμμή 13:</term>
+
+ <listitem>
+ <para>Η γραμμή αυτή καθορίζει το όνομα χρήστη για τα PAP/CHAP.
+ Θα χρειαστεί να εισάγετε την σωστή τιμή για το
+ <replaceable>MyUserName</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 14:</term>
+
+ <indexterm><primary>password</primary></indexterm>
+ <listitem>
+ <para>Η γραμμή αυτή καθορίζει τον κωδικό για τα PAP/CHAP. Θα
+ χρειαστεί να εισάγετε την σωστή τιμή για το
+ <replaceable>MyPassword</replaceable>. Ίσως θέλετε να
+ προσθέσετε μια ακόμα γραμμή, όπως την παρακάτω:</para>
+
+ <programlisting>16 accept PAP</programlisting>
+
+ <para>ή</para>
+
+ <programlisting>16 accept CHAP</programlisting>
+
+ <para>για να είναι φανερή η πρόθεση σας, ωστόσο τόσο το PAP
+ όσο και το CHAP γίνονται δεκτά από προεπιλογή.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Γραμμή 15:</term>
+
+ <listitem>
+ <para>Ο ISP σας δεν θα απαιτεί φυσιολογικά να εισέλθετε στον
+ εξυπηρετητή αν χρησιμοποιείτε PAP ή CHAP. Για το λόγο αυτό,
+ θα πρέπει να απενεργοποιήσετε το αλφαριθμητικό
+ <quote>set login</quote>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect4>
+
+ <sect4>
+ <title>Αλλάζοντας Άμεσα τις Ρυθμίσεις του
+ <command>ppp</command></title>
+
+ <para>Είναι δυνατόν να επικοινωνήσετε με το πρόγραμμα
+ <command>ppp</command> καθώς εκτελείται στον παρασκήνιο, αλλά
+ μόνο αν έχετε ρυθμίσει μια κατάλληλη διαγνωστική θύρα για αυτό
+ το σκοπό. Για να το κάνετε αυτό, προσθέστε την παρακάτω γραμμή
+ στις ρυθμίσεις σας:</para>
+
+ <programlisting>set server /var/run/ppp-tun<replaceable>%d</replaceable> DiagnosticPassword 0177</programlisting>
+
+ <para>Αυτό οδηγεί το PPP να <quote>ακούει</quote> στο καθορισμένο
+ &unix; socket του τομέα, και να ρωτάει τους πελάτες για τον
+ κωδικό που έχει καθοριστεί πριν επιτρέψει την πρόσβαση. Το
+ <literal>%d</literal> στο όνομα, αντικαθίσταται με τον αριθμό της
+ συσκευής <devicename>tun</devicename> που χρησιμοποιείται.</para>
+
+ <para>Από τη στιγμή που ρυθμιστεί το socket, το πρόγραμμα
+ &man.pppctl.8; μπορεί να χρησιμοποιηθεί σε scripts με τα οποία
+ επιθυμείτε να διαχειριστείτε το πρόγραμμα <command>ppp</command>
+ το οποίο εκτελείται ήδη.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="userppp-nat">
+ <title>Χρησιμοποιώντας τη Δυνατότητα Μετάφρασης Διευθύνσεων (NAT) του
+ PPP</title>
+
+ <indexterm>
+ <primary>PPP</primary><secondary>NAT</secondary>
+ </indexterm>
+
+ <para>Το PPP έχει την ικανότητα να χρησιμοποιήσει δικό του εσωτερικό
+ NAT, χωρίς να απαιτούνται οι ικανότητες ανακατεύθυνσης του πυρήνα.
+ Μπορείτε να ενεργοποιήσετε αυτή τη λειτουργία με την ακόλουθη
+ γραμμή στο <filename>/etc/ppp/ppp.conf</filename>:</para>
+
+ <programlisting>nat enable yes</programlisting>
+
+ <para>Εναλλακτικά, το NAT του PPP μπορεί να ενεργοποιηθεί με την
+ επιλογή <literal>-nat</literal> στην γραμμή εντολών. Μπορείτε ακόμα
+ να βάλετε την επιλογή <literal>ppp_nat</literal> στο αρχείο
+ <filename>/etc/rc.conf</filename>. Η επιλογή αυτή είναι
+ ενεργοποιημένη από προεπιλογή.</para>
+
+ <para>Αν χρησιμοποιήσετε αυτό το χαρακτηριστικό, μάλλον θα βρείτε
+ χρήσιμες και τις παρακάτω επιλογές για το
+ <filename>/etc/ppp/ppp.conf</filename>, με τις οποίες ενεργοποιείται
+ η προώθηση εισερχόμενων συνδέσεων:</para>
+
+ <programlisting>nat port tcp 10.0.0.2:ftp ftp
+nat port tcp 10.0.0.2:http http</programlisting>
+
+ <para>ή αν δεν εμπιστεύεστε καθόλου το εξωτερικό δίκτυο:</para>
+
+ <programlisting>nat deny_incoming yes</programlisting>
+ </sect3>
+
+ <sect3 id="userppp-final">
+ <title>Τελικές Ρυθμίσεις Συστήματος</title>
+
+ <indexterm>
+ <primary>PPP</primary><secondary>configuration</secondary>
+ </indexterm>
+
+ <para>Έχετε πλέον ρυθμίσει το <command>ppp</command>, αλλά υπάρχουν
+ μερικά ακόμα πράγματα που πρέπει να κάνετε πριν να είναι έτοιμο για
+ λειτουργία. Όλα περιλαμβάνουν την επεξεργασία του αρχείου
+ <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Ξεκινώντας από την αρχή του αρχείου αυτού, βεβαιωθείτε ότι είναι
+ ορισμένη η γραμμή <literal>hostname=</literal>, π.χ.:</para>
+
+ <programlisting>hostname="foo.example.com"</programlisting>
+
+ <para>Αν ο ISP σας παρέχει στατική IP διεύθυνση και όνομα, είναι
+ μάλλον καλύτερο να χρησιμοποιήσετε αυτό το όνομα ως όνομα για το
+ μηχάνημα σας.</para>
+
+ <para>Ψάξτε για τη μεταβλητή <literal>network_interfaces</literal>.
+ Αν θέλετε να ρυθμίσετε το σύστημα σας να καλεί τον ISP σας κατά
+ απαίτηση, βεβαιωθείτε ότι υπάρχει στη λίστα η συσκευή
+ <devicename>tun0</devicename>, διαφορετικά αφαιρέστε την.</para>
+
+ <programlisting>network_interfaces="lo0 tun0"
+ifconfig_tun0=</programlisting>
+
+ <note>
+ <para>Η μεταβλητή <literal>ifconfig_tun0</literal> θα πρέπει να
+ είναι άδεια, και θα πρέπει να δημιουργηθεί ένα αρχείο με όνομα
+ <filename>/etc/start_if.tun0</filename>. Το αρχείο αυτό θα πρέπει
+ να περιέχει την παρακάτω γραμμή:</para>
+
+ <programlisting>ppp -auto mysystem</programlisting>
+
+ <para>Το script αυτό εκτελείται κατά τη διάρκεια ρύθμισης του
+ δικτύου, ξεκινώντας έτσι το δαίμονα ppp σε κατάσταση αυτόματης
+ λειτουργίας. Αν διαθέτετε κάποιο τοπικό δίκτυο (LAN) για το
+ οποίο το μηχάνημα αυτό έχει το ρόλο της πύλης, ίσως να θέλετε
+ επίσης να χρησιμοποιήσετε την επιλογή <option>-alias</option>.
+ Δείτε τη σελίδα manual για περισσότερες λεπτομέρειες.</para>
+ </note>
+
+ <para>Βεβαιωθείτε ότι η μεταβλητή για το πρόγραμμα router έχει τεθεί
+ στο <literal>NO</literal> μέσω της επόμενης γραμμής στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>router_enable="NO"</programlisting>
+
+ <indexterm>
+ <primary><application>routed</application></primary>
+ </indexterm>
+
+ <para>Είναι σημαντικό να μην ξεκινήσει ο δαίμονας
+ <command>routed</command>, ο οποίος συνήθως διαγράφει τις
+ προεπιλεγμένες τιμές του πίνακα δρομολόγησης που δημιουργούνται από
+ το <command>ppp</command>.</para>
+
+ <para>Είναι μάλλον καλή ιδέα να εξασφαλίσετε ότι η γραμμή
+ <literal>sendmail_flags</literal> δεν περιλαμβάνει την επιλογή
+ <option>-q</option>, διαφορετικά το <command>sendmail</command> θα
+ προσπαθεί κάθε τόσο να κάνει αναζήτηση του δικτύου, με πιθανό
+ αποτέλεσμα το μηχάνημα σας να εκτελεί τηλεφωνική σύνδεση
+ (dial out). Μπορείτε να δοκιμάσετε:</para>
+
+ <programlisting>sendmail_flags="-bd"</programlisting>
+
+ <indexterm>
+ <primary><application>sendmail</application></primary>
+ </indexterm>
+ <para>Το μειονέκτημα του παραπάνω, είναι ότι πρέπει να εξαναγκάσετε το
+ <command>sendmail</command> να επανεξετάσει την ουρά των μηνυμάτων,
+ κάθε φορά που αποκαθίσταται η σύνδεση ppp, γράφοντας:</para>
+
+ <screen>&prompt.root; <userinput>/usr/sbin/sendmail -q</userinput></screen>
+
+ <para>Ίσως θέλετε να χρησιμοποιήσετε την εντολή
+ <command>!bg</command> στο <filename>ppp.linkup</filename> για να
+ γίνεται το παραπάνω αυτόματα:</para>
+
+ <programlisting>1 provider:
+2 delete ALL
+3 add 0 0 HISADDR
+4 !bg sendmail -bd -q30m</programlisting>
+
+ <indexterm>
+ <primary>SMTP</primary>
+ </indexterm>
+
+ <para>Αν αυτό δεν σας αρέσει, είναι δυνατόν να ρυθμίσετε ένα
+ <quote>dfilter</quote> το οποίο να αποκόπτει την κίνηση SMTP.
+ Δείτε τα υποδείγματα για περισσότερες λεπτομέρειες.</para>
+
+ <para>Το μόνο που μένει είναι να επανεκκινήσετε το μηχάνημα. Μετά
+ την επανεκκίνηση, μπορείτε είτε να γράψετε:</para>
+
+ <screen>&prompt.root; <userinput>ppp</userinput></screen>
+
+ <para>και έπειτα <command>dial provider</command> για να ξεκινήσετε
+ τη συνεδρία PPP, ή αν θέλετε το <command>ppp</command> να
+ αποκαθιστά τις συνεδρίες αυτόματα κάθε φορά που υπάρχει κίνηση
+ προς το εξωτερικό δίκτυο (και δεν έχετε δημιουργήσει το script
+ <filename>start_if.tun0</filename>) μπορείτε να γράψετε:</para>
+
+ <screen>&prompt.root; <userinput>ppp -auto provider</userinput></screen>
+ </sect3>
+
+ <sect3>
+ <title>Περίληψη</title>
+
+ <para>Για να ανακεφαλαιώσουμε, τα παρακάτω βήματα είναι απαραίτητα
+ όταν εγκαθιστάτε το ppp για πρώτη φορά:</para>
+
+ <para>Από τη μεριά του μηχανήματος-πελάτη:</para>
+
+ <procedure>
+ <step>
+ <para>Βεβαιωθείτε ότι περιλαμβάνεται στον πυρήνα σας η συσκευή
+ <devicename>tun</devicename>.</para>
+ </step>
+
+ <step>
+ <para>Βεβαιωθείτε ότι υπάρχει το αρχείο της συσκευής
+ <filename
+ class="devicefile">tun<replaceable>N</replaceable></filename>
+ στον κατάλογο <filename
+ class="directory">/dev</filename>.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε μια καταχώριση στο αρχείο
+ <filename>/etc/ppp/ppp.conf</filename>. Το παράδειγμα για το
+ <filename>pmdemand</filename> θα πρέπει να είναι επαρκές για
+ τους περισσότερους ISPs.</para>
+ </step>
+
+ <step>
+ <para>Αν έχετε δυναμική διεύθυνση IP, δημιουργήστε μια καταχώριση
+ στο <filename>/etc/ppp/ppp.linkup</filename>.</para>
+ </step>
+
+ <step>
+ <para>Ενημερώστε το αρχείο
+ <filename>/etc/rc.conf</filename>.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε το script <filename>start_if.tun0</filename> αν
+ χρειάζεστε κλήση κατά απαίτηση.</para>
+ </step>
+ </procedure>
+
+ <para>Από τη μεριά του εξυπηρετητή:</para>
+
+ <procedure>
+ <step>
+ <para>Βεβαιωθείτε ότι περιλαμβάνεται στον πυρήνα σας η συσκευή
+ <devicename>tun</devicename>.</para>
+ </step>
+
+ <step>
+ <para>Βεβαιωθείτε ότι υπάρχει το αρχείο της συσκευής
+ <filename
+ class="devicefile">tun<replaceable>N</replaceable></filename>
+ στον κατάλογο <filename
+ class="directory">/dev</filename>.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε μια καταχώριση στο
+ <filename>/etc/passwd</filename> (χρησιμοποιώντας το πρόγραμμα
+ &man.vipw.8;).</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε ένα αρχείο profile στον προσωπικό κατάλογο του
+ χρήστη, το οποίο να εκτελεί την εντολή
+ <command>ppp -direct direct-server</command> ή κάποια
+ αντίστοιχη.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε μια καταχώριση στο
+ <filename>/etc/ppp/ppp.conf</filename>. Το παράδειγμα για το
+ <filename>direct-server</filename> θα πρέπει να είναι
+ επαρκές.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε μια καταχώριση στο
+ <filename>/etc/ppp/ppp.linkup</filename>.</para>
+ </step>
+
+ <step>
+ <para>Ενημερώστε το αρχείο
+ <filename>/etc/rc.conf</filename>.</para>
+ </step>
+ </procedure>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ppp">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Gennady B.</firstname>
+ <surname>Sorokopud</surname>
+ <contrib>Κάποια τμήματα προέρχονται από αρχική συνεισφορά
+ των </contrib>
+ </author>
+
+ <author>
+ <firstname>Robert</firstname>
+ <surname>Huff</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Χρησιμοποιώντας το PPP του Πυρήνα</title>
+
+ <warning>
+ <para>Η ενότητα αυτή είναι έγκυρη και μπορεί να εφαρμοστεί μόνο σε
+ συστήματα &os;&nbsp;7.X.</para>
+ </warning>
+
+ <sect2>
+ <title>Ρυθμίζοντας το PPP του Πυρήνα</title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>kernel PPP</secondary>
+ </indexterm>
+
+ <para>Πριν ξεκινήσετε να ρυθμίζετε το PPP στο μηχάνημα σας, βεβαιωθείτε
+ ότι το <command>pppd</command> βρίσκεται στον κατάλογο
+ <filename class="directory">/usr/sbin</filename> και ότι υπάρχει ο
+ κατάλογος <filename class="directory">/etc/ppp</filename>.</para>
+
+ <para>Το <command>pppd</command> έχει δύο καταστάσεις
+ λειτουργίας:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Ως πελάτης (<quote>client</quote>) &mdash; όταν θέλετε να
+ συνδέσετε το μηχάνημα σας με τον έξω κόσμο μέσω σειριακής σύνδεσης
+ σύνδεσης ή γραμμής modem.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>server</secondary>
+ </indexterm>
+
+ <listitem>
+ <para>Ως εξυπηρετητής (<quote>server</quote>) &mdash; το μηχάνημα
+ σας είναι συνδεμένο στο δίκτυο και χρησιμοποιείται για να
+ συνδέσει άλλους υπολογιστές, χρησιμοποιώντας το PPP.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Και στις δύο περιπτώσεις θα χρειαστεί να δημιουργήσετε ένα αρχείο
+ επιλογών (<filename>/etc/ppp/options</filename> ή
+ <filename>~/.ppprc</filename> αν στο μηχάνημα σας υπάρχουν
+ περισσότεροι από ένας χρήστες που χρησιμοποιούν το PPP).</para>
+
+ <para>Θα χρειαστείτε επίσης και κάποιο λογισμικό για χρήση με modem
+ και σειριακές συνδέσεις (κατά προτίμηση το <filename
+ role="package">comms/kermit</filename>), ώστε να μπορείτε να
+ καλέσετε και να αποκαταστήσετε τη σύνδεση με τον απομακρυσμένο
+ εξυπηρετητή.</para>
+ </sect2>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Trev</firstname>
+ <surname>Roydhouse</surname>
+ <contrib>Βασισμένο σε πληροφορίες που παρείχε ο </contrib>
+ <!-- Trev.Roydhouse@f401.n711.z3.fidonet.org -->
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Χρησιμοποιώντας το <command>pppd</command> ως Πελάτης</title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>client</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>Cisco</primary>
+ </indexterm>
+
+ <para>Μπορείτε να χρησιμοποιήσετε το
+ <filename>/etc/ppp/options</filename> που φαίνεται παρακάτω, για να
+ συνδεθείτε σε μια γραμμή PPP ενός εξυπηρετητή τερματικών (terminal
+ server) της Cisco.</para>
+
+ <programlisting>crtscts # enable hardware flow control
+modem # modem control line
+noipdefault # remote PPP server must supply your IP address
+ # if the remote host does not send your IP during IPCP
+ # negotiation, remove this option
+passive # wait for LCP packets
+domain ppp.foo.com # put your domain name here
+
+:<replaceable>remote_ip</replaceable> # put the IP of remote PPP host here
+ # it will be used to route packets via PPP link
+ # if you didn't specified the noipdefault option
+ # change this line to <replaceable>local_ip</replaceable>:<replaceable>remote_ip</replaceable>
+
+defaultroute # put this if you want that PPP server will be your
+ # default router</programlisting>
+
+ <para>Για να συνδεθείτε:</para>
+
+ <indexterm><primary>Kermit</primary></indexterm>
+ <indexterm><primary>modem</primary></indexterm>
+ <procedure>
+ <step>
+ <para>Καλέστε τον απομακρυσμένο εξυπηρετητή χρησιμοποιώντας το
+ <application>Kermit</application> (ή κάποιο άλλο πρόγραμμα για
+ modem) και εισάγετε το όνομα χρήστη και τον κωδικό σας (ή ότι άλλο
+ χρειάζεται για να ενεργοποιήσετε το PPP στον απομακρυσμένο
+ υπολογιστή).</para>
+ </step>
+
+ <step>
+ <para>Βγείτε από το <application>Kermit</application> (χωρίς να
+ κλείσετε τη γραμμή).</para>
+ </step>
+
+ <step>
+ <para>Πληκτρολογήστε τα παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>/usr/sbin/pppd <replaceable>/dev/tty01</replaceable> <replaceable>19200</replaceable></userinput></screen>
+
+ <para>Βεβαιωθείτε ότι χρησιμοποιείτε το σωστό όνομα συσκευής και
+ την κατάλληλη ταχύτητα.</para>
+ </step>
+ </procedure>
+
+ <para>Ο υπολογιστής σας είναι τώρα συνδεμένος μέσω PPP. Αν η σύνδεση
+ αποτύχει, μπορείτε να χρησιμοποιήσετε την επιλογή
+ <option>debug</option> στο αρχείο
+ <filename>/etc/ppp/options</filename> και να ελέγξετε τα μηνύματα στην
+ κονσόλα για να ανιχνεύσετε το πρόβλημα.</para>
+
+ <para>Το παρακάτω script <filename>/etc/ppp/pppup</filename>
+ αυτοματοποιεί και τα 3 στάδια:</para>
+
+ <programlisting>#!/bin/sh
+pgrep -l pppd
+pid=`pgrep pppd`
+if [ "X${pid}" != "X" ] ; then
+ echo 'killing pppd, PID=' ${pid}
+ kill ${pid}
+fi
+pgrep -l kermit
+pid=`pgrep kermit`
+if [ "X${pid}" != "X" ] ; then
+ echo 'killing kermit, PID=' ${pid}
+ kill -9 ${pid}
+fi
+
+ifconfig ppp0 down
+ifconfig ppp0 delete
+
+kermit -y /etc/ppp/kermit.dial
+pppd /dev/tty01 19200</programlisting>
+
+ <indexterm>
+ <primary>Kermit</primary>
+ </indexterm>
+
+ <para>Το αρχείο <filename>/etc/ppp/kermit.dial</filename> είναι ένα
+ script για το <application>Kermit</application> το οποίο κάνει την
+ κλήση και την πιστοποίηση του χρήστη στον απομακρυσμένο υπολογιστή
+ (στο τέλος αυτού του εγγράφου, θα βρείτε ένα παράδειγμα για ένα
+ τέτοιο script).</para>
+
+ <para>Χρησιμοποιήστε το παρακάτω script
+ <filename>/etc/ppp/pppdown</filename> για να αποσυνδέσετε την γραμμή
+ PPP:</para>
+
+ <programlisting>#!/bin/sh
+pid=`pgrep pppd`
+if [ X${pid} != "X" ] ; then
+ echo 'killing pppd, PID=' ${pid}
+ kill -TERM ${pid}
+fi
+
+pgrep -l kermit
+pid=`pgrep kermit`
+if [ "X${pid}" != "X" ] ; then
+ echo 'killing kermit, PID=' ${pid}
+ kill -9 ${pid}
+fi
+
+/sbin/ifconfig ppp0 down
+/sbin/ifconfig ppp0 delete
+kermit -y /etc/ppp/kermit.hup
+/etc/ppp/ppptest</programlisting>
+
+ <para>Ελέγξτε αν εκτελείται ακόμα το <command>pppd</command>,
+ εκτελώντας το <filename>/usr/etc/ppp/ppptest</filename>, το οποίο θα
+ μοιάζει με το παρακάτω:</para>
+
+ <programlisting>#!/bin/sh
+pid=`pgrep pppd`
+if [ X${pid} != "X" ] ; then
+ echo 'pppd running: PID=' ${pid-NONE}
+else
+ echo 'No pppd running.'
+fi
+set -x
+netstat -n -I ppp0
+ifconfig ppp0</programlisting>
+
+ <para>Για να κλείσετε την γραμμή, εκτελέστε το
+ <filename>/etc/ppp/kermit.hup</filename>, το οποίο θα πρέπει να
+ περιέχει:</para>
+
+ <programlisting>set line /dev/tty01 ; put your modem device here
+set speed 19200
+set file type binary
+set file names literal
+set win 8
+set rec pack 1024
+set send pack 1024
+set block 3
+set term bytesize 8
+set command bytesize 8
+set flow none
+
+pau 1
+out +++
+inp 5 OK
+out ATH0\13
+echo \13
+exit</programlisting>
+
+ <para>Μια εναλλακτική μέθοδος που χρησιμοποιεί το
+ <command>chat</command> αντί για το
+ <command>kermit</command>:</para>
+
+ <para>Τα παρακάτω δύο αρχεία επαρκούν για τη δημιουργία μιας σύνδεσης
+ <command>pppd</command>.</para>
+
+ <para><filename>/etc/ppp/options</filename>:</para>
+
+ <programlisting>/dev/cuad1 115200
+
+crtscts # enable hardware flow control
+modem # modem control line
+connect "/usr/bin/chat -f /etc/ppp/login.chat.script"
+noipdefault # remote PPP serve must supply your IP address
+ # if the remote host doesn't send your IP during
+ # IPCP negotiation, remove this option
+passive # wait for LCP packets
+domain <replaceable>your.domain</replaceable> # put your domain name here
+
+: # put the IP of remote PPP host here
+ # it will be used to route packets via PPP link
+ # if you didn't specified the noipdefault option
+ # change this line to <replaceable>local_ip</replaceable>:<replaceable>remote_ip</replaceable>
+
+defaultroute # put this if you want that PPP server will be
+ # your default router</programlisting>
+
+ <para><filename>/etc/ppp/login.chat.script</filename>:</para>
+
+ <note>
+ <para>Το παρακάτω θα πρέπει να γραφεί σε μια μόνο γραμμή.</para>
+ </note>
+
+ <programlisting>ABORT BUSY ABORT 'NO CARRIER' "" AT OK ATDT<replaceable>phone.number</replaceable>
+ CONNECT "" TIMEOUT 10 ogin:-\\r-ogin: <replaceable>login-id</replaceable>
+ TIMEOUT 5 sword: <replaceable>password</replaceable></programlisting>
+
+ <para>Μόλις τροποποιήσετε και εγκαταστήσετε σωστά τα παραπάνω αρχεία,
+ το μόνο που χρειάζεται να κάνετε είναι να εκτελέσετε την εντολή
+ <command>pppd</command>, με τον τρόπο που φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>pppd</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας το <command>pppd</command> ως Εξυπηρετητή</title>
+
+ <para>Το <filename>/etc/ppp/options</filename> θα πρέπει να περιέχει
+ κάτι αντίστοιχο με το παρακάτω:</para>
+
+ <programlisting>crtscts # Hardware flow control
+netmask 255.255.255.0 # netmask (not required)
+192.114.208.20:192.114.208.165 # IP's of local and remote hosts
+ # local ip must be different from one
+ # you assigned to the Ethernet (or other)
+ # interface on your machine.
+ # remote IP is IP address that will be
+ # assigned to the remote machine
+domain ppp.foo.com # your domain
+passive # wait for LCP
+modem # modem line</programlisting>
+
+ <para>Το script <filename>/etc/ppp/pppserv</filename> που φαίνεται
+ παρακάτω, θα πει στο <application>pppd</application> να λειτουργήσει
+ ως εξυπηρετητής:</para>
+
+ <programlisting>#!/bin/sh
+pgrep -l pppd
+pid=`pgrep pppd`
+if [ "X${pid}" != "X" ] ; then
+ echo 'killing pppd, PID=' ${pid}
+ kill ${pid}
+fi
+pgrep -l kermit
+pid=`pgrep kermit`
+if [ "X${pid}" != "X" ] ; then
+ echo 'killing kermit, PID=' ${pid}
+ kill -9 ${pid}
+fi
+
+# reset ppp interface
+ifconfig ppp0 down
+ifconfig ppp0 delete
+
+# enable autoanswer mode
+kermit -y /etc/ppp/kermit.ans
+
+# run ppp
+pppd /dev/tty01 19200</programlisting>
+
+ <para>Χρησιμοποιήστε το παρακάτω script
+ <filename>/etc/ppp/pppservdown</filename> για να σταματήσετε τον
+ εξυπηρετητή:</para>
+
+ <programlisting>#!/bin/sh
+pgrep -l pppd
+pid=`pgrep pppd`
+if [ "X${pid}" != "X" ] ; then
+ echo 'killing pppd, PID=' ${pid}
+ kill ${pid}
+fi
+pgrep -l kermit
+pid=`pgrep kermit`
+if [ "X${pid}" != "X" ] ; then
+ echo 'killing kermit, PID=' ${pid}
+ kill -9 ${pid}
+fi
+ifconfig ppp0 down
+ifconfig ppp0 delete
+
+kermit -y /etc/ppp/kermit.noans</programlisting>
+
+ <para>Το παρακάτω script για το <application>Kermit</application>
+ (<filename>/etc/ppp/kermit.ans</filename>) μπορεί να ενεργοποιεί και
+ να απενεργοποιεί την λειτουργία αυτόματης απάντησης στο modem
+ σας.</para>
+
+ <programlisting>set line /dev/tty01
+set speed 19200
+set file type binary
+set file names literal
+set win 8
+set rec pack 1024
+set send pack 1024
+set block 3
+set term bytesize 8
+set command bytesize 8
+set flow none
+
+pau 1
+out +++
+inp 5 OK
+out ATH0\13
+inp 5 OK
+echo \13
+out ATS0=1\13 ; change this to out ATS0=0\13 if you want to disable
+ ; autoanswer mode
+inp 5 OK
+echo \13
+exit</programlisting>
+
+ <para>Στον απομακρυσμένο υπολογιστή, χρησιμοποιείται το script
+ <filename>/etc/ppp/kermit.dial</filename> για κλήση και πιστοποίηση
+ του χρήστη. Θα πρέπει να το τροποποιήσετε σύμφωνα με τις ανάγκες σας.
+ Βάλτε το όνομα χρήστη και τον κωδικό σας σε αυτό το script.
+ Θα χρειαστεί επίσης να αλλάξετε την γραμμή για την είσοδο (input)
+ ανάλογα με τις απαντήσεις που δίνει το modem σας και ο απομακρυσμένος
+ υπολογιστής.</para>
+
+ <programlisting>;
+; put the com line attached to the modem here:
+;
+set line /dev/tty01
+;
+; put the modem speed here:
+;
+set speed 19200
+set file type binary ; full 8 bit file xfer
+set file names literal
+set win 8
+set rec pack 1024
+set send pack 1024
+set block 3
+set term bytesize 8
+set command bytesize 8
+set flow none
+set modem hayes
+set dial hangup off
+set carrier auto ; Then SET CARRIER if necessary,
+set dial display on ; Then SET DIAL if necessary,
+set input echo on
+set input timeout proceed
+set input case ignore
+def \%x 0 ; login prompt counter
+goto slhup
+
+:slcmd ; put the modem in command mode
+echo Put the modem in command mode.
+clear ; Clear unread characters from input buffer
+pause 1
+output +++ ; hayes escape sequence
+input 1 OK\13\10 ; wait for OK
+if success goto slhup
+output \13
+pause 1
+output at\13
+input 1 OK\13\10
+if fail goto slcmd ; if modem doesn't answer OK, try again
+
+:slhup ; hang up the phone
+clear ; Clear unread characters from input buffer
+pause 1
+echo Hanging up the phone.
+output ath0\13 ; hayes command for on hook
+input 2 OK\13\10
+if fail goto slcmd ; if no OK answer, put modem in command mode
+
+:sldial ; dial the number
+pause 1
+echo Dialing.
+output atdt9,550311\13\10 ; put phone number here
+assign \%x 0 ; zero the time counter
+
+:look
+clear ; Clear unread characters from input buffer
+increment \%x ; Count the seconds
+input 1 {CONNECT }
+if success goto sllogin
+reinput 1 {NO CARRIER\13\10}
+if success goto sldial
+reinput 1 {NO DIALTONE\13\10}
+if success goto slnodial
+reinput 1 {\255}
+if success goto slhup
+reinput 1 {\127}
+if success goto slhup
+if &lt; \%x 60 goto look
+else goto slhup
+
+:sllogin ; login
+assign \%x 0 ; zero the time counter
+pause 1
+echo Looking for login prompt.
+
+:slloop
+increment \%x ; Count the seconds
+clear ; Clear unread characters from input buffer
+output \13
+;
+; put your expected login prompt here:
+;
+input 1 {Username: }
+if success goto sluid
+reinput 1 {\255}
+if success goto slhup
+reinput 1 {\127}
+if success goto slhup
+if &lt; \%x 10 goto slloop ; try 10 times to get a login prompt
+else goto slhup ; hang up and start again if 10 failures
+
+:sluid
+;
+; put your userid here:
+;
+output ppp-login\13
+input 1 {Password: }
+;
+; put your password here:
+;
+output ppp-password\13
+input 1 {Entering SLIP mode.}
+echo
+quit
+
+:slnodial
+echo \7No dialtone. Check the telephone line!\7
+exit 1
+
+; local variables:
+; mode: csh
+; comment-start: "; "
+; comment-start-skip: "; "
+; end:</programlisting>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ppp-troubleshoot">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ <!-- 13 June 2003 -->
+ </sect1info>
+ <title>Αντιμετώπιση Προβλημάτων σε Συνδέσεις
+ <acronym>PPP</acronym></title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>troubleshooting</secondary>
+ </indexterm>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, το πρόγραμμα οδήγησης &man.sio.4;
+ αντικαταστάθηκε από το &man.uart.4;. Τα ονόματα συσκευών των
+ σειριακών θυρών έχουν αλλάξει από
+ <filename>/dev/cuad<replaceable>N</replaceable></filename> σε
+ <filename>/dev/cuau<replaceable>N</replaceable></filename> και από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν τις παρακάτω
+ οδηγίες σύμφωνα με αυτές τις αλλαγές.</para>
+ </warning>
+
+ <para>Η ενότητα αυτή καλύπτει μερικά από τα προβλήματα που μπορεί να
+ παρουσιαστούν όταν γίνεται χρήση του PPP μέσω σύνδεσης modem. Για
+ παράδειγμα, θα πρέπει να ξέρετε με ακρίβεια τα μηνύματα εισόδου που θα
+ εμφανίσει το σύστημα το οποίο καλείτε. Μερικοί <acronym>ISP</acronym>
+ δίνουν την προτροπή <literal>ssword</literal>, ενώ άλλοι δίνουν την
+ <literal>password</literal>. Αν δεν έχετε γράψει σωστά το script για
+ το <command>ppp</command>, η απόπειρα εισόδου θα αποτύχει. Ο πιο
+ συνηθισμένος τρόπος να εκσφαλματώσετε μια σύνδεση
+ <command>ppp</command>, είναι να συνδεθείτε χειροκίνητα. Οι πληροφορίες
+ που εμφανίζονται παρακάτω, θα σας οδηγήσουν βήμα προς βήμα στη
+ χειροκίνητη αποκατάσταση της σύνδεσης.</para>
+
+ <sect2>
+ <title>Ελέγξτε τα Αρχεία Συσκευών</title>
+
+ <para>Αν χρησιμοποιείτε προσαρμοσμένο πυρήνα, βεβαιωθείτε ότι έχετε
+ περιλάβει την παρακάτω γραμμή στο αρχείο ρυθμίσεων του πυρήνα
+ σας:</para>
+
+ <programlisting>device uart</programlisting>
+
+ <para>Αν χρησιμοποιείτε τον πυρήνα <literal>GENERIC</literal>, δεν
+ χρειάζεται να κάνετε κάποια αλλαγή, καθώς η συσκεύη
+ <devicename>uart</devicename> περιλαμβάνεται ήδη σε αυτόν.
+ Απλώς ελέγξτε τα μηνύματα της <command>dmesg</command> για την
+ συσκευή modem, χρησιμοποιώντας την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>dmesg | grep uart</userinput></screen>
+
+ <para>Θα πρέπει να δείτε κάποια έξοδο σχετική με τις συσκευές
+ <devicename>uart</devicename>. Πρόκειται για τις θύρες COM που
+ χρειαζόμαστε. Αν το modem σας λειτουργεί ως τυποποιημένη σειριακή
+ θύρα, θα πρέπει να το δείτε να αναφέρεται ως
+ <devicename>uart1</devicename>, ή <devicename>COM2</devicename>. Αν
+ συμβαίνει αυτό, δεν χρειάζεται να επαναμεταγλωττίσετε τον πυρήνα
+ σας. Αν η σειριακή θύρα που αντιστοιχεί στο modem σας είναι η
+ <devicename>uart1</devicename> ή <devicename>COM2</devicename> στο
+ DOS, η αντίστοιχη συσκευή modem θα είναι η
+ <filename class="devicefile">/dev/cuau1</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Χειροκίνητη Σύνδεση</title>
+
+ <para>Η χειροκίνητη σύνδεση στο Internet με χρήση της
+ <command>ppp</command>, είναι ένας γρήγορος και εύκολος τρόπος να
+ εντοπίσετε τυχόν προβλήματα σύνδεσης, ή απλώς να πάρετε πληροφορίες
+ σχετικά με το πως ο <acronym>ISP</acronym> σας αντιμετωπίζει τις
+ συνδέσεις πελατών <command>ppp</command>. Θα ξεκινήσουμε την
+ εφαρμογή <application>PPP</application> από την γραμμή εντολών.
+ Σημειώστε ότι σε όλα μας τα παραδείγματα, θα χρησιμοποιούμε το
+ <emphasis>example</emphasis> ως το όνομα του υπολογιστή που εκτελεί
+ το <application>PPP</application>. Μπορείτε να ξεκινήσετε το
+ <command>ppp</command>, γράφοντας απλώς <command>ppp</command>:</para>
+
+ <screen>&prompt.root; <userinput>ppp</userinput></screen>
+
+ <para>Έχουμε τώρα ξεκινήσει το <command>ppp</command>.</para>
+
+ <screen>ppp ON example&gt; <userinput>set device <filename class="devicefile">/dev/cuau1</filename></userinput></screen>
+
+ <para>Θέτουμε τη συσκευή modem. Στο παράδειγμα μας, είναι η
+ <devicename>cuau1</devicename>.</para>
+
+ <screen>ppp ON example&gt; <userinput>set speed 115200</userinput></screen>
+
+ <para>Θέτουμε την ταχύτητα σύνδεσης, σε αυτή την περίπτωση
+ χρησιμοποιούμε 115,200 <acronym>kbps</acronym>.</para>
+
+ <screen>ppp ON example&gt; <userinput>enable dns</userinput></screen>
+
+ <para>Λέμε στο <command>ppp</command> να ρυθμίσει τον
+ resolver και προσθέτουμε τις κατάλληλες γραμμές για το διακομιστή
+ ονομάτων στο <filename>/etc/resolv.conf</filename>. Αν το
+ <command>ppp</command> δεν μπορεί να καθορίσει το όνομα του
+ διακομιστή, μπορούμε να το καθορίσουμε με χειροκίνητο τρόπο
+ αργότερα.</para>
+
+ <screen>ppp ON example&gt; <userinput>term</userinput></screen>
+
+ <para>Αλλάζουμε σε κατάσταση <quote>terminal</quote> ώστε να μπορούμε
+ να ελέγξουμε το modem χειροκίνητα.</para>
+
+ <programlisting>deflink: Entering terminal mode on <filename class="devicefile">/dev/cuau1</filename>
+type '~h' for help</programlisting>
+
+ <screen><userinput>at</userinput>
+OK
+<userinput>atdt<replaceable>123456789</replaceable></userinput></screen>
+
+ <para>Χρησιμοποιούμε το <command>at</command> για να αρχικοποιήσουμε το
+ modem, και έπειτα χρησιμοποιούμε το <command>atdt</command> και τον
+ αριθμό του <acronym>ISP</acronym> για να ξεκινήσουμε τη διαδικασία
+ της κλήσης.</para>
+
+ <screen>CONNECT</screen>
+
+ <para>Εδώ έχουμε επιβεβαίωση της σύνδεσης. Αν έχουμε προβλήματα
+ σύνδεσης τα οποία δεν σχετίζονται με το υλικό μας, εδώ είναι το σημείο
+ που πρέπει να προσπαθήσουμε να τα επιλύσουμε.</para>
+
+ <screen>ISP Login:<userinput>myusername</userinput></screen>
+
+ <para>Η προτροπή αυτή είναι για να δώσουμε το όνομα χρήστη.
+ Χρησιμοποιήστε το όνομα χρήστη που σας έχει δοθεί από τον
+ <acronym>ISP</acronym> σας.</para>
+
+ <screen>ISP Pass:<userinput>mypassword</userinput></screen>
+
+ <para>Η προτροπή αυτή είναι για τον κωδικό πρόσβασης. Απαντήστε με τον
+ κωδικό που σας έχει δοθεί από τον <acronym>ISP</acronym> σας.
+ Ο κωδικός αυτός δεν θα εμφανιστεί στην οθόνη σας, όπως ακριβώς
+ συμβαίνει και με τον κωδικό σας όταν τον γράφετε στην προτροπή εισόδου
+ του &os; συστήματος σας.</para>
+
+ <screen>Shell or PPP:<userinput>ppp</userinput></screen>
+
+ <para>Ανάλογα με τον <acronym>ISP</acronym> σας, μπορεί να μην δείτε και
+ καθόλου την παραπάνω προτροπή. Στην παραπάνω περίπτωση μας ρωτάει
+ αν επιθυμούμε να εκτελέσουμε κάποιο κέλυφος (shell) στο μηχάνημα του
+ παροχέα, ή αν θέλουμε να εκκινήσουμε το <command>ppp</command>.
+ Στο παράδειγμα μας επιλέξαμε να χρησιμοποιήσουμε
+ <command>ppp</command> καθώς θέλουμε να συνδεθούμε στο
+ Internet.</para>
+
+ <screen>Ppp ON example&gt;</screen>
+
+ <para>Παρατηρήστε ότι στο παράδειγμα το πρώτο <option>p</option>
+ είναι κεφαλαίο. Αυτό δείχνει ότι έχουμε συνδεθεί επιτυχώς με τον
+ <acronym>ISP</acronym>.</para>
+
+ <screen>PPp ON example&gt;</screen>
+
+ <para>Έχουμε πιστοποιηθεί με επιτυχία από τον <acronym>ISP</acronym>
+ μας, και περιμένουμε να μας αποδοθεί διεύθυνση
+ <acronym>IP</acronym>.</para>
+
+ <screen>PPP ON example&gt;</screen>
+
+ <para>Έχει πλέον καθοριστεί διεύθυνση <acronym>IP</acronym>, και έχουμε
+ ολοκληρώσει τη σύνδεση με επιτυχία.</para>
+
+ <screen>PPP ON example&gt;<userinput>add default HISADDR</userinput></screen>
+
+ <para>Εδώ προσθέτουμε την προεπιλεγμένη διαδρομή (default route).
+ Το βήμα αυτό είναι απαραίτητο πριν μπορέσουμε να επικοινωνήσουμε με
+ τον έξω κόσμο, καθώς τη δεδομένη στιγμή η μόνη σύνδεση που έχουμε
+ είναι με ένα υπολογιστή από την άλλη μεριά της γραμμής. Αν το
+ παραπάνω αποτύχει επειδή υπάρχουν ήδη καθορισμένες διαδρομές,
+ μπορείτε να βάλετε ένα θαυμαστικό <literal>!</literal> μπροστά από το
+ <option>add</option>. Εναλλακτικά, μπορείτε να κάνετε αυτή τη
+ ρύθμιση πριν επιχειρήσετε τη σύνδεση, και θα γίνει αυτόματα
+ διαπραγμάτευση της νέας διαδρομής.</para>
+
+ <para>Αν όλα πήγαν καλά, θα πρέπει τώρα να έχετε ενεργή σύνδεση με το
+ Internet, την οποία μπορείτε να μετακινήσετε στο παρασκήνιο
+ χρησιμοποιώντας το συνδυασμό πλήκτρων
+ <keycombo action="simul"><keycap>CTRL</keycap>
+ <keycap>z</keycap></keycombo>. Αν παρατηρήσετε το
+ <command>PPP</command> να γίνεται ξανά <command>ppp</command>,
+ η σύνδεση έχει διακοπεί. Με τον τρόπο αυτό μπορείτε να παρακολουθείτε
+ την κατάσταση της σύνδεση σας. Τα κεφαλαία P δείχνουν ότι υπάρχει
+ σύνδεση με τον <acronym>ISP</acronym> ενώ τα μικρά p δείχνουν ότι
+ για κάποιο λόγο η σύνδεση έχει χαθεί. Το <command>ppp</command> έχει
+ μόνο αυτές τις δύο καταστάσεις.</para>
+
+ <sect3>
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <para>Αν έχετε απευθείας γραμμή και δεν φαίνεται να μπορείτε να
+ αποκαταστήσετε τη σύνδεση, απενεργοποιήστε τον έλεγχο ροής μέσω
+ υλικού (<acronym>CTS/RTS</acronym>) χρησιμοποιώντας την επιλογή
+ <option>set ctsrts off</option>. Το παραπάνω συμβαίνει συνήθως αν
+ είστε συνδεμένος σε κάποιο εξυπηρετητή τερματικών με δυνατότητα
+ <application>PPP</application>, όπου το
+ <application>PPP</application> σταματάει να αποκρίνεται όταν
+ προσπαθεί να γράψει δεδομένα στη σύνδεση σας. Στην περίπτωση αυτή,
+ συνήθως περιμένει για κάποιο σήμα <acronym>CTS</acronym> (Clear
+ To Send) το οποίο δεν έρχεται ποτέ. Αν ωστόσο χρησιμοποιήσετε αυτή
+ την επιλογή, θα πρέπει επίσης να χρησιμοποιήσετε και την επιλογή
+ <option>set accmap</option> η οποία ενδεχομένως απαιτείται για να
+ απομονωθεί το υλικό που εξαρτάται από τη μετάδοση συγκεκριμένων
+ χαρακτήρων από τη μια άκρη στην άλλη, συνήθως μέσω του XON/XOFF.
+ Δείτε τη σελίδα manual του &man.ppp.8; για περισσότερες πληροφορίες
+ σχετικά με αυτή την επιλογή και πως μπορείτε να την
+ χρησιμοποιήσετε.</para>
+
+ <para>Αν διαθέτετε ένα παλαιότερο modem, ίσως χρειαστεί να
+ χρησιμοποιήσετε την επιλογή <option>set parity even</option>.
+ Η προεπιλεγμένη ρύθμιση είναι να μην υπάρχει ισοτιμία (parity
+ none), αλλά σε παλιά modems (και σε κάποιους
+ <acronym>ISP</acronym>) χρησιμοποιείται για έλεγχο λαθών
+ (η χρήση της προκαλεί ωστόσο μεγάλη αύξηση στη μετακίνηση
+ δεδομένων). Ίσως χρειαστείτε αυτή την επιλογή, αν ο
+ <acronym>ISP</acronym> σας είναι η Compuserve.</para>
+
+ <para>Το <application>PPP</application> ίσως να μην επανέλθει στην
+ κατάσταση εντολών, το οποίο είναι συνήθως σφάλμα διαπραγμάτευσης,
+ καθώς ο <acronym>ISP</acronym> περιμένει από τη δική σας μεριά να
+ ξεκινήσει τη διαπραγμάτευση. Στο σημείο αυτό, η χρήση της εντολής
+ <command>~p</command> θα εξαναγκάσει το ppp να αρχίσει να στέλνει
+ τις πληροφορίες σχετικά με τη ρύθμιση.</para>
+
+ <para>Αν δεν πάρετε ποτέ προτροπή εισόδου, το πιθανότερο είναι να
+ πρέπει να χρησιμοποιήσετε πιστοποίηση <acronym>PAP</acronym> ή
+ <acronym>CHAP</acronym> αντί για την τύπου &unix; πιστοποίηση που
+ περιγράψαμε στο παραπάνω παράδειγμα. Για να χρησιμοποιήσετε
+ <acronym>PAP</acronym> ή <acronym>CHAP</acronym> απλώς προσθέστε τις
+ παρακάτω επιλογές στην εφαρμογή <application>PPP</application>
+ πριν βρεθείτε σε κατάσταση τερματικού:</para>
+
+ <screen>ppp ON example&gt; <userinput>set authname <replaceable>myusername</replaceable></userinput></screen>
+
+ <para>Θα πρέπει να αντικαταστήσετε το
+ <replaceable>myusername</replaceable> με το όνομα χρήστη που σας
+ έχει δοθεί από τον <acronym>ISP</acronym> σας.</para>
+
+ <screen>ppp ON example&gt; <userinput>set authkey <replaceable>mypassword</replaceable></userinput></screen>
+
+ <para>Θα πρέπει να αντικαταστήσετε το
+ <replaceable>mypassword</replaceable> με τον κωδικό χρήστη που σας
+ έχει δοθεί από τον <acronym>ISP</acronym> σας.</para>
+
+ <para>Αν συνδέεστε κανονικά, αλλά δεν φαίνεται να μπορείτε να
+ επικοινωνήσετε με καμιά διεύθυνση, προσπαθήστε να χρησιμοποιήσετε
+ την εντολή &man.ping.8; με μια διεύθυνση <acronym>IP</acronym> για
+ να δείτε αν θα λάβετε απάντηση. Αν βλέπετε απώλεια πακέτων 100%,
+ το πιο πιθανό είναι ότι δεν έχετε καθορίσει κάποια προεπιλεγμένη
+ διαδρομή. Ελέγξτε ξανά ότι έχετε ρυθμίσει την επιλογή
+ <option>add default HISADDR</option> κατά τη διάρκεια της σύνδεσης.
+ Αν μπορείτε να επικοινωνήσετε με μια απομακρυσμένη διεύθυνση
+ <acronym>IP</acronym>, το πιθανότερο είναι ότι δεν έχετε βάλει
+ τη διεύθυνση κάποιου διακομιστή ονομάτων στο αρχείο
+ <filename>/etc/resolv.conf</filename>. Το αρχείο αυτό θα πρέπει να
+ μοιάζει με το παρακάτω:</para>
+
+ <programlisting>domain <replaceable>example.com</replaceable>
+nameserver <replaceable>x.x.x.x</replaceable>
+nameserver <replaceable>y.y.y.y</replaceable></programlisting>
+
+ <para>Όπου τα <replaceable>x.x.x.x</replaceable> και
+ <replaceable>y.y.y.y</replaceable> θα πρέπει να αντικατασταθούν με
+ τις διευθύνσεις <acronym>IP</acronym> των διακομιστών DNS του
+ <acronym>ISP</acronym> σας. Ενδεχομένως οι πληροφορίες αυτές να
+ σας έχουν δοθεί κατά την εγγραφή σας στην υπηρεσία. Αν όχι, θα
+ μπορέσετε να τις βρείτε εύκολα με ένα τηλεφώνημα στον
+ <acronym>ISP</acronym> σας.</para>
+
+ <para>Μπορείτε επίσης να ενεργοποιήσετε την καταγραφή συμβάντων για
+ την <application>PPP</application> σύνδεση σας, μέσω του
+ &man.syslog.3;. Απλώς προσθέστε:</para>
+
+ <programlisting>!ppp
+*.* /var/log/ppp.log</programlisting>
+
+ <para>στο <filename>/etc/syslog.conf</filename>. Τις περισσότερες
+ φορές, αυτή η λειτουργία υπάρχει ήδη.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="pppoe">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Συνεισφορά (από http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) του </contrib>
+ </author>
+ </authorgroup>
+ <!-- 10 Jan 2000 -->
+ </sect1info>
+
+ <title>Χρησιμοποιώντας PPP μέσω Ethernet (PPPoE)</title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>over Ethernet</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>PPPoE</primary>
+ <see>PPP, over Ethernet</see>
+ </indexterm>
+
+ <para>Η ενότητα αυτή περιγράφει πως να ρυθμίσετε μια σύνδεση PPP μέσω
+ Ethernet (<acronym>PPPoE</acronym>).</para>
+
+ <sect2>
+ <title>Ρύθμιση του Πυρήνα</title>
+
+ <para>Δεν απαιτείται πλέον ειδική ρύθμιση του πυρήνα για τη λειτουργία
+ PPPoE. Αν ο πυρήνας σας δεν περιλαμβάνει την απαραίτητη υποστήριξη
+ netgraph, το <application>ppp</application> θα την φορτώσει αυτόματα
+ ως άρθρωμα.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του <filename>ppp.conf</filename></title>
+
+ <para>Παρακάτω φαίνεται ένα υπόδειγμα αρχείου
+ <filename>ppp.conf</filename>:</para>
+
+ <programlisting>default:
+ set log Phase tun command # you can add more detailed logging if you wish
+ set ifaddr 10.0.0.1/0 10.0.0.2/0
+
+name_of_service_provider:
+ set device PPPoE:<replaceable>xl1</replaceable> # replace xl1 with your Ethernet device
+ set authname YOURLOGINNAME
+ set authkey YOURPASSWORD
+ set dial
+ set login
+ add default HISADDR</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Εκτέλεση του <application>ppp</application></title>
+
+ <para>Ως χρήστης <username>root</username>, μπορείτε να
+ εκτελέσετε:</para>
+
+ <screen>&prompt.root; <userinput>ppp -ddial name_of_service_provider</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Εκκίνηση του <application>ppp</application> κατά την
+ Εκκίνηση</title>
+
+ <para>Προσθέστε τις παρακάτω γραμμές στο αρχείο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>ppp_enable="YES"
+ppp_mode="ddial"
+ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
+ppp_profile="name_of_service_provider"</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>Χρήση μιας Ετικέτας Υπηρεσίας PPPoE</title>
+
+ <para>Μερικές φορές θα χρειαστεί να χρησιμοποιήσετε μια ετικέτα
+ υπηρεσίας (service tag) για την αποκατάσταση της σύνδεσης σας.
+ Οι ετικέτες υπηρεσιών χρησιμοποιούνται για τον διαχωρισμό
+ μεταξύ διαφορετικών εξυπηρετητών PPPoE που βρίσκονται στο ίδιο
+ δίκτυο.</para>
+
+ <para>Η τεκμηρίωση που σας έχει δώσει ο ISP σας, θα πρέπει να έχει τις
+ απαιτούμενες πληροφορίες για την ετικέτα υπηρεσίας που χρειάζεστε.
+ Αν δεν μπορείτε να την βρείτε, ρωτήστε την εξυπηρέτηση πελατών του
+ ISP σας.</para>
+
+ <para>Ως τελευταία λύση, θα μπορούσατε να δοκιμάσετε την μέθοδο
+ που συνίσταται στο πρόγραμμα <ulink
+ url="http://www.roaringpenguin.com/pppoe/">Roaring Penguin
+ PPPoE</ulink> το οποίο μπορείτε να βρείτε στην <link
+ linkend="ports">Συλλογή των Ports</link>. Να έχετε υπόψη σας,
+ ότι αυτό μπορεί να αποπρογραμματίσει και να αχρηστεύσει το modem
+ σας, έτσι σκεφτείτε το καλά πριν το κάνετε. Απλώς εγκαταστήστε το
+ πρόγραμμα που δίνει ο παροχέας σας μαζί με το modem. Έπειτα,
+ εισέλθετε στο μενού <guimenu>System</guimenu> του προγράμματος.
+ Εκεί θα πρέπει να είναι το όνομα του προφίλ σας. Συνήθως γράφει
+ <emphasis>ISP</emphasis>.</para>
+
+ <para>Το όνομα του προφίλ (ετικέτα υπηρεσίας) θα χρησιμοποιηθεί στην
+ καταχώριση για την ρύθμιση του PPPoE στο αρχείο
+ <filename>ppp.conf</filename>, ως το τμήμα που δηλώνει τον παροχέα
+ στην εντολή <command>set device</command> (δείτε τη σελίδα manual του
+ &man.ppp.8; για πλήρεις λεπτομέρειες). θα δείχνει όπως το
+ παρακάτω:</para>
+
+ <programlisting>set device PPPoE:<replaceable>xl1</replaceable>:<replaceable>ISP</replaceable></programlisting>
+
+ <para>Μην ξεχάσετε να αλλάξετε το <replaceable>xl1</replaceable>
+ με τη σωστή συσκευή που αντιστοιχεί στην κάρτα Ethernet που
+ χρησιμοποιείτε.</para>
+
+ <para>Μην ξεχάσετε να αλλάξετε το <replaceable>ISP</replaceable>
+ με το προφίλ που βρήκατε παραπάνω.</para>
+
+ <para>Για περισσότερες πληροφορίες, δείτε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="http://renaud.waldura.com/doc/freebsd/pppoe/">Φθηνότερες
+ Ευρυζωνικές Συνδέσεις μέσω &os; σε Γραμμή DSL</ulink> από τον
+ Renaud Waldura.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink
+ url="http://www.ruhr.de/home/nathan/FreeBSD/tdsl-freebsd.html">
+ Nutzung von T-DSL und T-Online mit &os;</ulink>
+ από τον Udo Erdelhoff (στα Γερμανικά).</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2 id="ppp-3com">
+ <title>Το PPPoE σε Modem &tm.3com; <trademark
+ class="registered">HomeConnect</trademark> ADSL Dual Link</title>
+
+ <para>Αυτό το modem δεν ακολουθεί το <ulink
+ url="http://www.faqs.org/rfcs/rfc2516.html">RFC 2516</ulink>
+ (<emphasis>Μια μέθοδος για μετάδοση PPP μέσω Ethernet
+ (PPPoE)</emphasis>, γραμμένο από τους L. Mamakos, K. Lidl, J. Evarts,
+ D. Carrel, D. Simone, και R. Wheeler). Αντίθετα, χρησιμοποιεί
+ διαφορετικούς τύπους κωδικών πακέτων για τα πλαίσια Ethernet.
+ Παρακαλούμε να εκφράσετε τα παράπονα σας στην <ulink
+ url="http://www.3com.com/">3Com</ulink> αν νομίζετε ότι θα πρέπει
+ να συμμορφωθεί με τις προδιαγραφές του PPPoE.</para>
+
+ <para>Για να μπορεί το &os; να επικοινωνεί με αυτή τη συσκευή, θα πρέπει
+ να τεθεί ένα κατάλληλο sysctl. Αυτό μπορεί να γίνεται αυτόματα κατά
+ την εκκίνηση, με την ενημέρωση του αρχείου
+ <filename>/etc/sysctl.conf</filename>:</para>
+
+ <programlisting>net.graph.nonstandard_pppoe=1</programlisting>
+
+ <para>ή μπορεί να γίνει άμεσα με την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>sysctl net.graph.nonstandard_pppoe=1</userinput></screen>
+
+ <para>Δυστυχώς, επειδή πρόκειται για μια ρύθμιση που επηρεάζει ολόκληρο
+ το σύστημα, δεν είναι δυνατόν να επικοινωνείτε ταυτόχρονα με
+ ένα κανονικό πελάτη ή εξυπηρετητή PPPoE και με ένα ADSL modem
+ &tm.3com; <trademark
+ class="registered">HomeConnect</trademark>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="pppoa">
+ <title>Χρησιμοποιώντας <application>PPP</application> μέσω ATM
+ (PPPoA)</title>
+
+ <indexterm>
+ <primary>PPP</primary>
+ <secondary>over ATM</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>PPPoA</primary>
+ <see>PPP, over ATM</see>
+ </indexterm>
+
+ <para>Ή ενότητα που ακολουθεί, περιγράφει πως να ρυθμίσετε το PPP για
+ λειτουργία μέσω ATM (PPPoA). Το PPPoA είναι μια δημοφιλής επιλογή
+ στους παροχείς υπηρεσιών DSL στην Ευρώπη.</para>
+
+ <sect2>
+ <title>Χρησιμοποιώντας PPPoA με το Alcatel &speedtouch; USB</title>
+
+ <para>Η υποστήριξη PPPooA για αυτή τη συσκευή, παρέχεται ως port στο
+ &os;, καθώς το firmware της συσκευής διανέμεται υπό την άδεια
+ <ulink url="http://www.speedtouchdsl.com/disclaimer_lx.htm">Alcatel's
+ license agreement</ulink> και δεν μπορεί να διανεμηθεί ελεύθερα με
+ το βασικό σύστημα του &os;.</para>
+
+ <para>Για να εγκαταστήσετε το λογισμικό, απλά χρησιμοποιήστε την
+ <link linkend="ports">Συλλογή των Ports</link>. Εγκαταστήστε το
+ port <filename role="package">net/pppoa</filename> και ακολουθήστε τις
+ οδηγίες που περιλαμβάνονται σε αυτό.</para>
+
+ <para>Όπως πολλές συσκευές USB, το Alcatel &speedtouch; χρειάζεται να
+ κατεβάσει το firmware του από τον υπολογιστή στο οποίο είναι
+ συνδεμένο, προκειμένου να λειτουργήσει σωστά. Η διαδικασία αυτή
+ μπορεί να αυτοματοποιηθεί στο &os;, ώστε η μεταφορά να γίνεται κάθε
+ φορά που συνδέεται η συσκευή στη θύρα USB. Μπορείτε να προσθέσετε
+ τις παρακάτω πληροφορίες στο αρχείο
+ <filename>/etc/usbd.conf</filename> για να ενεργοποιήσετε την
+ αυτόματη μεταφορά του firmware. Θα πρέπει να επεξεργαστείτε αυτό το
+ αρχείο ως χρήστης <username>root</username>.</para>
+
+ <programlisting>device "Alcatel SpeedTouch USB"
+ devname "ugen[0-9]+"
+ vendor 0x06b9
+ product 0x4061
+ attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"</programlisting>
+
+ <para>Για να ενεργοποιήσετε το <application>usbd</application>, το
+ δαίμονα USB, προσθέστε την παρακάτω γραμμή στο αρχείο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>usbd_enable="YES"</programlisting>
+
+ <para>Μπορεί επίσης να ρυθμίσετε το <application>ppp</application> ώστε
+ να εκτελεί αυτόματα κλήση κατά την εκκίνηση του συστήματος. Για να
+ γίνει αυτό, προσθέστε τις παρακάτω γραμμές στο
+ <filename>/etc/rc.conf</filename>. Θα πρέπει και πάλι να εκτελέσετε
+ τη διαδικασία αυτή ως <username>root</username>.</para>
+
+ <programlisting>ppp_enable="YES"
+ppp_mode="ddial"
+ppp_profile="adsl"</programlisting>
+
+ <para>Για να λειτουργήσει σωστά το παραπάνω, θα πρέπει να έχετε
+ χρησιμοποιήσει το υπόδειγμα του αρχείου <filename>ppp.conf</filename>
+ το οποίο παρέχεται με το port <filename
+ role="package">net/pppoa</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας το mpd</title>
+
+ <para>Μπορείτε να χρησιμοποιήσετε το <application>mpd</application> για
+ να συνδεθείτε σε ένα πλήθος υπηρεσιών, και ειδικότερα υπηρεσίες PPTP.
+ Μπορείτε να βρείτε το <application>mpd</application> στην Συλλογή των
+ Ports, στο <filename role="package">net/mpd</filename>. Πολλά ADSL
+ modem απαιτούν τη δημιουργία ενός PPTP τούνελ μεταξύ του modem και του
+ υπολογιστή. Ένα τέτοιο modem είναι το Alcatel &speedtouch;
+ Home.</para>
+
+ <para>Πρώτα πρέπει να εγκαταστήσετε το port, και μετά μπορείτε να
+ ρυθμίσετε το <application>mpd</application> ώστε να καλύπτει τις
+ απαιτήσεις σας και τις ρυθμίσεις του παροχέα σας. Το port εγκαθιστά
+ κάποια παραδείγματα αρχείων ρυθμίσεων στον κατάλογο <filename
+ class="directory"><replaceable>PREFIX</replaceable>/etc/mpd/</filename>.
+ Τα αρχεία αυτά περιέχουν αρκετά καλή τεκμηρίωση των ρυθμίσεων.
+ Σημειώστε εδώ, ότι το <replaceable>PREFIX</replaceable> είναι ο
+ κατάλογος στον οποίο εγκαθίστανται τα ports, και από προεπιλογή είναι
+ ο <filename class="directory">/usr/local/</filename>. Μετά την
+ εγκατάσταση του port, θα βρείτε ένα πλήρη οδηγό για τη ρύθμιση του
+ <application>mpd</application> σε μορφή HTML. Η τεκμηρίωση
+ εγκαθίσταται στον κατάλογο <filename
+ class="directory"><replaceable>PREFIX</replaceable>/share/doc/mpd/</filename>.
+ Παρακάτω φαίνεται ένα υπόδειγμα ρυθμίσεων για σύνδεση σε μια υπηρεσία
+ ADSL μέσω του <application>mpd</application>. Οι ρυθμίσεις χωρίζονται
+ σε δύο αρχεία, πρώτα δείχνουμε το
+ <filename>mpd.conf</filename>:</para>
+
+ <programlisting>default:
+ load adsl
+
+adsl:
+ new -i ng0 adsl adsl
+ set bundle authname <replaceable>username</replaceable> <co
+ id="co-mpd-ex-user">
+ set bundle password <replaceable>password</replaceable> <co
+ id="co-mpd-ex-pass">
+ set bundle disable multilink
+
+ set link no pap acfcomp protocomp
+ set link disable chap
+ set link accept chap
+ set link keep-alive 30 10
+
+ set ipcp no vjcomp
+ set ipcp ranges 0.0.0.0/0 0.0.0.0/0
+
+ set iface route default
+ set iface disable on-demand
+ set iface enable proxy-arp
+ set iface idle 0
+
+ open</programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-mpd-ex-user">
+ <para>Το όνομα χρήστη με το οποίο γίνεται η πιστοποίηση στον
+ ISP σας.</para>
+ </callout>
+
+ <callout arearefs="co-mpd-ex-pass">
+ <para>Ο κωδικός με τον οποίο γίνεται η πιστοποίηση στον ISP
+ σας.</para>
+ </callout>
+ </calloutlist>
+
+ <para>Το αρχείο <filename>mpd.links</filename> περιέχει πληροφορίες
+ σχετικά με τη σύνδεση ή τις συνδέσεις που θα πραγματοποιηθούν. Για
+ παράδειγμα, το <filename>mpd.links</filename> που συνοδεύει το
+ παραπάνω παράδειγμα, φαίνεται παρακάτω:</para>
+
+ <programlisting>adsl:
+ set link type pptp
+ set pptp mode active
+ set pptp enable originate outcall
+ set pptp self <replaceable>10.0.0.1</replaceable> <co
+ id="co-mpd-ex-self">
+ set pptp peer <replaceable>10.0.0.138</replaceable> <co
+ id="co-mpd-ex-peer"></programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-mpd-ex-self">
+ <para>Η διεύθυνση IP του &os; υπολογιστή σας, στον οποίο θα
+ χρησιμοποιήσετε το <application>mpd</application>.</para>
+ </callout>
+
+ <callout arearefs="co-mpd-ex-peer">
+ <para>Η διεύθυνση IP του ADSL modem σας. Για το Alcatel
+ &speedtouch; Home, η διεύθυνση αυτή είναι από προεπιλογή η <hostid
+ role="ipaddr">10.0.0.138</hostid>.</para>
+ </callout>
+ </calloutlist>
+
+ <para>Είναι δυνατόν να αρχικοποιήσετε τη σύνδεση εύκολα, δίνοντας την
+ παρακάτω εντολή ως <username>root</username>:</para>
+
+ <screen>&prompt.root; <userinput>mpd -b <replaceable>adsl</replaceable></userinput></screen>
+
+ <para>Μπορείτε να δείτε την κατάσταση της σύνδεσης με την παρακάτω
+ εντολή:</para>
+
+ <screen>&prompt.user; <userinput>ifconfig <replaceable>ng0</replaceable></userinput>
+ng0: flags=88d1&lt;UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST&gt; mtu 1500
+ inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff</screen>
+
+ <para>Το <application>mpd</application> αποτελεί τον συνιστώμενο τρόπο
+ σύνδεσης του &os; με μια υπηρεσία ADSL.</para>
+ </sect2>
+
+ <sect2>
+ <title>Χρησιμοποιώντας το pptpclient</title>
+
+ <para>Μπορείτε επίσης να χρησιμοποιήσετε το &os; για να συνδεθείτε σε
+ άλλες υπηρεσίες PPPoA χρησιμοποιώντας το
+ <filename role="package">net/pptpclient</filename>.</para>
+
+ <para>Για να χρησιμοποιήσετε το <filename
+ role="package">net/pptpclient</filename> για να συνδεθείτε σε μια
+ υπηρεσία DSL, εγκαταστήστε το port ή το πακέτο, και επεξεργαστείτε το
+ αρχείο <filename>/etc/ppp/ppp.conf</filename>. Θα χρειαστεί να είστε
+ <username>root</username> για να κάνετε και τις δύο παραπάνω
+ διαδικασίες. Παρακάτω φαίνεται ένα παράδειγμα μιας ενότητας του
+ <filename>ppp.conf</filename>. Για περισσότερες πληροφορίες σχετικά
+ με τις επιλογές του <filename>ppp.conf</filename>, δείτε τη σελίδα
+ manual του <application>ppp</application>, &man.ppp.8;.</para>
+
+ <programlisting>adsl:
+ set log phase chat lcp ipcp ccp tun command
+ set timeout 0
+ enable dns
+ set authname <replaceable>username</replaceable> <co id="co-pptp-ex-user">
+ set authkey <replaceable>password</replaceable> <co id="co-pptp-ex-pass">
+ set ifaddr 0 0
+ add default HISADDR</programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-pptp-ex-user">
+ <para>Το όνομα χρήστη για τον λογαριασμό σας στον παροχέα
+ DSL.</para>
+ </callout>
+
+ <callout arearefs="co-pptp-ex-pass">
+ <para>Ο κωδικός για τον λογαριασμό σας.</para>
+ </callout>
+ </calloutlist>
+
+ <warning>
+ <para>Καθώς θα πρέπει να γράψετε τον κωδικό σας μορφή απλού κειμένου
+ στο αρχείο <filename>ppp.conf</filename>, θα πρέπει να βεβαιωθείτε
+ ότι κανένας άλλος δεν θα μπορεί να διαβάσει τα περιεχόμενα αυτού
+ του αρχείου. Με τις παρακάτω εντολές, μπορείτε να εξασφαλίσετε
+ ότι το αρχείο θα μπορεί να διαβαστεί μόνο μέσα από το λογαριασμό
+ του <username>root</username>. Δείτε τις σελίδες manual των
+ &man.chmod.1; και &man.chown.8; για περισσότερες πληροφορίες.</para>
+
+ <screen>&prompt.root; <userinput>chown root:wheel /etc/ppp/ppp.conf</userinput>
+&prompt.root; <userinput>chmod 600 /etc/ppp/ppp.conf</userinput></screen>
+ </warning>
+
+ <para>Αυτό θα ανοίξει ένα τούνελ για μια συνεδρία PPP με τον DSL
+ δρομολογητή σας. Τα DSL modem τύπου ethernet έχουν μια προκαθορισμένη
+ διεύθυνση IP στο τοπικό σας δίκτυο, στην οποία μπορείτε να συνδεθείτε.
+ Στην περίπτωση του Alcatel &speedtouch; Home, η διεύθυνση αυτή είναι
+ <hostid role="ipaddr">10.0.0.138</hostid>. Η τεκμηρίωση που διαθέτει
+ ο δρομολογητής σας, θα αναφέρει ποια διεύθυνση χρησιμοποιεί η συσκευή
+ σας. Για να ανοίξετε το τούνελ και να ξεκινήσετε μια συνεδρία PPP,
+ εκτελέστε την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>pptp <replaceable>address</replaceable> <replaceable>adsl</replaceable></userinput></screen>
+
+ <tip>
+ <para>Είναι καλή ιδέα να προσθέσετε ένα <quote>&amp;</quote> στο τέλος
+ της προηγούμενης εντολής, διαφορετικά το
+ <application>pptp</application> δεν θα σας επιστρέψει τον έλεγχο
+ (προτροπή) του τερματικού σας.</para>
+ </tip>
+
+ <para>Θα δημιουργηθεί μια συσκευή <devicename>tun</devicename>
+ (εικονικό τούνελ) για την αλληλεπίδραση μεταξύ των διεργασιών
+ <application>pptp</application> και <application>ppp</application>.
+ Μόλις επιστρέψει η προτροπή στο τερματικό σας, ή το
+ <application>pptp</application> επιβεβαιώσει τη σύνδεση, μπορείτε να
+ εξετάσετε το τούνελ με τον τρόπο που φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.user; <userinput>ifconfig <replaceable>tun0</replaceable></userinput>
+tun0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1500
+ inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
+ Opened by PID 918</screen>
+
+ <para>Αν δεν μπορέσετε να συνδεθείτε, ελέγξτε τις ρυθμίσεις του
+ δρομολογητή σας, οι οποίες συνήθως είναι προσβάσιμες μέσω
+ <application>telnet</application> ή μέσω κάποιου φυλλομετρητή.
+ Αν ακόμα δεν μπορείτε να συνδεθείτε, θα πρέπει να εξετάσετε την έξοδο
+ της εντολής <command>pptp</command> και τα περιεχόμενα του αρχείου
+ καταγραφής του <application>ppp</application>,
+ <filename>/var/log/ppp.log</filename> για πιθανά στοιχεία.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="slip">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Satoshi</firstname>
+ <surname>Asami</surname>
+ <contrib>Αρχική συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Guy</firstname>
+ <surname>Helmer</surname>
+ <contrib>Με τη βοήθεια των </contrib>
+ </author>
+
+ <author>
+ <firstname>Piero</firstname>
+ <surname>Serini</surname>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Χρησιμοποιώντας το SLIP</title>
+ <indexterm><primary>SLIP</primary></indexterm>
+
+ <warning>
+ <para>Η ενότητα αυτή εφαρμόζεται και είναι έγκυρη μόνο σε συστήματα
+ &os;&nbsp;7.X.</para>
+ </warning>
+
+ <sect2 id="slipc">
+ <title>Ρυθμίζοντας ένα Πελάτη SLIP</title>
+
+ <indexterm>
+ <primary>SLIP</primary>
+ <secondary>client</secondary>
+ </indexterm>
+
+ <para>Παρακάτω παρουσιάζουμε ένα τρόπο να ρυθμίσετε ένα μηχάνημα &os;
+ ως πελάτη SLIP σε ένα δίκτυο με στατικές διευθύνσεις. Για μηχανήματα
+ τα οποία λαμβάνουν όνομα δυναμικά (η διεύθυνση τους αλλάζει κάθε φορά
+ που συνδέονται), πιθανόν να χρειαστεί να κάνετε πιο πολύπλοκες
+ ρυθμίσεις.</para>
+
+ <para>Αρχικά, θα πρέπει να καθορίσετε σε ποια σειριακή θύρα είναι
+ συνδεμένο το modem σας. Αρκετοί χρήστες δημιουργούν ένα συμβολικό
+ δεσμό π.χ. <filename class="devicefile">/dev/modem</filename>, το
+ οποίο δείχνει στην πραγματική συσκευή <filename
+ class="devicefile">/dev/cuad<replaceable>N</replaceable></filename>.
+ Αυτό σας επιτρέπει να συνεχίσετε να χρησιμοποιείτε το ίδιο όνομα
+ συσκευής, ακόμα και αν μετακινήσετε το modem σε διαφορετική θύρα.
+ Είναι μάλλον άβολο να πρέπει να αλλάξετε πλήθος αρχείων στο
+ <filename class="directory">/etc</filename> καθώς και τα αρχεία
+ <filename>.kermrc</filename> σε όλο το σύστημα!</para>
+
+ <note>
+ <para>Το <filename class="devicefile">/dev/cuad0</filename>
+ είναι η <devicename>COM1</devicename>, το <filename
+ class="devicefile">/dev/cuad1</filename> είναι η
+ <devicename>COM2</devicename>, κ.ο.κ.</para>
+ </note>
+
+ <para>Βεβαιωθείτε ότι το αρχείο ρυθμίσεων του πυρήνα σας περιέχει τα
+ παρακάτω:</para>
+
+ <programlisting>device sl</programlisting>
+
+ <para>Το παραπάνω περιλαμβάνεται στον πυρήνα
+ <filename>GENERIC</filename>, και αν δεν το έχετε διαγράψει, δεν θα
+ έχετε πρόβλημα.</para>
+
+ <sect3>
+ <title>Ρυθμίσεις που θα Χρειαστεί να Κάνετε Μόνο μια Φορά</title>
+
+ <procedure>
+ <step>
+ <para>Προσθέστε το μηχάνημα σας, την πύλη (gateway) και τους
+ διακομιστές ονομάτων (nameservers) στο αρχείο
+ <filename>/etc/hosts</filename>. Στο παράδειγμα μας, το αρχείο
+ αυτό μοιάζει με το παρακάτω:</para>
+
+ <programlisting>127.0.0.1 localhost loghost
+136.152.64.181 water.CS.Example.EDU water.CS water
+136.152.64.1 inr-3.CS.Example.EDU inr-3 slip-gateway
+128.32.136.9 ns1.Example.EDU ns1
+128.32.136.12 ns2.Example.EDU ns2</programlisting>
+ </step>
+
+ <step>
+ <para>Βεβαιωθείτε ότι η ενότητα <literal>files</literal>
+ βρίσκεται πριν το <literal>dns</literal> στην ενότητα
+ <literal>hosts:</literal> του αρχείου
+ <filename>/etc/nsswitch.conf</filename>. Αν δεν υπάρχουν
+ αυτές οι παράμετροι, μπορεί να εμφανιστούν παράξενα
+ συμπτώματα.</para>
+ </step>
+
+ <step>
+ <para>Τροποποιήστε το αρχείο
+ <filename>/etc/rc.conf</filename>.</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Ορίστε το όνομα του υπολογιστή σας, τροποποιώντας τη
+ γραμμή που γράφει:</para>
+
+ <programlisting>hostname="myname.my.domain"</programlisting>
+
+ <para>Θα πρέπει εδώ να τοποθετήσετε το πλήρες όνομα του
+ υπολογιστή σας.</para>
+ </listitem>
+
+ <indexterm><primary>default route</primary></indexterm>
+ <listitem>
+ <para>Ορίστε τον προεπιλεγμένο δρομολογητή, αλλάζοντας τη
+ γραμμή:</para>
+
+ <programlisting>defaultrouter="NO"</programlisting>
+
+ <para>σε:</para>
+
+ <programlisting>defaultrouter="slip-gateway"</programlisting>
+ </listitem>
+ </orderedlist>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε ένα αρχείο
+ <filename>/etc/resolv.conf</filename> το οποίο θα
+ περιέχει:</para>
+
+ <programlisting>domain CS.Example.EDU
+nameserver 128.32.136.9
+nameserver 128.32.136.12</programlisting>
+
+ <indexterm><primary>nameserver</primary></indexterm>
+ <indexterm><primary>domain name</primary></indexterm>
+ <para>Όπως μπορείτε να δείτε, το παραπάνω ορίζει τους διακομιστές
+ DNS. Φυσικά, τα πραγματικά ονόματα και οι διευθύνσεις των
+ τομέων εξαρτώνται από το περιβάλλον σας.</para>
+ </step>
+
+ <step>
+ <para>Ρυθμίστε κωδικό πρόσβασης για τους χρήστες
+ <username>root</username> και
+ <username>toor</username> (καθώς και για όσους άλλους
+ λογαριασμούς δεν έχουν κωδικό).</para>
+ </step>
+
+ <step>
+ <para>Επανεκκινήστε το μηχάνημα σας, και βεβαιωθείτε ότι έχει
+ τεθεί σωστά το όνομα υπολογιστή.</para>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3>
+ <title>Δημιουργώντας μια Σύνδεση SLIP</title>
+
+ <indexterm>
+ <primary>SLIP</primary>
+ <secondary>connecting with</secondary>
+ </indexterm>
+
+ <procedure>
+ <step>
+ <para>Μετά την κλήση, γράψτε την εντολή <command>slip</command>
+ στην προτροπή, γράψτε το όνομα του μηχανήματος σας και τον
+ κωδικό. Το τι ακριβώς χρειάζεται να γράψετε, εξαρτάται από
+ το περιβάλλον σας. Αν χρησιμοποιείτε το
+ <application>Kermit</application>, μπορείτε να χρησιμοποιήσετε
+ ένα script όπως το ακόλουθο:</para>
+
+ <programlisting># kermit setup
+set modem hayes
+set line /dev/modem
+set speed 115200
+set parity none
+set flow rts/cts
+set terminal bytesize 8
+set file type binary
+# The next macro will dial up and login
+define slip dial 643-9600, input 10 =&gt;, if failure stop, -
+output slip\x0d, input 10 Username:, if failure stop, -
+output silvia\x0d, input 10 Password:, if failure stop, -
+output ***\x0d, echo \x0aCONNECTED\x0a</programlisting>
+
+ <para>Φυσικά, θα πρέπει να αλλάξετε το όνομα χρήστη και τον
+ κωδικό ώστε να ταιριάζουν με τα δικά σας. Μετά από αυτό,
+ μπορείτε απλώς να πληκτρολογήσετε <command>slip</command> στην
+ προτροπή σύνδεσης του <application>Kermit</application>.</para>
+
+ <note>
+ <para>Η ύπαρξη του κωδικού σας σε μορφή απλού κειμένου
+ σε οποιοδήποτε σημείο ενός συστήματος αρχείων, είναι γενικά
+ <emphasis>κακή</emphasis> ιδέα. Προχωρήστε με δική σας
+ ευθύνη.</para>
+ </note>
+ </step>
+
+ <step>
+ <para>Αφήστε το <application>Kermit</application> εκεί (μπορείτε
+ να το στείλετε στο παρασκήνιο χρησιμοποιώντας τα πλήκτρα
+ <keycombo>
+ <keycap>Ctrl</keycap>
+ <keycap>z</keycap>
+ </keycombo>) και ως <username>root</username>, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>slattach -h -c -s 115200 /dev/modem</userinput></screen>
+
+ <para>Αν μπορείτε να κάνετε <command>ping</command> σε υπολογιστές
+ στην άλλη μεριά του δρομολογητή, είστε συνδεμένοι! Αν αυτό
+ δεν δουλεύει, δοκιμάστε την επιλογή
+ <option>-a</option> αντί για την <option>-c</option> ως όρισμα
+ στην <command>slattach</command>.</para>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3>
+ <title>Πως να Τερματίσετε την Σύνδεση</title>
+
+ <para>Κάντε τα ακόλουθα:</para>
+
+ <screen>&prompt.root; <userinput>kill -INT `cat /var/run/slattach.modem.pid`</userinput></screen>
+
+ <para>για να τερματίσετε το <command>slattach</command>. Θυμηθείτε
+ ότι πρέπει να είστε <username>root</username> για να εκτελέσετε
+ το παραπάνω. Έπειτα επανέλθετε στο <command>kermit</command>
+ (εκτελώντας την <command>fg</command> αν το είχατε στείλει στο
+ παρασκήνιο) και τερματίστε το (πιέζοντας <keycap>q</keycap>).</para>
+
+ <para>Η σελίδα manual του &man.slattach.8; αναφέρει ότι μπορείτε να
+ χρησιμοποιήσετε την εντολή <command>ifconfig sl0 down</command> για
+ να διακόψετε τη σύνδεση, αλλά αυτό δεν φαίνεται να έχει κανένα
+ αποτέλεσμα. (To <command>ifconfig sl0</command> αναφέρει το ίδιο
+ πράγμα.)</para>
+
+ <para>Μερικές φορές, το modem σας μπορεί να αρνηθεί να κλείσει τη
+ γραμμή. Στις περιπτώσεις αυτές, ξεκινήστε ξανά το
+ <command>kermit</command> και τερματίστε το ξανά. Τη δεύτερη φορά
+ συνήθως πετυχαίνει.</para>
+ </sect3>
+
+ <sect3>
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <para>Αν το παραπάνω δεν λειτουργήσει, ρωτήστε στη λίστα &a.net.name;.
+ Μερικά από τα συνηθισμένα προβλήματα τα οποία έχουμε μέχρι στιγμής
+ αντιμετωπίσει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να μην έχει χρησιμοποιηθεί η επιλογή <option>-c</option>
+ ή <option>-a</option> στην <command>slattach</command> (Αυτό
+ κανονικά δεν είναι κρίσιμο σφάλμα, αλλά μερικοί χρήστες
+ ανέφεραν ότι αυτό έλυσε τα προβλήματα τους.)</para>
+ </listitem>
+
+ <listitem>
+ <para>Χρήση του <option>s10</option> αντί για
+ <option>sl0</option> (η διαφορά μπορεί να είναι πολύ μικρή
+ σε μερικές γραμματοσειρές).</para>
+ </listitem>
+
+ <listitem>
+ <para>Δοκιμάστε την εντολή <command>ifconfig sl0</command> για να
+ δείτε την κατάσταση της διεπαφής. Για παράδειγμα, μπορεί να
+ δείτε το παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig sl0</userinput>
+sl0: flags=10&lt;POINTOPOINT&gt;
+ inet 136.152.64.181 --&gt; 136.152.64.1 netmask ffffff00</screen>
+ </listitem>
+
+ <listitem>
+ <para>Αν η εντολή &man.ping.8; δίνει μηνύματα
+ <errorname>no route to host</errorname>, ίσως υπάρχει πρόβλημα
+ με τον πίνακα δρομολόγησης σας. Μπορείτε να χρησιμοποιήσετε
+ την εντολή <command>netstat -r</command> για να δείτε την
+ τρέχουσα δρομολόγηση:</para>
+
+ <screen>&prompt.root; <userinput>netstat -r</userinput>
+Routing tables
+Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks:
+
+(root node)
+(root node)
+
+Route Tree for Protocol Family inet:
+(root node) =&gt;
+default inr-3.Example.EDU UG 8 224515 sl0 - -
+localhost.Exampl localhost.Example. UH 5 42127 lo0 - 0.438
+inr-3.Example.ED water.CS.Example.E UH 1 0 sl0 - -
+water.CS.Example localhost.Example. UGH 34 47641234 lo0 - 0.438
+(root node)</screen>
+
+ <para>Τα παραπάνω παραδείγματα είναι από ένα σχετικά απασχολημένο
+ σύστημα. Οι αριθμοί θα διαφέρουν στο σύστημα σας, ανάλογα με
+ τη δραστηριότητα του δικτύου.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="slips">
+ <title>Ρυθμίζοντας Ένα Εξυπηρετητή SLIP</title>
+
+ <indexterm>
+ <primary>SLIP</primary>
+ <secondary>server</secondary>
+ </indexterm>
+
+ <para>Το κείμενο αυτό παρέχει κάποιες υποδείξεις για τη ρύθμιση ενός
+ &os; συστήματος ως εξυπηρετητή SLIP. Τυπικά αυτό σημαίνει ότι το
+ σύστημα σας θα ρυθμιστεί να ξεκινά αυτόματα τις συνδέσεις μετά την
+ είσοδο απομακρυσμένων πελατών SLIP.</para>
+
+ <!-- Disclaimer is not necessarily relevant
+ <para> The author has written this document based
+ on his experience; however, as your system and needs may be
+ different, this document may not answer all of your questions, and
+ the author cannot be responsible if you damage your system or lose
+ data due to attempting to follow the suggestions here.</para>
+ -->
+
+ <sect3 id="slips-prereqs">
+ <title>Προϋποθέσεις</title>
+ <indexterm><primary>TCP/IP networking</primary></indexterm>
+
+ <para>Η ενότητα αυτή είναι ιδιαίτερα τεχνικής φύσεως, και για το λόγο
+ αυτό απαιτείται να έχετε τις αντίστοιχες γνώσεις για να την
+ κατανοήσετε. Υποθέτουμε ότι έχετε μια εξοικείωση με το πρωτόκολλο
+ TCP/IP και ειδικότερα με τη διευθυνσιοδότηση κόμβων, τις μάσκες
+ δικτύων, τα υποδίκτυα, τη δρομολόγηση και τα πρωτόκολλα
+ δρομολόγησης όπως το RIP. Η ρύθμιση των υπηρεσιών SLIP σε ένα
+ εξυπηρετητή επιλογικών συνδέσεων απαιτεί γνώση αυτών των εννοιών,
+ και αν δεν είστε εξοικειωμένος με αυτές, σας παρακαλούμε να
+ διαβάσετε είτε το <emphasis>TCP/IP Network Administration</emphasis>
+ του Craig Hunt (εκδόσεις O'Reilly &amp; Associates, Inc, Αριθμός
+ ISBN 0-937175-82-X) ή κάποιο από τα βιβλία του Douglas Comer σχετικά
+ με το πρωτόκολλο TCP/IP.</para>
+
+ <indexterm><primary>modem</primary></indexterm>
+ <para>Επιπλέον, υποθέτουμε ότι ήδη έχετε ρυθμίσει το modem σας και
+ έχετε τροποποιήσει τα κατάλληλα αρχεία ρυθμίσεων του συστήματος
+ ώστε να επιτρέπεται η είσοδος στο σύστημα μέσω των modem. Αν δεν
+ έχετε ακόμα προετοιμάσει το σύστημα για αυτό, παρακαλούμε δείτε το
+ <xref linkend="dialup"> για λεπτομέρειες σχετικά με τη ρύθμιση των
+ επιλογικών συνδέσεων. Ενδεχομένως να θέλετε επίσης να δείτε τις
+ σελίδες manual της &man.sio.4; για πληροφορίες σχετικά με το
+ πρόγραμμα οδήγησης της σειριακής θύρας, τα &man.ttys.5;,
+ &man.gettytab.5;, &man.getty.8;, και &man.init.8; για πληροφορίες
+ που σχετίζονται με τη ρύθμιση του συστήματος ώστε να δέχεται είσοδο
+ χρηστών μέσω modem, και ίσως και τη &man.stty.1; για πληροφορίες
+ σχετικά με τις παραμέτρους σειριακών θυρών (όπως την
+ <literal>clocal</literal> για σειριακές διεπαφές που είναι απευθείας
+ συνδεμένες).</para>
+ </sect3>
+
+ <sect3>
+ <title>Γρήγορη Επισκόπηση</title>
+
+ <para>Τυπικά, ένας εξυπηρετητής SLIP που χρησιμοποιεί &os; λειτουργεί
+ με τον εξής τρόπο: ένας χρήστης SLIP καλεί τον
+ εξυπηρετητή SLIP, και εισέρχεται στο σύστημα μέσω ενός ειδικού
+ αναγνωριστικού εισόδου για το SLIP. Το κέλυφος του χρήστη είναι το
+ <filename>/usr/sbin/sliplogin</filename>. Το πρόγραμμα
+ <command>sliplogin</command> διαβάζει το αρχείο
+ <filename>/etc/sliphome/slip.hosts</filename> για να βρει μια γραμμή
+ που να ταιριάζει με τον χρήστη, και αν υπάρχει, συνδέει την σειριακή
+ γραμμή σε μια διαθέσιμη διεπαφή SLIP και έπειτα εκτελεί το script
+ του κελύφους <filename>/etc/sliphome/slip.login</filename> για να
+ ρυθμίσει τη διεπαφή SLIP.</para>
+
+ <sect4>
+ <title>Ένα Παράδειγμα Εισόδου σε Εξυπηρετητή SLIP</title>
+
+ <para>Για παράδειγμα, για ένα χρήστη SLIP με ID
+ <username>Shelmerg</username>, η αντίστοιχη καταχώριση στο
+ <filename>/etc/master.passwd</filename> θα έμοιαζε με την
+ παρακάτω:</para>
+
+ <programlisting>Shelmerg:password:1964:89::0:0:Guy Helmer - SLIP:/usr/users/Shelmerg:/usr/sbin/sliplogin</programlisting>
+
+ <para>Όταν εισέλθει ο <username>Shelmerg</username>, το
+ <command>sliplogin</command> θα ψάξει το
+ <filename>/etc/sliphome/slip.hosts</filename> για μια γραμμή με
+ ID χρήστη που να ταιριάζει. Για παράδειγμα, μπορεί να υπάρχει
+ μια γραμμή στο <filename>/etc/sliphome/slip.hosts</filename> που
+ να γράφει:</para>
+
+ <programlisting>Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
+
+ <para>Το <command>sliplogin</command> θα βρει τη γραμμή αυτή,
+ θα συνδέσει τη σειριακή γραμμή στην επόμενη διαθέσιμη διεπαφή
+ SLIP, και έπειτα θα εκτελέσει το
+ <filename>/etc/sliphome/slip.login</filename> όπως φαίνεται
+ παρακάτω:</para>
+
+ <programlisting>/etc/sliphome/slip.login 0 19200 Shelmerg dc-slip sl-helmer 0xfffffc00 autocomp</programlisting>
+
+ <para>Αν όλα πάνε καλά, το
+ <filename>/etc/sliphome/slip.login</filename> θα εκτελέσει
+ μια εντολή <command>ifconfig</command> για τη διεπαφή SLIP
+ στην οποία έχει συνδεθεί η <command>sliplogin</command> (η διεπαφή
+ 0 στο παραπάνω παράδειγμα, η πρώτη παράμετρος της λίστας που
+ δίνεται στο <filename>slip.login</filename>) ώστε να ρυθμιστούν
+ η τοπική διεύθυνση IP (<hostid>dc-slip</hostid>), η
+ απομακρυσμένη διεύθυνση IP (<hostid>sl-helmer</hostid>), η μάσκα
+ δικτύου για τη διεπαφή SLIP (<hostid
+ role="netmask">0xfffffc00</hostid>), και οποιεσδήποτε πρόσθετες
+ επιλογές (<literal>autocomp</literal>). Αν κάτι πάει στραβά,
+ θα μπορέσετε να το εντοπίσετε από τα αρχεία καταγραφής της
+ <command>sliplogin</command>. Η <command>sliplogin</command>
+ καταγράφει τα μηνύματα χρησιμοποιώντας το δαίμονα
+ <application>syslogd</application> ο οποίος συνήθως χρησιμοποιεί
+ το αρχείο <filename>/var/log/messages</filename> (δείτε τις
+ σελίδες βοήθειας για τα &man.syslogd.8; και &man.syslog.conf.5;
+ και ενδεχομένως ελέγξτε το <filename>/etc/syslog.conf</filename>
+ για να δείτε την τοποθεσία και το αρχείο που χρησιμοποιεί το
+ <application>syslogd</application> για την καταγραφή).</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Ρύθμιση του Πυρήνα</title>
+
+ <indexterm>
+ <primary>kernel</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>SLIP</primary>
+ </indexterm>
+
+ <para>Ο προεπιλεγμένος πυρήνας του &os;
+ (ο <filename>GENERIC</filename>) διαθέτει ενσωματωμένη υποστήριξη
+ SLIP (&man.sl.4;). Στην περίπτωση που θέλετε να δημιουργήσετε
+ προσαρμοσμένο πυρήνα, προσθέστε την παρακάτω γραμμή στο αρχείο
+ ρυθμίσεων του πυρήνα σας:</para>
+
+ <programlisting>device sl</programlisting>
+
+ <para>Το &os;, από προεπιλογή, δεν προωθεί πακέτα. Αν θέλετε ο
+ εξυπηρετητής σας να ενεργεί ως δρομολογητής, θα πρέπει να
+ επεξεργαστείτε το αρχείο <filename>/etc/rc.conf</filename> και να
+ αλλάξετε τη ρύθμιση της μεταβλητής <literal>gateway_enable</literal>
+ σε <option>YES</option>. Με τον τρόπο αυτό, θα είναι σίγουρο ότι
+ η επιλογή της δρομολόγησης θα διατηρηθεί μετά από μια
+ επανεκκίνηση.</para>
+
+ <para>Θα πρέπει έπειτα να επανεκκινήσετε για να ενεργοποιηθούν οι
+ νέες ρυθμίσεις.</para>
+
+ <para>Για να εφαρμόσετε αυτές τις ρυθμίσεις άμεσα, μπορείτε να
+ εκτελέσετε την παρακάτω εντολή ως <username>root</username>:</para>
+
+ <screen>&prompt.root; /etc/rc.d/routing start</screen>
+
+ <para>Παρακαλούμε δείτε το <xref linkend="kernelconfig"> για
+ περισσότερες πληροφορίες σχετικά με την ρύθμιση του πυρήνα του
+ &os;.</para>
+ </sect3>
+
+ <sect3>
+ <title>Ρύθμιση του Sliplogin</title>
+
+ <para>Όπως αναφέρθηκε και πριν, υπάρχουν τρία αρχεία στον κατάλογο
+ <filename class="directory">/etc/sliphome</filename> τα οποία
+ χρησιμοποιούνται στη ρύθμιση του
+ <filename>/usr/sbin/sliplogin</filename> (δείτε και τη σελίδα
+ manual του &man.sliplogin.8;): το <filename>slip.hosts</filename>,
+ το οποίο ορίζει τους χρήστες SLIP και τις αντίστοιχες IP διευθύνσεις
+ τους, το <filename>slip.login</filename> το οποίο συνήθως ρυθμίζει
+ απλά την διεπαφή SLIP, και προαιρετικά το
+ <filename>slip.logout</filename>, το οποίο αναιρεί τις αλλαγές του
+ <filename>slip.login</filename> όταν τερματίσει η σειριακή
+ σύνδεση.</para>
+
+ <sect4>
+ <title>Ρύθμιση του <filename>slip.hosts</filename></title>
+
+ <para>Το <filename>/etc/sliphome/slip.hosts</filename> περιέχει
+ γραμμές με τέσσερα πεδία που χωρίζονται μεταξύ τους με κενά
+ διαστήματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το αναγνωριστικό εισόδου του χρήστη SLIP</para>
+ </listitem>
+
+ <listitem>
+ <para>Την τοπική διεύθυνση (τοπική ως προς τον εξυπηρετητή
+ SLIP) της διασύνδεσης SLIP</para>
+ </listitem>
+
+ <listitem>
+ <para>Την απομακρυσμένη διεύθυνση της διασύνδεσης SLIP</para>
+ </listitem>
+
+ <listitem>
+ <para>Τη μάσκα του δικτύου</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Η τοπική και η απομακρυσμένη διεύθυνση, μπορεί να είναι
+ ονόματα υπολογιστών (τα οποία να μετατρέπονται σε διευθύνσεις IP
+ μέσω του <filename>/etc/hosts</filename> ή μέσω του DNS, ανάλογα
+ με τις καταχωρίσεις που υπάρχουν στο αρχείο
+ <filename>/etc/nsswitch.conf</filename>), και η μάσκα δικτύου
+ μπορεί να είναι ένα όνομα το οποίο να μπορεί να διευκρινιστεί μέσω
+ αναζήτησης στο <filename>/etc/networks</filename>. Σε ένα
+ δοκιμαστικό σύστημα, το
+ <filename>/etc/sliphome/slip.hosts</filename> μοιάζει με το
+ παρακάτω:</para>
+
+ <programlisting>#
+# login local-addr remote-addr mask opt1 opt2
+# (normal,compress,noicmp)
+#
+Shelmerg dc-slip sl-helmerg 0xfffffc00 autocomp</programlisting>
+
+ <para>Στο τέλος της γραμμής, βρίσκονται μια ή περισσότερες από τις
+ παρακάτω επιλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><option>normal</option> &mdash; χωρίς συμπίεση των
+ επικεφαλίδων</para>
+ </listitem>
+
+ <listitem>
+ <para><option>compress</option> &mdash; με συμπίεση των
+ επικεφαλίδων</para>
+ </listitem>
+
+ <listitem>
+ <para><option>autocomp</option> &mdash; με συμπίεση των
+ επικεφαλίδων, αν επιτρέπεται από τον απομακρυσμένο
+ υπολογιστή</para>
+ </listitem>
+
+ <listitem>
+ <para><option>noicmp</option> &mdash; απενεργοποίηση των
+ πακέτων ICMP (με τον τρόπο αυτό τα πακέτα <quote>ping</quote>
+ θα απορρίπτονται αντί να καταναλώνουν το εύρος ζώνης της
+ σύνδεσης σας)</para>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm><primary>SLIP</primary></indexterm>
+ <indexterm><primary>TCP/IP networking</primary></indexterm>
+ <para>Οι επιλογές που έχετε για τις τοπικές και απομακρυσμένες
+ διευθύνσεις των SLIP συνδέσεων σας, εξαρτώνται από το αν πρόκειται
+ να αφιερώσετε ένα υποδίκτυο TCP/IP ή αν πρόκειται να
+ χρησιμοποιήσετε <quote>proxy ARP</quote> στο SLIP εξυπηρετητή σας
+ (δεν είναι <quote>πραγματικό</quote> proxy ARP, αλλά στην ενότητα
+ αυτή περιγράφεται με αυτό τον όρο). Αν δεν είστε σίγουρος ποια
+ μέθοδο να επιλέξετε ή πως να αποδίδετε διευθύνσεις IP, παρακαλούμε
+ ανατρέξτε στα βιβλία του TCP/IP που αναφέρονται στις
+ Προϋποθέσεις SLIP (<xref linkend="slips-prereqs">) ή/και
+ συμβουλευθείτε το διαχειριστή δικτύου σας.</para>
+
+ <para>Αν πρόκειται να χρησιμοποιήσετε ξεχωριστό υποδίκτυο για τους
+ SLIP πελάτες σας, θα χρειαστεί να διαθέσετε τον αριθμό υποδικτύου
+ από την διεύθυνση IP που σας έχει αποδοθεί και να αποδώσετε στους
+ πελάτες SLIP διευθύνσεις που ανήκουν σε αυτό το υποδίκτυο.
+ Έπειτα, θα χρειαστεί μάλλον να καθορίσετε μια στατική διαδρομή
+ στο υποδίκτυο SLIP μέσω του εξυπηρετητή SLIP στον κοντινότερο
+ σας δρομολογητή IP.</para>
+
+ <indexterm><primary>Ethernet</primary></indexterm>
+ <para>Διαφορετικά, αν χρησιμοποιήσετε τη μέθοδο
+ <quote>proxy ARP</quote>, θα χρειαστεί να αποδίδετε στους SLIP
+ πελάτες σας διευθύνσεις IP που ανήκουν στο υποδίκτυο Ethernet
+ στο οποίο ανήκει ο εξυπηρετητής SLIP, και θα χρειαστεί επίσης
+ να ρυθμίσετε τα scripts
+ <filename>/etc/sliphome/slip.login</filename> και
+ <filename>/etc/sliphome/slip.logout</filename> να χρησιμοποιούν
+ το &man.arp.8; για να χειρίζονται τις καταχωρίσεις
+ <quote>proxy ARP</quote> στον πίνακα ARP του εξυπηρετητή
+ SLIP.</para>
+ </sect4>
+
+ <sect4>
+ <title>Ρύθμιση του <filename>slip.login</filename></title>
+
+ <para>Ένα τυπικό <filename>/etc/sliphome/slip.login</filename>
+ μοιάζει με το παρακάτω:</para>
+
+ <programlisting>#!/bin/sh -
+#
+# @(#)slip.login 5.1 (Berkeley) 7/1/90
+
+#
+# generic login file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 inet $4 $5 netmask $6</programlisting>
+
+ <para>Το αρχείο <filename>slip.login</filename> εκτελεί απλώς το
+ <command>ifconfig</command> για την κατάλληλη διεπαφή SLIP, με
+ τις τοπικές και απομακρυσμένες διευθύνσεις και τη μάσκα δικτύου
+ της διεπαφής αυτής.</para>
+
+ <para>Αν έχετε αποφασίσει να χρησιμοποιήσετε την μέθοδο
+ <quote>proxy ARP</quote> (αντί να χρησιμοποιήσετε διαφορετικό
+ υποδίκτυο για τους πελάτες SLIP), το αρχείο
+ <filename>/etc/sliphome/slip.login</filename> θα μοιάζει με το
+ παρακάτω:</para>
+
+ <programlisting>#!/bin/sh -
+#
+# @(#)slip.login 5.1 (Berkeley) 7/1/90
+
+#
+# generic login file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 inet $4 $5 netmask $6
+# Answer ARP requests for the SLIP client with our Ethernet addr
+/usr/sbin/arp -s $5 00:11:22:33:44:55 pub</programlisting>
+
+ <para>Η πρόσθετη γραμμή σε αυτό το
+ <filename>slip.login</filename>, η <command>arp -s
+ &#36;5 00:11:22:33:44:55 pub</command>, δημιουργεί μια καταχώριση
+ ARP στον πίνακα ARP του εξυπηρετητή SLIP. Αυτή η καταχώριση ARP
+ κάνει τον εξυπηρετητή SLIP να απαντά με την διεύθυνση Ethernet
+ MAC όταν κάποιος άλλος κόμβος IP στο Ethernet επιθυμεί να
+ επικοινωνήσει με την διεύθυνση IP του πελάτη SLIP.</para>
+
+ <indexterm>
+ <primary>Ethernet</primary>
+ <secondary>MAC address</secondary>
+ </indexterm>
+
+ <para>Όταν χρησιμοποιείτε το παραπάνω παράδειγμα, βεβαιωθείτε ότι
+ έχετε αντικαταστήσει την διεύθυνση MAC του Ethernet (<hostid
+ role="mac">00:11:22:33:44:55</hostid>) με την αντίστοιχη της
+ δικής σας κάρτας Ethernet, διαφορετικά το <quote>proxy ARP</quote>
+ σίγουρα δεν θα λειτουργήσει! Μπορείτε να ανακαλύψετε τη διεύθυνση
+ MAC του δικού σας εξυπηρετητή SLIP κοιτάζοντας τα αποτελέσματα της
+ εντολής <command>netstat -i</command>. Η δεύτερη γραμμή της
+ εξόδου θα μοιάζει με την παρακάτω:</para>
+
+ <screen>ed0 1500 &lt;Link&gt;0.2.c1.28.5f.4a 191923 0 129457 0 116</screen>
+
+ <para>Αυτό δείχνει ότι στο συγκεκριμένο σύστημα η διεύθυνση MAC του
+ Ethernet είναι <hostid role="mac">00:02:c1:28:5f:4a</hostid>.
+ Οι τελείες στην διεύθυνση που δείχνει η
+ <command>netstat -i</command> πρέπει να αντικατασταθούν με
+ άνω-κάτω τελείες, και κάθε μονό δεκαεξαδικό ψηφίο πρέπει να
+ μετατραπεί σε διπλό προσθέτοντας από μπροστά ένα μηδενικό.
+ Η διεύθυνση μετατρέπεται με αυτό τον τρόπο σε μια μορφή που
+ μπορεί να χρησιμοποιήσει η &man.arp.8;. Δείτε τη σελίδα manual
+ της &man.arp.8; για περισσότερες πληροφορίες σχετικά με τη χρήση
+ της εντολής αυτής.</para>
+
+ <note>
+ <para>Όταν δημιουργείτε το
+ <filename>/etc/sliphome/slip.login</filename> και το
+ <filename>/etc/sliphome/slip.logout</filename>, θα πρέπει να
+ θέσετε το bit <quote>εκτέλεσης</quote> (π.χ.
+ <command>chmod 755 /etc/sliphome/slip.login
+ /etc/sliphome/slip.logout</command>), διαφορετικά η
+ <command>sliplogin</command> δεν θα μπορεί να τα
+ εκτελέσει.</para>
+ </note>
+ </sect4>
+
+ <sect4>
+ <title>Ρύθμιση του <filename>slip.logout</filename></title>
+
+ <para>Το <filename>/etc/sliphome/slip.logout</filename> δεν είναι
+ απόλυτα απαραίτητο (εκτός αν πρόκειται να υλοποιήσετε
+ <quote>proxy ARP</quote>), αλλά αν σκοπεύετε να το δημιουργήσετε,
+ μπορείτε να χρησιμοποιήσετε ως υπόδειγμα το παρακάτω απλό
+ παράδειγμα:</para>
+
+ <programlisting>#!/bin/sh -
+#
+# slip.logout
+
+#
+# logout file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 down</programlisting>
+
+ <para>Αν χρησιμοποιείτε <quote>proxy ARP</quote>, θα θέλετε το
+ <filename>/etc/sliphome/slip.logout</filename> να διαγράφει την
+ καταχώριση ARP του πελάτη SLIP:</para>
+
+ <programlisting>#!/bin/sh -
+#
+# @(#)slip.logout
+
+#
+# logout file for a slip line. sliplogin invokes this with
+# the parameters:
+# 1 2 3 4 5 6 7-n
+# slipunit ttyspeed loginname local-addr remote-addr mask opt-args
+#
+/sbin/ifconfig sl$1 down
+# Quit answering ARP requests for the SLIP client
+/usr/sbin/arp -d $5</programlisting>
+
+ <para>Η <command>arp -d &#36;5</command> διαγράφει την καταχώριση
+ ARP που προστέθηκε με την εκτέλεση του
+ <filename>slip.login</filename> του <quote>proxy ARP</quote>,
+ κατά την είσοδο του πελάτη SLIP.</para>
+
+ <para>Πρέπει να το επαναλάβουμε άλλη μια φορά: Βεβαιωθείτε ότι το
+ <filename>/etc/sliphome/slip.logout</filename> έχει οριστεί ως
+ εκτελέσιμο μετά την δημιουργία του (π.χ., <command>chmod 755
+ /etc/sliphome/slip.logout</command>).</para>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title>Παράγοντες που Πρέπει να Λάβετε Υπόψη σας στη
+ Δρομολόγηση</title>
+
+ <indexterm>
+ <primary>SLIP</primary>
+ <secondary>routing</secondary>
+ </indexterm>
+ <para>Αν δεν χρησιμοποιείτε την μέθοδο <quote>proxy ARP</quote> για να
+ δρομολογείτε πακέτα μεταξύ των πελατών SLIP και του υπόλοιπου
+ δικτύου σας (και ενδεχομένως και του Internet), θα πρέπει μάλλον να
+ προσθέσετε στατικές διαδρομές προς τον πλησιέστερο σας
+ προεπιλεγμένο δρομολογητή για να δρομολογείτε το υποδίκτυο των SLIP
+ πελατών σας διαμέσου του εξυπηρετητή SLIP.</para>
+
+ <sect4>
+ <title>Στατικές Διαδρομές</title>
+ <indexterm><primary>static routes</primary></indexterm>
+
+ <para>Η προσθήκη στατικών διαδρομών προς τους πλησιέστερους σας
+ προεπιλεγμένους δρομολογητές, μπορεί να είναι προβληματική (ή και
+ αδύνατη αν δεν έχετε τα κατάλληλα δικαιώματα πρόσβασης). Αν
+ η εταιρία σας διαθέτει δίκτυο με πολλαπλούς δρομολογητές, κάποια
+ μοντέλα (π.χ. από την Cisco και την Proteon), εκτός ότι πρέπει
+ να ρυθμιστούν με την στατική διαδρομή προς το υποδίκτυο SLIP,
+ πρέπει επίσης να ρυθμιστούν με τις στατικές διαδρομές που θα
+ αναφέρουν στους άλλους δρομολογητές. Θα χρειαστεί να
+ πειραματιστείτε και να δοκιμάσετε διάφορες ρυθμίσεις για να
+ δουλέψει η δρομολόγηση μέσω στατικών διαδρομών.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/preface/preface.sgml b/el_GR.ISO8859-7/books/handbook/preface/preface.sgml
new file mode 100644
index 0000000000..21c6e5db6c
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/preface/preface.sgml
@@ -0,0 +1,855 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Πρόλογος
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/preface/preface.sgml
+ %SRCID% 1.50
+
+-->
+
+<preface id="book-preface">
+ <title>Πρόλογος</title>
+
+ <bridgehead id="preface-audience" renderas="sect1">Σε Ποιους Απευθύνεται
+ Αυτό το Βιβλίο</bridgehead>
+
+ <para>Το πρώτο τμήμα αυτού του βιβλίου, οδηγεί τον νέο χρήστη στη
+ διαδικασία εγκατάστασης του &os; και τον εισάγει ομαλά στη φιλοσοφία
+ και τον σχεδιασμό του &unix;. Αυτό το τμήμα δεν έχει ιδιαίτερες
+ απαιτήσεις. Αρκεί μόνο η διάθεση για εξερεύνηση ενός νέου συστήματος και
+ η δυνατότητα αφομοίωσης των γνώσεων για το &os; καθώς αυτές εισάγονται
+ σταδιακά.</para>
+
+ <para>Αφού διαβάσετε το πρώτο τμήμα, το δεύτερο, κατά πολύ μεγαλύτερο τμήμα,
+ περιλαμβάνει μια εκτενή αναφορά σε διάφορα θέματα που ενδιαφέρουν
+ τους διαχειριστές συστημάτων &os;. Μερικά από αυτά τα κεφάλαια είναι
+ ευκολότερο να τα κατανοήσετε αν έχετε ήδη μελετήσει συγκεκριμένα τμήματα
+ του βιβλίου. Όπου χρειάζεται κάτι τέτοιο, θα αναφέρεται στη σύνοψη του
+ κεφαλαίου που μόλις ξεκινήσατε να διαβάζετε.</para>
+
+ <para>Για περισσότερες πηγές πληροφοριών, δείτε το
+ <xref linkend="bibliography">.</para>
+
+ <bridgehead id="preface-changes-from3" renderas="sect1">Αλλαγές από την
+ Τρίτη Έκδοση</bridgehead>
+
+ <para>Η τρέχουσα έκδοση του Εγχειριδίου στο διαδίκτυο, είναι το αποτέλεσμα της
+ προσπάθειας πολλών εκατοντάδων εθελοντών στο διάστημα των τελευταίων
+ 10 χρόνων. Οι πιο σημαντικές αλλαγές σε σχέση με την τρίτη έντυπη
+ έκδοση του Εγχειριδίου (2004) φαίνονται παρακάτω:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><xref linkend="dtrace">, το &dtrace;, είναι ένα νέο κεφάλαιο με
+ πληροφορίες σχετικά με αυτό το πανίσχυρο εργαλείο ανάλυσης
+ απόδοσης.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="filesystems">, η Υποστήριξη Συστημάτων Αρχείων,
+ είναι ένα νέο κεφάλαιο με πληροφορίες για συστήματα αρχείων τα οποία
+ υποστηρίζονται από το &os; αλλά αναπτύσσονται από άλλες ομάδες, όπως
+ το ZFS από την &sun;.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="audit">,ο Έλεγχος Συμβάντων Ασφαλείας, είναι ένα
+ νέο κεφάλαιο με πληροφορίες σχετικά με τις νέες δυνατότητες και την
+ χρήση του auditing στο &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="virtualization">, η Εικονικοποίηση, είναι ένα νέο
+ κεφάλαιο με πληροφορίες σχετικά με την εγκατάσταση του &os; σε
+ λογισμικό εκτέλεσης εικονικών (virtual) μηχανημάτων.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="bsdinstall">, η Εγκατάσταση του
+ &os;&nbsp;9.<replaceable>x</replaceable> και Μεταγενέστερων
+ Εκδόσεων, είναι ένα νέο κεφάλαιο σχετικά με την εγκατάσταση του
+ &os; με τη βοήθεια του νέου προγράμματος
+ <application>bsdinstall</application>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <bridgehead id="preface-changes-from2" renderas="sect1">Αλλαγές από τη
+ Δεύτερη Έκδοση (2004)</bridgehead>
+
+ <para>Η τρίτη έκδοση αυτού του βιβλίου ήταν το αποτέλεσμα της προσπάθειας
+ περισσότερων από δύο χρόνων από τα μέλη της Ομάδας Τεκμηρίωσης του &os;.
+ Η έντυπη έκδοση είχε τόσο μεγάλο μέγεθος, που κρίθηκε αναγκαίο να τυπωθεί
+ σε δύο χωριστούς τόμους. Παρακάτω φαίνονται οι σημαντικότερες αλλαγές σε
+ αυτή τη νέα έκδοση:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><xref linkend="config-tuning">, Το κεφάλαιο Ρύθμισης και
+ Βελτιστοποίησης του &os;, επεκτάθηκε με νέες πληροφορίες για τη
+ διαχείριση ενέργειας και πόρων του συστήματος μέσω ACPI, με
+ περισσότερες πληροφορίες για το σύστημα <command>cron</command> και
+ με περισσότερες επιλογές παραμετροποίησης του πυρήνα του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="security">, Το κεφάλαιο Ασφάλειας, επεκτάθηκε
+ με νέες πληροφορίες για Δίκτυα VPN, για λίστες ελέγχου πρόσβασης
+ αρχείων (ACLs) και περισσότερες συμβουλές σχετικά με την ασφάλεια του
+ &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="mac">, Ο Υποχρεωτικός Έλεγχος Πρόσβασης (MAC),
+ είναι ένα νέο κεφάλαιο σε αυτή την έκδοση. Εξηγεί τι είναι ο
+ μηχανισμός MAC και πώς μπορεί να χρησιμοποιηθεί για να ενισχυθεί η
+ ασφάλεια ενός συστήματος &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="disks">, Το κεφάλαιο για τα Αποθηκευτικά Μέσα,
+ επεκτάθηκε, με νέες πληροφορίες για συσκευές αποθήκευσης USB,
+ στιγμιότυπα συστήματος αρχείων (snapshots), περιορισμούς στη χρήση
+ των συστημάτων αρχείων (quotas), συστήματα αρχείων που βασίζονται
+ σε υπάρχοντα αρχεία ή στο δίκτυο, καθώς και κρυπτογραφημένες
+ κατατμήσεις δίσκων.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="vinum-vinum">, Ο Διαχειριστής Τόμων Vinum, είναι
+ ένα νέο κεφάλαιο σε αυτή την έκδοση. Περιγράφει τον τρόπο χρήσης του
+ Vinum, ενός συστήματος διαχείρισης αποθηκευτικών μέσων που υλοποιεί
+ την οργάνωση φυσικών δίσκων του συστήματος σε διάταξη RAID-0, RAID-1
+ και RAID-5.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στο <xref linkend="ppp-and-slip">, προστέθηκε ένα
+ τμήμα σχετικό με την επίλυση προβλημάτων στις συνδέσεις PPP και
+ SLIP.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="mail">, Το κεφάλαιο για το Ηλεκτρονικό
+ Ταχυδρομείο, επεκτάθηκε με νέες πληροφορίες για την χρήση
+ εναλλακτικών MTA, πιστοποίηση ταυτότητας στο SMTP, το πρωτόκολλο
+ UUCP, τα εργαλεία <application>fetchmail</application> και
+ <application>procmail</application> και με άλλα θέματα για
+ προχωρημένους.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="network-servers">, Το κεφάλαιο Εξυπηρετητών
+ Δικτύων, περιλαμβάνεται για πρώτη φορά σε αυτή την έκδοση. Αυτό
+ το κεφάλαιο περιγράφει πως να εγκαταστήσετε τον
+ <application>Διακομιστή HTTP Apache</application>, τον εξυπηρετητή
+ <application>ftpd</application> του &os; και τον διακομιστή
+ <application>Samba</application> για επικοινωνία με πελάτες
+ &microsoft; &windows;. Στο κεφάλαιο αυτό, έχουν μεταφερθεί κάποιες
+ ενότητες από το <xref linkend="advanced-networking"> (Προχωρημένα
+ Θέματα Δικτύωσης), προκειμένου να βελτιωθεί η παρουσίαση τους.</para>
+ </listitem>
+
+ <listitem>
+ <para><xref linkend="advanced-networking">, Το κεφάλαιο για Προχωρημένα
+ Θέματα Δικτύωσης, επεκτάθηκε με νέες πληροφορίες για τη χρήση
+ συσκευών &bluetooth; στο &os;, την εγκατάσταση ασύρματων δικτύων,
+ και την Μέθοδο Δικτύωσης Ασύγχρονης Μεταφοράς (ATM).</para>
+ </listitem>
+
+ <listitem>
+ <para>Προστέθηκε ένα Λεξιλόγιο, για να συγκεντρώσει όλους τους
+ τεχνικούς όρους και τους διάφορους ορισμούς που περιέχονται σε
+ ολόκληρο το βιβλίο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Έγιναν αισθητικές βελτιώσεις στους πίνακες και στα γραφήματα σε
+ ολόκληρο το βιβλίο.</para>
+ </listitem>
+ </itemizedlist>
+
+ <bridgehead id="preface-changes" renderas="sect1">Αλλαγές από την Πρώτη
+ Έκδοση (2001)</bridgehead>
+
+ <para> Η δεύτερη έκδοση ήταν το αποτέλεσμα τουλάχιστον δύο χρόνων εργασίας
+ από τα μέλη της Ομάδας Τεκμηρίωσης του &os;. Οι πιο σημαντικές αλλαγές σε
+ αυτή την έκδοση ήταν οι παρακάτω:</para>
+
+ <!-- Talk a little about justification and other stylesheet changes? -->
+
+ <itemizedlist>
+ <listitem>
+ <para>Προστέθηκε ένα ολοκληρωμένο Ευρετήριο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Όλα τα γραφήματα σε ASCII αντικαταστάθηκαν από γραφικά
+ διαγράμματα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Προστέθηκε μια τυποποιημένη σύνοψη σε κάθε κεφάλαιο, η οποία
+ περιέχει μια σύντομη ανακεφαλαίωση των πληροφοριών που περιέχει το
+ κεφάλαιο και τι αναμένεται να γνωρίζει από πριν ο αναγνώστης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το περιεχόμενο αναδιοργανώθηκε σε τρία λογικά μέρη:
+ <quote>Ξεκινώντας με το &os;</quote>,
+ <quote>Διαχείριση Συστήματος</quote> και
+ <quote>Παραρτήματα</quote>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="install"> (<quote>Εγκαθιστώντας το &os;</quote>)
+ ξαναγράφτηκε από την αρχή με πολλές εικόνες, ώστε να διευκολύνει τους
+ χρήστες να κατανοήσουν το κείμενο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="basics"> (<quote>Βασικές Έννοιες στο
+ &unix;</quote>) επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες
+ πληροφορίες για τις διεργασίες (processes), τους δαίμονες (daemons),
+ και τα σήματα (signals).</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="ports"> (<quote>Εγκατάστασης Εφαρμογών: Πακέτα
+ και Ports</quote>) επεκτάθηκε ώστε να συμπεριλαμβάνει πρόσθετες
+ πληροφορίες για την διαχείριση προμεταγλωττισμένων πακέτων
+ (packages).</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="x11"> (<quote>Το Σύστημα X Window</quote>)
+ ξαναγράφτηκε από την αρχή με έμφαση στην χρήση μοντέρνων τεχνολογιών,
+ όπως τα περιβάλλοντα εργασίας <application>KDE</application> και
+ <application>GNOME</application> σε &xfree86;&nbsp;4.X.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="boot"> (<quote>Η Διαδικασία Εκκίνησης του
+ &os;</quote>) επεκτάθηκε με περισσότερες πληροφορίες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="disks"> (<quote>Αποθηκευτικά Μέσα</quote>)
+ ξαναγράφτηκε με βάση τα παλαιότερα δύο κεφάλαια <quote>Δίσκοι</quote>
+ και <quote>Αντίγραφα Ασφαλείας</quote>. Πιστεύουμε ότι τα θέματα αυτά
+ είναι πιο ευκολονόητα όταν παρουσιάζονται μαζί σαν ένα κεφάλαιο.
+ Προστέθηκε επίσης μια ενότητα για RAID (υλοποίηση μέσω υλικού ή
+ λογισμικού).</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="serialcomms"> (<quote>Σειριακές
+ Επικοινωνίες</quote>) αναδιοργανώθηκε από την αρχή και ενημερώθηκε για
+ τις εκδόσεις &os;&nbsp;4.X/5.X.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="ppp-and-slip"> (<quote>PPP και SLIP</quote>)
+ ενημερώθηκε σε σημαντικό βαθμό.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πολλοί νέοι τομείς προστέθηκαν στο <xref
+ linkend="advanced-networking"> (<quote>Προχωρημένα Θέματα
+ Δικτύωσης</quote>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="mail"> (<quote>Ηλεκτρονικό Ταχυδρομείο</quote>)
+ επεκτάθηκε για να συμπεριλαμβάνει περισσότερες πληροφορίες για τις
+ ρυθμίσεις του <application>Sendmail</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <xref linkend="linuxemu"> (<quote>Συμβατότητα με Εκτελέσιμα
+ του &linux;</quote>) επεκτάθηκε για να συμπεριλαμβάνει πληροφορίες
+ για την εγκατάσταση της βάσης δεδομένων
+ <application>&oracle;</application> και του
+ <application>&mathematica;</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στην δεύτερη έκδοση καλύπτονται επίσης τα παρακάτω
+ νέα θέματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ρύθμιση και Βελτιστοποίηση
+ (<xref linkend="config-tuning">)</para>
+ </listitem>
+
+ <listitem>
+ <para>Πολυμέσα (<xref linkend="multimedia">)</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+
+ <bridgehead id="preface-overview" renderas="sect1">Οργάνωση Αυτού του
+ Βιβλίου</bridgehead>
+
+ <para>Αυτό το βιβλίο χωρίζεται σε πέντε διακριτά λογικά τμήματα.
+ Το πρώτο τμήμα, <emphasis>Ξεκινώντας με το &os;</emphasis>, περιγράφει την
+ εγκατάσταση και την βασική χρήση του &os;. Ο προτεινόμενος τρόπος
+ ανάγνωσης αυτού του τμήματος είναι ένα-ένα κεφάλαιο, με τη σειρά,
+ προσπερνώντας κεφάλαια με γνωστά θέματα. Το δεύτερο τμήμα,
+ <emphasis>Βασικές Εργασίες</emphasis>, περιγράφει μερικά χαρακτηριστικά
+ του &os; τα οποία χρησιμοποιούνται συχνά. Μπορείτε να διαβάσετε τα
+ κεφάλαια σε αυτό το τμήμα (καθώς και σε όλα τα τμήματα που ακολουθούν)
+ με όποια σειρά θέλετε. Κάθε κεφάλαιο ξεκινά με μια σαφή και σύντομη
+ σύνοψη, η οποία περιγράφει τα περιεχόμενα του κεφαλαίου καθώς και τι
+ χρειάζεται να γνωρίζει ήδη ο αναγνώστης. Αυτό επιτρέπει στον
+ περιστασιακό αναγνώστη να προσπερνά γρήγορα ενότητες, για να βρει
+ κεφάλαια τα οποία τον ενδιαφέρουν περισσότερο. Το τρίτο τμήμα,
+ <emphasis>Διαχείριση Συστήματος</emphasis>, περιέχει θέματα σχετικά με τη
+ διαχείριση συστημάτων &os;. Το τέταρτο τμήμα, <emphasis>Δικτυακές
+ Επικοινωνίες</emphasis>, καλύπτει θέματα δικτύωσης και διακομιστών.
+ Το πέμπτο τμήμα περιέχει παραρτήματα με διάφορες πληροφορίες.</para>
+
+ <variablelist>
+
+<!-- Μέρος I - Εισαγωγή -->
+
+ <varlistentry>
+ <term><emphasis><xref linkend="introduction">, Εισαγωγή</emphasis></term>
+
+ <listitem>
+ <para>Παρουσιάζει το &os; στο νέο χρήστη. Περιγράφει την
+ ιστορία του &os;&nbsp;Project, τους στόχους του και το μοντέλο
+ ανάπτυξης του.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="install">, Εγκατάσταση του &os;&nbsp;8.<replaceable>x</replaceable> και Προγενέστερων Εκδόσεων</emphasis></term>
+
+ <listitem>
+ <para>Οδηγεί τον χρήστη στην διαδικασία εγκατάστασης του
+ &os;&nbsp;8.<replaceable>x</replaceable> και προγενέστερων
+ εκδόσεων με τη χρήση του <application>sysinstall</application>.
+ Συμπεριλαμβάνονται επίσης μερικά θέματα εγκατάστασης για
+ προχωρημένους, όπως η εγκατάσταση μέσω σειριακής κονσόλας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="bsdinstall">, Εγκατάσταση του &os;&nbsp;9.<replaceable>x</replaceable> και Μεταγενέστερων Εκδόσεων</emphasis></term>
+
+ <listitem>
+ <para>Οδηγεί τον χρήστη στην διαδικασία εγκατάστασης του
+ &os;&nbsp;9.<replaceable>x</replaceable> και μεταγενέστερων
+ εκδόσεων με τη χρήση του
+ <application>bsdinstall</application>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="basics">, Βασικές Έννοιες στο &unix;</emphasis></term>
+
+ <listitem>
+ <para>Περιέχει τις βασικές εντολές και λειτουργίες του λειτουργικού
+ συστήματος &os;. Εάν είστε εξοικειωμένος με το &linux; ή με
+ άλλο λειτουργικό τύπου &unix; μπορείτε πιθανώς να προσπεράσετε
+ αυτό το κεφάλαιο.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="ports">, Εγκατάσταση Εφαρμογών: Πακέτα και Ports</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει τον τρόπο εγκατάστασης λογισμικού τρίτων
+ κατασκευαστών με την καινοτόμο <quote>Συλλογή των Ports (Ports
+ Collection)</quote> του &os; και με τα συνήθη προμεταγλωττισμένα
+ πακέτα (packages).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="x11">, Το Σύστημα X Window</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει γενικά το σύστημα X&nbsp;Window και ειδικότερα το
+ X11 του &os;. Επίσης περιγράφει ολοκληρωμένα περιβάλλοντα εργασίας
+ όπως το <application>KDE</application> και το
+ <application>GNOME</application>.</para>
+ </listitem>
+ </varlistentry>
+
+<!-- Μέρος II Συνήθεις Εργασίες -->
+
+ <varlistentry>
+ <term><emphasis><xref linkend="desktop">, Desktop Εφαρμογές</emphasis></term>
+
+ <listitem>
+ <para>Αναφέρει και εξηγεί μερικές από τις πιο συνήθεις εφαρμογές
+ για υπολογιστές γραφείου, όπως προγράμματα πλοήγησης ιστοσελίδων και
+ εφαρμογές γραφείου και περιγράφει πως να τις εγκαταστήσετε στο
+ &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="multimedia">, Πολυμέσα</emphasis></term>
+
+ <listitem>
+ <para>Υποδεικνύει πως να εγκαταστήσετε δυνατότητες αναπαραγωγής ήχου
+ και βίντεο στο σύστημα σας. Επίσης περιλαμβάνει δειγματοληπτικά
+ κάποιες εφαρμογές ήχου και βίντεο.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="kernelconfig">, Ρυθμίζοντας τον Πυρήνα του &os;</emphasis></term>
+
+ <listitem>
+ <para>Εξηγεί τους λόγους για τους οποίους θα πρέπει να δημιουργήσετε
+ ένα νέο πυρήνα. Παρέχει, επίσης, λεπτομερείς οδηγίες για την ρύθμιση,
+ μεταγλώττιση και εγκατάσταση του νέου σας προσαρμοσμένου
+ πυρήνα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="printing">, Εκτυπώσεις</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει πως να διαχειρίζεστε εκτυπωτές στο &os;.
+ Συμπεριλαμβάνει πληροφορίες για σελίδες λογοτύπων, λογαριασμούς
+ εκτυπωτών και αρχικές ρυθμίσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="linuxemu">, Συμβατότητα με Εκτελέσιμα του &linux;</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει τις δυνατότητες συμβατότητας του &os; με εφαρμογές
+ &linux;. Επίσης παρέχει λεπτομερείς οδηγίες εγκατάστασης για πολλές
+ γνωστές εφαρμογές του &linux; όπως
+ <application>&oracle;</application>,
+ <application>&sap.r3;</application>,
+ και <application>&mathematica;</application>.</para>
+ </listitem>
+ </varlistentry>
+
+<!-- Μέρος III - Διαχείριση Συστήματος -->
+
+ <varlistentry>
+ <term><emphasis><xref linkend="config-tuning">, Ρύθμιση και Βελτιστοποίηση</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει τις παραμέτρους που έχουν στη διάθεση τους οι
+ διαχειριστές του συστήματος, ώστε να ρυθμίσουν ένα σύστημα &os; για
+ βέλτιστη απόδοση. Επίσης περιγράφει τα διάφορα αρχεία ρυθμίσεων
+ που χρησιμοποιούνται στο &os; και που να τα βρείτε.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="boot">, Η Διαδικασία Εκκίνησης του &os;</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει την διαδικασία εκκίνησης του &os; και εξηγεί πως
+ μπορούμε να την ελέγχουμε με τη βοήθεια επιλογών και
+ ρυθμίσεων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="users">, Χρήστες και Βασική Διαχείριση Λογαριασμών</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει την δημιουργία και την διαχείριση των λογαριασμών
+ χρηστών. Επίσης περιγράφει τρόπους με τους οποίους μπορούν να
+ τεθούν περιορισμοί στους χρήστες όσο αφορά τη χρήση πόρων του
+ συστήματος, καθώς και άλλες λειτουργίες διαχείρισης
+ λογαριασμών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="security">, Ασφάλεια</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει διάφορα διαθέσιμα εργαλεία που θα σας βοηθήσουν να
+ κρατήσετε το &os; σύστημα σας ασφαλές. Συμπεριλαμβάνονται οι
+ υλοποιήσεις Kerberos, IPsec και OpenSSH.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="jails">, Jails</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει το πλαίσιο λειτουργιών των jails και τις βελτιώσεις
+ που παρέχουν σε σχέση με την παραδοσιακή chroot υποστήριξη
+ του &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="mac">, Υποχρεωτικός Έλεγχος Πρόσβασης</emphasis></term>
+
+ <listitem>
+ <para>Εξηγεί τι είναι ο Υποχρεωτικός Έλεγχος Πρόσβασης (MAC) και
+ πως ο μηχανισμός αυτός μπορεί να χρησιμοποιηθεί για την ασφάλιση
+ ενός &os; συστήματος.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="audit">, Έλεγχος Συμβάντων Ασφαλείας</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει τι είναι ο Έλεγχος Συμβάντων, πως μπορεί να
+ εγκατασταθεί, να ρυθμιστεί και πως μπορούν να διερευνώνται και να
+ παρακολουθούνται τα ίχνη του ελέγχου (audit trails).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="disks">, Αποθηκευτικά Μέσα</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει πως να διαχειρίζεστε μέσα αποθήκευσης και συστήματα
+ αρχείων με το &os;. Συμπεριλαμβάνονται φυσικοί δίσκοι, συστοιχίες
+ RAID, οπτικά και μαγνητικά μέσα, εικονικοί δίσκοι μνήμης και
+ δικτυακά συστήματα αρχείων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="geom">, GEOM: Διαχείριση Συστοιχιών Δίσκων</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει τι είναι το πλαίσιο λειτουργιών GEOM στο &os; και
+ πως να ρυθμίσετε διάφορα επίπεδα RAID που υποστηρίζονται
+ στο &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="filesystems">, Υποστήριξη Συστημάτων Αρχείων</emphasis></term>
+
+ <listitem>
+ <para>Εξετάζει την υποστήριξη μη-εγγενών συστημάτων αρχείων στο &os;,
+ όπως το Z File System της &sun;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="vinum-vinum">, Vinum</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει πως να χρησιμοποιήσετε το Vinum, ένα διαχειριστή
+ λογικών τόμων που παρέχει λογικούς δίσκους ανεξάρτητα από τη
+ συσκευή στην οποία είναι αποθηκευμένοι, καθώς και δυνατότητες
+ RAID-0, RAID-1 και RAID-5 μέσω λογισμικού.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="virtualization">, Εικονικοποίηση</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει τι προσφέρουν τα συστήματα εικονικοποίησης και πως
+ μπορούν να χρησιμοποιηθούν με το &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="l10n">, Τοπικές Ρυθμίσεις - Χρήση και Ρύθμιση I18N/L10N</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει πως να χρησιμοποιήσετε το &os; σε γλώσσες εκτός της
+ Αγγλικής. Καλύπτει την δυνατότητα τοπικών ρυθμίσεων τόσο σε
+ επίπεδο συστήματος, όσο και σε επίπεδο εφαρμογών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="updating-upgrading">, Ενημέρωση και Αναβάθμιση του &os;</emphasis></term>
+
+ <listitem>
+ <para>Εξηγεί τις διαφορές μεταξύ των εκδόσεων &os.stable;,
+ &os.current; και των επίσημων (RELEASE) εκδόσεων του &os;.
+ Περιγράφει ποιοι χρήστες ωφελούνται όταν ακολουθούν ένα σύστημα
+ ανάπτυξης καθώς και τα απαιτούμενα για αυτό το σκοπό βήματα.
+ Καλύπτει τις μεθόδους που μπορούν να χρησιμοποιήσουν οι χρήστες
+ για να ενημερώσουν το σύστημα τους με τις τελευταίες διορθώσεις
+ ασφαλείας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="dtrace">, &dtrace;</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει την ρύθμιση και χρήση του εργαλείου &dtrace; της
+ &sun; στο &os;. Το δυναμικό tracing μπορεί να βοηθήσει στον
+ εντοπισμό προβλημάτων απόδοσης, παρέχοντας ανάλυση του συστήματος
+ σε πραγματικό χρόνο.</para>
+ </listitem>
+ </varlistentry>
+
+<!-- Part IV - Επικοινωνίες Δικτύων -->
+
+ <varlistentry>
+ <term><emphasis><xref linkend="serialcomms">, Σειριακές Επικοινωνίες</emphasis></term>
+
+ <listitem>
+ <para>Εξηγεί πως να συνδέσετε τερματικά και μόντεμ στο &os; σύστημα
+ σας, για χρήση τόσο σε εισερχόμενες όσο και σε εξερχόμενες
+ συνδέσεις.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="ppp-and-slip">, PPP και SLIP</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει πως να χρησιμοποιήσετε τις τεχνολογίες PPP, SLIP, ή
+ PPP μέσω Ethernet για να συνδεθείτε σε απομακρυσμένα συστήματα με το
+ &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="mail">, Ηλεκτρονικό Ταχυδρομείο</emphasis></term>
+
+ <listitem>
+ <para>Εξηγεί τα διαφορετικά στοιχεία ενός διακομιστή ηλεκτρονικής
+ αλληλογραφίας και εμβαθύνει σε θέματα απλών ρυθμίσεων για το πλέον
+ δημοφιλές λογισμικό διακομιστή ηλεκτρονικής αλληλογραφίας: το
+ <application>sendmail</application>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="network-servers">, Εξυπηρετητές Δικτύου</emphasis></term>
+
+ <listitem>
+ <para>Παρέχει λεπτομερείς οδηγίες και παραδείγματα αρχείων ρύθμισης
+ για να ρυθμίσετε το &os; να ενεργεί ως δικτυακός εξυπηρετητής
+ αρχείων, εξυπηρετητής ονομάτων τομέα (DNS), εξυπηρετητής δικτυακών
+ πληροφοριών (NIS), η εξυπηρετητής συγχρονισμού ώρας (NTP).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="firewalls">, Firewalls</emphasis></term>
+
+ <listitem>
+ <para>Εξηγεί την φιλοσοφία που κρύβεται πίσω από τα firewalls (τείχη
+ προστασίας) που βασίζονται σε λογισμικό και παρέχει λεπτομερείς
+ πληροφορίες για τις ρυθμίσεις των διαφόρων firewalls που διατίθενται
+ για το &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="advanced-networking">, Προχωρημένα Θέματα Δικτύωσης</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει πολλά προχωρημένα θέματα δικτύωσης,
+ συμπεριλαμβανομένου του διαμοιρασμού μιας σύνδεσης Internet με
+ άλλους υπολογιστές στο τοπικό σας δίκτυο (LAN), θέματα δρομολόγησης
+ για προχωρημένους, ασύρματη δικτύωση, &bluetooth;, ATM, IPv6 και
+ πολλά ακόμη.</para>
+ </listitem>
+ </varlistentry>
+
+<!-- Μέρος V - Παραρτήματα -->
+
+ <varlistentry>
+ <term><emphasis><xref linkend="mirrors">, Που θα Βρείτε το &os;</emphasis></term>
+
+ <listitem>
+ <para>Περιέχει λίστα με διάφορες πηγές για να αποκτήσετε το &os; σε
+ CD-ROM ή DVD, όπως επίσης και διάφορες τοποθεσίες στο Internet από
+ όπου μπορείτε να κατεβάσετε και να εγκαταστήσετε το &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="bibliography">, Βιβλιογραφία </emphasis></term>
+
+ <listitem>
+ <para>Αυτό το βιβλίο αγγίζει πολλά διαφορετικά θέματα που μπορεί να
+ σας κεντρίσουν το ενδιαφέρον για μια πιο λεπτομερή εξερεύνηση. Η
+ βιβλιογραφία ταξινομεί σε κατηγορίες πολλά εξαιρετικά βιβλία τα
+ οποία αναφέρονται στο κείμενο.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="eresources">, Πηγές Πληροφόρησης στο Διαδίκτυο</emphasis></term>
+
+ <listitem>
+ <para>Περιγράφει πολλά φόρουμ που διατίθενται στους χρήστες του &os;,
+ ώστε να θέτουν ερωτήματα και να συμμετέχουν σε τεχνικές συζητήσεις
+ για το &os;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><emphasis><xref linkend="pgpkeys">, Κλειδιά PGP</emphasis></term>
+
+ <listitem>
+ <para>Καταγράφει τα δακτυλικά αποτυπώματα των κλειδιών PGP αρκετών
+ μελών της Ομάδας Ανάπτυξης του &os;.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <bridgehead id="preface-conv" renderas="sect1">Συμβάσεις που
+ χρησιμοποιούνται σε αυτό το βιβλίο</bridgehead>
+
+ <para>Σε ολόκληρο το βιβλίο, χρησιμοποιούνται κάποιες τυπογραφικές
+ συμβάσεις ώστε η μορφοποίηση του να είναι συνεπής και να είναι πιο
+ ευανάγνωστο:</para>
+
+ <bridgehead id="preface-conv-typographic" renderas="sect2">Τυπογραφικές
+ Συμβάσεις</bridgehead>
+
+ <variablelist>
+ <varlistentry>
+ <term><emphasis>Πλάγια γραφή</emphasis></term>
+
+ <listitem>
+ <para> Η <emphasis>πλάγια</emphasis> γραμματοσειρά χρησιμοποιείται
+ για ονόματα αρχείων, URLs, κείμενο με έμφαση και για χρήση
+ πρωτοεμφανιζόμενων τεχνικών όρων.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>Γραφή σταθερού πλάτους</literal></term>
+
+ <listitem>
+ <para> Η <literal>σταθερού πλάτους</literal> γραμματοσειρά
+ χρησιμοποιείται για μηνύματα λάθους, εντολές, μεταβλητές
+ περιβάλλοντος, ονομασίες των ports, ονόματα κεντρικών
+ υπολογιστών, ονόματα χρηστών, ονόματα ομάδων, ονόματα συσκευών,
+ μεταβλητές και αποσπάσματα κώδικα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><application>Έντονη γραφή</application></term>
+
+ <listitem>
+ <para>Η <application>έντονη</application> γραμματοσειρά
+ χρησιμοποιείται για εφαρμογές, εντολές και πλήκτρα.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+<!-- Var list -->
+ <bridgehead id="preface-conv-commands" renderas="sect2">Είσοδος Δεδομένων
+ από το Χρήστη</bridgehead>
+
+ <para>Η πληκτρολόγηση σημειώνεται με <keycap>έντονη</keycap> γραφή ώστε να
+ ξεχωρίζει από το υπόλοιπο κείμενο. Συνδυασμοί πλήκτρων που πρέπει να
+ πιεσθούν ταυτόχρονα σημειώνονται με `<literal>+</literal>' μεταξύ των
+ πλήκτρων, όπως:</para>
+
+ <para>
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>Del</keycap>
+ </keycombo>
+ </para>
+
+ <para>Το οποίο σημαίνει πως ο χρήστης θα πρέπει να πιέσει τα πλήκτρα
+ <keycap>Ctrl</keycap>, <keycap>Alt</keycap> και το πλήκτρο
+ <keycap>Del</keycap> ταυτόχρονα.</para>
+
+ <para>Σε περίπτωση που κάποια πλήκτρα πρέπει να πιεσθούν με συγκεκριμένη
+ σειρά, θα εμφανίζονται χωρισμένα με κόμματα:</para>
+
+ <para>
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>X</keycap>
+ </keycombo>,
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>S</keycap>
+ </keycombo></para>
+
+ <para>Το οποίο σημαίνει πως ο χρήστης αναμένεται να πιέσει τα
+ πλήκτρα <keycap>Ctrl</keycap> και <keycap>X</keycap> ταυτόχρονα
+ και έπειτα να πιέσει τα πλήκτρα <keycap>Ctrl</keycap> και
+ <keycap>S</keycap> ταυτόχρονα.</para>
+
+<!-- How to type in keystrokes, etc.. -->
+ <bridgehead id="preface-conv-examples" renderas="sect2">Παραδείγματα</bridgehead>
+
+ <para>Τα παραδείγματα που ξεκινούν με <devicename>E:\&gt;</devicename>
+ υποδηλώνουν μια εντολή &ms-dos;. Αυτές οι εντολές μπορούν να εκτελούνται
+ από το παράθυρο <quote>Γραμμής Εντολών</quote> σε σύγχρονο περιβάλλον
+ &microsoft.windows;, εκτός αν αναφέρεται κάτι διαφορετικό.</para>
+
+ <screen><prompt>E:\&gt;</prompt> <userinput>tools\fdimage floppies\kern.flp A:</userinput></screen>
+
+ <para>Τα παραδείγματα που ξεκινούν με &prompt.root; υποδηλώνουν μια εντολή
+ που θα πρέπει να εκτελεστεί από τον υπερχρήστη (superuser) ενός
+ συστήματος &os;. Μπορείτε να συνδεθείτε σαν χρήστης
+ <username>root</username> για να πληκτρολογήσετε την εντολή, ή
+ να συνδεθείτε σαν κανονικός χρήστης και να χρησιμοποιήσετε την εντολή
+ &man.su.1; ώστε να αποκτήσετε προνόμια υπερχρήστη.</para>
+
+ <screen>&prompt.root; <userinput>dd if=kern.flp of=/dev/fd0</userinput></screen>
+
+ <para>Τα παραδείγματα που ξεκινούν με &prompt.user; υποδηλώνουν μια εντολή
+ που πρέπει να εκτελεστεί από ένα κανονικό χρήστη. Χρησιμοποιείται η
+ σύνταξη C-shell για να θέσουμε μεταβλητές περιβάλλοντος και άλλες εντολές
+ κελύφους, εκτός αν αναφέρεται κάτι διαφορετικό.</para>
+
+ <screen>&prompt.user; <userinput>top</userinput></screen>
+
+ <bridgehead id="preface-acknowledgements" renderas="sect1">Ευχαριστίες</bridgehead>
+
+ <para>Το βιβλίο που κρατάτε, παρουσιάζει τις προσπάθειες πολλών εκατοντάδων
+ ανθρώπων από όλο τον κόσμο. Είτε μας ενημέρωσαν για τυπογραφικά λάθη,
+ είτε μας έστειλαν ολόκληρα κεφάλαια, η συμβολή όλων ήταν χρήσιμη.</para>
+
+ <para>Μερικές εταιρείες υποστήριξαν την ανάπτυξη αυτού του εγγράφου
+ μισθώνοντας συντάκτες να εργάζονται σε πλήρη απασχόληση, πληρώνοντας για
+ την έκδοση, κτλ. Ειδικότερα, η BSDi (η οποία αργότερα αποκτήθηκε από την
+ <ulink url="http://www.windriver.com">Wind River Systems</ulink>)
+ μίσθωσε μέλη του &os; Documentation Project να εργάζονται σε πλήρη
+ απασχόληση για την βελτίωση του βιβλίου, οδηγώντας στην πρώτη έντυπη
+ έκδοση στα αγγλικά τον Μάρτιο του 2000 (ISBN 1-57176-241-8). Η εταιρεία
+ Wind River Systems μίσθωσε τότε μερικούς επιπρόσθετους συντάκτες ώστε
+ να κάνει βελτιώσεις στην δομή της έντυπης έκδοσης και να προσθέσει κάποια
+ νέα κεφάλαια. Η αποκορύφωση αυτής της εργασίας ήταν η παρουσίαση
+ της δεύτερης έντυπης έκδοσης, τον Νοέμβριο του 2001 (ISBN 1-57176-303-1).
+ 1-57176-303-1). Το 2003-2004, η <ulink
+ url="http://www.freebsdmall.com">FreeBSD Mall, Inc</ulink>, μίσθωσε
+ αρκετούς συνεργάτες να βελτιώσουν το Εγχειρίδιο Χρήσης προς ετοιμασία
+ της τρίτης έντυπης έκδοσης.</para>
+</preface>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "book" "preface")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/printing/chapter.sgml b/el_GR.ISO8859-7/books/handbook/printing/chapter.sgml
new file mode 100644
index 0000000000..b0fa3b1c0c
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/printing/chapter.sgml
@@ -0,0 +1,5267 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Εκτυπώσεις
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/printing/chapter.sgml
+ %SRCID% 1.123
+
+-->
+
+<chapter id="printing">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Sean</firstname>
+ <surname>Kelly</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ <!-- 30 Sept 1995 -->
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Jim</firstname>
+ <surname>Mock</surname>
+ <contrib>Αναδομήθηκε και ανανεώθηκε από τον </contrib>
+ <!-- Mar 2000 -->
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Εκτυπώσεις</title>
+
+ <sect1 id="printing-synopsis">
+ <title>Σύνοψη</title>
+ <indexterm><primary>LPD σύστημα spooling</primary></indexterm>
+ <indexterm><primary>εκτυπώσεις</primary></indexterm>
+
+ <para>Μπορείτε να χρησιμοποιήσετε το &os; για να κάνετε εκτυπώσεις
+ σε διάφορους τύπους εκτυπωτών, από τον παλαιότερο κρουστικό ως τον πιο
+ σύγχρονο laser εκτυπωτή, καθώς και οποιασδήποτε άλλης τεχνολογίας
+ ανάμεσα τους, και να δημιουργήσετε εκτυπώσεις υψηλής ποιότητας με τις
+ εφαρμογές που εκτελείτε.</para>
+
+ <para>Το &os; μπορεί επίσης να ρυθμιστεί ώστε να λειτουργεί ως
+ εξυπηρετητής εκτυπώσεων δικτύου. Με αυτή τη δυνατότητα το &os; μπορεί
+ να λαμβάνει εργασίες εκτύπωσης από διάφορους άλλους υπολογιστές,
+ συμπεριλαμβανομένων υπολογιστών &os;, &windows; και &macos;. Το &os;
+ μπορεί να εξασφαλίζει ότι μόνο μια εργασία θα τυπώνεται κάθε χρονική
+ στιγμή και μπορεί να τηρεί στατιστικά για τους χρήστες και τα
+ μηχανήματα που θα κάνουν τις περισσότερες εκτυπώσεις, να παράγει
+ σελίδες <quote>banner</quote> που να δείχνουν σε ποιόν ανήκει η κάθε
+ εκτύπωση, και πολλά άλλα.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να ρυθμίσετε την ουρά εκτυπώσεων (print spooler) του
+ &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαθιστάτε φίλτρα εκτύπωσης, να χειρίζεστε
+ ειδικές εργασίες εκτύπωσης (π.χ. τη μετατροπή
+ εισερχόμενων κειμένων σε μορφές εκτύπωσης που είναι κατανοητές από
+ τους εκτυπωτές σας).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ενεργοποιήσετε σελίδες τύπου κεφαλίδας ή banner στις
+ εκτυπώσεις σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εκτυπώνετε σε εκτυπωτές που είναι συνδεδεμένοι σε άλλους
+ υπολογιστές.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εκτυπώνετε σε εκτυπωτές που είναι συνδεδεμένοι απευθείας
+ στο δίκτυο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ελέγχετε τους περιορισμούς εκτύπωσης, συμπεριλαμβανομένων
+ των περιορισμών μεγέθους των εργασιών εκτύπωσης, και πως να
+ παρεμποδίζετε την δυνατότητα εκτύπωσης σε συγκεκριμένους
+ χρήστες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να κρατήσετε στατιστικά για τον εκτυπωτή, και καταγραφή
+ για τη χρήση του εκτυπωτή από κάθε χρήστη.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αντιμετωπίσετε προβλήματα στις εκτυπώσεις.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να γνωρίζετε πως να ρυθμίσετε και να εγκαταστήσετε ένα νέο
+ πυρήνα (<xref linkend="kernelconfig">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="printing-intro-spooler">
+ <title>Εισαγωγή</title>
+
+ <para>Για να χρησιμοποιήσετε εκτυπωτές στο &os;, θα χρειαστεί να
+ ρυθμίσετε τη λειτουργία τους με το σύστημα παροχέτευσης (spooling)
+ εκτυπωτών γραμμής του Berkeley, γνωστό επίσης και ως σύστημα
+ παροχέτευσης <application>LPD</application>, ή απλά
+ <application>LPD</application>. Αυτό είναι το προκαθορισμένο σύστημα
+ ελέγχου εκτυπωτών στο &os;. Το κεφάλαιο αυτό είναι μια εισαγωγή στο
+ <application>LPD</application> και θα σας καθοδηγήσει στις ρυθμίσεις
+ του.</para>
+
+ <para>Εάν σας είναι οικείο το <application>LPD</application> ή κάποιο άλλο
+ σύστημα παροχέτευσης εκτυπωτών, τότε μπορείτε να μεταπηδήσετε στην
+ ενότητα <link linkend="printing-intro-setup">Βασική Εγκατάσταση</link>.</para>
+
+ <para>Το <application>LPD</application> μπορεί να ελέγχει εξ' ολοκλήρου
+ όλες τις λειτουργίες των εκτυπωτών ενός υπολογιστή. Είναι κυρίως
+ υπεύθυνο για ένα πλήθος λειτουργιών:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ελέγχει την πρόσβαση σε απευθείας συνδεμένους εκτυπωτές και
+ εκτυπωτές προσαρτημένους σε άλλους κόμβους στο δίκτυο.</para>
+ </listitem>
+
+ <indexterm><primary>εργασίες εκτύπωσης</primary></indexterm>
+ <listitem>
+ <para>Επιτρέπει σε χρήστες να στέλνουν αρχεία προς εκτύπωση. Οι
+ αποστολές αυτές είναι γνωστές ως
+ <emphasis>εργασίες (jobs)</emphasis>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Διατηρεί <emphasis>ουρά αναμονής (queue)</emphasis> για κάθε
+ εκτυπωτή, ώστε να προλαμβάνει την ταυτόχρονη πρόσβαση από πολλούς
+ χρήστες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να εκτυπώνει <emphasis>σελίδες κεφαλίδας</emphasis>
+ (γνωστές επίσης ως <emphasis>banner</emphasis> ή
+ <emphasis>σελίδες burst</emphasis>) ώστε οι χρήστες να μπορούν
+ εύκολα να ξεχωρίσουν τις εργασίες τους μέσα στην στοίβα
+ εκτυπώσεων.</para>
+ </listitem>
+
+ <listitem>
+ <para>Φροντίζει για την ορθότητα των παραμέτρων επικοινωνίας των
+ εκτυπωτών που είναι συνδεδεμένοι σε σειριακές θύρες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί μέσω του δικτύου να στείλει εργασίες σε σύστημα
+ παροχέτευσης <application>LPD</application> διαφορετικού
+ υπολογιστή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να εκτελέσει διάφορα φίλτρα για να προσαρμόσει εργασίες
+ ώστε να είναι δυνατή η εκτύπωση τους σε εκτυπωτές που χρησιμοποιούν
+ διαφορετικές γλώσσες ή έχουν διαφορετικές δυνατότητες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να κάνει καταμέτρηση χρήσης του εκτυπωτή.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μέσω του αρχείου ρύθμισης (<filename>/etc/printcap</filename>),
+ και με τη βοήθεια ειδικών προγραμμάτων φίλτρων, μπορείτε να
+ ενεργοποιήσετε το σύστημα <application>LPD</application> να κάνει όλες
+ ή κάποιες από τις παραπάνω εργασίες σε μια μεγάλη γκάμα συσκευών
+ εκτύπωσης.</para>
+
+ <sect2 id="printing-intro-why">
+ <title>Γιατί θα πρέπει να χρησιμοποιείτε τον Spooler</title>
+
+ <para>Αν είστε ο μοναδικός χρήστης του συστήματος, θα αναρωτιέστε
+ γιατί θα έπρεπε να ενδιαφερθείτε για τον spooler αφού δεν χρειάζεστε
+ έλεγχο πρόσβασης, σελίδες κεφαλίδας, ή αναφορές εκτύπωσης. Αν και
+ μπορείτε να ενεργοποιήσετε την άμεση πρόσβαση στον εκτυπωτή, είναι
+ καλύτερα να χρησιμοποιείτε τον spooler για τους παρακάτω
+ λόγους:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>το <application>LPD</application> εκτυπώνει τις εργασίες στο
+ παρασκήνιο, δεν χρειάζεται να περιμένετε να αντιγραφούν τα
+ δεδομένα στον εκτυπωτή.</para>
+ </listitem>
+
+ <indexterm><primary>&tex;</primary></indexterm>
+ <listitem>
+ <para>Το <application>LPD</application> μπορεί άνετα να εκτελεί
+ μια εργασία εκτύπωσης διαμέσου φίλτρων και να προσθέτει κεφαλίδες
+ ημερομηνίας/ώρας ή να μετατρέπει κάποιο ειδικό τύπο αρχείου
+ (όπως ένα αρχείο &tex; DVI) σε ένα τύπο κατανοητό από τον
+ εκτυπωτή σας. Αυτές οι διαδικασίες δεν χρειάζεται να γίνονται
+ χειροκίνητα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πολλά από τα ελεύθερα και εμπορικά διαθέσιμα προγράμματα
+ που παρέχουν διευκολύνσεις στην εκτύπωση, συνήθως επιζητούν
+ να επικοινωνήσουν με τον spooler του συστήματος σας. Ρυθμίζοντας
+ το σύστημα παροχέτευσης, θα μπορείτε ευκολότερα να υποστηρίζετε
+ λογισμικό τρίτων, που μπορεί ήδη να έχετε ή που πρόκειται να
+ εγκαταστήσετε στο μέλλον.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-intro-setup">
+ <title>Βασική Εγκατάσταση</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών για τις
+ σειριακές θύρες μετονομάστηκαν από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την
+ τεκμηρίωση που ακολουθεί με βάση αυτές τις αλλαγές.</para>
+ </warning>
+
+ <para>Για να χρησιμοποιήσετε εκτυπωτές με το σύστημα παροχέτευσης
+ <application>LPD</application>, θα πρέπει να εγκαταστήσετε τόσο το
+ hardware του εκτυπωτή σας όσο και το λογισμικό
+ <application>LPD</application>. Αυτό το έγγραφο περιγράφει την
+ εγκατάσταση σε δύο στάδια:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Δείτε την ενότητα <link linkend="printing-simple">Βασικές
+ Ρυθμίσεις Εκτυπωτών</link> για να μάθετε πως γίνεται η σύνδεση
+ εκτυπωτών, με ποιο τρόπο επικοινωνεί το
+ <application>LPD</application> με τους εκτυπωτές, και πως να
+ εκτυπώνετε απλά αρχεία κειμένου.</para></listitem>
+
+ <listitem>
+ <para>Δείτε την ενότητα <link linkend="printing-advanced">Ρυθμίσεις
+ Εκτυπωτών για Προχωρημένους</link> για να μάθετε πως να εκτυπώνετε
+ αρχεία ειδικής μορφής διαφόρων τύπων, πως να εκτυπώνετε σελίδες
+ κεφαλίδας, πως να εκτυπώνετε σε ένα δίκτυο, πως να ελέγχετε την
+ πρόσβαση στους εκτυπωτές, και πως να χρησιμοποιείτε την καταγραφή
+ εκτυπώσεων.</para>
+ </listitem>
+ </itemizedlist>
+
+ <sect2 id="printing-simple">
+ <title>Βασικές Ρυθμίσεις Εκτυπωτών</title>
+
+ <para>Αυτή η ενότητα περιγράφει πως να ρυθμίσετε το hardware του
+ εκτυπωτή και το λογισμικό <application>LPD</application>. Παρέχει
+ βασικές γνώσεις για τα εξής θέματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Η Ενότητα <link linkend="printing-hardware">Ρυθμίσεις
+ Hardware</link> υποδεικνύει πως να συνδέσετε τον εκτυπωτή σε
+ μια θύρα του υπολογιστή σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η Ενότητα <link linkend="printing-software">Ρυθμίσεις
+ Λογισμικού</link> υποδεικνύει πως να εγκαταστήσετε το αρχείο
+ ρύθμισης του συστήματος παροχέτευσης
+ <application>LPD</application>: το αρχείο
+ <filename>/etc/printcap</filename>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αν προσπαθείτε να εγκαταστήσετε έναν εκτυπωτή που δέχεται δεδομένα
+ μέσω πρωτοκόλλου δικτύου και όχι μέσω διασύνδεσης τοπικής θύρας, τότε
+ δείτε την ενότητα
+ <link linkend="printing-advanced-network-net-if">Εκτυπωτές Με
+ Συνδέσεις Δικτύου</link>.</para>
+
+ <para>Αν και αυτή η ενότητα ονομάζεται <quote>Βασικές Ρυθμίσεις
+ Εκτυπωτών</quote>, στην πραγματικότητα είναι αρκετά περίπλοκη. Το
+ δυσκολότερο στάδιο στην εγκατάσταση είναι η επιτυχής λειτουργία στην
+ επικοινωνία του εκτυπωτή με τον υπολογιστή σας και το σύστημα
+ παροχέτευσης <application>LPD</application>. Οι επιλογές για
+ προχωρημένους, όπως οι σελίδες κεφαλίδας και αναφοράς είναι σχετικά
+ εύκολες να επιτευχθούν, μετά την επιτυχή ρύθμιση της βασικής
+ λειτουργίας εκτύπωσης.</para>
+
+ <sect3 id="printing-hardware">
+ <title>Ρυθμίσεις Hardware</title>
+
+ <para>Αυτή η ενότητα εξηγεί τους διάφορους τρόπους σύνδεσης του
+ εκτυπωτή με τον υπολογιστή σας. Περιγράφει τους διάφορους τύπους
+ θυρών και καλωδίων, και τις ρυθμίσεις που πρέπει να κάνετε
+ στον πυρήνα για να ενεργοποιήσετε την επικοινωνία μεταξύ &os; και
+ εκτυπωτή.</para>
+
+ <para>Αν ήδη έχετε καταφέρει να συνδέσετε τον εκτυπωτή σας και έχετε
+ εκτυπώσει επιτυχώς σε άλλο λειτουργικό σύστημα, τότε μπορείτε να
+ μεταβείτε κατευθείαν στην ενότητα <link
+ linkend="printing-software">Ρυθμίσεις Λογισμικού</link>.</para>
+
+ <sect4 id="printing-ports">
+ <title>Θύρες και Καλώδια</title>
+
+ <para>Οι εκτυπωτές που διατίθενται σήμερα για χρήση με Η/Υ
+ παρέχονται με μία ή περισσότερες εκ των ακολούθων τριών
+ διασυνδέσεων:</para>
+
+ <itemizedlist>
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>σειριακοί</secondary>
+ </indexterm>
+ <listitem>
+ <para>Οι <emphasis>Σειριακές</emphasis> διασυνδέσεις, γνωστές
+ και ως RS-232 ή θύρες COM, χρησιμοποιούν την σειριακή θύρα
+ του υπολογιστή σας για να στείλουν δεδομένα στον εκτυπωτή.
+ Οι σειριακές διασυνδέσεις είναι συνήθεις στην βιομηχανία
+ κατασκευής Η/Υ και τα καλώδια είναι εκτενώς διαδεδομένα και
+ επίσης εύκολα να κατασκευαστούν. Οι σειριακές διασυνδέσεις
+ μερικές φορές χρειάζονται ειδικά καλώδια και μπορεί να σας
+ ζητηθούν πολύπλοκες επικοινωνιακές ρυθμίσεις. Οι περισσότερες
+ σειριακές θύρες των Η/Υ έχουν μέγιστη ταχύτητα μετάδοσης
+ 115200&nbsp;bps, κάνοντας δύσκολη την εργασία εκτύπωσης
+ γραφικών μεγάλων διαστάσεων.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>παράλληλοι</secondary>
+ </indexterm>
+ <listitem>
+ <para>Οι <emphasis>Παράλληλες</emphasis> διασυνδέσεις
+ χρησιμοποιούν την παράλληλη θύρα του υπολογιστή σας για να
+ στέλνουν δεδομένα στον εκτυπωτή. Οι παράλληλες διασυνδέσεις
+ είναι διαδεδομένες στο εμπόριο και είναι γρηγορότερες από τις
+ σειριακές RS-232. Τα καλώδια διατίθενται έτοιμα, αλλά είναι
+ δυσκολότερο να κατασκευαστούν χειρωνακτικά. Με τις παράλληλες
+ διασυνδέσεις δεν προβλέπονται επιλογές ρύθμισης επικοινωνίας,
+ κάνοντας την ρύθμιση τους εξαιρετικά απλή.</para>
+
+ <indexterm>
+ <primary>centronics</primary>
+ <see>παράλληλοι εκτυπωτές</see>
+ </indexterm>
+ <para>Οι παράλληλες διασυνδέσεις είναι γνωστές και ως
+ διασυνδέσεις <quote>Centronics</quote>, ονομασία προερχόμενη
+ από τον τύπο του ακροδέκτη του εκτυπωτή.</para>
+ </listitem>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>USB</secondary>
+ </indexterm>
+ <listitem>
+ <para>Οι διασυνδέσεις USB, συντομογραφία από το Universal
+ Serial Bus, δουλεύουν σε ακόμη μεγαλύτερες ταχύτητες από την
+ παράλληλη και την RS-232 σειριακή διασύνδεση. Τα καλώδια τους
+ είναι απλά και φτηνά. Η USB είναι ανώτερη από την Σειριακή
+ RS-232 και από την Παράλληλη στην εκτύπωση, αλλά δυστυχώς δεν
+ υποστηρίζεται καλά από τα συστήματα &unix;. Ένας τρόπος για
+ να αποφύγετε αυτό το πρόβλημα είναι να αγοράσετε εκτυπωτή
+ που φέρει διασύνδεση USB και Παράλληλη, όπως συμβαίνει με
+ πολλούς εκτυπωτές.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Γενικά, οι Παράλληλες διασυνδέσεις προσφέρουν συνήθως
+ μίας κατεύθυνσης επικοινωνία (από τον υπολογιστή στον εκτυπωτή)
+ ενώ η σειριακή και η USB δίνουν αμφίδρομη. Στο &os; οι πιο
+ πρόσφατες παράλληλες θύρες (EPP και ECP) καταφέρνουν
+ αμφίδρομη επικοινωνία με τους εκτυπωτές, όταν χρησιμοποιούνται
+ καλώδια που συμμορφώνονται με το πρότυπο IEEE-1284.</para>
+
+ <indexterm><primary>PostScript</primary></indexterm>
+
+ <para>Η αμφίδρομη επικοινωνία με εκτυπωτές διαμέσου παράλληλης
+ θύρας μπορεί να επιτευχθεί γενικά με δύο τρόπους. Ο πρώτος τρόπος
+ χρησιμοποιεί ένα προσαρμοσμένο πρόγραμμα οδήγησης εκτυπωτή, ώστε
+ να μπορεί το &os; να συνομιλεί στην γλώσσα του εκτυπωτή. Αυτό
+ είναι σύνηθες με εκτυπωτές inkjet και μπορεί επίσης να
+ χρησιμοποιηθεί για αναφορές διαθέσιμης ποσότητας μελανιού και για
+ άλλες πληροφορίες λειτουργίας. Η δεύτερη μέθοδος χρησιμοποιείται
+ όταν ο εκτυπωτής έχει δυνατότητα υποστήριξης &postscript;.</para>
+
+ <para>Οι εργασίες &postscript; είναι στην πραγματικότητα προγράμματα
+ που αποστέλλονται στον εκτυπωτή, δεν είναι απαραίτητο να παράγουν
+ εκτυπώσεις, ενώ μπορούν να επιστρέψουν το αποτέλεσμα τους
+ απευθείας στον υπολογιστή. Το &postscript; χρησιμοποιεί
+ αμφίδρομη επικοινωνία για να ενημερώσει τον υπολογιστή για τυχόν
+ προβλήματα, όπως σφάλματα στο πρόγραμμα &postscript; ή
+ μπλοκάρισμα τροφοδοσίας χαρτιού. Οι χρήστες σας, θα σας είναι
+ ευγνώμονες για αυτές τις πληροφορίες. Επιπλέον, ο καλύτερος
+ τρόπος για να κάνετε σωστή καταμέτρηση με ένα αμφίδρομο εκτυπωτή
+ &postscript; είναι: να ρωτήσετε τον εκτυπωτή για την συνολική
+ καταμέτρηση των σελίδων του (πόσες σελίδες εκτύπωσε σε όλη τη
+ διάρκεια ζωής του), μετά να αποστείλετε την εργασία του χρήστη,
+ και έπειτα να ξαναρωτήσετε για την καταμέτρηση των σελίδων του.
+ Αφαιρέστε τις δύο τιμές και θα γνωρίζετε πόσες σελίδες να
+ χρεώσετε στον χρήστη.</para>
+ </sect4>
+
+ <sect4 id="printing-parallel">
+ <title>Παράλληλες Θύρες</title>
+
+ <para>Για να συνδέσετε έναν εκτυπωτή σε παράλληλη θύρα, συνδέστε
+ το καλώδιο Centronics μεταξύ εκτυπωτή και υπολογιστή.
+ Οι οδηγίες που συνοδεύουν τον εκτυπωτή και τον υπολογιστή θα σας
+ καθοδηγήσουν να ολοκληρώσετε την σύνδεση.</para>
+
+ <para>Θυμηθείτε ποια παράλληλη θύρα χρησιμοποιείτε στον υπολογιστή.
+ Η πρώτη παράλληλη θύρα στο &os; είναι η
+ <filename class="devicefile">ppc0</filename>,
+ η δεύτερη είναι η <filename class="devicefile">ppc1</filename>,
+ και ούτω καθεξής. Το όνομα συσκευής του εκτυπωτή χρησιμοποιεί
+ την ίδια αρίθμηση:
+ <filename class="devicefile">/dev/lpt0</filename> για τον
+ εκτυπωτή στην πρώτη παράλληλη θύρα κ.τ.λ.</para>
+ </sect4>
+
+ <sect4 id="printing-serial">
+ <title>Σειριακές Θύρες</title>
+
+ <para>Για να συνδέσετε έναν εκτυπωτή χρησιμοποιώντας σειριακή
+ διασύνδεση, συνδέστε το κατάλληλο σειριακό καλώδιο μεταξύ εκτυπωτή
+ και υπολογιστή. Οι οδηγίες που συνοδεύουν τον εκτυπωτή και τον
+ υπολογιστή σας, θα σας καθοδηγήσουν να ολοκληρώσετε την
+ σύνδεση.</para>
+
+ <para>Αν δεν είστε σίγουροι ποιο είναι το <quote>κατάλληλο σειριακό
+ καλώδιο</quote>, μπορείτε να δοκιμάσετε μία από τις ακόλουθες
+ εναλλακτικές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ένα καλώδιο <emphasis>modem</emphasis> ενώνει κάθε pin
+ του ακροδέκτη από τη μια πλευρά του καλωδίου κατευθείαν με
+ το αντίστοιχο pin του ακροδέκτη στο άλλο άκρο. Αυτός ο τύπος
+ καλωδίου είναι γνωστός και ως καλώδιο
+ <quote>DTE-to-DCE</quote>.</para>
+ </listitem>
+
+ <indexterm><primary>null-modem cable</primary></indexterm>
+ <listitem>
+ <para>Ένα καλώδιο <emphasis>null-modem</emphasis> ενώνει
+ κατευθείαν μερικά pins, ανταλλάσσει μερικά άλλα (για
+ παράδειγμα, τα pins αποστολής και λήψης), ενώ
+ βραχυκυκλώνει μερικά άλλα, εσωτερικά, στο προστατευτικό
+ κάλυμμα κάθε ακροδέκτη. Αυτός ο τύπος καλωδίου είναι γνωστός
+ και ως καλώδιο <quote>DTE-to-DTE</quote>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα καλώδιο <emphasis>σειριακού εκτυπωτή</emphasis>, που
+ απαιτείται από κάποιους λιγότερο συνηθισμένους εκτυπωτές,
+ είναι σαν το καλώδιο null-modem, αλλά στέλνει ισοδύναμα
+ σήματα και στα δύο άκρα αντί να τα βραχυκυκλώνει
+ εσωτερικά.</para>
+ </listitem>
+ </itemizedlist>
+
+ <indexterm><primary>ρυθμός baud</primary></indexterm>
+ <indexterm><primary>ισοδυναμία</primary></indexterm>
+ <indexterm><primary>πρωτόκολλο ελέγχου ροής</primary></indexterm>
+ <para>Θα πρέπει επίσης να ρυθμίσετε τις παραμέτρους επικοινωνίας
+ του εκτυπωτή, συνήθως από τον μπροστινό πίνακα ελέγχου ή από τους
+ DIP διακόπτες του. Επιλέξτε την μέγιστη τιμή
+ <literal>bps</literal> (bits per second = bits ανά δευτερόλεπτο,
+ αναφέρεται και ως <emphasis>ρυθμός baud</emphasis>) που
+ υποστηρίζουν ο υπολογιστής και ο εκτυπωτής σας. Επιλέξτε 7 ή 8
+ data bits, none, even, ή odd parity, και 1 ή 2 stop bits. Επίσης
+ επιλέξτε ένα πρωτόκολλο ελέγχου ροής: είτε none, ή XON/XOFF
+ (αναφέρεται και ως έλεγχος ροής <quote>in-band</quote> ή
+ <quote>software</quote>). Να θυμάστε αυτές τις
+ ρυθμίσεις, για το στάδιο ρύθμισης λογισμικού που ακολουθεί.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-software">
+ <title>Ρυθμίσεις Λογισμικού</title>
+
+ <para>Αυτή η ενότητα περιγράφει τις αναγκαίες ρυθμίσεις που πρέπει
+ να γίνουν στο λογισμικό για να μπορείτε να εκτυπώνετε με το σύστημα
+ παροχέτευσης εκτυπωτών <application>LPD</application> στο
+ &os;.</para>
+
+ <para>Μια γενική άποψη των ενεργειών που πρέπει να ακολουθήσετε
+ είναι:</para>
+
+ <procedure>
+ <step>
+ <para>Ρυθμίστε τον πυρήνα σας, αν είναι αναγκαίο, για την θύρα
+ που χρησιμοποιείτε για τον εκτυπωτή σας. Οι απαραίτητες
+ ρυθμίσεις περιγράφονται στην ενότητα <link
+ linkend="printing-kernel">Ρυθμίσεις Πυρήνα</link>.</para>
+ </step>
+
+ <step>
+ <para>Ρυθμίστε την κατάσταση επικοινωνίας για την παράλληλη θύρα,
+ αν πρόκειται να την χρησιμοποιήσετε.
+ Η ενότητα <link linkend="printing-parallel-port-mode">Ρυθμίσεις
+ Κατάστασης Επικοινωνίας για την Παράλληλη Θύρα</link> περιέχει
+ λεπτομέρειες.</para>
+ </step>
+
+ <step>
+ <para>Ελέγξτε αν το λειτουργικό σύστημα μπορεί να στείλει δεδομένα
+ στον εκτυπωτή.
+ Η ενότητα <link linkend="printing-testing">Έλεγχος Επικοινωνίας
+ του Εκτυπωτή</link> παρέχει μερικές συμβουλές για το πως θα
+ μπορούσε να γίνει ο έλεγχος.</para>
+ </step>
+
+ <step>
+ <para>Ρυθμίστε το <application>LPD</application> για τον εκτυπωτή
+ σας, τροποποιώντας το αρχείο <filename>/etc/printcap</filename>.
+ Θα βρείτε οδηγίες για αυτές τις ρυθμίσεις σε επόμενο τμήμα αυτού
+ του κεφαλαίου.</para>
+ </step>
+ </procedure>
+
+ <sect4 id="printing-kernel">
+ <title>Ρυθμίσεις Πυρήνα</title>
+
+ <para>Ο πυρήνας του λειτουργικού συστήματος έχει μεταγλωττιστεί έτσι
+ ώστε να δουλεύει με ένα συγκεκριμένο σύνολο συσκευών. Η σειριακή
+ και η παράλληλη διασύνδεση του εκτυπωτή είναι μέρος αυτού του
+ συνόλου. Επομένως, ίσως να είναι αναγκαίο να προσθέσετε
+ υποστήριξη για κάποια πρόσθετη σειριακή ή παράλληλη θύρα, αν δεν
+ είναι ήδη ρυθμισμένη στον πυρήνα σας.</para>
+
+ <para>Για να ελέγξετε αν ο πυρήνας σας μπορεί να υποστηρίξει μια
+ σειριακή διασύνδεση, πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>grep sio<replaceable>N</replaceable> <filename>/var/run/dmesg.boot</filename></command></userinput></screen>
+
+ <para>Όπου <replaceable>N</replaceable> είναι ο αριθμός της
+ σειριακής θύρας, ξεκινώντας από το μηδέν. Αν δείτε στην έξοδο του
+ τερματικού σας κάτι παρόμοιο με:</para>
+
+ <screen>sio2 at port 0x3e8-0x3ef irq 5 on isa
+sio2: type 16550A</screen>
+
+ <para>τότε ο πυρήνας υποστηρίζει αυτή τη θύρα.</para>
+
+ <para>Για να ελέγξετε αν ο πυρήνας σας υποστηρίζει παράλληλες
+ διασυνδέσεις, πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>grep ppc<replaceable>N</replaceable> <filename>/var/run/dmesg.boot</filename></command></userinput></screen>
+
+ <para>Όπου <replaceable>N</replaceable> είναι ο αριθμός της
+ παράλληλης θύρας, ξεκινώντας από το μηδέν. Αν δείτε στην έξοδο
+ του τερματικού σας κάτι παρόμοιο με:</para>
+
+ <screen>ppc0: &lt;Parallel port&gt; at port 0x378-0x37f irq 7 on isa0
+ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
+ppc0: FIFO with 16/16/8 bytes threshold</screen>
+
+ <para>τότε ο πυρήνας υποστηρίζει αυτή τη θύρα.</para>
+
+ <para>Για να μπορεί το λειτουργικό σύστημα να αναγνωρίζει και να
+ χρησιμοποιεί την θύρα (παράλληλη ή σειριακή) για τον εκτυπωτή σας,
+ ίσως χρειαστεί να επαναπροσαρμόσετε τον πυρήνα σας.</para>
+
+ <para>Για την υποστήριξη σειριακής θύρας, δείτε την ενότητα στις
+ ρυθμίσεις του πυρήνα. Για την υποστήριξη παράλληλης θύρας, δείτε
+ την ίδια ενότητα <emphasis>και</emphasis> την ενότητα που
+ ακολουθεί.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-parallel-port-mode">
+ <title>Ρυθμίσεις Κατάστασης Επικοινωνίας για την Παράλληλη
+ Θύρα</title>
+
+ <para>Όταν χρησιμοποιείτε την παράλληλη διασύνδεση, μπορείτε να
+ επιλέξετε αν η επικοινωνία του &os; με τον εκτυπωτή θα είναι
+ τύπου interrupt-driven ή polled. Ο γενικός οδηγός συσκευής του
+ εκτυπωτή (&man.lpt.4;) στο &os; χρησιμοποιεί το σύστημα
+ &man.ppbus.4;, το οποίο ελέγχει την θύρα του chipset
+ με τον οδηγό &man.ppc.4;.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Η μέθοδος <emphasis>interrupt-driven</emphasis> είναι
+ προεπιλεγμένη στον πυρήνα GENERIC. Με αυτή τη μέθοδο,
+ το λειτουργικό σύστημα χρησιμοποιεί ένα σήμα IRQ για να
+ προσδιορίσει αν ο εκτυπωτής είναι έτοιμος για δεδομένα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η μέθοδος <emphasis>polled</emphasis> οδηγεί το
+ λειτουργικό σύστημα να ζητά κατά επανάληψη από τον εκτυπωτή
+ αν είναι έτοιμος για πρόσθετα δεδομένα. Όταν απαντήσει θετικά,
+ ο πυρήνας στέλνει πρόσθετα δεδομένα.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Η μέθοδος interrupt-driven είναι συνήθως κάπως γρηγορότερη
+ αλλά χρησιμοποιεί μια πολύτιμη γραμμή IRQ. Έχει παρατηρηθεί πως
+ κάποιοι σύγχρονοι εκτυπωτές HP δε δουλεύουν σωστά σε κατάσταση
+ interrupt, πιθανώς λόγω κάποιων (όχι απόλυτα εξακριβωμένων)
+ προβλημάτων συγχρονισμού. Αυτοί οι εκτυπωτές χρειάζονται την μέθοδο
+ polled. Θα πρέπει να χρησιμοποιείτε την αποτελεσματικότερη
+ κατάσταση λειτουργίας. Κάποιοι εκτυπωτές δουλεύουν και στις δυο
+ καταστάσεις, αλλά είναι οδυνηρά αργοί στην κατάσταση λειτουργίας
+ interrupt.</para>
+
+ <para>Μπορείτε να ρυθμίσετε την κατάσταση επικοινωνίας με δύο
+ τρόπους: ρυθμίζοντας τον πυρήνα ή χρησιμοποιώντας το πρόγραμμα
+ &man.lptcontrol.8;.</para>
+
+ <para><emphasis>Για να θέσετε την κατάσταση επικοινωνίας ρυθμίζοντας
+ τον πυρήνα:</emphasis></para>
+
+ <procedure>
+ <step>
+ <para>Επεξεργαστείτε το αρχείο ρύθμισης του πυρήνα. Δείτε την
+ καταχώριση <literal>ppc0</literal>. Αν εγκαθιστάτε την
+ δεύτερη παράλληλη θύρα, τότε χρησιμοποιείστε
+ <literal>ppc1</literal>. Για την τρίτη θύρα
+ <literal>ppc2</literal> και ούτω καθεξής.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Αν επιθυμείτε κατάσταση λειτουργίας interrupt-driven,
+ επεξεργαστείτε την ακόλουθη γραμμή:</para>
+
+ <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting>
+
+ <para>στο αρχείο <filename>/boot/device.hints</filename> και
+ αντικαταστήστε το <replaceable>N</replaceable> με τον
+ σωστό αριθμό IRQ. Το αρχείο ρύθμισης του πυρήνα πρέπει
+ επίσης να περιέχει τον οδηγό &man.ppc.4;:</para>
+
+ <screen>device ppc</screen>
+ </listitem>
+
+ <listitem>
+ <para>Αν επιθυμείτε κατάσταση λειτουργίας polled, διαγράψτε
+ από το αρχείο <filename>/boot/device.hints</filename>, την
+ ακόλουθη γραμμή:</para>
+
+ <programlisting>hint.ppc.0.irq="<replaceable>N</replaceable>"</programlisting>
+
+ <para>Σε μερικές περιπτώσεις, το παραπάνω δεν είναι αρκετό
+ για να θέσετε την θύρα σε κατάσταση polled. Τις
+ περισσότερες φορές το πρόβλημα προέρχεται από τον οδηγό
+ &man.acpi.4;, ο οποίος έχει την ευχέρεια να εξετάζει και
+ να προσαρτά συσκευές, και επομένως, να ελέγχει τον τρόπο
+ πρόσβασης στην θύρα του εκτυπωτή. Θα πρέπει να ελέγξετε
+ τις ρυθμίσεις του &man.acpi.4; για να διορθώσετε αυτό το
+ πρόβλημα.</para>
+ </listitem>
+ </itemizedlist>
+ </step>
+
+ <step>
+ <para>Αποθηκεύστε το αρχείο. Ρυθμίστε, μεταγλωττίστε, και
+ εγκαταστήστε τον πυρήνα, και έπειτα κάντε επανεκκίνηση.
+ Για περισσότερες λεπτομέρειες, δείτε τις <link
+ linkend="kernelconfig">ρυθμίσεις του πυρήνα</link>.</para>
+ </step>
+ </procedure>
+
+ <para><emphasis>Για να θέσετε την κατάσταση επικοινωνίας με
+ το</emphasis> &man.lptcontrol.8;:</para>
+
+ <procedure>
+ <step>
+ <para>Πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>lptcontrol <option>-i</option> <option>-d</option> <filename class="devicefile">/dev/lpt<replaceable>N</replaceable></filename></command></userinput></screen>
+
+ <para>για να θέσετε την κατάσταση λειτουργίας interrupt-driven
+ για το <literal>lpt<replaceable>N</replaceable></literal>.</para>
+ </step>
+
+ <step>
+ <para>Πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>lptcontrol <option>-p</option> <option>-d</option> <filename class="devicefile">/dev/lpt<replaceable>N</replaceable></filename></command></userinput></screen>
+
+ <para>για να θέσετε την κατάσταση λειτουργίας polled για το
+ <literal>lpt<replaceable>N</replaceable></literal>.</para>
+ </step>
+ </procedure>
+
+ <para>Θα μπορούσατε να καταχωρίσετε αυτές τις εντολές στο
+ δικό σας αρχείο <filename>/etc/rc.local</filename>. Έτσι θα
+ εκτελούνται αυτόματα κατά την εκκίνηση
+ του συστήματος σας. Για περισσότερες πληροφορίες δείτε το
+ &man.lptcontrol.8;.</para>
+ </sect3>
+
+ <sect3 id="printing-testing">
+ <title>Έλεγχος Επικοινωνίας του Εκτυπωτή</title>
+
+ <para>Πριν συνεχίσουμε να ρυθμίζουμε το σύστημα παροχέτευσης, θα
+ πρέπει να βεβαιωθείτε ότι το λειτουργικό σύστημα μπορεί να στείλει
+ επιτυχώς δεδομένα στον εκτυπωτή σας. Είναι ευκολότερο να κάνουμε
+ ξεχωριστά την αποσφαλμάτωση επικοινωνίας του εκτυπωτή και την
+ αποσφαλμάτωση του συστήματος παροχέτευσης.</para>
+
+ <para>Θα ελέγξουμε τον εκτυπωτή στέλνοντας μερικά δεδομένα κειμένου.
+ Για εκείνους τους εκτυπωτές που μπορούν να εκτυπώνουν άμεσα
+ τους χαρακτήρες που έχουν αποσταλεί, το πρόγραμμα &man.lptest.1;
+ είναι τέλειο: Παράγει όλους τους εκτυπώσιμους χαρακτήρες (96)
+ ASCII σε 96 γραμμές.</para>
+
+ <indexterm><primary>PostScript</primary></indexterm>
+ <para>Για εκτυπωτές &postscript; (ή που βασίζονται σε άλλη γλώσσα),
+ θα χρειαστεί να κάνουμε ένα πιο πολύπλοκο τεστ. Ένα μικρό
+ πρόγραμμα &postscript;, όπως αυτό που ακολουθεί, επαρκεί:</para>
+
+ <programlisting>%!PS
+100 100 moveto 300 300 lineto stroke
+310 310 moveto /Helvetica findfont 12 scalefont setfont
+(Is this thing working?) show
+showpage</programlisting>
+
+ <para>Ο παραπάνω κώδικας &postscript; μπορεί να τοποθετηθεί σε ένα
+ αρχείο και να χρησιμοποιηθεί όπως υποδεικνύουν τα παραδείγματα
+ στις ακόλουθες ενότητες.</para>
+
+ <indexterm><primary>PCL</primary></indexterm>
+ <note>
+ <para>Όταν αυτό το έγγραφο αναφέρεται σε μια γλώσσα εκτυπωτή,
+ εννοείται μια γλώσσα όπως η &postscript;, αλλά όχι η PCL της
+ Hewlett Packard&nbsp;&mdash; η PCL είναι μια γλώσσα ευρείας
+ λειτουργικότητας η οποία επιτρέπει την ανάμιξη απλού κειμένου με
+ ακολουθίες διαφυγής. Η &postscript; δεν μπορεί να εκτυπώσει
+ άμεσα απλό κείμενο, και αυτός είναι ακριβώς ο τύπος της
+ γλώσσας εκτυπωτή που θα πρέπει να διευθετήσουμε
+ κατάλληλα.</para>
+ </note>
+
+ <sect4 id="printing-checking-parallel">
+ <title>Έλεγχος Παράλληλου Εκτυπωτή</title>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>παράλληλη</secondary>
+ </indexterm>
+ <para>Αυτή η ενότητα υποδεικνύει πως να ελέγξετε αν το &os; μπορεί
+ να επικοινωνήσει με έναν εκτυπωτή συνδεδεμένο σε παράλληλη
+ θύρα.</para>
+
+ <para><emphasis>Για να ελέγξετε έναν εκτυπωτή σε παράλληλη
+ θύρα:</emphasis></para>
+
+ <procedure>
+ <step>
+ <para>Γίνετε <username>root</username> με &man.su.1;.</para>
+ </step>
+
+ <step>
+ <para>Στείλτε δεδομένα στον εκτυπωτή.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Αν ο εκτυπωτής μπορεί να εκτυπώσει απλό κείμενο,
+ τότε χρησιμοποιήστε το &man.lptest.1;.
+ Πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>lptest &gt; <filename class="devicefile">/dev/lpt<replaceable>N</replaceable></filename></command></userinput></screen>
+
+ <para>Όπου <replaceable>N</replaceable> είναι ο αριθμός
+ της παράλληλης θύρας, ξεκινώντας από το μηδέν.</para>
+ </listitem>
+
+ <listitem>
+ <para>Εάν ο εκτυπωτής καταλαβαίνει &postscript; ή κάποια
+ άλλη γλώσσα εκτυπωτών, τότε στείλτε ένα μικρό πρόγραμμα
+ στον εκτυπωτή. Πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>cat &gt; <filename class="devicefile">/dev/lpt<replaceable>N</replaceable></filename></command></userinput></screen>
+
+ <para>Έπειτα πληκτρολογήστε το πρόγραμμα μία προς μία
+ γραμμή, <emphasis>προσεκτικά</emphasis>, γιατί δεν
+ μπορείτε να επεξεργαστείτε μια γραμμή αφότου έχετε
+ πιέσει το πλήκτρο <literal>RETURN</literal> ή
+ <literal>ENTER</literal>. Αφού τελειώσετε με την
+ καταχώριση του προγράμματος, πιέστε
+ <literal>CONTROL+D</literal>, ή άλλο πλήκτρο
+ τερματισμού αρχείου.</para>
+
+ <para>Εναλλακτικά, μπορείτε να τοποθετήσετε το πρόγραμμα
+ σε ένα αρχείο και να πληκτρολογήσετε:</para>
+
+ <screen>&prompt.root; <userinput><command>cat <filename><replaceable>file</replaceable></filename> &gt; <filename class="devicefile">/dev/lpt<replaceable>N</replaceable></filename></command></userinput></screen>
+
+ <para>Όπου <replaceable>file</replaceable> είναι το
+ όνομα του αρχείου που περιέχει το πρόγραμμα που θέλετε
+ να στείλετε στον εκτυπωτή.</para>
+ </listitem>
+ </itemizedlist>
+ </step>
+ </procedure>
+
+ <para>Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το κείμενο
+ δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα.</para>
+ </sect4>
+
+ <sect4 id="printing-checking-serial">
+ <title>Έλεγχος Σειριακού Εκτυπωτή</title>
+
+ <indexterm>
+ <primary>printers</primary>
+ <secondary>serial</secondary>
+ </indexterm>
+ <para>Αυτή η ενότητα υποδεικνύει πως να ελέγξετε αν το &os; μπορεί
+ να επικοινωνήσει με έναν εκτυπωτή συνδεδεμένο σε σειριακή
+ θύρα.</para>
+
+ <para><emphasis>Για να ελέγξετε έναν εκτυπωτή σε σειριακή
+ θύρα:</emphasis></para>
+
+ <procedure>
+ <step>
+ <para>Γίνετε <username>root</username> με &man.su.1;.</para>
+ </step>
+
+ <step>
+ <para>Επεξεργαστείτε το αρχείο
+ <filename>/etc/remote</filename>. Προσθέστε την ακόλουθη
+ καταχώριση:</para>
+
+ <programlisting>printer:dv=<filename class="devicefile">/dev/<replaceable>port</replaceable></filename>:br#<replaceable>bps-rate</replaceable>:pa=<replaceable>parity</replaceable></programlisting>
+
+ <indexterm><primary>bits-per-second</primary></indexterm>
+ <indexterm><primary>serial port</primary></indexterm>
+ <indexterm><primary>parity</primary></indexterm>
+ <para>Όπου <replaceable>port</replaceable> είναι η
+ καταχώριση συσκευής για την σειριακή πόρτα
+ (<literal>ttyu0</literal>, <literal>ttyu1</literal>, κτλ.),
+ <replaceable>bps-rate</replaceable> είναι η ταχύτητα
+ bits-per-second επικοινωνίας με τον εκτυπωτή, και
+ <replaceable>parity</replaceable> η ισοτιμία που
+ απαιτείται από τον εκτυπωτή (<literal>even</literal>,
+ <literal>odd</literal>, <literal>none</literal>, ή
+ <literal>zero</literal>).</para>
+
+ <para>Παρακάτω φαίνεται ένα υπόδειγμα καταχώρισης, για έναν
+ εκτυπωτή συνδεδεμένο μέσω σειριακής γραμμής στην τρίτη
+ σειριακή θύρα με ταχύτητα 19200&nbsp;bps και χωρίς
+ parity:</para>
+
+ <programlisting>printer:dv=<filename class="devicefile">/dev/ttyu2</filename>:br#19200:pa=none</programlisting>
+ </step>
+
+ <step>
+ <para>Συνδεθείτε στον εκτυπωτή με &man.tip.1;.
+ Πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>tip</command> printer</userinput></screen>
+
+ <para>Αν αυτό το στάδιο δεν δουλεύει, επεξεργαστείτε πάλι το
+ αρχείο <filename>/etc/remote</filename> και προσπαθήστε το
+ χρησιμοποιώντας
+ <filename class="devicefile">/dev/cuaa<replaceable>N</replaceable></filename>
+ αντί για
+ <filename class="devicefile">/dev/ttyu<replaceable>N</replaceable></filename>.</para>
+ </step>
+
+ <step>
+ <para>Στείλτε δεδομένα στον εκτυπωτή.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Αν ο εκτυπωτής μπορεί να εκτυπώσει απλό κείμενο,
+ χρησιμοποιήστε &man.lptest.1;. Γράψτε:</para>
+
+ <screen>&prompt.user; <userinput>$lptest</userinput></screen>
+ </listitem>
+
+ <listitem>
+ <para>Εάν ο εκτυπωτής καταλαβαίνει &postscript; ή κάποια
+ άλλη γλώσσα εκτυπωτών, τότε στείλτε ένα μικρό πρόγραμμα
+ στον εκτυπωτή. Πληκτρολογήστε το πρόγραμμα, μία προς μία
+ γραμμή, <emphasis>πολύ προσεκτικά</emphasis>, καθώς
+ ο εκτυπωτής μπορεί να ερμηνεύει διαφορετικά την χρήση
+ χαρακτήρων όπως το backspace ή άλλων που παράγονται από
+ διάφορα πλήκτρα επεξεργασίας. Μπορεί επίσης να
+ χρειαστεί να πληκτρολογήσετε κάποιο ειδικό πλήκτρο
+ τερματισμού αρχείου για τον εκτυπωτή ώστε να γνωρίζει
+ πότε ολοκληρώνεται το πρόγραμμα. Για εκτυπωτές
+ &postscript;, πιέστε
+ <literal>CONTROL+D</literal>.</para>
+
+ <para>Εναλλακτικά, μπορείτε να τοποθετήσετε το πρόγραμμα
+ σε ένα αρχείο και να πληκτρολογήσετε:</para>
+
+ <screen>&prompt.user; <userinput>&gt;<replaceable>file</replaceable></userinput></screen>
+
+ <para>Όπου <replaceable>file</replaceable> είναι το
+ όνομα του αρχείου που περιέχει το πρόγραμμα. Αφού το
+ &man.tip.1; στείλει το αρχείο, πιέστε το κατάλληλο
+ πλήκτρο τερματισμού αρχείου, αν απαιτείται.</para>
+ </listitem>
+ </itemizedlist>
+ </step>
+ </procedure>
+
+ <para>Θα δείτε κάτι να εκτυπώνεται. Μην ανησυχείτε αν το
+ κείμενο δεν φαίνεται σωστό. Θα το διορθώσουμε αργότερα.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-printcap">
+ <title>Ενεργοποίηση του Spooler: το Αρχείο
+ <filename>/etc/printcap</filename></title>
+
+ <para>Σε αυτό το σημείο, ο εκτυπωτής σας θα πρέπει να είναι
+ συνδεμένος, ο πυρήνας σας ρυθμισμένος να επικοινωνεί μαζί του
+ (αν χρειάζεται), και έχετε πετύχει να στείλετε κάποια δοκιμαστικά
+ δεδομένα στον εκτυπωτή. Είστε τώρα έτοιμοι να ρυθμίσετε το
+ <application>LPD</application> για να ελέγχετε την πρόσβαση
+ στον εκτυπωτή σας.</para>
+
+ <para>Μπορείτε να ρυθμίσετε το <application>LPD</application>
+ με επεξεργασία του αρχείου <filename>/etc/printcap</filename>.
+ Το σύστημα παροχέτευσης <application>LPD</application>
+ διαβάζει αυτό το αρχείο κάθε φορά που χρησιμοποιείται ο spooler,
+ επομένως πιθανές αναβαθμίσεις του μπαίνουν άμεσα σε εφαρμογή.</para>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>ικανότητες</secondary>
+ </indexterm>
+ <para>Είναι εύκολο να κατανοήσετε την μορφή του αρχείου
+ &man.printcap.5;. Χρησιμοποιήστε τον κειμενογράφο που προτιμάτε
+ για να κάνετε αλλαγές στο <filename>/etc/printcap</filename>. Η
+ μορφή του είναι παρόμοια με άλλα αρχεία περιγραφής δυνατοτήτων,
+ όπως τα <filename>/usr/share/misc/termcap</filename> και
+ <filename>/etc/remote</filename>. Δείτε την &man.cgetent.3;
+ για λεπτομερείς πληροφορίες σχετικά με την μορφή του αρχείου.</para>
+
+ <para>Η πιο απλή ρύθμιση του spooler αποτελείται από τα ακόλουθα
+ βήματα:</para>
+
+ <procedure>
+ <step>
+ <para>Επιλέξτε ένα όνομα (και λίγα βολικά παρωνύμια) για τον
+ εκτυπωτή, και τοποθετήστε τα στο αρχείο
+ <filename>/etc/printcap</filename>.
+ Δείτε την ενότητα <link
+ linkend="printing-naming">Ονοματοδότηση Εκτυπωτή</link> για
+ περισσότερες πληροφορίες σχετικά με την ονομασία των
+ εκτυπωτών.</para>
+ </step>
+
+ <indexterm><primary>σελίδες κεφαλίδας</primary></indexterm>
+ <step>
+ <para>Απενεργοποιήστε τις σελίδες κεφαλίδας (είναι ενεργές από
+ προεπιλογή) εισάγοντας την ικανότητα <literal>sh</literal>.
+ Για περισσότερες πληροφορίες δείτε την ενότητα <link
+ linkend="printing-no-header-pages">Παρεμπόδιση Σελίδων
+ Κεφαλίδας</link>.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε ένα κατάλογο παροχέτευσης, και καθορίστε την
+ τοποθεσία του με την ικανότητα <literal>sd</literal>. Για
+ περισσότερες πληροφορίες δείτε την ενότητα <link
+ linkend="printing-spooldir">Δημιουργία Καταλόγου
+ Παροχέτευσης</link>.</para>
+ </step>
+
+ <step>
+ <para>Καθορίστε την κατάλληλη καταχώριση
+ <filename class="devicefile">/dev</filename>
+ για τον εκτυπωτή, και σημειώστε τη στο
+ <filename>/etc/printcap</filename> με την ικανότητα
+ <literal>lp</literal>. Για περισσότερες πληροφορίες, δείτε την
+ ενότητα <link linkend="printing-device">Αναγνώριση της Συσκευής
+ Εκτύπωσης</link>. Επίσης, αν ο εκτυπωτής είναι σε σειριακή
+ θύρα, εγκαταστήστε τις παραμέτρους επικοινωνίας με την ικανότητα
+ <literal>ms#</literal> η οποία αναλύεται στην ενότητα <link
+ linkend="printing-commparam">Ρυθμίσεις Παραμέτρων Επικοινωνίας
+ του Spooler</link>.</para>
+ </step>
+
+ <step>
+ <para>Εγκαταστήστε φίλτρα εισόδου απλού κειμένου. Δείτε την
+ ενότητα <link linkend="printing-textfilter">Εγκατάσταση Φίλτρου
+ Κειμένου</link> για περισσότερες πληροφορίες.</para>
+ </step>
+
+ <step>
+ <para>Ελέγξτε την εγκατάσταση εκτυπώνοντας οτιδήποτε με την
+ εντολή &man.lpr.1;. Περισσότερες πληροφορίες είναι διαθέσιμες
+ στις ενότητες <link linkend="printing-trying">Δοκιμή του
+ Spooler</link> και <link linkend="printing-troubleshooting">Εντοπισμός Βλαβών</link>.</para>
+ </step>
+ </procedure>
+
+ <note>
+ <para>Εκτυπωτές που βασίζονται σε γλώσσες εκτύπωσης, όπως οι
+ εκτυπωτές &postscript;, δεν μπορούν να εκτυπώσουν άμεσα απλό
+ κείμενο. Ο απλός τρόπος ρύθμισης που δείξαμε παραπάνω και
+ που θα περιγράψουμε εκτενέστερα στις επόμενες ενότητες,
+ προϋποθέτει πως αν ρυθμίζετε έναν τέτοιο εκτυπωτή θα μπορείτε να
+ εκτυπώσετε μόνον αρχεία γραμμένα στη γλώσσα του.</para>
+ </note>
+
+ <para>Οι χρήστες συνήθως νομίζουν πως μπορούν να εκτυπώσουν απλό
+ κείμενο σε όλους τους εκτυπωτές που είναι εγκατεστημένοι στο
+ σύστημα τους. Τα προγράμματα που χρησιμοποιούν το
+ <application>LPD</application> για να εκτυπώσουν, κάνουν ακριβώς
+ την ίδια υπόθεση. Αν προσπαθείτε να εγκαταστήσετε έναν τέτοιο
+ εκτυπωτή και θέλετε να μπορείτε να τυπώνετε εργασίες στην γλώσσα
+ του εκτυπωτή αλλά <emphasis>και</emphasis> σε απλό κείμενο, σας
+ συνιστούμε να προσθέσετε ένα επιπλέον βήμα στην διαδικασία
+ εγκατάστασης που περιγράψαμε παραπάνω: Εγκαταστήστε ένα πρόγραμμα
+ αυτόματης μετατροπής από απλό κείμενο σε PostScript (ή σε άλλη
+ γλώσσα εκτυπωτή). Η ενότητα <link
+ linkend="printing-advanced-if-conversion">Συμβατότητα Εργασιών
+ Απλού Κειμένου σε εκτυπωτές &postscript;</link> εξηγεί πως να
+ ενεργήσετε.</para>
+
+ <sect4 id="printing-naming">
+ <title>Ονοματοδότηση Εκτυπωτή</title>
+
+ <para>Το πρώτο (εύκολο) βήμα είναι να επιλέξετε όνομα για τον
+ εκτυπωτή σας. Δεν έχει σημασία αν θα προτιμήσετε ένα λειτουργικό
+ ή κάποιο εξωτικό όνομα αφού μπορείτε επίσης να προσθέσετε και
+ μερικά παρωνύμια (aliases) για τον ίδιο εκτυπωτή.</para>
+
+ <para>Τουλάχιστον ένας από τους εκτυπωτές που αναφέρονται στο
+ <filename>/etc/printcap</filename> θα πρέπει να έχει το
+ παρωνύμιο <literal>lp</literal>. Αυτή είναι η ονομασία του
+ προεπιλεγμένου εκτυπωτή. Εάν οι χρήστες δεν έχουν την μεταβλητή
+ περιβάλλοντος <envar>PRINTER</envar> και δεν αναφέρουν κάποιο
+ όνομα εκτυπωτή στην γραμμή εντολών με οποιαδήποτε εντολή
+ <application>LPD</application>, τότε ο <literal>lp</literal> θα
+ είναι ο προεπιλεγμένος εκτυπωτής για τις εκτυπώσεις τους.</para>
+
+ <para>Επίσης, είναι κοινή πρακτική το τελευταίο alias του εκτυπωτή
+ να είναι μια πλήρης περιγραφή του εκτυπωτή, που να περιλαμβάνει
+ τον κατασκευαστή και το μοντέλο.</para>
+
+ <para>Αφού επιλέξετε μια ονομασία και μερικά συνήθη παρωνύμια,
+ καταχωρίστε τα στο αρχείο <filename>/etc/printcap</filename>.
+ Το όνομα του εκτυπωτή θα πρέπει να αναφέρεται πρώτο στο αριστερό
+ άκρο. Διαχωρίστε κάθε παρωνύμιο με μια κάθετη μπάρα και
+ τοποθετήστε μια άνω-κάτω τελεία μετά το τελευταίο
+ παρωνύμιο.</para>
+
+ <para>Στο ακόλουθο παράδειγμα, ξεκινάμε με ένα εντελώς βασικό
+ <filename>/etc/printcap</filename> που ορίζει δύο εκτυπωτές (έναν
+ εκτυπωτή γραμμής Diablo 630 και έναν εκτυπωτή &postscript; laser
+ Panasonic KX-P4455):</para>
+
+ <programlisting>#
+# /etc/printcap for host rose
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:</programlisting>
+
+ <para>Σε αυτό το παράδειγμα, ο πρώτος εκτυπωτής ονομάζεται
+ <literal>rattan</literal> και έχει ως παρωνύμια τα
+ <literal>line</literal>, <literal>diablo</literal>,
+ <literal>lp</literal>, και <literal>Diablo 630 Line
+ Printer</literal>. Από τη στιγμή που έχει το παρωνύμιο
+ <literal>lp</literal>, είναι και ο προεπιλεγμένος εκτυπωτής. Ο
+ δεύτερος ονομάζεται <literal>bamboo</literal>, και έχει ως
+ παρωνύμια τα <literal>ps</literal>, <literal>PS</literal>,
+ <literal>S</literal>, <literal>panasonic</literal>, και
+ <literal>Panasonic KX-P4455 PostScript v51.4</literal>.</para>
+ </sect4>
+
+ <sect4 id="printing-no-header-pages">
+ <title>Παρεμπόδιση Σελίδων Κεφαλίδας</title>
+ <indexterm>
+ <primary>printing</primary>
+ <secondary>header pages</secondary>
+ </indexterm>
+
+ <para>Το σύστημα παροχέτευσης <application>LPD</application>, από
+ προεπιλογή, εκτυπώνει μια <emphasis>σελίδα κεφαλίδας</emphasis>
+ για κάθε εργασία. Η σελίδα κεφαλίδας περιλαμβάνει το όνομα
+ χρήστη που αιτήθηκε την εργασία, τον υπολογιστή από τον οποίον
+ προήλθε η εργασία, και το όνομα της εργασίας, με μεγάλους όμορφους
+ χαρακτήρες. Δυστυχώς αυτό το πρόσθετο κείμενο ακολουθεί την
+ διαδικασία αποσφαλμάτωσης της εγκατάστασης ενός απλού εκτυπωτή,
+ επομένως θα παρεμποδίσουμε τις σελίδες κεφαλίδας.</para>
+
+ <para>Για την παρεμπόδιση των σελίδων κεφαλίδας, προσθέστε την
+ ικανότητα <literal>sh</literal> στην καταχώριση για τον εκτυπωτή
+ στο αρχείο <filename>/etc/printcap</filename>. Εδώ βλέπετε ένα
+ παράδειγμα του <filename>/etc/printcap</filename> με προσθήκη της
+ <literal>sh</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - no header pages anywhere
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:</programlisting>
+
+ <para>Παρατηρήστε πως χειριστήκαμε σωστά τη μορφή: η πρώτη
+ γραμμή ξεκινά στην αριστερή στήλη, και οι ακόλουθες γραμμές
+ είναι στοιχισμένες (indented). Κάθε γραμμή καταχώρισης (εκτός
+ από την τελευταία) τελειώνει με μια αριστερόστροφη κάθετο.</para>
+ </sect4>
+
+ <sect4 id="printing-spooldir">
+ <title>Δημιουργία Καταλόγου Παροχέτευσης</title>
+ <indexterm><primary>εκτυπωτής spool</primary></indexterm>
+ <indexterm><primary>εκτύπωση εργασίες</primary></indexterm>
+
+ <para>Το επόμενο βήμα στον απλό τρόπο εγκατάστασης είναι η
+ δημιουργία ενός
+ <emphasis>καταλόγου παροχέτευσης (spool)</emphasis>,
+ όπου θα φιλοξενούνται οι εργασίες εκτύπωσης έως ότου
+ να εκτυπωθούν και όπου επίσης φυλάσσονται και κάποια άλλα
+ βοηθητικά αρχεία του συστήματος εκτύπωσης.</para>
+
+ <para>Λόγω της μεταβαλλόμενης φύσης των καταλόγων παροχέτευσης,
+ συνηθίζεται να τοποθετούνται κάτω από τον κατάλογο
+ <filename class="directory">/var/spool</filename>. Δεν είναι
+ αναγκαίο να παίρνετε αντίγραφα ασφαλείας των καταλόγων
+ παροχέτευσης. Η επαναδημιουργία τους είναι τόσο απλή όσο να
+ τρέξουμε την εντολή &man.mkdir.1;.</para>
+
+ <para>Είναι επίσης συνηθισμένο να ονομάζεται ο κατάλογος με το ίδιο
+ όνομα με τον εκτυπωτή, όπως φαίνεται παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput><command>mkdir <filename class="directory">/var/spool/<replaceable>printer-name</replaceable></filename></command></userinput></screen>
+
+ <para>Ωστόσο, αν έχετε αρκετούς εκτυπωτές στο δίκτυο, ίσως
+ επιθυμείτε να τοποθετήσετε τους καταλόγους παροχέτευσης κάτω από
+ ένα μοναδικό κατάλογο που θα χρησιμοποιείται αποκλειστικά για
+ εκτυπώσεις με το <application>LPD</application>. Θα κάνουμε
+ ακριβώς αυτό για τα παραδείγματα μας με τους εκτυπωτές
+ <literal>rattan</literal> και <literal>bamboo</literal>:</para>
+
+ <screen>&prompt.root; <userinput><command>mkdir <filename class="directory">/var/spool/lpd</filename></command></userinput>
+&prompt.root; <userinput><command>mkdir <filename class="directory">/var/spool/lpd/rattan</filename></command></userinput>
+&prompt.root; <userinput><command>mkdir <filename class="directory">/var/spool/lpd/bamboo</filename></command></userinput></screen>
+
+ <note>
+ <para>Εάν οι εργασίες των χρηστών περιέχουν προσωπικά δεδομένα,
+ μπορεί να θέλετε να προστατέψετε τον κατάλογο παροχέτευσης με
+ κάποιο τρόπο, ώστε να μην είναι δημόσια προσβάσιμος. Οι
+ κατάλογοι παροχέτευσης θα πρέπει να ανήκουν και να είναι
+ αναγνώσιμοι, εγγράψιμοι και με δυνατότητα αναζήτησης από τον
+ χρήστη daemon και από την ομάδα daemon, από κανέναν άλλο. Για
+ τους εκτυπωτές του παραδείγματος:</para>
+
+ <screen>&prompt.root; <userinput><command>chown daemon:daemon <filename class="directory">/var/spool/lpd/rattan</filename></command></userinput>
+&prompt.root; <userinput><command>chown daemon:daemon <filename class="directory">/var/spool/lpd/bamboo</filename></command></userinput>
+&prompt.root; <userinput><command>chmod 770 <filename class="directory">/var/spool/lpd/rattan</filename></command></userinput>
+&prompt.root; <userinput><command>chmod 770 <filename class="directory">/var/spool/lpd/bamboo</filename></command></userinput></screen>
+ </note>
+
+ <para>Τέλος, πρέπει να ενημερώσετε το <application>LPD</application>
+ για αυτούς τους καταλόγους χρησιμοποιώντας το αρχείο
+ <filename>/etc/printcap</filename>. Προσδιορίστε την διαδρομή
+ του καταλόγου παροχέτευσης με την ικανότητα
+ <literal>sd</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - added spooling directories
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:</programlisting>
+
+ <para>Σημειώστε πως το όνομα του εκτυπωτή ξεκινά στην πρώτη στήλη,
+ ενώ όλες οι άλλες καταχωρίσεις που περιγράφουν τον εκτυπωτή θα
+ πρέπει να είναι στοιχισμένες και κάθε τέλος γραμμής να φέρει
+ χαρακτήρα διαφυγής με αριστερόστροφη κάθετο.</para>
+
+ <para>Εάν δεν προσδιορίσετε τον κατάλογο παροχέτευσης μέσω του
+ <literal>sd</literal>, τότε το σύστημα παροχέτευσης θα
+ χρησιμοποιήσει τον προεπιλεγμένο
+ <filename class="directory">/var/spool/lpd</filename>.</para>
+ </sect4>
+
+ <sect4 id="printing-device">
+ <title>Αναγνώριση της Συσκευής Εκτύπωσης</title>
+
+ <para>Στην ενότητα <link linkend="printing-hardware">Ρυθμίσεις
+ Hardware</link> αναγνωρίσαμε τη θύρα, και κατά συνέπεια την
+ καταχώριση του καταλόγου
+ <filename class="directory">/dev</filename> που θα
+ χρησιμοποιήσει το &os; για να επικοινωνήσει με τον εκτυπωτή.
+ Τώρα, θα δώσουμε στο <application>LPD</application> αυτή
+ την πληροφορία. Όταν το σύστημα παροχέτευσης έχει μια εργασία να
+ εκτυπώσει, θα ανοίξει αυτή την ειδική συσκευή για λογαριασμό του
+ προγράμματος φίλτρου (που είναι υπεύθυνο για το πέρασμα των
+ δεδομένων στον εκτυπωτή).</para>
+
+ <para>Προσδιορίστε την διαδρομή της καταχώρισης
+ <filename class="directory">/dev</filename> στο αρχείο
+ <filename>/etc/printcap</filename> χρησιμοποιώντας την ικανότητα
+ <literal>lp</literal>.</para>
+
+ <para>Στο τρέχον παράδειγμα μας, ας υποθέσουμε ότι ο
+ <literal>rattan</literal> είναι στην πρώτη παράλληλη θύρα, και ο
+ <literal>bamboo</literal> είναι στην έκτη σειριακή πόρτα. Οι νέες
+ καταχωρίσεις στο <filename>/etc/printcap</filename> θα
+ είναι:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - identified what devices to use
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:</programlisting>
+
+ <para>Αν δεν καθορίσετε σε κάποιον εκτυπωτή την ικανότητα
+ <literal>lp</literal> στο αρχείο
+ <filename>/etc/printcap</filename>, το
+ <application>LPD</application> χρησιμοποιεί από προεπιλογή
+ το <filename class="devicefile">/dev/lp</filename>.
+ Το <filename class="devicefile">/dev/lp</filename>
+ δεν υπάρχει την δεδομένη στιγμή στο &os;.</para>
+
+ <para>Εάν ο εκτυπωτής που εγκαθιστάτε είναι συνδεδεμένος σε
+ παράλληλη θύρα, διαβάστε απευθείας την ενότητα με τίτλο
+ <link linkend="printing-textfilter">Εγκατάσταση Φίλτρου
+ Κειμένου</link>. Διαφορετικά, ακολουθήστε προσεκτικά τις
+ οδηγίες που ακολουθούν στην επόμενη ενότητα.</para>
+ </sect4>
+
+ <sect4 id="printing-commparam">
+ <title>Ρυθμίσεις Παραμέτρων Επικοινωνίας του Spooler</title>
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>σειριακοί</secondary>
+ </indexterm>
+
+ <para>Για εκτυπωτές σε σειριακή πόρτα, το
+ <application>LPD</application> μπορεί να ρυθμίσει την
+ ταχύτητα σε bps, το parity, και άλλες παραμέτρους σειριακής
+ επικοινωνίας για λογαριασμό του προγράμματος φίλτρου που στέλνει
+ δεδομένα στον εκτυπωτή. Αυτό είναι πλεονέκτημα γιατί:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Σας επιτρέπει να δοκιμάσετε διάφορες παραμέτρους
+ επικοινωνίας προσθέτοντας τις απλά με επεξεργασία του αρχείου
+ <filename>/etc/printcap</filename>. Δεν χρειάζεται να
+ επαναμεταγλωττίσετε το πρόγραμμα φίλτρου.</para>
+ </listitem>
+
+ <listitem>
+ <para>Επιτρέπει στο σύστημα παροχέτευσης να χρησιμοποιεί το
+ ίδιο πρόγραμμα για πολλαπλούς εκτυπωτές, οι οποίοι μπορεί να
+ έχουν διαφορετικές σειριακές ρυθμίσεις επικοινωνίας.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οι ακόλουθες ικανότητες του
+ <filename>/etc/printcap</filename> ελέγχουν τις παραμέτρους
+ σειριακής επικοινωνίας των συσκευών που αναφέρονται στην
+ ικανότητα <literal>lp</literal>:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>
+ <literal>br#<replaceable>bps-rate</replaceable></literal>
+ </term>
+
+ <listitem>
+ <para>Ορίζει την ταχύτητα επικοινωνίας της συσκευής σε
+ <replaceable>bps-rate</replaceable>, όπου το
+ <replaceable>bps-rate</replaceable> μπορεί να είναι 50,
+ 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800,
+ 9600, 19200, 38400, 57600, ή 115200 bits-per-second.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>
+ <literal>ms#<replaceable>stty-mode</replaceable></literal>
+ </term>
+
+ <listitem>
+ <para>Ορίζει τις επιλογές της συσκευής τερματικού μετά το
+ άνοιγμα της συσκευής. Η &man.stty.1; εξηγεί τις διαθέσιμες
+ επιλογές.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Όταν το <application>LPD</application> ανοίγει την συσκευή
+ που ορίζεται από την ικανότητα <literal>lp</literal>, υιοθετεί τα
+ χαρακτηριστικά της συσκευής με ικανότητα <literal>ms#</literal>.
+ Έχουν ιδιαίτερο ενδιαφέρον οι καταστάσεις λειτουργίας
+ <literal>parenb</literal>, <literal>parodd</literal>,
+ <literal>cs5</literal>, <literal>cs6</literal>,
+ <literal>cs7</literal>, <literal>cs8</literal>,
+ <literal>cstopb</literal>, <literal>crtscts</literal>, και
+ <literal>ixon</literal>, που εξηγούνται στην σελίδα βοηθείας
+ &man.stty.1;.</para>
+
+ <para>Ας προσθέσουμε στο παράδειγμα μας έναν εκτυπωτή στην έκτη
+ σειριακή θύρα. Θα θέσουμε την ταχύτητα bps σε 38400. Για την
+ κατάσταση λειτουργίας θα θέσουμε , no parity με
+ <literal>-parenb</literal>, χαρακτήρες 8-bit με
+ <literal>cs8</literal>, no modem control με
+ <literal>clocal</literal> και έλεγχο ροής μέσω hardware με
+ <literal>crtscts</literal>:</para>
+
+ <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:</programlisting>
+ </sect4>
+
+ <sect4 id="printing-textfilter">
+ <title>Εγκατάσταση Φίλτρου Κειμένου</title>
+ <indexterm>
+ <primary>εκτύπωση</primary>
+ <secondary>φίλτρα</secondary>
+ </indexterm>
+
+ <para>Τώρα είμαστε έτοιμοι να πούμε στο
+ <application>LPD</application> ποιο φίλτρο κειμένου να
+ χρησιμοποιήσει για να στείλει εργασίες στον εκτυπωτή. Το φίλτρο
+ κειμένου, γνωστό και ως <emphasis>φίλτρο εισόδου</emphasis>,
+ είναι ένα πρόγραμμα που εκτελεί το <application>LPD</application>
+ όταν υπάρχει εργασία προς εκτύπωση. Όταν το
+ <application>LPD</application> εκτελεί το φίλτρο κειμένου για
+ κάποιον εκτυπωτή, θέτει την standard input του φίλτρου στην
+ εργασία εκτύπωσης, και την standard output στην συσκευή του
+ εκτυπωτή που ορίζεται με την ικανότητα <literal>lp</literal>.
+ Το φίλτρο αναμένεται να αναγνώσει την εργασία από την standard
+ input, να εκτελέσει όλες τις απαραίτητες μεταγλωττίσεις για τον
+ εκτυπωτή, και να γράψει το αποτέλεσμα στην standard output, το
+ οποίο και θα εκτυπωθεί. Για περισσότερες πληροφορίες για τα
+ φίλτρα κειμένου, δείτε την ενότητα
+ <link linkend="printing-advanced-filters">Φίλτρα</link>.</para>
+
+ <para>Για την απλή εγκατάσταση των εκτυπωτών μας, το φίλτρο κειμένου
+ μπορεί να είναι ένα μικρό shell script που απλά θα εκτελεί την
+ εντολή <command>/bin/cat</command> για να στέλνει εργασίες στον
+ εκτυπωτή. Το &os; έρχεται με άλλο ένα φίλτρο, το
+ <filename>lpf</filename> που χειρίζεται δυνατότητες backspacing
+ και υπογράμμισης για εκτυπωτές που ίσως να μην χειρίζονται σωστά
+ αυτές τις λειτουργίες. Και φυσικά, μπορείτε να χρησιμοποιήσετε
+ οποιοδήποτε άλλο πρόγραμμα φίλτρου επιθυμείτε. Το φίλτρο
+ <command>lpf</command> περιγράφεται λεπτομερώς στην ενότητα
+ <link linkend="printing-advanced-lpf">lpf: ένα Φίλτρο Κειμένου</link>.</para>
+
+ <para>Θα ξεκινήσουμε δημιουργώντας το shell script
+ <filename>/usr/local/libexec/if-simple</filename> σαν ένα απλό
+ φίλτρο κειμένου. Τοποθετήστε το ακόλουθο κείμενο στο αρχείο
+ χρησιμοποιώντας τον κειμενογράφο που προτιμάτε:</para>
+
+ <programlisting>#!/bin/sh
+#
+# if-simple - Simple text input filter for lpd
+# Installed in /usr/local/libexec/if-simple
+#
+# Simply copies stdin to stdout. Ignores all filter arguments.
+
+/bin/cat &amp;&amp; exit 0
+exit 2</programlisting>
+
+ <para>Κάντε το αρχείο εκτελέσιμο:</para>
+
+ <screen>&prompt.root; <userinput><command>chmod 555 <filename>/usr/local/libexec/if-simple</filename></command></userinput></screen>
+
+ <para>Και ενημερώστε το LPD να το χρησιμοποιήσει, ορίζοντας το με
+ την ικανότητα <literal>if</literal> στο αρχείο
+ <filename>/etc/printcap</filename>. Θα το προσθέσουμε στους δύο
+ εκτυπωτές από το προηγούμενο παράδειγμα στο
+ <filename>/etc/printcap</filename>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - added text filter
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:\
+ :if=<filename>/usr/local/libexec/if-simple</filename>:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:\
+ :if=<filename>/usr/local/libexec/if-simple</filename>:</programlisting>
+
+ <note>
+ <para>Μπορείτε να βρείτε ένα αντίγραφο του script
+ <filename>if-simple</filename> στον κατάλογο
+ <filename class="directory">/usr/share/examples/printing</filename>.</para>
+ </note>
+ </sect4>
+
+ <sect4>
+ <title>Ενεργοποίηση του <application>LPD</application></title>
+
+ <para>Το &man.lpd.8; εκτελείται από το
+ <filename>/etc/rc</filename>, και ελέγχεται από την μεταβλητή
+ <literal>lpd_enable</literal>. Η μεταβλητή αυτή έχει
+ προεπιλεγμένη τιμή <literal>NO</literal>. Αν δεν το έχετε κάνει
+ ακόμα, προσθέστε την ακόλουθη γραμμή:</para>
+
+ <programlisting>lpd_enable="YES"</programlisting>
+
+ <para>στο αρχείο <filename>/etc/rc.conf</filename>, και
+ επανεκκινήστε το σύστημα σας, ή απλά εκτελέστε το
+ &man.lpd.8;.</para>
+
+ <screen>&prompt.root; <userinput><command>lpd</command></userinput></screen>
+ </sect4>
+
+ <sect4 id="printing-trying">
+ <title>Δοκιμή του Spooler</title>
+
+ <para>Φτάσατε στο τέλος της απλής εγκατάστασης του
+ <application>LPD</application>. Θα αφήσουμε για αργότερα τα
+ συγχαρητήρια, αφού ακόμη θα πρέπει να ελέγξουμε την εγκατάσταση
+ και να διορθώσουμε οποιοδήποτε πρόβλημα έχει προκύψει. Για να
+ ελέγξετε την εγκατάσταση προσπαθήστε να εκτυπώσετε κάτι. Για να
+ εκτυπώσετε με το σύστημα <application>LPD</application>,
+ χρησιμοποιήστε την εντολή &man.lpr.1;, η οποία αποστέλλει μία
+ εργασία προς εκτύπωση.</para>
+
+ <para>Μπορείτε να συνδυάσετε την &man.lpr.1; με το πρόγραμμα
+ &man.lptest.1;, για το οποίο κάναμε μια εισαγωγή στην ενότητα
+ <link linkend="printing-testing">Έλεγχος Επικοινωνίας του
+ Εκτυπωτή</link>, για τον έλεγχο κειμένου.</para>
+
+ <para><emphasis>Για τον έλεγχο μιας απλής εγκατάστασης
+ <application>LPD</application>:</emphasis></para>
+
+ <para>Πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput><command>lptest 20 5 | lpr <option>-P</option><replaceable>printer-name</replaceable></command></userinput></screen>
+
+ <para>Όπου <replaceable>printer-name</replaceable> είναι το όνομα
+ ενός εκτυπωτή (ή το alias) που αναφέρεται στο
+ <filename>/etc/printcap</filename>. Για να ελέγξετε τον
+ προεπιλεγμένο εκτυπωτή, πληκτρολογήστε &man.lpr.1; χωρίς το
+ πρόθεμα <option>-P</option>. Αν ο εκτυπωτής σας χρησιμοποιεί
+ &postscript;, πρέπει να στείλετε ένα πρόγραμμα &postscript;,
+ αντί να χρησιμοποιήσετε το &man.lptest.1;. Για να τα καταφέρετε,
+ τοποθετήστε το πρόγραμμα σε ένα αρχείο και πληκτρολογήστε
+ <command>lpr <replaceable>file</replaceable></command>.</para>
+
+ <para>Σε έναν εκτυπωτή &postscript;, η εκτύπωση θα είναι το
+ αποτέλεσμα του προγράμματος που στείλατε. Αν χρησιμοποιείτε το
+ &man.lptest.1;, τότε το αποτέλεσμα θα μοιάζει με το
+ ακόλουθο:</para>
+
+ <screen>!"#$%&amp;'()*+,-./01234
+"#$%&amp;'()*+,-./012345
+#$%&amp;'()*+,-./0123456
+$%&amp;'()*+,-./01234567
+%&amp;'()*+,-./012345678</screen>
+
+ <para>Για περαιτέρω έλεγχο του εκτυπωτή, δοκιμάστε να κατεβάσετε
+ μεγαλύτερα προγράμματα (για εκτυπωτές που χρησιμοποιούν γλώσσα
+ προγραμματισμού) ή τρέξτε το &man.lptest.1; με διαφορετικά
+ προθέματα. Για παράδειγμα, η εντολή
+ <command>lptest 80 60</command> θα παράγει 60 γραμμές των 80
+ χαρακτήρων η καθεμία.</para>
+
+ <para>Αν ο εκτυπωτής δεν δουλεύει, δείτε την ενότητα <link
+ linkend="printing-troubleshooting">Εντοπισμός Βλαβών</link>.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-advanced">
+ <title>Ρυθμίσεις Εκτυπωτών για Προχωρημένους</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών για τις
+ σειριακές θύρες μετονομάστηκαν από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την
+ τεκμηρίωση που ακολουθεί με βάση αυτές τις αλλαγές.</para>
+ </warning>
+
+ <para>Αυτή η ενότητα περιγράφει φίλτρα για την εκτύπωση ειδικής μορφής
+ αρχείων, σελίδων κεφαλίδας, για εκτυπώσεις μέσω δικτύου, καθώς και για
+ τον έλεγχο πρόσβασης και την καταμέτρηση χρήσης των εκτυπωτών.</para>
+
+ <sect2 id="printing-advanced-filter-intro">
+ <title>Φίλτρα</title>
+ <indexterm>
+ <primary>εκτύπωση</primary>
+ <secondary>φίλτρα</secondary>
+ </indexterm>
+
+ <para>Αν και το <application>LPD</application> μπορεί να χειριστεί
+ πρωτόκολλα δικτύων, λίστες αναμονής, έλεγχο πρόσβασης, και άλλες
+ παραμέτρους των εκτυπώσεων, το κύριο μέρος της
+ <emphasis>πραγματικής</emphasis> εργασίας γίνεται με τα
+ <emphasis>φίλτρα</emphasis>. Τα φίλτρα είναι προγράμματα που
+ επικοινωνούν με τον εκτυπωτή και χειρίζονται τις εξαρτήσεις της
+ συσκευής και άλλες ειδικές απαιτήσεις της. Στην απλή εγκατάσταση
+ εκτυπωτή, εγκαταστήσαμε ένα φίλτρο απλού κειμένου ιδιαίτερα
+ απλής μορφής, που θα πρέπει να δουλεύει με τους περισσότερους
+ εκτυπωτές (ενότητα <link
+ linkend="printing-textfilter">Εγκατάσταση Φίλτρου Κειμένου</link>).</para>
+
+ <para>Ωστόσο, για να μπορέσετε να εκμεταλλευτείτε τις δυνατότητες
+ μετατροπών μορφής, ελέγχου πρόσβασης και καταμέτρησης, και τυχόν
+ ειδικές δυνατότητες του εκτυπωτή σας, θα πρέπει να καταλάβετε πως
+ δουλεύουν τα φίλτρα. Σε τελική ανάλυση, θα είναι ευθύνη των φίλτρων
+ να χειρίζονται όλες αυτές τις παραμέτρους. Τα κακά νέα είναι πως τις
+ περισσότερες φορές θα πρέπει να παρέχετε
+ <emphasis>εσείς οι ίδιοι </emphasis> τα φίλτρα σας. Τα καλά νέα είναι
+ πως γενικώς υπάρχουν αρκετά διαθέσιμα, και αν δεν υπάρχουν, είναι
+ σχετικά εύκολο να τα γράψετε.</para>
+
+ <para>Επίσης, το &os; διατίθεται με ένα φίλτρο, το
+ <filename>/usr/libexec/lpr/lpf</filename>, που δουλεύει με πολλούς
+ εκτυπωτές που μπορούν να εκτυπώσουν απλό κείμενο. (Χειρίζεται
+ backspacing και tabs στο αρχείο, και κάνει καταμέτρηση, αλλά
+ τίποτα περισσότερο.) Υπάρχουν, επίσης, διάφορα άλλα φίλτρα και
+ συστατικά τους στην Συλλογή των Ports του &os;.</para>
+
+ <para>Σε αυτή την ενότητα θα βρείτε: :</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Η ενότητα <link linkend="printing-advanced-filters">Πως
+ δουλεύουν τα Φίλτρα</link>, προσπαθεί να δώσει μια γενική άποψη
+ για τις αρμοδιότητες των φίλτρων στις διεργασίες εκτύπωσης. Θα
+ πρέπει να διαβάσετε αυτή την ενότητα για να μπορείτε να καταλάβετε
+ τι <quote>πραγματικά</quote> συμβαίνει όταν το
+ <application>LPD</application> χρησιμοποιεί φίλτρα. Αυτές οι
+ γνώσεις θα σας βοηθήσουν να προλαμβάνετε και να αποσφαλματώνετε
+ προβλήματα που μπορούν να συμβούν καθώς εγκαθιστάτε όλο και
+ περισσότερα φίλτρα σε κάθε εκτυπωτή σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <application>LPD</application> αναμένει πως κάθε
+ εκτυπωτής είναι ικανός, από προεπιλογή, να εκτυπώσει απλό
+ κείμενο. Αυτό όμως είναι πρόβλημα για εκτυπωτές &postscript;
+ (ή άλλους που βασίζονται σε γλώσσες προγραμματισμού) οι οποίοι
+ δεν μπορούν να εκτυπώσουν άμεσα απλό κείμενο. Η ενότητα <link
+ linkend="printing-advanced-if-conversion">Συμβατότητα Εργασιών
+ Απλού Κειμένου σε εκτυπωτές &postscript;</link> σας εξηγεί τι θα
+ πρέπει να κάνετε για να ξεπεράσετε αυτό το πρόβλημα. Θα πρέπει
+ να διαβάσετε αυτή την ενότητα αν έχετε εκτυπωτή
+ &postscript;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το &postscript; είναι δημοφιλής μορφή εξόδου για πολλά
+ προγράμματα. Μερικοί άνθρωποι προτιμούν και να γράφουν κατευθείαν
+ σε κώδικα &postscript;. Δυστυχώς, οι εκτυπωτές &postscript;
+ έχουν μεγάλο κόστος. Η ενότητα <link
+ linkend="printing-advanced-ps">Προσομοίωση &postscript; για
+ εκτυπωτές που δεν το υποστηρίζουν</link> εξηγεί λεπτομερώς πως
+ να μετατρέψετε ένα φίλτρο κειμένου για εκτυπωτές ώστε να λαμβάνει
+ και να τυπώνει δεδομένα &postscript; σε εκτυπωτές που
+ <emphasis>δεν είναι &postscript;</emphasis>. Θα πρέπει να
+ διαβάσετε αυτήν την ενότητα αν είστε κάτοχος εκτυπωτή που δεν
+ υποστηρίζει &postscript;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η ενότητα <link
+ linkend="printing-advanced-convfilters">Φίλτρα Μετατροπής</link>
+ περιγράφει μια αυτοματοποιημένη διαδικασία για την μετατροπή
+ αρχείων ειδικής μορφής, όπως δεδομένα γραφικών ή στοιχειοθεσίας,
+ σε μια μορφή κατανοητή από τον εκτυπωτή σας. Μετά την ανάγνωση
+ αυτής της ενότητας, θα πρέπει να είστε σε θέση να ρυθμίσετε τους
+ εκτυπωτές σας με τέτοιο τρόπο ώστε πληκτρολογώντας
+ <command>lpr <option>-t</option></command> οι χρήστες σας να
+ μπορούν να εκτυπώσουν δεδομένα troff, ή με
+ <command>lpr <option>-d</option></command> δεδομένα &tex;
+ DVI, ή με <command>lpr <option>-v</option></command> να
+ εκτυπώνουν εικόνες δεδομένων ράστερ, και ούτω καθεξής. Σας
+ συμβουλεύουμε να διαβάσετε αυτή την ενότητα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η ενότητα <link linkend="printing-advanced-of">Φίλτρα
+ Εξόδου</link> περιγράφει ένα χαρακτηριστικό του
+ <application>LPD</application> που δεν χρησιμοποιείται συχνά: τα
+ φίλτρα εξόδου. Μπορείτε να προσπεράσετε αυτή την ενότητα, εκτός
+ αν τυπώνετε σελίδες κεφαλίδας (δείτε τις <link
+ linkend="printing-advanced-header-pages">Σελίδες Κεφαλίδας</link>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Η ενότητα <link linkend="printing-advanced-lpf">lpf: ένα
+ Φίλτρο Κειμένου</link> περιγράφει το <command>lpf</command>, ένα
+ πραγματικά πλήρες, αν και απλό, φίλτρο κειμένου για εκτυπωτές
+ γραμμής (και εκτυπωτές laser που μπορούν να λειτουργήσουν και ως
+ εκτυπωτές γραμμής) που περιέχεται στο &os;. Αν χρειάζεστε ένα
+ γρήγορο τρόπο για να κάνετε την καταμέτρηση σελίδων να δουλεύει
+ σε απλό κείμενο, ή αν έχετε κάποιον εκτυπωτή που βγάζει καπνούς
+ όταν βλέπει χαρακτήρες backspace, θα πρέπει οπωσδήποτε να
+ εξετάσετε την περίπτωση του <command>lpf</command>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Μπορείτε να βρείτε αντίγραφο των διάφορων scripts που
+ αναφέρονται παρακάτω, στον κατάλογο <filename
+ class="directory">/usr/share/examples/printing</filename>.</para>
+ </note>
+
+ <sect3 id="printing-advanced-filters">
+ <title>Πως Δουλεύουν τα Φίλτρα</title>
+
+ <para>Όπως αναφέραμε προηγουμένως, φίλτρο είναι ένα εκτελέσιμο
+ πρόγραμμα που ενεργοποιείται από το <application>LPD</application>
+ για να χειρίζεται το τμήμα της επικοινωνίας με τον εκτυπωτή που
+ εξαρτάται από τον τύπο της ίδιας της συσκευής.</para>
+
+ <para>Όταν το <application>LPD</application> θέλει να εκτυπώσει ένα
+ αρχείο μιας εργασίας, ξεκινά το πρόγραμμα του φίλτρου. Θέτει ως
+ standard input του φίλτρου το αρχείο που πρέπει να εκτυπωθεί, ως
+ standard output τον ίδιο τον εκτυπωτή και ως standard error το
+ αρχείο αναφοράς σφαλμάτων (αναφέρεται στην ικανότητα
+ <literal>lf</literal> του <filename>/etc/printcap</filename>, ή από
+ προεπιλογή το <filename class="devicefile">/dev/console</filename>).</para>
+
+ <indexterm>
+ <primary><command>troff</command></primary>
+ </indexterm>
+ <para>Το φίλτρο που θα ξεκινήσει το <application>LPD</application>
+ καθώς και οι παράμετροι του φίλτρου, εξαρτώνται από το τι έχετε
+ δηλώσει στο αρχείο <filename>/etc/printcap</filename> και από το τι
+ παραμέτρους έχει καθορίσει ο ίδιος ο χρήστης για την εργασία με
+ την γραμμή εντολής &man.lpr.1;. Για παράδειγμα, αν ο χρήστης
+ πληκτρολογήσει <command>lpr <option>-t</option></command>, το
+ <application>LPD</application> θα ξεκινήσει το φίλτρο troff, που
+ υποδηλώνεται με την ικανότητα <literal>tf</literal> για τον
+ εκτυπωτή προορισμού. Αν ο χρήστης επιθυμεί να εκτυπώσει απλό
+ κείμενο, θα ξεκινήσει το φίλτρο <literal>if</literal>
+ (αυτό πράγματι ισχύει τις περισσότερες φορές: δείτε τα <link
+ linkend="printing-advanced-of">Φίλτρα Εξόδου</link> για
+ λεπτομέρειες).</para>
+
+ <para>Υπάρχουν τρεις τύποι φίλτρων που μπορείτε να προσδιορίσετε στο
+ <filename>/etc/printcap</filename>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το <emphasis>φίλτρο κειμένου</emphasis>, επονομαζόμενο και
+ ως <emphasis>φίλτρο εισόδου</emphasis> στην τεκμηρίωση του
+ <application>LPD</application>, χειρίζεται εκτυπώσεις κανονικού
+ κειμένου. Θεωρήστε το ως το προεπιλεγμένο φίλτρο. Το
+ <application>LPD</application> αναμένει πως όλοι οι εκτυπωτές,
+ από προεπιλογή, είναι σε θέση να εκτυπώσουν απλό κείμενο, και
+ είναι δουλειά του φίλτρου κειμένου να βεβαιωθεί ότι τα
+ backspaces, τα tabs, και όλοι οι άλλοι ειδικοί χαρακτήρες
+ δεν πρόκειται να προβληματίσουν τον εκτυπωτή. Εάν βρίσκεστε σε
+ ένα περιβάλλον όπου θα πρέπει να καταμετρήσετε την χρήση των
+ εκτυπωτών, το φίλτρο κειμένου θα πρέπει επίσης να καταμετρήσει
+ τις εκτυπωμένες σελίδες, συνήθως μετρώντας τον αριθμό των
+ εκτυπωμένων γραμμών και συγκρίνοντας τον με τον αριθμό των
+ γραμμών που υποστηρίζει ο εκτυπωτής ανά σελίδα. Το φίλτρο
+ κειμένου ξεκινά με την ακόλουθη λίστα παραμέτρων:
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg>-c</arg>
+ <arg choice="plain">-w<replaceable>width</replaceable></arg>
+ <arg choice="plain">-l<replaceable>length</replaceable></arg>
+ <arg choice="plain">-i<replaceable>indent</replaceable></arg>
+ <arg choice="plain">-n <replaceable>login</replaceable></arg>
+ <arg choice="plain">-h <replaceable>host</replaceable></arg>
+ <arg choice="plain"><replaceable>acct-file</replaceable></arg>
+ </cmdsynopsis>
+
+ όπου
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>εμφανίζεται αν η εργασία έχει αποσταλεί με
+ <command>lpr <option>-l</option></command></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>width</replaceable></term>
+
+ <listitem>
+ <para>είναι η τιμή από την ικανότητα <literal>pw</literal>
+ (πλάτος σελίδας - page width) όπως προσδιορίζεται στο
+ <filename>/etc/printcap</filename>, με προεπιλεγμένη
+ τιμή το 132</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>length</replaceable></term>
+
+ <listitem>
+ <para>είναι η τιμή από την ικανότητα <literal>pl</literal>
+ (μήκος σελίδας - page length), με προεπιλεγμένη τιμή
+ το 66</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>indent</replaceable></term>
+
+ <listitem>
+ <para>είναι το μέγεθος της εσοχής (indentation) από το
+ <command>lpr <option>-i</option></command>, με
+ προεπιλεγμένη τιμή 0</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>login</replaceable></term>
+
+ <listitem>
+ <para>είναι το καταγεγραμμένο όνομα χρήστη που εκτυπώνει
+ το αρχείο</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>host</replaceable></term>
+
+ <listitem>
+ <para>είναι το όνομα του υπολογιστή από τον οποίο
+ στάλθηκε η εργασία</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>acct-file</replaceable></term>
+
+ <listitem>
+ <para>είναι το όνομα του αρχείου καταμέτρησης από την
+ ικανότητα <literal>af</literal>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </para>
+ </listitem>
+
+ <indexterm>
+ <primary>εκτυπώσεις</primary>
+ <secondary>φίλτρα</secondary>
+ </indexterm>
+ <listitem>
+ <para>Ένα <emphasis>φίλτρο μετατροπής</emphasis> μετατρέπει ένα
+ αρχείο ειδικής μορφής σε ένα τύπο αρχείου κατάλληλο για εκτύπωση
+ από τον συγκεκριμένο εκτυπωτή. Για παράδειγμα, τα δεδομένα
+ στοιχειοθεσίας ditroff δεν μπορούν να εκτυπωθούν κατευθείαν,
+ αλλά μπορείτε να εγκαταστήσετε ένα φίλτρο μετατροπής αρχείων
+ ditroff, ώστε να μετατρέψετε τα δεδομένα ditroff σε μια
+ μορφή που ο εκτυπωτής να μπορεί να αφομοιώσει και να τυπώσει.
+ Θα μάθετε περισσότερα στην ενότητα <link
+ linkend="printing-advanced-convfilters">Φϊλτρα Μετατροπής</link>.
+ Τα φίλτρα μετατροπής επίσης χρειάζονται για να κάνετε
+ αρίθμηση/καταμέτρηση, αν χρειάζεστε καταμέτρηση των εκτυπώσεων
+ σας. Τα φίλτρα μετατροπής ξεκινούν με τις ακόλουθες
+ παραμέτρους:
+
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg choice="plain">-x<replaceable>pixel-width</replaceable></arg>
+ <arg choice="plain">-y<replaceable>pixel-height</replaceable></arg>
+ <arg choice="plain">-n <replaceable>login</replaceable></arg>
+ <arg choice="plain">-h <replaceable>host</replaceable></arg>
+ <arg choice="plain"><replaceable>acct-file</replaceable></arg>
+ </cmdsynopsis>
+
+ όπου <replaceable>pixel-width</replaceable> είναι η τιμή από την
+ ικανότητα <literal>px</literal> (προεπιλεγμένη τιμή 0) και
+ <replaceable>pixel-height</replaceable> είναι η τιμή από την
+ ικανότητα <literal>py</literal> (προεπιλεγμένη τιμή 0).</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <emphasis>φίλτρο εξόδου</emphasis> χρησιμοποιείται μόνον
+ αν δεν υπάρχει φίλτρο κειμένου, ή αν είναι ενεργοποιημένες οι
+ σελίδες κεφαλίδας. Διαβάστε τη σχετική ενότητα <link
+ linkend="printing-advanced-of">Φίλτρα Εξόδου</link>, αν και
+ από την εμπειρία μας μπορούμε να σας πούμε ότι χρησιμοποιούνται
+ σπάνια. Υπάρχουν μόνο δύο παράμετροι για τα φίλτρα εξόδου:
+
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg choice="plain">-w<replaceable>width</replaceable></arg>
+ <arg choice="plain">-l<replaceable>length</replaceable></arg>
+ </cmdsynopsis>
+
+ οι οποίες είναι πανομοιότυπες με τις παραμέτρους
+ <option>-w</option> και <option>-l</option> των φίλτρων
+ κειμένου.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Τα φίλτρα θα πρέπει επίσης να <emphasis>τερματίζουν</emphasis>
+ με κάποια από τις ακόλουθες καταστάσεις εξόδου:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>exit 0</term>
+
+ <listitem>
+ <para>Αν το φίλτρο τύπωσε επιτυχώς το αρχείο.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>exit 1</term>
+
+ <listitem>
+ <para>Αν το φίλτρο απέτυχε να τυπώσει το αρχείο, αλλά θέλει το
+ <application>LPD</application> να προσπαθήσει να εκτυπώσει
+ το αρχείο ξανά. Το <application>LPD</application> θα
+ ξεκινήσει ξανά το φίλτρο αν γίνει έξοδος με αυτή την
+ κατάσταση.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>exit 2</term>
+
+ <listitem>
+ <para>Αν το φίλτρο απέτυχε να εκτυπώσει το αρχείο και δεν θέλει
+ το <application>LPD</application> να προσπαθήσει ξανά. Το
+ <application>LPD</application> θα απορρίψει το αρχείο.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Το φίλτρο κειμένου που έρχεται με την κανονική έκδοση του
+ &os;, <filename>/usr/libexec/lpr/lpf</filename>, εκμεταλλεύεται τις
+ παραμέτρους πλάτους και μήκους σελίδας για να προσδιορίσει πότε να
+ αποστείλει το form feed και πως να κάνει καταμέτρηση. Χρησιμοποιεί
+ τις παραμέτρους για login, host, και αρχείου καταμέτρησης για να
+ δημιουργήσει τις σχετικές εγγραφές καταμέτρησης.</para>
+
+ <para>Αν είστε στη διαδικασία επιλογής φίλτρων, ελέγξτε αν είναι
+ συμβατά με το <application>LPD</application>. Αν είναι συμβατά,
+ τότε πρέπει να υποστηρίζουν την λίστα παραμέτρων που περιγράψαμε
+ προηγουμένως. Αν σχεδιάζετε να γράψατε τα δικά σας φίλτρα γενικής
+ χρήσης, τότε πρέπει να τα κάνετε να υποστηρίζουν την ίδια λίστα
+ παραμέτρων και κωδικών εξόδου.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-if-conversion">
+ <title>Συμβατότητα Εργασιών Απλού Κειμένου σε Εκτυπωτές
+ &postscript;</title>
+ <indexterm><primary>εκτύπωση εργασιών</primary></indexterm>
+
+ <para>Αν είστε ο μοναδικός χρήστης του Η/Υ σας και του εκτυπωτή
+ &postscript; (ή άλλης γλώσσας εκτυπωτών), και είστε σίγουροι πως δεν
+ πρόκειται να στείλετε ποτέ εκτυπώσεις απλού κειμένου στον εκτυπωτή
+ σας και πως δεν θα χρησιμοποιήσετε τις υπηρεσίες των διαφόρων
+ προγραμμάτων σας που θα θελήσουν να στείλουν απλό κείμενο στον
+ εκτυπωτή σας, τότε δεν χρειάζεται να ασχοληθείτε καθόλου με αυτή την
+ ενότητα.</para>
+
+ <para>Αλλά, αν επιθυμείτε να στείλετε τόσο εργασίες &postscript; όσο
+ και απλού κειμένου στον εκτυπωτή σας, τότε σας προτρέπουμε να
+ προσθέσετε κάποιες ρυθμίσεις στην εγκατάσταση σας. Για να γίνει
+ αυτό, θα πρέπει το φίλτρο κειμένου να ανιχνεύει αν η τρέχουσα
+ εργασία είναι απλό κείμενο ή &postscript;. Όλες οι εργασίες
+ &postscript; πρέπει να ξεκινούν με <literal>%!</literal>
+ (αν ο εκτυπωτής σας χρησιμοποιεί άλλη γλώσσα, συμβουλευθείτε
+ την τεκμηρίωση του). Αν είναι αυτοί οι πρώτοι δύο χαρακτήρες, τότε
+ έχουμε &postscript;, και η υπόλοιπη εργασία μπορεί να σταλεί
+ απευθείας στον εκτυπωτή. Αν δεν είναι αυτοί οι πρώτοι δύο
+ χαρακτήρες, τότε το φίλτρο θα μετατρέψει το κείμενο σε &postscript;
+ και θα τυπώσει το αποτέλεσμα.</para>
+
+ <para>Πως γίνεται αυτό;</para>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>σειριακοί</secondary>
+ </indexterm>
+ <para>Αν είστε κάτοχος σειριακού εκτυπωτή, ένας καλός τρόπος για
+ να γίνει αυτό εφικτό είναι να εγκαταστήσετε το
+ <command>lprps</command>. Το <command>lprps</command> είναι ένα
+ φίλτρο εκτύπωσης &postscript; που επικοινωνεί αμφίδρομα με τον
+ εκτυπωτή. Ενημερώνει το αρχείο κατάστασης του εκτυπωτή με
+ αναλυτικές πληροφορίες, ώστε οι χρήστες και οι διαχειριστές να
+ μπορούν να δουν επακριβώς ποια είναι η κατάσταση του εκτυπωτή
+ (όπως <errorname>χαμηλή στάθμη toner</errorname> ή
+ <errorname>πρόβλημα χαρτιού</errorname>). Ακόμη πιο σημαντικό
+ είναι πως περιέχει το πρόγραμμα <command>psif</command> που
+ ανιχνεύει αν η εισερχόμενη εργασία είναι απλού κειμένου και καλεί το
+ <command>textps</command> (ένα άλλο πρόγραμμα που περιέχεται στο
+ <command>lprps</command>) να το μετατρέψει σε &postscript;. Τέλος
+ χρησιμοποιείται το <command>lprps</command> για να αποστείλει την
+ εργασία στον εκτυπωτή.</para>
+
+ <para>Το <command>lprps</command> είναι μέρος της Συλλογής των Ports
+ του &os; (δείτε <link linkend="ports">Η Συλλογή των Ports</link>).
+ Φυσικά, μπορείτε να το κατεβάσετε, να το μεταγλωττίσετε και να το
+ εγκαταστήσετε μόνοι σας. Μετά την εγκατάσταση του
+ <command>lprps</command>, απλά προσδιορίστε τη διαδρομή προς το
+ πρόγραμμα <command>psif</command> που είναι μέρος του
+ <command>lprps</command>. Αν εγκαταστήσατε το
+ <command>lprps</command> από την Συλλογή των Ports, τότε για τον
+ σειριακό σας εκτυπωτή &postscript; χρησιμοποιήστε την ακόλουθη
+ καταχώριση στο αρχείο <filename>/etc/printcap</filename>:</para>
+
+ <programlisting>:if=<filename>/usr/local/libexec/psif</filename>:</programlisting>
+
+ <para>Θα πρέπει επίσης να καθορίσετε την ικανότητα
+ <literal>rw</literal> η οποία ορίζει ότι το
+ <application>LPD</application> θα χειρίζεται τον εκτυπωτή σε
+ κατάσταση ανάγνωσης και εγγραφής.</para>
+
+ <para>Αν έχετε παράλληλο εκτυπωτή &postscript; (και για το λόγο αυτό
+ δεν μπορείτε να χρησιμοποιήσετε αμφίδρομη επικοινωνία με τον
+ εκτυπωτή, όπως απαιτείται από το <command>lprps</command>), μπορείτε
+ να χρησιμοποιήσετε το ακόλουθο shell script ως φίλτρο
+ κειμένου:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psif - Print PostScript or plain text on a PostScript printer
+# Script version; NOT the version that comes with lprps
+# Installed in /usr/local/libexec/psif
+#
+
+IFS="" read -r first_line
+first_two_chars=`expr "$first_line" : '\(..\)'`
+
+if [ "$first_two_chars" = "%!" ]; then
+ #
+ # PostScript job, print it.
+ #
+ echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\004" &amp;&amp; exit 0
+ exit 2
+else
+ #
+ # Plain text, convert it, then print it.
+ #
+ ( echo "$first_line"; cat ) | /usr/local/bin/textps &amp;&amp; printf "\004" &amp;&amp; exit 0
+ exit 2
+fi</programlisting>
+
+ <para>Στο παραπάνω script, το <command>textps</command> είναι ένα
+ πρόγραμμα που εγκαταστήσαμε ξεχωριστά για να μετατρέπουμε απλό
+ κείμενο σε &postscript;. Μπορείτε να χρησιμοποιείτε οποιοδήποτε
+ πρόγραμμα μετατροπής από κείμενο- σε-&postscript;. Η Συλλογή των
+ Ports (δείτε <link linkend="ports">Η Συλλογή των Ports</link>)
+ περιέχει επίσης ένα πλήρες πρόγραμμα μετατροπής
+ από κείμενο σε &postscript;, το <literal>a2ps</literal> που ίσως
+ επιθυμείτε να διερευνήσετε.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-ps">
+ <title>Προσομοίωση &postscript; για Εκτυπωτές που δεν το
+ Υποστηρίζουν</title>
+
+ <indexterm>
+ <primary>PostScript</primary>
+ <secondary>προσομοίωση</secondary>
+ </indexterm>
+
+ <indexterm><primary>Ghostscript</primary></indexterm>
+ <para>Το &postscript; είναι το <emphasis>de facto</emphasis> πρότυπο
+ για στοιχειοθεσία και εκτύπωση υψηλής ποιότητας. Ωστόσο, το
+ &postscript; είναι κάπως <emphasis>δαπανηρό</emphasis> πρότυπο.
+ Ευτυχώς, η Aladdin Enterprises παρέχει ένα παρεμφερές ελεύθερο
+ &postscript; που ονομάζεται <application>Ghostscript</application>
+ και δουλεύει άψογα στο &os;. Το Ghostscript διαβάζει τα περισσότερα
+ αρχεία &postscript; και μπορεί να αποδώσει τις σελίδες τους σε
+ μεγάλη γκάμα συσκευών, συμπεριλαμβάνοντας πολλούς τύπους εκτυπωτών
+ που δεν υποστηρίζουν &postscript;. Εγκαθιστώντας το
+ <application>Ghostscript</application> και χρησιμοποιώντας ένα
+ ειδικό φίλτρο κειμένου για τον εκτυπωτή σας, μπορείτε να κάνετε τον
+ κοινό εκτυπωτή σας να λειτουργεί σαν ένας πραγματικός εκτυπωτής
+ &postscript;.</para>
+
+ <para>Το <application>Ghostscript</application> βρίσκεται στην
+ Συλλογή των Ports του &os;, και μάλιστα σε πολλές εκδόσεις. Η πιο
+ διαδεδομένη είναι το <filename
+ role="package">print/ghostscript-gpl</filename>.</para>
+
+ <para>Για να κάνετε προσομοίωση &postscript;, πρέπει το φίλτρο
+ κειμένου να ανιχνεύσει αν εκτυπώνετε αρχείο &postscript;. Εάν όχι,
+ τότε το φίλτρο θα περάσει το αρχείο κατευθείαν στον εκτυπωτή.
+ Διαφορετικά, θα χρησιμοποιήσει το
+ <application>Ghostscript</application> για να μετατρέψει
+ αρχικά το αρχείο σε ένα τύπο που θα καταλαβαίνει ο εκτυπωτής.</para>
+
+ <para>Ιδού ένα παράδειγμα: το ακόλουθο script είναι ένα φίλτρο
+ κειμένου για εκτυπωτές Hewlett Packard DeskJet 500. Για άλλους
+ εκτυπωτές, αντικαταστήστε το όρισμα <option>-sDEVICE</option> στην
+ εντολή <command>gs</command>
+ (<application>Ghostscript</application>). (Πληκτρολογήστε
+ <command>gs <option>-h</option></command> για να δείτε την λίστα
+ συσκευών που υποστηρίζει η τρέχουσα εγκατάσταση του
+ <application>Ghostscript.</application>)</para>
+
+ <programlisting>#!/bin/sh
+#
+# ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500
+# Installed in /usr/local/libexec/ifhp
+
+#
+# Treat LF as CR+LF (to avoid the "staircase effect" on HP/PCL
+# printers):
+#
+printf "\033&amp;k2G" || exit 2
+
+#
+# Read first two characters of the file
+#
+IFS="" read -r first_line
+first_two_chars=`expr "$first_line" : '\(..\)'`
+
+if [ "$first_two_chars" = "%!" ]; then
+ #
+ # It is PostScript; use Ghostscript to scan-convert and print it.
+ #
+ /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
+ -sOutputFile=- - &amp;&amp; exit 0
+else
+ #
+ # Plain text or HP/PCL, so just print it directly; print a form feed
+ # at the end to eject the last page.
+ #
+ echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
+exit 0
+fi
+
+exit 2</programlisting>
+
+ <para>Τέλος, χρειάζεται να ενημερώσετε το
+ <application>LPD</application> για το φίλτρο με την ικανότητα
+ <literal>if</literal>:</para>
+
+ <programlisting>:if=<filename>/usr/local/libexec/ifhp</filename>:</programlisting>
+
+ <para>Αυτό είναι όλο. Μπορείτε να πληκτρολογήσετε
+ <command>lpr <filename><replaceable>plain.text</replaceable></filename></command> και
+ <command>lpr <filename><replaceable>whatever.ps</replaceable></filename></command> και τα δύο θα εκτυπωθούν επιτυχώς.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-convfilters">
+ <title>Φίλτρα Μετατροπής</title>
+
+ <para>Το επόμενο βήμα μετά την ολοκλήρωση της απλής εγκατάστασης που
+ περιγράψαμε στις <link linkend="printing-simple">Βασικές Ρυθμίσεις
+ Εκτυπωτών</link>, είναι συνήθως η εγκατάσταση φίλτρων μετατροπής
+ για τους τύπους αρχείων που προτιμάτε (εκτός από απλό κείμενο
+ ASCII).</para>
+
+ <sect4>
+ <title>Γιατί να εγκαταστήσετε Φίλτρα Μετατροπής;</title>
+ <indexterm>
+ <primary>&tex;</primary>
+ <secondary>εκτύπωση αρχείων DVI</secondary>
+ </indexterm>
+
+ <para>Τα φίλτρα μετατροπής κάνουν την εκτύπωση διαφόρων τύπων
+ αρχείων εύκολη υπόθεση. Για παράδειγμα, ας υποθέσουμε ότι έχουμε
+ να κάνουμε αρκετή εργασία με το σύστημα στοιχειοθεσίας &tex;, και
+ ότι έχουμε εκτυπωτή &postscript;. Κάθε φορά που δημιουργούμε ένα
+ αρχείο DVI με το &tex;, δεν μπορούμε να εκτυπώσουμε κατευθείαν έως
+ ότου να μετατρέψουμε το αρχείο DVI σε &postscript;. Η ακολουθία
+ εντολών που πρέπει να ακολουθήσουμε είναι:</para>
+
+ <screen>&prompt.user; <userinput><command>dvips <filename><replaceable>seaweed-analysis.dvi</replaceable></filename></command></userinput>
+&prompt.user; <userinput><command>lpr <filename><replaceable>seaweed-analysis.ps</replaceable></filename></command></userinput></screen>
+
+ <para>Με την χρήση ενός φίλτρου μετατροπής για αρχεία DVI, μπορούμε
+ να αποφύγουμε την μετατροπή που πρέπει να κάνουμε κάθε φορά
+ χειροκίνητα, καλώντας το <application>LPD</application> να κάνει
+ τη δουλειά για μας. Τώρα, κάθε φορά που έχουμε ένα αρχείο DVI,
+ για να το τυπώσουμε χρειάζεται μόνο ένα βήμα:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <option>-d</option> <filename><replaceable>seaweed-analysis.dvi</replaceable></filename></command></userinput></screen>
+
+ <para>Έχουμε αναθέσει στο <application>LPD</application> να κάνει τη
+ μετατροπή του αρχείου DVI προσθέτοντας του την επιλογή
+ <option>-d</option>. Η ενότητα <link
+ linkend="printing-lpr-options-format">Επιλογές Μορφοποίησης και
+ Μετατροπής</link> περιέχει τους πίνακες επιλογής
+ μετατροπών.</para>
+
+ <para>Για κάθε επιλογή μετατροπής που θέλετε να υποστηρίζετε από
+ ένα εκτυπωτή, πρέπει να εγκαταστήσετε ένα
+ <emphasis>φίλτρο μετατροπής</emphasis> και να ορίσετε την
+ διαδρομή του στο αρχείο <filename>/etc/printcap</filename>. Ένα
+ φίλτρο μετατροπής είναι σαν το φίλτρο κειμένου στην απλή
+ εγκατάσταση εκτυπωτή (δείτε την ενότητα <link
+ linkend="printing-textfilter">Εγκατάσταση Φίλτρου
+ Κειμένου</link>) με μόνη διαφορά πως αντί το φίλτρο να
+ εκτυπώνει απλό κείμενο, μετατρέπει το αρχείο σε μια διαφορετική
+ μορφή ώστε να είναι κατανοητό από τον εκτυπωτή.</para>
+ </sect4>
+
+ <sect4>
+ <title>Ποιο Φίλτρο Μετατροπής θα Πρέπει να Εγκαταστήσω;</title>
+
+ <para>Θα πρέπει να εγκαθιστάτε τα φίλτρα μετατροπής που νομίζετε
+ πως θα χρησιμοποιήσετε. Αν εκτυπώνετε αρκετά δεδομένα DVI, τότε
+ είναι λογικό να συμπεριλάβετε ένα φίλτρο μετατροπής DVI. Αν
+ εκτυπώνετε συχνά δεδομένα troff, θα θέλετε να εγκαταστήσετε ένα
+ φίλτρο troff.</para>
+
+ <para>Ο ακόλουθος πίνακας συνοψίζει τα φίλτρα με τα οποία
+ συνεργάζεται το <application>LPD</application>, τις καταχωρίσεις
+ της αντίστοιχης ικανότητας στο αρχείο
+ <filename>/etc/printcap</filename>, και πως να τις καλέσετε μέσω
+ της εντολής <command>lpr</command>:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Τύπος αρχείου</entry>
+ <entry>Ικανότητα <filename>/etc/printcap</filename></entry>
+ <entry>Παράμετρος εντολής <command>lpr</command></entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>cifplot</entry>
+ <entry><literal>cf</literal></entry>
+ <entry><option>-c</option></entry>
+ </row>
+
+ <row>
+ <entry>DVI</entry>
+ <entry><literal>df</literal></entry>
+ <entry><option>-d</option></entry>
+ </row>
+
+ <row>
+ <entry>plot</entry>
+ <entry><literal>gf</literal></entry>
+ <entry><option>-g</option></entry>
+ </row>
+
+ <row>
+ <entry>ditroff</entry>
+ <entry><literal>nf</literal></entry>
+ <entry><option>-n</option></entry>
+ </row>
+
+ <row>
+ <entry>FORTRAN text</entry>
+ <entry><literal>rf</literal></entry>
+ <entry><option>-f</option></entry>
+ </row>
+
+ <row>
+ <entry>troff</entry>
+ <entry><literal>tf</literal></entry>
+ <entry><option>-f</option></entry>
+ </row>
+
+ <row>
+ <entry>raster</entry>
+ <entry><literal>vf</literal></entry>
+ <entry><option>-v</option></entry>
+ </row>
+
+ <row>
+ <entry>plain text</entry>
+ <entry><literal>if</literal></entry>
+ <entry>none, <option>-p</option>, or
+ <option>-l</option></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Στο παράδειγμα μας, αν χρησιμοποιήσουμε
+ <command>lpr <option>-d</option></command> σημαίνει ότι ο
+ εκτυπωτής χρειάζεται την ικανότητα <literal>df</literal> στην
+ καταχώριση του στο <filename>/etc/printcap</filename>.</para>
+
+ <indexterm><primary>FORTRAN</primary></indexterm>
+ <para>Αν και κάποιοι μπορεί να ισχυριστούν το αντίθετο, μερικοί
+ τύποι αρχείων όπως είναι τα κείμενα και γραφικά FORTRAN είναι
+ ξεπερασμένα. Μπορείτε να δώσετε νέα πνοή σε αρχεία αυτού του
+ τύπου (ή και οποιασδήποτε άλλης μορφής εξόδου), εγκαθιστώντας
+ προσαρμοσμένα φίλτρα. Για παράδειγμα, ας υποθέσουμε ότι θα θέλατε
+ να εκτυπώσετε κατευθείαν αρχεία Printerleaf (αρχεία προερχόμενα
+ από το πρόγραμμα επιτραπέζιας τυπογραφίας Interleaf), αλλά δεν
+ θα εκτυπώσετε ποτέ διαγράμματα (plots). Θα μπορούσατε να
+ εγκαταστήσετε ένα φίλτρο μετατροπής αρχείων Printerleaf υπό την
+ ικανότητα <literal>gf</literal> και να εκπαιδεύσετε τους χρήστες
+ σας ότι η εντολή <command>lpr <option>-g</option></command>
+ σημαίνει <quote>τύπωσε αρχεία Printerleaf.</quote></para>
+ </sect4>
+
+ <sect4>
+ <title>Εγκατάσταση Φίλτρων Μετατροπών</title>
+
+ <para>Από τη στιγμή που τα φίλτρα μετατροπής είναι προγράμματα που
+ δεν ανήκουν στο βασικό σύστημα εγκατάστασης του &os;, είναι πιο
+ σωστό να εγκατασταθούν στον κατάλογο
+ <filename class="directory">/usr/local</filename>. Ένας συνήθης
+ προορισμός των προγραμμάτων αυτών είναι ο κατάλογος
+ <filename class="directory">/usr/local/libexec</filename>, μια
+ που πρόκειται για εξειδικευμένα προγράμματα που εκτελούνται μόνο
+ από το <application>LPD</application>. Οι απλοί χρήστες δεν θα
+ χρειαστεί ποτέ να τα εκτελέσουν.</para>
+
+ <para>Για να ενεργοποιήσετε ένα φίλτρο μετατροπής, προσδιορίστε τη
+ διαδρομή του στο αρχείο <filename>/etc/printcap</filename>,
+ αλλάζοντας την κατάλληλη ικανότητα στον εκτυπωτή που επιθυμείτε
+ να το χρησιμοποιήσετε.</para>
+
+ <para>Στο παράδειγμα μας, θα προσθέσουμε το φίλτρο μετατροπής DVI
+ στην καταχώριση μας για τον εκτυπωτή με το όνομα
+ <literal>bamboo</literal>. Ακολουθεί, λοιπόν, το παράδειγμα
+ για το αρχείο <filename>/etc/printcap</filename>, με την νέα
+ ικανότητα <literal>df</literal> για τον εκτυπωτή
+ <literal>bamboo</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - added df filter for bamboo
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:\
+ :if=<filename>/usr/local/libexec/if-simple</filename>:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=<filename>/usr/local/libexec/psif</filename>:\
+ :df=<filename>/usr/local/libexec/psdf</filename>:</programlisting>
+
+ <para>Το φίλτρο DVI είναι ένα shell script που ονομάζεται
+ <filename>/usr/local/libexec/psdf</filename>, το οποίο και
+ παραθέτουμε παρακάτω:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psdf - DVI to PostScript printer filter
+# Installed in /usr/local/libexec/psdf
+#
+# Invoked by lpd when user runs lpr -d
+#
+exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"</programlisting>
+
+ <para>Αυτό το script τρέχει το <command>dvips</command> σε κατάσταση
+ φίλτρου (με την παράμετρο <option>-f</option>) στην standard
+ input, από όπου και λαμβάνει την εργασία προς εκτύπωση. Αυτό
+ ξεκινά το φίλτρο εκτύπωσης &postscript; <command>lprps</command>
+ (δείτε την ενότητα <link
+ linkend="printing-advanced-if-conversion">Συμβατότητα Εργασιών
+ Απλού Κειμένου σε εκτυπωτές &postscript;</link>) δίνοντας του
+ και τις παραμέτρους που πέρασε το <application>LPD</application>
+ στο παραπάνω script. Το <command>lprps</command> θα
+ χρησιμοποιήσει αυτές τις παραμέτρους για την καταμέτρηση των
+ εκτυπωμένων σελίδων.</para>
+ </sect4>
+
+ <sect4>
+ <title>Ακόμα μερικά Παραδείγματα Φίλτρων Μετατροπής</title>
+
+ <para>Από τη στιγμή που δεν υπάρχει αυτοματοποιημένη μέθοδος για την
+ εγκατάσταση των φίλτρων μετατροπής, ας μας επιτραπεί να παρέχουμε
+ μερικά ακόμη παραδείγματα. Μπορείτε να τα χρησιμοποιήσετε σαν
+ οδηγό για την δημιουργία των δικών σας φίλτρων. Αν νομίζετε πως
+ είναι κατάλληλα για την περίπτωση σας μπορείτε να τα
+ χρησιμοποιήσετε και κατευθείαν.</para>
+
+ <para>Αυτό το παράδειγμα script είναι ένα φίλτρο μετατροπής ράστερ
+ (αρχείου GIF για την ακρίβεια) για έναν εκτυπωτή Hewlett Packard
+ LaserJet III-Si:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpvf - Convert GIF files into HP/PCL, then print
+# Installed in /usr/local/libexec/hpvf
+
+PATH=/usr/X11R6/bin:$PATH; export PATH
+giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
+ &amp;&amp; exit 0 \
+ || exit 2</programlisting>
+
+ <para>Δουλεύει ως εξής: μετατρέπει το αρχείο GIF σε ένα γενικό
+ φορητό τύπο anymap, εν συνεχεία το μετατρέπει σε ένα φορητό τύπο
+ graymap, έπειτα σε ένα φορητό τύπο bitmap, και τέλος το
+ μετατρέπει σε δεδομένα συμβατά με PCL για τον LaserJet.</para>
+
+ <para>Εδώ είναι το αρχείο <filename>/etc/printcap</filename> με μια
+ καταχώριση για έναν εκτυπωτή που χρησιμοποιεί το παραπάνω
+ φίλτρο:</para>
+
+ <programlisting>#
+# /etc/printcap for host orchid
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:sh:sd=<filename class="directory">/var/spool/lpd/teak</filename>:mx#0:\
+ :if=<filename>/usr/local/libexec/hpif</filename>:\
+ :vf=<filename>/usr/local/libexec/hpvf</filename>:</programlisting>
+
+ <para>Το ακόλουθο script είναι ένα φίλτρο μετατροπής δεδομένων troff
+ από το σύστημα στοιχειοθεσίας groff για τον εκτυπωτή &postscript;
+ με όνομα <literal>bamboo</literal>:</para>
+
+ <programlisting>#!/bin/sh
+#
+# pstf - Convert groff's troff data into PS, then print.
+# Installed in /usr/local/libexec/pstf
+#
+exec grops | /usr/local/libexec/lprps "$@"</programlisting>
+
+ <para>Το παραπάνω script χρησιμοποιεί πάλι το
+ <command>lprps</command> για να χειριστεί την επικοινωνία με τον
+ εκτυπωτή. Αν ο εκτυπωτής ήταν σε παράλληλη πόρτα τότε θα είχαμε,
+ αντιθέτως, χρησιμοποιήσει το ακόλουθο script:</para>
+
+ <programlisting>#!/bin/sh
+#
+# pstf - Convert groff's troff data into PS, then print.
+# Installed in /usr/local/libexec/pstf
+#
+exec grops</programlisting>
+
+ <para>Εδώ είναι η καταχώριση που χρειάζεται να προσθέσουμε στο
+ <filename>/etc/printcap</filename> για να ενεργοποιήσουμε το
+ φίλτρο:</para>
+
+ <programlisting>:tf=<filename>/usr/local/libexec/pstf</filename>:</programlisting>
+
+ <para>Εδώ είναι ένα παράδειγμα που μας επιτρέπει να εκτυπώσουμε
+ παλαιό κώδικα της FORTRAN. Είναι ένα φίλτρο κειμένου για FORTRAN
+ για οποιονδήποτε εκτυπωτή μπορεί να εκτυπώσει κατευθείαν απλό
+ κείμενο. Θα το εγκαταστήσουμε για έναν εκτυπωτή που ονομάζεται
+ <literal>teak</literal>:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hprf - FORTRAN text filter for LaserJet 3si:
+# Installed in /usr/local/libexec/hprf
+#
+
+printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
+ exit 0
+exit 2</programlisting>
+
+ <para>Και θα προσθέσουμε αυτή τη γραμμή στο
+ <filename>/etc/printcap</filename> για να ενεργοποιήσουμε το
+ φίλτρο για τον εκτυπωτή <literal>teak</literal>:</para>
+
+ <programlisting>:rf=<filename>/usr/local/libexec/hprf</filename>:</programlisting>
+
+ <para>Και ένα τελευταίο κάπως περίπλοκο παράδειγμα: Θα
+ προσθέσουμε ένα φίλτρο DVI στον εκτυπωτή LaserJet
+ <literal>teak</literal> που αναφέραμε προηγούμενα. Καταρχήν το
+ εύκολο μέρος: αναβαθμίζουμε το <filename>/etc/printcap</filename>
+ με την τοποθεσία όπου βρίσκεται το φίλτρο DVI:</para>
+
+ <programlisting>:df=<filename>/usr/local/libexec/hpdf</filename>:</programlisting>
+
+ <para>Τώρα, το δύσκολο μέρος: η κατασκευή του φίλτρου. Θα
+ χρειαστούμε ένα πρόγραμμα μετατροπής από DVI-σε-LaserJet/PCL.
+ Στην Συλλογή των Ports του &os; (δείτε <link
+ linkend="ports">Συλλογή των Ports</link>) υπάρχει ένα τέτοιο
+ πρόγραμμα: Το όνομα του πακέτου είναι <command>dvi2xx</command>.
+ Η εγκατάσταση του πακέτου, μας παρέχει ακριβώς το πρόγραμμα
+ που χρειαζόμαστε, το <command>dvilj2p</command>, το οποίο
+ μετατρέπει τον κώδικα DVI σε κώδικα συμβατό με LaserJet IIp,
+ LaserJet III, και LaserJet 2000.</para>
+
+ <para>Το <command>dvilj2p</command> κάνει το φίλτρο
+ <command>hpdf</command> αρκετά περίπλοκο από τη στιγμή που το
+ <command>dvilj2p</command> δε μπορεί να διαβάσει από το standard
+ input. Χρειάζεται να δουλέψει με κάποιο όνομα αρχείου. Ακόμη
+ χειρότερα, το όνομα του αρχείου πρέπει να τελειώνει σε
+ <filename>.dvi</filename> κι επομένως η χρήση του
+ <filename class="devicefile">/dev/fd/0</filename> ως standard
+ input είναι προβληματική. Θα μπορούσαμε να αντιμετωπίσουμε το
+ πρόβλημα δημιουργώντας (συμβολικούς) δεσμούς με κάποιο προσωρινό
+ όνομα αρχείου (που να τελειώνει σε <filename>.dvi</filename>)
+ για το <filename class="devicefile">/dev/fd/0</filename>, και με
+ αυτό τον τρόπο να εξαναγκάσουμε το <command>dvilj2p</command> να
+ διαβάζει από το standard input.</para>
+
+ <para>Ακόμη ένα πρόβλημα που προκύπτει είναι το γεγονός πως δεν
+ μπορούμε να χρησιμοποιήσουμε το
+ <filename class="directory">/tmp</filename> για τον
+ προσωρινό δεσμό. Οι συμβολικοί δεσμοί ανήκουν στον χρήστη και
+ στην ομάδα <username>bin</username>, ενώ το φίλτρο τρέχει σαν
+ χρήστης <username>daemon</username>. Επίσης στον κατάλογο
+ <filename class="directory">/tmp</filename> είναι ενεργό το
+ sticky bit. Το φίλτρο μπορεί να δημιουργήσει το δεσμό, αλλά δεν
+ θα είναι ικανό να τον εξαλείψει και να τον αφαιρέσει από τη
+ στιγμή που αυτός θα ανήκει σε διαφορετικό χρήστη.</para>
+
+ <para>Αντίθετα, το φίλτρο θα φτιάξει το συμβολικό link στον τρέχοντα
+ κατάλογο, που είναι ο κατάλογος παροχέτευσης (spooling) (και που
+ προσδιορίζεται από την ικανότητα <literal>sd</literal> στο
+ <filename>/etc/printcap</filename>). Αυτό είναι το τέλειο μέρος
+ για να δουλεύουν τα φίλτρα, ειδικά λόγω του ότι (μερικές φορές)
+ υπάρχει περισσότερες ελεύθερος χώρος στο δίσκο στον κατάλογο
+ παροχέτευσης (spool) από ότι στο
+ <filename class="directory">/tmp</filename>.</para>
+
+ <para>Και τελικά, ιδού το φίλτρο:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpdf - Print DVI data on HP/PCL printer
+# Installed in /usr/local/libexec/hpdf
+
+PATH=/usr/local/bin:$PATH; export PATH
+
+#
+# Define a function to clean up our temporary files. These exist
+# in the current directory, which will be the spooling directory
+# for the printer.
+#
+cleanup() {
+ rm -f hpdf$$.dvi
+}
+
+#
+# Define a function to handle fatal errors: print the given message
+# and exit 2. Exiting with 2 tells LPD to do not try to reprint the
+# job.
+#
+fatal() {
+ echo "$@" 1&gt;&amp;2
+ cleanup
+ exit 2
+}
+
+#
+# If user removes the job, LPD will send SIGINT, so trap SIGINT
+# (and a few other signals) to clean up after ourselves.
+#
+trap cleanup 1 2 15
+
+#
+# Make sure we are not colliding with any existing files.
+#
+cleanup
+
+#
+# Link the DVI input file to standard input (the file to print).
+#
+ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0"
+
+#
+# Make LF = CR+LF
+#
+printf "\033&amp;k2G" || fatal "Cannot initialize printer"
+
+#
+# Convert and print. Return value from dvilj2p does not seem to be
+# reliable, so we ignore it.
+#
+dvilj2p -M1 -q -e- dfhp$$.dvi
+
+#
+# Clean up and exit
+#
+cleanup
+exit 0</programlisting>
+ </sect4>
+
+ <sect4 id="printing-advanced-autoconv">
+ <title>Αυτοματοποιημένες Μετατροπές: Μία Εναλλακτική στα Φίλτρα
+ Μετατροπής</title>
+
+ <para>Όλα τα φίλτρα μετατροπής μπορεί να πληρούν το περιβάλλον
+ εκτυπώσεων σας, αλλά υποχρεώνουν τον χρήστη να προσδιορίζει
+ (στην γραμμή εντολών του &man.lpr.1;) ποιό από αυτά θα
+ χρησιμοποιηθεί. Αν οι χρήστες σας δεν είναι ιδιαίτερα
+ εξοικειωμένοι με τους Η/Υ, το να πρέπει να αναφέρουν κάθε φορά
+ ένα φίλτρο πιθανώς να είναι ενοχλητικό. Είναι ακόμα χειρότερο
+ ωστόσο να γίνει λανθασμένη επιλογή φίλτρου, το οποίο θα
+ εκτελεστεί σε ακατάλληλο για αυτό τύπο αρχείου, και θα προκαλέσει
+ την σπατάλη εκατοντάδων σελίδων χαρτιού.</para>
+
+ <para>Αντί να εγκαταστήσετε οποιοδήποτε φίλτρο μετατροπής, μπορεί να
+ θέλετε να δοκιμάσετε να έχετε ένα φίλτρο κειμένου (αφού είναι
+ το προεπιλεγμένο φίλτρο) που να ανιχνεύει τον τύπο του αρχείου
+ που έχει ζητηθεί να εκτυπωθεί και να εκτελεί αυτόματα το
+ κατάλληλο φίλτρο μετατροπής. Εργαλεία σαν το
+ <command>file</command> μπορούν να σας βοηθήσουν. Μπορεί να
+ είναι δύσκολο να προσδιοριστούν οι διαφορές μεταξύ
+ <emphasis>κάποιων</emphasis> τύπων αρχείων&mdash;αλλά, φυσικά,
+ μπορείτε πάντα να παρέχετε φίλτρα μετατροπής ειδικά για αυτές τις
+ περιπτώσεις.</para>
+
+ <indexterm><primary>apsfilter</primary></indexterm>
+ <indexterm>
+ <primary>printing</primary>
+ <secondary>filters</secondary>
+ <tertiary>apsfilter</tertiary>
+ </indexterm>
+ <para>Η Συλλογή των Ports του &os; έχει ένα φίλτρο κειμένου που
+ εκτελεί αυτόματες μετατροπές και ονομάζεται
+ <command>apsfilter</command>. Μπορεί να ανιχνεύει απλό κείμενο,
+ &postscript;, DVI και σχεδόν οποιοδήποτε τύπο αρχείου, να εκτελεί
+ την κατάλληλη μετατροπή, και να εκτυπώνει.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="printing-advanced-of">
+ <title>Φίλτρα Εξόδου</title>
+
+ <para>Το σύστημα παροχέτευσης <application>LPD</application>
+ υποστηρίζει έναν ακόμη τύπο φίλτρου που ίσως να μην έχετε
+ εξερευνήσει ακόμα: το φίλτρο εξόδου. Το φίλτρο εξόδου προορίζεται
+ μόνο για εκτύπωση απλού κειμένου, όπως το φίλτρο κειμένου, αλλά με
+ πολλές απλοποιήσεις. Εάν χρησιμοποιείτε φίλτρο εξόδου αλλά όχι
+ φίλτρο κειμένου, τότε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το <application>LPD</application> ξεκινά ένα φίλτρο εξόδου
+ μόνο μια φορά για όλη την εργασία, αντί ένα χωριστό για κάθε
+ αρχείο της εργασίας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <application>LPD</application> δεν φροντίζει να
+ αναγνωρίσει την αρχή ή το τέλος των αρχείων μέσα στην ίδια την
+ εργασία όταν χρησιμοποιείται το φίλτρο εξόδου.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <application>LPD</application> δεν περνάει στο φίλτρο τα
+ δεδομένα εισόδου του χρήστη ή το όνομα του μηχανήματος, επομένως
+ δεν προορίζεται για καταμέτρηση εκτυπωμένων σελίδων. Το φίλτρο
+ εξόδου δέχεται μόνος τις παραμέτρους:</para>
+
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg choice="plain">-w<replaceable>width</replaceable></arg>
+ <arg choice="plain">-l<replaceable>length</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>Όπου το <replaceable>width</replaceable> είναι από την
+ ικανότητα <literal>pw</literal> και το
+ <replaceable>length</replaceable> είναι από την ικανότητα
+ <literal>pl</literal> για τον συγκεκριμένο εκτυπωτή.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μην παρασύρεστε από την απλότητα του φίλτρου εξόδου. Αν
+ επιθυμείτε κάθε αρχείο μιας εργασίας να ξεκινά σε μια νέα σελίδα,
+ το φίλτρο εξόδου <emphasis>δεν κάνει για σας</emphasis>.
+ Χρησιμοποιήστε ένα φίλτρο κειμένου (γνωστό και ως φίλτρο εισόδου).
+ Δείτε την ενότητα <link linkend="printing-textfilter">Εγκατάσταση
+ Φίλτρου Κειμένου</link>. Επιπλέον, ένα φίλτρο εξόδου είναι στην
+ πραγματικότητα <emphasis>πιο περίπλοκο</emphasis> αφού πρέπει να
+ εξετάζει την ροή των byte που αποστέλλεται προς αυτό για ειδικούς
+ χαρακτήρες flag και πρέπει να στέλνει σήματα στον εαυτό
+ του για λογαριασμό του <application>LPD</application>.</para>
+
+ <para>Ωστόσο, ένα φίλτρο εξόδου είναι <emphasis>αναγκαίο</emphasis>
+ αν θέλετε σελίδες κεφαλίδας και χρειάζεται να στέλνετε ακολουθίες
+ διαφυγής ή άλλες ακολουθίες αρχικοποίησης προκειμένου να τις
+ εκτυπώσετε. (Αλλά είναι επίσης <emphasis>μάταιο</emphasis> αν
+ θέλετε να χρεώνετε σελίδες κεφαλίδας στον λογαριασμό του αντίστοιχου
+ χρήστη, από τη στιγμή που το <application>LPD</application> δεν
+ στέλνει καμιά πληροφορία για τον χρήστη ή τον υπολογιστή στο φίλτρο
+ εξόδου.)</para>
+
+ <para>Το <application>LPD</application> επιτρέπει την συνύπαρξη
+ ενός φίλτρου εξόδου και άλλων φίλτρων (κειμένου ή διαφορετικού
+ τύπου) στον ίδιο εκτυπωτή. Σε αυτές τις περιπτώσεις, το
+ <application>LPD</application> θα ξεκινά το φίλτρο εξόδου μόνο για
+ την εκτύπωση της σελίδας κεφαλίδας (δείτε την ενότητα <link
+ linkend="printing-advanced-header-pages">Σελίδες
+ Κεφαλίδας</link>). Το <application>LPD</application> θα αναμένει
+ το φίλτρο εξόδου να <emphasis>σταματήσει από μόνο του</emphasis>
+ όταν του στείλει δύο bytes: ένα ASCII 031 ακολουθούμενο από ένα
+ ASCII 001. Όταν ένα φίλτρο εξόδου βλέπει αυτά τα δύο bytes (031,
+ 001), θα πρέπει να σταματά στέλνοντας σήμα
+ <literal>SIGSTOP</literal> στον εαυτό του. Όταν το
+ <application>LPD</application> ολοκληρώσει την εκτέλεση και των
+ υπολοίπων φίλτρων, θα επανεκκινήσει το φίλτρο εξόδου στέλνοντας
+ του το σήμα <literal>SIGCONT</literal>.</para>
+
+ <para>Αν υπάρχει φίλτρο εξόδου, αλλά <emphasis>δεν υπάρχει</emphasis>
+ φίλτρο κειμένου και το <application>LPD</application> δουλεύει σε
+ εργασία απλού κειμένου, το <application>LPD</application>
+ χρησιμοποιεί το φίλτρο εξόδου για την εκτέλεση της εργασίας. Όπως
+ αναφέραμε και παραπάνω, το φίλτρο εξόδου θα εκτυπώσει κάθε αρχείο
+ εργασίας στη σειρά, δίχως δυνατότητα παρεμβολής κενής σελίδας ή
+ άλλων ρυθμίσεων στην τροφοδοσία χαρτιού, και πιθανώς αυτό να
+ <emphasis>μην</emphasis> είναι επιθυμητό. Σχεδόν σε όλες τις
+ περιπτώσεις, θα χρειαστείτε ένα φίλτρο κειμένου.</para>
+
+ <para>Το πρόγραμμα <command>lpf</command>, που αναφέραμε νωρίτερα σαν
+ φίλτρο κειμένου, μπορεί να τρέξει και σαν φίλτρο εξόδου. Αν
+ χρειάζεστε ένα γρήγορο φίλτρο εξόδου αλλά δεν θέλετε να γράψετε τον
+ κώδικα ανίχνευσης των byte και τον κώδικα αποστολής σημάτων,
+ δοκιμάστε το <command>lpf</command>. Μπορείτε επίσης να
+ χρησιμοποιήσετε το <command>lpf</command> μέσα από ένα shell script
+ το οποίο θα χειρίζεται τους κωδικούς αρχικοποίησης που ίσως να
+ χρειάζεται ο εκτυπωτής.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-lpf">
+ <title><command>lpf</command>: ένα Φίλτρο Κειμένου</title>
+
+ <para>Το πρόγραμμα <filename>/usr/libexec/lpr/lpf</filename> που
+ παρέχεται με τη διανομή εκτελέσιμων του &os; είναι ένα φίλτρο
+ κειμένου (φίλτρο εισόδου) που μπορεί να παραγραφοποιεί την έξοδο
+ (εργασίες που έχουν σταλεί με
+ <command>lpr <option>-i</option></command>), να
+ επιτρέπει την διέλευση literal χαρακτήρων (εργασίες που έχουν
+ σταλεί με <command>lpr <option>-l</option></command>), να ρυθμίζει
+ την θέση εκτύπωσης με τη χρήση χαρακτήρων backspace και tab στην
+ εργασία, και να κάνει καταμέτρηση των εκτυπωμένων σελίδων. Επίσης
+ μπορεί να ενεργεί και σαν φίλτρο εξόδου.</para>
+
+ <para>Το <command>lpf</command> είναι κατάλληλο για διάφορα
+ περιβάλλοντα εκτύπωσης. Αν και δεν έχει δυνατότητα αποστολής
+ ακολουθιών αρχικοποίησης στον εκτυπωτή, είναι εύκολο να γράψετε
+ ένα shell script για να κάνετε την απαραίτητη αρχικοποίηση και
+ να εκτελέσετε έπειτα το <command>lpf</command>.</para>
+
+ <indexterm><primary>καταμέτρηση σελίδων</primary></indexterm>
+ <indexterm>
+ <primary>καταμέτρηση</primary>
+ <secondary>εκτυπωτής</secondary>
+ </indexterm>
+ <para>Για να κάνει σωστά καταμέτρηση σελίδων, το
+ <command>lpf</command> χρειάζεται κατάλληλες τιμές για τις
+ ικανότητες <literal>pw</literal> και <literal>pl</literal> στο
+ αρχείο <filename>/etc/printcap</filename>. Χρησιμοποιεί αυτές τις
+ τιμές για να προσδιορίσει πόσο κείμενο μπορεί να χωρέσει σε μία
+ σελίδα και από πόσες σελίδες αποτελείται η εργασία του χρήστη. Για
+ περισσότερες πληροφορίες σχετικά με την καταμέτρηση σελίδων,
+ συμβουλευτείτε την <link
+ linkend="printing-advanced-acct">Καταμέτρηση Χρήσης Εκτυπωτών</link>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-header-pages">
+ <title>Σελίδες Κεφαλίδας</title>
+
+ <para>Αν έχετε <emphasis>αρκετούς</emphasis> χρήστες, και όλοι τους
+ χρησιμοποιούν διάφορους εκτυπωτές, τότε πιθανώς να θεωρείτε τις
+ <emphasis>σελίδες κεφαλίδας</emphasis> ως αναγκαίο κακό.</para>
+
+ <indexterm>
+ <primary>σελίδες banner</primary>
+ <see>σελίδες κεφαλίδας</see>
+ </indexterm>
+ <indexterm><primary>σελίδες κεφαλίδας</primary></indexterm>
+ <para>Οι σελίδες κεφαλίδας, γνωστές επίσης και ως
+ <emphasis>banner</emphasis> ή <emphasis>σελίδες burst</emphasis>
+ αναγνωρίζουν σε ποιον ανήκουν οι εργασίες μετά την εκτύπωση τους.
+ Συνήθως τυπώνονται με μεγάλα, έντονα γράμματα, και ίσως με
+ διακοσμητικά περιγράμματα, ώστε σε μια στοίβα εκτυπώσεων να
+ ξεχωρίζουν από τα πραγματικά έγγραφα εργασιών των χρηστών.
+ Επιτρέπουν έτσι στους χρήστες να βρίσκουν γρήγορα τις εργασίες τους.
+ Το προφανές μειονέκτημα σε μια σελίδα κεφαλίδας είναι πως πρόκειται
+ να εκτυπωθεί μια ακόμα σελίδα για κάθε μία εργασία. Η εφήμερη
+ χρησιμότητα τους διαρκεί λίγα λεπτά, και ο προορισμός τους είναι ο
+ κάδος αχρήστων/ανακύκλωσης. (Παρατηρήστε πως οι σελίδες κεφαλίδας
+ είναι ανά εργασία, και όχι ανά αρχείο σε μια εργασία, επομένως το
+ αχρηστευμένο χαρτί ίσως να μην είναι τόσο πολύ).</para>
+
+ <para>Το σύστημα <application>LPD</application> μπορεί να παρέχει
+ αυτόματα σελίδες κεφαλίδας για τις εκτυπώσεις σας,
+ <emphasis>αν</emphasis> ο εκτυπωτής σας μπορεί να εκτυπώσει άμεσα
+ απλό κείμενο. Αν έχετε εκτυπωτή &postscript;, θα χρειαστείτε ένα
+ εξωτερικό πρόγραμμα για να δημιουργήσετε την σελίδα κεφαλίδας. Δείτε
+ το <link linkend="printing-advanced-header-pages-ps">Σελίδες
+ Κεφαλίδας σε Εκτυπωτές &postscript;</link>.</para>
+
+ <sect3 id="printing-advanced-header-pages-enabling">
+ <title>Ενεργοποίηση Σελίδων Κεφαλίδας</title>
+
+ <para>Στην ενότητα <link linkend="printing-simple">Βασικές Ρυθμίσεις
+ Εκτυπωτών</link>, απενεργοποιήσαμε τις σελίδες κεφαλίδας
+ με την καταχώριση <literal>sh</literal> (σημαίνει <quote>suppress
+ header</quote>) στο αρχείο <filename>/etc/printcap</filename>.
+ Για να ενεργοποιήσετε τις σελίδες κεφαλίδας για κάποιον εκτυπωτή,
+ απλά αφαιρέστε την ικανότητα <literal>sh</literal>.</para>
+
+ <para>Ακούγεται εύκολο, δεν νομίζετε;</para>
+
+ <para>Έτσι είναι. <emphasis>Ίσως</emphasis> χρειαστεί να παρέχετε ένα
+ φίλτρο εξόδου για να στείλετε εντολές αρχικοποίησης στον εκτυπωτή.
+ Εδώ είναι ένα παράδειγμα φίλτρου εξόδου για εκτυπωτές συμβατούς με
+ τον τύπο PCL της Hewlett Packard:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpof - Output filter for Hewlett Packard PCL-compatible printers
+# Installed in /usr/local/libexec/hpof
+
+printf "\033&amp;k2G" || exit 2
+exec /usr/libexec/lpr/lpf</programlisting>
+
+ <para>Προσδιορίστε την διαδρομή προς το φίλτρο εξόδου στην ικανότητα
+ <literal>of</literal>. Δείτε την ενότητα <link
+ linkend="printing-advanced-of">Φίλτρα Εξόδου</link> για
+ περισσότερες πληροφορίες.</para>
+
+ <para>Εδώ είναι ένα παράδειγμα αρχείου
+ <filename>/etc/printcap</filename> για τον εκτυπωτή
+ <literal>teak</literal> από το προηγούμενο παράδειγμα.
+ Ενεργοποιήσαμε τις σελίδες κεφαλίδας και προσθέσαμε το παραπάνω
+ φίλτρο εξόδου:</para>
+
+ <programlisting>#
+# /etc/printcap for host orchid
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:sd=<filename class="directory">/var/spool/lpd/teak</filename>:mx#0:\
+ :if=<filename>/usr/local/libexec/hpif</filename>:\
+ :vf=<filename>/usr/local/libexec/hpvf</filename>:\
+ :of=<filename>/usr/local/libexec/hpof</filename>:</programlisting>
+
+ <para>Τώρα, όταν οι χρήστες εκτυπώνουν εργασίες στον
+ <literal>teak</literal>, θα παίρνουν και μία σελίδα κεφαλίδας ανά
+ εργασία. Αν οι χρήστες θέλουν να ξοδεύουν χρόνο ψάχνοντας για
+ τις εκτυπώσεις τους, μπορούν να παρεμποδίσουν τις σελίδες κεφαλίδας
+ αποστέλλοντας τις εργασίες τους με
+ <command>lpr <option>-h</option></command>. Δείτε την ενότητα
+ <link linkend="printing-lpr-options-misc">Επιλογές Σελίδων
+ Κεφαλίδας</link> για περισσότερες επιλογές του &man.lpr.1;.</para>
+
+ <note>
+ <para>Το <application>LPD</application> στέλνει το χαρακτήρα
+ αλλαγής σελίδας (form feed) αμέσως μετά τη σελίδα κεφαλίδας. Αν
+ ο εκτυπωτής σας χρησιμοποιεί διαφορετικό χαρακτήρα ή ακολουθία
+ χαρακτήρων για την αλλαγή σελίδας, προσδιορίστε τα με την
+ ικανότητα <literal>ff</literal> στο αρχείο
+ <filename>/etc/printcap</filename>.</para>
+ </note>
+ </sect3>
+
+ <sect3 id="printing-advanced-header-pages-controlling">
+ <title>Έλεγχος Σελίδων Κεφαλίδας </title>
+
+ <para>Μετά την ενεργοποίηση των σελίδων κεφαλίδας, το
+ <application>LPD</application> θα παράγει μία <emphasis>επιμήκη
+ κεφαλίδα</emphasis>, μία ολόκληρη σελίδα με μεγάλα γράμματα που
+ προσδιορίζει τον χρήστη, τον υπολογιστή (host), και την εργασία.
+ Εδώ είναι ένα παράδειγμα (η <username>kelly</username> εκτύπωσε την
+ εργασία με όνομα <quote>outline</quote> από τον υπολογιστή
+ <hostid>rose</hostid>):</para>
+
+ <screen> k ll ll
+ k l l
+ k l l
+ k k eeee l l y y
+ k k e e l l y y
+ k k eeeeee l l y y
+ kk k e l l y y
+ k k e e l l y yy
+ k k eeee lll lll yyy y
+ y
+ y y
+ yyyy
+
+
+ ll
+ t l i
+ t l
+ oooo u u ttttt l ii n nnn eeee
+ o o u u t l i nn n e e
+ o o u u t l i n n eeeeee
+ o o u u t l i n n e
+ o o u uu t t l i n n e e
+ oooo uuu u tt lll iii n n eeee
+
+
+
+
+
+
+
+
+
+ r rrr oooo ssss eeee
+ rr r o o s s e e
+ r o o ss eeeeee
+ r o o ss e
+ r o o s s e e
+ r oooo ssss eeee
+
+
+
+
+
+
+
+ Job: outline
+ Date: Sun Sep 17 11:04:58 1995</screen>
+
+ <para>Το <application>LPD</application> προσθέτει μια εντολή αλλαγής
+ σελίδας (form feed) μετά από αυτό το κείμενο έτσι ώστε η
+ εργασία να ξεκινήσει σε νέα σελίδα (εκτός αν έχετε προσδιορίσει την
+ ικανότητα <literal>sf</literal> (suppress form feeds) για τον
+ εκτυπωτή στο αρχείο <filename>/etc/printcap</filename>).</para>
+
+ <para>Αν προτιμάτε, το <application>LPD</application> μπορεί να
+ φτιάξει μια <emphasis>μικρότερου μήκους κεφαλίδα</emphasis>.
+ Προσδιορίστε <literal>sb</literal> (short banner) στο αρχείο
+ <filename>/etc/printcap</filename>. Η σελίδα κεφαλίδας θα μοιάζει
+ σαν αυτή:</para>
+
+ <screen>rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995</screen>
+
+ <para>Το <application>LPD</application> τυπώνει (από προεπιλογή)
+ πρώτα την σελίδα κεφαλίδας, και μετά την εργασία. Για να
+ αντιστρέψετε την σειρά, χρησιμοποιήστε την ικανότητα
+ <literal>hl</literal> (header last) στο αρχείο
+ <filename>/etc/printcap</filename>.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-header-pages-accounting">
+ <title>Καταμέτρηση με Σελίδες Κεφαλίδας</title>
+
+ <para>Η χρήση των προεγκατεστημένων σελίδων κεφαλίδας του
+ <application>LPD</application> ουσιαστικά υποχρεώνουν την τήρηση
+ του παρακάτω κανόνα όταν κάνουμε καταμέτρηση χρήσης του εκτυπωτή:
+ Οι σελίδες κεφαλίδας πρέπει να διατίθενται <emphasis>ελεύθερα (δίχως
+ χρέωση)</emphasis>.</para>
+
+ <para>Γιατί;</para>
+
+ <para>Διότι το φίλτρο εξόδου είναι το μοναδικό εξωτερικό πρόγραμμα
+ που έχει τον έλεγχο στην εκτύπωση της κεφαλίδας και θα μπορούσε να
+ κάνει καταμέτρηση, αλλά ωστόσο δεν παρέχει καμία πληροφορία για
+ <emphasis>τον χρήστη ή τον υπολογιστή</emphasis> ή κάποιο άλλο
+ αρχείο καταμέτρησης, επομένως δεν γνωρίζει σε ποιόν να αποδώσει
+ την χρήση του εκτυπωτή. Δεν αρκεί απλά να <quote>προσθέσετε μία
+ ακόμη σελίδα στην καταμέτρηση</quote> τροποποιώντας το φίλτρο
+ κειμένου ή οποιοδήποτε άλλο φίλτρο μετατροπής (το οποίο διαθέτει τις
+ πληροφορίες χρήστη και υπολογιστή), από τη στιγμή που οι χρήστες
+ έχουν την δυνατότητα να παρεμποδίσουν τις σελίδες κεφαλίδας με
+ <command>lpr <option>-h</option></command>. Θα μπορούσαν πάλι να
+ χρεωθούν για σελίδες κεφαλίδας που δεν εκτύπωσαν. Βασικά, η
+ <command>lpr <option>-h</option></command> θα είναι η προτιμώμενη
+ επιλογή σε ένα περιβάλλον που οι χρήστες έχουν οικολογική
+ συνείδηση, αλλά δεν μπορείτε πραγματικά να παροτρύνετε οποιονδήποτε
+ να τη χρησιμοποιήσει.</para>
+
+ <para><emphasis>Δεν είναι αρκετό</emphasis> απλά κάθε φίλτρο σας να
+ δημιουργεί τη δικιά του σελίδα κεφαλίδας (έτσι ώστε να μπορεί να
+ χρεώνει με αυτό τον τρόπο). Αν οι χρήστες επιθυμούν την επιλογή
+ παρεμπόδισης των σελίδων κεφαλίδας με
+ <command>lpr <option>-h</option></command>, θα συνεχίσουν να τις
+ παραλαμβάνουν - και να χρεώνονται για αυτές - αφού το
+ <application>LPD</application> δεν έχει δυνατότητα να
+ περάσει σε οποιοδήποτε φίλτρο την επιλογή
+ <option>-h</option>.</para>
+
+ <para>Επομένως, ποιες επιλογές έχετε;</para>
+
+ <para>Μπορείτε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να αποδεχθείτε την υπόδειξη του
+ <application>LPD</application> και να παρέχετε τις σελίδες
+ κεφαλίδας ελεύθερα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να εγκαταστήσετε εναλλακτικές λύσεις αντί του
+ <application>LPD</application>, όπως το
+ <application>LPRng</application>. Η ενότητα <link
+ linkend="printing-lpd-alternatives">Εναλλακτικές Λύσεις για
+ τον Στάνταρ Spooler</link> δίνει περισσότερες πληροφορίες
+ για άλλες εφαρμογές παροχέτευσης που μπορείτε να
+ χρησιμοποιήσετε αντί για το
+ <application>LPD</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Να γράψετε ένα <emphasis>έξυπνο</emphasis> φίλτρο εξόδου.
+ Υπό κανονικές συνθήκες, ένα "φίλτρο εξόδου" δεν κάνει τίποτε
+ παραπάνω από την αρχικοποίηση ενός εκτυπωτή ή μερικές απλές
+ μετατροπές χαρακτήρων. Είναι κατάλληλο για σελίδες κεφαλίδας
+ και για εργασίες απλού κειμένου (όταν δεν υπάρχει φίλτρο
+ (εισόδου) κειμένου). Αλλά αν υπάρχει φίλτρο κειμένου για
+ εργασίες απλού κειμένου, τότε το
+ <application>LPD</application> θα ενεργοποιεί το φίλτρο εξόδου
+ μόνο για τις σελίδες κεφαλίδας. Και το φίλτρο εξόδου μπορεί να
+ αναλύει το κείμενο της σελίδας κεφαλίδας που δημιουργεί το
+ <application>LPD</application> για να προσδιορίζει τον χρήστη
+ και τον υπολογιστή, ώστε να χρεώνει τις σελίδες κεφαλίδας.
+ Το μόνο επιπλέον πρόβλημα με αυτή τη μέθοδο είναι πως το φίλτρο
+ εξόδου εξακολουθεί να μη γνωρίζει ποιό αρχείο καταμέτρησης να
+ χρησιμοποιήσει (δεν του έχει δοθεί το όνομα του αρχείου από την
+ ικανότητα <literal>af</literal>), αλλά αν το όνομα του αρχείου
+ σας είναι γνωστό, μπορείτε να το ενσωματώσετε απευθείας στον
+ κώδικα του φίλτρου εξόδου. Για να διευκολύνετε την διαδικασία
+ ανάλυσης, χρησιμοποιήστε την ικανότητα <literal>sh</literal>
+ (short header) στο <filename>/etc/printcap</filename>. Ίσως
+ πάλι όλα αυτά να είναι υπερβολικά κοπιαστικά, ενώ είναι σίγουρο
+ πως οι χρήστες θα εκτιμήσουν τον γενναιόδωρο διαχειριστή
+ συστήματος που επιτρέπει ελεύθερα τις σελίδες κεφαλίδας.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3 id="printing-advanced-header-pages-ps">
+ <title>Σελίδες Κεφαλίδας σε Εκτυπωτές &postscript;</title>
+
+ <para>Όπως περιγράψαμε παραπάνω, το <application>LPD</application>
+ μπορεί να δημιουργήσει μία σελίδα κεφαλίδας απλού κειμένου,
+ κατάλληλη για πολλούς εκτυπωτές. Οι εκτυπωτές &postscript;,
+ φυσικά, δεν μπορούν να τυπώσουν κατευθείαν απλό κείμενο, επομένως
+ αυτή η δυνατότητα του <application>LPD</application> για τις
+ σελίδες κεφαλίδας είναι άχρηστη σε αυτή την περίπτωση.</para>
+
+ <para>Ένας προφανής τρόπος να παρέχονται σελίδες κεφαλίδας είναι να
+ δημιουργούνται από κάθε φίλτρο μετατροπής και το φίλτρο κειμένου.
+ Τα φίλτρα θα πρέπει να δέχονται ως παραμέτρους το όνομα του χρήστη
+ και του υπολογιστή ώστε να δημιουργούν την κατάλληλη σελίδα
+ κεφαλίδας. Το μειονέκτημα αυτής της μεθόδου είναι πως οι
+ χρήστες θα εκτυπώνουν πάντα σελίδα κεφαλίδας, ακόμη κι αν
+ αποστέλλουν την εργασία τους με
+ <command>lpr <option>-h</option></command>.</para>
+
+ <para>Επιτρέψτε μας να εξερευνήσουμε αυτή τη μέθοδο. Το ακόλουθο
+ script δέχεται τρεις παραμέτρους (το όνομα χρήστη - login name, το
+ όνομα του υπολογιστή - host name, και το όνομα εργασίας) και
+ δημιουργεί μία απλή σελίδα κεφαλίδας &postscript;:</para>
+
+ <programlisting>#!/bin/sh
+#
+# make-ps-header - make a PostScript header page on stdout
+# Installed in /usr/local/libexec/make-ps-header
+#
+
+#
+# These are PostScript units (72 to the inch). Modify for A4 or
+# whatever size paper you are using:
+#
+page_width=612
+page_height=792
+border=72
+
+#
+# Check arguments
+#
+if [ $# -ne 3 ]; then
+ echo "Usage: `basename $0` &lt;user&gt; &lt;host&gt; &lt;job&gt;" 1&gt;&amp;2
+ exit 1
+fi
+
+#
+# Save these, mostly for readability in the PostScript, below.
+#
+user=$1
+host=$2
+job=$3
+date=`date`
+
+#
+# Send the PostScript code to stdout.
+#
+exec cat &lt;&lt;EOF
+%!PS
+
+%
+% Make sure we do not interfere with user's job that will follow
+%
+save
+
+%
+% Make a thick, unpleasant border around the edge of the paper.
+%
+$border $border moveto
+$page_width $border 2 mul sub 0 rlineto
+0 $page_height $border 2 mul sub rlineto
+currentscreen 3 -1 roll pop 100 3 1 roll setscreen
+$border 2 mul $page_width sub 0 rlineto closepath
+0.8 setgray 10 setlinewidth stroke 0 setgray
+
+%
+% Display user's login name, nice and large and prominent
+%
+/Helvetica-Bold findfont 64 scalefont setfont
+$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
+($user) show
+
+%
+% Now show the boring particulars
+%
+/Helvetica findfont 14 scalefont setfont
+/y 200 def
+[ (Job:) (Host:) (Date:) ] {
+200 y moveto show /y y 18 sub def }
+forall
+
+/Helvetica-Bold findfont 14 scalefont setfont
+/y 200 def
+[ ($job) ($host) ($date) ] {
+ 270 y moveto show /y y 18 sub def
+} forall
+
+%
+% That is it
+%
+restore
+showpage
+EOF</programlisting>
+
+ <para>Τώρα, καθένα από τα φίλτρα μετατροπής και το φίλτρο κειμένου
+ μπορούν να καλέσουν το script, πρώτα για να δημιουργήσουν τη σελίδα
+ κεφαλίδας, και έπειτα για να εκτυπώσουν την εργασία του χρήστη.
+ Ακολουθεί το φίλτρο μετατροπής DVI που δείξαμε νωρίτερα, ειδικά
+ διαμορφωμένο για να φτιάξουμε μια σελίδα κεφαλίδας:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psdf - DVI to PostScript printer filter
+# Installed in /usr/local/libexec/psdf
+#
+# Invoked by lpd when user runs lpr -d
+#
+
+orig_args="$@"
+
+fail() {
+ echo "$@" 1&gt;&amp;2
+ exit 2
+}
+
+while getopts "x:y:n:h:" option; do
+ case $option in
+ x|y) ;; # Ignore
+ n) login=$OPTARG ;;
+ h) host=$OPTARG ;;
+ *) echo "LPD started `basename $0` wrong." 1&gt;&amp;2
+ exit 2
+ ;;
+ esac
+done
+
+[ "$login" ] || fail "No login name"
+[ "$host" ] || fail "No host name"
+
+( /usr/local/libexec/make-ps-header $login $host "DVI File"
+ /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args</programlisting>
+
+ <para>Παρατηρήστε πως το φίλτρο πρέπει να αναλύσει την λίστα
+ παραμέτρων για να προσδιορίσει το όνομα χρήστη και υπολογιστή. Η
+ μέθοδος ανάλυσης είναι παρόμοια και για τα υπόλοιπα φίλτρα
+ μετατροπής. Το φίλτρο κειμένου παίρνει ένα ελαφρώς διαφορετικό
+ σετ παραμέτρων, (δείτε την ενότητα <link
+ linkend="printing-advanced-filters">Πως δουλεύουν τα
+ Φίλτρα</link>).</para>
+
+ <para>Όπως αναφέραμε προηγούμενα, ο παραπάνω σχεδιασμός, αν και
+ πραγματικά απλός, απενεργοποιεί την επιλογή
+ <quote>παρεμπόδισης σελίδων κεφαλίδας</quote> (την επιλογή
+ <option>-h</option>) του <command>lpr</command>. Αν οι χρήστες
+ επιθυμούν να σώσουν ένα δέντρο (ή λίγα χρήματα, αν χρεώνετε τις
+ σελίδες κεφαλίδας), δεν θα υπάρχει τρόπος για να γίνει αυτό, από
+ τη στιγμή που κάθε εκτύπωση μέσω των φίλτρων θα συνοδεύεται και από
+ μια σελίδα κεφαλίδας για κάθε εργασία.</para>
+
+ <para>Για να επιτρέψετε στους χρήστες να απενεργοποιούν τις σελίδες
+ κεφαλίδας ανά εργασία, θα πρέπει να χρησιμοποιήσετε το τέχνασμα
+ που παρουσιάσαμε στην ενότητα <link
+ linkend="printing-advanced-header-pages-accounting">Καταμέτρηση με
+ Σελίδες Κεφαλίδας</link>: δηλαδή να γράψετε ένα φίλτρο εξόδου που
+ να αναλύει την σελίδα κεφαλίδας που δημιουργείται από το
+ <application>LPD</application> και να κατασκευάζει μια
+ &postscript; έκδοση. Αν ο χρήστης στείλει μια εργασία με
+ <command>lpr <option>-h</option></command>, τότε ούτε το
+ <application>LPD</application>, ούτε το φίλτρο εξόδου θα φτιάξουν
+ σελίδα κεφαλίδας. Σε όλες τις άλλες περιπτώσεις, το φίλτρο εξόδου
+ θα διαβάζει το κείμενο από το <application>LPD</application> και θα
+ στέλνει τον κατάλληλο κώδικα &postscript; στον εκτυπωτή ώστε να
+ εκτυπώνεται η σελίδα κεφαλίδας.</para>
+
+ <para>Αν έχετε εκτυπωτή &postscript; με σειριακή σύνδεση, μπορείτε να
+ κάνετε χρήση της <command>lprps</command>, η οποία συνοδεύεται από
+ ένα φίλτρο εξόδου, το <command>psof</command>, το οποία κάνει τα
+ παραπάνω. Σημειώστε πως το <command>psof</command> δεν χρεώνει για
+ τις σελίδες κεφαλίδας.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-network-printers">
+ <title>Εκτυπώσεις μέσω Δικτύου</title>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>δίκτυο</secondary>
+ </indexterm>
+ <indexterm><primary>εκτυπώσεις μέσω δικτύου</primary></indexterm>
+ <para>Το &os; υποστηρίζει τις εκτυπώσεις μέσω δικτύου: μπορεί να στείλει
+ εργασίες σε απομακρυσμένους εκτυπωτές. Η έννοια της δικτυακής
+ εκτύπωσης αναφέρεται γενικά σε δύο διαφορετικά πράγματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πρόσβαση σε εκτυπωτή συνδεδεμένο σε απομακρυσμένο υπολογιστή
+ (host). Εγκαθιστάτε έναν εκτυπωτή με συμβατική σειριακή ή
+ παράλληλη σύνδεση σε ένα υπολογιστή. Έπειτα, ρυθμίζετε το
+ <application>LPD</application> για να ενεργοποιηθεί η πρόσβαση
+ στον εκτυπωτή από άλλους υπολογιστές του δικτύου. Η ενότητα
+ <link linkend="printing-advanced-network-rm">Εκτυπωτές
+ Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές</link> εξηγεί τις
+ απαραίτητες ενέργειες.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πρόσβαση σε εκτυπωτή συνδεδεμένο κατευθείαν στο δίκτυο.
+ Εκτός (ή αντί) της συμβατικής σειριακής ή παράλληλης θύρας, ο
+ εκτυπωτής πρέπει να έχει επιπρόσθετα μια δικτυακή διασύνδεση.
+ Ένας τέτοιος εκτυπωτής δουλεύει ως εξής:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Μπορεί να καταλαβαίνει το πρωτόκολλο
+ <application>LPD</application> και να δημιουργεί ουρά
+ αναμονής για τις εργασίες που προέρχονται από απομακρυσμένους
+ υπολογιστές. Σε αυτή την περίπτωση, ενεργεί σαν ένας
+ κανονικός υπολογιστής που εκτελεί το
+ <application>LPD</application>. Ακολουθήστε την ίδια
+ διαδικασία με την ενότητα <link
+ linkend="printing-advanced-network-rm">Εκτυπωτές
+ Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές</link> για να
+ εγκαταστήσετε αυτόν τον εκτυπωτή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να υποστηρίζει σύνδεση δικτυακής ροής δεδομένων
+ (data stream). Σε αυτή την περίπτωση, <quote>συνδέετε</quote>
+ τον εκτυπωτή σε έναν υπολογιστή συνδεδεμένο στο δίκτυο, ο
+ οποίος θα είναι υπεύθυνος για την παροχέτευση των εργασιών
+ και την αποστολή τους στον εκτυπωτή. Η ενότητα <link
+ linkend="printing-advanced-network-net-if">Εκτυπωτές Με
+ Συνδέσεις Δικτύου</link> δίνει μερικές συμβουλές για την
+ εγκατάσταση εκτυπωτών αυτού του τύπου.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
+
+ <sect3 id="printing-advanced-network-rm">
+ <title>Εκτυπωτές Εγκατεστημένοι σε Απομακρυσμένους Υπολογιστές</title>
+
+ <para>Το σύστημα παροχέτευσης <application>LPD</application> έχει
+ ενσωματωμένη υποστήριξη για την αποστολή εργασιών σε άλλους
+ υπολογιστές που εκτελούν το <application>LPD</application> (ή που
+ είναι συμβατοί με το <application>LPD</application>). Αυτό το
+ χαρακτηριστικό σας επιτρέπει να εγκαταστήσετε έναν εκτυπωτή σε ένα
+ υπολογιστή και να έχετε πρόσβαση σε αυτόν από άλλους. Επίσης
+ δουλεύει και με εκτυπωτές που έχουν δικτυακές διασυνδέσεις που
+ καταλαβαίνουν το πρωτόκολλο <application>LPD</application>.</para>
+
+ <para>Για να ενεργοποιήσετε αυτόν τον τύπο απομακρυσμένης εκτύπωσης,
+ εγκαταστήστε πρώτα έναν εκτυπωτή σε ένα υπολογιστή, τον
+ <emphasis>υπολογιστή εκτύπωσης (printer host)</emphasis>,
+ χρησιμοποιώντας την απλή εγκατάσταση εκτυπωτή που περιγράφεται στην
+ ενότητα <link
+ linkend="printing-simple">Βασικές Ρυθμίσεις Εκτυπωτών</link>.
+ Κάντε όσες προχωρημένες ρυθμίσεις χρειάζεστε όπως αναφέρεται στις
+ <link linkend="printing-advanced">Ρυθμίσεις Εκτυπωτών για
+ Προχωρημένους</link>. Ελέγξτε τον εκτυπωτή και δείτε αν δουλεύει
+ με τα χαρακτηριστικά του <application>LPD</application> που έχετε
+ ενεργοποιήσει. Επίσης βεβαιωθείτε πως ο
+ <emphasis>τοπικός υπολογιστής (local host)</emphasis> είναι
+ εξουσιοδοτημένος να χρησιμοποιεί τις υπηρεσίες του
+ <application>LPD</application> στον
+ <emphasis>απομακρυσμένο υπολογιστή (remote host)</emphasis>
+ (δείτε <link
+ linkend="printing-advanced-restricting-remote">Παρεμπόδιση
+ Εργασιών από Απομακρυσμένους Υπολογιστές</link>).</para>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>δίκτυο</secondary>
+ </indexterm>
+ <indexterm><primary>δικτυακές εκτυπώσεις</primary></indexterm>
+ <para>Εάν χρησιμοποιείτε εκτυπωτή με δικτυακή διασύνδεση που είναι
+ συμβατός με το <application>LPD</application>, τότε ο
+ <emphasis>ο υπολογιστής εκτύπωσης (printer host)</emphasis> είναι ο
+ εν λόγω εκτυπωτής, και το <emphasis>όνομα του εκτυπωτή</emphasis>
+ είναι το όνομα που έχετε ορίσει για τον εκτυπωτή. Δείτε την
+ τεκμηρίωση που συνοδεύει τον εκτυπωτή σας και/ή την κάρτα δικτύου
+ του.</para>
+
+ <tip>
+ <para>Αν χρησιμοποιείτε Hewlett Packard Laserjet με όνομα εκτυπωτή
+ <literal>text</literal> θα γίνονται αυτόματα οι μετατροπές από
+ LF σε CRLF, επομένως δεν χρειάζεται να τρέξετε το script
+ <filename>hpif</filename>.</para>
+ </tip>
+
+ <para>Επομένως, στους υπόλοιπους υπολογιστές όπου επιθυμείτε να έχετε
+ πρόσβαση στον εκτυπωτή, απλά κάντε μια καταχώριση στο αρχείο
+ <filename>/etc/printcap</filename> με τα ακόλουθα στοιχεία:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Ονομάστε την καταχώριση όπως επιθυμείτε: Για δική σας
+ ευκολία πιθανώς να θέλετε να χρησιμοποιήσετε το ίδιο όνομα και
+ τα ίδια παρωνύμια με αυτά του υπολογιστή εκτύπωσης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αφήστε την ικανότητα <literal>lp</literal> κενή, για την
+ ακρίβεια (<literal>:lp=:</literal>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Δημιουργήστε ένα κατάλογο spooling και προσδιορίστε την
+ τοποθεσία του με την ικανότητα <literal>sd</literal>. Το
+ <application>LPD</application> θα αποθηκεύει εδώ τις εργασίες
+ πριν την αποστολή τους στον υπολογιστή εκτύπωσης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τοποθετήστε το όνομα του υπολογιστή εκτύπωσης στην ικανότητα
+ <literal>rm</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τοποθετήστε το όνομα του εκτυπωτή στην ικανότητα
+ <literal>rp</literal>, στον
+ <emphasis>υπολογιστή εκτύπωσης</emphasis>.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Αυτό είναι όλο. Δεν χρειάζεται να δημιουργήσετε λίστα φίλτρων
+ μετατροπής, διαστάσεις σελίδας, ή οτιδήποτε άλλο στο
+ αρχείο<filename>/etc/printcap</filename>.</para>
+
+ <para>Εδώ είναι ένα παράδειγμα. Ο υπολογιστής <hostid>rose</hostid>
+ έχει δύο εκτυπωτές, τον <literal>bamboo</literal> και τον
+ <literal>rattan</literal>. Θέλουμε να ενεργοποιήσουμε τις
+ εκτυπώσεις σε αυτούς τους εκτυπωτές για τους χρήστες του
+ απομακρυσμένου υπολογιστή <hostid>orchid</hostid>. Εδώ είναι το
+ αρχείο <filename>/etc/printcap</filename> του υπολογιστή
+ <hostid>orchid</hostid> (δείτε πιο πίσω στην ενότητα <link
+ linkend="printing-advanced-header-pages-enabling">Ενεργοποίηση
+ Σελίδων Κεφαλίδας</link>). Ήδη έχει μια καταχώριση για τον
+ εκτυπωτή <literal>teak</literal>. Εδώ προσθέσαμε τις απαραίτητες
+ καταχωρίσεις για τους δύο εκτυπωτές του υπολογιστή
+ <hostid>rose</hostid>:</para>
+
+ <programlisting>#
+# /etc/printcap for host orchid - added (remote) printers on rose
+#
+
+#
+# teak is local; it is connected directly to orchid:
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:sd=<filename class="directory">/var/spool/lpd/teak</filename>:mx#0:\
+ :if=<filename>/usr/local/libexec/ifhp</filename>:\
+ :vf=<filename>/usr/local/libexec/vfhp</filename>:\
+ :of=<filename>/usr/local/libexec/ofhp</filename>:
+
+#
+# rattan is connected to rose; send jobs for rattan to rose:
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :lp=:rm=rose:rp=rattan:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:
+
+#
+# bamboo is connected to rose as well:
+#
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :lp=:rm=rose:rp=bamboo:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:</programlisting>
+
+ <para>Το μόνο που απομένει είναι να δημιουργήσουμε τους καταλόγους
+ spooling στον κόμβο <hostid>orchid</hostid>:</para>
+
+ <screen>&prompt.root; <userinput><command>mkdir <option>-p</option> <filename class="directory">/var/spool/lpd/rattan</filename> <filename class="directory">/var/spool/lpd/bamboo</filename></command></userinput>
+&prompt.root; <userinput><command>chmod 770 <filename class="directory">/var/spool/lpd/rattan</filename> <filename class="directory">/var/spool/lpd/bamboo</filename></command></userinput>
+&prompt.root; <userinput><command>chown daemon:daemon <filename class="directory">/var/spool/lpd/rattan</filename> <filename class="directory">/var/spool/lpd/bamboo</filename></command></userinput></screen>
+
+ <para>Τώρα, οι χρήστες του <hostid>orchid</hostid> μπορούν να
+ εκτυπώνουν στον <literal>rattan</literal> και στον
+ <literal>bamboo</literal>. Αν, για παράδειγμα, ένας χρήστης του
+ <hostid>orchid</hostid> πληκτρολογήσει:
+
+ <screen>&prompt.user; <userinput><command>lpr <option>-P</option> bamboo <option>-d</option> <filename><replaceable>sushi-review.dvi</replaceable></filename></command></userinput></screen>
+
+ το σύστημα <application>LPD</application> στον
+ <hostid>orchid</hostid> θα αντιγράψει την εργασία στον κατάλογο
+ spooling
+ <filename class="directory">/var/spool/lpd/bamboo</filename> και θα
+ σημειώσει πως πρόκειται για εργασία DVI. Μόλις ο υπολογιστής
+ <hostid>rose</hostid> έχει διαθέσιμο χώρο στον κατάλογο spooling του
+ <literal>bamboo</literal>, τα δύο <application>LPDs</application>
+ θα μεταφέρουν το αρχείο στον <hostid>rose</hostid>. Το αρχείο θα
+ μπει σε ουρά αναμονής στον υπολογιστή <hostid>rose</hostid> έως
+ ότου εκτυπωθεί. Θα μετατραπεί από DVI σε &postscript; (αφού ο
+ <literal>bamboo</literal> είναι εκτυπωτής &postscript;) στον
+ υπολογιστή <hostid>rose</hostid>.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-network-net-if">
+ <title>Εκτυπωτές με Συνδέσεις Δικτύου</title>
+
+ <para>Συχνά, όταν αγοράζετε κάρτα δικτύου για εκτυπωτή, έχετε τη
+ δυνατότητα επιλογής δύο εκδόσεων: η μία είναι προσομοίωση του
+ spooler (η πιο ακριβή έκδοση) ενώ η άλλη απλά σας επιτρέπει να
+ στέλνετε δεδομένα μέσω αυτής σαν να χρησιμοποιούσατε μια σειριακή
+ ή παράλληλη θύρα (η φτηνή έκδοση). Αυτή η ενότητα περιγράφει πως να
+ χρησιμοποιείτε την φτηνή έκδοση. Για την πιο ακριβή έκδοση μπορείτε
+ να βρείτε περισσότερες πληροφορίες στην προηγούμενη ενότητα <link
+ linkend="printing-advanced-network-rm">Εκτυπωτές Εγκατεστημένοι
+ σε Απομακρυσμένους Υπολογιστές</link>.</para>
+
+ <para>Η μορφή του αρχείου <filename>/etc/printcap</filename> σας
+ επιτρέπει να ορίσετε τη διασύνδεση - σειριακή ή παράλληλη - που θα
+ χρησιμοποιήσετε, και (αν χρησιμοποιείτε σειριακή διασύνδεση) τον
+ ρυθμό baud, πιθανούς ελέγχους ροής, καθυστερήσεις για tabs,
+ μετατροπές για χαρακτήρες νέας γραμμής, και άλλα. Αλλά δεν υπάρχει
+ τρόπος να ορίσετε μια σύνδεση σε εκτυπωτή που ακούει σε θύρα TCP/IP
+ ή άλλο τύπο δικτύου.</para>
+
+ <para>Για να στείλετε δεδομένα σε ένα δικτυακό εκτυπωτή, χρειάζεται
+ να αναπτύξετε προγράμματα επικοινωνίας που να καλούνται από φίλτρα
+ κειμένου και φίλτρα μετατροπής. Εδώ έχουμε ένα τέτοιο παράδειγμα:
+ το script <command>netprint</command> παίρνει όλα τα δεδομένα από
+ το standard input και τα στέλνει σε έναν εκτυπωτή συνδεδεμένο στο
+ δίκτυο. Ορίζουμε στο <command>netprint</command> το όνομα
+ του εκτυπωτή ως πρώτη παράμετρο, και τον αριθμό θύρας στην οποία
+ συνδέεται ως δεύτερη. Σημειώστε πως αυτός ο τρόπος υποστηρίζει
+ μόνο επικοινωνία μιας κατεύθυνσης (από το &os; στον εκτυπωτή).
+ Πολλοί δικτυακοί εκτυπωτές υποστηρίζουν αμφίδρομη επικοινωνία, και
+ είναι πολύ πιθανό να επιθυμείτε να εκμεταλλευτείτε τα προτερήματα
+ τους (για να ελέγχετε την κατάσταση του εκτυπωτή, για καταμέτρηση
+ εκτυπώσεων, κλπ.).</para>
+
+ <programlisting>#!/usr/bin/perl
+#
+# netprint - Text filter for printer attached to network
+# Installed in /usr/local/libexec/netprint
+#
+$#ARGV eq 1 || die "Usage: $0 &lt;printer-hostname&gt; &lt;port-number&gt;";
+
+$printer_host = $ARGV[0];
+$printer_port = $ARGV[1];
+
+require 'sys/socket.ph';
+
+($ignore, $ignore, $protocol) = getprotobyname('tcp');
+($ignore, $ignore, $ignore, $ignore, $address)
+ = gethostbyname($printer_host);
+
+$sockaddr = pack('S n a4 x8', &amp;AF_INET, $printer_port, $address);
+
+socket(PRINTER, &amp;PF_INET, &amp;SOCK_STREAM, $protocol)
+ || die "Can't create TCP/IP stream socket: $!";
+connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
+while (&lt;STDIN&gt;) { print PRINTER; }
+exit 0;</programlisting>
+
+ <para>Μπορείτε να χρησιμοποιήσετε αυτό το script σε διάφορα φίλτρα.
+ Ας υποθέσουμε πως έχουμε έναν εκτυπωτή γραμμής Diablo 750-N
+ συνδεδεμένο στο δίκτυο. Ο εκτυπωτής δέχεται δεδομένα προς εκτύπωση
+ στην θύρα 5100. Το όνομα του εκτυπωτή στο δίκτυο είναι
+ <hostid>scrivener</hostid>. Εδώ είναι το φίλτρο κειμένου για τον
+ εκτυπωτή:</para>
+
+ <programlisting>#!/bin/sh
+#
+# diablo-if-net - Text filter for Diablo printer `scrivener' listening
+# on port 5100. Installed in /usr/local/libexec/diablo-if-net
+#
+exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-restricting">
+ <title>Έλεγχος Πρόσβασης και Περιορισμοί στη Χρήση των Εκτυπωτών</title>
+
+ <indexterm>
+ <primary>εκτυπωτές</primary>
+ <secondary>έλεγχος πρόσβασης</secondary>
+ </indexterm>
+ <para>Αυτή η ενότητα δίνει πληροφορίες για τον έλεγχο πρόσβασης και τον
+ περιορισμό χρήσης των εκτυπωτών. Το σύστημα
+ <application>LPD</application> σας επιτρέπει να ελέγχετε ποιός μπορεί
+ να έχει πρόσβαση σε κάθε εκτυπωτή, τόσο τοπικά όσο και απομακρυσμένα,
+ και επίσης αν μπορούν οι χρήστες να εκτυπώνουν πολλαπλά αντίγραφα,
+ πόσο μεγάλες μπορούν να είναι οι εργασίες τους, και πόσο μεγάλες
+ μπορούν να γίνουν οι ουρές αναμονής (print queues).</para>
+
+ <sect3 id="printing-advanced-restricting-copies">
+ <title>Περιορισμός Εκτύπωσης Πολλαπλών Αντιγράφων</title>
+
+ <para>Το σύστημα <application>LPD</application> διευκολύνει τους
+ χρήστες να εκτυπώσουν πολλαπλά αντίγραφα ενός αρχείου. Οι χρήστες
+ μπορούν να εκτυπώνουν εργασίες με
+ <command>lpr <option>-#5</option></command> (για
+ παράδειγμα) και να παίρνουν πέντε αντίγραφα κάθε αρχείου της
+ εργασίας εκτύπωσης. Το αν αυτό είναι καλό, εξαρτάται από
+ εσάς.</para>
+
+ <para>Αν πιστεύετε πως τα πολλαπλά αντίγραφα δημιουργούν άσκοπη
+ καταπόνηση των εκτυπωτών σας, μπορείτε να απενεργοποιήσετε
+ την επιλογή <option>-#</option> στο &man.lpr.1; προσθέτοντας την
+ ικανότητα <literal>sc</literal> στο αρχείο
+ <filename>/etc/printcap</filename>. Όταν οι χρήστες αποστέλλουν
+ εργασίες με την επιλογή <option>-#</option>, θα βλέπουν:</para>
+
+ <screen>lpr: multiple copies are not allowed</screen>
+
+ <para>Σημειώστε πως αν έχετε ρυθμίσει πρόσβαση σε έναν εκτυπωτή
+ απομακρυσμένα (δείτε την ενότητα <link
+ linkend="printing-advanced-network-rm">Εκτυπωτές Εγκατεστημένοι σε
+ Απομακρυσμένους Υπολογιστές</link>), θα χρειαστεί να προσθέσετε
+ την ικανότητα <literal>sc</literal> σε όλα τα απομακρυσμένα αρχεία
+ <filename>/etc/printcap</filename>, διαφορετικά οι χρήστες θα
+ έχουν ακόμη την δυνατότητα να αποστέλλουν εργασίες πολλαπλών
+ αντιγράφων χρησιμοποιώντας διαφορετικό κόμβο.</para>
+
+ <para>Εδώ είναι ένα παράδειγμα. Αυτό είναι το αρχείο
+ <filename>/etc/printcap</filename> για τον κόμβο
+ <hostid>rose</hostid>. Ο εκτυπωτής <literal>rattan</literal>
+ είναι δυνατό μηχάνημα και επιτρέπει την εκτύπωση πολλαπλών
+ αντιγράφων, αλλά ο εκτυπωτής laser <literal>bamboo</literal> είναι
+ πιο ευαίσθητο, επομένως θα απενεργοποιήσουμε τη δυνατότητα
+ πολλαπλών αντιγράφων προσθέτοντας την ικανότητα
+ <literal>sc</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - restrict multiple copies on bamboo
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:\
+ :if=<filename>/usr/local/libexec/if-simple</filename>:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:sc:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=<filename>/usr/local/libexec/psif</filename>:\
+ :df=<filename>/usr/local/libexec/psdf</filename>:</programlisting>
+
+ <para>Τώρα, θα χρειαστεί να προσθέσουμε επίσης την ικανότητα
+ <literal>sc</literal> στο αρχείο <filename>/etc/printcap</filename>
+ του κόμβου <hostid>orchid</hostid> (και ενώ βρισκόμαστε σε αυτό,
+ επιτρέψτε μας να απενεργοποιήσουμε τα πολλαπλά αντίγραφα για τον
+ εκτυπωτή <literal>teak</literal>):</para>
+
+ <programlisting>#
+# /etc/printcap for host orchid - no multiple copies for local
+# printer teak or remote printer bamboo
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:sd=<filename class="directory">/var/spool/lpd/teak</filename>:mx#0:sc:\
+ :if=<filename>/usr/local/libexec/ifhp</filename>:\
+ :vf=<filename>/usr/local/libexec/vfhp</filename>:\
+ :of=<filename>/usr/local/libexec/ofhp</filename>:
+
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :lp=:rm=rose:rp=rattan:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :lp=:rm=rose:rp=bamboo:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:sc:</programlisting>
+
+ <para>Χρησιμοποιώντας την ικανότητα <literal>sc</literal>,
+ προλαμβάνουμε την χρήση των εντολών
+ <command>lpr <option>-#</option></command>,
+ αλλά δεν έχουμε ακόμη την δυνατότητα να παρεμποδίσουμε τους χρήστες
+ να τρέξουν την εντολή &man.lpr.1; πολλές φορές, ή να αποστείλουν
+ το ίδιο αρχείο πολλές φορές σε μία μοναδική εργασία, όπως
+ εδώ:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <filename><replaceable>forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign</replaceable></filename></command></userinput></screen>
+
+ <para>Υπάρχουν πολλοί τρόποι πρόληψης αυτών των ενεργειών
+ (συμπεριλαμβάνοντας και την περίπτωση να το αγνοήσετε) που είστε
+ ελεύθεροι να εξερευνήσετε.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-restricting-access">
+ <title>Περιορίζοντας την Πρόσβαση σε Εκτυπωτές</title>
+
+ <para>Μπορείτε να ελέγχετε ποιός μπορεί να εκτυπώνει σε ποιόν
+ εκτυπωτή χρησιμοποιώντας τους μηχανισμούς ομάδων (groups) του &unix;
+ και την ικανότητα <literal>rg</literal> στο
+ <filename>/etc/printcap</filename>. Απλά τοποθετήστε τους χρήστες
+ που θέλετε να έχουν πρόσβαση σε κάποιον εκτυπωτή σε μια
+ συγκεκριμένη ομάδα (χρηστών), και δηλώστε αυτή την ομάδα στην
+ ικανότητα <literal>rg</literal>.</para>
+
+ <para>Όλοι οι χρήστες που δεν ανήκουν στην ομάδα (συμπεριλαμβανομένου
+ και του <username>root</username>) θα δέχονται το ακόλουθο μήνυμα:
+ <errorname>lpr: Not a member of the restricted group</errorname>
+ όταν προσπαθούν να εκτυπώσουν στον ελεγχόμενο εκτυπωτή.</para>
+
+ <para>Όπως και με την ικανότητα <literal>sc</literal>
+ (περιορισμού πολλαπλών αντιγράφων), θα χρειαστεί να προσδιορίσετε
+ την <literal>rg</literal> στους απομακρυσμένους κόμβους που θα
+ έχουν πρόσβαση στους εκτυπωτές σας, αν νομίζετε πως αυτό είναι
+ σωστό (δείτε την ενότητα <link
+ linkend="printing-advanced-network-rm">Εκτυπωτές Εγκατεστημένοι
+ σε Απομακρυσμένους Υπολογιστές</link>).</para>
+
+ <para>Για παράδειγμα, θα αφήσουμε για όλους ελεύθερη την πρόσβαση
+ στον εκτυπωτή <literal>rattan</literal>, αλλά μόνο οι χρήστες της
+ ομάδας <literal>artists</literal> θα μπορούν να χρησιμοποιήσουν τον
+ <literal>bamboo</literal>. Εδώ είναι το γνωστό μας
+ <filename>/etc/printcap</filename> για τον κόμβο
+ <hostid>rose</hostid>:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose - restricted group for bamboo
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:\
+ :if=<filename>/usr/local/libexec/if-simple</filename>:
+
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:sc:rg=artists:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=<filename>/usr/local/libexec/psif</filename>:\
+ :df=<filename>/usr/local/libexec/psdf</filename>:</programlisting>
+
+ <para>Επιτρέψτε μας να μην αλλάξουμε το αρχείο
+ <filename>/etc/printcap</filename> από το άλλο παράδειγμα
+ (για τον υπολογιστή <hostid>orchid</hostid>). Φυσικά, οποιοσδήποτε
+ χρήστης του <hostid>orchid</hostid> μπορεί να εκτυπώσει στον
+ <literal>bamboo</literal>. Ίσως όμως να επιτρέπουμε μόνον σε
+ συγκεκριμένους χρήστες την πρόσβαση στον υπολογιστή
+ <hostid>orchid</hostid>, και θέλουμε αυτοί οι χρήστες να έχουν
+ πρόσβαση στον εκτυπωτή. Ή ίσως πάλι, και όχι.</para>
+
+ <note>
+ <para>Επιτρέπεται μόνο μια περιορισμένη ομάδα ανά εκτυπωτή.</para>
+ </note>
+ </sect3>
+
+ <sect3 id="printing-advanced-restricting-sizes">
+ <title>Έλεγχος Μεγέθους των Απεσταλμένων Εργασιών</title>
+
+ <indexterm><primary>εργασίες εκτύπωσης</primary></indexterm>
+ <para>Αν πολλοί χρήστες έχουν πρόσβαση στους εκτυπωτές σας, πιθανώς
+ να χρειάζεται να θέσετε ένα ανώτατο όριο στο επιτρεπόμενο μέγεθος
+ αρχείων που μπορούν να αποστείλουν οι χρήστες για εκτύπωση. Ακόμα
+ και αν υπάρχει αρκετός χώρος στο σύστημα αρχείων που φιλοξενεί τους
+ καταλόγους spool, θα πρέπει ωστόσο να βεβαιωθείτε ότι επαρκεί για
+ τις εργασίες όλων των χρηστών.</para>
+
+ <indexterm>
+ <primary>εργασίες εκτύπωσης</primary>
+ <secondary>έλεγχος</secondary>
+ </indexterm>
+ <para>Το <application>LPD</application> σας επιτρέπει να
+ οριοθετήσετε το μέγιστο αριθμό bytes που περιέχει μια εργασία, με
+ την ικανότητα <literal>mx</literal>. Η μονάδα μέτρησης είναι σε
+ <literal>BUFSIZ</literal> blocks, τα οποία είναι 1024 bytes. Αν
+ θέσετε μηδέν σε αυτή την ικανότητα, δεν θα υπάρχουν όρια στο
+ μέγεθος των αρχείων. Ωστόσο, αν δεν έχει οριστεί η ικανότητα
+ <literal>mx</literal>, τότε θα χρησιμοποιείται η προεπιλεγμένη τιμή
+ των 1000 blocks.</para>
+
+ <note>
+ <para>Το όριο εφαρμόζεται στα <emphasis>αρχεία</emphasis> μιας
+ εργασίας, και <emphasis>όχι</emphasis> στο συνολικό μέγεθος της
+ εργασίας.</para>
+ </note>
+
+ <para>Το <application>LPD</application> δεν θα απορρίψει ένα αρχείο
+ που ξεπερνά το όριο μεγέθους που έχετε θέσει. Αντιθέτως, θα το
+ τοποθετήσει στην ουρά αναμονής με μέγεθος ίσο με το μέγιστο
+ επιτρεπτό, το οποίο και θα εκτυπώσει τελικά. Το υπόλοιπο αρχείο
+ απορρίπτεται. Αν αυτός είναι σωστός ή λανθασμένος τρόπος
+ αντιμετώπισης για την υπέρβαση του ορίου, είναι θέμα προς
+ συζήτηση.</para>
+
+ <para>Ας οριοθετήσουμε στο παράδειγμα μας τους εκτυπωτές
+ <literal>rattan</literal> και <literal>bamboo</literal>. Επειδή
+ τα αρχεία &postscript; των <groupname>artists</groupname> τείνουν
+ προς μεγάλα μεγέθη, θα θέσουμε ένα όριο πέντε megabytes. Δεν θα
+ θέσουμε όρια για τον εκτυπωτή γραμμής απλού κειμένου:</para>
+
+ <programlisting>#
+# /etc/printcap for host rose
+#
+
+#
+# No limit on job size:
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:mx#0:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:\
+ :if=<filename>/usr/local/libexec/if-simple</filename>:
+
+#
+# Limit of five megabytes:
+#
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:sc:rg=artists:mx#5000:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=<filename>/usr/local/libexec/psif</filename>:\
+ :df=<filename>/usr/local/libexec/psdf</filename>:</programlisting>
+
+ <para>Και πάλι, τα όρια εφαρμόζονται μόνο για τους τοπικούς χρήστες.
+ Αν έχετε ενεργοποιήσει απομακρυσμένη πρόσβαση για τους εκτυπωτές
+ σας, τα όρια αυτά δεν ισχύουν για τους απομακρυσμένους χρήστες. Θα
+ χρειαστεί να προσδιορίσετε με την ικανότητα <literal>mx</literal>
+ και τα απομακρυσμένα αρχεία <filename>/etc/printcap</filename>.
+ Δείτε την ενότητα <link
+ linkend="printing-advanced-network-rm">Εκτυπωτές Εγκατεστημένοι σε
+ Απομακρυσμένους Υπολογιστές</link> για περισσότερες πληροφορίες
+ σχετικά με τις εκτυπώσεις από απομακρυσμένους υπολογιστές.</para>
+
+ <para>Υπάρχει και άλλος εξειδικευμένος τρόπος περιορισμού του μεγέθους
+ εργασιών για απομακρυσμένους εκτυπωτές. Δείτε την ενότητα <link
+ linkend="printing-advanced-restricting-remote">Περιορισμός
+ Εργασιών από Απομακρυσμένους Υπολογιστές</link>.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-restricting-remote">
+ <title>Περιορισμός Εργασιών από Απομακρυσμένους Υπολογιστές</title>
+
+ <para>Το σύστημα παροχέτευσης <application>LPD</application> παρέχει
+ διάφορους τρόπους περιορισμού των εργασιών από απομακρυσμένους
+ υπολογιστές:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Παρεμπόδιση υπολογιστών</term>
+
+ <listitem>
+ <para>Μπορείτε να ελέγχετε από ποιους απομακρυσμένους
+ υπολογιστές θα δέχεται αιτήσεις εκτύπωσης το τοπικό
+ <application>LPD</application>, χρησιμοποιώντας τα αρχεία
+ <filename>/etc/hosts.equiv</filename> και
+ <filename>/etc/hosts.lpd</filename>. Το
+ <application>LPD</application> ελέγχει να δει αν η εισερχόμενη
+ αίτηση προέρχεται από έναν υπολογιστή που αναφέρεται σε κάποιο
+ από τα δύο αρχεία. Αν όχι, το <application>LPD</application>
+ απορρίπτει την αίτηση.</para>
+
+ <para>Η μορφή αυτών των αρχείων είναι απλή: ένα όνομα υπολογιστή
+ ανά γραμμή. Παρατηρήστε πως το αρχείο
+ <filename>/etc/hosts.equiv</filename> χρησιμοποιείται και από
+ το πρωτόκολλο &man.ruserok.3;, και επηρεάζει προγράμματα όπως
+ το &man.rsh.1; και το &man.rcp.1;, επομένως να είστε
+ προσεκτικοί.</para>
+
+ <para>Για παράδειγμα, εδώ είναι το αρχείο
+ <filename>/etc/hosts.lpd</filename> στον υπολογιστή
+ <hostid>rose</hostid>:</para>
+
+ <programlisting>orchid
+violet
+madrigal.fishbaum.de</programlisting>
+
+ <para>Αυτό σημαίνει πως ο <hostid>rose</hostid> δέχεται
+ αιτήσεις από τους υπολογιστές <hostid>orchid</hostid>,
+ <hostid>violet</hostid>, και
+ <hostid role="fqdn">madrigal.fishbaum.de</hostid>. Αν
+ κάποιος άλλος υπολογιστής προσπαθήσει να αποκτήσει πρόσβαση
+ στο <application>LPD</application> του <hostid>rose</hostid>,
+ η εργασία θα απορριφθεί.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Περιορισμοί στο Μέγεθος</term>
+
+ <listitem>
+ <para>Μπορείτε να ελέγχετε πόσος ελεύθερος χώρος πρέπει να
+ απομένει στο σύστημα αρχείων όπου βρίσκεται ο κατάλογος
+ spool. Δημιουργήστε ένα αρχείο με όνομα
+ <filename>minfree</filename> στον κατάλογο spool για τον
+ τοπικό εκτυπωτή. Εισάγετε σε αυτό το αρχείο έναν αριθμό που
+ αντιπροσωπεύει πόσα blocks δίσκου (512 bytes) ελεύθερου χώρου
+ πρέπει να υπάρχουν για να είναι δεκτή μια απομακρυσμένη
+ εργασία.</para>
+
+ <para>Αυτό σας επιτρέπει να είστε βέβαιοι πως οι απομακρυσμένοι
+ χρήστες δεν θα γεμίσουν το σύστημα αρχείων σας. Μπορείτε
+ επίσης να το χρησιμοποιήσετε για να δώσετε μερική
+ προτεραιότητα στους τοπικούς χρήστες: οι τοπικοί χρήστες θα
+ μπορούν να στέλνουν εργασίες στην ουρά αναμονής ακόμη και
+ όταν ο ελεύθερος χώρος του δίσκου έχει πέσει κάτω από τον
+ αριθμό που αναφέρεται στο αρχείο
+ <filename>minfree</filename>.</para>
+
+ <para>Για παράδειγμα, ας προσθέσουμε ένα αρχείο
+ <filename>minfree</filename> για τον εκτυπωτή
+ <literal>bamboo</literal>. Εξετάζουμε το
+ <filename>/etc/printcap</filename> για να βρούμε τον κατάλογο
+ spool για αυτόν τον εκτυπωτή. Εδώ είναι η καταχώριση για τον
+ <literal>bamboo</literal>:</para>
+
+ <programlisting>bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/bamboo</filename>:sc:rg=artists:mx#5000:\
+ :lp=<filename class="devicefile">/dev/ttyu5</filename>:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
+ :if=<filename>/usr/local/libexec/psif</filename>:\
+ :df=<filename>/usr/local/libexec/psdf</filename>:</programlisting>
+
+ <para>Ο κατάλογος spool καθορίζεται στην ικανότητα
+ <literal>sd</literal>. Θα θέσουμε τρία megabytes (ισοδυναμεί
+ με 6144 disk blocks) ως το μέγεθος του ελεύθερου χώρου που
+ πρέπει να υπάρχει στο σύστημα αρχείων, ώστε το
+ <application>LPD</application> να δέχεται απομακρυσμένες
+ εργασίες:</para>
+
+ <screen>&prompt.root; <userinput><command>echo 6144 &gt; <filename>/var/spool/lpd/bamboo/minfree</filename></command></userinput></screen>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Περιορισμοί χρηστών</term>
+
+ <listitem>
+ <para>Μπορείτε να ελέγχετε ποιός απομακρυσμένος χρήστης μπορεί
+ να εκτυπώνει στους τοπικούς εκτυπωτές ορίζοντας την ικανότητα
+ <literal>rs</literal> στο <filename>/etc/printcap</filename>.
+ Όταν εμφανίζεται η <literal>rs</literal> σε μια καταχώριση
+ κάποιου τοπικά συνδεδεμένου εκτυπωτή, το
+ <application>LPD</application> θα δεχθεί εργασίες από
+ απομακρυσμένους υπολογιστές <emphasis>αν</emphasis> ο χρήστης
+ που αποστέλλει την εργασία έχει λογαριασμό στον τοπικό
+ υπολογιστή και με το ίδιο όνομα χρήστη. Διαφορετικά, το
+ <application>LPD</application> θα απορρίψει την
+ εργασία.</para>
+
+ <para>Αυτή η ικανότητα είναι ιδιαίτερα χρήσιμη σε περιβάλλοντα
+ όπου υπάρχουν (για παράδειγμα) διαφορετικά επιχειρησιακά
+ τμήματα που μοιράζονται το δίκτυο, και κάποιοι χρήστες
+ πρέπει να υπερβαίνουν τα σύνορα του τμήματος. Δημιουργώντας
+ λογαριασμούς στα συστήματα σας, θα μπορούν να χρησιμοποιούν
+ τους εκτυπωτές σας από το δικό τους τμήμα της επιχείρησης.
+ Αν επιθυμείτε να τους επιτρέπετε να χρησιμοποιούν
+ <emphasis>μόνο</emphasis> τους εκτυπωτές και όχι τα
+ μηχανήματα σας, τότε μπορείτε να δημιουργήσετε
+ λογαριασμούς <quote>token</quote>, δίχως προσωπικούς
+ καταλόγους και με κέλυφος που δεν μπορεί να χρησιμοποιηθεί,
+ όπως το <filename>/usr/bin/false</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-advanced-acct">
+ <title>Καταμέτρηση Χρήσης Εκτυπωτών</title>
+
+ <indexterm>
+ <primary>καταμέτρηση</primary>
+ <secondary>εκτυπωτής</secondary>
+ </indexterm>
+ <para>Αποφασίσατε ότι χρειάζεται να χρεώνετε για τις εκτυπώσεις σας.
+ Και γιατί όχι; Το χαρτί και το μελάνι κοστίζουν χρήματα. Και
+ επιπλέον υπάρχει κόστος συντήρησης &mdash; οι εκτυπωτές αποτελούνται
+ από κινητά μέρη και έχουν την τάση να χαλάνε. Έχετε εξετάσει τους
+ εκτυπωτές σας, τον τρόπο που χρησιμοποιούνται, και το κόστος
+ συντήρησης και έχετε υπολογίσει μια χρέωση ανά σελίδα (ή ανά μέτρο,
+ ανά πόδι, ή άλλη μονάδα μέτρησης). Το θέμα είναι τώρα πως μπορείτε
+ πραγματικά να ξεκινήσετε να καταμετράτε τις εκτυπώσεις σας.</para>
+
+ <para>Τα άσχημα νέα είναι πως το σύστημα παροχέτευσης του
+ <application>LPD</application> δεν παρέχει πολύ βοήθεια σε αυτόν τον
+ τομέα. Η καταμέτρηση εξαρτάται σε μεγάλο βαθμό από τον τύπο του
+ εκτυπωτή που χρησιμοποιείτε, τους τύπους αρχείων που εκτυπώνετε, και
+ τις <emphasis>δικές σας</emphasis> απαιτήσεις για την χρέωση των
+ εκτυπώσεων.</para>
+
+ <para>Για την καταμέτρηση, θα πρέπει να μετατρέψετε το φίλτρο κειμένου
+ (για τη χρέωση εργασιών απλού κειμένου) του εκτυπωτή και τα φίλτρα
+ μετατροπής (για τη χρέωση όλων των άλλων τύπων αρχείων) ώστε να
+ μετρούν σελίδες ή να ζητούν να μάθουν από τον εκτυπωτή τον αριθμό των
+ εκτυπωμένων σελίδων. Δεν θα σας βοηθήσει ιδιαίτερα η χρήση φίλτρου
+ εξόδου, από τη στιγμή που δεν μπορεί να κάνει καταμέτρηση. Δείτε την
+ ενότητα <link linkend="printing-advanced-filter-intro">Φίλτρα</link>.</para>
+
+ <para>Γενικά, υπάρχουν δύο τρόποι για να κάνετε καταμέτρηση:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Η <emphasis>Περιοδική καταμέτρηση</emphasis> είναι ο πιο
+ συνηθισμένος τρόπος, πιθανώς γιατί είναι ο ευκολότερος. Κάθε φορά
+ που κάποιος εκτυπώνει μια εργασία, το φίλτρο δημιουργεί ένα
+ αρχείο καταγραφής όπου αναφέρει τον χρήστη, τον υπολογιστή, και
+ τον αριθμό των σελίδων. Κάθε μήνα, εξάμηνο, χρόνο, ή άλλη χρονική
+ περίοδο της αρεσκείας σας, συλλέγετε τα αρχεία καταγραφής για τους
+ διάφορους εκτυπωτές, λογαριάζετε τις σελίδες που αναλογούν στους
+ χρήστες, και χρεώνετε αναλόγως. Έπειτα σβήνετε τα στοιχεία από τα
+ αρχεία καταγραφής, ξεκινώντας από καθαρή κατάσταση για την επόμενη
+ περίοδο.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η <emphasis>Καταμέτρηση κατά τη χρήση</emphasis> είναι
+ λιγότερο γνωστή, ίσως επειδή είναι πιο δύσκολος τρόπος. Σε αυτή
+ τη μέθοδο τα φίλτρα χρεώνουν τους χρήστες για τις εκτυπώσεις τους
+ αμέσως μόλις αυτές πραγματοποιηθούν. Όπως και με την καταγραφή
+ χρήσης δίσκου (disk quotas), η καταμέτρηση είναι άμεση. Μπορείτε
+ να προλαμβάνετε την χρήση εκτυπωτών από χρήστες που έχουν χτυπήσει
+ κόκκινο, και μπορείτε να παρέχετε στους χρήστες ένα τρόπο για να
+ ελέγχουν και να ρυθμίζουν τον <quote>όγκο εκτυπώσεων (print
+ quotas).</quote> Αλλά αυτή η μέθοδος προϋποθέτει λίγο κώδικα
+ βάσεων δεδομένων για την καταγραφή χρηστών και των εν λόγω
+ μεγεθών.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Το σύστημα παροχέτευσης <application>LPD</application>
+ υποστηρίζει εύκολα και τις δύο μεθόδους: από τη στιγμή που πρέπει
+ εσείς να παρέχετε τα φίλτρα (τις περισσότερες φορές), θα πρέπει
+ επίσης να παρέχετε και τον κώδικα καταμέτρησης. Αλλά υπάρχει και ένα
+ καλό σε αυτή την υπόθεση: έχετε απεριόριστη ευελιξία στις μεθόδους
+ καταμέτρησης. Για παράδειγμα, μπορείτε να επιλέξετε περιοδική ή κατά
+ τη χρήση καταμέτρηση. Μπορείτε να επιλέξετε τις πληροφορίες που θα
+ καταγράφονται: ονόματα χρηστών, ονόματα υπολογιστών, τύπους εργασιών,
+ τυπωμένες σελίδες, τετραγωνικά μέτρα χαρτιού που χρησιμοποιήθηκε,
+ πόσος χρόνος χρειάστηκε για να γίνει η εκτύπωση, και πολλά ακόμα. Και
+ όλα αυτά γίνονται μετατρέποντας τα φίλτρα για να αποθηκεύουν αυτές τις
+ πληροφορίες.</para>
+
+ <sect3>
+ <title>Γρήγορη και Πρόχειρη Καταμέτρηση Εκτυπώσεων</title>
+
+ <para>Το &os; διατίθεται με δύο προγράμματα που μπορούν να παρέχουν
+ άμεσα απλή περιοδική καταμέτρηση. Είναι το φίλτρο κειμένου
+ <command>lpf</command>, που περιγράφεται στην ενότητα <link
+ linkend="printing-advanced-lpf">lpf: ένα Φίλτρο Κειμένου</link>,
+ και το &man.pac.8;, ένα πρόγραμμα που συλλέγει και αθροίζει
+ καταχωρίσεις από αρχεία καταμετρήσεων.</para>
+
+ <para>Όπως αναφέραμε στην ενότητα των φίλτρων (<link
+ linkend="printing-advanced-filters">Φίλτρα</link>), το
+ <application>LPD</application> ξεκινά τα φίλτρα κειμένου και
+ μετατροπής περνώντας στην γραμμή εντολών του φίλτρου και το όνομα
+ του αρχείου καταγραφής. Τα φίλτρα μπορούν να χρησιμοποιήσουν αυτή
+ την παράμετρο για να ξέρουν που να γράφουν τις καταχωρίσεις
+ καταμέτρησης. Το όνομα του αρχείου καταμέτρησης φαίνεται στην
+ ικανότητα <literal>af</literal> στο
+ <filename>/etc/printcap</filename>, και αν δεν ορίζεται η πλήρης
+ διαδρομή του, χρησιμοποιείται η σχετική διαδρομή ως προς τον
+ κατάλογο spool.</para>
+
+ <para>Το <application>LPD</application> ξεκινά το
+ <command>lpf</command> με παραμέτρους πλάτους και μήκους σελίδας
+ (από τις ικανότητες <literal>pw</literal> και
+ <literal>pl</literal>). Το <command>lpf</command> χρησιμοποιεί
+ αυτές τις παραμέτρους για να προσδιορίσει την ποσότητα χαρτιού που
+ χρησιμοποιήθηκε. Μετά την αποστολή του αρχείου στον εκτυπωτή,
+ γράφει μια καταχώριση καταμέτρησης στο αρχείο καταγραφής. Οι
+ καταχωρίσεις μοιάζουν με τις παρακάτω:</para>
+
+ <programlisting>2.00 rose:andy
+3.00 rose:kelly
+3.00 orchid:mary
+5.00 orchid:mary
+2.00 orchid:zhang</programlisting>
+
+ <para>Θα πρέπει να χρησιμοποιείτε ξεχωριστό αρχείο καταγραφής για
+ κάθε εκτυπωτή, αφού το <command>lpf</command> δεν έχει ενσωματωμένη
+ δυνατότητα κλειδώματος αρχείου (file locking), και δύο
+ <command>lpf</command> μπορούν να καταστρέψουν το ένα την
+ καταχώριση του άλλου αν πρόκειται να γράψουν ταυτόχρονα στο ίδιο
+ αρχείο. Ένας εύκολος τρόπος για να βεβαιώσετε την μοναδικότητα
+ αρχείου καταγραφής ανά εκτυπωτή είναι να χρησιμοποιήσετε την
+ ικανότητα <literal>af=acct</literal> στο
+ <filename>/etc/printcap</filename>. Έτσι, κάθε αρχείο καταγραφής
+ θα βρίσκεται στον κατάλογο spool του αντίστοιχου εκτυπωτή, σε ένα
+ αρχείο με όνομα <filename>acct</filename>.</para>
+
+ <para>Όταν είστε έτοιμοι να χρεώσετε τους χρήστες για τις εκτυπώσεις,
+ εκτελέστε το πρόγραμμα &man.pac.8;. Απλά μεταβείτε στον κατάλογο
+ spool για τον εκτυπωτή που κάνετε καταμέτρηση και πληκτρολογήστε
+ <literal>pac</literal>. Θα εμφανιστεί ένας απολογισμός με χρεώσεις
+ σε δολάρια, όπως βλέπετε στη συνέχεια:</para>
+
+ <screen> Login pages/feet runs price
+orchid:kelly 5.00 1 $ 0.10
+orchid:mary 31.00 3 $ 0.62
+orchid:zhang 9.00 1 $ 0.18
+rose:andy 2.00 1 $ 0.04
+rose:kelly 177.00 104 $ 3.54
+rose:mary 87.00 32 $ 1.74
+rose:root 26.00 12 $ 0.52
+
+total 337.00 154 $ 6.74</screen>
+
+ <para>Παρακάτω είναι οι παράμετροι που δέχεται το &man.pac.8;:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-P<replaceable>printer</replaceable></option></term>
+
+ <listitem>
+ <para>Για ποιό <replaceable>printer</replaceable> να
+ κάνει απολογισμό. Αυτή η επιλογή δουλεύει μόνο αν υπάρχει η
+ πλήρης διαδρομή στην ικανότητα <literal>af</literal> στο
+ <filename>/etc/printcap</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>Ταξινομεί το αποτέλεσμα ανά κόστος αντί της αλφαβητικής
+ ταξινόμησης των χρηστών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-m</option></term>
+
+ <listitem>
+ <para>Αγνοεί το όνομα του υπολογιστή στα αρχεία καταγραφής. Με
+ αυτή την επιλογή, ο χρήστης <username>smith</username> στον
+ υπολογιστή <hostid>alpha</hostid> είναι ο ίδιος χρήστης με τον
+ <username>smith</username> στον υπολογιστή
+ <hostid>gamma</hostid>. Χωρίς την επιλογή αυτή, είναι
+ διαφορετικοί χρήστες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-p<replaceable>price</replaceable></option></term>
+
+ <listitem>
+ <para>Υπολογίζει τις χρεώσεις με
+ <replaceable>price</replaceable> (τιμή) σε δολάρια ανά σελίδα
+ ή ανά πόδι αντί για την τιμή από την ικανότητα
+ <literal>pc</literal> στο <filename>/etc/printcap</filename>,
+ ή αλλιώς δύο σεντς (από προεπιλογή). Μπορείτε να ορίσετε
+ ως <replaceable>price</replaceable> μια τιμή με δεκαδικά
+ ψηφία (floating point).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+
+ <listitem>
+ <para>Αντιστρέφει την σειρά ταξινόμησης.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-s</option></term>
+
+ <listitem>
+ <para>Δημιουργεί ένα αρχείο απολογισμού των καταμετρήσεων και
+ καθαρίζει τα περιεχόμενα των αρχείων καταγραφής.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>name</replaceable>
+ <replaceable>&hellip;</replaceable></term>
+
+ <listitem>
+ <para>Τυπώνει πληροφορίες αναφοράς μόνο για τα συγκεκριμένα
+ <replaceable>name</replaceable> (ονόματα) χρηστών.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Στον προεπιλεγμένο απολογισμό που παράγει το &man.pac.8;,
+ βλέπετε των αριθμό των τυπωμένων σελίδων ανά χρήστη από τους
+ διάφορους υπολογιστές. Αν, στο χώρο σας, ο υπολογιστής δεν έχει
+ σημασία (γιατί οι χρήστες μπορούν να χρησιμοποιήσουν οποιονδήποτε
+ θέλουν), εκτελέστε την εντολή
+ <command>pac <option>-m</option></command>, για να
+ δημιουργήσετε τον ακόλουθο απολογισμό:</para>
+
+ <screen> Login pages/feet runs price
+andy 2.00 1 $ 0.04
+kelly 182.00 105 $ 3.64
+mary 118.00 35 $ 2.36
+root 26.00 12 $ 0.52
+zhang 9.00 1 $ 0.18
+
+total 337.00 154 $ 6.74</screen>
+
+
+ <para>Για τον ορισμό ποσοστού χρέωσης σε δολάρια, το &man.pac.8;
+ χρησιμοποιεί την ικανότητα <literal>pc</literal> στο αρχείο
+ <filename>/etc/printcap</filename> (προεπιλεγμένη τιμή 200, ή 2
+ σεντς ανά σελίδα). Προσδιορίστε σε αυτήν την ικανότητα, σε
+ εκατοστά του σεντ, την τιμή ανά σελίδα ή ανά πόδι που θέλετε να
+ χρεώνετε για τις εκτυπώσεις. Μπορείτε να προσπεράσετε αυτή την
+ τιμή όταν τρέχετε το &man.pac.8; με την επιλογή
+ <option>-p</option>. H μονάδα μέτρησης για την επιλογή
+ <option>-p</option> είναι σε δολάρια, όχι σε εκατοστά του σεντ.
+ Για παράδειγμα,
+
+ <screen>&prompt.root; <userinput><command>pac <option>-p1.50</option></command></userinput></screen>
+
+ ορίζει κόστος κάθε σελίδας ένα δολάριο και πενήντα σεντς.
+ Μπορείτε πραγματικά να έχετε πολλά έσοδα χρησιμοποιώντας αυτές τις
+ χρεώσεις.</para>
+
+ <para>Τέλος, εκτελώντας <command>pac <option>-s</option></command> θα
+ αποθηκεύσετε τις πληροφορίες του απολογισμού σε ένα αρχείο
+ καταγραφής απολογισμού, που θα έχει το ίδιο όνομα με το αρχείο
+ καταγραφής του εκτυπωτή, αλλά με κατάληξη <literal>_sum</literal>.
+ Έπειτα καθαρίζεται το αρχείο καταγραφής. Όταν εκτελέσετε πάλι το
+ &man.pac.8;, θα ξαναδιαβάσει το αρχείο απολογισμού, για να πάρει τα
+ αρχικά σύνολα, και θα προσθέσει τις πληροφορίες από το κανονικό
+ αρχείο καταγραφής.</para>
+ </sect3>
+
+ <sect3>
+ <title>Πως Μπορείτε να Μετρήσετε τις Τυπωμένες Σελίδες;</title>
+
+ <para>Για να μετρήσετε τις τυπωμένες σελίδες με έστω στοιχειώδη
+ λεπτομέρεια, θα πρέπει να προσδιορίσετε πόσο χαρτί χρειάζεται μια
+ εργασία. Αυτό είναι το ουσιαστικότερο πρόβλημα στην καταμέτρηση
+ εκτυπώσεων.</para>
+
+ <para>Για εργασίες απλού κειμένου, το πρόβλημα δεν είναι δύσκολο να
+ λυθεί: Μετράτε πόσες γραμμές υπάρχουν σε μια εργασία και τις
+ συγκρίνετε με πόσες γραμμές μπορεί να τυπώσει ο εκτυπωτής σας σε
+ μια σελίδα. Μην ξεχάσετε να συμπεριλάβετε τα backspaces που
+ προκαλούν υπερτύπωση, ή επιμήκης λογικές γραμμές που αναδιπλώνονται
+ σε περισσότερες από μία φυσικές γραμμές.</para>
+
+ <para>Το φίλτρο κειμένου <command>lpf</command> (που παρουσιάσαμε στο
+ <link linkend="printing-advanced-lpf">lpf: ένα Φίλτρο
+ Κειμένου</link>) λαμβάνει υπόψιν του αυτά τα στοιχεία όταν κάνει
+ καταμέτρηση. Αν γράφετε κάποιο φίλτρο κειμένου που χρειάζεται να
+ κάνει καταμέτρηση, ίσως να θέλετε να ελέγξετε τον πηγαίο κώδικα
+ του <command>lpf</command>.</para>
+
+ <para>Πως χειρίζεστε όμως τους υπόλοιπους τύπους αρχείων;</para>
+
+ <para>Για τις μετατροπές από DVI-σε-LaserJet ή από
+ DVI-σε-&postscript;, μπορείτε να κάνετε το φίλτρο σας να αναλύει
+ την έξοδο του <command>dvilj</command> ή του
+ <command>dvips</command> και να ελέγχει πόσες σελίδες
+ δημιουργήθηκαν από τη μετατροπή. Ίσως μπορέσετε να κάνετε κάτι
+ παρόμοιο και με διαφορετικούς τύπους αρχείων και προγράμματα
+ μετατροπής</para>
+
+ <para>Ωστόσο, όλες αυτές οι μέθοδοι έχουν το μειονέκτημα πως ο
+ εκτυπωτής πιθανώς στην πραγματικότητα να μην εκτυπώσει όλες τις
+ σελίδες. Για παράδειγμα, θα μπορούσε να μπλοκαριστεί το χαρτί, ή να
+ τελειώσει το τόνερ, ή ακόμη να συμβεί και έκρηξη &mdash;ενώ ο
+ χρήστης θα συνεχίσει να χρεώνεται.</para>
+
+ <para>Τι θα μπορούσατε να κάνετε;</para>
+
+ <para>Υπάρχει μόνο ένας <emphasis>σίγουρος</emphasis> τρόπος για να
+ κάνετε καταμέτρηση <emphasis>ακριβείας</emphasis>. Να πάρετε έναν
+ εκτυπωτή που να μπορεί να σας πει πόσο χαρτί χρησιμοποιεί, και να
+ τον συνδέσετε μέσω σειριακής θύρας ή μέσω δικτύου. Σχεδόν
+ όλοι οι εκτυπωτές &postscript; υποστηρίζουν αυτή την δυνατότητα. Θα
+ βρείτε και άλλους τύπους και κατασκευαστές που κάνουν επίσης το ίδιο
+ (για παράδειγμα, οι laser εκτυπωτές δικτύου της Imagen).
+ Μετατρέψτε τα φίλτρα για αυτούς τους εκτυπωτές ώστε να καταγράφουν
+ τις τυπωμένες σελίδες μετά την ολοκλήρωση της εκάστοτε εργασίας
+ εκτύπωσης, και ρυθμίστε τους να κρατούν αρχεία καταγραφής με
+ <emphasis>μόνο</emphasis> αυτή την πληροφορία. Δεν χρειάζεται
+ καταμέτρηση γραμμών ούτε αναφορά σφαλμάτων.</para>
+
+ <para>Φυσικά, πάντα έχετε τη δυνατότητα να φανείτε γενναιόδωρος και να
+ παρέχετε τις εκτυπώσεις σας δωρεάν.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-using">
+ <title>Χρήση Εκτυπωτών</title>
+
+ <indexterm>
+ <primary>printers</primary>
+ <secondary>usage</secondary>
+ </indexterm>
+ <para>Αυτή η ενότητα περιγράφει πως να χρησιμοποιείτε τους εκτυπωτές που
+ έχετε εγκαταστήσει στο &os;. Οι βασικές εντολές για τον τελικό χρήστη
+ είναι οι ακόλουθες:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>&man.lpr.1;</term>
+
+ <listitem>
+ <para>Εκτύπωση εργασιών</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.lpq.1;</term>
+
+ <listitem>
+ <para>Έλεγχος ουράς αναμονής (print queue) του εκτυπωτή</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.lprm.1;</term>
+
+ <listitem>
+ <para>Διαγραφή εργασιών από την ουρά αναμονής</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Υπάρχει επίσης μια εντολή για τους διαχειριστές, η &man.lpc.8;,
+ που περιγράφεται στην ενότητα <link
+ linkend="printing-lpc">Διαχείριση Εκτυπωτών</link>, και
+ χρησιμοποιείται για να ελέγχει τους εκτυπωτές και τις ουρές
+ αναμονής.</para>
+
+ <para>Και οι τρεις εντολές &man.lpr.1;, &man.lprm.1;, και &man.lpq.1;
+ δέχονται την επιλογή
+ <option>-P <replaceable>printer-name</replaceable></option> με την
+ οποία καθορίζεται σε ποιον εκτυπωτή ή ουρά αναμονής θα ενεργήσουν, όπως
+ αναφέρεται στο αρχείο <filename>/etc/printcap</filename>. Αυτό σας
+ επιτρέπει να αποστείλετε, να διαγράψετε, και να ελέγξετε εργασίες σε
+ διάφορους εκτυπωτές. Αν δεν χρησιμοποιείτε την επιλογή
+ <option>-P</option>, τότε οι εντολές χρησιμοποιούν τον εκτυπωτή που
+ αναφέρεται στη μεταβλητή περιβάλλοντος <envar>PRINTER</envar>. Τέλος,
+ αν δεν έχετε θέσει μια μεταβλητή περιβάλλοντος <envar>PRINTER</envar>,
+ οι εντολές εκτελούνται με τον προεπιλεγμένο εκτυπωτή που ονομάζεται
+ <literal>lp</literal>.</para>
+
+ <para>Από δω και στο εξής, με την ορολογία <emphasis>προεπιλεγμένος
+ εκτυπωτής</emphasis> θα εννοούμε τον εκτυπωτή που αναφέρεται στην
+ μεταβλητή περιβάλλοντος <envar>PRINTER</envar>, ή αν δεν υπάρχει, τον
+ εκτυπωτή με το όνομα <literal>lp</literal>.</para>
+
+ <sect2 id="printing-lpr">
+ <title>Εκτύπωση Εργασιών</title>
+
+ <para>Για να εκτυπώσετε αρχεία, πληκτρολογήστε:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <filename><replaceable>filename</replaceable></filename> <replaceable>...</replaceable></command></userinput></screen>
+
+ <indexterm><primary>printing</primary></indexterm>
+ <para>Θα εκτυπωθούν όλα τα αναφερόμενα αρχεία στον προεπιλεγμένο
+ εκτυπωτή. Αν δεν αναφέρετε αρχεία, το &man.lpr.1; διαβάζει
+ δεδομένα από το standard input. Για παράδειγμα, αυτή η εντολή
+ θα εκτυπώσει μερικά σημαντικά αρχεία του συστήματος:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <filename>/etc/host.conf</filename> <filename>/etc/hosts.equiv</filename></command></userinput></screen>
+
+ <para>Για να επιλέξετε ένα συγκεκριμένο εκτυπωτή, πληκτρολογήστε:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <option>-P</option> <replaceable>printer-name</replaceable> <filename><replaceable>filename</replaceable></filename> <replaceable>...</replaceable></command></userinput></screen>
+
+ <para>Στο παράδειγμα μας θα εκτυπωθεί μια μεγάλη λίστα αρχείων του
+ τρέχοντος καταλόγου στον εκτυπωτή που ονομάζεται
+ <literal>rattan</literal>:</para>
+
+ <screen>&prompt.user; <userinput><command>ls <option>-l</option> | lpr <option>-P</option> rattan</command></userinput></screen>
+
+ <para>Αφού δεν αναφέρονται ονόματα αρχείων στην εντολή &man.lpr.1;,
+ το <command>lpr</command> διαβάζει τα δεδομένα που θα εκτυπώσει από
+ το standard input, τα οποία είναι η έξοδος της εντολής
+ <command>ls <option>-l</option></command>.</para>
+
+ <para>Η εντολή &man.lpr.1; μπορεί να δεχθεί ένα μεγάλο αριθμό επιλογών
+ για να ελέγχει την μορφοποίηση, να μετατρέπει αρχεία, να δημιουργεί
+ πολλαπλά αντίγραφα, κ.λ.π. Για περισσότερες πληροφορίες, δείτε την
+ ενότητα <link
+ linkend="printing-lpr-options">Επιλογές Εκτύπωσης</link>.</para>
+ </sect2>
+
+ <sect2 id="printing-lpq">
+ <title>Έλεγχος Εργασιών</title>
+
+ <indexterm><primary>εκτύπωση εργασιών</primary></indexterm>
+ <para>Όταν εκτυπώνετε με το &man.lpr.1;, τα δεδομένα που θέλετε να
+ εκτυπώσετε τοποθετούνται σε ένα πακέτο (package) που ονομάζεται
+ <quote>εργασία εκτύπωσης (print job)</quote>, η οποία αποστέλλεται
+ στο σύστημα παροχέτευσης <application>LPD</application>. Κάθε
+ εκτυπωτής έχει μια ουρά αναμονής εργασιών, και η εργασία σας
+ αναμένει μαζί με άλλες δικές σας και άλλων χρηστών. Ο εκτυπωτής τις
+ εκτυπώνει με την σειρά άφιξης στην ουρά αναμονής.</para>
+
+ <para>Για να εμφανίσετε την ουρά αναμονής για τον προεπιλεγμένο
+ εκτυπωτή, πληκτρολογήστε &man.lpq.1;. Για κάποιον συγκεκριμένο
+ εκτυπωτή, χρησιμοποιήστε την επιλογή <option>-P</option>. Για
+ παράδειγμα, η εντολή:
+
+ <screen>&prompt.user; <userinput><command>lpq <option>-P</option> bamboo</command></userinput></screen>
+
+ εμφανίζει την ουρά αναμονής για τον εκτυπωτή με το όνομα
+ <literal>bamboo</literal>. Ακολουθεί ένα παράδειγμα εξόδου της
+ εντολής <command>lpq</command>:</para>
+
+ <screen>bamboo is ready and printing
+Rank Owner Job Files Total Size
+active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes
+2nd kelly 10 (standard input) 1635 bytes
+3rd mary 11 ... 78519 bytes</screen>
+
+ <para>Εμφανίζονται τρεις εργασίες στη λίστα αναμονής για τον
+ <literal>bamboo</literal>. Στην πρώτη εργασία, που έχει σταλεί από
+ τον χρήστη kelly, έχει αποδοθεί ο
+ <quote>αριθμός εργασίας (job number)</quote> 9. Κάθε εργασία ενός
+ εκτυπωτή χαρακτηρίζεται από ένα μοναδικό τέτοιο αριθμό. Τις
+ περισσότερες φορές μπορείτε να τον αγνοήσετε, αλλά θα τον χρειαστείτε
+ αν θέλετε να διαγράψετε κάποια εργασία. Δείτε την ενότητα <link
+ linkend="printing-lprm">Διαγραφή Εργασιών</link> για
+ περισσότερες πληροφορίες.</para>
+
+ <para>Η εργασία με το νούμερο εννέα αποτελείται από δύο αρχεία. Τα
+ πολλαπλά αρχεία που δόθηκαν στη γραμμή εντολών του &man.lpr.1;
+ θεωρούνται μέρος μίας μόνο εργασίας. Αυτή είναι και η τρέχουσα ενεργή
+ εργασία (παρατηρήστε τη λέξη <literal>active</literal> της στήλης
+ <quote>Rank</quote>), που σημαίνει πως η εργασία εκτυπώνεται αυτή τη
+ στιγμή. Η δεύτερη εργασία αποτελείται από δεδομένα που έχουν περάσει
+ στην standard input της εντολής &man.lpr.1;. Η τρίτη εργασία
+ προέρχεται από τον χρήστη <username>mary</username>, και πρόκειται
+ για μια πολύ ογκώδη εργασία. Το όνομα διαδρομής του αρχείου που
+ πρόκειται να εκτυπωθεί είναι πολύ μεγάλο για να χωρέσει στη στήλη,
+ και για αυτό η εντολή &man.lpq.1; απλά το συμβολίζει με τρεις
+ τελείες.</para>
+
+ <para>Η πρώτη γραμμή της εξόδου από την &man.lpq.1; είναι επίσης πολύ
+ χρήσιμη: μας ενημερώνει για το τι κάνει την παρούσα στιγμή ο
+ εκτυπωτής (ή τουλάχιστον για το τι πιστεύει το
+ <application>LPD</application> πως κάνει ο εκτυπωτής αυτή τη
+ στιγμή).</para>
+
+ <para>Η εντολή &man.lpq.1; επίσης υποστηρίζει την επιλογή
+ <option>-l</option> για να δημιουργήσει μια μεγάλη, λεπτομερή λίστα.
+ Ακολουθεί ένα παράδειγμα του
+ <command>lpq <option>-l</option></command>:</para>
+
+ <screen>waiting for bamboo to become ready (offline ?)
+kelly: 1st [job 009rose]
+ /etc/host.conf 73 bytes
+ /etc/hosts.equiv 15 bytes
+
+kelly: 2nd [job 010rose]
+ (standard input) 1635 bytes
+
+mary: 3rd [job 011rose]
+ /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes</screen>
+ </sect2>
+
+ <sect2 id="printing-lprm">
+ <title>Αφαίρεση Εργασιών</title>
+
+ <para>Αν αλλάξετε γνώμη για μια εργασία που είχατε αποστείλει προς
+ εκτύπωση, μπορείτε να την αφαιρέσετε από την λίστα αναμονής με την
+ εντολή &man.lprm.1;. Μπορείτε ακόμη να χρησιμοποιήσετε την
+ &man.lprm.1; για να αφαιρέσετε μια ενεργή εργασία, αλλά πιθανόν
+ κάποιο μέρος της να εκτυπωθεί έτσι και αλλιώς.</para>
+
+ <para>Για να αφαιρέσετε μια εργασία από τον προεπιλεγμένο εκτυπωτή,
+ χρησιμοποιήστε πρώτα την &man.lpq.1; για να βρείτε τον αριθμό της.
+ Έπειτα πληκτρολογήστε:</para>
+
+ <screen>&prompt.user; <userinput><command>lprm <replaceable>job-number</replaceable></command></userinput></screen>
+
+ <para>Για να αφαιρέσετε μια εργασία από κάποιον συγκεκριμένο εκτυπωτή,
+ προσθέστε την επιλογή <option>-P</option>. Η ακόλουθη εντολή αφαιρεί
+ την εργασία με αριθμό 10 από την ουρά αναμονής για τον εκτυπωτή
+ <literal>bamboo</literal>:</para>
+
+ <screen>&prompt.user; <userinput><command>lprm <option>-P</option> bamboo 10</command></userinput></screen>
+
+ <para>Η εντολή &man.lprm.1; έχει μερικές συντομεύσεις:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>lprm -</term>
+
+ <listitem>
+ <para>Αφαιρεί όλες τις εργασίες (για τον προεπιλεγμένο εκτυπωτή)
+ που ανήκουν σε εσάς.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>lprm <replaceable>user</replaceable></term>
+
+ <listitem>
+ <para>Αφαιρεί όλες τις εργασίες (για τον προεπιλεγμένο εκτυπωτή)
+ που ανήκουν στον <replaceable>χρήστη (user)</replaceable>.
+ Ο υπερχρήστης (superuser) μπορεί να αφαιρέσει εργασίες άλλων
+ χρηστών, εσείς μπορείτε να αφαιρέσετε μόνο τις δικές σας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>lprm</term>
+
+ <listitem>
+ <para>Η εντολή &man.lprm.1; χωρίς αριθμό εργασίας, όνομα χρήστη,
+ ή <option>-</option> που εμφανίζεται στην γραμμή εντολών,
+ αφαιρεί την τρέχουσα ενεργή εργασία στον προεπιλεγμένο
+ εκτυπωτή, αν ανήκει σε σάς. Ο υπερχρήστης (superuser) μπορεί
+ να αφαιρέσει οποιαδήποτε ενεργή εργασία.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Για να δουλέψετε σε κάποιον συγκεκριμένο εκτυπωτή αντί του
+ προεπιλεγμένου, απλά χρησιμοποιήστε την επιλογή <option>-P</option>
+ με τις παραπάνω συντομεύσεις. Για παράδειγμα, η ακόλουθη εντολή
+ αφαιρεί όλες τις εργασίες του τρέχοντος χρήστη από την ουρά αναμονής
+ του εκτυπωτή <literal>rattan</literal>:</para>
+
+ <screen>&prompt.user; <userinput><command>lprm <option>-P</option> rattan -</command></userinput></screen>
+
+ <note>
+ <para>Αν εργάζεστε σε περιβάλλον δικτύου, η &man.lprm.1; θα σας
+ επιτρέψει να αφαιρέσετε εργασίες μόνο από τον υπολογιστή που
+ τις έχετε στείλει, ανεξάρτητα αν ο εκτυπωτής είναι προσβάσιμος και
+ από άλλους υπολογιστές. Η ακόλουθη εντολή επιδεικνύει ακριβώς αυτό
+ το χαρακτηριστικό:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <option>-P</option> rattan <filename><replaceable>myfile</replaceable></filename></command></userinput>
+&prompt.user; <userinput><command>rlogin orchid</command></userinput>
+&prompt.user; <userinput><command>lpq <option>-P</option> rattan</command></userinput>
+Rank Owner Job Files Total Size
+active seeyan 12 ... 49123 bytes
+2nd kelly 13 myfile 12 bytes
+&prompt.user; <userinput><command>lprm <option>-P</option> rattan 13</command></userinput>
+rose: Permission denied
+&prompt.user; <userinput><command>logout</command></userinput>
+&prompt.user; <userinput><command>lprm <option>-P</option> rattan 13</command></userinput>
+dfA013rose dequeued
+cfA013rose dequeued
+ </screen>
+ </note>
+ </sect2>
+
+ <sect2 id="printing-lpr-options">
+ <title>Πέρα από το Απλό Κείμενο: Περισσότερες Επιλογές Εκτύπωσης</title>
+
+ <para>Η εντολή &man.lpr.1; υποστηρίζει μια γκάμα επιλογών για τον έλεγχο
+ μορφοποίησης κειμένου, μετατροπής γραφικών και άλλων μορφών αρχείων,
+ παραγωγής πολλαπλών αντιγράφων, χειρισμού εργασιών, και άλλα. Οι
+ επιλογές αυτές περιγράφονται στην παρούσα ενότητα.</para>
+
+ <sect3 id="printing-lpr-options-format">
+ <title>Επιλογές Μορφοποίησης και Μετατροπής</title>
+
+ <para>Οι ακόλουθες επιλογές της &man.lpr.1; ελέγχουν την μορφοποίηση
+ των αρχείων της εργασίας εκτύπωσης. Χρησιμοποιήστε τις αν η εργασία
+ σας δεν περιέχει απλό κείμενο ή αν επιθυμείτε να μορφοποιήσετε απλό
+ κείμενο διαμέσου του εργαλείου &man.pr.1;.</para>
+
+ <indexterm><primary>&tex;</primary></indexterm>
+ <para>Για παράδειγμα, η ακόλουθη εντολή τυπώνει ένα αρχείο DVI (από το
+ σύστημα στοιχειοθεσίας &tex;) με όνομα
+ <filename><replaceable>fish-report.dvi</replaceable></filename>
+ στον εκτυπωτή με όνομα <literal>bamboo</literal>:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <option>-P</option> bamboo <option>-d</option> <filename><replaceable>fish-report.dvi</replaceable></filename></command></userinput></screen>
+
+ <para>Αυτές οι επιλογές εφαρμόζονται σε κάθε αρχείο της εργασίας, και
+ έτσι δεν μπορείτε να αναμίξετε (ας πούμε) αρχεία DVI και ditroff
+ μαζί στην ίδια εργασία. Απλώς στείλτε τα αρχεία σαν διαφορετικές
+ εργασίες, χρησιμοποιώντας διαφορετικές επιλογές μετατροπής για κάθε
+ εργασία.</para>
+
+ <note>
+ <para>Όλες αυτές οι επιλογές εκτός της <option>-p</option> και της
+ <option>-T</option> απαιτούν εγκατεστημένα φίλτρα μετατροπής για
+ τον εκτυπωτή προορισμού. Για παράδειγμα, η επιλογή
+ <option>-d</option> απαιτεί το φίλτρο μετατροπής DVI. Η ενότητα
+ <link linkend="printing-advanced-convfilters">Φίλτρα
+ Μετατροπής</link> δίνει περισσότερες λεπτομέρειες.</para>
+ </note>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει αρχεία cifplot.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει αρχεία DVI.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-f</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει αρχεία κειμένου FORTRAN.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-g</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει δεδομένα σχεδίασης (plot).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-i <replaceable>number</replaceable></option>
+ </term>
+
+ <listitem>
+ <para>Εκτυπώνει την έξοδο με εσοχή
+ <replaceable>number</replaceable> στηλών. Αν παραλείψετε
+ το <replaceable>number</replaceable>, η εσοχή θα είναι
+ 8 στήλες. Αυτή η επιλογή δουλεύει μόνο με ορισμένα φίλτρα
+ μετατροπής.</para>
+
+ <note>
+ <para>Μην τοποθετείτε κενό διάστημα μεταξύ του
+ <option>-i</option> και του αριθμού.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-l</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει δεδομένα κειμένου κατά γράμμα (literal),
+ συμπεριλαμβάνοντας και τους χαρακτήρες ελέγχου.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-n</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει δεδομένα ditroff (δεδομένα troff ανεξάρτητα από
+ τη συσκευή).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-p</term>
+
+ <listitem>
+ <para>Μορφοποιεί το απλό κείμενο με την &man.pr.1; πριν να το
+ εκτυπώσει. Δείτε την &man.pr.1; για περισσότερες
+ πληροφορίες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-T <replaceable>title</replaceable></option></term>
+
+ <listitem>
+ <para>Χρησιμοποιεί το <replaceable>title</replaceable> στην
+ κεφαλίδα του &man.pr.1; αντί για το όνομα αρχείου. Αυτή η
+ επιλογή επιδρά μόνο όταν χρησιμοποιείται με την επιλογή
+ <option>-p</option></para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-t</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει δεδομένα troff.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-v</option></term>
+
+ <listitem>
+ <para>Εκτυπώνει δεδομένα ράστερ.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Εδώ είναι ένα παράδειγμα: αυτή η εντολή εκτυπώνει μια κομψά
+ μορφοποιημένη έκδοση της σελίδας βοηθείας &man.ls.1; στον
+ προεπιλεγμένο εκτυπωτή:</para>
+
+ <screen>&prompt.user; <userinput><command>zcat <filename>/usr/share/man/man1/ls.1.gz</filename> | troff <option>-t</option> -man | lpr <option>-t</option></command></userinput></screen>
+
+ <para>Η εντολή &man.zcat.1; αποσυμπιέζει τον πηγαίο κώδικα της
+ σελίδας βοηθείας &man.ls.1; και τον περνάει στην εντολή
+ &man.troff.1;, η οποία τον μορφοποιεί και δημιουργεί στην έξοδο της
+ δεδομένα GNU troff, τα αποστέλλει στην &man.lpr.1;, η οποία με
+ τη σειρά της αποστέλλει την εργασία στο
+ <application>LPD</application>. Επειδή χρησιμοποιήσαμε την επιλογή
+ <option>-t</option> στο &man.lpr.1;, ο spooler, κατά τη διάρκεια της
+ εκτύπωσης, θα μετατρέψει την έξοδο GNU troff σε ένα τύπο δεδομένων
+ κατανοητό από τον προεπιλεγμένο εκτυπωτή.</para>
+ </sect3>
+
+ <sect3 id="printing-lpr-options-job-handling">
+ <title>Επιλογές Χειρισμού Εργασιών</title>
+
+ <para>Οι ακόλουθες επιλογές του &man.lpr.1; οδηγούν το
+ <application>LPD</application> να χειριστεί τις εργασίες με ειδικό
+ τρόπο:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>-# <replaceable>copies</replaceable></term>
+
+ <listitem>
+ <para>Δημιουργεί έναν αριθμό <replaceable>copies</replaceable>
+ (αντιγράφων) για κάθε αρχείο της εργασίας αντί για ένα μόνο
+ αντίγραφο. Ο διαχειριστής μπορεί να απενεργοποιήσει αυτή την
+ επιλογή για να μειώσει την καταπόνηση των εκτυπωτών και να
+ ενθαρρύνει την χρήση φωτοτυπικών μηχανημάτων. Δείτε την
+ ενότητα <link
+ linkend="printing-advanced-restricting-copies">Περιορισμός
+ Εκτύπωσης Πολλαπλών Αντιγράφων</link>.</para>
+
+ <para>Σε αυτό το παράδειγμα, εκτυπώνουμε στον προεπιλεγμένο
+ εκτυπωτή τρία αντίγραφα του
+ <filename><replaceable>parser.c</replaceable></filename>
+ και τρία αντίγραφα του
+ <filename><replaceable>parser.h</replaceable></filename>:</para>
+
+ <screen>&prompt.user; <userinput><command>lpr <option>-#3</option> <filename><replaceable>parser.c parser.h</replaceable></filename></command></userinput></screen>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-m</term>
+
+ <listitem>
+ <para>Αποστολή mail μετά την ολοκλήρωση εκτύπωσης της εργασίας.
+ Με αυτή την επιλογή, το σύστημα
+ <application>LPD</application> στέλνει mail στο λογαριασμό
+ σας μόλις ολοκληρωθεί ο χειρισμός εκτύπωσης της εργασίας
+ σας. Στο μήνυμα του, θα σας ενημερώσει αν η εργασία
+ ολοκληρώθηκε επιτυχώς ή αν παρουσιάστηκε σφάλμα και (συχνά)
+ ποιό ήταν το σφάλμα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-s</term>
+
+ <listitem>
+ <para>Δεν αντιγράφει τα αρχεία στον κατάλογο spool, αλλά
+ αντί για αυτό, δημιουργεί συμβολικές συντομεύσεις (symbolic
+ links) προς αυτά.</para>
+
+ <para>Αν εκτυπώνετε μια μεγάλη εργασία, ίσως θέλετε να
+ χρησιμοποιήσετε αυτή την επιλογή. Θα σας γλυτώσει χώρο στον
+ κατάλογο spool (ίσως η εργασία σας να υπερβαίνει τον ελεύθερο
+ χώρο του συστήματος αρχείων που περιέχει τον κατάλογο
+ spool). Επίσης θα κερδίσετε χρόνο αφού το
+ <application>LPD</application> δεν θα χρειαστεί να αντιγράψει
+ όλη την εργασία σας στον κατάλογο spool.</para>
+
+ <para>Αυτό, ωστόσο, έχει και ένα μειονέκτημα: από τη στιγμή που
+ το <application>LPD</application> θα κάνει αναφορά κατευθείαν
+ στο πρωτότυπο αρχείο, δεν θα έχετε δυνατότητα να μετατρέψετε
+ ή να διαγράψετε το αρχείο έως ότου εκτυπωθεί.</para>
+
+ <note>
+ <para>Αν εκτυπώνετε σε ένα απομακρυσμένο εκτυπωτή, το
+ <application>LPD</application> πιθανώς θα χρειαστεί τελικά
+ να αντιγράψει τα αρχεία από τον τοπικό υπολογιστή στον
+ απομακρυσμένο, επομένως η επιλογή <option>-s</option> σε
+ αυτή την περίπτωση εξοικονομεί χώρο στον τοπικό κατάλογο
+ spool, αλλά όχι στον απομακρυσμένο. Εξακολουθεί ωστόσο να
+ είναι ιδιαίτερα χρήσιμη.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-r</term>
+
+ <listitem>
+ <para>Απομακρύνει τα αρχεία της εργασίας μετά την αντιγραφή
+ τους στον κατάλογο spool, ή μετά την εκτύπωση τους με την
+ επιλογή <option>-s</option>. Να είστε προσεκτικοί με αυτή
+ την επιλογή!</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+
+ <sect3 id="printing-lpr-options-misc">
+ <title>Επιλογές Σελίδων Κεφαλίδας</title>
+
+ <para>Αυτές οι επιλογές του &man.lpr.1; ρυθμίζουν το κείμενο που
+ κανονικά εμφανίζεται στην σελίδα κεφαλίδας της εργασίας. Αν οι
+ σελίδες κεφαλίδας παρεμποδίζονται για τον συγκεκριμένο εκτυπωτή,
+ αυτές οι επιλογές δεν έχουν καμία επίδραση. Δείτε την ενότητα
+ <link linkend="printing-advanced-header-pages">Σελίδες
+ Κεφαλίδας</link> για πληροφορίες σχετικά με τις ρυθμίσεις των
+ σελίδων κεφαλίδας.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>-C <replaceable>text</replaceable></term>
+
+ <listitem>
+ <para>Αντικαθιστά το όνομα υπολογιστή στη σελίδα κεφαλίδας με
+ <replaceable>text</replaceable>. Το όνομα υπολογιστή που
+ εμφανίζεται είναι, από προεπιλογή, το όνομα του υπολογιστή
+ από τον οποίο έγινε η αποστολή της εργασίας.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-J <replaceable>text</replaceable></term>
+
+ <listitem>
+ <para>Αντικαθιστά το όνομα εργασίας στη σελίδα κεφαλίδας με
+ <replaceable>text</replaceable>. Το όνομα εργασίας που
+ εμφανίζεται από προεπιλογή, είναι το όνομα του πρώτου αρχείου
+ της εργασίας, ή <filename>stdin</filename> αν η εκτύπωση
+ γίνεται από το standard input.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-h</term>
+
+ <listitem>
+ <para>Δεν εκτυπώνει σελίδα κεφαλίδας.</para>
+
+ <note>
+ <para>Ανάλογα με τις ρυθμίσεις, αυτή η επιλογή ίσως να μην
+ έχει επίδραση λόγω του τρόπου με τον οποίο δημιουργούνται οι
+ σελίδες κεφαλίδας. Για περισσότερες λεπτομέρειες, δείτε την
+ ενότητα <link
+ linkend="printing-advanced-header-pages">Σελίδες
+ Κεφαλίδας</link>.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect3>
+ </sect2>
+
+ <sect2 id="printing-lpc">
+ <title>Διαχείριση Εκτυπωτών</title>
+
+ <para>Ως διαχειριστής, χρειάστηκε να εγκαταστήσετε, να ρυθμίσετε και να
+ δοκιμάσετε τους εκτυπωτές σας. Χρησιμοποιώντας την εντολή
+ &man.lpc.8;, μπορείτε να επικοινωνήσετε με τους εκτυπωτές σας με ακόμη
+ περισσότερους τρόπους. Με την &man.lpc.8;, μπορείτε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να εκκινείτε και να σταματάτε τους εκτυπωτές</para>
+ </listitem>
+
+ <listitem>
+ <para>Να ενεργοποιείτε και να απενεργοποιείτε τις ουρές
+ αναμονής</para>
+ </listitem>
+
+ <listitem>
+ <para>Να ανακατατάσσετε την σειρά εργασιών σε κάθε ουρά
+ αναμονής.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Καταρχήν, μία σημείωση σχετικά με την ορολογία: αν ένας
+ εκτυπωτής είναι <emphasis>σταματημένος (stopped)</emphasis>, δεν θα
+ εκτυπώσει τίποτε από την ουρά αναμονής εργασιών. Οι χρήστες μπορούν
+ ακόμη να στέλνουν εργασίες, οι οποίες μπαίνουν στην ουρά αναμονής έως
+ ότου ο εκτυπωτής <emphasis>ξεκινήσει</emphasis> ή καθαριστεί η ουρά
+ αναμονής.</para>
+
+ <para>Αν έχει <emphasis>απενεργοποιηθεί</emphasis> η ουρά αναμονής,
+ κανείς χρήστης (εκτός του <username>root</username>) δεν μπορεί να
+ αποστείλει εργασίες στον εκτυπωτή. Μια <emphasis>ενεργή</emphasis>
+ ουρά αναμονής επιτρέπει να αποσταλούν εργασίες στον εκτυπωτή. Ένας
+ εκτυπωτής μπορεί να <emphasis>ξεκινήσει</emphasis> με ουρά
+ αναμονής απενεργοποιημένη, και σε αυτή την περίπτωση θα συνεχίσει να
+ εκτυπώνει τις εργασίες της ουράς έως ότου αυτή αδειάσει.</para>
+
+ <para>Γενικά, πρέπει να έχετε προνόμια <username>root</username> για να
+ χρησιμοποιήσετε την εντολή &man.lpc.8;. Οι κανονικοί χρήστες
+ μπορούν να χρησιμοποιούν την εντολή &man.lpc.8; μόνο για να βλέπουν
+ την κατάσταση του εκτυπωτή και να επανεκκινούν τον εκτυπωτή σε
+ περίπτωση μπλοκαρίσματος.</para>
+
+ <para>Παρακάτω θα βρείτε μια λίστα εντολών του &man.lpc.8;. Οι
+ περισσότερες από τις εντολές παίρνουν ως παράμετρο το
+ <replaceable>printer-name</replaceable> για τη ρύθμιση του
+ συγκεκριμένου εκτυπωτή. Μπορείτε να χρησιμοποιείτε
+ <literal>all</literal> στη θέση του
+ <replaceable>printer-name</replaceable> για να αναφερθείτε σε όλους
+ τους εκτυπωτές που είναι καταχωρισμένοι στο
+ <filename>/etc/printcap</filename>.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command>abort <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Διαγράφει την τρέχουσα εργασία και σταματάει τον εκτυπωτή.
+ Οι χρήστες μπορούν ακόμη να αποστείλουν εργασίες αν η ουρά
+ αναμονής είναι ακόμη ενεργή.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>clean <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Διαγράφει τα παλιά αρχεία από τον κατάλογο spool του
+ εκτυπωτή. Σε κάποιες περιπτώσεις, τα αρχεία από τα οποία
+ αποτελείται κάποια εργασία δεν αφαιρούνται κανονικά από το
+ <application>LPD</application>, ειδικά αν υπήρξαν σφάλματα κατά
+ την εκτύπωση ή κάποιες ενέργειες από τον διαχειριστή. Αυτή η
+ εντολή βρίσκει αρχεία που δεν ανήκουν στον κατάλογο spool και
+ τα αφαιρεί.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>disable <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Απενεργοποιεί την ουρά αναμονής για νέες εργασίες. Αν ο
+ εκτυπωτής δουλεύει, θα συνεχίσει να εκτυπώνει τις
+ εναπομείναντες εργασίες στην ουρά αναμονής. Ο superuser
+ (<username>root</username>) μπορεί πάντα να στέλνει εργασίες,
+ ακόμη και σε απενεργοποιημένη σειρά αναμονής.</para>
+
+ <para>Αυτή η εντολή είναι χρήσιμη, όταν ελέγχετε ένα νέο εκτυπωτή
+ ή όταν εγκαθιστάτε ένα φίλτρο: απενεργοποιήστε την ουρά
+ αναμονής και στείλτε εργασίες σαν <username>root</username>.
+ Οι υπόλοιποι χρήστες δεν θα έχουν δυνατότητα να αποστείλουν
+ εργασίες έως ότου ολοκληρώσετε τους ελέγχους σας και
+ επανενεργοποιήσετε την ουρά αναμονής με την εντολή
+ <command>enable</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>down <replaceable>printer-name</replaceable>
+ <replaceable>message</replaceable></command></term>
+
+ <listitem>
+ <para>Οδηγεί τον εκτυπωτή σε "κατέβασμα" (down). Είναι ισοδύναμο
+ με το <command>disable</command> ακολουθούμενο από ένα
+ <command>stop</command>. Το <replaceable>message</replaceable>
+ (μήνυμα) εμφανίζεται όταν κάποιος χρήστης ελέγχει την σειρά
+ αναμονής με &man.lpq.1; ή την κατάσταση του εκτυπωτή με
+ <command>lpc status</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>enable
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Ενεργοποίηση της ουράς αναμονής του εκτυπωτή. Οι χρήστες
+ μπορούν να αποστείλουν εργασίες αλλά ο εκτυπωτής δεν θα τυπώσει
+ έως ότου ξεκινήσει.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>help
+ <replaceable>command-name</replaceable></command></term>
+
+ <listitem>
+ <para>Τυπώνει σελίδες βοηθείας για την εντολή
+ <replaceable>command-name</replaceable>. Δίχως το
+ <replaceable>command-name</replaceable>, εκτυπώνει μια περίληψη
+ όλων των διαθέσιμων εντολών.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>restart <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Ξεκινά τον εκτυπωτή. Οι κανονικοί χρήστες μπορούν να
+ χρησιμοποιήσουν αυτή την εντολή μόνο σε κάποια ειδική
+ περίπτωση που το <application>LPD</application> δεν αποκρίνεται,
+ αλλά δεν μπορούν να ξεκινήσουν ένα εκτυπωτή που έχει σταματήσει
+ εξαιτίας των εντολών <command>stop</command> ή
+ <command>down</command>. Η εντολή <command>restart</command>
+ είναι ισοδύναμη με την <command>abort</command> ακολουθούμενη
+ από τη <command>start</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>start <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Ξεκινά τον εκτυπωτή. Ο εκτυπωτής θα τυπώσει εργασίες από
+ την ουρά αναμονής του.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>stop
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Σταματάει τον εκτυπωτή. Ο εκτυπωτής θα ολοκληρώσει την
+ τρέχουσα εργασία του και δεν θα τυπώσει καμία άλλη εργασία από
+ την ουρά αναμονής του. Ακόμη και αν ο εκτυπωτής είναι
+ σταματημένος, οι χρήστες μπορούν ακόμη να στέλνουν εργασίες αν
+ είναι ενεργοποιημένη η ουρά αναμονής.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>topq <replaceable>printer-name</replaceable>
+ <replaceable>job-or-username</replaceable></command></term>
+
+ <listitem>
+ <para>Ανακατάταξη της ουράς αναμονής για τον
+ <replaceable>printer-name</replaceable>. Τοποθετούνται πρώτες
+ οι εργασίες με αριθμό αναφοράς <replaceable>job</replaceable> ή
+ αυτές που ανήκουν στο χρήστη
+ <replaceable>username</replaceable>. Για αυτή την εντολή, δεν
+ μπορείτε να χρησιμοποιήσετε <literal>all</literal> στην θέση του
+ <replaceable>printer-name</replaceable>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>up <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Οδηγεί τον εκτυπωτή σε "ανέβασμα" (up). Το αντίθετο της
+ εντολής <command>down</command>. Ισοδυναμεί με την
+ <command>start</command> ακολουθούμενη από την εντολή
+ <command>enable</command>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Το &man.lpc.8; δέχεται τις παραπάνω εντολές στην γραμμή εντολών.
+ Αν δεν εισάγετε καμία εντολή, το &man.lpc.8; μπαίνει σε κατάσταση
+ αλληλεπίδρασης (interactive), όπου μπορείτε να πληκτρολογείτε εντολές
+ μέχρι να δώσετε <command>exit</command>,
+ <command>quit</command>, ή end-of-file.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="printing-lpd-alternatives">
+ <title>Εναλλακτικές Λύσεις για τον Στάνταρ Spooler</title>
+
+ <para>Αν έχετε μελετήσει πιστά όλο το κεφάλαιο μέχρι εδώ, θα έχετε μάθει
+ σχεδόν τα πάντα σχετικά με το σύστημα παροχέτευσης
+ <application>LPD</application> που διατίθεται με το &os;. Θα έχετε
+ κατανοήσει και πολλές από τις ελλείψεις του, που φυσικά γεννούν το
+ ερώτημα: <quote>Ποια άλλα συστήματα παροχέτευσης (που να λειτουργούν
+ στο &os;) υπάρχουν διαθέσιμα;</quote></para>
+
+ <variablelist>
+ <varlistentry>
+ <term>LPRng</term>
+
+ <indexterm><primary>LPRng</primary></indexterm>
+ <listitem>
+ <para>Το <application>LPRng</application>, το οποίο σκόπιμα
+ σημαίνει <quote>LPR: the Next Generation (η Επόμενη
+ Γενιά)</quote> είναι μια από την αρχή υλοποίηση του PLP.
+ Ο Patrick Powell και ο Justin Mason (κύριος συντηρητής του PLP)
+ συνεργάστηκαν για να φτιάξουν το
+ <application>LPRng</application>. Η κύρια τοποθεσία του
+ <application>LPRng</application> είναι η <ulink
+ url="http://www.lprng.org/"></ulink>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>CUPS</term>
+
+ <indexterm><primary>CUPS</primary></indexterm>
+ <listitem>
+ <para>Το <application>CUPS</application>, ή αλλιώς Common UNIX
+ Printing System, παρέχει μια φορητή πλατφόρμα εκτυπώσεων για
+ λειτουργικά συστήματα βασισμένα στο &unix;. Αναπτύχθηκε από την
+ Easy Software Products για να προωθήσει μια στάνταρ λύση
+ εκτυπώσεων για όλους τους χρήστες και κατασκευαστές
+ &unix;.</para>
+
+ <para>Το <application>CUPS</application> χρησιμοποιεί το πρωτόκολλο
+ Internet Printing Protocol (<acronym>IPP</acronym>) ως βάση του
+ για τη διαχείριση εργασιών εκτύπωσης και ουρών αναμονής.
+ Υποστηρίζονται επίσης, αλλά με μειωμένη λειτουργικότητα, τα
+ πρωτόκολλα Line Printer Daemon (<acronym>LPD</acronym>), Server
+ Message Block (<acronym>SMB</acronym>), και AppSocket (γνωστό ως
+ JetDirect). Το CUPS προσθέτει δυνατότητες ανίχνευσης δικτυακών
+ εκτυπωτών, ενώ μέσω των επιλογών PostScript Printer Description
+ (<acronym>PPD</acronym>) γίνεται εφικτή η υποστήριξη
+ σύγχρονων εκτυπωτών στον κόσμο του &unix;.</para>
+
+ <para>Η κύρια τοποθεσία του <application>CUPS</application> είναι η
+ <ulink url="http://www.cups.org/"></ulink>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>HPLIP</term>
+
+ <indexterm><primary>HPLIP</primary></indexterm>
+ <listitem>
+ <para>Το <application>HPLIP</application>, ή Σύστημα Απεικόνισης
+ και Εκτύπωσης της HP για &linux;, είναι μια σουίτα εφαρμογών
+ για συσκευές της HP, που υποστηρίζει λειτουργίες όπως η εκτύπωση,
+ η σάρωση και η αποστολή / λήψη φαξ. Η σουίτα αυτή χρησιμοποιεί
+ το <application>CUPS</application> ως backend για κάποιες από τις
+ λειτουργίες εκτύπωσης που παρέχει.</para>
+
+ <para>Η κύρια δικτυακή τοποθεσία της εφαρμογής
+ <application>HPLIP</application> είναι <ulink
+ url="http://hplipopensource.com/hplip-web/index.html"></ulink>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+
+ <sect1 id="printing-troubleshooting">
+ <title>Εντοπισμός Βλαβών</title>
+
+ <para>Μετά την εκτέλεση του απλού τεστ με το &man.lptest.1;, αντί της
+ κανονικής εκτύπωσης, μπορεί να έχετε λάβει ως αποτέλεσμα μία από τις
+ ακόλουθες καταστάσεις:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Ο εκτυπωτής καθυστέρησε να ξεκινήσει ή δεν εκτύπωσε ολόκληρη τη
+ σελίδα.</term>
+
+ <listitem>
+ <para>Ο εκτυπωτής τύπωσε το τεστ, αλλά δεν ξεκίνησε αμέσως. Ίσως
+ χρειάστηκε να πιέσετε το πλήκτρο PRINT REMAINING ή το FORM FEED
+ του εκτυπωτή σας για να εμφανιστεί το επιθυμητό αποτέλεσμα.</para>
+
+ <para>Εάν είναι όντως αυτή η περίπτωση σας, ο εκτυπωτής πιθανώς
+ να ήταν σε αναμονή για να εξακριβώσει αν υπήρχαν πρόσθετα δεδομένα
+ στην εργασία εκτύπωσης πριν ξεκινήσει να εκτυπώνει οτιδήποτε. Για
+ να διορθώσετε το πρόβλημα, μπορείτε να θέσετε το φίλτρο κειμένου
+ να στέλνει ένα χαρακτήρα FORM FEED (ή άλλο κατάλληλο) στον
+ εκτυπωτή. Αυτό συνήθως είναι αρκετό για να μπορείτε να εκτυπώνετε
+ κατευθείαν οποιοδήποτε κείμενο απομένει σε αναμονή στην εσωτερική
+ μνήμη (buffer) του εκτυπωτή. Είναι επίσης χρήσιμο να ρυθμίζετε
+ τις εκτυπώσεις σας ώστε να τελειώνουν με γεμάτη την τελευταία
+ σελίδα, ώστε η επόμενη εργασία να μην αρχίζει από τα μισά του
+ προηγούμενου φύλλου.</para>
+
+ <para>Η ακόλουθη τροποποίηση στο shell script
+ <filename>/usr/local/libexec/if-simple</filename> εκτυπώνει ένα
+ form feed μετά την αποστολή της εργασίας στον εκτυπωτή:</para>
+
+ <programlisting>#!/bin/sh
+#
+# if-simple - Simple text input filter for lpd
+# Installed in /usr/local/libexec/if-simple
+#
+# Simply copies stdin to stdout. Ignores all filter arguments.
+# Writes a form feed character (\f) after printing job.
+
+/bin/cat &amp;&amp; printf "\f" &amp;&amp; exit 0
+exit 2</programlisting>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Η εκτύπωση παρουσιάζει <quote>φαινόμενο σκάλας (staircase
+ effect).</quote></term>
+
+ <listitem>
+ <para>Στην εκτύπωση σας φαίνεται το ακόλουθο:</para>
+
+ <screen>!"#$%&amp;'()*+,-./01234
+ "#$%&amp;'()*+,-./012345
+ #$%&amp;'()*+,-./0123456</screen>
+
+ <indexterm><primary>MS-DOS</primary></indexterm>
+ <indexterm><primary>OS/2</primary></indexterm>
+ <indexterm><primary>ASCII</primary></indexterm>
+ <para>Γίνατε ένα ακόμα θύμα του
+ <emphasis>φαινομένου σκάλας</emphasis>, που προκλήθηκε από
+ αντιφατικές ερμηνείες των χαρακτήρων με τους οποίους δηλώνεται η
+ τροφοδοσία νέας γραμμής. Τα λειτουργικά συστήματα τύπου &unix;
+ χρησιμοποιούν έναν μόνο χαρακτήρα ASCII με κωδικό 10, τον line
+ feed (τροφοδοσία γραμμής, LF). Το &ms-dos;, το &os2;, και διάφορα
+ άλλα, χρησιμοποιούν ένα ζεύγος χαρακτήρων ASCII κωδικού 10
+ <emphasis>και</emphasis> ASCII κωδικού 13 (τον carriage return ή
+ αλλιώς CR). Πολλοί εκτυπωτές χρησιμοποιούν την σύμβαση του
+ &ms-dos; για την αλλαγή γραμμής.</para>
+
+ <para>Όταν εκτυπώνετε με το &os;, το κείμενο σας απλά χρησιμοποιεί
+ τον χαρακτήρα τροφοδοσίας γραμμής (line feed). Ο εκτυπωτής, μόλις
+ αντιληφθεί τον χαρακτήρα line feed, προωθεί το χαρτί κατά μία
+ γραμμή, αλλά κρατάει την ίδια θέση οριζόντια καθώς καλείται να
+ εκτυπώσει τον επόμενο χαρακτήρα. Σε αυτό το σημείο
+ χρησιμοποιείται το CR (carriage return): μετακινεί δηλαδή την
+ θέση εργασίας για τον επόμενο χαρακτήρα που πρόκειται να
+ εκτυπωθεί στο αριστερό άκρο του χαρτιού.</para>
+
+ <para>Το &os; επιθυμεί ο εκτυπωτής να μπορεί να ενεργεί ως
+ εξής:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>Όταν ο εκτυπωτής λαμβάνει CR</entry>
+ <entry>Να εκτυπώνει CR</entry>
+ </row>
+
+ <row>
+ <entry>Όταν ο εκτυπωτής λαμβάνει LF</entry>
+ <entry>Να εκτυπώνει CR + LF</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Υπάρχουν διάφοροι τρόποι για να επιτευχθεί αυτό:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Χρησιμοποιήστε τα πλήκτρα ρύθμισης του εκτυπωτή ή
+ τον πίνακα ελέγχου για να αλλάξετε τον τρόπο με τον οποίο
+ ερμηνεύει αυτούς τους χαρακτήρες ο εκτυπωτής σας.
+ Συμβουλευτείτε το εγχειρίδιο χρήσης του για να δείτε πως
+ μπορεί να γίνει αυτό.</para>
+
+ <note>
+ <para>Αν έχετε και άλλα λειτουργικά στο σύστημα σας εκτός από
+ το &os;, πιθανόν να χρειαστεί, όταν τα χρησιμοποιείτε, να
+ <emphasis>επαναρυθμίσετε</emphasis> τον εκτυπωτή σας ώστε
+ να ερμηνεύει διαφορετικά τους χαρακτήρες CR και LF.
+ Στην περίπτωση αυτή, ίσως είναι καλύτερο να προτιμήσετε
+ κάποια από τις λύσεις που ακολουθούν.</para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>Ο οδηγός (driver) της σειριακής γραμμής του &os; μπορεί να
+ μετατρέπει αυτόματα από LF σε CR+LF. Φυσικά, αυτό δουλεύει
+ <emphasis>μόνο</emphasis> σε σειριακές θύρες.
+ Για να ενεργοποιήσετε αυτή την λειτουργία, χρησιμοποιήστε την
+ ικανότητα <literal>ms#</literal> και ορίστε την κατάσταση
+ λειτουργίας <literal>onlcr</literal> στο αρχείο
+ <filename>/etc/printcap</filename> για τον εκτυπωτή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στείλτε ένα
+ <emphasis>κωδικό διαφυγής (escape code)</emphasis> στον
+ εκτυπωτή ώστε να χειρίζεται προσωρινά τους χαρακτήρες LF με
+ διαφορετικό τρόπο. Συμβουλευτείτε το εγχειρίδιο χρήσης του
+ εκτυπωτή σας για τους κώδικες διαφυγής που υποστηρίζονται.
+ Όταν ανακαλύψετε τον κατάλληλο, μετατρέψτε το φίλτρο κειμένου
+ ώστε να στέλνει πρώτα τον κωδικό, και έπειτα την εργασία στον
+ εκτυπωτή.</para>
+
+ <indexterm><primary>PCL</primary></indexterm>
+ <para>Εδώ είναι ένα παράδειγμα φίλτρου κειμένου για εκτυπωτές
+ που καταλαβαίνουν τους κωδικούς διαφυγής PCL της
+ Hewlett-Packard. Αυτό το φίλτρο κάνει τον εκτυπωτή να
+ χειρίζεται τους χαρακτήρες LF ως LF και CR. Έπειτα αποστέλλει
+ την εργασία, στέλνοντας στο τέλος της ένα χαρακτήρα αλλαγής
+ σελίδας (form feed) ώστε να γίνει σωστή εξαγωγή της τελευταίας
+ σελίδας. Το φίλτρο αυτό θα πρέπει να δουλεύει με σχεδόν
+ όλους τους εκτυπωτές της Hewlett Packard.</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpif - Simple text input filter for lpd for HP-PCL based printers
+# Installed in /usr/local/libexec/hpif
+#
+# Simply copies stdin to stdout. Ignores all filter arguments.
+# Tells printer to treat LF as CR+LF. Ejects the page when done.
+
+printf "\033&amp;k2G" &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp; exit 0
+exit 2</programlisting>
+
+ <para>Εδώ είναι ένα παράδειγμα για το
+ <filename>/etc/printcap</filename> ενός υπολογιστή με όνομα
+ <hostid>orchid</hostid>. Έχει ένα μόνο εκτυπωτή στην πρώτη
+ παράλληλη θύρα του, ένα Hewlett Packard LaserJet 3Si με όνομα
+ <literal>teak</literal>. Χρησιμοποιεί το παραπάνω script ως
+ φίλτρο κειμένου:</para>
+
+ <programlisting>#
+# /etc/printcap for host orchid
+#
+teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:sh:sd=<filename class="directory">/var/spool/lpd/teak</filename>:mx#0:\
+ :if=<filename>/usr/local/libexec/hpif</filename>:</programlisting>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Εκτυπώνεται η μία γραμμή πάνω στην άλλη.</term>
+
+ <listitem>
+ <para>Ο εκτυπωτής δεν προωθεί καθόλου το χαρτί και όλες οι γραμμές
+ κειμένου τυπώνονται η μία πάνω από την άλλη, σε μία γραμμή.</para>
+
+ <para>Αυτό το πρόβλημα είναι το <quote>αντίστροφο</quote> του
+ φαινόμενου σκάλας, που περιγράψαμε προηγουμένως, και είναι πολύ
+ σπάνιο. Σε κάποιο σημείο, οι χαρακτήρες LF που χρησιμοποιεί το
+ &os; για να τερματίσει την γραμμή, ερμηνεύονται ως χαρακτήρες CR
+ οι οποίοι επιστρέφουν την κεφαλή στο αριστερό άκρο του χαρτιού,
+ αλλά δίχως να προωθήσουν το χαρτί μία γραμμή προς τα κάτω.</para>
+
+ <para>Χρησιμοποιήστε τους διακόπτες ρυθμίσεων του εκτυπωτή ή τον
+ πίνακα ελέγχου για να θέσετε τις ακόλουθες επιλογές για τα LF και
+ CR characters:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Ο εκτυπωτής λαμβάνει</entry>
+ <entry>Ο εκτυπωτής τυπώνει</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>CR</entry>
+ <entry>CR</entry>
+ </row>
+
+ <row>
+ <entry>LF</entry>
+ <entry>CR + LF</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ο εκτυπωτής δεν εκτυπώνει (χάνει) κάποιους χαρακτήρες.</term>
+
+ <listitem>
+ <para>Ο εκτυπωτής, ενώ είναι σε λειτουργία εκτύπωσης, δεν εκτυπώνει
+ κάποιους χαρακτήρες σε όλες τις γραμμές. Το πρόβλημα πιθανώς να
+ γίνεται εντονότερο καθώς η εκτύπωση εξελίσσεται, χάνοντας ακόμη
+ περισσότερους χαρακτήρες.</para>
+
+ <para>Το πρόβλημα είναι πως ο εκτυπωτής, καθώς εκτυπώνει, δεν
+ προλαβαίνει να ακολουθήσει την ταχύτητα με την οποία ο
+ υπολογιστής στέλνει δεδομένα μέσω της σειριακής διασύνδεσης (αυτό
+ το πρόβλημα δεν πρέπει κανονικά να συμβαίνει σε εκτυπωτές
+ συνδεμένους σε παράλληλες θύρες). Υπάρχουν δύο τρόποι για να
+ ξεπεραστεί αυτό το πρόβλημα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Εάν ο εκτυπωτής υποστηρίζει έλεγχο ροής XON/XOFF, ρυθμίστε
+ το &os; να τον χρησιμοποιήσει ορίζοντας την κατάσταση
+ λειτουργίας <literal>ixon</literal> με την ικανότητα
+ <literal>ms#</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Εάν ο εκτυπωτής υποστηρίζει έλεγχο ροής τύπου Request to
+ Send / Clear to Send (hardware handshake, γνωστό και με την
+ ονομασία <literal>RTS/CTS</literal>), πρέπει να οριστεί η
+ κατάσταση λειτουργίας <literal>crtscts</literal> στην
+ ικανότητα <literal>ms#</literal>. Βεβαιωθείτε πως το καλώδιο
+ που συνδέει τον εκτυπωτή με τον υπολογιστή είναι σωστά
+ φτιαγμένο για χρήση αυτού του ελέγχου ροής.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Ο εκτυπωτής τυπώνει σκουπίδια.</term>
+
+ <listitem>
+ <para>Ο εκτυπωτής τύπωσε κάτι που αποκαλούμε τυχαία σκουπίδια,
+ εννοώντας οτιδήποτε εκτός του επιθυμητού κειμένου.</para>
+
+ <para>Αυτό είναι συνήθως ένα ακόμα σύμπτωμα λανθασμένων παραμέτρων
+ σειριακής επικοινωνίας με τον εκτυπωτή. Ελέγξτε ξανά την τιμή bps
+ rate στην ικανότητα <literal>br</literal>, και την ρύθμιση parity
+ στην ικανότητα <literal>ms#</literal>. Βεβαιωθείτε πως ο
+ εκτυπωτής χρησιμοποιεί τις ίδιες ρυθμίσεις που έχουν καθοριστεί
+ στο αρχείο <filename>/etc/printcap</filename>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Δεν συνέβη τίποτε, ο εκτυπωτής δεν ξεκίνησε καν.</term>
+
+ <listitem>
+ <para>Αν δεν συνέβη τίποτε, το πρόβλημα πιθανόν να οφείλεται
+ στο &os; και όχι στο hardware. Προσθέστε την ικανότητα αρχείου
+ καταγραφής (log file, <literal>lf</literal>) στο αρχείο
+ <filename>/etc/printcap</filename>, στην καταχώριση του εκτυπωτή
+ που έχει το πρόβλημα. Για παράδειγμα, εδώ είναι η καταχώριση για
+ τον <literal>rattan</literal>, με την ικανότητα
+ <literal>lf</literal>:</para>
+
+ <programlisting>rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :sh:sd=<filename class="directory">/var/spool/lpd/rattan</filename>:\
+ :lp=<filename class="devicefile">/dev/lpt0</filename>:\
+ :if=<filename>/usr/local/libexec/if-simple</filename>:\
+ :lf=<filename>/var/log/rattan.log</filename></programlisting>
+
+ <para>Έπειτα, προσπαθήστε να ξαναεκτυπώσετε. Ελέγξτε το αρχείο
+ καταγραφής (log) (στο παράδειγμα μας,
+ <filename>/var/log/rattan.log</filename>) για να βρείτε πιθανές
+ αναφορές σφαλμάτων. Με βάση τα μηνύματα που βλέπετε, προσπαθήστε
+ να διορθώσετε το πρόβλημα.</para>
+
+ <para>Αν δεν καθορίσετε την ικανότητα <literal>lf</literal>, το
+ <application>LPD</application> χρησιμοποιεί από προεπιλογή το
+ <filename class="devicefile">/dev/console</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/security/chapter.sgml b/el_GR.ISO8859-7/books/handbook/security/chapter.sgml
new file mode 100644
index 0000000000..5485ca24ca
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/security/chapter.sgml
@@ -0,0 +1,4996 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Ασφάλεια
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/security/chapter.sgml
+ %SRCID% 1.1
+
+-->
+
+<chapter id="security">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Matthew</firstname>
+ <surname>Dillon</surname>
+ <contrib>Το μεγαλύτερο μέρος αυτού του κεφαλαίου προέρχεται από την
+ σελίδα του manual της security(7) από τον </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Ασφάλεια</title>
+ <indexterm><primary>ασφάλεια</primary></indexterm>
+
+ <sect1 id="security-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το κεφάλαιο αυτό παρέχει μια βασική εισαγωγή στις έννοιες της
+ ασφάλειας συστήματος, κάποιους γενικά καλούς κανόνες, και ορισμένα
+ προχωρημένα θέματα σχετικά με το &os;. Αρκετά από τα θέματα που
+ καλύπτονται εδώ, μπορούν να εφαρμοστούν το ίδιο καλά τόσο στο ίδιο το
+ σύστημα, όσο και για ασφάλεια μέσω Internet. Το Internet δεν είναι
+ πλέον ένα <quote>φιλικό</quote> μέρος στο οποίο καθένας θέλει να είναι
+ ο ευγενικός σας γείτονας. Η ανάγκη ασφάλισης του συστήματος σας είναι
+ επιτακτική για να προστατέψετε τα δεδομένα σας,την πνευματική σας
+ ιδιοκτησία, το χρόνο σας, και πολλά περισσότερα από τα χέρια των χάκερς
+ και των ομοίων τους.</para>
+
+ <para>Το &os; παρέχει μια σειρά από βοηθητικά προγράμματα και μηχανισμούς
+ για να εξασφαλίσει την ακεραιότητα και την ασφάλεια του συστήματος σας
+ και του δικτύου.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Βασικές έννοιες για την ασφάλεια, σε σχέση με το &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στοιχεία σχετικά με τους διάφορους μηχανισμούς κρυπτογράφησης
+ που είναι διαθέσιμοι στο &os;, όπως το <acronym>DES</acronym> και
+ το <acronym>MD5</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το σύστημα σας για κωδικούς μιας χρήσης.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε <acronym>TCP</acronym> Wrappers για χρήση με
+ την <command>inetd</command>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε τον <application>KerberosIV</application> σε
+ &os; εκδόσεις πριν τη 5.0.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε τον <application>Kerberos5</application> στο
+ &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το IPsec και να δημιουργήσετε ένα
+ <acronym>VPN</acronym> μεταξύ μηχανημάτων &os;/&windows;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε και να χρησιμοποιήσετε την κατά &os; υλοποίηση
+ <acronym>SSH</acronym> του <application>OpenSSH</application>
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Τι είναι τα <acronym>ACL</acronym>s στο σύστημα αρχείων και πως
+ να τα χρησιμοποιήσετε.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε το βοηθητικό πρόγραμμα
+ <application>Portaudit</application> για να ελέγξετε λογισμικό
+ τρίτου κατασκευαστή που έχει εγκατασταθεί μέσω της συλλογής Ports.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε τις δημοσιεύσεις security advisories
+ του &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Θα έχετε μια ιδέα για το τι είναι το Process Accounting και πως
+ να το ενεργοποιήσετε στο &os;.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε βασικές έννοιες του &os; και του Internet.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πρόσθετα θέματα σχετικά με την ασφάλεια καλύπτονται σε ολόκληρο το
+ βιβλίο. Για παράδειγμα, ο Υποχρεωτικός Έλεγχος Πρόσβασης συζητείται
+ στο <xref linkend="mac"> και τα Internet Firewalls συζητούνται στο
+ <xref linkend="firewalls">.</para>
+ </sect1>
+
+ <sect1 id="security-intro">
+ <title>Introduction</title>
+
+ <para>Security is a function that begins and ends with the system
+ administrator. While all BSD &unix; multi-user systems have some
+ inherent security, the job of building and maintaining additional
+ security mechanisms to keep those users <quote>honest</quote> is
+ probably one of the single largest undertakings of the sysadmin.
+ Machines are only as secure as you make them, and security concerns
+ are ever competing with the human necessity for convenience. &unix;
+ systems, in general, are capable of running a huge number of
+ simultaneous processes and many of these processes operate as
+ servers &mdash; meaning that external entities can connect and talk
+ to them. As yesterday's mini-computers and mainframes become
+ today's desktops, and as computers become networked and
+ inter-networked, security becomes an even bigger issue.</para>
+
+ <para>System security also pertains to dealing with various forms of
+ attack, including attacks that attempt to crash, or otherwise make a
+ system unusable, but do not attempt to compromise the
+ <username>root</username> account (<quote>break root</quote>).
+ Security concerns
+ can be split up into several categories:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Denial of service attacks.</para>
+ </listitem>
+
+ <listitem>
+ <para>User account compromises.</para>
+ </listitem>
+
+ <listitem>
+ <para>Root compromise through accessible servers.</para>
+ </listitem>
+
+ <listitem>
+ <para>Root compromise via user accounts.</para>
+ </listitem>
+
+ <listitem>
+ <para>Backdoor creation.</para>
+ </listitem>
+ </orderedlist>
+
+ <indexterm>
+ <primary>DoS attacks</primary>
+ <see>Denial of Service (DoS)</see>
+ </indexterm>
+ <indexterm>
+ <primary>security</primary>
+ <secondary>DoS attacks</secondary>
+ <see>Denial of Service (DoS)</see>
+ </indexterm>
+ <indexterm><primary>Denial of Service (DoS)</primary></indexterm>
+
+ <para>A denial of service attack is an action that deprives the
+ machine of needed resources. Typically, DoS attacks are
+ brute-force mechanisms that attempt to crash or otherwise make a
+ machine unusable by overwhelming its servers or network stack. Some
+ DoS attacks try to take advantage of bugs in the networking
+ stack to crash a machine with a single packet. The latter can only
+ be fixed by applying a bug fix to the kernel. Attacks on servers
+ can often be fixed by properly specifying options to limit the load
+ the servers incur on the system under adverse conditions.
+ Brute-force network attacks are harder to deal with. A
+ spoofed-packet attack, for example, is nearly impossible to stop,
+ short of cutting your system off from the Internet. It may not be
+ able to take your machine down, but it can saturate your
+ Internet connection.</para>
+
+ <indexterm>
+ <primary>security</primary>
+ <secondary>account compromises</secondary>
+ </indexterm>
+
+ <para>A user account compromise is even more common than a DoS
+ attack. Many sysadmins still run standard
+ <application>telnetd</application>, <application>rlogind</application>,
+ <application>rshd</application>,
+ and <application>ftpd</application> servers on their machines.
+ These servers, by default, do
+ not operate over encrypted connections. The result is that if you
+ have any moderate-sized user base, one or more of your users logging
+ into your system from a remote location (which is the most common
+ and convenient way to login to a system) will have his or her
+ password sniffed. The attentive system admin will analyze his
+ remote access logs looking for suspicious source addresses even for
+ successful logins.</para>
+
+ <para>One must always assume that once an attacker has access to a
+ user account, the attacker can break <username>root</username>.
+ However, the reality is that in a well secured and maintained system,
+ access to a user account does not necessarily give the attacker
+ access to <username>root</username>. The distinction is important
+ because without access to <username>root</username> the attacker
+ cannot generally hide his tracks and may, at best, be able to do
+ nothing more than mess with the user's files, or crash the machine.
+ User account compromises are very common because users tend not to
+ take the precautions that sysadmins take.</para>
+
+ <indexterm>
+ <primary>security</primary>
+ <secondary>backdoors</secondary>
+ </indexterm>
+
+ <para>System administrators must keep in mind that there are
+ potentially many ways to break <username>root</username> on a machine.
+ The attacker may know the <username>root</username> password,
+ the attacker may find a bug in a root-run server and be able
+ to break <username>root</username> over a network
+ connection to that server, or the attacker may know of a bug in
+ a suid-root program that allows the attacker to break
+ <username>root</username> once he has broken into a user's account.
+ If an attacker has found a way to break <username>root</username>
+ on a machine, the attacker may not have a need
+ to install a backdoor. Many of the <username>root</username> holes
+ found and closed to date involve a considerable amount of work
+ by the attacker to cleanup after himself, so most attackers install
+ backdoors. A backdoor provides the attacker with a way to easily
+ regain <username>root</username> access to the system, but it
+ also gives the smart system administrator a convenient way
+ to detect the intrusion.
+ Making it impossible for an attacker to install a backdoor may
+ actually be detrimental to your security, because it will not
+ close off the hole the attacker found to break in the first
+ place.</para>
+
+
+ <para>Security remedies should always be implemented with a
+ multi-layered <quote>onion peel</quote> approach and can be
+ categorized as follows:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Securing <username>root</username> and staff accounts.</para>
+ </listitem>
+
+ <listitem>
+ <para>Securing <username>root</username>&ndash;run servers
+ and suid/sgid binaries.</para>
+ </listitem>
+
+ <listitem>
+ <para>Securing user accounts.</para>
+ </listitem>
+
+ <listitem>
+ <para>Securing the password file.</para>
+ </listitem>
+
+ <listitem>
+ <para>Securing the kernel core, raw devices, and
+ file systems.</para>
+ </listitem>
+
+ <listitem>
+ <para>Quick detection of inappropriate changes made to the
+ system.</para>
+ </listitem>
+
+ <listitem>
+ <para>Paranoia.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>The next section of this chapter will cover the above bullet
+ items in greater depth.</para>
+ </sect1>
+
+ <sect1 id="securing-freebsd">
+ <title>Securing &os;</title>
+ <indexterm>
+ <primary>security</primary>
+ <secondary>securing &os;</secondary>
+ </indexterm>
+
+ <note>
+ <title>Command vs. Protocol</title>
+ <para>Throughout this document, we will use
+ <application>bold</application> text to refer to an
+ application, and a <command>monospaced</command> font to refer
+ to specific commands. Protocols will use a normal font. This
+ typographical distinction is useful for instances such as ssh,
+ since it is
+ a protocol as well as command.</para>
+ </note>
+
+ <para>The sections that follow will cover the methods of securing your
+ &os; system that were mentioned in the <link
+ linkend="security-intro">last section</link> of this chapter.</para>
+
+ <sect2 id="securing-root-and-staff">
+ <title>Securing the <username>root</username> Account and
+ Staff Accounts</title>
+ <indexterm>
+ <primary><command>su</command></primary>
+ </indexterm>
+
+ <para>First off, do not bother securing staff accounts if you have
+ not secured the <username>root</username> account.
+ Most systems have a password assigned to the <username>root</username>
+ account. The first thing you do is assume
+ that the password is <emphasis>always</emphasis> compromised.
+ This does not mean that you should remove the password. The
+ password is almost always necessary for console access to the
+ machine. What it does mean is that you should not make it
+ possible to use the password outside of the console or possibly
+ even with the &man.su.1; command. For example, make sure that
+ your ptys are specified as being insecure in the
+ <filename>/etc/ttys</filename> file so that direct
+ <username>root</username> logins
+ via <command>telnet</command> or <command>rlogin</command> are
+ disallowed. If using other login services such as
+ <application>sshd</application>, make sure that direct
+ <username>root</username> logins are disabled there as well.
+ You can do this by editing
+ your <filename>/etc/ssh/sshd_config</filename> file, and making
+ sure that <literal>PermitRootLogin</literal> is set to
+ <literal>NO</literal>. Consider every access method &mdash;
+ services such as FTP often fall through the cracks.
+ Direct <username>root</username> logins should only be allowed
+ via the system console.</para>
+ <indexterm>
+ <primary><groupname>wheel</groupname></primary>
+ </indexterm>
+
+ <para>Of course, as a sysadmin you have to be able to get to
+ <username>root</username>, so we open up a few holes.
+ But we make sure these holes require additional password
+ verification to operate. One way to make <username>root</username>
+ accessible is to add appropriate staff accounts to the
+ <groupname>wheel</groupname> group (in
+ <filename>/etc/group</filename>). The staff members placed in the
+ <groupname>wheel</groupname> group are allowed to
+ <command>su</command> to <username>root</username>.
+ You should never give staff
+ members native <groupname>wheel</groupname> access by putting them in the
+ <groupname>wheel</groupname> group in their password entry. Staff
+ accounts should be placed in a <groupname>staff</groupname> group, and
+ then added to the <groupname>wheel</groupname> group via the
+ <filename>/etc/group</filename> file. Only those staff members
+ who actually need to have <username>root</username> access
+ should be placed in the
+ <groupname>wheel</groupname> group. It is also possible, when using
+ an authentication method such as Kerberos, to use Kerberos'
+ <filename>.k5login</filename> file in the <username>root</username>
+ account to allow a &man.ksu.1; to <username>root</username>
+ without having to place anyone at all in the
+ <groupname>wheel</groupname> group. This may be the better solution
+ since the <groupname>wheel</groupname> mechanism still allows an
+ intruder to break <username>root</username> if the intruder
+ has gotten hold of your
+ password file and can break into a staff account. While having
+ the <groupname>wheel</groupname> mechanism is better than having
+ nothing at all, it is not necessarily the safest option.</para>
+
+ <!-- XXX:
+ This will need updating depending on the outcome of PR bin/71147.
+ Personally I know what I'd like to see, which puts this in definite
+ need of a rewrite, but we'll have to wait and see. ceri@
+ -->
+
+ <para>An indirect way to secure staff accounts, and ultimately
+ <username>root</username> access is to use an alternative
+ login access method and
+ do what is known as <quote>starring</quote> out the encrypted
+ password for the staff accounts. Using the &man.vipw.8;
+ command, one can replace each instance of an encrypted password
+ with a single <quote><literal>*</literal></quote> character.
+ This command will update the <filename>/etc/master.passwd</filename>
+ file and user/password database to disable password-authenticated
+ logins.</para>
+
+ <para>A staff account entry such as:</para>
+
+ <programlisting>foobar:R9DT/Fa1/LV9U:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh</programlisting>
+
+ <para>Should be changed to this:</para>
+
+ <programlisting>foobar:*:1000:1000::0:0:Foo Bar:/home/foobar:/usr/local/bin/tcsh</programlisting>
+
+ <para>This change will prevent normal logins from occurring,
+ since the encrypted password will never match
+ <quote><literal>*</literal></quote>. With this done,
+ staff members must use
+ another mechanism to authenticate themselves such as
+ &man.kerberos.1; or &man.ssh.1; using a public/private key
+ pair. When using something like Kerberos, one generally must
+ secure the machines which run the Kerberos servers and your
+ desktop workstation. When using a public/private key pair
+ with ssh, one must generally secure
+ the machine used to login <emphasis>from</emphasis> (typically
+ one's workstation). An additional layer of protection can be
+ added to the key pair by password protecting the key pair when
+ creating it with &man.ssh-keygen.1;. Being able to
+ <quote>star</quote> out the passwords for staff accounts also
+ guarantees that staff members can only login through secure
+ access methods that you have set up. This forces all staff
+ members to use secure, encrypted connections for all of their
+ sessions, which closes an important hole used by many
+ intruders: sniffing the network from an unrelated,
+ less secure machine.</para>
+
+ <para>The more indirect security mechanisms also assume that you are
+ logging in from a more restrictive server to a less restrictive
+ server. For example, if your main box is running all sorts of
+ servers, your workstation should not be running any. In order for
+ your workstation to be reasonably secure you should run as few
+ servers as possible, up to and including no servers at all, and
+ you should run a password-protected screen blanker. Of course,
+ given physical access to a workstation an attacker can break any
+ sort of security you put on it. This is definitely a problem that
+ you should consider, but you should also consider the fact that the
+ vast majority of break-ins occur remotely, over a network, from
+ people who do not have physical access to your workstation or
+ servers.</para>
+ <indexterm><primary>KerberosIV</primary></indexterm>
+
+ <para>Using something like Kerberos also gives you the ability to
+ disable or change the password for a staff account in one place,
+ and have it immediately affect all the machines on which the staff
+ member may have an account. If a staff member's account gets
+ compromised, the ability to instantly change his password on all
+ machines should not be underrated. With discrete passwords,
+ changing a password on N machines can be a mess. You can also
+ impose re-passwording restrictions with Kerberos: not only can a
+ Kerberos ticket be made to timeout after a while, but the Kerberos
+ system can require that the user choose a new password after a
+ certain period of time (say, once a month).</para>
+ </sect2>
+
+ <sect2>
+ <title>Securing Root-run Servers and SUID/SGID Binaries</title>
+
+ <indexterm>
+ <primary><command>ntalk</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary><command>comsat</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary><command>finger</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary>sandboxes</primary>
+ </indexterm>
+ <indexterm>
+ <primary><application>sshd</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary><application>telnetd</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary><application>rshd</application></primary>
+ </indexterm>
+ <indexterm>
+ <primary><application>rlogind</application></primary>
+ </indexterm>
+
+ <para>The prudent sysadmin only runs the servers he needs to, no
+ more, no less. Be aware that third party servers are often the
+ most bug-prone. For example, running an old version of
+ <application>imapd</application> or
+ <application>popper</application> is like giving a universal
+ <username>root</username> ticket out to the entire world.
+ Never run a server that you have not checked out carefully.
+ Many servers do not need to be run as <username>root</username>.
+ For example, the <application>ntalk</application>,
+ <application>comsat</application>, and
+ <application>finger</application> daemons can be run in special
+ user <firstterm>sandboxes</firstterm>. A sandbox is not perfect,
+ unless you go through a large amount of trouble, but the onion
+ approach to security still stands: If someone is able to break
+ in through a server running in a sandbox, they still have to
+ break out of the sandbox. The more layers the attacker must
+ break through, the lower the likelihood of his success. Root
+ holes have historically been found in virtually every server
+ ever run as <username>root</username>, including basic system servers.
+ If you are running a machine through which people only login via
+ <application>sshd</application> and never login via
+ <application>telnetd</application> or
+ <application>rshd</application> or
+ <application>rlogind</application>, then turn off those
+ services!</para>
+
+ <para>&os; now defaults to running
+ <application>ntalkd</application>,
+ <application>comsat</application>, and
+ <application>finger</application> in a sandbox. Another program
+ which may be a candidate for running in a sandbox is &man.named.8;.
+ <filename>/etc/defaults/rc.conf</filename> includes the arguments
+ necessary to run <application>named</application> in a sandbox in a
+ commented-out form. Depending on whether you are installing a new
+ system or upgrading an existing system, the special user accounts
+ used by these sandboxes may not be installed. The prudent
+ sysadmin would research and implement sandboxes for servers
+ whenever possible.</para>
+ <indexterm>
+ <primary><application>sendmail</application></primary>
+ </indexterm>
+
+ <para>There are a number of other servers that typically do not run
+ in sandboxes: <application>sendmail</application>,
+ <application>popper</application>,
+ <application>imapd</application>, <application>ftpd</application>,
+ and others. There are alternatives to some of these, but
+ installing them may require more work than you are willing to
+ perform (the convenience factor strikes again). You may have to
+ run these servers as <username>root</username> and rely on other
+ mechanisms to detect break-ins that might occur through them.</para>
+
+ <para>The other big potential <username>root</username> holes in a
+ system are the
+ suid-root and sgid binaries installed on the system. Most of
+ these binaries, such as <application>rlogin</application>, reside
+ in <filename>/bin</filename>, <filename>/sbin</filename>,
+ <filename>/usr/bin</filename>, or <filename>/usr/sbin</filename>.
+ While nothing is 100% safe, the system-default suid and sgid
+ binaries can be considered reasonably safe. Still,
+ <username>root</username> holes are occasionally found in these
+ binaries. A <username>root</username> hole was found in
+ <literal>Xlib</literal> in 1998 that made
+ <application>xterm</application> (which is typically suid)
+ vulnerable. It is better to be safe than sorry and the prudent
+ sysadmin will restrict suid binaries, that only staff should run,
+ to a special group that only staff can access, and get rid of
+ (<command>chmod 000</command>) any suid binaries that nobody uses.
+ A server with no display generally does not need an
+ <application>xterm</application> binary. Sgid binaries can be
+ almost as dangerous. If an intruder can break an sgid-kmem binary,
+ the intruder might be able to read <filename>/dev/kmem</filename>
+ and thus read the encrypted password file, potentially compromising
+ any passworded account. Alternatively an intruder who breaks
+ group <literal>kmem</literal> can monitor keystrokes sent through
+ ptys, including ptys used by users who login through secure
+ methods. An intruder that breaks the <groupname>tty</groupname>
+ group can write to
+ almost any user's tty. If a user is running a terminal program or
+ emulator with a keyboard-simulation feature, the intruder can
+ potentially generate a data stream that causes the user's terminal
+ to echo a command, which is then run as that user.</para>
+ </sect2>
+
+ <sect2 id="secure-users">
+ <title>Securing User Accounts</title>
+
+ <para>User accounts are usually the most difficult to secure. While
+ you can impose draconian access restrictions on your staff and
+ <quote>star</quote> out their passwords, you may not be able to
+ do so with any general user accounts you might have. If you do
+ have sufficient control, then you may win out and be able to secure
+ the user accounts properly. If not, you simply have to be more
+ vigilant in your monitoring of those accounts. Use of
+ ssh and Kerberos for user accounts is
+ more problematic, due to the extra administration and technical
+ support required, but still a very good solution compared to a
+ encrypted password file.</para>
+ </sect2>
+
+ <sect2>
+ <title>Securing the Password File</title>
+
+ <para>The only sure fire way is to star out as many
+ passwords as you can and use ssh or
+ Kerberos for access to those accounts. Even though the encrypted
+ password file (<filename>/etc/spwd.db</filename>) can only be read
+ by <username>root</username>, it may be possible for an intruder
+ to obtain read access to that file even if the attacker cannot
+ obtain root-write access.</para>
+
+ <para>Your security scripts should always check for and report
+ changes to the password file (see the <link
+ linkend="security-integrity">Checking file integrity</link> section
+ below).</para>
+ </sect2>
+
+ <sect2>
+ <title>Securing the Kernel Core, Raw Devices, and
+ File systems</title>
+
+ <para>If an attacker breaks <username>root</username> he can do
+ just about anything, but
+ there are certain conveniences. For example, most modern kernels
+ have a packet sniffing device driver built in. Under &os; it
+ is called the <devicename>bpf</devicename> device. An intruder
+ will commonly attempt to run a packet sniffer on a compromised
+ machine. You do not need to give the intruder the capability and
+ most systems do not have the need for the
+ <devicename>bpf</devicename> device compiled in.</para>
+
+ <indexterm>
+ <primary><command>sysctl</command></primary>
+ </indexterm>
+ <para>But even if you turn off the <devicename>bpf</devicename>
+ device, you still have
+ <filename>/dev/mem</filename> and
+ <filename>/dev/kmem</filename>
+ to worry about. For that matter, the intruder can still write to
+ raw disk devices. Also, there is another kernel feature called
+ the module loader, &man.kldload.8;. An enterprising intruder can
+ use a KLD module to install his own <devicename>bpf</devicename>
+ device, or other sniffing
+ device, on a running kernel. To avoid these problems you have to
+ run the kernel at a higher secure level, at least securelevel 1.
+ The securelevel can be set with a <command>sysctl</command> on
+ the <varname>kern.securelevel</varname> variable. Once you have
+ set the securelevel to 1, write access to raw devices will be
+ denied and special <command>chflags</command> flags,
+ such as <literal>schg</literal>,
+ will be enforced. You must also ensure that the
+ <literal>schg</literal> flag is set on critical startup binaries,
+ directories, and script files &mdash; everything that gets run up
+ to the point where the securelevel is set. This might be overdoing
+ it, and upgrading the system is much more difficult when you
+ operate at a higher secure level. You may compromise and run the
+ system at a higher secure level but not set the
+ <literal>schg</literal> flag for every system file and directory
+ under the sun. Another possibility is to simply mount
+ <filename>/</filename> and <filename>/usr</filename> read-only.
+ It should be noted that being too draconian in what you attempt to
+ protect may prevent the all-important detection of an
+ intrusion.</para>
+ </sect2>
+
+ <sect2 id="security-integrity">
+ <title>Checking File Integrity: Binaries, Configuration Files,
+ Etc.</title>
+
+ <para>When it comes right down to it, you can only protect your core
+ system configuration and control files so much before the
+ convenience factor rears its ugly head. For example, using
+ <command>chflags</command> to set the <literal>schg</literal> bit
+ on most of the files in <filename>/</filename> and
+ <filename>/usr</filename> is probably counterproductive, because
+ while it may protect the files, it also closes a detection window.
+ The last layer of your security onion is perhaps the most
+ important &mdash; detection. The rest of your security is pretty
+ much useless (or, worse, presents you with a false sense of
+ security) if you cannot detect potential intrusions. Half the job
+ of the onion is to slow down the attacker, rather than stop him, in
+ order to be able to catch him in the act.</para>
+
+ <para>The best way to detect an intrusion is to look for modified,
+ missing, or unexpected files. The best way to look for modified
+ files is from another (often centralized) limited-access system.
+ Writing your security scripts on the extra-secure limited-access
+ system makes them mostly invisible to potential attackers, and this
+ is important. In order to take maximum advantage you generally
+ have to give the limited-access box significant access to the
+ other machines in the business, usually either by doing a
+ read-only NFS export of the other machines to the limited-access
+ box, or by setting up ssh key-pairs to
+ allow the limited-access box to ssh to
+ the other machines. Except for its network traffic, NFS is the
+ least visible method &mdash; allowing you to monitor the
+ file systems on each client box virtually undetected. If your
+ limited-access server is connected to the client boxes through a
+ switch, the NFS method is often the better choice. If your
+ limited-access server is connected to the client boxes through a
+ hub, or through several layers of routing, the NFS method may be
+ too insecure (network-wise) and using
+ ssh may be the better choice even with
+ the audit-trail tracks that ssh
+ lays.</para>
+
+ <para>Once you have given a limited-access box at least read access to the
+ client systems it is supposed to monitor, you must write scripts
+ to do the actual monitoring. Given an NFS mount, you can write
+ scripts out of simple system utilities such as &man.find.1; and
+ &man.md5.1;. It is best to physically md5 the client-box files
+ at least once a day, and to test control files such as those
+ found in <filename>/etc</filename> and
+ <filename>/usr/local/etc</filename> even more often. When
+ mismatches are found, relative to the base md5 information the
+ limited-access machine knows is valid, it should scream at a
+ sysadmin to go check it out. A good security script will also
+ check for inappropriate suid binaries and for new or deleted files
+ on system partitions such as <filename>/</filename> and
+ <filename>/usr</filename>.</para>
+
+ <para>When using ssh rather than NFS,
+ writing the security script is much more difficult. You
+ essentially have to <command>scp</command> the scripts to the client
+ box in order to
+ run them, making them visible, and for safety you also need to
+ <command>scp</command> the binaries (such as find) that those
+ scripts use. The <application>ssh</application> client on the
+ client box may already be compromised. All in all, using
+ ssh may be necessary when running over
+ insecure links, but it is also a lot harder to deal with.</para>
+
+ <para>A good security script will also check for changes to user and
+ staff members access configuration files:
+ <filename>.rhosts</filename>, <filename>.shosts</filename>,
+ <filename>.ssh/authorized_keys</filename> and so forth,
+ files that might fall outside the purview of the
+ <literal>MD5</literal> check.</para>
+
+ <para>If you have a huge amount of user disk space, it may take too
+ long to run through every file on those partitions. In this case,
+ setting mount flags to disallow suid binaries and devices on those
+ partitions is a good idea. The <literal>nodev</literal> and
+ <literal>nosuid</literal> options (see &man.mount.8;) are what you
+ want to look into. You should probably scan them anyway, at least
+ once a week, since the object of this layer is to detect a break-in
+ attempt, whether or not the attempt succeeds.</para>
+
+ <para>Process accounting (see &man.accton.8;) is a relatively
+ low-overhead feature of the operating system which might help
+ as a post-break-in evaluation mechanism. It is especially
+ useful in tracking down how an intruder has actually broken into
+ a system, assuming the file is still intact after the break-in has
+ occured.</para>
+
+ <para>Finally, security scripts should process the log files, and the
+ logs themselves should be generated in as secure a manner as
+ possible &mdash; remote syslog can be very useful. An intruder
+ will try to cover his tracks, and log files are critical to the
+ sysadmin trying to track down the time and method of the initial
+ break-in. One way to keep a permanent record of the log files is
+ to run the system console to a serial port and collect the
+ information to a secure machine monitoring the consoles.</para>
+ </sect2>
+
+ <sect2>
+ <title>Paranoia</title>
+
+ <para>A little paranoia never hurts. As a rule, a sysadmin can add
+ any number of security features, as long as they do not affect
+ convenience, and can add security features that
+ <emphasis>do</emphasis> affect convenience with some added thought.
+ Even more importantly, a security administrator should mix it up a
+ bit &mdash; if you use recommendations such as those given by this
+ document verbatim, you give away your methodologies to the
+ prospective attacker who also has access to this document.</para>
+ </sect2>
+
+ <sect2>
+ <title>Denial of Service Attacks</title>
+ <indexterm><primary>Denial of Service (DoS)</primary></indexterm>
+
+ <para>This section covers Denial of Service attacks. A DoS attack
+ is typically a packet attack. While there is not much you can do
+ about modern spoofed packet attacks that saturate your network,
+ you can generally limit the damage by ensuring that the attacks
+ cannot take down your servers by:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Limiting server forks.</para>
+ </listitem>
+
+ <listitem>
+ <para>Limiting springboard attacks (ICMP response attacks, ping
+ broadcast, etc.).</para>
+ </listitem>
+
+ <listitem>
+ <para>Overloading the Kernel Route Cache.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>A common DoS attack scenario is attacking a forking server and
+ making it spawning so many child processes that the host system
+ eventually runs out of memory, file descriptors, etc. and then
+ grinds to a halt. <application>inetd</application>
+ (see &man.inetd.8;) has several
+ options to limit this sort of attack. It should be noted that
+ while it is possible to prevent a machine from going down, it is
+ not generally possible to prevent a service from being disrupted
+ by the attack. Read the <application>inetd</application> manual
+ page carefully and pay
+ specific attention to the <option>-c</option>, <option>-C</option>,
+ and <option>-R</option> options. Note that spoofed-IP attacks
+ will circumvent the <option>-C</option> option to
+ <application>inetd</application>, so
+ typically a combination of options must be used. Some standalone
+ servers have self-fork-limitation parameters.</para>
+
+ <para><application>Sendmail</application> has its
+ <option>-OMaxDaemonChildren</option> option, which tends to work
+ much better than trying to use <application>Sendmail</application>'s load limiting options
+ due to the load lag. You should specify a
+ <literal>MaxDaemonChildren</literal> parameter, when you start
+ <application>sendmail</application>; high enough to handle your
+ expected load, but not so high that the computer cannot handle that
+ number of <application>Sendmail</application> instances without falling on
+ its face. It is also prudent to run <application>Sendmail</application> in queued mode
+ (<option>-ODeliveryMode=queued</option>) and to run the daemon
+ (<command>sendmail -bd</command>) separate from the queue-runs
+ (<command>sendmail -q15m</command>). If you still want real-time
+ delivery you can run the queue at a much lower interval, such as
+ <option>-q1m</option>, but be sure to specify a reasonable
+ <literal>MaxDaemonChildren</literal> option for
+ <emphasis>that</emphasis> <application>Sendmail</application> to prevent cascade failures.</para>
+
+ <para><application>Syslogd</application> can be attacked directly
+ and it is strongly recommended that you use the <option>-s</option>
+ option whenever possible, and the <option>-a</option> option
+ otherwise.</para>
+
+ <para>You should also be fairly careful with connect-back services
+ such as <application>TCP Wrapper</application>'s reverse-identd,
+ which can be attacked directly. You generally do not want to use
+ the reverse-ident feature of
+ <application>TCP Wrapper</application> for this reason.</para>
+
+ <para>It is a very good idea to protect internal services from
+ external access by firewalling them off at your border routers.
+ The idea here is to prevent saturation attacks from outside your
+ LAN, not so much to protect internal services from network-based
+ <username>root</username> compromise.
+ Always configure an exclusive firewall, i.e.,
+ <quote>firewall everything <emphasis>except</emphasis> ports A, B,
+ C, D, and M-Z</quote>. This way you can firewall off all of your
+ low ports except for certain specific services such as
+ <application>named</application> (if you are primary for a zone),
+ <application>ntalkd</application>,
+ <application>sendmail</application>, and other Internet-accessible
+ services. If you try to configure the firewall the other way
+ &mdash; as an inclusive or permissive firewall, there is a good
+ chance that you will forget to <quote>close</quote> a couple of
+ services, or that you will add a new internal service and forget
+ to update the firewall. You can still open up the high-numbered
+ port range on the firewall, to allow permissive-like operation,
+ without compromising your low ports. Also take note that &os;
+ allows you to control the range of port numbers used for dynamic
+ binding, via the various <varname>net.inet.ip.portrange</varname>
+ <command>sysctl</command>'s (<command>sysctl -a | fgrep
+ portrange</command>), which can also ease the complexity of your
+ firewall's configuration. For example, you might use a normal
+ first/last range of 4000 to 5000, and a hiport range of 49152 to
+ 65535, then block off everything under 4000 in your firewall
+ (except for certain specific Internet-accessible ports, of
+ course).</para>
+
+ <para>Another common DoS attack is called a springboard attack
+ &mdash; to attack a server in a manner that causes the server to
+ generate responses which overloads the server, the local
+ network, or some other machine. The most common attack of this
+ nature is the <emphasis>ICMP ping broadcast attack</emphasis>.
+ The attacker spoofs ping packets sent to your LAN's broadcast
+ address with the source IP address set to the actual machine they
+ wish to attack. If your border routers are not configured to
+ stomp on ping packets to broadcast addresses, your LAN winds up
+ generating sufficient responses to the spoofed source address to
+ saturate the victim, especially when the attacker uses the same
+ trick on several dozen broadcast addresses over several dozen
+ different networks at once. Broadcast attacks of over a hundred
+ and twenty megabits have been measured. A second common
+ springboard attack is against the ICMP error reporting system.
+ By constructing packets that generate ICMP error responses, an
+ attacker can saturate a server's incoming network and cause the
+ server to saturate its outgoing network with ICMP responses. This
+ type of attack can also crash the server by running it out of
+ memory, especially if the server cannot drain the ICMP responses
+ it generates fast enough.
+ Use the <application>sysctl</application>
+ variable <literal>net.inet.icmp.icmplim</literal> to limit these attacks.
+ The last major class of springboard
+ attacks is related to certain internal
+ <application>inetd</application> services such as the
+ udp echo service. An attacker simply spoofs a UDP packet with the
+ source address being server A's echo port, and the destination
+ address being server B's echo port, where server A and B are both
+ on your LAN. The two servers then bounce this one packet back and
+ forth between each other. The attacker can overload both servers
+ and their LANs simply by injecting a few packets in this manner.
+ Similar problems exist with the internal
+ <application>chargen</application> port. A
+ competent sysadmin will turn off all of these inetd-internal test
+ services.</para>
+
+ <para>Spoofed packet attacks may also be used to overload the kernel
+ route cache. Refer to the <varname>net.inet.ip.rtexpire</varname>,
+ <varname>rtminexpire</varname>, and <varname>rtmaxcache</varname>
+ <command>sysctl</command> parameters. A spoofed packet attack
+ that uses a random source IP will cause the kernel to generate a
+ temporary cached route in the route table, viewable with
+ <command>netstat -rna | fgrep W3</command>. These routes
+ typically timeout in 1600 seconds or so. If the kernel detects
+ that the cached route table has gotten too big it will dynamically
+ reduce the <varname>rtexpire</varname> but will never decrease it
+ to less than <varname>rtminexpire</varname>. There are two
+ problems:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>The kernel does not react quickly enough when a lightly
+ loaded server is suddenly attacked.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <varname>rtminexpire</varname> is not low enough for
+ the kernel to survive a sustained attack.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>If your servers are connected to the Internet via a T3 or
+ better, it may be prudent to manually override both
+ <varname>rtexpire</varname> and <varname>rtminexpire</varname>
+ via &man.sysctl.8;. Never set either parameter to zero (unless
+ you want to crash the machine). Setting both
+ parameters to 2 seconds should be sufficient to protect the route
+ table from attack.</para>
+ </sect2>
+
+ <sect2>
+ <title>Access Issues with Kerberos and SSH</title>
+ <indexterm><primary><command>ssh</command></primary></indexterm>
+ <indexterm><primary>KerberosIV</primary></indexterm>
+
+ <para>There are a few issues with both Kerberos and
+ ssh that need to be addressed if
+ you intend to use them. Kerberos 5 is an excellent
+ authentication protocol, but there are bugs in the kerberized
+ <application>telnet</application> and
+ <application>rlogin</application> applications that make them
+ unsuitable for dealing with binary streams. Also, by default
+ Kerberos does not encrypt a session unless you use the
+ <option>-x</option> option. <application>ssh</application>
+ encrypts everything by default.</para>
+
+ <para>Ssh works quite well in every
+ respect except that it forwards encryption keys by default. What
+ this means is that if you have a secure workstation holding keys
+ that give you access to the rest of the system, and you
+ ssh to an insecure machine, your keys
+ are usable. The actual keys themselves are not exposed, but
+ ssh installs a forwarding port for the
+ duration of your login, and if an attacker has broken
+ <username>root</username> on the
+ insecure machine he can utilize that port to use your keys to gain
+ access to any other machine that your keys unlock.</para>
+
+ <para>We recommend that you use ssh in
+ combination with Kerberos whenever possible for staff logins.
+ <application>Ssh</application> can be compiled with Kerberos
+ support. This reduces your reliance on potentially exposed
+ ssh keys while at the same time
+ protecting passwords via Kerberos. Ssh
+ keys should only be used for automated tasks from secure machines
+ (something that Kerberos is unsuited to do). We also recommend that
+ you either turn off key-forwarding in the
+ ssh configuration, or that you make use
+ of the <literal>from=IP/DOMAIN</literal> option that
+ ssh allows in its
+ <filename>authorized_keys</filename> file to make the key only
+ usable to entities logging in from specific machines.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="crypt">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Bill</firstname>
+ <surname>Swingle</surname>
+ <contrib>Parts rewritten and updated by </contrib>
+ </author>
+ </authorgroup>
+ <!-- 21 Mar 2000 -->
+ </sect1info>
+
+ <title>DES, MD5, and Crypt</title>
+ <indexterm>
+ <primary>security</primary>
+ <secondary>crypt</secondary>
+ </indexterm>
+
+ <indexterm><primary>crypt</primary></indexterm>
+ <indexterm><primary>DES</primary></indexterm>
+ <indexterm><primary>MD5</primary></indexterm>
+
+ <para>Every user on a &unix; system has a password associated with
+ their account. It seems obvious that these passwords need to be
+ known only to the user and the actual operating system. In
+ order to keep these passwords secret, they are encrypted with
+ what is known as a <quote>one-way hash</quote>, that is, they can
+ only be easily encrypted but not decrypted. In other words, what
+ we told you a moment ago was obvious is not even true: the
+ operating system itself does not <emphasis>really</emphasis> know
+ the password. It only knows the <emphasis>encrypted</emphasis>
+ form of the password. The only way to get the
+ <quote>plain-text</quote> password is by a brute force search of the
+ space of possible passwords.</para>
+
+ <para>Unfortunately the only secure way to encrypt passwords when
+ &unix; came into being was based on DES, the Data Encryption
+ Standard. This was not such a problem for users resident in
+ the US, but since the source code for DES could not be exported
+ outside the US, &os; had to find a way to both comply with
+ US law and retain compatibility with all the other &unix;
+ variants that still used DES.</para>
+
+ <para>The solution was to divide up the encryption libraries
+ so that US users could install the DES libraries and use
+ DES but international users still had an encryption method
+ that could be exported abroad. This is how &os; came to
+ use MD5 as its default encryption method. MD5 is believed to
+ be more secure than DES, so installing DES is offered primarily
+ for compatibility reasons.</para>
+
+ <sect2>
+ <title>Recognizing Your Crypt Mechanism</title>
+
+ <para>Currently the library supports DES, MD5 and Blowfish hash
+ functions. By default &os; uses MD5 to encrypt
+ passwords.</para>
+
+ <para>It is pretty easy to identify which encryption method
+ &os; is set up to use. Examining the encrypted passwords in
+ the <filename>/etc/master.passwd</filename> file is one way.
+ Passwords encrypted with the MD5 hash are longer than those
+ encrypted with the DES hash and also begin with the characters
+ <literal>&dollar;1&dollar;</literal>. Passwords starting with
+ <literal>&dollar;2a&dollar;</literal> are encrypted with the
+ Blowfish hash function. DES password strings do not
+ have any particular identifying characteristics, but they are
+ shorter than MD5 passwords, and are coded in a 64-character
+ alphabet which does not include the <literal>&dollar;</literal>
+ character, so a relatively short string which does not begin with
+ a dollar sign is very likely a DES password.</para>
+
+ <para>The password format used for new passwords is controlled
+ by the <literal>passwd_format</literal> login capability in
+ <filename>/etc/login.conf</filename>, which takes values of
+ <literal>des</literal>, <literal>md5</literal> or
+ <literal>blf</literal>. See the &man.login.conf.5; manual page
+ for more information about login capabilities.</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="one-time-passwords">
+ <title>One-time Passwords</title>
+ <indexterm><primary>one-time passwords</primary></indexterm>
+ <indexterm>
+ <primary>security</primary>
+ <secondary>one-time passwords</secondary>
+ </indexterm>
+
+ <para>By default, &os; includes support for OPIE (One-time Passwords
+ In Everything), which uses the MD5 hash by default.</para>
+
+ <para>There are three different sorts of passwords which we will discuss
+ below. The first is your usual &unix; style or
+ Kerberos password; we will call this a <quote>&unix; password</quote>.
+ The second sort is the one-time password which is generated by the OPIE
+ &man.opiekey.1; program and accepted by the
+ &man.opiepasswd.1; program
+ and the login prompt; we will
+ call this a <quote>one-time password</quote>. The final sort of
+ password is the secret password which you give to the
+ <command>opiekey</command> program (and
+ sometimes the
+ <command>opiepasswd</command> programs)
+ which it uses to generate
+ one-time passwords; we will call it a <quote>secret password</quote>
+ or just unqualified <quote>password</quote>.</para>
+
+ <para>The secret password does not have anything to do with your &unix;
+ password; they can be the same but this is not recommended.
+ OPIE secret passwords are not limited to 8 characters like old
+ &unix; passwords<footnote><para>Under &os; the standard login
+ password may be up to 128 characters in length.</para></footnote>,
+ they can be as long as you like. Passwords of six or
+ seven word long phrases are fairly common. For the most part, the
+ OPIE system operates completely independently of the &unix;
+ password system.</para>
+
+ <para>Besides the password, there are two other pieces of data that
+ are important to OPIE. One is what is known as the
+ <quote>seed</quote> or <quote>key</quote>, consisting of two letters
+ and five digits. The other is what is called the <quote>iteration
+ count</quote>, a number between 1 and 100. OPIE creates the
+ one-time password by concatenating the seed and the secret password,
+ then applying the MD5 hash as many times as specified by the
+ iteration count and turning the result into six short English words.
+ These six English words are your one-time password. The
+ authentication system (primarily PAM) keeps
+ track of the last one-time password used, and the user is
+ authenticated if the hash of the user-provided password is equal to
+ the previous password. Because a one-way hash is used it is
+ impossible to generate future one-time passwords if a successfully
+ used password is captured; the iteration count is decremented after
+ each successful login to keep the user and the login program in
+ sync. When the iteration count gets down to 1, OPIE must be
+ reinitialized.</para>
+
+ <para>There are a few programs involved in each system
+ which we will discuss below. The
+ <command>opiekey</command> program accepts an iteration
+ count, a seed, and a secret password, and generates a one-time
+ password or a consecutive list of one-time passwords. The
+ <command>opiepasswd</command>
+ program is used to initialize OPIE,
+ and to change passwords, iteration counts, or seeds; it
+ takes either a secret passphrase, or an iteration count,
+ seed, and a one-time password. The
+ <command>opieinfo</command> program will examine the
+ relevant credentials files
+ (<filename>/etc/opiekeys</filename>) and print out the invoking user's
+ current iteration count and seed.</para>
+
+ <para>There are four different sorts of operations we will cover. The
+ first is using
+ <command>opiepasswd</command> over a secure connection to set up
+ one-time-passwords for the first time, or to change your password
+ or seed. The second operation is using
+ <command>opiepasswd</command> over an insecure connection, in
+ conjunction with <command>opiekey</command>
+ over a secure connection, to do the same. The third is using
+ <command>opiekey</command> to log in over
+ an insecure connection. The fourth is using
+ <command>opiekey</command> to generate a number of keys which
+ can be written down or printed out to carry with you when going to
+ some location without secure connections to anywhere.</para>
+
+ <sect2>
+ <title>Secure Connection Initialization</title>
+ <para>To initialize OPIE for the first time, execute the
+ <command>opiepasswd</command> command:</para>
+
+ <screen>&prompt.user; <userinput>opiepasswd -c</userinput>
+[grimreaper] ~ $ opiepasswd -f -c
+Adding unfurl:
+Only use this method from the console; NEVER from remote. If you are using
+telnet, xterm, or a dial-in, type ^C now or exit with no password.
+Then run opiepasswd without the -c parameter.
+Using MD5 to compute responses.
+Enter new secret pass phrase:
+Again new secret pass phrase:
+ID unfurl OTP key is 499 to4268
+MOS MALL GOAT ARM AVID COED
+</screen>
+
+ <para>At the <prompt>Enter new secret pass phrase:</prompt> or
+ <prompt>Enter secret password:</prompt> prompts, you
+ should enter a password or phrase. Remember, this is not the
+ password that you will use to login with, this is used to generate
+ your one-time login keys. The <quote>ID</quote> line gives the
+ parameters of your particular instance: your login name, the
+ iteration count, and seed. When logging in the system
+ will remember these parameters and present them back to you so you
+ do not have to remember them. The last line gives the particular
+ one-time password which corresponds to those parameters and your
+ secret password; if you were to re-login immediately, this
+ one-time password is the one you would use.</para>
+ </sect2>
+
+ <sect2>
+ <title>Insecure Connection Initialization</title>
+
+ <para>To initialize or change your secret password over an
+ insecure connection, you will need to already have a secure
+ connection to some place where you can run
+ <command>opiekey</command>; this might be in the form of a shell
+ prompt on a machine you
+ trust. You will also need to make up an iteration count (100 is
+ probably a good value), and you may make up your own seed or use a
+ randomly-generated one. Over on the insecure connection (to the
+ machine you are initializing), use <command>opiepasswd</command>:</para>
+
+ <screen>&prompt.user; <userinput>opiepasswd</userinput>
+
+Updating unfurl:
+You need the response from an OTP generator.
+Old secret pass phrase:
+ otp-md5 498 to4268 ext
+ Response: GAME GAG WELT OUT DOWN CHAT
+New secret pass phrase:
+ otp-md5 499 to4269
+ Response: LINE PAP MILK NELL BUOY TROY
+
+ID mark OTP key is 499 gr4269
+LINE PAP MILK NELL BUOY TROY
+</screen>
+
+ <para>To accept the default seed press <keycap>Return</keycap>.
+ Then before entering an
+ access password, move over to your secure connection and give it
+ the same parameters:</para>
+
+ <screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
+Using the MD5 algorithm to compute response.
+Reminder: Don't use opiekey from telnet or dial-in sessions.
+Enter secret pass phrase:
+GAME GAG WELT OUT DOWN CHAT
+</screen>
+
+ <para>Now switch back over to the insecure connection, and copy the
+ one-time password generated over to the relevant program.</para>
+ </sect2>
+
+ <sect2>
+ <title>Generating a Single One-time Password</title>
+
+ <para>Once you have initialized OPIE and login, you will be
+ presented with a prompt like this:</para>
+
+<screen>&prompt.user; <userinput>telnet example.com</userinput>
+Trying 10.0.0.1...
+Connected to example.com
+Escape character is '^]'.
+
+FreeBSD/i386 (example.com) (ttypa)
+
+login: <userinput>&lt;username&gt;</userinput>
+otp-md5 498 gr4269 ext
+Password: </screen>
+
+ <para>As a side note, the OPIE prompts have a useful feature
+ (not shown here): if you press <keycap>Return</keycap>
+ at the password prompt, the
+ prompter will turn echo on, so you can see what you are
+ typing. This can be extremely useful if you are attempting to
+ type in a password by hand, such as from a printout.</para>
+
+ <indexterm><primary>MS-DOS</primary></indexterm>
+ <indexterm><primary>Windows</primary></indexterm>
+ <indexterm><primary>MacOS</primary></indexterm>
+
+ <para>At this point you need to generate your one-time password to
+ answer this login prompt. This must be done on a trusted system
+ that you can run
+ <command>opiekey</command> on. (There are versions of these for DOS,
+ &windows; and &macos; as well.) They need the iteration count and
+ the seed as command line options. You can cut-and-paste these
+ right from the login prompt on the machine that you are logging
+ in to.</para>
+
+ <para>On the trusted system:</para>
+
+ <screen>&prompt.user; <userinput>opiekey 498 to4268</userinput>
+Using the MD5 algorithm to compute response.
+Reminder: Don't use opiekey from telnet or dial-in sessions.
+Enter secret pass phrase:
+GAME GAG WELT OUT DOWN CHAT</screen>
+
+ <para>Now that you have your one-time password you can continue
+ logging in.</para>
+ </sect2>
+
+ <sect2>
+ <title>Generating Multiple One-time Passwords</title>
+
+ <para>Sometimes you have to go places where you do not have
+ access to a trusted machine or secure connection. In this case,
+ it is possible to use the
+ <command>opiekey</command> command to
+ generate a number of one-time passwords beforehand to be printed
+ out and taken with you. For example:</para>
+
+ <screen>&prompt.user; <userinput>opiekey -n 5 30 zz99999</userinput>
+Using the MD5 algorithm to compute response.
+Reminder: Don't use opiekey from telnet or dial-in sessions.
+Enter secret pass phrase: <userinput>&lt;secret password&gt;</userinput>
+26: JOAN BORE FOSS DES NAY QUIT
+27: LATE BIAS SLAY FOLK MUCH TRIG
+28: SALT TIN ANTI LOON NEAL USE
+29: RIO ODIN GO BYE FURY TIC
+30: GREW JIVE SAN GIRD BOIL PHI</screen>
+
+ <para>The <option>-n 5</option> requests five keys in sequence, the
+ <option>30</option> specifies what the last iteration number
+ should be. Note that these are printed out in
+ <emphasis>reverse</emphasis> order of eventual use. If you are
+ really paranoid, you might want to write the results down by hand;
+ otherwise you can cut-and-paste into <command>lpr</command>. Note
+ that each line shows both the iteration count and the one-time
+ password; you may still find it handy to scratch off passwords as
+ you use them.</para>
+ </sect2>
+
+ <sect2>
+ <title>Restricting Use of &unix; Passwords</title>
+
+ <para>OPIE can restrict the use of &unix; passwords based on the IP
+ address of a login session. The relevant file
+ is <filename>/etc/opieaccess</filename>, which is present by default.
+ Please check &man.opieaccess.5;
+ for more information on this file and which security considerations
+ you should be aware of when using it.</para>
+
+ <para>Here is a sample <filename>opieaccess</filename> file:</para>
+
+ <programlisting>permit 192.168.0.0 255.255.0.0</programlisting>
+
+ <para>This line allows users whose IP source address (which is
+ vulnerable to spoofing) matches the specified value and mask,
+ to use &unix; passwords at any time.</para>
+
+ <para>If no rules in <filename>opieaccess</filename> are matched,
+ the default is to deny non-OPIE logins.</para>
+
+ </sect2>
+ </sect1>
+
+ <sect1 id="tcpwrappers">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Written by: </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <indexterm><primary>TCP Wrappers</primary></indexterm>
+
+ <title>TCP Wrappers</title>
+
+ <para>Anyone familiar with &man.inetd.8; has probably heard
+ of <acronym>TCP</acronym> Wrappers at some point. But few
+ individuals seem to fully comprehend its usefulness in a
+ network environment. It seems that everyone wants to
+ install a firewall to handle network connections. While a
+ firewall has a wide variety of uses, there are some things
+ that a firewall not handle such as sending text back to the
+ connection originator. The <acronym>TCP</acronym> software
+ does this and much more. In the next few sections many of
+ the <acronym>TCP</acronym> Wrappers features will be discussed,
+ and, when applicable, example configuration lines will be
+ provided.</para>
+
+ <para>The <acronym>TCP</acronym> Wrappers software extends the
+ abilities of <command>inetd</command> to provide support for
+ every server daemon under its control. Using this method it
+ is possible to provide logging support, return messages to
+ connections, permit a daemon to only accept internal connections,
+ etc. While some of these features can be provided by implementing
+ a firewall, this will add not only an extra layer of protection
+ but go beyond the amount of control a firewall can
+ provide.</para>
+
+ <para>The added functionality of <acronym>TCP</acronym> Wrappers
+ should not be considered a replacement for a good firewall.
+ <acronym>TCP</acronym> Wrappers can be used in conjunction
+ with a firewall or other security enhancements though and
+ it can serve nicely as an extra layer of protection
+ for the system.</para>
+
+ <para>Since this is an extension to the configuration of
+ <command>inetd</command>, the reader is expected have
+ read the <link linkend="network-inetd">inetd configuration</link>
+ section.</para>
+
+ <note>
+ <para>While programs run by &man.inetd.8; are not exactly
+ <quote>daemons</quote>, they have traditionally been called
+ daemons. This is the term we will use in this section too.</para>
+ </note>
+
+ <sect2>
+ <title>Initial Configuration</title>
+
+ <para>The only requirement of using <acronym>TCP</acronym>
+ Wrappers in &os; is to ensure the <command>inetd</command>
+ server is started from <filename>rc.conf</filename> with the
+ <option>-Ww</option> option; this is the default setting. Of
+ course, proper configuration of
+ <filename>/etc/hosts.allow</filename> is also expected, but
+ &man.syslogd.8; will throw messages in the system logs in
+ these cases.</para>
+
+ <note>
+ <para>Unlike other implementations of <acronym>TCP</acronym>
+ Wrappers, the use of <filename>hosts.deny</filename> has
+ been deprecated. All configuration options should be placed
+ in <filename>/etc/hosts.allow</filename>.</para>
+ </note>
+
+ <para>In the simplest configuration, daemon connection policies
+ are set to either be permitted or blocked depending on the
+ options in <filename>/etc/hosts.allow</filename>. The default
+ configuration in &os; is to allow a connection to every daemon
+ started with <command>inetd</command>. Changing this will be
+ discussed only after the basic configuration is covered.</para>
+
+ <para>Basic configuration usually takes the form of
+ <literal>daemon : address : action</literal>. Where
+ <literal>daemon</literal> is the daemon name which
+ <command>inetd</command> started. The
+ <literal>address</literal> can be a valid hostname, an
+ <acronym>IP</acronym> address or an IPv6 address enclosed in
+ brackets ([&nbsp;]). The action field can be either allow
+ or deny to grant or deny access appropriately. Keep in mind
+ that configuration works off a first rule match semantic,
+ meaning that the configuration file is scanned in ascending
+ order for a matching rule. When a match is found the rule
+ is applied and the search process will halt.</para>
+
+ <para>Several other options exist but they will be explained
+ in a later section. A simple configuration line may easily be
+ constructed from that information alone. For example, to
+ allow <acronym>POP</acronym>3 connections via the
+ <filename role="package">mail/qpopper</filename> daemon,
+ the following lines should be appended to
+ <filename>hosts.allow</filename>:</para>
+
+ <programlisting># This line is required for POP3 connections:
+qpopper : ALL : allow</programlisting>
+
+ <para>After adding this line, <command>inetd</command> will need
+ restarted. This can be accomplished by use of the &man.kill.1;
+ command, or with the <parameter>restart</parameter> parameter
+ with <filename>/etc/rc.d/inetd</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Advanced Configuration</title>
+
+ <para><acronym>TCP</acronym> Wrappers has advanced
+ options too; they will allow for more control over the
+ way connections are handled. In some cases it may be
+ a good idea to return a comment to certain hosts or
+ daemon connections. In other cases, perhaps a log file
+ should be recorded or an email sent to the administrator.
+ Other situations may require the use of a service for local
+ connections only. This is all possible through the use of
+ configuration options known as <literal>wildcards</literal>,
+ expansion characters and external command execution. The
+ next two sections are written to cover these situations.</para>
+
+ <sect3>
+ <title>External Commands</title>
+
+ <para>Suppose that a situation occurs where a connection
+ should be denied yet a reason should be sent to the
+ individual who attempted to establish that connection. How
+ could it be done? That action can be made possible by
+ using the <option>twist</option> option. When a connection
+ attempt is made, <option>twist</option> will be called to
+ execute a shell command or script. An example already exists
+ in the <filename>hosts.allow</filename> file:</para>
+
+ <programlisting># The rest of the daemons are protected.
+ALL : ALL \
+ : severity auth.info \
+ : twist /bin/echo "You are not welcome to use %d from %h."</programlisting>
+
+ <para>This example shows that the message,
+ <quote>You are not allowed to use <literal>daemon</literal>
+ from <literal>hostname</literal>.</quote> will be returned
+ for any daemon not previously configured in the access file.
+ This is extremely useful for sending a reply back to the
+ connection initiator right after the established connection
+ is dropped. Note that any message returned
+ <emphasis>must</emphasis> be wrapped in quote
+ <literal>"</literal> characters; there are no exceptions to
+ this rule.</para>
+
+ <warning>
+ <para>It may be possible to launch a denial of service attack
+ on the server if an attacker, or group of attackers could
+ flood these daemons with connection requests.</para>
+ </warning>
+
+ <para>Another possibility is to use the <option>spawn</option>
+ option in these cases. Like <option>twist</option>, the
+ <option>spawn</option> implicitly denies the connection and
+ may be used to run external shell commands or scripts.
+ Unlike <option>twist</option>, <option>spawn</option> will
+ not send a reply back to the individual who established the
+ connection. For an example, consider the following
+ configuration line:</para>
+
+ <programlisting># We do not allow connections from example.com:
+ALL : .example.com \
+ : spawn (/bin/echo %a from %h attempted to access %d &gt;&gt; \
+ /var/log/connections.log) \
+ : deny</programlisting>
+
+ <para>This will deny all connection attempts from the
+ <hostid role="fqdn">*.example.com</hostid> domain;
+ simultaneously logging the hostname, <acronym>IP</acronym>
+ address and the daemon which they attempted to access in the
+ <filename>/var/log/connections.log</filename> file.</para>
+
+ <para>Aside from the already explained substitution characters
+ above, e.g. %a, a few others exist. See the
+ &man.hosts.access.5; manual page for the complete list.</para>
+ </sect3>
+
+ <sect3>
+ <title>Wildcard Options</title>
+
+ <para>Thus far the <literal>ALL</literal> example has been used
+ continuously throughout the examples. Other options exist
+ which could extend the functionality a bit further. For
+ instance, <literal>ALL</literal> may be used to match every
+ instance of either a daemon, domain or an
+ <acronym>IP</acronym> address. Another wildcard available is
+ <literal>PARANOID</literal> which may be used to match any
+ host which provides an <acronym>IP</acronym> address that may
+ be forged. In other words, <literal>paranoid</literal> may
+ be used to define an action to be taken whenever a connection
+ is made from an <acronym>IP</acronym> address that differs
+ from its hostname. The following example may shed some more
+ light on this discussion:</para>
+
+ <programlisting># Block possibly spoofed requests to sendmail:
+sendmail : PARANOID : deny</programlisting>
+
+ <para>In that example all connection requests to
+ <command>sendmail</command> which have an
+ <acronym>IP</acronym> address that varies from its hostname
+ will be denied.</para>
+
+ <caution>
+ <para>Using the <literal>PARANOID</literal> may severely
+ cripple servers if the client or server has a broken
+ <acronym>DNS</acronym> setup. Administrator discretion
+ is advised.</para>
+ </caution>
+
+ <para>To learn more about wildcards and their associated
+ functionality, see the &man.hosts.access.5; manual
+ page.</para>
+
+ <para>Before any of the specific configuration lines above will
+ work, the first configuration line should be commented out
+ in <filename>hosts.allow</filename>. This was noted at the
+ beginning of this section.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="kerberosIV">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Mark</firstname>
+ <surname>Murray</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Mark</firstname>
+ <surname>Dapoz</surname>
+ <contrib>Based on a contribution by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title><application>KerberosIV</application></title>
+
+ <para>Kerberos is a network add-on system/protocol that allows users to
+ authenticate themselves through the services of a secure server.
+ Services such as remote login, remote copy, secure inter-system file
+ copying and other high-risk tasks are made considerably safer and more
+ controllable.</para>
+
+ <para>The following instructions can be used as a guide on how to set up
+ Kerberos as distributed for &os;. However, you should refer to the
+ relevant manual pages for a complete description.</para>
+
+ <sect2>
+ <title>Installing <application>KerberosIV</application></title>
+
+ <indexterm><primary>MIT</primary></indexterm>
+ <indexterm>
+ <primary>KerberosIV</primary>
+ <secondary>installing</secondary>
+ </indexterm>
+ <para>Kerberos is an optional component of &os;. The easiest
+ way to install this software is by selecting the <literal>krb4</literal> or
+ <literal>krb5</literal> distribution in <application>sysinstall</application>
+ during the initial installation of &os;. This will install
+ the <quote>eBones</quote> (KerberosIV) or <quote>Heimdal</quote> (Kerberos5)
+ implementation of Kerberos. These implementations are
+ included because they are developed outside the USA/Canada and
+ were thus available to system owners outside those countries
+ during the era of restrictive export controls on cryptographic
+ code from the USA.</para>
+
+ <para>Alternatively, the MIT implementation of Kerberos is
+ available from the Ports Collection as
+ <filename role="package">security/krb5</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Creating the Initial Database</title>
+
+ <para>This is done on the Kerberos server only. First make sure that
+ you do not have any old Kerberos databases around. You should change
+ to the directory <filename>/etc/kerberosIV</filename> and check that
+ only the following files are present:</para>
+
+ <screen>&prompt.root; <userinput>cd /etc/kerberosIV</userinput>
+&prompt.root; <userinput>ls</userinput>
+README krb.conf krb.realms</screen>
+
+ <para>If any additional files (such as <filename>principal.*</filename>
+ or <filename>master_key</filename>) exist, then use the
+ <command>kdb_destroy</command> command to destroy the old Kerberos
+ database, or if Kerberos is not running, simply delete the extra
+ files.</para>
+
+ <para>You should now edit the <filename>krb.conf</filename> and
+ <filename>krb.realms</filename> files to define your Kerberos realm.
+ In this case the realm will be <literal>EXAMPLE.COM</literal> and the
+ server is <hostid role="fqdn">grunt.example.com</hostid>. We edit
+ or create the <filename>krb.conf</filename> file:</para>
+
+ <screen>&prompt.root; <userinput>cat krb.conf</userinput>
+EXAMPLE.COM
+EXAMPLE.COM grunt.example.com admin server
+CS.BERKELEY.EDU okeeffe.berkeley.edu
+ATHENA.MIT.EDU kerberos.mit.edu
+ATHENA.MIT.EDU kerberos-1.mit.edu
+ATHENA.MIT.EDU kerberos-2.mit.edu
+ATHENA.MIT.EDU kerberos-3.mit.edu
+LCS.MIT.EDU kerberos.lcs.mit.edu
+TELECOM.MIT.EDU bitsy.mit.edu
+ARC.NASA.GOV trident.arc.nasa.gov</screen>
+
+ <para>In this case, the other realms do not need to be there. They are
+ here as an example of how a machine may be made aware of multiple
+ realms. You may wish to not include them for simplicity.</para>
+
+ <para>The first line names the realm in which this system works. The
+ other lines contain realm/host entries. The first item on a line is a
+ realm, and the second is a host in that realm that is acting as a
+ <quote>key distribution center</quote>. The words <literal>admin
+ server</literal> following a host's name means that host also
+ provides an administrative database server. For further explanation
+ of these terms, please consult the Kerberos manual pages.</para>
+
+ <para>Now we have to add <hostid role="fqdn">grunt.example.com</hostid>
+ to the <literal>EXAMPLE.COM</literal> realm and also add an entry to
+ put all hosts in the <hostid role="domainname">.example.com</hostid>
+ domain in the <literal>EXAMPLE.COM</literal> realm. The
+ <filename>krb.realms</filename> file would be updated as
+ follows:</para>
+
+ <screen>&prompt.root; <userinput>cat krb.realms</userinput>
+grunt.example.com EXAMPLE.COM
+.example.com EXAMPLE.COM
+.berkeley.edu CS.BERKELEY.EDU
+.MIT.EDU ATHENA.MIT.EDU
+.mit.edu ATHENA.MIT.EDU</screen>
+
+ <para>Again, the other realms do not need to be there. They are here as
+ an example of how a machine may be made aware of multiple realms. You
+ may wish to remove them to simplify things.</para>
+
+ <para>The first line puts the <emphasis>specific</emphasis> system into
+ the named realm. The rest of the lines show how to default systems of
+ a particular subdomain to a named realm.</para>
+
+ <para>Now we are ready to create the database. This only needs to run
+ on the Kerberos server (or Key Distribution Center). Issue the
+ <command>kdb_init</command> command to do this:</para>
+
+ <screen>&prompt.root; <userinput>kdb_init</userinput>
+<prompt>Realm name [default ATHENA.MIT.EDU ]:</prompt> <userinput>EXAMPLE.COM</userinput>
+You will be prompted for the database Master Password.
+It is important that you NOT FORGET this password.
+
+<prompt>Enter Kerberos master key:</prompt> </screen>
+
+ <para>Now we have to save the key so that servers on the local machine
+ can pick it up. Use the <command>kstash</command> command to do
+ this:</para>
+
+ <screen>&prompt.root; <userinput>kstash</userinput>
+
+<prompt>Enter Kerberos master key:</prompt>
+
+Current Kerberos master key version is 1.
+
+Master key entered. BEWARE!</screen>
+
+ <para>This saves the encrypted master password in
+ <filename>/etc/kerberosIV/master_key</filename>.</para>
+ </sect2>
+
+ <sect2>
+ <title>Making It All Run</title>
+
+ <indexterm>
+ <primary>KerberosIV</primary>
+ <secondary>initial startup</secondary>
+ </indexterm>
+
+ <para>Two principals need to be added to the database for
+ <emphasis>each</emphasis> system that will be secured with Kerberos.
+ Their names are <literal>kpasswd</literal> and <literal>rcmd</literal>.
+ These two principals are made for each system, with the instance being
+ the name of the individual system.</para>
+
+ <para>These daemons, <application>kpasswd</application> and
+ <application>rcmd</application> allow other systems to change Kerberos
+ passwords and run commands like &man.rcp.1;,
+ &man.rlogin.1; and &man.rsh.1;.</para>
+
+ <para>Now let us add these entries:</para>
+
+ <screen>&prompt.root; <userinput>kdb_edit</userinput>
+Opening database...
+
+<prompt>Enter Kerberos master key:</prompt>
+
+Current Kerberos master key version is 1.
+
+Master key entered. BEWARE!
+Previous or default values are in [brackets] ,
+enter return to leave the same, or new value.
+
+<prompt>Principal name:</prompt> <userinput>passwd</userinput>
+<prompt>Instance:</prompt> <userinput>grunt</userinput>
+
+&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
+
+Principal: passwd, Instance: grunt, kdc_key_ver: 1
+<prompt>New Password:</prompt> &lt;---- enter RANDOM here
+Verifying password
+
+<prompt>New Password:</prompt> &lt;---- enter RANDOM here
+
+<prompt>Random password [y] ?</prompt> <userinput>y</userinput>
+
+Principal's new key version = 1
+<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
+<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
+<prompt>Attributes [ 0 ] ?</prompt>
+Edit O.K.
+<prompt>Principal name:</prompt> <userinput>rcmd</userinput>
+<prompt>Instance:</prompt> <userinput>grunt</userinput>
+
+&lt;Not found&gt;, <prompt>Create [y] ?</prompt>
+
+Principal: rcmd, Instance: grunt, kdc_key_ver: 1
+<prompt>New Password:</prompt> &lt;---- enter RANDOM here
+Verifying password
+
+<prompt>New Password:</prompt> &lt;---- enter RANDOM here
+
+<prompt>Random password [y] ?</prompt>
+
+Principal's new key version = 1
+<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
+<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
+<prompt>Attributes [ 0 ] ?</prompt>
+Edit O.K.
+<prompt>Principal name:</prompt> &lt;---- null entry here will cause an exit</screen>
+ </sect2>
+
+ <sect2>
+ <title>Creating the Server File</title>
+
+ <para>We now have to extract all the instances which define the
+ services on each machine. For this we use the
+ <command>ext_srvtab</command> command. This will create a file
+ which must be copied or moved <emphasis>by secure
+ means</emphasis> to each Kerberos client's
+ <filename>/etc</filename> directory. This file must
+ be present on each server and client, and is crucial to the
+ operation of Kerberos.</para>
+
+
+ <screen>&prompt.root; <userinput>ext_srvtab grunt</userinput>
+<prompt>Enter Kerberos master key:</prompt>
+
+Current Kerberos master key version is 1.
+
+Master key entered. BEWARE!
+Generating 'grunt-new-srvtab'....</screen>
+
+ <para>Now, this command only generates a temporary file which must be
+ renamed to <filename>srvtab</filename> so that all the servers can pick
+ it up. Use the &man.mv.1; command to move it into place on
+ the original system:</para>
+
+ <screen>&prompt.root; <userinput>mv grunt-new-srvtab srvtab</userinput></screen>
+
+ <para>If the file is for a client system, and the network is not deemed
+ safe, then copy the
+ <filename><replaceable>client</replaceable>-new-srvtab</filename> to
+ removable media and transport it by secure physical means. Be sure to
+ rename it to <filename>srvtab</filename> in the client's
+ <filename>/etc</filename> directory, and make sure it is
+ mode 600:</para>
+
+ <screen>&prompt.root; <userinput>mv grumble-new-srvtab srvtab</userinput>
+&prompt.root; <userinput>chmod 600 srvtab</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Populating the Database</title>
+
+ <para>We now have to add some user entries into the database. First
+ let us create an entry for the user <username>jane</username>. Use the
+ <command>kdb_edit</command> command to do this:</para>
+
+ <screen>&prompt.root; <userinput>kdb_edit</userinput>
+Opening database...
+
+<prompt>Enter Kerberos master key:</prompt>
+
+Current Kerberos master key version is 1.
+
+Master key entered. BEWARE!
+Previous or default values are in [brackets] ,
+enter return to leave the same, or new value.
+
+<prompt>Principal name:</prompt> <userinput>jane</userinput>
+<prompt>Instance:</prompt>
+
+&lt;Not found&gt;, <prompt>Create [y] ?</prompt> <userinput>y</userinput>
+
+Principal: jane, Instance: , kdc_key_ver: 1
+<prompt>New Password:</prompt> &lt;---- enter a secure password here
+Verifying password
+
+<prompt>New Password:</prompt> &lt;---- re-enter the password here
+Principal's new key version = 1
+<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
+<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt>
+<prompt>Attributes [ 0 ] ?</prompt>
+Edit O.K.
+<prompt>Principal name:</prompt> &lt;---- null entry here will cause an exit</screen>
+ </sect2>
+
+ <sect2>
+ <title>Testing It All Out</title>
+
+ <para>First we have to start the Kerberos daemons. Note that if you
+ have correctly edited your <filename>/etc/rc.conf</filename> then this
+ will happen automatically when you reboot. This is only necessary on
+ the Kerberos server. Kerberos clients will automatically get what
+ they need from the <filename>/etc/kerberosIV</filename>
+ directory.</para>
+
+ <screen>&prompt.root; <userinput>kerberos &amp;</userinput>
+Kerberos server starting
+Sleep forever on error
+Log file is /var/log/kerberos.log
+Current Kerberos master key version is 1.
+
+Master key entered. BEWARE!
+
+Current Kerberos master key version is 1
+Local realm: EXAMPLE.COM
+&prompt.root; <userinput>kadmind -n &amp;</userinput>
+KADM Server KADM0.0A initializing
+Please do not use 'kill -9' to kill this job, use a
+regular kill instead
+
+Current Kerberos master key version is 1.
+
+Master key entered. BEWARE!</screen>
+
+ <para>Now we can try using the <command>kinit</command> command to get a
+ ticket for the ID <username>jane</username> that we created
+ above:</para>
+
+ <screen>&prompt.user; <userinput>kinit jane</userinput>
+MIT Project Athena (grunt.example.com)
+Kerberos Initialization for "jane"
+<prompt>Password:</prompt> </screen>
+
+ <para>Try listing the tokens using <command>klist</command> to see if we
+ really have them:</para>
+
+ <screen>&prompt.user; <userinput>klist</userinput>
+Ticket file: /tmp/tkt245
+Principal: jane@EXAMPLE.COM
+
+ Issued Expires Principal
+Apr 30 11:23:22 Apr 30 19:23:22 krbtgt.EXAMPLE.COM@EXAMPLE.COM</screen>
+
+ <para>Now try changing the password using &man.passwd.1; to
+ check if the <application>kpasswd</application> daemon can get
+ authorization to the Kerberos database:</para>
+
+ <screen>&prompt.user; <userinput>passwd</userinput>
+realm EXAMPLE.COM
+<prompt>Old password for jane:</prompt>
+<prompt>New Password for jane:</prompt>
+Verifying password
+<prompt>New Password for jane:</prompt>
+Password changed.</screen>
+ </sect2>
+
+ <sect2>
+ <title>Adding <command>su</command> Privileges</title>
+
+ <para>Kerberos allows us to give <emphasis>each</emphasis> user
+ who needs <username>root</username> privileges their own
+ <emphasis>separate</emphasis> &man.su.1; password.
+ We could now add an ID which is authorized to
+ &man.su.1; to <username>root</username>. This is
+ controlled by having an instance of <username>root</username>
+ associated with a principal. Using <command>kdb_edit</command>
+ we can create the entry <literal>jane.root</literal> in the
+ Kerberos database:</para>
+
+ <screen>&prompt.root; <userinput>kdb_edit</userinput>
+Opening database...
+
+<prompt>Enter Kerberos master key:</prompt>
+
+Current Kerberos master key version is 1.
+
+Master key entered. BEWARE!
+Previous or default values are in [brackets] ,
+enter return to leave the same, or new value.
+
+<prompt>Principal name:</prompt> <userinput>jane</userinput>
+<prompt>Instance:</prompt> <userinput>root</userinput>
+
+&lt;Not found&gt;, Create [y] ? y
+
+Principal: jane, Instance: root, kdc_key_ver: 1
+<prompt>New Password:</prompt> &lt;---- enter a SECURE password here
+Verifying password
+
+<prompt>New Password:</prompt> &lt;---- re-enter the password here
+
+Principal's new key version = 1
+<prompt>Expiration date (enter yyyy-mm-dd) [ 2000-01-01 ] ?</prompt>
+<prompt>Max ticket lifetime (*5 minutes) [ 255 ] ?</prompt> <userinput>12</userinput> &lt;--- Keep this short!
+<prompt>Attributes [ 0 ] ?</prompt>
+Edit O.K.
+<prompt>Principal name:</prompt> &lt;---- null entry here will cause an exit</screen>
+
+ <para>Now try getting tokens for it to make sure it works:</para>
+
+ <screen>&prompt.root; <userinput>kinit jane.root</userinput>
+MIT Project Athena (grunt.example.com)
+Kerberos Initialization for "jane.root"
+<prompt>Password:</prompt></screen>
+
+ <para>Now we need to add the user to <username>root</username>'s
+ <filename>.klogin</filename> file:</para>
+
+ <screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
+jane.root@EXAMPLE.COM</screen>
+
+ <para>Now try doing the &man.su.1;:</para>
+
+ <screen>&prompt.user; <userinput>su</userinput>
+<prompt>Password:</prompt></screen>
+
+ <para>and take a look at what tokens we have:</para>
+
+ <screen>&prompt.root; <userinput>klist</userinput>
+Ticket file: /tmp/tkt_root_245
+Principal: jane.root@EXAMPLE.COM
+
+ Issued Expires Principal
+May 2 20:43:12 May 3 04:43:12 krbtgt.EXAMPLE.COM@EXAMPLE.COM</screen>
+ </sect2>
+
+ <sect2>
+ <title>Using Other Commands</title>
+
+ <para>In an earlier example, we created a principal called
+ <literal>jane</literal> with an instance <literal>root</literal>.
+ This was based on a user with the same name as the principal, and this
+ is a Kerberos default; that a
+ <literal>&lt;principal&gt;.&lt;instance&gt;</literal> of the form
+ <literal>&lt;username&gt;.</literal><username>root</username> will allow
+ that <literal>&lt;username&gt;</literal> to &man.su.1; to
+ <username>root</username> if the necessary entries are in the
+ <filename>.klogin</filename> file in <username>root</username>'s
+ home directory:</para>
+
+ <screen>&prompt.root; <userinput>cat /root/.klogin</userinput>
+jane.root@EXAMPLE.COM</screen>
+
+ <para>Likewise, if a user has in their own home directory lines of the
+ form:</para>
+
+ <screen>&prompt.user; <userinput>cat ~/.klogin</userinput>
+jane@EXAMPLE.COM
+jack@EXAMPLE.COM</screen>
+
+ <para>This allows anyone in the <literal>EXAMPLE.COM</literal> realm
+ who has authenticated themselves as <username>jane</username> or
+ <username>jack</username> (via <command>kinit</command>, see above)
+ to access to <username>jane</username>'s
+ account or files on this system (<hostid>grunt</hostid>) via
+ &man.rlogin.1;, &man.rsh.1; or
+ &man.rcp.1;.</para>
+
+ <para>For example, <username>jane</username> now logs into another system using
+ Kerberos:</para>
+
+ <screen>&prompt.user; <userinput>kinit</userinput>
+MIT Project Athena (grunt.example.com)
+<prompt>Password:</prompt>
+&prompt.user; <userinput>rlogin grunt</userinput>
+Last login: Mon May 1 21:14:47 from grumble
+Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
+ The Regents of the University of California. All rights reserved.
+
+FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
+
+ <para>Or <username>jack</username> logs into <username>jane</username>'s account on the same machine
+ (<username>jane</username> having
+ set up the <filename>.klogin</filename> file as above, and the person
+ in charge of Kerberos having set up principal
+ <emphasis>jack</emphasis> with a null instance):</para>
+
+ <screen>&prompt.user; <userinput>kinit</userinput>
+&prompt.user; <userinput>rlogin grunt -l jane</userinput>
+MIT Project Athena (grunt.example.com)
+<prompt>Password:</prompt>
+Last login: Mon May 1 21:16:55 from grumble
+Copyright (c) 1980, 1983, 1986, 1988, 1990, 1991, 1993, 1994
+ The Regents of the University of California. All rights reserved.
+FreeBSD BUILT-19950429 (GR386) #0: Sat Apr 29 17:50:09 SAT 1995</screen>
+ </sect2>
+ </sect1>
+
+ <sect1 id="kerberos5">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tillman</firstname>
+ <surname>Hodgson</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Mark</firstname>
+ <surname>Murray</surname>
+ <contrib>Based on a contribution by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title><application>Kerberos5</application></title>
+
+ <para>Every &os; release beyond &os;-5.1 includes support
+ only for <application>Kerberos5</application>. Hence
+ <application>Kerberos5</application> is the only version
+ included, and its configuration is similar in many aspects
+ to that of <application>KerberosIV</application>. The following
+ information only applies to
+ <application>Kerberos5</application> in post &os;-5.0
+ releases. Users who wish to use the
+ <application>KerberosIV</application> package may install the
+ <filename role="package">security/krb4</filename> port.</para>
+
+ <para><application>Kerberos</application> is a network add-on
+ system/protocol that allows users to authenticate themselves
+ through the services of a secure server. Services such as remote
+ login, remote copy, secure inter-system file copying and other
+ high-risk tasks are made considerably safer and more
+ controllable.</para>
+
+ <para><application>Kerberos</application> can be described as an
+ identity-verifying proxy system. It can also be described as a
+ trusted third-party authentication system.
+ <application>Kerberos</application> provides only one
+ function &mdash; the secure authentication of users on the network.
+ It does not provide authorization functions (what users are
+ allowed to do) or auditing functions (what those users did).
+ After a client and server have used
+ <application>Kerberos</application> to prove their identity, they
+ can also encrypt all of their communications to assure privacy
+ and data integrity as they go about their business.</para>
+
+ <para>Therefore it is highly recommended that
+ <application>Kerberos</application> be used with other security
+ methods which provide authorization and audit services.</para>
+
+ <para>The following instructions can be used as a guide on how to set
+ up <application>Kerberos</application> as distributed for &os;.
+ However, you should refer to the relevant manual pages for a complete
+ description.</para>
+
+ <para>For purposes of demonstrating a <application>Kerberos</application>
+ installation, the various name spaces will be handled as follows:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The <acronym>DNS</acronym> domain (<quote>zone</quote>)
+ will be example.org.</para>
+ </listitem>
+
+ <listitem>
+ <para>The <application>Kerberos</application> realm will be
+ EXAMPLE.ORG.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Please use real domain names when setting up
+ <application>Kerberos</application> even if you intend to run
+ it internally. This avoids <acronym>DNS</acronym> problems
+ and assures inter-operation with other
+ <application>Kerberos</application> realms.</para>
+ </note>
+
+ <sect2>
+ <title>History</title>
+ <indexterm>
+ <primary>Kerberos5</primary>
+ <secondary>history</secondary>
+ </indexterm>
+
+ <para><application>Kerberos</application> was created by
+ <acronym>MIT</acronym> as a solution to network security problems.
+ The <application>Kerberos</application> protocol uses strong
+ cryptography so that a client can prove its identity to a server
+ (and vice versa) across an insecure network connection.</para>
+
+ <para><application>Kerberos</application> is both the name of a
+ network authentication protocol and an adjective to describe
+ programs that implement the program
+ (<application>Kerberos</application> telnet, for example). The
+ current version of the protocol is version 5, described in
+ <acronym>RFC</acronym>&nbsp;1510.</para>
+
+ <para>Several free implementations of this protocol are available,
+ covering a wide range of operating systems. The Massachusetts
+ Institute of Technology (<acronym>MIT</acronym>), where
+ <application>Kerberos</application> was originally developed,
+ continues to develop their <application>Kerberos</application>
+ package. It is commonly used in the <acronym>US</acronym>
+ as a cryptography product, as such it
+ has historically been affected by <acronym>US</acronym> export
+ regulations. The <acronym>MIT</acronym>
+ <application>Kerberos</application> is available as a port
+ (<filename role="package">security/krb5</filename>). Heimdal
+ <application>Kerberos</application> is another version 5
+ implementation, and was explicitly developed outside of the
+ <acronym>US</acronym> to avoid export
+ regulations (and is thus often included in non-commercial &unix;
+ variants). The Heimdal <application>Kerberos</application>
+ distribution is available as a port
+ (<filename role="package">security/heimdal</filename>), and a
+ minimal installation of it is included in the base &os;
+ install.</para>
+
+ <para>In order to reach the widest audience, these instructions assume
+ the use of the Heimdal distribution included in &os;.</para>
+
+ </sect2>
+
+ <sect2>
+ <title>Setting up a Heimdal <acronym>KDC</acronym></title>
+ <indexterm>
+ <primary>Kerberos5</primary>
+ <secondary>Key Distribution Center</secondary>
+ </indexterm>
+
+ <para>The Key Distribution Center (<acronym>KDC</acronym>) is the
+ centralized authentication service that
+ <application>Kerberos</application> provides &mdash; it is the
+ computer that issues <application>Kerberos</application> tickets.
+ The <acronym>KDC</acronym> is considered <quote>trusted</quote> by
+ all other computers in the <application>Kerberos</application>
+ realm, and thus has heightened security concerns.</para>
+
+ <para>Note that while running the <application>Kerberos</application>
+ server requires very few computing resources, a dedicated machine
+ acting only as a <acronym>KDC</acronym> is recommended for security
+ reasons.</para>
+
+ <para>To begin setting up a <acronym>KDC</acronym>, ensure that your
+ <filename>/etc/rc.conf</filename> file contains the correct
+ settings to act as a <acronym>KDC</acronym> (you may need to adjust
+ paths to reflect your own system):</para>
+
+ <programlisting>kerberos5_server_enable="YES"
+kadmind5_server_enable="YES"</programlisting>
+
+ <para>Next we will set up your <application>Kerberos</application>
+ config file, <filename>/etc/krb5.conf</filename>:</para>
+
+ <programlisting>[libdefaults]
+ default_realm = EXAMPLE.ORG
+[realms]
+ EXAMPLE.ORG = {
+ kdc = kerberos.example.org
+ admin_server = kerberos.example.org
+ }
+[domain_realm]
+ .example.org = EXAMPLE.ORG</programlisting>
+
+ <para>Note that this <filename>/etc/krb5.conf</filename> file implies
+ that your <acronym>KDC</acronym> will have the fully-qualified
+ hostname of <hostid role="fqdn">kerberos.example.org</hostid>.
+ You will need to add a CNAME (alias) entry to your zone file to
+ accomplish this if your <acronym>KDC</acronym> has a different
+ hostname.</para>
+
+ <note>
+ <para>For large networks with a properly configured
+ <acronym>BIND</acronym> <acronym>DNS</acronym> server, the
+ above example could be trimmed to:</para>
+
+ <programlisting>[libdefaults]
+ default_realm = EXAMPLE.ORG</programlisting>
+
+ <para>With the following lines being appended to the
+ <hostid role="fqdn">example.org</hostid> zonefile:</para>
+
+ <programlisting>_kerberos._udp IN SRV 01 00 88 kerberos.example.org.
+_kerberos._tcp IN SRV 01 00 88 kerberos.example.org.
+_kpasswd._udp IN SRV 01 00 464 kerberos.example.org.
+_kerberos-adm._tcp IN SRV 01 00 749 kerberos.example.org.
+_kerberos IN TXT EXAMPLE.ORG</programlisting></note>
+
+ <note>
+ <para>For clients to be able to find the
+ <application>Kerberos</application> services, you
+ <emphasis>must</emphasis> have either a fully configured
+ <filename>/etc/krb5.conf</filename> or a minimally configured
+ <filename>/etc/krb5.conf</filename> <emphasis>and</emphasis> a
+ properly configured DNS server.</para>
+ </note>
+
+ <para>Next we will create the <application>Kerberos</application>
+ database. This database contains the keys of all principals encrypted
+ with a master password. You are not
+ required to remember this password, it will be stored in a file
+ (<filename>/var/heimdal/m-key</filename>). To create the master
+ key, run <command>kstash</command> and enter a password.</para>
+
+ <para>Once the master key has been created, you can initialize the
+ database using the <command>kadmin</command> program with the
+ <literal>-l</literal> option (standing for <quote>local</quote>).
+ This option instructs <command>kadmin</command> to modify the
+ database files directly rather than going through the
+ <command>kadmind</command> network service. This handles the
+ chicken-and-egg problem of trying to connect to the database
+ before it is created. Once you have the <command>kadmin</command>
+ prompt, use the <command>init</command> command to create your
+ realms initial database.</para>
+
+ <para>Lastly, while still in <command>kadmin</command>, create your
+ first principal using the <command>add</command> command. Stick
+ to the defaults options for the principal for now, you can always
+ change them later with the <command>modify</command> command.
+ Note that you can use the <literal>?</literal> command at any
+ prompt to see the available options.</para>
+
+ <para>A sample database creation session is shown below:</para>
+
+ <screen>&prompt.root; <userinput>kstash</userinput>
+Master key: <userinput>xxxxxxxx</userinput>
+Verifying password - Master key: <userinput>xxxxxxxx</userinput>
+
+&prompt.root; <userinput>kadmin -l</userinput>
+kadmin> <userinput>init EXAMPLE.ORG</userinput>
+Realm max ticket life [unlimited]:
+kadmin> <userinput>add tillman</userinput>
+Max ticket life [unlimited]:
+Max renewable life [unlimited]:
+Attributes []:
+Password: <userinput>xxxxxxxx</userinput>
+Verifying password - Password: <userinput>xxxxxxxx</userinput></screen>
+
+ <para>Now it is time to start up the <acronym>KDC</acronym> services.
+ Run <command>/etc/rc.d/kerberos start</command> and
+ <command>/etc/rc.d/kadmind start</command> to bring up the
+ services. Note that you will not have any kerberized daemons running
+ at this point but you should be able to confirm the that the
+ <acronym>KDC</acronym> is functioning by obtaining and listing a
+ ticket for the principal (user) that you just created from the
+ command-line of the <acronym>KDC</acronym> itself:</para>
+
+ <screen>&prompt.user; <userinput>kinit <replaceable>tillman</replaceable></userinput>
+tillman@EXAMPLE.ORG's Password:
+
+&prompt.user; <userinput>klist</userinput>
+Credentials cache: FILE:<filename>/tmp/krb5cc_500</filename>
+ Principal: tillman@EXAMPLE.ORG
+
+ Issued Expires Principal
+Aug 27 15:37:58 Aug 28 01:37:58 krbtgt/EXAMPLE.ORG@EXAMPLE.ORG</screen>
+
+ <para>The ticket can then be revoked when you have
+ finished:</para>
+
+ <screen>&prompt.user; <userinput>k5destroy</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title><application>Kerberos</application> enabling a server with
+ Heimdal services</title>
+
+ <indexterm>
+ <primary>Kerberos5</primary>
+ <secondary>enabling services</secondary>
+ </indexterm>
+
+ <para>First, we need a copy of the <application>Kerberos</application>
+ configuration file, <filename>/etc/krb5.conf</filename>. To do
+ so, simply copy it over to the client computer from the
+ <acronym>KDC</acronym> in a secure fashion (using network utilities,
+ such as &man.scp.1;, or physically via a
+ floppy disk).</para>
+
+ <para>Next you need a <filename>/etc/krb5.keytab</filename> file.
+ This is the major difference between a server providing
+ <application>Kerberos</application> enabled daemons and a
+ workstation &mdash; the server must have a
+ <filename>keytab</filename> file. This file
+ contains the server's host key, which allows it and the
+ <acronym>KDC</acronym> to verify each others identity. It
+ must be transmitted to the server in a secure fashion, as the
+ security of the server can be broken if the key is made public.
+ This explicitly means that transferring it via a clear text
+ channel, such as <acronym>FTP</acronym>, is a very bad idea.</para>
+
+ <para>Typically, you transfer to the <filename>keytab</filename>
+ to the server using the <command>kadmin</command> program.
+ This is handy because you also need to create the host principal
+ (the <acronym>KDC</acronym> end of the
+ <filename>krb5.keytab</filename>) using
+ <command>kadmin</command>.</para>
+
+ <para>Note that you must have already obtained a ticket and that this
+ ticket must be allowed to use the <command>kadmin</command>
+ interface in the <filename>kadmind.acl</filename>. See the section
+ titled <quote>Remote administration</quote> in the Heimdal info
+ pages (<command>info heimdal</command>) for details on designing
+ access control lists. If you do not want to enable remote
+ <command>kadmin</command> access, you can simply securely connect
+ to the <acronym>KDC</acronym> (via local console,
+ &man.ssh.1; or <application>Kerberos</application>
+ &man.telnet.1;) and perform administration locally
+ using <command>kadmin -l</command>.</para>
+
+ <para>After installing the <filename>/etc/krb5.conf</filename> file,
+ you can use <command>kadmin</command> from the
+ <application>Kerberos</application> server. The
+ <command>add --random-key</command> command will let you add the
+ server's host principal, and the <command>ext</command> command
+ will allow you to extract the server's host principal to its own
+ keytab. For example:</para>
+
+ <screen>&prompt.root; <userinput>kadmin</userinput>
+kadmin><userinput> add --random-key host/myserver.example.org</userinput>
+Max ticket life [unlimited]:
+Max renewable life [unlimited]:
+Attributes []:
+kadmin><userinput> ext host/myserver.example.org</userinput>
+kadmin><userinput> exit</userinput></screen>
+
+ <para>Note that the <command>ext</command> command (short for
+ <quote>extract</quote>) stores the extracted key in
+ <filename>/etc/krb5.keytab</filename> by default.</para>
+
+ <para>If you do not have <command>kadmind</command> running on the
+ <acronym>KDC</acronym> (possibly for security reasons) and thus
+ do not have access to <command>kadmin</command> remotely, you
+ can add the host principal
+ (<username>host/myserver.EXAMPLE.ORG</username>) directly on the
+ <acronym>KDC</acronym> and then extract it to a temporary file
+ (to avoid over-writing the <filename>/etc/krb5.keytab</filename>
+ on the <acronym>KDC</acronym>) using something like this:</para>
+
+ <screen>&prompt.root; <userinput>kadmin</userinput>
+kadmin><userinput> ext --keytab=/tmp/example.keytab host/myserver.example.org</userinput>
+kadmin><userinput> exit</userinput></screen>
+
+ <para>You can then securely copy the keytab to the server
+ computer (using <command>scp</command> or a floppy, for
+ example). Be sure to specify a non-default keytab name
+ to avoid over-writing the keytab on the
+ <acronym>KDC</acronym>.</para>
+
+ <para>At this point your server can communicate with the
+ <acronym>KDC</acronym> (due to its <filename>krb5.conf</filename>
+ file) and it can prove its own identity (due to the
+ <filename>krb5.keytab</filename> file). It is now ready for
+ you to enable some <application>Kerberos</application> services.
+ For this example we will enable the <command>telnet</command>
+ service by putting a line like this into your
+ <filename>/etc/inetd.conf</filename> and then restarting the
+ &man.inetd.8; service with
+ <command>/etc/rc.d/inetd restart</command>:</para>
+
+ <programlisting>telnet stream tcp nowait root /usr/libexec/telnetd telnetd -a user</programlisting>
+
+ <para>The critical bit is that the <command>-a</command>
+ (for authentication) type is set to user. Consult the
+ &man.telnetd.8; manual page for more details.</para>
+
+ </sect2>
+
+ <sect2>
+ <title><application>Kerberos</application> enabling a client with Heimdal</title>
+
+ <indexterm>
+ <primary>Kerberos5</primary>
+ <secondary>configure clients</secondary>
+ </indexterm>
+
+ <para>Setting up a client computer is almost trivially easy. As
+ far as <application>Kerberos</application> configuration goes,
+ you only need the <application>Kerberos</application>
+ configuration file, located at <filename>/etc/krb5.conf</filename>.
+ Simply securely copy it over to the client computer from the
+ <acronym>KDC</acronym>.</para>
+
+ <para>Test your client computer by attempting to use
+ <command>kinit</command>, <command>klist</command>, and
+ <command>kdestroy</command> from the client to obtain, show, and
+ then delete a ticket for the principal you created above. You
+ should also be able to use <application>Kerberos</application>
+ applications to connect to <application>Kerberos</application>
+ enabled servers, though if that does not work and obtaining a
+ ticket does the problem is likely with the server and not with
+ the client or the <acronym>KDC</acronym>.</para>
+
+ <para>When testing an application like <command>telnet</command>,
+ try using a packet sniffer (such as &man.tcpdump.1;)
+ to confirm that your password is not sent in the clear. Try
+ using <command>telnet</command> with the <literal>-x</literal>
+ option, which encrypts the entire data stream (similar to
+ <command>ssh</command>).</para>
+
+ <para>Various non-core <application>Kerberos</application> client
+ applications are also installed by default. This is where the
+ <quote>minimal</quote> nature of the base Heimdal installation is
+ felt: <command>telnet</command> is the only
+ <application>Kerberos</application> enabled service.</para>
+
+ <para>The Heimdal port adds some of the missing client applications:
+ <application>Kerberos</application> enabled versions of
+ <command>ftp</command>, <command>rsh</command>,
+ <command>rcp</command>, <command>rlogin</command>, and a few
+ other less common programs. The <acronym>MIT</acronym> port also
+ contains a full suite of <application>Kerberos</application>
+ client applications.</para>
+
+ </sect2>
+
+ <sect2>
+ <title>User configuration files: <filename>.k5login</filename> and <filename>.k5users</filename></title>
+
+ <indexterm>
+ <primary><filename>.k5login</filename></primary>
+ </indexterm>
+
+ <indexterm>
+ <primary><filename>.k5users</filename></primary>
+ </indexterm>
+
+ <para>Users within a realm typically have their
+ <application>Kerberos</application> principal (such as
+ <username>tillman@EXAMPLE.ORG</username>) mapped to a local
+ user account (such as a local account named
+ <username>tillman</username>). Client applications such as
+ <command>telnet</command> usually do not require a user name
+ or a principal.</para>
+
+ <para>Occasionally, however, you want to grant access to a local
+ user account to someone who does not have a matching
+ <application>Kerberos</application> principal. For example,
+ <username>tillman@EXAMPLE.ORG</username> may need access to the
+ local user account <username>webdevelopers</username>. Other
+ principals may also need access to that local account.</para>
+
+ <para>The <filename>.k5login</filename> and
+ <filename>.k5users</filename> files, placed in a users home
+ directory, can be used similar to a powerful combination of
+ <filename>.hosts</filename> and <filename>.rhosts</filename>,
+ solving this problem. For example, if a
+ <filename>.k5login</filename> with the following
+ contents:</para>
+
+ <screen>tillman@example.org
+jdoe@example.org</screen>
+
+ <para>Were to be placed into the home directory of the local user
+ <username>webdevelopers</username> then both principals listed
+ would have access to that account without requiring a shared
+ password.</para>
+
+ <para>Reading the manual pages for these commands is recommended.
+ Note that the <command>ksu</command> manual page covers
+ <filename>.k5users</filename>.</para>
+
+ </sect2>
+
+ <sect2>
+ <title><application>Kerberos</application> Tips, Tricks, and Troubleshooting</title>
+
+ <indexterm>
+ <primary>Kerberos5</primary>
+ <secondary>troubleshooting</secondary>
+ </indexterm>
+
+ <itemizedlist>
+ <listitem>
+ <para>When using either the Heimdal or <acronym>MIT</acronym>
+ <application>Kerberos</application> ports ensure that your
+ <envar>PATH</envar> environment variable lists the
+ <application>Kerberos</application> versions of the client
+ applications before the system versions.</para>
+ </listitem>
+
+ <listitem>
+ <para>Do all the computers in your realm have synchronized
+ time settings? If not, authentication may fail.
+ <xref linkend="network-ntp"> describes how to synchronize
+ clocks using <acronym>NTP</acronym>.</para>
+ </listitem>
+
+ <listitem>
+ <para><acronym>MIT</acronym> and Heimdal inter-operate nicely.
+ Except for <command>kadmin</command>, the protocol for
+ which is not standardized.</para>
+ </listitem>
+
+ <listitem>
+ <para>If you change your hostname, you also need to change your
+ <username>host/</username> principal and update your keytab.
+ This also applies to special keytab entries like the
+ <username>www/</username> principal used for Apache's
+ <filename role="package">www/mod_auth_kerb</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>All hosts in your realm must be resolvable (both forwards
+ and reverse) in <acronym>DNS</acronym> (or
+ <filename>/etc/hosts</filename> as a minimum). CNAMEs
+ will work, but the A and PTR records must be correct and in
+ place. The error message is not very intuitive:
+ <errorname>Kerberos5 refuses authentication because Read req
+ failed: Key table entry not found</errorname>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Some operating systems that may being acting as clients
+ to your <acronym>KDC</acronym> do not set the permissions
+ for <command>ksu</command> to be setuid
+ <username>root</username>. This means that
+ <command>ksu</command> does not work, which is a good
+ security idea but annoying. This is not a
+ <acronym>KDC</acronym> error.</para>
+ </listitem>
+
+ <listitem>
+ <para>With <acronym>MIT</acronym>
+ <application>Kerberos</application>, if you want to allow a
+ principal to have a ticket life longer than the default ten
+ hours, you must use <command>modify_principal</command> in
+ <command>kadmin</command> to change the maxlife of both the
+ principal in question and the <username>krbtgt</username>
+ principal. Then the principal can use the
+ <literal>-l</literal> option with <command>kinit</command>
+ to request a ticket with a longer lifetime.</para>
+ </listitem>
+
+ <listitem>
+ <note><para>If you run a packet sniffer on your
+ <acronym>KDC</acronym> to add in troubleshooting and then
+ run <command>kinit</command> from a workstation, you will
+ notice that your <acronym>TGT</acronym> is sent
+ immediately upon running <command>kinit</command> &mdash;
+ even before you type your password! The explanation is
+ that the <application>Kerberos</application> server freely
+ transmits a <acronym>TGT</acronym> (Ticket Granting
+ Ticket) to any unauthorized request; however, every
+ <acronym>TGT</acronym> is encrypted in a key derived from
+ the user's password. Therefore, when a user types their
+ password it is not being sent to the <acronym>KDC</acronym>,
+ it is being used to decrypt the <acronym>TGT</acronym> that
+ <command>kinit</command> already obtained. If the decryption
+ process results in a valid ticket with a valid time stamp,
+ the user has valid <application>Kerberos</application>
+ credentials. These credentials include a session key for
+ establishing secure communications with the
+ <application>Kerberos</application> server in the future, as
+ well as the actual ticket-granting ticket, which is actually
+ encrypted with the <application>Kerberos</application>
+ server's own key. This second layer of encryption is
+ unknown to the user, but it is what allows the
+ <application>Kerberos</application> server to verify
+ the authenticity of each <acronym>TGT</acronym>.</para></note>
+ </listitem>
+
+ <listitem>
+ <para>If you want to use long ticket lifetimes (a week, for
+ example) and you are using <application>OpenSSH</application>
+ to connect to the machine where your ticket is stored, make
+ sure that <application>Kerberos</application>
+ <option>TicketCleanup</option> is set to <literal>no</literal>
+ in your <filename>sshd_config</filename> or else your tickets
+ will be deleted when you log out.</para>
+ </listitem>
+
+ <listitem>
+ <para>Remember that host principals can have a longer ticket
+ lifetime as well. If your user principal has a lifetime of a
+ week but the host you are connecting to has a lifetime of nine
+ hours, you will have an expired host principal in your cache
+ and the ticket cache will not work as expected.</para>
+ </listitem>
+
+ <listitem>
+ <para>When setting up a <filename>krb5.dict</filename> file to
+ prevent specific bad passwords from being used (the manual page
+ for <command>kadmind</command> covers this briefly), remember
+ that it only applies to principals that have a password policy
+ assigned to them. The <filename>krb5.dict</filename> files
+ format is simple: one string per line. Creating a symbolic
+ link to <filename>/usr/share/dict/words</filename> might be
+ useful.</para>
+ </listitem>
+ </itemizedlist>
+
+ </sect2>
+
+ <sect2>
+ <title>Differences with the <acronym>MIT</acronym> port</title>
+
+ <para>The major difference between the <acronym>MIT</acronym>
+ and Heimdal installs relates to the <command>kadmin</command>
+ program which has a different (but equivalent) set of commands
+ and uses a different protocol. This has a large implications
+ if your <acronym>KDC</acronym> is <acronym>MIT</acronym> as you
+ will not be able to use the Heimdal <command>kadmin</command>
+ program to administer your <acronym>KDC</acronym> remotely
+ (or vice versa, for that matter).</para>
+
+ <para>The client applications may also take slightly different
+ command line options to accomplish the same tasks. Following
+ the instructions on the <acronym>MIT</acronym>
+ <application>Kerberos</application> web site
+ (<ulink url="http://web.mit.edu/Kerberos/www/"></ulink>)
+ is recommended. Be careful of path issues: the
+ <acronym>MIT</acronym> port installs into
+ <filename>/usr/local/</filename> by default, and the
+ <quote>normal</quote> system applications may be run instead
+ of <acronym>MIT</acronym> if your <envar>PATH</envar>
+ environment variable lists the system directories first.</para>
+
+ <note><para>With the <acronym>MIT</acronym>
+ <filename role="package">security/krb5</filename> port
+ that is provided by &os;, be sure to read the
+ <filename>/usr/local/share/doc/krb5/README.FreeBSD</filename>
+ file installed by the port if you want to understand why logins
+ via <command>telnetd</command> and <command>klogind</command>
+ behave somewhat oddly. Most importantly, correcting the
+ <quote>incorrect permissions on cache file</quote> behavior
+ requires that the <command>login.krb5</command> binary be used
+ for authentication so that it can properly change ownership for
+ the forwarded credentials.</para></note>
+
+ <para>The <filename>rc.conf</filename> must also be modified
+ to contain the following configuration:</para>
+
+ <programlisting>kerberos5_server="/usr/local/sbin/krb5kdc"
+kadmind5_server="/usr/local/sbin/kadmind"
+kerberos5_server_enable="YES"
+kadmind5_server_enable="YES"</programlisting>
+
+ <para>This is done because the applications for
+ <acronym>MIT</acronym> kerberos installs binaries in the
+ <filename role="directory">/usr/local</filename>
+ hierarchy.</para>
+ </sect2>
+
+ <sect2>
+ <title>Mitigating limitations found in <application>Kerberos</application></title>
+
+ <indexterm>
+ <primary>Kerberos5</primary>
+ <secondary>limitations and shortcomings</secondary>
+ </indexterm>
+
+ <sect3>
+ <title><application>Kerberos</application> is an all-or-nothing approach</title>
+
+ <para>Every service enabled on the network must be modified to
+ work with <application>Kerberos</application> (or be otherwise
+ secured against network attacks) or else the users credentials
+ could be stolen and re-used. An example of this would be
+ <application>Kerberos</application> enabling all remote shells
+ (via <command>rsh</command> and <command>telnet</command>, for
+ example) but not converting the <acronym>POP3</acronym> mail
+ server which sends passwords in plain text.</para>
+
+ </sect3>
+
+ <sect3>
+ <title><application>Kerberos</application> is intended for single-user workstations</title>
+
+ <para>In a multi-user environment,
+ <application>Kerberos</application> is less secure.
+ This is because it stores the tickets in the
+ <filename>/tmp</filename> directory, which is readable by all
+ users. If a user is sharing a computer with several other
+ people simultaneously (i.e. multi-user), it is possible that
+ the user's tickets can be stolen (copied) by another
+ user.</para>
+
+ <para>This can be overcome with the <literal>-c</literal>
+ filename command-line option or (preferably) the
+ <envar>KRB5CCNAME</envar> environment variable, but this
+ is rarely done. In principal, storing the ticket in the users
+ home directory and using simple file permissions can mitigate
+ this problem.</para>
+
+ </sect3>
+
+ <sect3>
+ <title>The KDC is a single point of failure</title>
+
+ <para>By design, the <acronym>KDC</acronym> must be as secure as
+ the master password database is contained on it. The
+ <acronym>KDC</acronym> should have absolutely no other
+ services running on it and should be physically secured. The
+ danger is high because <application>Kerberos</application>
+ stores all passwords encrypted with the same key (the
+ <quote>master</quote> key), which in turn is stored as a file
+ on the <acronym>KDC</acronym>.</para>
+
+ <para>As a side note, a compromised master key is not quite as
+ bad as one might normally fear. The master key is only used
+ to encrypt the <application>Kerberos</application> database
+ and as a seed for the random number generator. As long as
+ access to your <acronym>KDC</acronym> is secure, an attacker
+ cannot do much with the master key.</para>
+
+ <para>Additionally, if the <acronym>KDC</acronym> is unavailable
+ (perhaps due to a denial of service attack or network problems)
+ the network services are unusable as authentication can not be
+ performed, a recipe for a denial-of-service attack. This can
+ alleviated with multiple <acronym>KDC</acronym>s (a single
+ master and one or more slaves) and with careful implementation
+ of secondary or fall-back authentication
+ (<acronym>PAM</acronym> is excellent for this).</para>
+
+ </sect3>
+
+ <sect3>
+ <title><application>Kerberos</application> Shortcomings</title>
+
+ <para><application>Kerberos</application> allows users, hosts
+ and services to authenticate between themselves. It does not
+ have a mechanism to authenticate the <acronym>KDC</acronym>
+ to the users, hosts or services. This means that a trojanned
+ <command>kinit</command> (for example) could record all user
+ names and passwords. Something like
+ <filename role="package">security/tripwire</filename> or
+ other file system integrity checking tools can alleviate
+ this.</para>
+
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Resources and further information</title>
+
+ <indexterm>
+ <primary>Kerberos5</primary>
+ <secondary>external resources</secondary>
+ </indexterm>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink
+ url="http://www.faqs.org/faqs/Kerberos-faq/general/preamble.html">
+ The <application>Kerberos</application> FAQ</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://web.mit.edu/Kerberos/www/dialogue.html">Designing
+ an Authentication System: a Dialog in Four Scenes</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.ietf.org/rfc/rfc1510.txt?number=1510">RFC 1510,
+ The <application>Kerberos</application> Network Authentication Service
+ (V5)</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://web.mit.edu/Kerberos/www/"><acronym>MIT</acronym>
+ <application>Kerberos</application> home page</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.pdc.kth.se/heimdal/">Heimdal
+ <application>Kerberos</application> home page</ulink></para>
+ </listitem>
+
+ </itemizedlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="openssl">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Written by: </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>OpenSSL</title>
+ <indexterm>
+ <primary>security</primary>
+ <secondary>OpenSSL</secondary>
+ </indexterm>
+
+ <para>One feature that many users overlook is the
+ <application>OpenSSL</application> toolkit included
+ in &os;. <application>OpenSSL</application> provides an
+ encryption transport layer on top of the normal communications
+ layer; thus allowing it to be intertwined with many network
+ applications and services.</para>
+
+ <para>Some uses of <application>OpenSSL</application> may include
+ encrypted authentication of mail clients, web based transactions
+ such as credit card payments and more. Many ports such as
+ <filename role="package">www/apache13-ssl</filename>, and
+ <filename role="package">mail/sylpheed-claws</filename>
+ will offer compilation support for building with
+ <application>OpenSSL</application>.</para>
+
+ <note>
+ <para>In most cases the Ports Collection will attempt to build
+ the <filename role="package">security/openssl</filename> port
+ unless the <makevar>WITH_OPENSSL_BASE</makevar> make variable
+ is explicitly set to <quote>yes</quote>.</para>
+ </note>
+
+ <para>The version of <application>OpenSSL</application> included
+ in &os; supports Secure Sockets Layer v2/v3 (SSLv2/SSLv3),
+ Transport Layer Security v1 (TLSv1) network security protocols
+ and can be used as a general cryptographic library.</para>
+
+ <note>
+ <para>While <application>OpenSSL</application> supports the
+ <acronym>IDEA</acronym> algorithm, it is disabled by default
+ due to United States patents. To use it, the license should
+ be reviewed and, if the restrictions are acceptable, the
+ <makevar>MAKE_IDEA</makevar> variable must be set in
+ <filename>make.conf</filename>.</para>
+ </note>
+
+ <para>One of the most common uses of
+ <application>OpenSSL</application> is to provide certificates for
+ use with software applications. These certificates ensure
+ that the credentials of the company or individual are valid
+ and not fraudulent. If the certificate in question has
+ not been verified by one of the several <quote>Certificate Authorities</quote>,
+ or <acronym>CA</acronym>s, a warning is usually produced. A
+ Certificate Authority is a company, such as <ulink url="http://www.verisign.com">VeriSign</ulink>, which will
+ sign certificates in order to validate credentials of individuals
+ or companies. This process has a cost associated with it and
+ is definitely not a requirement for using certificates; however,
+ it can put some of the more paranoid users at ease.</para>
+
+ <sect2>
+ <title>Generating Certificates</title>
+
+ <indexterm>
+ <primary>OpenSSL</primary>
+ <secondary>certificate generation</secondary>
+ </indexterm>
+
+ <para>To generate a certificate, the following command is
+ available:</para>
+
+ <screen>&prompt.root; <userinput>openssl req -new -nodes -out req.pem -keyout cert.pem</userinput>
+Generating a 1024 bit RSA private key
+................++++++
+.......................................++++++
+writing new private key to 'cert.pem'
+-----
+You are about to be asked to enter information that will be incorporated
+into your certificate request.
+What you are about to enter is what is called a Distinguished Name or a DN.
+There are quite a few fields but you can leave some blank
+For some fields there will be a default value,
+If you enter '.', the field will be left blank.
+-----
+Country Name (2 letter code) [AU]:<userinput><replaceable>US</replaceable></userinput>
+State or Province Name (full name) [Some-State]:<userinput><replaceable>PA</replaceable></userinput>
+Locality Name (eg, city) []:<userinput><replaceable>Pittsburgh</replaceable></userinput>
+Organization Name (eg, company) [Internet Widgits Pty Ltd]:<userinput><replaceable>My Company</replaceable></userinput>
+Organizational Unit Name (eg, section) []:<userinput><replaceable>Systems Administrator</replaceable></userinput>
+Common Name (eg, YOUR name) []:<userinput><replaceable>localhost.example.org</replaceable></userinput>
+Email Address []:<userinput><replaceable>trhodes@FreeBSD.org</replaceable></userinput>
+
+Please enter the following 'extra' attributes
+to be sent with your certificate request
+A challenge password []:<userinput><replaceable>SOME PASSWORD</replaceable></userinput>
+An optional company name []:<userinput><replaceable>Another Name</replaceable></userinput></screen>
+
+ <para>Notice the response directly after the
+ <quote>Common Name</quote> prompt shows a domain name.
+ This prompt requires a server name to be entered for
+ verification purposes; placing anything but a domain name
+ would yield a useless certificate. Other options, for
+ instance expire time, alternate encryption algorithms, etc.
+ are available. A complete list may be obtained by viewing
+ the &man.openssl.1; manual page.</para>
+
+ <para>Two files should now exist in
+ the directory in which the aforementioned command was issued.
+ The certificate request, <filename>req.pem</filename>, may be
+ sent to a certificate authority who will validate the credentials
+ that you entered, sign the request and return the certificate to
+ you. The second file created will be named <filename>cert.pem</filename>
+ and is the private key for the certificate and should be
+ protected at all costs; if this falls in the hands of others it
+ can be used to impersonate you (or your server).</para>
+
+ <para>In cases where a signature from a <acronym>CA</acronym> is
+ not required, a self signed certificate can be created. First,
+ generate the <acronym>RSA</acronym> key:</para>
+
+ <screen>&prompt.root; <userinput>openssl dsaparam -rand -genkey -out <filename>myRSA.key</filename> 1024</userinput></screen>
+
+ <para>Next, generate the <acronym>CA</acronym> key:</para>
+
+ <screen>&prompt.root; <userinput>openssl gendsa -des3 -out <filename>myca.key</filename> <filename>myRSA.key</filename></userinput></screen>
+
+ <para>Use this key to create the certificate:</para>
+
+ <screen>&prompt.root; <userinput>openssl req -new -x509 -days 365 -key <filename>myca.key</filename> -out <filename>new.crt</filename></userinput></screen>
+
+ <para>Two new files should appear in the directory: a certificate
+ authority signature file, <filename>myca.key</filename> and the
+ certificate itself, <filename>new.crt</filename>. These should
+ be placed in a directory, preferably under
+ <filename class="directory">/etc</filename>, which is readable
+ only by <username>root</username>. Permissions of 0700 should be fine for this and
+ they can be set with the <command>chmod</command>
+ utility.</para>
+ </sect2>
+
+ <sect2>
+ <title>Using Certificates, an Example</title>
+
+ <para>So what can these files do? A good use would be to
+ encrypt connections to the <application>Sendmail</application>
+ <acronym>MTA</acronym>. This would dissolve the use of clear
+ text authentication for users who send mail via the local
+ <acronym>MTA</acronym>.</para>
+
+ <note>
+ <para>This is not the best use in the world as some
+ <acronym>MUA</acronym>s will present the user with an
+ error if they have not installed the certificate locally.
+ Refer to the documentation included with the software for
+ more information on certificate installation.</para>
+ </note>
+
+ <para>The following lines should be placed inside the
+ local <filename>.mc</filename> file:</para>
+
+ <programlisting>dnl SSL Options
+define(`confCACERT_PATH',`/etc/certs')dnl
+define(`confCACERT',`/etc/certs/new.crt')dnl
+define(`confSERVER_CERT',`/etc/certs/new.crt')dnl
+define(`confSERVER_KEY',`/etc/certs/myca.key')dnl
+define(`confTLS_SRV_OPTIONS', `V')dnl</programlisting>
+
+ <para>Where <filename class="directory">/etc/certs/</filename>
+ is the directory to be used for storing the certificate
+ and key files locally. The last few requirements are a rebuild
+ of the local <filename>.cf</filename> file. This is easily
+ achieved by typing <command>make</command>
+ <parameter>install</parameter> within the
+ <filename class="directory">/etc/mail</filename>
+ directory. Follow that up with <command>make</command>
+ <parameter>restart</parameter> which should start the
+ <application>Sendmail</application> daemon.</para>
+
+ <para>If all went well there will be no error messages in the
+ <filename>/var/log/maillog</filename> file and
+ <application>Sendmail</application> will show up in the process
+ list.</para>
+
+ <para>For a simple test, simply connect to the mail server
+ using the &man.telnet.1; utility:</para>
+
+ <screen>&prompt.root; <userinput>telnet <replaceable>example.com</replaceable> 25</userinput>
+Trying 192.0.34.166...
+Connected to <hostid role="fqdn">example.com</hostid>.
+Escape character is '^]'.
+220 <hostid role="fqdn">example.com</hostid> ESMTP Sendmail 8.12.10/8.12.10; Tue, 31 Aug 2004 03:41:22 -0400 (EDT)
+<userinput>ehlo <replaceable>example.com</replaceable></userinput>
+250-example.com Hello example.com [192.0.34.166], pleased to meet you
+250-ENHANCEDSTATUSCODES
+250-PIPELINING
+250-8BITMIME
+250-SIZE
+250-DSN
+250-ETRN
+250-AUTH LOGIN PLAIN
+250-STARTTLS
+250-DELIVERBY
+250 HELP
+<userinput>quit</userinput>
+221 2.0.0 <hostid role="fqdn">example.com</hostid> closing connection
+Connection closed by foreign host.</screen>
+
+ <para>If the <quote>STARTTLS</quote> line appears in the output
+ then everything is working correctly.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ipsec">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Nik</firstname>
+ <surname>Clayton</surname>
+ <affiliation>
+ <address><email>nik@FreeBSD.org</email></address>
+ </affiliation>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <indexterm>
+ <primary>IPsec</primary>
+ </indexterm>
+
+ <title>VPN over IPsec</title>
+ <para>Creating a VPN between two networks, separated by the
+ Internet, using FreeBSD gateways.</para>
+
+ <sect2>
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Hiten M.</firstname>
+ <surname>Pandya</surname>
+ <affiliation>
+ <address><email>hmp@FreeBSD.org</email></address>
+ </affiliation>
+ <contrib>Written by </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Understanding IPsec</title>
+
+ <para>This section will guide you through the process of setting
+ up IPsec, and to use it in an environment which consists of
+ FreeBSD and <application>&microsoft.windows; 2000/XP</application>
+ machines, to make them communicate securely. In order to set up
+ IPsec, it is necessary that you are familiar with the concepts
+ of building a custom kernel (see
+ <xref linkend="kernelconfig">).</para>
+
+ <para><emphasis>IPsec</emphasis> is a protocol which sits on top
+ of the Internet Protocol (IP) layer. It allows two or more
+ hosts to communicate in a secure manner (hence the name). The
+ FreeBSD IPsec <quote>network stack</quote> is based on the
+ <ulink url="http://www.kame.net/">KAME</ulink> implementation,
+ which has support for both protocol families, IPv4 and
+ IPv6.</para>
+
+ <note>
+ <para>FreeBSD contains a <quote>hardware
+ accelerated</quote> IPsec stack, known as <quote>Fast
+ IPsec</quote>, that was obtained from OpenBSD. It employs
+ cryptographic hardware (whenever possible) via the
+ &man.crypto.4; subsystem to optimize the performance of IPsec.
+ This subsystem is new, and does not support all the features
+ that are available in the KAME version of IPsec. However, in
+ order to enable hardware-accelerated IPsec, the following
+ kernel option has to be added to your kernel configuration
+ file:</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>FAST_IPSEC</secondary>
+ </indexterm>
+
+ <screen>
+options FAST_IPSEC # new IPsec (cannot define w/ IPSEC)
+ </screen>
+
+ <para> Note, that it is not currently possible to use the
+ <quote>Fast IPsec</quote> subsystem in lieu of the KAME
+ implementation of IPsec. Consult the &man.fast.ipsec.4;
+ manual page for more information.</para>
+ </note>
+
+ <note>
+ <para>To let firewalls properly track state for &man.gif.4;
+ tunnels too, you have to enable the
+ <option>IPSEC_FILTERGIF</option> in your kernel
+ configuration:</para>
+
+ <screen>
+options IPSEC_FILTERGIF #filter ipsec packets from a tunnel
+ </screen>
+ </note>
+
+ <indexterm>
+ <primary>IPsec</primary>
+ <secondary>ESP</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>IPsec</primary>
+ <secondary>AH</secondary>
+ </indexterm>
+
+ <para>IPsec consists of two sub-protocols:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>Encapsulated Security Payload
+ (ESP)</emphasis>, protects the IP packet data from third
+ party interference, by encrypting the contents using
+ symmetric cryptography algorithms (like Blowfish,
+ 3DES).</para>
+ </listitem>
+ <listitem>
+ <para><emphasis>Authentication Header (AH)</emphasis>,
+ protects the IP packet header from third party interference
+ and spoofing, by computing a cryptographic checksum and
+ hashing the IP packet header fields with a secure hashing
+ function. This is then followed by an additional header
+ that contains the hash, to allow the information in the
+ packet to be authenticated.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><acronym>ESP</acronym> and <acronym>AH</acronym> can
+ either be used together or separately, depending on the
+ environment.</para>
+
+ <indexterm>
+ <primary>VPN</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>virtual private network</primary>
+ <see>VPN</see>
+ </indexterm>
+
+ <para>IPsec can either be used to directly encrypt the traffic
+ between two hosts (known as <emphasis>Transport
+ Mode</emphasis>); or to build <quote>virtual tunnels</quote>
+ between two subnets, which could be used for secure
+ communication between two corporate networks (known as
+ <emphasis>Tunnel Mode</emphasis>). The latter is more commonly
+ known as a <emphasis>Virtual Private Network (VPN)</emphasis>.
+ The &man.ipsec.4; manual page should be consulted for detailed
+ information on the IPsec subsystem in FreeBSD.</para>
+
+ <para>To add IPsec support to your kernel, add the following
+ options to your kernel configuration file:</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPSEC</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPSEC_ESP</secondary>
+ </indexterm>
+
+ <screen>
+options IPSEC #IP security
+options IPSEC_ESP #IP security (crypto; define w/ IPSEC)
+ </screen>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPSEC_DEBUG</secondary>
+ </indexterm>
+
+ <para>If IPsec debugging support is desired, the following
+ kernel option should also be added:</para>
+
+ <screen>
+options IPSEC_DEBUG #debug for IP security
+ </screen>
+ </sect2>
+
+ <sect2>
+ <title>The Problem</title>
+
+ <para>There is no standard for what constitutes a VPN. VPNs can
+ be implemented using a number of different technologies, each of
+ which have their own strengths and weaknesses. This section
+ presents a scenario, and the strategies used for implementing a
+ VPN for this scenario.</para>
+ </sect2>
+
+ <sect2>
+ <title>The Scenario: Two networks, connected to the Internet, to
+ behave as one</title>
+
+ <indexterm>
+ <primary>VPN</primary>
+ <secondary>creating</secondary>
+ </indexterm>
+
+ <para>The premise is as follows:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>You have at least two sites</para>
+ </listitem>
+ <listitem>
+ <para>Both sites are using IP internally</para>
+ </listitem>
+ <listitem>
+ <para>Both sites are connected to the Internet, through a
+ gateway that is running FreeBSD.</para>
+ </listitem>
+ <listitem>
+ <para>The gateway on each network has at least one public IP
+ address.</para>
+ </listitem>
+ <listitem>
+ <para>The internal addresses of the two networks can be
+ public or private IP addresses, it does not matter. You can
+ be running NAT on the gateway machine if necessary.</para>
+ </listitem>
+ <listitem>
+ <para>The internal IP addresses of the two networks
+ <emphasis>do not collide</emphasis>. While I expect it is
+ theoretically possible to use a combination of VPN
+ technology and NAT to get this to work, I expect it to be a
+ configuration nightmare.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>If you find that you are trying to connect two networks,
+ both of which, internally, use the same private IP address range
+ (e.g. both of them use <hostid
+ role="ipaddr">192.168.1.x</hostid>), then one of the networks will
+ have to be renumbered.</para>
+
+ <para>The network topology might look something like this:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="security/ipsec-network" align="center">
+ </imageobject>
+
+ <textobject>
+<literallayout class="monospaced">Network #1 [ Internal Hosts ] Private Net, 192.168.1.2-254
+ [ Win9x/NT/2K ]
+ [ UNIX ]
+ |
+ |
+ .---[fxp1]---. Private IP, 192.168.1.1
+ | FreeBSD |
+ `---[fxp0]---' Public IP, A.B.C.D
+ |
+ |
+ -=-=- Internet -=-=-
+ |
+ |
+ .---[fxp0]---. Public IP, W.X.Y.Z
+ | FreeBSD |
+ `---[fxp1]---' Private IP, 192.168.2.1
+ |
+ |
+Network #2 [ Internal Hosts ]
+ [ Win9x/NT/2K ] Private Net, 192.168.2.2-254
+ [ UNIX ]</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>Notice the two public IP addresses. I will use the letters to
+ refer to them in the rest of this article. Anywhere you see those
+ letters in this article, replace them with your own public IP
+ addresses. Note also that internally, the two gateway
+ machines have .1 IP addresses, and that the two networks have
+ different private IP addresses (<hostid
+ role="ipaddr">192.168.1.x</hostid> and <hostid
+ role="ipaddr">192.168.2.x</hostid> respectively). All the
+ machines on the private networks have been configured to use the
+ <hostid role="ipaddr">.1</hostid> machine as their default
+ gateway.</para>
+
+ <para>The intention is that, from a network point of view, each
+ network should view the machines on the other network as though
+ they were directly attached the same router -- albeit a slightly
+ slow router with an occasional tendency to drop packets.</para>
+
+ <para>This means that (for example), machine <hostid
+ role="ipaddr">192.168.1.20</hostid> should be able to run</para>
+
+ <programlisting>ping 192.168.2.34</programlisting>
+
+ <para>and have it work, transparently. &windows; machines should
+ be able to see the machines on the other network, browse file
+ shares, and so on, in exactly the same way that they can browse
+ machines on the local network.</para>
+
+ <para>And the whole thing has to be secure. This means that
+ traffic between the two networks has to be encrypted.</para>
+
+ <para>Creating a VPN between these two networks is a multi-step
+ process. The stages are as follows:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Create a <quote>virtual</quote> network link between the two
+ networks, across the Internet. Test it, using tools like
+ &man.ping.8;, to make sure it works.</para>
+ </listitem>
+
+ <listitem>
+ <para>Apply security policies to ensure that traffic between
+ the two networks is transparently encrypted and decrypted as
+ necessary. Test this, using tools like &man.tcpdump.1;, to
+ ensure that traffic is encrypted.</para>
+ </listitem>
+
+ <listitem>
+ <para>Configure additional software on the FreeBSD gateways,
+ to allow &windows; machines to see one another across the
+ VPN.</para>
+ </listitem>
+ </orderedlist>
+
+ <sect3>
+ <title>Step 1: Creating and testing a <quote>virtual</quote>
+ network link</title>
+
+ <para>Suppose that you were logged in to the gateway machine on
+ network #1 (with public IP address <hostid
+ role="ipaddr">A.B.C.D</hostid>, private IP address <hostid
+ role="ipaddr">192.168.1.1</hostid>), and you ran <command>ping
+ 192.168.2.1</command>, which is the private address of the machine
+ with IP address <hostid role="ipaddr">W.X.Y.Z</hostid>. What
+ needs to happen in order for this to work?</para>
+
+ <orderedlist>
+ <listitem>
+ <para>The gateway machine needs to know how to reach <hostid
+ role="ipaddr">192.168.2.1</hostid>. In other words, it needs
+ to have a route to <hostid
+ role="ipaddr">192.168.2.1</hostid>.</para>
+ </listitem>
+ <listitem>
+ <para>Private IP addresses, such as those in the <hostid
+ role="ipaddr">192.168.x</hostid> range are not supposed to
+ appear on the Internet at large. Instead, each packet you
+ send to <hostid role="ipaddr">192.168.2.1</hostid> will need
+ to be wrapped up inside another packet. This packet will need
+ to appear to be from <hostid role="ipaddr">A.B.C.D</hostid>,
+ and it will have to be sent to <hostid
+ role="ipaddr">W.X.Y.Z</hostid>. This process is called
+ <firstterm>encapsulation</firstterm>.</para>
+ </listitem>
+ <listitem>
+ <para>Once this packet arrives at <hostid
+ role="ipaddr">W.X.Y.Z</hostid> it will need to
+ <quote>unencapsulated</quote>, and delivered to <hostid
+ role="ipaddr">192.168.2.1</hostid>.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>You can think of this as requiring a <quote>tunnel</quote>
+ between the two networks. The two <quote>tunnel mouths</quote> are the IP
+ addresses <hostid role="ipaddr">A.B.C.D</hostid> and <hostid
+ role="ipaddr">W.X.Y.Z</hostid>, and the tunnel must be told the
+ addresses of the private IP addresses that will be allowed to pass
+ through it. The tunnel is used to transfer traffic with private
+ IP addresses across the public Internet.</para>
+
+ <para>This tunnel is created by using the generic interface, or
+ <devicename>gif</devicename> devices on FreeBSD. As you can
+ imagine, the <devicename>gif</devicename> interface on each
+ gateway host must be configured with four IP addresses; two for
+ the public IP addresses, and two for the private IP
+ addresses.</para>
+
+ <para>Support for the gif device must be compiled in to the
+ &os; kernel on both machines. You can do this by adding the
+ line:</para>
+
+ <programlisting>device gif</programlisting>
+
+ <para>to the kernel configuration files on both machines, and
+ then compile, install, and reboot as normal.</para>
+
+ <para>Configuring the tunnel is a two step process. First the
+ tunnel must be told what the outside (or public) IP addresses
+ are, using &man.ifconfig.8;. Then the private IP addresses must be
+ configured using &man.ifconfig.8;.</para>
+
+ <para>On the gateway machine on network #1 you would run the
+ following commands to configure the tunnel.</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> create</userinput>
+&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> tunnel <replaceable>A.B.C.D</replaceable> <replaceable>W.X.Y.Z</replaceable></userinput>
+&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> inet <replaceable>192.168.1.1</replaceable> <replaceable>192.168.2.1</replaceable> netmask <replaceable>0xffffffff</replaceable></userinput>
+ </screen>
+
+ <para>On the other gateway machine you run the same commands,
+ but with the order of the IP addresses reversed.</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> create</userinput>
+&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> tunnel <replaceable>W.X.Y.Z</replaceable> <replaceable>A.B.C.D</replaceable></userinput>
+&prompt.root; <userinput>ifconfig <replaceable>gif0</replaceable> inet <replaceable>192.168.2.1</replaceable> <replaceable>192.168.1.1</replaceable> netmask <replaceable>0xffffffff</replaceable></userinput>
+ </screen>
+
+ <para>You can then run:</para>
+
+ <programlisting>ifconfig gif0</programlisting>
+
+ <para>to see the configuration. For example, on the network #1
+ gateway, you would see this:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig gif0</userinput>
+gif0: flags=8051&lt;UP,POINTOPOINT,RUNNING,MULTICAST&gt; mtu 1280
+ tunnel inet A.B.C.D --&gt; W.X.Y.Z
+ inet 192.168.1.1 --&gt; 192.168.2.1 netmask 0xffffffff
+ </screen>
+
+ <para>As you can see, a tunnel has been created between the
+ physical addresses <hostid role="ipaddr">A.B.C.D</hostid> and
+ <hostid role="ipaddr">W.X.Y.Z</hostid>, and the traffic allowed
+ through the tunnel is that between <hostid
+ role="ipaddr">192.168.1.1</hostid> and <hostid
+ role="ipaddr">192.168.2.1</hostid>.</para>
+
+ <para>This will also have added an entry to the routing table
+ on both machines, which you can examine with the command <command>netstat -rn</command>.
+ This output is from the gateway host on network #1.</para>
+
+ <screen>&prompt.root; <userinput>netstat -rn</userinput>
+Routing tables
+
+Internet:
+Destination Gateway Flags Refs Use Netif Expire
+...
+192.168.2.1 192.168.1.1 UH 0 0 gif0
+...
+ </screen>
+
+ <para>As the <quote>Flags</quote> value indicates, this is a
+ host route, which means that each gateway knows how to reach the
+ other gateway, but they do not know how to reach the rest of
+ their respective networks. That problem will be fixed
+ shortly.</para>
+
+ <para>It is likely that you are running a firewall on both
+ machines. This will need to be circumvented for your VPN
+ traffic. You might want to allow all traffic between both
+ networks, or you might want to include firewall rules that
+ protect both ends of the VPN from one another.</para>
+
+ <para>It greatly simplifies testing if you configure the
+ firewall to allow all traffic through the VPN. You can always
+ tighten things up later. If you are using &man.ipfw.8; on the
+ gateway machines then a command like</para>
+
+ <programlisting>ipfw add 1 allow ip from any to any via gif0</programlisting>
+
+ <para>will allow all traffic between the two end points of the
+ VPN, without affecting your other firewall rules. Obviously
+ you will need to run this command on both gateway hosts.</para>
+
+ <para>This is sufficient to allow each gateway machine to ping
+ the other. On <hostid role="ipaddr">192.168.1.1</hostid>, you
+ should be able to run</para>
+
+ <programlisting>ping 192.168.2.1</programlisting>
+
+ <para>and get a response, and you should be able to do the same
+ thing on the other gateway machine.</para>
+
+ <para>However, you will not be able to reach internal machines
+ on either network yet. This is because of the routing --
+ although the gateway machines know how to reach one another,
+ they do not know how to reach the network behind each one.</para>
+
+ <para>To solve this problem you must add a static route on each
+ gateway machine. The command to do this on the first gateway
+ would be:</para>
+
+ <programlisting>route add 192.168.2.0 192.168.2.1 netmask 0xffffff00
+ </programlisting>
+
+ <para>This says <quote>In order to reach the hosts on the
+ network <hostid role="ipaddr">192.168.2.0</hostid>, send the
+ packets to the host <hostid
+ role="ipaddr">192.168.2.1</hostid></quote>. You will need to
+ run a similar command on the other gateway, but with the
+ <hostid role="ipaddr">192.168.1.x</hostid> addresses
+ instead.</para>
+
+ <para>IP traffic from hosts on one network will now be able to
+ reach hosts on the other network.</para>
+
+ <para>That has now created two thirds of a VPN between the two
+ networks, in as much as it is <quote>virtual</quote> and it is a
+ <quote>network</quote>. It is not private yet. You can test
+ this using &man.ping.8; and &man.tcpdump.1;. Log in to the
+ gateway host and run</para>
+
+ <programlisting>tcpdump dst host 192.168.2.1</programlisting>
+
+ <para>In another log in session on the same host run</para>
+
+ <programlisting>ping 192.168.2.1</programlisting>
+
+ <para>You will see output that looks something like this:</para>
+
+ <programlisting>
+16:10:24.018080 192.168.1.1 &gt; 192.168.2.1: icmp: echo request
+16:10:24.018109 192.168.1.1 &gt; 192.168.2.1: icmp: echo reply
+16:10:25.018814 192.168.1.1 &gt; 192.168.2.1: icmp: echo request
+16:10:25.018847 192.168.1.1 &gt; 192.168.2.1: icmp: echo reply
+16:10:26.028896 192.168.1.1 &gt; 192.168.2.1: icmp: echo request
+16:10:26.029112 192.168.1.1 &gt; 192.168.2.1: icmp: echo reply
+ </programlisting>
+
+ <para>As you can see, the ICMP messages are going back and forth
+ unencrypted. If you had used the <option>-s</option> parameter to
+ &man.tcpdump.1; to grab more bytes of data from the packets you
+ would see more information.</para>
+
+ <para>Obviously this is unacceptable. The next section will
+ discuss securing the link between the two networks so that
+ all traffic is automatically encrypted.</para>
+
+ <itemizedlist>
+ <title>Summary:</title>
+ <listitem>
+ <para>Configure both kernels with <quote>device gif</quote>.</para>
+ </listitem>
+ <listitem>
+ <para>Edit <filename>/etc/rc.conf</filename> on gateway host
+ #1 and add the following lines (replacing IP addresses as
+ necessary).</para>
+ <programlisting>gif_interfaces="gif0"
+gifconfig_gif0="A.B.C.D W.X.Y.Z"
+ifconfig_gif0="inet 192.168.1.1 192.168.2.1 netmask 0xffffffff"
+static_routes="vpn"
+route_vpn="192.168.2.0 192.168.2.1 netmask 0xffffff00"
+ </programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Edit your firewall script
+ (<filename>/etc/rc.firewall</filename>, or similar) on both
+ hosts, and add</para>
+
+ <programlisting>ipfw add 1 allow ip from any to any via gif0</programlisting>
+ </listitem>
+ <listitem>
+ <para>Make similar changes to
+ <filename>/etc/rc.conf</filename> on gateway host #2,
+ reversing the order of IP addresses.</para>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3>
+ <title>Step 2: Securing the link</title>
+
+ <para>To secure the link we will be using IPsec. IPsec provides
+ a mechanism for two hosts to agree on an encryption key, and to
+ then use this key in order to encrypt data between the two
+ hosts.</para>
+
+ <para>The are two areas of configuration to be considered here.</para>
+
+ <orderedlist>
+ <listitem>
+ <para>There must be a mechanism for two hosts to agree on the
+ encryption mechanism to use. Once two hosts have agreed on
+ this mechanism there is said to be a <quote>security association</quote>
+ between them.</para>
+ </listitem>
+ <listitem>
+ <para>There must be a mechanism for specifying which traffic
+ should be encrypted. Obviously, you do not want to encrypt
+ all your outgoing traffic -- you only want to encrypt the
+ traffic that is part of the VPN. The rules that you put in
+ place to determine what traffic will be encrypted are called
+ <quote>security policies</quote>.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Security associations and security policies are both
+ maintained by the kernel, and can be modified by userland
+ programs. However, before you can do this you must configure the
+ kernel to support IPsec and the Encapsulated Security Payload
+ (ESP) protocol. This is done by configuring a kernel with:</para>
+
+ <indexterm>
+ <primary>kernel options</primary>
+ <secondary>IPSEC</secondary>
+ </indexterm>
+
+ <programlisting>options IPSEC
+options IPSEC_ESP
+ </programlisting>
+
+ <para>and recompiling, reinstalling, and rebooting. As before
+ you will need to do this to the kernels on both of the gateway
+ hosts.</para>
+
+ <indexterm>
+ <primary>IKE</primary>
+ </indexterm>
+
+ <para>You have two choices when it comes to setting up security
+ associations. You can configure them by hand between two hosts,
+ which entails choosing the encryption algorithm, encryption keys,
+ and so forth, or you can use daemons that implement the Internet
+ Key Exchange protocol (IKE) to do this for you.</para>
+
+ <para>I recommend the latter. Apart from anything else, it is
+ easier to set up.</para>
+
+ <indexterm>
+ <primary>IPsec</primary>
+ <secondary>security policies</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary><command>setkey</command></primary>
+ </indexterm>
+
+ <para>Editing and displaying security policies is carried out
+ using &man.setkey.8;. By analogy, <command>setkey</command> is
+ to the kernel's security policy tables as &man.route.8; is to
+ the kernel's routing tables. <command>setkey</command> can
+ also display the current security associations, and to continue
+ the analogy further, is akin to <command>netstat -r</command>
+ in that respect.</para>
+
+ <para>There are a number of choices for daemons to manage
+ security associations with FreeBSD. This article will describe
+ how to use one of these, racoon&nbsp;&mdash; which is available from
+ <filename role="package">security/ipsec-tools</filename> in the &os; Ports
+ collection.</para>
+
+ <indexterm>
+ <primary>racoon</primary>
+ </indexterm>
+
+ <para>The <application>racoon</application> software must be run on both gateway hosts. On each host it
+ is configured with the IP address of the other end of the VPN,
+ and a secret key (which you choose, and must be the same on both
+ gateways).</para>
+
+ <para>The two daemons then contact one another, confirm that they
+ are who they say they are (by using the secret key that you
+ configured). The daemons then generate a new secret key, and use
+ this to encrypt the traffic over the VPN. They periodically
+ change this secret, so that even if an attacker were to crack one
+ of the keys (which is as theoretically close to unfeasible as it
+ gets) it will not do them much good -- by the time they have cracked
+ the key the two daemons have chosen another one.</para>
+
+ <para>The configuration file for racoon is stored in
+ <filename>${PREFIX}/etc/racoon</filename>. You should find a
+ configuration file there, which should not need to be changed
+ too much. The other component of racoon's configuration,
+ which you will need to change, is the <quote>pre-shared
+ key</quote>.</para>
+
+ <para>The default racoon configuration expects to find this in
+ the file <filename>${PREFIX}/etc/racoon/psk.txt</filename>. It is important to note
+ that the pre-shared key is <emphasis>not</emphasis> the key that will be used to
+ encrypt your traffic across the VPN link, it is simply a token
+ that allows the key management daemons to trust one another.</para>
+
+ <para><filename>psk.txt</filename> contains a line for each
+ remote site you are dealing with. In this example, where there
+ are two sites, each <filename>psk.txt</filename> file will contain one line (because
+ each end of the VPN is only dealing with one other end).</para>
+
+ <para>On gateway host #1 this line should look like this:</para>
+
+ <programlisting>W.X.Y.Z secret</programlisting>
+
+ <para>That is, the <emphasis>public</emphasis> IP address of the remote end,
+ whitespace, and a text string that provides the secret.
+ Obviously, you should not use <quote>secret</quote> as your key -- the normal
+ rules for choosing a password apply.</para>
+
+ <para>On gateway host #2 the line would look like this</para>
+
+ <programlisting>A.B.C.D secret</programlisting>
+
+ <para>That is, the public IP address of the remote end, and the
+ same secret key. <filename>psk.txt</filename> must be mode
+ <literal>0600</literal> (i.e., only read/write to
+ <username>root</username>) before racoon will run.</para>
+
+ <para>You must run racoon on both gateway machines. You will
+ also need to add some firewall rules to allow the IKE traffic,
+ which is carried over UDP to the ISAKMP (Internet Security Association
+ Key Management Protocol) port. Again, this should be fairly early in
+ your firewall ruleset.</para>
+
+ <programlisting>ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
+ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
+ </programlisting>
+
+ <para>Once racoon is running you can try pinging one gateway host
+ from the other. The connection is still not encrypted, but
+ racoon will then set up the security associations between the two
+ hosts -- this might take a moment, and you may see this as a
+ short delay before the ping commands start responding.</para>
+
+ <para>Once the security association has been set up you can
+ view it using &man.setkey.8;. Run</para>
+
+ <programlisting>setkey -D</programlisting>
+
+ <para>on either host to view the security association information.</para>
+
+ <para>That's one half of the problem. The other half is setting
+ your security policies.</para>
+
+ <para>To create a sensible security policy, let's review what's
+ been set up so far. This discussions hold for both ends of the
+ link.</para>
+
+ <para>Each IP packet that you send out has a header that contains
+ data about the packet. The header includes the IP addresses of
+ both the source and destination. As we already know, private IP
+ addresses, such as the <hostid role="ipaddr">192.168.x.y</hostid>
+ range are not supposed to appear on the public Internet.
+ Instead, they must first be encapsulated inside another packet.
+ This packet must have the public source and destination IP
+ addresses substituted for the private addresses.</para>
+
+ <para>So if your outgoing packet started looking like this:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="security/ipsec-out-pkt" align="center">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">
+ .----------------------.
+ | Src: 192.168.1.1 |
+ | Dst: 192.168.2.1 |
+ | &lt;other header info&gt; |
+ +----------------------+
+ | &lt;packet data&gt; |
+ `----------------------'</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>Then it will be encapsulated inside another packet, looking
+ something like this:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="security/ipsec-encap-pkt" align="center">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">
+ .--------------------------.
+ | Src: A.B.C.D |
+ | Dst: W.X.Y.Z |
+ | &lt;other header info&gt; |
+ +--------------------------+
+ | .----------------------. |
+ | | Src: 192.168.1.1 | |
+ | | Dst: 192.168.2.1 | |
+ | | &lt;other header info&gt; | |
+ | +----------------------+ |
+ | | &lt;packet data&gt; | |
+ | `----------------------' |
+ `--------------------------'</literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>This encapsulation is carried out by the
+ <devicename>gif</devicename> device. As
+ you can see, the packet now has real IP addresses on the outside,
+ and our original packet has been wrapped up as data inside the
+ packet that will be put out on the Internet.</para>
+
+ <para>Obviously, we want all traffic between the VPNs to be
+ encrypted. You might try putting this in to words, as:</para>
+
+ <para><quote>If a packet leaves from <hostid
+ role="ipaddr">A.B.C.D</hostid>, and it is destined for <hostid
+ role="ipaddr">W.X.Y.Z</hostid>, then encrypt it, using the
+ necessary security associations.</quote></para>
+
+ <para><quote>If a packet arrives from <hostid
+ role="ipaddr">W.X.Y.Z</hostid>, and it is destined for <hostid
+ role="ipaddr">A.B.C.D</hostid>, then decrypt it, using the
+ necessary security associations.</quote></para>
+
+ <para>That's close, but not quite right. If you did this, all
+ traffic to and from <hostid role="ipaddr">W.X.Y.Z</hostid>, even
+ traffic that was not part of the VPN, would be encrypted. That's
+ not quite what you want. The correct policy is as follows</para>
+
+ <para><quote>If a packet leaves from <hostid
+ role="ipaddr">A.B.C.D</hostid>, and that packet is encapsulating
+ another packet, and it is destined for <hostid
+ role="ipaddr">W.X.Y.Z</hostid>, then encrypt it, using the
+ necessary security associations.</quote></para>
+
+ <para><quote>If a packet arrives from <hostid
+ role="ipaddr">W.X.Y.Z</hostid>, and that packet is encapsulating
+ another packet, and it is destined for <hostid
+ role="ipaddr">A.B.C.D</hostid>, then decrypt it, using the
+ necessary security associations.</quote></para>
+
+ <para>A subtle change, but a necessary one.</para>
+
+ <para>Security policies are also set using &man.setkey.8;.
+ &man.setkey.8; features a configuration language for defining the
+ policy. You can either enter configuration instructions via
+ stdin, or you can use the <option>-f</option> option to specify a
+ filename that contains configuration instructions.</para>
+
+ <para>The configuration on gateway host #1 (which has the public
+ IP address <hostid role="ipaddr">A.B.C.D</hostid>) to force all
+ outbound traffic to <hostid role="ipaddr">W.X.Y.Z</hostid> to be
+ encrypted is:</para>
+
+ <programlisting>
+spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;
+ </programlisting>
+
+ <para>Put these commands in a file (e.g.
+ <filename>/etc/ipsec.conf</filename>) and then run</para>
+
+ <screen>&prompt.root; <userinput>setkey -f /etc/ipsec.conf</userinput></screen>
+
+ <para><option>spdadd</option> tells &man.setkey.8; that we want
+ to add a rule to the secure policy database. The rest of this
+ line specifies which packets will match this policy. <hostid
+ role="ipaddr">A.B.C.D/32</hostid> and <hostid
+ role="ipaddr">W.X.Y.Z/32</hostid> are the IP addresses and
+ netmasks that identify the network or hosts that this policy will
+ apply to. In this case, we want it to apply to traffic between
+ these two hosts. <option>ipencap</option> tells the kernel that
+ this policy should only apply to packets that encapsulate other
+ packets. <option>-P out</option> says that this policy applies
+ to outgoing packets, and <option>ipsec</option> says that the
+ packet will be secured.</para>
+
+ <para>The second line specifies how this packet will be
+ encrypted. <option>esp</option> is the protocol that will be
+ used, while <option>tunnel</option> indicates that the packet
+ will be further encapsulated in an IPsec packet. The repeated
+ use of <hostid role="ipaddr">A.B.C.D</hostid> and <hostid
+ role="ipaddr">W.X.Y.Z</hostid> is used to select the security
+ association to use, and the final <option>require</option>
+ mandates that packets must be encrypted if they match this
+ rule.</para>
+
+ <para>This rule only matches outgoing packets. You will need a
+ similar rule to match incoming packets.</para>
+
+ <programlisting>spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;</programlisting>
+
+ <para>Note the <option>in</option> instead of
+ <option>out</option> in this case, and the necessary reversal of
+ the IP addresses.</para>
+
+ <para>The other gateway host (which has the public IP address
+ <hostid role="ipaddr">W.X.Y.Z</hostid>) will need similar rules.</para>
+
+ <programlisting>spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec esp/tunnel/W.X.Y.Z-A.B.C.D/require;
+spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec esp/tunnel/A.B.C.D-W.X.Y.Z/require;</programlisting>
+
+ <para>Finally, you need to add firewall rules to allow ESP and
+ IPENCAP packets back and forth. These rules will need to be
+ added to both hosts.</para>
+
+ <programlisting>ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
+ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
+ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
+ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D
+ </programlisting>
+
+ <para>Because the rules are symmetric you can use the same rules
+ on each gateway host.</para>
+
+ <para>Outgoing packets will now look something like this:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="security/ipsec-crypt-pkt" align="center">
+ </imageobject>
+
+ <textobject>
+ <literallayout class="monospaced">
+ .------------------------------. --------------------------.
+ | Src: A.B.C.D | |
+ | Dst: W.X.Y.Z | |
+ | &lt;other header info&gt; | | Encrypted
+ +------------------------------+ | packet.
+ | .--------------------------. | -------------. | contents
+ | | Src: A.B.C.D | | | | are
+ | | Dst: W.X.Y.Z | | | | completely
+ | | &lt;other header info&gt; | | | |- secure
+ | +--------------------------+ | | Encap'd | from third
+ | | .----------------------. | | -. | packet | party
+ | | | Src: 192.168.1.1 | | | | Original |- with real | snooping
+ | | | Dst: 192.168.2.1 | | | | packet, | IP addr |
+ | | | &lt;other header info&gt; | | | |- private | |
+ | | +----------------------+ | | | IP addr | |
+ | | | &lt;packet data&gt; | | | | | |
+ | | `----------------------' | | -' | |
+ | `--------------------------' | -------------' |
+ `------------------------------' --------------------------'
+ </literallayout>
+ </textobject>
+ </mediaobject>
+
+ <para>When they are received by the far end of the VPN they will
+ first be decrypted (using the security associations that have
+ been negotiated by racoon). Then they will enter the
+ <devicename>gif</devicename> interface, which will unwrap
+ the second layer, until you are left with the innermost
+ packet, which can then travel in to the inner network.</para>
+
+ <para>You can check the security using the same &man.ping.8; test from
+ earlier. First, log in to the
+ <hostid role="ipaddr">A.B.C.D</hostid> gateway machine, and
+ run:</para>
+
+ <programlisting>tcpdump dst host 192.168.2.1</programlisting>
+
+ <para>In another log in session on the same host run</para>
+
+ <programlisting>ping 192.168.2.1</programlisting>
+
+ <para>This time you should see output like the following:</para>
+
+ <programlisting>XXX tcpdump output</programlisting>
+
+ <para>Now, as you can see, &man.tcpdump.1; shows the ESP packets. If
+ you try to examine them with the <option>-s</option> option you will see
+ (apparently) gibberish, because of the encryption.</para>
+
+ <para>Congratulations. You have just set up a VPN between two
+ remote sites.</para>
+
+ <itemizedlist>
+ <title>Summary</title>
+ <listitem>
+ <para>Configure both kernels with:</para>
+
+ <programlisting>options IPSEC
+options IPSEC_ESP
+ </programlisting>
+ </listitem>
+ <listitem>
+ <para>Install <filename
+ role="package">security/ipsec-tools</filename>. Edit
+ <filename>${PREFIX}/etc/racoon/psk.txt</filename> on both
+ gateway hosts, adding an entry for the remote host's IP
+ address and a secret key that they both know. Make sure
+ this file is mode 0600.</para>
+ </listitem>
+ <listitem>
+ <para>Add the following lines to
+ <filename>/etc/rc.conf</filename> on each host:</para>
+
+ <programlisting>ipsec_enable="YES"
+ipsec_file="/etc/ipsec.conf"
+ </programlisting>
+ </listitem>
+ <listitem>
+ <para>Create an <filename>/etc/ipsec.conf</filename> on each
+ host that contains the necessary spdadd lines. On gateway
+ host #1 this would be:</para>
+
+ <programlisting>
+spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P out ipsec
+ esp/tunnel/A.B.C.D-W.X.Y.Z/require;
+spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P in ipsec
+ esp/tunnel/W.X.Y.Z-A.B.C.D/require;
+</programlisting>
+
+ <para>On gateway host #2 this would be:</para>
+
+<programlisting>
+spdadd W.X.Y.Z/32 A.B.C.D/32 ipencap -P out ipsec
+ esp/tunnel/W.X.Y.Z-A.B.C.D/require;
+spdadd A.B.C.D/32 W.X.Y.Z/32 ipencap -P in ipsec
+ esp/tunnel/A.B.C.D-W.X.Y.Z/require;
+</programlisting>
+ </listitem>
+ <listitem>
+ <para>Add firewall rules to allow IKE, ESP, and IPENCAP
+ traffic to both hosts:</para>
+
+ <programlisting>
+ipfw add 1 allow udp from A.B.C.D to W.X.Y.Z isakmp
+ipfw add 1 allow udp from W.X.Y.Z to A.B.C.D isakmp
+ipfw add 1 allow esp from A.B.C.D to W.X.Y.Z
+ipfw add 1 allow esp from W.X.Y.Z to A.B.C.D
+ipfw add 1 allow ipencap from A.B.C.D to W.X.Y.Z
+ipfw add 1 allow ipencap from W.X.Y.Z to A.B.C.D
+ </programlisting>
+ </listitem>
+ </itemizedlist>
+
+ <para>The previous two steps should suffice to get the VPN up and
+ running. Machines on each network will be able to refer to one
+ another using IP addresses, and all traffic across the link will
+ be automatically and securely encrypted.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="openssh">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ <!-- 21 April 2001 -->
+ </authorgroup>
+ </sect1info>
+
+ <title>OpenSSH</title>
+ <indexterm><primary>OpenSSH</primary></indexterm>
+ <indexterm>
+ <primary>security</primary>
+ <secondary>OpenSSH</secondary>
+ </indexterm>
+
+ <para><application>OpenSSH</application> is a set of network connectivity tools used to
+ access remote machines securely. It can be used as a direct
+ replacement for <command>rlogin</command>,
+ <command>rsh</command>, <command>rcp</command>, and
+ <command>telnet</command>. Additionally, TCP/IP
+ connections can be tunneled/forwarded securely through SSH.
+ <application>OpenSSH</application> encrypts all traffic to effectively eliminate eavesdropping,
+ connection hijacking, and other network-level attacks.</para>
+
+ <para><application>OpenSSH</application> is maintained by the OpenBSD project, and is based
+ upon SSH v1.2.12 with all the recent bug fixes and updates. It
+ is compatible with both SSH protocols 1 and 2.</para>
+
+ <sect2>
+ <title>Advantages of Using OpenSSH</title>
+
+ <para>Normally, when using &man.telnet.1; or &man.rlogin.1;,
+ data is sent over the network in an clear, un-encrypted form.
+ Network sniffers anywhere in between the client and server can
+ steal your user/password information or data transferred in
+ your session. <application>OpenSSH</application> offers a variety of authentication and
+ encryption methods to prevent this from happening.</para>
+ </sect2>
+
+ <sect2>
+ <title>Enabling sshd</title>
+ <indexterm>
+ <primary>OpenSSH</primary>
+ <secondary>enabling</secondary>
+ </indexterm>
+
+ <para>The
+ <application>sshd</application> is an option presented during
+ a <literal>Standard</literal> install of &os;. To see if
+ <application>sshd</application> is enabled, check the
+ <filename>rc.conf</filename> file for:</para>
+ <screen>sshd_enable="YES"</screen>
+ <para>This will load &man.sshd.8;, the daemon program for <application>OpenSSH</application>,
+ the next time your system initializes. Alternatively, it is
+ possible to use <filename>/etc/rc.d/sshd</filename> &man.rc.8;
+ script to start <application>OpenSSH</application>:</para>
+
+ <programlisting>/etc/rc.d/sshd start</programlisting>
+ </sect2>
+
+ <sect2>
+ <title>SSH Client</title>
+ <indexterm>
+ <primary>OpenSSH</primary>
+ <secondary>client</secondary>
+ </indexterm>
+
+ <para>The &man.ssh.1; utility works similarly to
+ &man.rlogin.1;.</para>
+
+ <screen>&prompt.root; <userinput>ssh <replaceable>user@example.com</replaceable></userinput>
+Host key not found from the list of known hosts.
+Are you sure you want to continue connecting (yes/no)? <userinput>yes</userinput>
+Host 'example.com' added to the list of known hosts.
+user@example.com's password: <userinput>*******</userinput></screen>
+
+ <para>The login will continue just as it would have if a session was
+ created using <command>rlogin</command> or
+ <command>telnet</command>. SSH utilizes a key fingerprint
+ system for verifying the authenticity of the server when the
+ client connects. The user is prompted to enter
+ <literal>yes</literal> only when
+ connecting for the first time. Future attempts to login are all
+ verified against the saved fingerprint key. The SSH client
+ will alert you if the saved fingerprint differs from the
+ received fingerprint on future login attempts. The fingerprints
+ are saved in <filename>~/.ssh/known_hosts</filename>, or
+ <filename>~/.ssh/known_hosts2</filename> for SSH v2
+ fingerprints.</para>
+
+ <para>By default, recent versions of the
+ <application>OpenSSH</application> servers only accept SSH v2
+ connections. The client will use version 2 if possible and
+ will fall back to version 1. The client can also be forced to
+ use one or the other by passing it the <option>-1</option> or
+ <option>-2</option> for version 1 or version 2, respectively.
+ The version 1 compatibility is maintained in the client for
+ backwards compatibility with older versions.</para>
+ </sect2>
+
+ <sect2>
+ <title>Secure Copy</title>
+ <indexterm>
+ <primary>OpenSSH</primary>
+ <secondary>secure copy</secondary>
+ </indexterm>
+ <indexterm><primary><command>scp</command></primary></indexterm>
+
+ <para>The &man.scp.1; command works similarly to
+ &man.rcp.1;; it copies a file to or from a remote machine,
+ except in a secure fashion.</para>
+
+ <screen>&prompt.root; <userinput> scp <replaceable>user@example.com:/COPYRIGHT COPYRIGHT</replaceable></userinput>
+user@example.com's password: <userinput>*******</userinput>
+COPYRIGHT 100% |*****************************| 4735
+00:00
+&prompt.root;</screen>
+ <para>Since the fingerprint was already saved for this host in the
+ previous example, it is verified when using &man.scp.1;
+ here.</para>
+
+ <para>The arguments passed to &man.scp.1; are similar
+ to &man.cp.1;, with the file or files in the first
+ argument, and the destination in the second. Since the file is
+ fetched over the network, through SSH, one or more of the file
+ arguments takes on the form
+ <option>user@host:&lt;path_to_remote_file&gt;</option>.</para>
+
+ </sect2>
+
+ <sect2>
+ <title>Configuration</title>
+ <indexterm>
+ <primary>OpenSSH</primary>
+ <secondary>configuration</secondary>
+ </indexterm>
+
+ <para>The system-wide configuration files for both the
+ <application>OpenSSH</application> daemon and client reside
+ within the <filename>/etc/ssh</filename> directory.</para>
+
+ <para><filename>ssh_config</filename> configures the client
+ settings, while <filename>sshd_config</filename> configures the
+ daemon.</para>
+
+ <para>Additionally, the <option>sshd_program</option>
+ (<filename>/usr/sbin/sshd</filename> by default), and
+ <option>sshd_flags</option> <filename>rc.conf</filename>
+ options can provide more levels of configuration.</para>
+ </sect2>
+
+ <sect2 id="security-ssh-keygen">
+ <title>ssh-keygen</title>
+
+ <para>Instead of using passwords, &man.ssh-keygen.1; can
+ be used to generate DSA or RSA keys to authenticate a user:</para>
+
+ <screen>&prompt.user; <userinput>ssh-keygen -t <replaceable>dsa</replaceable></userinput>
+Generating public/private dsa key pair.
+Enter file in which to save the key (/home/user/.ssh/id_dsa):
+Created directory '/home/user/.ssh'.
+Enter passphrase (empty for no passphrase):
+Enter same passphrase again:
+Your identification has been saved in /home/user/.ssh/id_dsa.
+Your public key has been saved in /home/user/.ssh/id_dsa.pub.
+The key fingerprint is:
+bb:48:db:f2:93:57:80:b6:aa:bc:f5:d5:ba:8f:79:17 user@host.example.com
+</screen>
+
+ <para>&man.ssh-keygen.1; will create a public and private
+ key pair for use in authentication. The private key is stored in
+ <filename>~/.ssh/id_dsa</filename> or
+ <filename>~/.ssh/id_rsa</filename>, whereas the public key is
+ stored in <filename>~/.ssh/id_dsa.pub</filename> or
+ <filename>~/.ssh/id_rsa.pub</filename>, respectively for DSA and
+ RSA key types. The public key must be placed in
+ <filename>~/.ssh/authorized_keys</filename> of the remote
+ machine in order for the setup to work. Similarly, RSA version
+ 1 public keys should be placed in
+ <filename>~/.ssh/authorized_keys</filename>.</para>
+
+ <para>This will allow connection to the remote machine based upon
+ SSH keys instead of passwords.</para>
+
+ <para>If a passphrase is used in &man.ssh-keygen.1;, the user
+ will be prompted for a password each time in order to use the
+ private key. &man.ssh-agent.1; can alleviate the strain of
+ repeatedly entering long passphrases, and is explored in the
+ <xref linkend="security-ssh-agent"> section below.</para>
+
+ <warning><para>The various options and files can be different
+ according to the <application>OpenSSH</application> version
+ you have on your system; to avoid problems you should consult
+ the &man.ssh-keygen.1; manual page.</para></warning>
+ </sect2>
+
+ <sect2 id="security-ssh-agent">
+ <title>ssh-agent and ssh-add</title>
+
+ <para>The &man.ssh-agent.1; and &man.ssh-add.1; utilities provide
+ methods for <application>SSH</application> keys to be loaded
+ into memory for use, without needing to type the passphrase
+ each time.</para>
+
+ <para>The &man.ssh-agent.1; utility will handle the authentication
+ using the private key(s) that are loaded into it.
+ &man.ssh-agent.1; should be used to launch another application.
+ At the most basic level, it could spawn a shell or at a more
+ advanced level, a window manager.</para>
+
+ <para>To use &man.ssh-agent.1; in a shell, first it will need to
+ be spawned with a shell as an argument. Secondly, the
+ identity needs to be added by running &man.ssh-add.1; and
+ providing it the passphrase for the private key. Once these
+ steps have been completed the user will be able to &man.ssh.1;
+ to any host that has the corresponding public key installed.
+ For example:</para>
+
+ <screen>&prompt.user; ssh-agent <replaceable>csh</replaceable>
+&prompt.user; ssh-add
+Enter passphrase for /home/user/.ssh/id_dsa:
+Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa)
+&prompt.user;</screen>
+
+ <para>To use &man.ssh-agent.1; in X11, a call to
+ &man.ssh-agent.1; will need to be placed in
+ <filename>~/.xinitrc</filename>. This will provide the
+ &man.ssh-agent.1; services to all programs launched in X11.
+ An example <filename>~/.xinitrc</filename> file might look
+ like this:</para>
+
+ <programlisting>exec ssh-agent <replaceable>startxfce4</replaceable></programlisting>
+
+ <para>This would launch &man.ssh-agent.1;, which would in turn
+ launch <application>XFCE</application>, every time X11 starts.
+ Then once that is done and X11 has been restarted so that the
+ changes can take effect, simply run &man.ssh-add.1; to load
+ all of your SSH keys.</para>
+ </sect2>
+
+ <sect2 id="security-ssh-tunneling">
+ <title>SSH Tunneling</title>
+ <indexterm>
+ <primary>OpenSSH</primary>
+ <secondary>tunneling</secondary>
+ </indexterm>
+
+ <para><application>OpenSSH</application> has the ability to create a tunnel to encapsulate
+ another protocol in an encrypted session.</para>
+
+ <para>The following command tells &man.ssh.1; to create a tunnel
+ for <application>telnet</application>:</para>
+
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5023:localhost:23 user@foo.example.com</replaceable></userinput>
+&prompt.user;</screen>
+
+ <para>The <command>ssh</command> command is used with the
+ following options:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-2</option></term>
+
+ <listitem>
+ <para>Forces <command>ssh</command> to use version 2 of
+ the protocol. (Do not use if you are working with older
+ SSH servers)</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-N</option></term>
+
+ <listitem>
+ <para>Indicates no command, or tunnel only. If omitted,
+ <command>ssh</command> would initiate a normal
+ session.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-f</option></term>
+
+ <listitem>
+ <para>Forces <command>ssh</command> to run in the
+ background.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-L</option></term>
+
+ <listitem>
+ <para>Indicates a local tunnel in
+ <replaceable>localport:remotehost:remoteport</replaceable>
+ fashion.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>user@foo.example.com</option></term>
+
+ <listitem>
+ <para>The remote SSH server.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+
+ <para>An SSH tunnel works by creating a listen socket on
+ <hostid>localhost</hostid> on the specified port.
+ It then forwards any connection received
+ on the local host/port via the SSH connection to the specified
+ remote host and port.</para>
+
+ <para>In the example, port <replaceable>5023</replaceable> on
+ <hostid>localhost</hostid> is being forwarded to port
+ <replaceable>23</replaceable> on <hostid>localhost</hostid>
+ of the remote machine. Since <replaceable>23</replaceable> is <application>telnet</application>,
+ this would create a secure <application>telnet</application> session through an SSH tunnel.</para>
+
+ <para>This can be used to wrap any number of insecure TCP
+ protocols such as SMTP, POP3, FTP, etc.</para>
+
+ <example>
+ <title>Using SSH to Create a Secure Tunnel for SMTP</title>
+
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>5025:localhost:25 user@mailserver.example.com</replaceable></userinput>
+user@mailserver.example.com's password: <userinput>*****</userinput>
+&prompt.user; <userinput>telnet localhost 5025</userinput>
+Trying 127.0.0.1...
+Connected to localhost.
+Escape character is '^]'.
+220 mailserver.example.com ESMTP</screen>
+
+ <para>This can be used in conjunction with an
+ &man.ssh-keygen.1; and additional user accounts to create a
+ more seamless/hassle-free SSH tunneling environment. Keys
+ can be used in place of typing a password, and the tunnels
+ can be run as a separate user.</para>
+ </example>
+
+ <sect3>
+ <title>Practical SSH Tunneling Examples</title>
+
+ <sect4>
+ <title>Secure Access of a POP3 Server</title>
+
+ <para>At work, there is an SSH server that accepts
+ connections from the outside. On the same office network
+ resides a mail server running a POP3 server. The network,
+ or network path between your home and office may or may not
+ be completely trustable. Because of this, you need to check
+ your e-mail in a secure manner. The solution is to create
+ an SSH connection to your office's SSH server, and tunnel
+ through to the mail server.</para>
+
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>2110:mail.example.com:110 user@ssh-server.example.com</replaceable></userinput>
+user@ssh-server.example.com's password: <userinput>******</userinput></screen>
+
+ <para>When the tunnel is up and running, you can point your
+ mail client to send POP3 requests to <hostid>localhost</hostid>
+ port 2110. A connection here will be forwarded securely across
+ the tunnel to <hostid>mail.example.com</hostid>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Bypassing a Draconian Firewall</title>
+
+ <para>Some network administrators impose extremely draconian
+ firewall rules, filtering not only incoming connections,
+ but outgoing connections. You may be only given access
+ to contact remote machines on ports 22 and 80 for SSH
+ and web surfing.</para>
+
+ <para>You may wish to access another (perhaps non-work
+ related) service, such as an Ogg Vorbis server to stream
+ music. If this Ogg Vorbis server is streaming on some other
+ port than 22 or 80, you will not be able to access it.</para>
+
+ <para>The solution is to create an SSH connection to a machine
+ outside of your network's firewall, and use it to tunnel to
+ the Ogg Vorbis server.</para>
+
+ <screen>&prompt.user; <userinput>ssh -2 -N -f -L <replaceable>8888:music.example.com:8000 user@unfirewalled-system.example.org</replaceable></userinput>
+user@unfirewalled-system.example.org's password: <userinput>*******</userinput></screen>
+
+ <para>Your streaming client can now be pointed to
+ <hostid>localhost</hostid> port 8888, which will be
+ forwarded over to <hostid>music.example.com</hostid> port
+ 8000, successfully evading the firewall.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>The <varname>AllowUsers</varname> Users Option</title>
+
+ <para>It is often a good idea to limit which users can log in and
+ from where. The <literal>AllowUsers</literal> option is a good
+ way to accomplish this. For example, to only allow the
+ <username>root</username> user to log in from
+ <hostid role="ipaddr">192.168.1.32</hostid>, something like this
+ would be appropriate in the
+ <filename>/etc/ssh/sshd_config</filename> file:</para>
+
+ <programlisting>AllowUsers root@192.168.1.32</programlisting>
+
+ <para>To allow the user <username>admin</username> to log in from
+ anywhere, just list the username by itself:</para>
+
+ <programlisting>AllowUsers admin</programlisting>
+
+ <para>Multiple users should be listed on the same line, like so:</para>
+
+ <programlisting>AllowUsers root@192.168.1.32 admin</programlisting>
+
+ <note>
+ <para>It is important that you list each user that needs to
+ log in to this machine; otherwise they will be locked out.</para>
+ </note>
+
+ <para>After making changes to
+ <filename>/etc/ssh/sshd_config</filename> you must tell
+ &man.sshd.8; to reload its config files, by running:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/sshd reload</userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Further Reading</title>
+ <para><ulink url="http://www.openssh.com/">OpenSSH</ulink></para>
+ <para>&man.ssh.1; &man.scp.1; &man.ssh-keygen.1;
+ &man.ssh-agent.1; &man.ssh-add.1; &man.ssh.config.5;</para>
+ <para>&man.sshd.8; &man.sftp-server.8; &man.sshd.config.5;</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="fs-acl">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <indexterm>
+ <primary>ACL</primary>
+ </indexterm>
+ <title>File System Access Control Lists</title>
+
+ <para>In conjunction with file system enhancements like snapshots, FreeBSD 5.0
+ and later offers the security of File System Access Control Lists
+ (<acronym>ACL</acronym>s).</para>
+
+ <para>Access Control Lists extend the standard &unix;
+ permission model in a highly compatible (&posix;.1e) way. This feature
+ permits an administrator to make use of and take advantage of a
+ more sophisticated security model.</para>
+
+ <para>To enable <acronym>ACL</acronym> support for <acronym>UFS</acronym>
+ file systems, the following:</para>
+
+ <programlisting>options UFS_ACL</programlisting>
+
+ <para>must be compiled into the kernel. If this option has
+ not been compiled in, a warning message will be displayed
+ when attempting to mount a file system supporting <acronym>ACL</acronym>s.
+ This option is included in the <filename>GENERIC</filename> kernel.
+ <acronym>ACL</acronym>s rely on extended attributes being enabled on
+ the file system. Extended attributes are natively supported in the next generation
+ &unix; file system, <acronym>UFS2</acronym>.</para>
+
+ <note><para>A higher level of administrative overhead is required to
+ configure extended attributes on <acronym>UFS1</acronym> than on
+ <acronym>UFS2</acronym>. The performance of extended attributes
+ on <acronym>UFS2</acronym> is also substantially higher. As a
+ result, <acronym>UFS2</acronym> is generally recommended in preference
+ to <acronym>UFS1</acronym> for use with access control lists.</para></note>
+
+ <para><acronym>ACL</acronym>s are enabled by the mount-time administrative
+ flag, <option>acls</option>, which may be added to <filename>/etc/fstab</filename>.
+ The mount-time flag can also be automatically set in a persistent manner using
+ &man.tunefs.8; to modify a superblock <acronym>ACL</acronym>s flag in the
+ file system header. In general, it is preferred to use the superblock flag
+ for several reasons:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>The mount-time <acronym>ACL</acronym>s flag cannot be changed by a
+ remount (&man.mount.8; <option>-u</option>), only by means of a complete
+ &man.umount.8; and fresh &man.mount.8;. This means that
+ <acronym>ACL</acronym>s cannot be enabled on the root file system after boot.
+ It also means that you cannot change the disposition of a file system once
+ it is in use.</para>
+ </listitem>
+
+ <listitem>
+ <para>Setting the superblock flag will cause the file system to always be
+ mounted with <acronym>ACL</acronym>s enabled even if there is not an
+ <filename>fstab</filename> entry or if the devices re-order. This prevents
+ accidental mounting of the file system without <acronym>ACL</acronym>s
+ enabled, which can result in <acronym>ACL</acronym>s being improperly enforced,
+ and hence security problems.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note><para>We may change the <acronym>ACL</acronym>s behavior to allow the flag to
+ be enabled without a complete fresh &man.mount.8;, but we consider it desirable to
+ discourage accidental mounting without <acronym>ACL</acronym>s enabled, because you
+ can shoot your feet quite nastily if you enable <acronym>ACL</acronym>s, then disable
+ them, then re-enable them without flushing the extended attributes. In general, once
+ you have enabled <acronym>ACL</acronym>s on a file system, they should not be disabled,
+ as the resulting file protections may not be compatible with those intended by the
+ users of the system, and re-enabling <acronym>ACL</acronym>s may re-attach the previous
+ <acronym>ACL</acronym>s to files that have since had their permissions changed,
+ resulting in other unpredictable behavior.</para></note>
+
+ <para>File systems with <acronym>ACL</acronym>s enabled will show a <literal>+</literal>
+ (plus) sign in their permission settings when viewed. For example:</para>
+
+ <programlisting>drwx------ 2 robert robert 512 Dec 27 11:54 private
+drwxrwx---+ 2 robert robert 512 Dec 23 10:57 directory1
+drwxrwx---+ 2 robert robert 512 Dec 22 10:20 directory2
+drwxrwx---+ 2 robert robert 512 Dec 27 11:57 directory3
+drwxr-xr-x 2 robert robert 512 Nov 10 11:54 public_html</programlisting>
+
+ <para>Here we see that the <filename>directory1</filename>,
+ <filename>directory2</filename>, and <filename>directory3</filename>
+ directories are all taking advantage of <acronym>ACL</acronym>s. The
+ <filename>public_html</filename> directory is not.</para>
+
+ <sect2>
+ <title>Making Use of <acronym>ACL</acronym>s</title>
+
+ <para>The file system <acronym>ACL</acronym>s can be viewed by the
+ &man.getfacl.1; utility. For instance, to view the
+ <acronym>ACL</acronym> settings on the <filename>test</filename>
+ file, one would use the command:</para>
+
+ <screen>&prompt.user; <userinput>getfacl <filename>test</filename></userinput>
+ #file:test
+ #owner:1001
+ #group:1001
+ user::rw-
+ group::r--
+ other::r--</screen>
+
+ <para>To change the <acronym>ACL</acronym> settings on this file,
+ invoke the &man.setfacl.1; utility. Observe:</para>
+
+ <screen>&prompt.user; <userinput>setfacl -k <filename>test</filename></userinput></screen>
+
+ <para>The <option>-k</option> flag will remove all of the
+ currently defined <acronym>ACL</acronym>s from a file or file
+ system. The more preferable method would be to use
+ <option>-b</option> as it leaves the basic fields required for
+ <acronym>ACL</acronym>s to work.</para>
+
+ <screen>&prompt.user; <userinput>setfacl -m u:trhodes:rwx,group:web:r--,o::--- <filename>test</filename></userinput></screen>
+
+ <para>In the aforementioned command, the <option>-m</option>
+ option was used to modify the default <acronym>ACL</acronym>
+ entries. Since there were no pre-defined entries, as they were
+ removed by the previous command, this will restore the default
+ options and assign the options listed. Take care to notice that
+ if you add a user or group which does not exist on the system,
+ an <errorname>Invalid argument</errorname> error will be printed
+ to <devicename>stdout</devicename>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="security-portaudit">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <indexterm>
+ <primary>Portaudit</primary>
+ </indexterm>
+ <title>Monitoring Third Party Security Issues</title>
+
+ <para>In recent years, the security world has made many improvements
+ to how vulnerability assessment is handled. The threat of system
+ intrusion increases as third party utilities are installed and
+ configured for virtually any operating system available
+ today.</para>
+
+ <para>Vulnerability assessment is a key factor in security, and
+ while &os; releases advisories for the base system, doing so
+ for every third party utility is beyond the &os; Project's
+ capability. There is a way to mitigate third party
+ vulnerabilities and warn administrators of known security
+ issues. A &os; add on utility known as
+ <application>Portaudit</application> exists solely for this
+ purpose.</para>
+
+ <para>The <filename role="port">ports-mgmt/portaudit</filename> port
+ polls a database, updated and maintained by the &os; Security
+ Team and ports developers, for known security issues.</para>
+
+ <para>To begin using <application>Portaudit</application>, one
+ must install it from the Ports Collection:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/ports-mgmt/portaudit &amp;&amp; make install clean</userinput></screen>
+
+ <para>During the install process, the configuration files for
+ &man.periodic.8; will be updated, permitting
+ <application>Portaudit</application> output in the daily security
+ runs. Ensure the daily security run emails, which are sent to
+ <username>root</username>'s email account, are being read. No
+ more configuration will be required here.</para>
+
+ <para>After installation, an administrator can update the database
+ and view known vulnerabilities in installed packages by invoking
+ the following command:</para>
+
+ <screen>&prompt.root; <userinput>portaudit -Fda</userinput></screen>
+
+ <note>
+ <para>The database will automatically be updated during the
+ &man.periodic.8; run; thus, the previous command is completely
+ optional. It is only required for the following
+ examples.</para>
+ </note>
+
+ <para>To audit the third party utilities installed as part of
+ the Ports Collection at anytime, an administrator need only run
+ the following command:</para>
+
+ <screen>&prompt.root; <userinput>portaudit -a</userinput></screen>
+
+ <para><application>Portaudit</application> will produce something
+ like this for vulnerable packages:</para>
+
+ <programlisting>Affected package: cups-base-1.1.22.0_1
+Type of problem: cups-base -- HPGL buffer overflow vulnerability.
+Reference: &lt;http://www.FreeBSD.org/ports/portaudit/40a3bca2-6809-11d9-a9e7-0001020eed82.html&gt;
+
+1 problem(s) in your installed packages found.
+
+You are advised to update or deinstall the affected package(s) immediately.</programlisting>
+
+ <para>By pointing a web browser to the <acronym>URL</acronym> shown,
+ an administrator may obtain more information about the
+ vulnerability in question. This will include versions affected,
+ by &os; Port version, along with other web sites which may contain
+ security advisories.</para>
+
+ <para>In short, <application>Portaudit</application> is a powerful
+ utility and extremely useful when coupled with the
+ <application>Portupgrade</application> port.</para>
+ </sect1>
+
+ <sect1 id="security-advisories">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <indexterm>
+ <primary>FreeBSD Security Advisories</primary>
+ </indexterm>
+ <title>&os; Security Advisories</title>
+
+ <para>Like many production quality operating systems, &os; publishes
+ <quote>Security Advisories</quote>. These advisories are usually
+ mailed to the security lists and noted in the Errata only
+ after the appropriate releases have been patched. This section
+ will work to explain what an advisory is, how to understand it,
+ and what measures to take in order to patch a system.</para>
+
+ <sect2>
+ <title>What does an advisory look like?</title>
+
+ <para>The &os; security advisories look similar to the one below,
+ taken from the &a.security-notifications.name; mailing list.</para>
+
+ <programlisting>=============================================================================
+&os;-SA-XX:XX.UTIL Security Advisory
+ The &os; Project
+
+Topic: denial of service due to some problem<co id="co-topic">
+
+Category: core<co id="co-category">
+Module: sys<co id="co-module">
+Announced: 2003-09-23<co id="co-announce">
+Credits: Person@EMAIL-ADDRESS<co id="co-credit">
+Affects: All releases of &os;<co id="co-affects">
+ &os; 4-STABLE prior to the correction date
+Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
+ 2003-09-23 20:08:42 UTC (RELENG_5_1, 5.1-RELEASE-p6)
+ 2003-09-23 20:07:06 UTC (RELENG_5_0, 5.0-RELEASE-p15)
+ 2003-09-23 16:44:58 UTC (RELENG_4_8, 4.8-RELEASE-p8)
+ 2003-09-23 16:47:34 UTC (RELENG_4_7, 4.7-RELEASE-p18)
+ 2003-09-23 16:49:46 UTC (RELENG_4_6, 4.6-RELEASE-p21)
+ 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
+ 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
+ 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)<co id="co-corrected">
+<acronym>CVE</acronym> Name: CVE-XXXX-XXXX<co id="co-cve">
+
+For general information regarding FreeBSD Security Advisories,
+including descriptions of the fields above, security branches, and the
+following sections, please visit
+http://www.FreeBSD.org/security/.
+
+I. Background<co id="co-backround">
+
+
+II. Problem Description<co id="co-descript">
+
+
+III. Impact<co id="co-impact">
+
+
+IV. Workaround<co id="co-workaround">
+
+
+V. Solution<co id="co-solution">
+
+
+VI. Correction details<co id="co-details">
+
+
+VII. References<co id="co-ref"></programlisting>
+
+
+ <calloutlist>
+ <callout arearefs="co-topic">
+ <para>The <literal>Topic</literal> field indicates exactly what the problem is.
+ It is basically an introduction to the current security
+ advisory and notes the utility with the
+ vulnerability.</para>
+ </callout>
+
+ <callout arearefs="co-category">
+ <para>The <literal>Category</literal> refers to the affected part of the system
+ which may be one of <literal>core</literal>, <literal>contrib</literal>, or <literal>ports</literal>. The <literal>core</literal>
+ category means that the vulnerability affects a core
+ component of the &os; operating system. The <literal>contrib</literal>
+ category means that the vulnerability affects software
+ contributed to the &os; Project, such as
+ <application>sendmail</application>. Finally the <literal>ports</literal>
+ category indicates that the vulnerability affects add on
+ software available as part of the Ports Collection.</para>
+ </callout>
+
+ <callout arearefs="co-module">
+ <para>The <literal>Module</literal> field refers to the component location, for
+ instance <literal>sys</literal>. In this example, we see that the module,
+ <literal>sys</literal>, is affected; therefore, this vulnerability
+ affects a component used within the kernel.</para>
+ </callout>
+
+ <callout arearefs="co-announce">
+ <para>The <literal>Announced</literal> field reflects the date said security
+ advisory was published, or announced to the world. This
+ means that the security team has verified that the problem
+ does exist and that a patch has been committed to the &os;
+ source code repository.</para>
+ </callout>
+
+ <callout arearefs="co-credit">
+ <para>The <literal>Credits</literal> field gives credit to the individual or
+ organization who noticed the vulnerability and reported
+ it.</para>
+ </callout>
+
+ <callout arearefs="co-affects">
+ <para>The <literal>Affects</literal> field explains which releases of &os; are
+ affected by this vulnerability. For the kernel, a quick
+ look over the output from <command>ident</command> on the
+ affected files will help in determining the revision.
+ For ports, the version number is listed after the port name
+ in <filename>/var/db/pkg</filename>. If the system does not
+ sync with the &os; <acronym>CVS</acronym> repository and rebuild
+ daily, chances are that it is affected.</para>
+ </callout>
+
+ <callout arearefs="co-corrected">
+ <para>The <literal>Corrected</literal> field indicates the date, time, time
+ offset, and release that was corrected.</para>
+ </callout>
+
+ <callout arearefs="co-cve">
+ <para>Reserved for the identification information used to look up
+ vulnerabilities in the Common Vulnerabilities Database system.</para>
+ </callout>
+
+ <callout arearefs="co-backround">
+ <para>The <literal>Background</literal> field gives information on exactly what
+ the affected utility is. Most of the time this is why
+ the utility exists in &os;, what it is used for, and a bit
+ of information on how the utility came to be.</para>
+ </callout>
+
+ <callout arearefs="co-descript">
+ <para>The <literal>Problem Description</literal> field explains the security hole
+ in depth. This can include information on flawed code, or
+ even how the utility could be maliciously used to open
+ a security hole.</para>
+ </callout>
+
+ <callout arearefs="co-impact">
+ <para>The <literal>Impact</literal> field describes what type of impact the
+ problem could have on a system. For example, this could
+ be anything from a denial of service attack, to extra
+ privileges available to users, or even giving the attacker
+ superuser access.</para>
+ </callout>
+
+ <callout arearefs="co-workaround">
+ <para>The <literal>Workaround</literal> field offers a feasible workaround to
+ system administrators who may be incapable of upgrading
+ the system. This may be due to time constraints, network
+ availability, or a slew of other reasons. Regardless,
+ security should not be taken lightly, and an affected system
+ should either be patched or the security hole workaround
+ should be implemented.</para>
+ </callout>
+
+ <callout arearefs="co-solution">
+ <para>The <literal>Solution</literal> field offers instructions on patching the
+ affected system. This is a step by step tested and verified
+ method for getting a system patched and working
+ securely.</para>
+ </callout>
+
+ <callout arearefs="co-details">
+ <para>The <literal>Correction Details</literal> field displays the
+ <acronym>CVS</acronym> branch or release name with the
+ periods changed to underscore characters. It also shows
+ the revision number of the affected files within each
+ branch.</para>
+ </callout>
+
+ <callout arearefs="co-ref">
+ <para>The <literal>References</literal> field usually offers sources of other
+ information. This can include web <acronym>URL</acronym>s,
+ books, mailing lists, and newsgroups.</para>
+ </callout>
+ </calloutlist>
+ </sect2>
+ </sect1>
+
+ <sect1 id="security-accounting">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Tom</firstname>
+ <surname>Rhodes</surname>
+ <contrib>Contributed by </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <indexterm>
+ <primary>Process Accounting</primary>
+ </indexterm>
+ <title>Process Accounting</title>
+
+ <para>Process accounting is a security method in which an
+ administrator may keep track of system resources used,
+ their allocation among users, provide for system monitoring,
+ and minimally track a user's commands.</para>
+
+ <para>This indeed has its own positive and negative points. One of
+ the positives is that an intrusion may be narrowed down
+ to the point of entry. A negative is the amount of logs
+ generated by process accounting, and the disk space they may
+ require. This section will walk an administrator through
+ the basics of process accounting.</para>
+
+ <sect2>
+ <title>Enable and Utilizing Process Accounting</title>
+ <para>Before making use of process accounting, it
+ must be enabled. To do this, execute the following
+ commands:</para>
+
+ <screen>&prompt.root; <userinput>touch <filename>/var/account/acct</filename></userinput>
+
+&prompt.root; <userinput>accton <filename>/var/account/acct</filename></userinput>
+
+&prompt.root; <userinput>echo 'accounting_enable="YES"' &gt;&gt; <filename>/etc/rc.conf</filename></userinput></screen>
+
+ <para>Once enabled, accounting will begin to track
+ <acronym>CPU</acronym> stats, commands, etc. All accounting
+ logs are in a non-human readable format and may be viewed
+ using the &man.sa.8; utility. If issued without any options,
+ <command>sa</command> will print information relating to the
+ number of per user calls, the total elapsed time in minutes,
+ total <acronym>CPU</acronym> and user time in minutes, average
+ number of I/O operations, etc.</para>
+
+ <para>To view information about commands being issued, one
+ would use the &man.lastcomm.1; utility. The
+ <command>lastcomm</command> may be used to print out commands
+ issued by users on specific &man.ttys.5;, for example:</para>
+
+ <screen>&prompt.root; <userinput>lastcomm ls
+ <username>trhodes</username> ttyp1</userinput></screen>
+
+ <para>Would print out all known usage of the <command>ls</command>
+ by <username>trhodes</username> on the ttyp1 terminal.</para>
+
+ <para>Many other useful options exist and are explained in the
+ &man.lastcomm.1;, &man.acct.5; and &man.sa.8; manual
+ pages.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ coding: iso-8859-7
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml b/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml
new file mode 100644
index 0000000000..2f7c71f01f
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/serialcomms/chapter.sgml
@@ -0,0 +1,3162 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Σειριακές Επικοινωνίες
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml
+ %SRCID% 1.136
+
+-->
+
+<chapter id="serialcomms">
+ <title>Σειριακές Επικοινωνίες</title>
+
+ <sect1 id="serial-synopsis">
+ <title>Σύνοψη</title>
+
+ <indexterm><primary>σειριακές επικοινωνίες</primary></indexterm>
+ <para>Το &unix; πάντοτε υποστήριζε σειριακές επικοινωνίες. Για την
+ ακρίβεια, τα πρώτα &unix; μηχανήματα βασίζονταν σε σειριακές γραμμές
+ για την είσοδο και έξοδο στο χρήστη. Τα πράγματα ωστόσο έχουν αλλάξει
+ πολύ από τις μέρες που το συνηθισμένο <quote>τερματικό</quote>
+ αποτελούνταν από ένα σειριακό εκτυπωτή 10 χαρακτήρων το δευτερόλεπτο
+ και ένα πληκτρολόγιο. Το κεφάλαιο αυτό θα καλύψει κάποιους από τους
+ τρόπους σειριακής επικοινωνίας που χρησιμοποιούνται από το &os;.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Πως να συνδέσετε τερματικά στο &os; σύστημα σας.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε ένα modem για να συνδεθείτε
+ σε απομακρυσμένα συστήματα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να επιτρέψετε σε απομακρυσμένους χρήστες να
+ συνδεθούν στο σύστημα σας μέσω modem.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εκκινήσετε το σύστημα σας μέσω σειριακής
+ κονσόλας.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να ξέρετε πως θα ρυθμίσετε και θα εγκαταστήσετε
+ ένα νέο πυρήνα (<xref linkend="kernelconfig">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να κατανοείτε τις άδειες και διεργασίες του
+ &unix; (<xref linkend="basics">).</para>
+ </listitem>
+
+ <listitem>
+ <para>Να έχετε πρόσβαση στο τεχνικό εγχειρίδιο του υλικού
+ σας (modem ή κάρτα πολλαπλών σειριακών θυρών) που θέλετε να
+ χρησιμοποιήσετε στο &os;.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="serial">
+ <title>Εισαγωγή</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
+ θυρών μετονομάστηκαν από
+ <filename>/dev/cuad<replaceable>N</replaceable></filename> σε
+ <filename>/dev/cuau<replaceable>N</replaceable></filename> και από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
+ τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
+ </warning>
+ <!-- XXX Write me! -->
+
+ <sect2 id="serial-terminology">
+ <title>Ορολογία</title>
+
+ <variablelist>
+ <indexterm><primary>bits-per-second</primary></indexterm>
+ <varlistentry>
+ <term>bps</term>
+ <listitem>
+ <para>Bits Ανά Δευτερόλεπτο &mdash; ο ρυθμός μετάδοσης των
+ δεδομένων</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>DTE</term>
+ <indexterm><primary>DTE</primary></indexterm>
+ <listitem>
+ <para>Data Terminal Equipment, Τερματικός Εξοπλισμός Δεδομένων
+ &mdash; για παράδειγμα, ο υπολογιστής σας</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>DCE</term>
+ <indexterm><primary>DCE</primary></indexterm>
+ <listitem>
+ <para>Data Communications Equipment, Εξοπλισμός Επικοινωνίας
+ Δεδομένων &mdash; το modem σας</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>RS-232</term>
+ <indexterm><primary>RS-232C cables</primary></indexterm>
+ <listitem>
+ <para>Πρότυπο της EIA για το υλικό που χρησιμοποιείται στις
+ σειριακές επικοινωνίες</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Όταν αναφερόμαστε στο ρυθμό μετάδοσης δεδομένων επικοινωνίας,
+ δεν χρησιμοποιούμε πάντοτε τον όρο <quote>baud</quote>. Το baud
+ αναφέρεται στον αριθμό των μεταβάσεων του ηλεκτρικού σήματος στη
+ μονάδα του χρόνου, ενώ κανονικά πρέπει να χρησιμοποιείται το
+ <quote>bps</quote> (bits ανά δευτερόλεπτο) που είναι ο
+ <emphasis>σωστός</emphasis> όρος (η τουλάχιστον δεν φαίνεται να
+ ενοχλεί πολύ τους σχολαστικούς).</para>
+ </sect2>
+
+ <sect2 id="serial-cables-ports">
+ <title>Θύρες και Καλώδια</title>
+
+ <para>Για να συνδέσετε ένα modem ή τερματικό στο &os; σύστημα σας, θα
+ χρειαστείτε μια σειριακή θύρα στον υπολογιστή σας, και το κατάλληλο
+ καλώδιο για να συνδέσετε τη σειριακή συσκευή σας. Αν είστε ήδη
+ εξοικειωμένος με το υλικό σας και το καλώδιο που απαιτείται, μπορείτε
+ με ασφάλεια να παραλείψετε αυτή την ενότητα.</para>
+
+ <sect3 id="term-cables">
+ <title>Καλώδια</title>
+
+ <para>Υπάρχουν αρκετοί διαφορετικοί τύποι σειριακών καλωδίων. Οι δύο
+ πιο κοινοί τύποι για τους σκοπούς μας, είναι τα καλώδια τύπου
+ null-modem και τα τυποποιημένα καλώδια RS-232 (γνωστά και ως
+ <quote>ευθείες</quote>). Η τεκμηρίωση του υλικού σας θα πρέπει
+ να περιγράφει τον τύπο του καλωδίου που απαιτείται.</para>
+
+ <sect4 id="term-cables-null">
+ <title>Καλώδια Τύπου Null-modem</title>
+
+ <indexterm>
+ <primary>null-modem cable</primary>
+ </indexterm>
+
+ <para>Ένα καλώδιο τύπου null-modem, μεταφέρει απευθείας κάποια
+ σήματα όπως η <quote>Γείωση Σήματος (SG)</quote>, αλλά
+ αντιστρέφει τις συνδέσεις σε κάποια άλλα. Για παράδειγμα, ο
+ ακροδέκτης <quote>Μετάδοσης Δεδομένων</quote> (γνωστός και ως
+ <acronym role="Transmit Data">TD</acronym>) της μιας πλευράς,
+ συνδέεται με τον ακροδέκτη <quote>Λήψης Δεδομένων</quote> (γνωστός
+ και ως <acronym role="Receive Data">RD</acronym>) της
+ άλλης.</para>
+
+ <para>Μπορείτε επίσης να φτιάξετε το δικό σας καλώδιο τύπου
+ null-modem (π.χ. για λόγους ποιότητας) για χρήση με τερματικά.
+ Ο παρακάτω πίνακας δείχνει τα
+ <link linkend="serialcomms-signal-names">σήματα</link> του RS-232
+ και τους αριθμούς των ακροδεκτών σε ένα συνδέτη DB-25. Σημειώστε
+ επίσης ότι το πρότυπο ορίζει απευθείας σύνδεση των ακροδεκτών 1
+ της κάθε άκρης. Πρόκειται για τον ακροδέκτη της
+ <emphasis>Προστατευτικής Γείωσης</emphasis>, αλλά συχνά η σύνδεση
+ του παραλείπεται. Μερικά τερματικά λειτουργούν κανονικά
+ χρησιμοποιώντας μόνο τους ακροδέκτες 2, 3 και 7, ενώ κάποιοι άλλα
+ απαιτούν διαφορετικές ρυθμίσεις σε σχέση με τα παραδείγματα που
+ φαίνονται παρακάτω.</para>
+
+ <table frame="none" pgwide="1">
+ <title>Καλώδιο Null-Modem DB-25 σε DB-25</title>
+
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry align="left">Σήμα</entry>
+ <entry align="left">Ακροδέκτης #</entry>
+ <entry></entry>
+ <entry align="left">Ακροδέκτης #</entry>
+ <entry align="left">Σήμα</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>SG</entry>
+ <entry>7</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>7</entry>
+ <entry>SG</entry>
+ </row>
+
+ <row>
+ <entry>TD</entry>
+ <entry>2</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>3</entry>
+ <entry>RD</entry>
+ </row>
+
+ <row>
+ <entry>RD</entry>
+ <entry>3</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>2</entry>
+ <entry>TD</entry>
+ </row>
+
+ <row>
+ <entry>RTS</entry>
+ <entry>4</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>5</entry>
+ <entry>CTS</entry>
+ </row>
+
+ <row>
+ <entry>CTS</entry>
+ <entry>5</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>4</entry>
+ <entry>RTS</entry>
+ </row>
+
+ <row>
+ <entry>DTR</entry>
+ <entry>20</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>6</entry>
+ <entry>DSR</entry>
+ </row>
+
+ <row>
+ <entry>DTR</entry>
+ <entry>20</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>8</entry>
+ <entry>DCD</entry>
+ </row>
+
+ <row>
+ <entry>DSR</entry>
+ <entry>6</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>20</entry>
+ <entry>DTR</entry>
+ </row>
+
+ <row>
+ <entry>DCD</entry>
+ <entry>8</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>20</entry>
+ <entry>DTR</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Παρακάτω φαίνονται δύο διατάξεις που είναι πιο κοινές στις
+ μέρες μας.</para>
+
+ <table frame="none" pgwide="1">
+ <title>Καλώδιο Null-Modem DB-9 σε DB-9</title>
+
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry align="left">Σήμα</entry>
+ <entry align="left">Ακροδέκτης #</entry>
+ <entry></entry>
+ <entry align="left">Ακροδέκτης #</entry>
+ <entry align="left">Σήμα</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>RD</entry>
+ <entry>2</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>3</entry>
+ <entry>TD</entry>
+ </row>
+
+ <row>
+ <entry>TD</entry>
+ <entry>3</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>2</entry>
+ <entry>RD</entry>
+ </row>
+
+ <row>
+ <entry>DTR</entry>
+ <entry>4</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>6</entry>
+ <entry>DSR</entry>
+ </row>
+
+ <row>
+ <entry>DTR</entry>
+ <entry>4</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>1</entry>
+ <entry>DCD</entry>
+ </row>
+
+ <row>
+ <entry>SG</entry>
+ <entry>5</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>5</entry>
+ <entry>SG</entry>
+ </row>
+
+ <row>
+ <entry>DSR</entry>
+ <entry>6</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>4</entry>
+ <entry>DTR</entry>
+ </row>
+
+ <row>
+ <entry>DCD</entry>
+ <entry>1</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>4</entry>
+ <entry>DTR</entry>
+ </row>
+
+ <row>
+ <entry>RTS</entry>
+ <entry>7</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>8</entry>
+ <entry>CTS</entry>
+ </row>
+
+ <row>
+ <entry>CTS</entry>
+ <entry>8</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>7</entry>
+ <entry>RTS</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <table frame="none" pgwide="1">
+ <title>Καλώδιο Null-Modem DB-9 σε DB-25</title>
+
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry align="left">Σήμα</entry>
+ <entry align="left">Ακροδέκτης #</entry>
+ <entry></entry>
+ <entry align="left">Ακροδέκτης #</entry>
+ <entry align="left">Σήμα</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>RD</entry>
+ <entry>2</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>2</entry>
+ <entry>TD</entry>
+ </row>
+
+ <row>
+ <entry>TD</entry>
+ <entry>3</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>3</entry>
+ <entry>RD</entry>
+ </row>
+
+ <row>
+ <entry>DTR</entry>
+ <entry>4</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>6</entry>
+ <entry>DSR</entry>
+ </row>
+
+ <row>
+ <entry>DTR</entry>
+ <entry>4</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>8</entry>
+ <entry>DCD</entry>
+ </row>
+
+ <row>
+ <entry>SG</entry>
+ <entry>5</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>7</entry>
+ <entry>SG</entry>
+ </row>
+
+ <row>
+ <entry>DSR</entry>
+ <entry>6</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>20</entry>
+ <entry>DTR</entry>
+ </row>
+
+ <row>
+ <entry>DCD</entry>
+ <entry>1</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>20</entry>
+ <entry>DTR</entry>
+ </row>
+
+ <row>
+ <entry>RTS</entry>
+ <entry>7</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>5</entry>
+ <entry>CTS</entry>
+ </row>
+
+ <row>
+ <entry>CTS</entry>
+ <entry>8</entry>
+ <entry>συνδέεται στο</entry>
+ <entry>4</entry>
+ <entry>RTS</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <note>
+ <para>Όταν ένας ακροδέκτης σε μια άκρη χρειάζεται να συνδεθεί με
+ δύο ακροδέκτες στην άλλη, συνήθως ενώνουμε τους ακροδέκτες
+ μεταξύ τους στη μια άκρη με ένα μικρό καλώδιο, και
+ χρησιμοποιούμε ένα μακρύτερο καλώδιο για την ένωση με την άλλη
+ άκρη.</para>
+ </note>
+
+ <para>Η παραπάνω διάταξη φαίνεται να είναι η πιο διαδεδομένη. Σε
+ μια παραλλαγή (που εξηγείται στο βιβλίο <emphasis>Το RS-232 με
+ Απλά Βήματα</emphasis>), το SG συνδέεται στο SG, το TD συνδέεται
+ στο RD, τα RTS και CTS συνδέονται στο DCD, το DTR συνδέεται στο
+ DSR, και αντίστροφα.</para>
+ </sect4>
+
+ <sect4 id="term-cables-std">
+ <title>Τυποποιημένα Καλώδια RS-232C</title>
+ <indexterm><primary>RS-232C cables</primary></indexterm>
+
+ <para>Ένα τυποποιημένο σειριακό καλώδιο RS-232C, μεταφέρει όλα
+ τα σήματα απευθείας από τη μια άκρη στην άλλη, χωρίς καμιά αλλαγή
+ στους ακροδέκτες. Αυτό απλά σημαίνει ότι ο ακροδέκτης
+ <quote>Μετάδοσης Δεδομένων (TD)</quote> της μιας άκρης, συνδέεται
+ στον ακροδέκτη <quote>Μετάδοσης Δεδομένων (TD)</quote> της άλλης
+ άκρης. Αυτό είναι και το είδος του καλωδίου που θα
+ χρησιμοποιήσετε για να συνδέσετε ένα modem στο &os; σύστημα σας,
+ και είναι επίσης κατάλληλο για ορισμένα τερματικά.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="term-ports">
+ <title>Θύρες</title>
+
+ <para>Οι σειριακές θύρες είναι οι συσκευές που μεταφέρουν τα δεδομένα
+ μεταξύ του &os; συστήματος και του τερματικού. Η ενότητα αυτή
+ περιγράφει τα είδη των θυρών που υπάρχουν, και πως τα χειρίζεται το
+ &os;.</para>
+
+ <sect4 id="term-portkinds">
+ <title>Είδη Θυρών</title>
+
+ <para>Υπάρχουν διάφορα είδη σειριακών θυρών. Πριν αγοράσετε ή
+ κατασκευάσετε κάποιο καλώδιο, θα πρέπει να βεβαιωθείτε ότι
+ ταιριάζει με τη θύρα του τερματικού και του &os; συστήματος
+ σας.</para>
+
+ <para>Τα περισσότερα τερματικά διαθέτουν θύρες DB-25. Οι προσωπικοί
+ υπολογιστές, συμπεριλαμβανομένων και αυτών που εκτελούν &os;,
+ μπορεί να έχουν θύρες τύπου DB-25 ή DB-9. Αν διαθέτετε κάρτα
+ πολλαπλών σειριακών θυρών στον υπολογιστή σας, μπορεί να διαθέτει
+ θύρες τύπου RJ-12 ή RJ-45.</para>
+
+ <para>Δείτε την τεκμηρίωση που συνοδεύει το υλικό σας, για τις
+ τεχνικές προδιαγραφές της θύρας που χρησιμοποιεί. Συνήθως
+ μπορείτε να βγάλετε συμπέρασμα αν απλώς κοιτάξετε την
+ υποδοχή.</para>
+ </sect4>
+
+ <sect4 id="term-portnames">
+ <title>Ονόματα Θυρών</title>
+
+ <para>Στο &os;, έχετε πρόσβαση σε κάθε σειριακή θύρα μέσω μιας
+ καταχώρισης στον κατάλογο <filename>/dev</filename>. Υπάρχουν
+ δύο διαφορετικά είδη καταχωρίσεων:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Οι θύρες που μπορούν να χρησιμοποιηθούν για είσοδο στο
+ σύστημα, ονομάζονται
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>
+ όπου το <replaceable>N</replaceable> είναι ο αριθμός της
+ θύρας (η αρίθμηση ξεκινάει από το μηδέν). Γενικά, οι θύρες
+ αυτές προορίζονται για σύνδεση με τερματικά. Οι θύρες εισόδου
+ απαιτούν να είναι ενεργό το σήμα ανίχνευσης φέροντος
+ (DCD) στη σειριακή γραμμή, προκειμένου να λειτουργήσουν
+ σωστά.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι θύρες κλήσης ή εξόδου, ονομάζονται
+ <filename>/dev/cuau<replaceable>N</replaceable></filename>.
+ Οι θύρες αυτές δεν χρησιμοποιούνται συνήθως για τερματικά,
+ αλλά για modems. Μπορείτε να χρησιμοποιήσετε αυτή τη θύρα
+ για κάποιο τερματικό που δεν υποστηρίζει το σήμα ανίχνευσης
+ φέροντος.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αν έχετε συνδέσει ένα τερματικό στην πρώτη σειριακή θύρα
+ (που στο &ms-dos; αναφέρεται ως <devicename>COM1</devicename>),
+ θα πρέπει να χρησιμοποιήσετε την συσκευή
+ <filename>/dev/ttyu0</filename> για να αναφερθείτε στο τερματικό.
+ Αν το τερματικό είναι στη δεύτερη σειριακή θύρα (που είναι επίσης
+ γνωστή ως <devicename>COM2</devicename>) χρησιμοποιήστε τη
+ συσκευή <filename>/dev/ttyu1</filename>, κ.ο.κ.</para>
+ </sect4>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του Πυρήνα</title>
+
+ <para>Το &os; από προεπιλογή υποστηρίζει τέσσερις σειριακές θύρες.
+ Στον κόσμο του &ms-dos; οι θύρες αυτές είναι γνωστές ως:
+ <devicename>COM1</devicename>,
+ <devicename>COM2</devicename>,
+ <devicename>COM3</devicename>, και
+ <devicename>COM4</devicename>. Το &os; αυτή τη στιγμή υποστηρίζει
+ <quote>κουτές</quote> σειριακές κάρτες πολλαπλών θυρών, όπως τις
+ BocaBoard 1008 και 2016, όπως και πιο ευφυής κάρτες, όπως αυτές που
+ κατασκευάζονται από την Digiboard και την Stallion Technologies.
+ Ο προεπιλεγμένος πυρήνας ωστόσο, εκτελεί ανίχνευση μόνο για τις
+ τυπικές σειριακές (COM) θύρες.</para>
+
+ <para>Για να δείτε αν ο πυρήνας σας αναγνωρίζει οποιαδήποτε από τις
+ σειριακές θύρες, παρατηρήστε τα μηνύματα κατά τη διάρκεια εκκίνησης
+ του συστήματος, ή χρησιμοποιήστε την εντολή
+ <command>/sbin/dmesg</command> για να ξαναδείτε τα μηνύματα του
+ πυρήνα κατά τη διάρκεια της εκκίνησης. Πιο συγκεκριμένα, αναζητήστε
+ τα μηνύματα που ξεκινούν με τους χαρακτήρες
+ <literal>sio</literal>.</para>
+
+ <tip>
+ <para>Για να δείτε μόνο τα μηνύματα που περιέχουν τη λέξη
+ <literal>sio</literal>, χρησιμοποιήστε την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>/sbin/dmesg | grep 'sio'</userinput></screen>
+ </tip>
+
+ <para>Για παράδειγμα, σε ένα σύστημα με τέσσερις σειριακές θύρες, τα
+ μηνύματα του πυρήνα που σχετίζονται με αυτές φαίνονται
+ παρακάτω:</para>
+
+ <screen>sio0 at 0x3f8-0x3ff irq 4 on isa
+sio0: type 16550A
+sio1 at 0x2f8-0x2ff irq 3 on isa
+sio1: type 16550A
+sio2 at 0x3e8-0x3ef irq 5 on isa
+sio2: type 16550A
+sio3 at 0x2e8-0x2ef irq 9 on isa
+sio3: type 16550A</screen>
+
+ <para>Αν ο πυρήνας σας δεν αναγνωρίζει όλες τις σειριακές σας θύρες,
+ πιθανόν να χρειαστεί να τον ρυθμίσετε χρησιμοποιώντας το αρχείο
+ <filename>/boot/device.hints</filename>. Μπορείτε επίσης να
+ μετατρέψετε σε σχόλιο (ή και να διαγράψετε τελείως) γραμμές που
+ αναφέρονται σε συσκευές που δεν υπάρχουν στο σύστημα σας.</para>
+
+ <para>Παρακαλούμε ανατρέξτε στη σελίδα manual του &man.sio.4; για
+ περισσότερες πληροφορίες σχετικά με τις σειριακές θύρες και τις
+ ρυθμίσεις των καρτών πολλαπλών σειριακών θυρών. Αν χρησιμοποιείτε
+ αρχείο ρυθμίσεων που προέρχεται από κάποια παλαιότερη έκδοση του
+ &os;, θα πρέπει να είστε ιδιαίτερα προσεκτικοί, καθώς κάποιες από
+ τις επιλογές των συσκευών και η σύνταξη τους έχουν αλλάξει στις
+ νεότερες εκδόσεις.</para>
+
+ <note>
+ <para>Το <literal>port IO_COM1</literal> υποκαθιστά το
+ <literal>port 0x3f8</literal>, <literal>IO_COM2</literal> είναι το
+ <literal>0x2f8</literal>, <literal>IO_COM3</literal> είναι το
+ <literal>0x3e8</literal>, και το <literal>IO_COM4</literal> είναι
+ το <literal>0x2e8</literal>. Αυτές είναι και οι πιο κοινές
+ ρυθμίσεις για τις παραπάνω θύρες. Οι γραμμές interrupt 4, 3, 5 και
+ 9 είναι οι πλέον συνηθισμένες στις σειριακές θύρες. Σημειώστε
+ επίσης ότι οι συνηθισμένες σειριακές θύρες <emphasis>δεν</emphasis>
+ μπορούν να μοιράζονται το ίδιο interrupt με κάποια άλλη συσκευή
+ σε υπολογιστές που διαθέτουν δίαυλο τύπου ISA (οι κάρτες πολλαπλών
+ θυρών διαθέτουν ειδικά κυκλώματα που επιτρέπουν σε όλα τα
+ 16550Α που χρησιμοποιεί η κάρτα να λειτουργούν χρησιμοποιώντας
+ μόνο μία ή δύο γραμμές interrupt).</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Ειδικά Αρχεία Συσκευών</title>
+
+ <para>Η πρόσβαση στις περισσότερες συσκευές του πυρήνα, επιτυγχάνεται
+ μέσω <quote>ειδικών αρχείων συσκευών</quote>, τα οποία βρίσκονται
+ στον κατάλογο <filename>/dev/</filename>. Στις συσκευές
+ <devicename>sio</devicename> η πρόσβαση επιτυγχάνεται μέσω των
+ αρχείων
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename> (για
+ συσκευές εισόδου, dial-in) και
+ <filename>/dev/cuau<replaceable>N</replaceable></filename> (για
+ συσκευές εξόδου, call-out). Το &os; παρέχει επίσης συσκευές
+ αρχικοποίησης
+ (<filename>/dev/ttyu<replaceable>N</replaceable>.init</filename> και
+ <filename>/dev/cuau<replaceable>N</replaceable>.init</filename>)
+ και συσκευές κλειδώματος
+ (<filename>/dev/ttyu<replaceable>N</replaceable>.lock</filename> και
+ <filename>/dev/cuau<replaceable>N</replaceable>.lock</filename>).
+ Οι συσκευές αρχικοποίησης χρησιμοποιούνται για την ρύθμιση των
+ αρχικών παραμέτρων επικοινωνίας στη θύρα, κάθε φορά που
+ ανοίγει. Τέτοιες παράμετροι είναι π.χ. το
+ <literal>crtscts</literal> για τα modems που χρησιμοποιούν
+ σηματοδοσία <literal>RTS/CTS</literal> για έλεγχο ροής. Οι συσκευές
+ κλειδώματος χρησιμοποιούνται για να κλειδώνουν κάποιες ρυθμίσεις στις
+ θύρες, ώστε να μην μπορούν να αλλαχθούν από άλλους χρήστες ή
+ προγράμματα. Για πληροφορίες σχετικές με τις ρυθμίσεις τερματικών,
+ την αρχικοποίηση και τα κλειδώματα συσκευών, και τη ρύθμιση
+ παραμέτρων στα τερματικά, δείτε αντίστοιχα τις σελίδες manual
+ &man.termios.4;, &man.sio.4;, και &man.stty.1;.</para>
+ </sect2>
+
+ <sect2 id="serial-hw-config">
+ <title>Ρυθμίσεις Σειριακών Θυρών</title>
+
+ <indexterm><primary><devicename>ttyu</devicename></primary></indexterm>
+ <indexterm><primary><devicename>cuau</devicename></primary></indexterm>
+
+ <para>Η συσκευή
+ <devicename>ttyu<replaceable>N</replaceable></devicename> (ή
+ <devicename>cuau<replaceable>N</replaceable></devicename>) είναι η
+ κανονική συσκευή που μπορείτε να χρησιμοποιήσετε στις εφαρμογές σας.
+ Όταν μια διαδικασία ανοίγει μια συσκευή, χρησιμοποιούνται κάποιες
+ προεπιλεγμένες ρυθμίσεις I/O για το τερματικό. Μπορείτε να
+ δείτε αυτές τις ρυθμίσεις με την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>stty -a -f /dev/ttyu1</userinput></screen>
+
+ <para>Αν αλλάξετε τις ρυθμίσεις σε αυτή τη συσκευή, αυτές θα
+ παραμείνουν μέχρι το κλείσιμο της συσκευής. Όταν ανοιχθεί ξανά, θα
+ έχει επανέλθει στις προεπιλεγμένες ρυθμίσεις. Για να αλλάξετε τις
+ προεπιλεγμένες ρυθμίσεις, μπορείτε να ανοίξετε και να αλλάξετε τις
+ ρυθμίσεις της συσκευής <quote>αρχικής κατάστασης</quote>. Για
+ παράδειγμα, για να ενεργοποιήσετε τη λειτουργία
+ <option>CLOCAL</option>, να ορίσετε επικοινωνία 8bit και έλεγχο ροής
+ μέσω <option>XON/XOFF</option> για τη συσκευή
+ <devicename>ttyu5</devicename>, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>stty -f /dev/ttyu5.init clocal cs8 ixon ixoff</userinput></screen>
+
+ <indexterm>
+ <primary>rc files</primary>
+ <secondary><filename>rc.serial</filename></secondary>
+ </indexterm>
+
+ <para>Η αρχικοποίηση των σειριακών συσκευών για όλο το σύστημα,
+ ελέγχεται από το αρχείο <filename>/etc/rc.d/serial</filename>. Το
+ αρχείο αυτό επηρεάζει τις προεπιλεγμένες ρυθμίσεις των σειριακών
+ συσκευών.</para>
+
+ <para>Για να αποτρέψετε την αλλαγή συγκεκριμένων ρυθμίσεων από κάποια
+ εφαρμογή, αλλάξτε τις ρυθμίσεις της συσκευής
+ <quote>κλειδώματος</quote>. Για παράδειγμα, για να κλειδώσετε την
+ ταχύτητα της συσκευής <devicename>ttyu5</devicename> στα
+ 57600&nbsp;bps, γράψτε:</para>
+
+ <screen>&prompt.root; <userinput>stty -f /dev/ttyu5.lock 57600</userinput></screen>
+
+ <para>Τώρα, μια εφαρμογή που ανοίγει τη θύρα
+ <devicename>ttyu5</devicename> και επιχειρεί να αλλάξει την ταχύτητα
+ της θύρας, θα αναγκαστεί να παραμείνει στα 57600&nbsp;bps.</para>
+
+ <para>Φυσικά, θα πρέπει να ρυθμίσετε τις συσκευές αρχικοποίησης και
+ κλειδώματος, ώστε να είναι εγγράψιμες μόνο από τον λογαριασμό του
+ <username>root</username>.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="term">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Sean</firstname>
+ <surname>Kelly</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ <!-- 28 July 1996 -->
+ </authorgroup>
+ </sect1info>
+
+ <title>Τερματικά</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
+ θυρών μετονομάστηκαν από
+ <filename>/dev/cuad<replaceable>N</replaceable></filename> σε
+ <filename>/dev/cuau<replaceable>N</replaceable></filename> και από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
+ τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
+ </warning>
+
+ <indexterm><primary>terminals</primary></indexterm>
+
+ <para>Τα τερματικά παρέχουν μια βολική και χαμηλού κόστους μέθοδο
+ πρόσβασης στο &os; σύστημα σας, όταν δεν βρίσκεστε μπροστά στην κονσόλα
+ ή σε κάποιο συνδεμένο δίκτυο. Η ενότητα αυτή περιγράφει πως να
+ χρησιμοποιήσετε τερματικά στο &os;.</para>
+
+ <sect2 id="term-uses">
+ <title>Χρήσεις και Είδη Τερματικών</title>
+
+ <para>Τα αρχικά συστήματα &unix; δεν είχαν κονσόλες. Αντίθετα, οι
+ χρήστες εισέρχονταν στο σύστημα και εκτελούσαν τα προγράμματα τους
+ μέσω τερματικών που συνδέονταν στις σειριακές θύρες του υπολογιστή.
+ Αυτό μοιάζει αρκετά με τη χρήση modem και λογισμικού εξομοίωσης
+ τερματικού για σύνδεση σε ένα απομακρυσμένο σύστημα. Με τον τρόπο
+ αυτό μπορείτε βέβαια να εκτελέσετε εργασίες μόνο σε περιβάλλον
+ κειμένου.</para>
+
+ <para>Τα σημερινά PC διαθέτουν κονσόλες ικανές να απεικονίσουν γραφικά
+ πολύ υψηλής ποιότητας, αλλά η ικανότητα σύνδεσης στο μηχάνημα μέσω
+ σειριακής θύρας, υπάρχει ακόμα σχεδόν σε όλα τα σημερινά συστήματα
+ τύπου &unix;. Το &os; δεν αποτελεί εξαίρεση. Συνδέοντας ένα
+ τερματικό σε μια αχρησιμοποίητη σειριακή θύρα, μπορείτε να εισέλθετε
+ στο σύστημα και να εκτελέσετε οποιοδήποτε πρόγραμμα κειμένου το οποίο
+ θα μπορούσατε φυσιολογικά να εκτελέσετε στην κονσόλα ή σε ένα
+ παράθυρο <command>xterm</command> του συστήματος X Window.</para>
+
+ <para>Για χρήση σε επιχειρήσεις, είναι δυνατόν να συνδέσετε πολλά
+ τερματικά σε ένα &os; σύστημα και να τα τοποθετήσετε στις θέσεις
+ εργασίας των υπαλλήλων. Ένας οικιακός χρήστης μπορεί να
+ χρησιμοποιήσει κάποιο παλιό υπολογιστή (π.χ. ένα παλιό IBM PC ή
+ &macintosh;) ως τερματικό ενός πολύ ισχυρότερου υπολογιστή που εκτελεί
+ &os;. Με τον τρόπο αυτό, μπορείτε να μετατρέψετε αυτό που κανονικά
+ θα ήταν σύστημα ενός χρήστη, σε ένα πανίσχυρο σύστημα πολλαπλών
+ χρηστών.</para>
+
+ <para>Στο &os; υπάρχουν τρία είδη τερματικών:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><link linkend="term-dumb">Κουτά Τερματικά</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="term-pcs">PC που λειτουργούν ως τερματικά</link></para>
+ </listitem>
+
+ <listitem>
+ <para><link linkend="term-x">Τερματικά X</link></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οι παρακάτω υποενότητες περιγράφουν καθένα από αυτούς τους
+ τύπους.</para>
+
+ <sect3 id="term-dumb">
+ <title>Κουτά Τερματικά</title>
+
+ <para>Τα κουτά τερματικά είναι εξειδικευμένες συσκευές που επιτρέπουν
+ τη σύνδεση σε υπολογιστές μέσω σειριακών γραμμών. Αποκαλούνται
+ <quote>κουτά</quote> ακριβώς επειδή η μόνη υπολογιστική ισχύ που
+ έχουν είναι για απεικόνιση, αποστολή, και λήψη κειμένου. Δεν
+ μπορείτε να εκτελέσετε προγράμματα σε αυτά. Όλη η ισχύς τους
+ προέρχεται από τον υπολογιστή που θα τα συνδέσετε, και μέσω αυτού
+ μπορείτε να εκτελέσετε συντάκτες κειμένου, μεταγλωττιστές,
+ προγράμματα email, παιχνίδια κ.ο.κ.</para>
+
+ <para>Υπάρχουν εκατοντάδες είδη κουτών τερματικών
+ από αρκετούς κατασκευαστές, όπως το VT-100 της Digital Equipment
+ Corporation και το WY-75 της Wyse. Σχεδόν οποιοσδήποτε τύπος μπορεί
+ να λειτουργήσει με το &os;. Μερικά τερματικά υψηλού κόστους μπορούν
+ επίσης να απεικονίσουν και γραφικά, αλλά αυτή τη δυνατότητα μπορούν
+ να την εκμεταλλευθούν σχετικά λίγα πακέτα λογισμικού.</para>
+
+ <para>Τα κουτά τερματικά είναι δημοφιλή σε περιβάλλοντα εργασίας όπου
+ οι εργαζόμενοι δεν χρειάζονται πρόσβαση σε γραφικές εφαρμογές, όπως
+ αυτές που παρέχονται από το σύστημα X Window.</para>
+ </sect3>
+
+ <sect3 id="term-pcs">
+ <title>PC που Λειτουργούν ως Τερματικά</title>
+
+ <para>Αν ένα <link linkend="term-dumb">κουτό τερματικό</link> έχει
+ ακριβώς την ισχύ που χρειάζεται για να δείχνει, να στέλνει, και να
+ λαμβάνει κείμενο, τότε και κάθε υπολογιστής που σας περισσεύει
+ μπορεί να λειτουργήσει σαν κουτό τερματικό. Το μόνο που χρειάζεστε
+ είναι το σωστό καλώδιο και κάποιο πρόγραμμα
+ <emphasis>εξομοίωσης τερματικού</emphasis> το οποίο θα εκτελείτε
+ στον υπολογιστή αυτό.</para>
+
+ <para>Η παραπάνω διάταξη είναι δημοφιλής για οικιακή χρήση. Αν για
+ παράδειγμα κάποιος δουλεύει στην κονσόλα του συστήματος σας,
+ μπορείτε να εκτελέσετε την εργασία σας (με την προϋπόθεσή ότι είναι
+ μόνο κείμενο) την ίδια στιγμή, χρησιμοποιώντας ένα λιγότερο ισχυρό
+ σύστημα το οποίο συνδέεται στο &os; σας ως τερματικό.</para>
+
+ <para>Υπάρχουν δύο τουλάχιστον βοηθητικά προγράμματα στο βασικό
+ σύστημα του &os; που μπορούν να χρησιμοποιηθούν για να δουλέψετε
+ μέσω σειριακής σύνδεσης: το &man.cu.1; και το &man.tip.1;.</para>
+
+ <para>Για να συνδεθείτε από ένα άλλο μηχάνημα που εκτελεί &os; στη
+ σειριακή σύνδεση ενός άλλου συστήματος, μπορείτε να χρησιμοποιήσετε
+ την παρακάτω εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cu -l <replaceable>serial-port-device</replaceable></userinput></screen>
+
+ <para>Όπου το <quote>serial-port-device</quote> είναι το όνομα του
+ αρχείου συσκευής που αντιπροσωπεύει μια σειριακή θύρα στο σύστημα
+ σας. Αυτά τα αρχεία συσκευών καλούνται
+ <devicename>/dev/cuau<replaceable>N</replaceable></devicename>.</para>
+
+ <para>Το <quote>N</quote> στο όνομα της συσκευής, αντιπροσωπεύει τον
+ αριθμό της σειριακής θύρας.</para>
+
+ <note>
+ <para>Σημειώστε ότι η αρίθμηση των συσκευών στο &os; ξεκινά από το
+ μηδέν, και όχι από το ένα (όπως συμβαίνει για παράδειγμα στα
+ συστήματα που σχετίζονται με το &ms-dos;). Αυτό πρακτικά σημαίνει
+ ότι η θύρα που στο &ms-dos; καλείται
+ <devicename>COM1</devicename> θα είναι συνήθως η
+ <filename>/dev/cuau0</filename> στο &os;.</para>
+ </note>
+
+ <note>
+ <para>Κάποιοι χρήστες προτιμούν να χρησιμοποιούν άλλα προγράμματα
+ που διατίθενται μέσω της Συλλογής των Ports. Τα Ports
+ περιλαμβάνουν αρκετά βοηθητικά προγράμματα με λειτουργίες
+ παρόμοιες με το &man.cu.1; και το &man.tip.1;, για παράδειγμα το
+ <filename role="package">comms/minicom</filename>.</para>
+ </note>
+ </sect3>
+
+ <sect3 id="term-x">
+ <title>Τερματικά X</title>
+
+ <para>Τα τερματικά X είναι τα πιο εξελιγμένα είδη τερματικών που
+ υπάρχουν. Αντί να συνδέονται σε σειριακή θύρα, συνήθως συνδέονται
+ μέσω δικτύου, π.χ. Ethernet. Αντί να περιορίζονται μόνο σε
+ εφαρμογές κειμένου, μπορούν να απεικονίσουν οποιαδήποτε εφαρμογή
+ των X.</para>
+
+ <para>Αναφέραμε τα τερματικά X μόνο για λόγους πληρότητας αυτής της
+ ενότητας. Στο κεφάλαιο αυτό ωστόσο, <emphasis>δεν</emphasis>
+ καλύπτεται η εγκατάσταση, ρύθμιση, και χρήση των
+ τερματικών X.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="term-config">
+ <title>Ρύθμιση</title>
+
+ <para>Η ενότητα αυτή περιγράφει τι χρειάζεται να ρυθμίσετε στο &os;
+ σύστημα σας για να είναι δυνατή η είσοδος σε αυτό μέσω τερματικού.
+ Προϋποθέτει ότι έχετε ήδη ρυθμίσει τον πυρήνα σας να υποστηρίζει τη
+ σειριακή θύρα στην οποία είναι συνδεμένη το τερματικό&mdash;και ότι το
+ έχετε ήδη συνδέσει.</para>
+
+ <para>Στο <xref linkend="boot"> είδαμε ότι η διεργασία
+ <command>init</command> είναι υπεύθυνη για τον έλεγχο των άλλων
+ διεργασιών, και για την αρχικοποίηση κατά την εκκίνηση του συστήματος.
+ Μια από τις εργασίες που εκτελεί η <command>init</command> είναι να
+ διαβάζει το αρχείο <filename>/etc/ttys</filename> και να ξεκινά μια
+ διεργασία <command>getty</command> σε κάθε διαθέσιμο τερματικό.
+ Η διεργασία <command>getty</command> αναλαμβάνει να διαβάσει το
+ όνομα χρήστη και να ξεκινήσει το πρόγραμμα
+ <command>login</command>.</para>
+
+ <para>Για να ρυθμιστούν τα τερματικά στο &os; σύστημα σας, θα πρέπει
+ να εκτελέσετε τα ακόλουθα βήματα ως <username>root</username>:</para>
+
+ <procedure>
+ <step>
+ <para>Προσθέστε μια γραμμή στο <filename>/etc/ttys</filename> με το
+ όνομα της συσκευής όπως φαίνεται στον κατάλογο
+ <filename>/dev</filename>, αν δεν υπάρχει ήδη.</para>
+ </step>
+
+ <step>
+ <para>Καθορίστε ότι θα εκτελείται η
+ <command>/usr/libexec/getty</command> στην θύρα, και επιλέξτε τον
+ κατάλληλο τύπο <replaceable>getty</replaceable> από το αρχείο
+ <filename>/etc/gettytab</filename>.</para>
+ </step>
+
+ <step>
+ <para>Καθορίστε τον προεπιλεγμένο τύπο τερματικού.</para>
+ </step>
+
+ <step>
+ <para>Ενεργοποιήστε τη θύρα θέτοντας την αντίστοιχη επιλογή στο
+ <quote>on</quote>.</para>
+ </step>
+
+ <step>
+ <para>Επιλέξτε αν η θύρα θα είναι ασφαλής με την επιλογή
+ <quote>secure</quote>.</para>
+ </step>
+
+ <step>
+ <para>Εξαναγκάστε την <command>init</command> να διαβάσει ξανά το
+ αρχείο <filename>/etc/ttys</filename>.</para>
+ </step>
+ </procedure>
+
+ <para>Ως προαιρετικό βήμα, μπορείτε να δημιουργήσετε ένα προσαρμοσμένο
+ τύπο <replaceable>getty</replaceable> για να τον χρησιμοποιήσετε στο
+ βήμα 2, στην καταχώριση του <filename>/etc/gettytab</filename>. Στο
+ κεφάλαιο αυτό δεν θα σας εξηγήσουμε πως γίνεται αυτό. Σας προτρέπουμε
+ να διαβάσετε τις σελίδες manual του &man.gettytab.5; και
+ &man.getty.8; για περισσότερες πληροφορίες.</para>
+
+ <sect3 id="term-etcttys">
+ <title>Προσθέτοντας μια Καταχώριση στο
+ <filename>/etc/ttys</filename></title>
+
+ <para>Το αρχείο <filename>/etc/ttys</filename> περιέχει μια λίστα όλων
+ των θυρών του &os; συστήματος σας στις οποίες θέλετε να επιτρέπεται
+ η είσοδος στο σύστημα. Για παράδειγμα, υπάρχει μια καταχώριση σε
+ αυτό το αρχείο για την πρώτη εικονική κονσόλα
+ <devicename>ttyv0</devicename>. Μέσω αυτής της καταχώρισης,
+ μπορείτε να εισέλθετε στο σύστημα από την κονσόλα. Το αρχείο αυτό
+ περιέχει επίσης καταχωρίσεις για άλλες εικονικές κονσόλες, σειριακές
+ θύρες και ψευδό-τερματικά. Για κάποιο τερματικό που είναι συνδεμένο
+ απευθείας σε μια σειριακή θύρα, γράψτε απλώς την καταχώριση της
+ σειριακής συσκευής όπως φαίνεται στον κατάλογο
+ <filename>/dev</filename>, χωρίς να γράψετε και τον κατάλογο
+ <filename>/dev</filename> (για παράδειγμα, η συσκευή
+ <filename>/dev/ttyv0</filename> θα καταχωρισθεί ως
+ <devicename>ttyv0</devicename>).</para>
+
+ <para>Η προεπιλεγμένη εγκατάσταση του &os; περιέχει ένα αρχείο
+ <filename>/etc/ttys</filename> το οποίο υποστηρίζει τις πρώτες
+ τέσσερις σειριακές θύρες: <devicename>ttyu0</devicename> ως και
+ <devicename>ttyu3</devicename>. Αν συνδέσετε τερματικό σε κάποια
+ από αυτές τις θύρες, δεν χρειάζεται να προσθέσετε άλλη
+ καταχώριση.</para>
+
+ <example id="ex-etc-ttys">
+ <title>Προσθήκη Καταχωρίσεων για τα Τερματικά στο
+ <filename>/etc/ttys</filename></title>
+
+ <para>Ας υποθέσουμε ότι θέλουμε να συνδέσουμε δύο τερματικά στο
+ σύστημα: ένα Wyse-50 και ένα παλιό IBM PC 286 στο οποίο εκτελούμε
+ την εφαρμογή <application>Procomm</application> με την οποία
+ εξομοιώνεται ένα τερματικό τύπου VT-100. Συνδέουμε το Wyse στη
+ δεύτερη σειριακή θύρα και το 286 στην έκτη σειριακή θύρα (η οποία
+ βρίσκεται σε μια κάρτα πολλαπλών θυρών). Οι αντίστοιχες
+ καταχωρίσεις στο αρχείο <filename>/etc/ttys</filename> θα μοιάζουν
+ με τις παρακάτω:</para>
+
+ <programlisting>ttyu1<co
+ id="co-ttys-line1col1"> "/usr/libexec/getty std.38400"<co
+ id="co-ttys-line1col2"> wy50<co
+ id="co-ttys-line1col3"> on<co
+ id="co-ttys-line1col4"> insecure<co
+ id="co-ttys-line1col5">
+ttyu5 "/usr/libexec/getty std.19200" vt100 on insecure
+ </programlisting>
+
+ <calloutlist>
+ <callout arearefs="co-ttys-line1col1">
+ <para>Το πρώτο πεδίο, είναι συνήθως το όνομα του ειδικού αρχείου
+ τερματικού όπως φαίνεται στον κατάλογο
+ <filename>/dev</filename>.</para>
+ </callout>
+
+ <callout arearefs="co-ttys-line1col2">
+ <para>Το δεύτερο πεδίο, είναι η εντολή που θα εκτελεστεί για
+ αυτή τη γραμμή, η οποία είναι συνήθως η &man.getty.8;.
+ Η <command>getty</command> αρχικοποιεί και ανοίγει τη γραμμή,
+ ρυθμίζει την ταχύτητα, εμφανίζει την προτροπή για εισαγωγή
+ ονόματος χρήστη, και εκτελεί το πρόγραμμα
+ &man.login.1;.</para>
+
+ <para>Το πρόγραμμα <command>getty</command> δέχεται μια
+ (προαιρετική) παράμετρο στη γραμμή εντολής του, τον τύπο του
+ <replaceable>getty</replaceable>. Ο τύπος του
+ <replaceable>getty</replaceable> καθορίζει τα χαρακτηριστικά
+ της γραμμής του τερματικού, όπως π.χ. το ρυθμό μετάδοσης σε
+ bps και την ισοτιμία (parity). Το πρόγραμμα
+ <command>getty</command> διαβάζει αυτά τα χαρακτηριστικά από
+ το αρχείο <filename>/etc/gettytab</filename>.</para>
+
+ <para>Το αρχείο <filename>/etc/gettytab</filename>
+ περιέχει πολλές καταχωρίσεις για γραμμές τερματικών, τόσο
+ παλιές όσο και καινούριες. Στις περισσότερες από αυτές τις
+ περιπτώσεις, οι καταχωρίσεις που ξεκινούν με το κείμενο
+ <literal>std</literal>, θα λειτουργήσουν για απευθείας
+ συνδεδεμένα τερματικά. Αυτές οι καταχωρίσεις αγνοούν την
+ ισοτιμία. Υπάρχει μια καταχώριση <literal>std</literal> για
+ κάθε ρυθμό μετάδοσης, από 110 ως 115200. Φυσικά, μπορείτε
+ να προσθέσετε τις δικές σας καταχωρίσεις σε αυτό το αρχείο.
+ Η σελίδα manual του &man.gettytab.5; περιέχει περισσότερες
+ πληροφορίες.</para>
+
+ <para>Όταν ρυθμίζετε τον τύπο της
+ <replaceable>getty</replaceable> στο αρχείο
+ <filename>/etc/ttys</filename>, βεβαιωθείτε ότι ταιριάζουν
+ οι αντίστοιχες ρυθμίσεις επικοινωνιών στο τερματικό
+ σας.</para>
+
+ <para>Στο παράδειγμα μας, το Wyse-50 δεν χρησιμοποιεί ισοτιμία
+ και συνδέεται στα 38400&nbsp;bps. Το 286&nbsp;PC δεν
+ χρησιμοποιεί ισοτιμία, και συνδέεται στα
+ 19200&nbsp;bps.</para>
+ </callout>
+
+ <callout arearefs="co-ttys-line1col3">
+ <para>Το τρίτο πεδίο είναι ο τύπος του τερματικού που
+ συνδέεται συνήθως σε αυτή τη γραμμή tty. Για θύρες επιλογικών
+ συνδέσεων (dial-up), η τιμή αυτού του πεδίου συχνά θα είναι
+ <literal>unknown</literal> ή <literal>dialup</literal>, καθώς
+ οι χρήστες θα μπορούν να πραγματοποιήσουν σύνδεση με
+ οποιοδήποτε λογισμικό ή τερματικό. Για άμεσα συνδεμένα
+ τερματικά, ο τύπος τερματικού δεν αλλάζει, έτσι μπορείτε να
+ βάλετε ένα πραγματικό τύπο τερματικού σε αυτό το πεδίο, τον
+ οποίο θα βρείτε στη βάση δεδομένων του &man.termcap.5;.</para>
+
+ <para>Για παράδειγμα, το Wyse-50 χρησιμοποιεί τον πραγματικό
+ τύπο τερματικού του, ενώ το 286 PC που εκτελεί το
+ <application>Procomm</application>, έχει ρυθμιστεί να
+ εξομοιώνει τερματικό τύπου VT-100.</para>
+ </callout>
+
+ <callout arearefs="co-ttys-line1col4">
+ <para>Το τέταρτο πεδίο καθορίζει αν η θύρα θα είναι ενεργή.
+ Τοποθετώντας εδώ τη λέξη <literal>on</literal>,
+ η <command>init</command> θα ξεκινήσει το πρόγραμμα που
+ αναφέρεται στο δεύτερο πεδίο, την <command>getty</command>.
+ Αν βάλετε <literal>off</literal> σε αυτό το πεδίο, δεν θα
+ εκτελεστεί η <command>getty</command>, και έτσι δεν θα μπορεί
+ να γίνει είσοδος στο σύστημα από τη συγκεκριμένη θύρα.</para>
+ </callout>
+
+ <callout arearefs="co-ttys-line1col5">
+ <para>Το τελευταίο πεδίο χρησιμοποιείται για να καθορίσει αν
+ η θύρα είναι ασφαλής. Αν χαρακτηρίσετε μια θύρα ως ασφαλή,
+ σημαίνει ότι την εμπιστεύεστε αρκετά ώστε να επιτρέπετε την
+ είσοδο του <username>root</username> μέσω αυτής
+ (ή οποιουδήποτε λογαριασμού με ID 0). Δεν επιτρέπεται η
+ είσοδος του <username>root</username> σε μια θύρα που έχει
+ χαρακτηριστεί μη-ασφαλής. Σε μη-ασφαλείς θύρες, οι χρήστες
+ πρέπει να εισέρχονται χρησιμοποιώντας ένα συνηθισμένο
+ λογαριασμό χρήστη, και να χρησιμοποιούν την εντολή &man.su.1;
+ ή άλλο αντίστοιχο μηχανισμό για να αποκτήσουν προνόμια
+ υπερχρήστη.</para>
+
+ <para>Σας συνιστούμε ανεπιφύλακτα να χρησιμοποιήσετε τη ρύθμιση
+ <quote>insecure</quote>, ακόμα και για τερματικά που
+ βρίσκονται σε κλειδωμένα δωμάτια. Είναι αρκετά εύκολο να
+ εισέλθετε ως κανονικός χρήστης και να χρησιμοποιήσετε την
+ εντολή <command>su</command> αν χρειάζεστε προνόμια
+ υπερχρήστη.</para>
+ </callout>
+ </calloutlist>
+ </example>
+ </sect3>
+
+ <sect3 id="term-hup">
+ <title>Εξαναγκάστε την <command>init</command> να Ξαναδιαβάσει το
+ <filename>/etc/ttys</filename></title>
+
+ <para>Έχοντας κάνει τις απαραίτητες αλλαγές στο αρχείο
+ <filename>/etc/ttys</filename>, θα πρέπει να στείλετε σήμα SIGHUP
+ (hangup) στην διεργασία <command>init</command> για να την
+ αναγκάσετε να διαβάσει ξανά το αρχείο ρυθμίσεων της. Για
+ παράδειγμα:</para>
+
+ <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
+
+ <note>
+ <para>Η <command>init</command> είναι πάντοτε η πρώτη διεργασία που
+ εκτελείται σε ένα σύστημα, και έτσι θα έχει πάντοτε τον
+ αριθμό διεργασίας (PID) 1.</para>
+ </note>
+
+ <para>Αν όλες οι ρυθμίσεις είναι σωστές, τα καλώδια είναι στη θέση
+ τους, και τα τερματικά είναι ενεργά, θα εκτελεστεί η
+ <command>getty</command> σε κάθε τερματικό, και στο σημείο αυτό
+ θα δείτε την προτροπή εισόδου (login) στις οθόνες των τερματικών
+ σας.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="term-debug">
+ <title>Αντιμετώπιση Προβλημάτων Σύνδεσης</title>
+
+ <para>Ακόμα και αν δώσετε μεγάλη προσοχή στις λεπτομέρειες, πάντα
+ μπορεί να πάει κάτι στραβά όταν ρυθμίζετε ένα τερματικό. Εδώ θα
+ βρείτε μια λίστα από συμπτώματα και συνιστώμενες διορθώσεις.</para>
+
+ <sect3>
+ <title>Δεν Εμφανίζεται Προτροπή Εισόδου (login)</title>
+
+ <para>Βεβαιωθείτε ότι το τερματικό είναι συνδεμένο στο ηλεκτρικό
+ δίκτυο και ενεργοποιημένο. Αν είναι προσωπικός υπολογιστής που
+ ενεργεί ως τερματικό, βεβαιωθείτε ότι εκτελεί λογισμικό εξομοίωσης
+ τερματικού στην σωστή σειριακή θύρα.</para>
+
+ <para>Βεβαιωθείτε ότι το καλώδιο είναι καλά συνδεμένο τόσο στο
+ τερματικό, όσο και στον υπολογιστή που εκτελεί &os;. Βεβαιωθείτε
+ ότι είναι το σωστό είδος καλωδίου.</para>
+
+ <para>Βεβαιωθείτε ότι το τερματικό και το &os; συμφωνούν όσο αφορά
+ τις ρυθμίσεις της ταχύτητας μετάδοσης και ισοτιμίας. Ελέγξτε
+ τη φωτεινότητα και την αντίθεση της οθόνης του τερματικού, και
+ αυξήστε τις αν χρειάζεται. Αν πρόκειται για τερματικό με εκτυπωτή
+ (χωρίς οθόνη), βεβαιωθείτε ότι διαθέτει επάρκεια χαρτιού και
+ μελανιού.</para>
+
+ <para>Βεβαιωθείτε ότι εκτελείται η διαδικασία <command>getty</command>
+ που εξυπηρετεί το τερματικό. Για να δείτε μια λίστα
+ με τις ενεργές διαδικασίες <command>getty</command>, χρησιμοποιήστε
+ την εντολή <command>ps</command>:</para>
+
+ <screen>&prompt.root; <userinput>ps -axww|grep getty</userinput></screen>
+
+ <para>Θα πρέπει να δείτε μια καταχώριση για το τερματικό σας. Για
+ παράδειγμα, η ακόλουθη οθόνη δείχνει ότι η διεργασία
+ <command>getty</command> εκτελείτε στη δεύτερη σειριακή θύρα
+ <devicename>ttyu1</devicename> και χρησιμοποιεί την καταχώριση
+ <literal>std.38400</literal> στο αρχείο
+ <filename>/etc/gettytab</filename>:</para>
+
+ <screen>22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyu1</screen>
+
+ <para>Αν δεν εκτελείται καμιά διεργασία <command>getty</command>,
+ βεβαιωθείτε ότι έχετε ενεργοποιήσει τη θύρα στο
+ <filename>/etc/ttys</filename>. Επίσης θυμηθείτε να εκτελέσετε
+ την εντολή <command>kill -HUP 1</command> μετά την τροποποίηση
+ του αρχείου <filename>ttys</filename>.</para>
+
+ <para>Αν εκτελείται η διεργασία <command>getty</command> αλλά το
+ τερματικό εξακολουθεί να μη δείχνει προτροπή εισόδου, ή αν δείχνει
+ προτροπή αλλά δεν σας επιτρέπει να γράψετε, ίσως το τερματικό σας
+ ή το καλώδιο να μην επιτρέπουν συνεννόηση μέσω υλικού (hardware
+ handshake). Δοκιμάστε να αλλάξετε την καταχώριση στο αρχείο
+ <filename>/etc/ttys</filename> από
+ <literal>std.38400</literal> σε
+ <literal>3wire.38400</literal> (θυμηθείτε να εκτελέσετε την εντολή
+ <command>kill -HUP 1</command> μετά την τροποποίηση του
+ <filename>/etc/ttys</filename>). Η καταχώριση
+ <literal>3wire</literal> είναι αντίστοιχη με την
+ <literal>std</literal>, αλλά αγνοεί το hardware
+ handshaking. Μπορεί επίσης να χρειαστεί να μειώσετε το ρυθμό
+ σηματοδοσίας (baud) και να ενεργοποιήσετε τον έλεγχο ροής μέσω
+ λογισμικού όταν χρησιμοποιείτε το <literal>3wire</literal>,
+ προκειμένου να αποφύγετε υπερχείλιση της προσωρινής μνήμης (buffer
+ overflow).</para>
+ </sect3>
+
+ <sect3>
+ <title>Αν Βλέπετε Σκουπίδια Αντί για Προτροπή Εισόδου</title>
+
+ <para>Βεβαιωθείτε ότι το τερματικό και το &os; συμφωνούν στο ρυθμό
+ bps και στις ρυθμίσεις ισοτιμίας. Ελέγξτε τις διεργασίες
+ <command>getty</command> για να βεβαιωθείτε ότι εκτελείτε το σωστό
+ τύπο <replaceable>getty</replaceable>. Αν αυτό δεν συμβαίνει,
+ επεξεργαστείτε το αρχείο <filename>/etc/ttys</filename> και
+ εκτελέστε την εντολή <command>kill -HUP 1</command>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Οι Χαρακτήρες Εμφανίζονται Διπλοί, το Password Εμφανίζεται
+ κατά την Πληκτρολόγηση</title>
+
+ <para>Αλλάξτε τη ρύθμιση του τερματικού (ή του προγράμματος εξομοίωσης
+ τερματικού) από <quote>half duplex</quote> ή
+ <quote>local echo</quote> σε <quote>full duplex</quote>.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="dialup">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Guy</firstname>
+ <surname>Helmer</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Sean</firstname>
+ <surname>Kelly</surname>
+ <contrib>Προσθήκες από τον </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Υπηρεσία Εισόδου μέσω Επιλογικής Σύνδεσης (dial-in)</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
+ θυρών μετονομάστηκαν από
+ <filename>/dev/cuad<replaceable>N</replaceable></filename> σε
+ <filename>/dev/cuau<replaceable>N</replaceable></filename> και από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
+ τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
+ </warning>
+
+ <indexterm><primary>dial-in service</primary></indexterm>
+
+ <para>Η ρύθμιση του &os; συστήματος σας για είσοδο μέσω επιλογικής
+ σύνδεσης, είναι αρκετά όμοια με τη σύνδεση τερματικών, εκτός από το
+ γεγονός ότι χρησιμοποιούνται modems αντί για τερματικά.</para>
+
+ <sect2>
+ <title>Εξωτερικά και Εσωτερικά Modems</title>
+
+ <para>Τα εξωτερικά modems είναι μάλλον πιο βολικά για επιλογικές
+ κλήσεις, καθώς οι περισσότερες ρυθμίσεις τους μπορούν να
+ αποθηκευθούν μόνιμα στη μή-πτητική μνήμη RAM που διαθέτουν.
+ Τα εξωτερικά modems διαθέτουν συνήθως φωτεινές ενδείξεις που
+ δείχνουν την κατάσταση σημαντικών σημάτων του RS-232. Ίσως τα
+ φωτάκια που αναβοσβήνουν να εντυπωσιάζουν τους επισκέπτες, αλλά
+ είναι επίσης χρήσιμα για να φαίνεται πότε το modem λειτουργεί
+ σωστά.</para>
+
+ <para>Τα εσωτερικά modems συνήθως δεν διαθέτουν αυτή τη μνήμη RAM,
+ και έτσι οι ρυθμίσεις τους περιορίζονται μόνο στην αλλαγή θέσης
+ σε κάποιους διακόπτες ρυθμίσεων (DIP switches). Αν το εσωτερικό σας
+ modem διαθέτει φωτεινές ενδείξεις, μάλλον θα είναι δύσκολο να τις
+ δείτε όταν το κάλυμμα του συστήματος σας είναι στη θέση του.</para>
+
+ <sect3>
+ <title>Modems και Καλώδια</title>
+ <indexterm><primary>modem</primary></indexterm>
+
+ <para>Αν χρησιμοποιείτε εξωτερικό modem, θα χρειαστείτε φυσικά το
+ σωστό καλώδιο. Συνήθως επαρκεί το τυποποιημένο καλώδιο RS-232C,
+ εφόσον διαθέτει συνδέσεις για όλα τα συνηθισμένα
+ σήματα:</para>
+
+ <table frame="none" pgwide="1" id="serialcomms-signal-names">
+ <title>Ονομασίες Σημάτων</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry align="left">Ακρωνύμια</entry>
+ <entry align="left">Ονόματα</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><acronym>RD</acronym></entry>
+ <entry>Λήψη Δεδομένων (Received Data)</entry>
+ </row>
+
+ <row>
+ <entry><acronym>TD</acronym></entry>
+ <entry>Αποστολή Δεδομένων (Transmitted Data)</entry>
+ </row>
+
+ <row>
+ <entry><acronym>DTR</acronym></entry>
+ <entry>Τερματικό Δεδομένων σε Ετοιμότητα (Data Terminal
+ Ready)</entry>
+ </row>
+
+ <row>
+ <entry><acronym>DSR</acronym></entry>
+ <entry>Σύνολο Δεδομένων σε Ετοιμότητα (Data Set
+ Ready)</entry>
+ </row>
+
+ <row>
+ <entry><acronym>DCD</acronym></entry>
+ <entry>Ανίχνευση Φέροντος Σήματος (Data Carrier Detect).
+ Ανίχνευση σύνδεσης της γραμμής RS-232C</entry>
+ </row>
+
+ <row>
+ <entry><acronym>SG</acronym></entry>
+ <entry>Γείωση Σήματος (Signal Ground)</entry>
+ </row>
+
+ <row>
+ <entry><acronym>RTS</acronym></entry>
+ <entry>Αίτηση Αποστολής (Request to Send)</entry>
+ </row>
+
+ <row>
+ <entry><acronym>CTS</acronym></entry>
+ <entry>Ετοιμότητα για Αποστολή (Clear to Send)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>Το &os; χρειάζεται τα σήματα <acronym>RTS</acronym> και
+ <acronym>CTS</acronym> για έλεγχο ροής σε ταχύτητες πάνω από
+ 2400&nbsp;bps, το σήμα <acronym>CD</acronym> για να ανιχνεύει πότε
+ έχει απαντηθεί μια κλήση ή πότε η γραμμή έχει κλείσει, και το σήμα
+ <acronym>DTR</acronym> για να επαναφέρει το modem στην αρχική του
+ κατάσταση μετά τη λήξη μιας σύνδεσης. Μερικά καλώδια δεν διαθέτουν
+ όλα τα απαραίτητα σήματα, έτσι αν έχετε προβλήματα με τον
+ τερματισμό της συνεδρίας εισόδου με το κλείσιμο της γραμμής, πιθανόν
+ να ευθύνεται το καλώδιο που χρησιμοποιείτε.</para>
+
+ <para>Όπως και άλλα λειτουργικά συστήματα τύπου &unix;, το &os;
+ χρησιμοποιεί τα σήματα του υλικού για να αντιληφθεί πότε έχει
+ απαντηθεί μια κλήση, καθώς και για τον τερματισμό της και την
+ επαναφορά του modem στην αρχική του κατάσταση μετά το τέλος της.
+ Το &os; αποφεύγει να στέλνει εντολές στο modem ή να παρακολουθεί
+ αναφορές κατάστασης από αυτό. Αν είστε εξοικειωμένος με συνδέσεις
+ modems σε BBS (Bulletin Board Systems) που βασίζονται σε PC, αυτό
+ μπορεί να σας φανεί άβολο.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Κυκλώματα Σειριακής Διασύνδεσης</title>
+
+ <para>Το &os; υποστηρίζει τα κυκλώματα επικοινωνιών που βασίζονται
+ στα NS8250, NS16450, NS16550, και NS16550A και EIA RS-232C
+ (CCITT V.24). Οι συσκευές 8250 και 16450 έχουν ενδιάμεση μνήμη
+ (buffer) μεγέθους ενός χαρακτήρα. Η συσκευή 16550 διαθέτει
+ ενδιάμεση μνήμη 16 χαρακτήρων, η οποία επιτρέπει την καλύτερη
+ απόδοση της. (Λόγω προβλημάτων στη σχεδίαση του 16550, δεν είναι
+ δυνατή η χρήση αυτής της μνήμης, αν είναι δυνατόν χρησιμοποιήστε
+ τα 16550Α). Καθώς οι συσκευές που διαθέτουν ενδιάμεση μνήμη ενός
+ χαρακτήρα απαιτούν περισσότερη εργασία από το λειτουργικό σύστημα
+ σε σχέση με αυτές που διαθέτουν 16 χαρακτήρες, συνίστανται ιδιαίτερα
+ οι συσκευές που βασίζονται στο 16550Α. Αν το σύστημα σας έχει πολλές
+ ενεργές σειριακές πόρτες, ή πρόκειται να λειτουργήσει κάτω από
+ βαρύ φόρτο, οι κάρτες που βασίζονται στο 16550A είναι καλύτερες,
+ καθώς παρέχουν επικοινωνία με μικρότερο ρυθμό σφαλμάτων.</para>
+ </sect2>
+
+ <sect2>
+ <title>Γρήγορη Επισκόπηση</title>
+
+ <indexterm><primary>getty</primary></indexterm>
+ <para>Όπως και με τα τερματικά, η <command>init</command> εκτελεί μια
+ διεργασία <command>getty</command> για κάθε σειριακή θύρα που έχει
+ ρυθμιστεί για εισερχόμενες επιλογικές συνδέσεις. Για παράδειγμα, αν
+ έχετε συνδέσει ένα modem στη θύρα <filename>/etc/ttyu0</filename>,
+ η εντολή <command>ps ax</command> θα δείξει κάτι σαν το
+ παρακάτω:</para>
+
+ <screen> 4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyu0</screen>
+
+ <para>Όταν κάποιος χρήστης καλέσει στη γραμμή αυτή και το modem
+ συνδεθεί, ενεργοποιείται από το modem η γραμμή <acronym>CD</acronym>.
+ Ο πυρήνας παρατηρεί ότι έχει ανιχνευθεί φέρον σήμα, και ολοκληρώνει
+ τη διαδικασία ανοίγματος της θύρας από το modem.
+ To <command>getty</command> στέλνει μια προτροπή
+ <prompt>login:</prompt> στην από πριν καθορισμένη αρχική ταχύτητα της
+ θύρας. Το <command>getty</command> παρακολουθεί για να δει αν
+ λαμβάνονται έγκυροι χαρακτήρες, και στην τυπική ρύθμιση, αν ανακαλύψει
+ ότι λαμβάνει σκουπίδια (πιθανώς λόγω διαφοράς στην ταχύτητα σύνδεσης
+ του modem σε σχέση με την ταχύτητα του <command>getty</command>),
+ προσπαθεί να ρυθμίσει την ταχύτητα της γραμμής μέχρι να λάβει
+ φυσιολογικούς χαρακτήρες.</para>
+
+ <indexterm>
+ <primary><command>/usr/bin/login</command></primary>
+ </indexterm>
+ <para>Αφού ο χρήστης εισάγει τον κωδικό του, το <command>getty</command>
+ εκτελεί το <filename>/usr/bin/login</filename>, το οποίο και
+ ολοκληρώνει τη διαδικασία εισόδου, ζητώντας από τον χρήστη τον κωδικό
+ του, και ξεκινώντας έπειτα το κέλυφος του.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αρχεία Ρυθμίσεων</title>
+
+ <para>Υπάρχουν τρία αρχεία ρυθμίσεων συστήματος στον κατάλογο
+ <filename>/etc</filename>, τα οποία πιθανώς θα χρειαστεί να
+ επεξεργαστείτε για να επιτρέψετε την είσοδο μέσω επιλογικής σύνδεσης
+ στο &os; σύστημα σας. Το πρώτο αρχείο είναι το
+ <filename>/etc/gettytab</filename>, το οποίο περιέχει πληροφορίες
+ ρύθμισης για τον δαίμονα <filename>/usr/libexec/getty</filename>
+ Το δεύτερο αρχείο είναι το <filename>/etc/ttys</filename> το οποίο
+ περιέχει πληροφορίες που γνωστοποιούν στην
+ <filename>/sbin/init</filename> σε ποιες συσκευές
+ <filename>tty</filename> θα πρέπει να εκτελούνται διεργασίες
+ <command>getty</command>. Τέλος, μπορείτε να βάλετε εντολές
+ αρχικοποίησης της θύρας στο script
+ <filename>/etc/rc.d/serial</filename>.</para>
+
+ <para>Υπάρχουν δύο <quote>σχολές</quote> όσο αφορά τη χρήση modems για
+ είσοδο σε ένα σύστημα &unix;. Η πρώτη, προτιμά να ρυθμίζει τα modems
+ και τα συστήματα με τέτοιο τρόπο, ώστε άσχετα με τι ταχύτητα
+ συνδέεται ο απομακρυσμένος χρήστης, η τοπική σύνδεση υπολογιστή
+ &mdash; modem μέσω του RS-232C να έχει πάντα την ίδια κλειδωμένη
+ ταχύτητα. Το όφελος μιας τέτοιας ρύθμισης είναι ότι ο απομακρυσμένος
+ χρήστης βλέπει πάντα άμεσα την προτροπή εισόδου. Το μειονέκτημα,
+ είναι ότι το σύστημα δεν γνωρίζει την πραγματική ταχύτητα σύνδεσης
+ του χρήστη, και έτσι προγράμματα πλήρους οθόνης όπως το
+ <application>Emacs</application>, δεν γνωρίζουν πως να ρυθμίσουν την
+ ταχύτητα ανανέωσης της οθόνης τους ώστε να αντιμετωπίσουν καλύτερα
+ τις αργές συνδέσεις.</para>
+
+ <para>Η άλλη σχολή ρυθμίζει τη διεπαφή RS-232 του modem να αλλάζει
+ ταχύτητα, ώστε να ακολουθεί την ταχύτητα σύνδεσης του απομακρυσμένου
+ χρήστη. Για παράδειγμα, συνδέσεις τύπου V.32bis (14.4&nbsp;Kbps) στο
+ modem, μπορεί να το κάνουν να μεταβάλλει την ταχύτητα σύνδεσης στο
+ RS-232 σε 19.2&nbsp;Kbps, ενώ συνδέσεις ταχύτητας 2400&nbsp;bps θα
+ μεταβάλλουν αντίστοιχα την ταχύτητα της διεπαφής σε 2400&nbsp;bps.
+ Επειδή η <command>getty</command> δεν αναγνωρίζει με κάποιο τρόπο
+ την ταχύτητα σύνδεσης που αναφέρει το modem, δίνει την πρώτη προτροπή
+ <prompt>login:</prompt> στην αρχικά ρυθμισμένη ταχύτητα, και εξετάζει
+ τους χαρακτήρες που λαμβάνει ως απάντηση. Αν ο χρήστης δει σκουπίδια,
+ θεωρείται ότι γνωρίζει ότι πρέπει να πιέσει το <keycap>Enter</keycap>
+ μέχρι να πάρει μια προτροπή που μπορεί να αναγνωρίσει. Αν οι ρυθμοί
+ δεδομένων δεν ταιριάζουν, η <command>getty</command> βλέπει οτιδήποτε
+ γράφει ο χρήστης ως <quote>σκουπίδια</quote>, και έτσι δοκιμάζει την
+ επόμενη ταχύτητα και στέλνει ξανά την προτροπή
+ <prompt>login:</prompt>. Η διαδικασία μπορεί να επαναληφθεί όσες
+ φορές χρειάζεται, αλλά συνήθως χρειάζονται μόνο μια-δυο προσπάθειες
+ μέχρι ο χρήστης να λάβει κανονική προτροπή. Προφανώς αυτή η ακολουθία
+ εισόδου δεν είναι τόσο καθαρή όπως η προηγούμενη μέθοδος
+ <quote>κλειδωμένης ταχύτητας</quote>, αλλά κάποιος χρήστης που
+ βρίσκεται σε γραμμή χαμηλής ταχύτητας, μάλλον θα λάβει καλύτερη
+ απόκριση σε εφαρμογές πλήρους οθόνης.</para>
+
+ <para>Σε αυτή την ενότητα θα προσπαθήσουμε να σας δώσουμε πληροφορίες
+ και για τους δύο τύπους ρυθμίσεων, αλλά θεωρούμε καλύτερο το είδος
+ σύνδεσης όπου η ταχύτητα υπολογιστή &mdash; modem ακολουθεί την
+ ταχύτητα της σύνδεσης.</para>
+
+ <sect3>
+ <title><filename>/etc/gettytab</filename></title>
+
+ <indexterm>
+ <primary><filename>/etc/gettytab</filename></primary>
+ </indexterm>
+ <para>Το <filename>/etc/gettytab</filename> είναι ένα αρχείο τύπου
+ &man.termcap.5; με πληροφορίες ρύθμισης για την &man.getty.8;.
+ Παρακαλούμε δείτε τη σελίδα manual &man.gettytab.5; για πιο πλήρεις
+ πληροφορίες σχετικά με τη μορφή του αρχείου και την λίστα με τις
+ δυνατότητες του.</para>
+
+ <sect4>
+ <title>Ρύθμιση για Κλειδωμένη Ταχύτητα</title>
+
+ <para>Αν πρόκειται να κλειδώσετε την επικοινωνία του modem
+ σας σε μια συγκεκριμένη ταχύτητα, κατά πάσα πιθανότητα δεν θα
+ χρειαστεί να κάνετε αλλαγές στο
+ <filename>/etc/gettytab</filename>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Ρύθμιση για Μεταβλητή Ταχύτητα</title>
+
+ <para>θα χρειαστεί να προσθέσετε μια καταχώριση στο
+ <filename>/etc/gettytab</filename> για να δώσετε πληροφορίες στην
+ <command>getty</command> σχετικά με τις ταχύτητες που επιθυμείτε
+ να χρησιμοποιήσετε στο modem σας. Αν έχετε ένα modem
+ 2400&nbsp;bps, μπορείτε πιθανόν να χρησιμοποιήσετε
+ την καταχώριση <literal>D2400</literal>.</para>
+
+ <programlisting>#
+# Fast dialup terminals, 2400/1200/300 rotary (can start either way)
+#
+D2400|d2400|Fast-Dial-2400:\
+ :nx=D1200:tc=2400-baud:
+3|D1200|Fast-Dial-1200:\
+ :nx=D300:tc=1200-baud:
+5|D300|Fast-Dial-300:\
+ :nx=D2400:tc=300-baud:</programlisting>
+
+ <para>Αν έχετε modem υψηλότερης ταχύτητας, πιθανόν να χρειαστεί να
+ προσθέσετε μια καταχώριση στο <filename>/etc/gettytab</filename>.
+ Παρακάτω φαίνεται μια καταχώριση που μπορεί να χρησιμοποιηθεί για
+ modem 14.4&nbsp;Kbps με μέγιστη ταχύτητα σειριακής θύρας
+ 19.2&nbsp;Kbps:</para>
+
+ <programlisting>#
+# Additions for a V.32bis Modem
+#
+um|V300|High Speed Modem at 300,8-bit:\
+ :nx=V19200:tc=std.300:
+un|V1200|High Speed Modem at 1200,8-bit:\
+ :nx=V300:tc=std.1200:
+uo|V2400|High Speed Modem at 2400,8-bit:\
+ :nx=V1200:tc=std.2400:
+up|V9600|High Speed Modem at 9600,8-bit:\
+ :nx=V2400:tc=std.9600:
+uq|V19200|High Speed Modem at 19200,8-bit:\
+ :nx=V9600:tc=std.19200:</programlisting>
+
+ <para>Αυτό θα έχει ως αποτέλεσμα συνδέσεις 8bit χωρίς
+ ισοτιμία.</para>
+
+ <para>Το παραπάνω παράδειγμα, ξεκινά το ρυθμό επικοινωνίας στα
+ 19.2&nbsp;Kbps (για μια σύνδεση V.32bis), και έπειτα δοκιμάζει
+ κυκλικά στα 9600&nbsp;bps (για V.32), 2400&nbsp;bps,
+ 1200&nbsp;bps, 300&nbsp;bps, και πίσω στα 19.2&nbsp;Kbps.
+ Αυτή η κυκλική εναλλαγή ρυθμού επιτυγχάνεται με την ικανότητα
+ <literal>nx=</literal> (<quote>next table</quote>). Κάθε μια
+ από τις γραμμές χρησιμοποιεί μια καταχώριση
+ <literal>tc=</literal> (<quote>table continuation</quote>)
+ για να βρει τις υπόλοιπες <quote>τυποποιημένες</quote> ρυθμίσεις
+ για κάποιο συγκεκριμένο ρυθμό μετάδοσης δεδομένων.</para>
+
+ <para>Αν έχετε modem 28.8&nbsp;Kbps ή/και θέλετε να επωφεληθείτε
+ από την συμπίεση ενός modem 14.4&nbsp;Kbps, θα πρέπει να
+ χρησιμοποιήσετε ρυθμό επικοινωνίας μεγαλύτερο από 19.2&nbsp;Kbps.
+ Παρακάτω φαίνεται ένα παράδειγμα μια καταχώρισης στο
+ <filename>gettytab</filename> που ξεκινάει από τα
+ 57.6&nbsp;Kbps:</para>
+
+ <programlisting>#
+# Additions for a V.32bis or V.34 Modem
+# Starting at 57.6 Kbps
+#
+vm|VH300|Very High Speed Modem at 300,8-bit:\
+ :nx=VH57600:tc=std.300:
+vn|VH1200|Very High Speed Modem at 1200,8-bit:\
+ :nx=VH300:tc=std.1200:
+vo|VH2400|Very High Speed Modem at 2400,8-bit:\
+ :nx=VH1200:tc=std.2400:
+vp|VH9600|Very High Speed Modem at 9600,8-bit:\
+ :nx=VH2400:tc=std.9600:
+vq|VH57600|Very High Speed Modem at 57600,8-bit:\
+ :nx=VH9600:tc=std.57600:</programlisting>
+
+ <para>Αν έχετε αργό επεξεργαστή ή μεγάλο φορτίο, και το σύστημα
+ σας δεν διαθέτει σειριακές θύρες που να βασίζονται στο 16550Α,
+ ίσως λάβετε λάθη <errorname>sio</errorname>
+ <quote>silo</quote> στα 57.6&nbsp;Kbps.</para>
+ </sect4>
+ </sect3>
+
+ <sect3 id="dialup-ttys">
+ <title><filename>/etc/ttys</filename></title>
+ <indexterm>
+ <primary><filename>/etc/ttys</filename></primary>
+ </indexterm>
+
+ <para>Έχουμε ήδη καλύψει τη ρύθμιση του αρχείου
+ <filename>/etc/ttys</filename> στο <xref linkend="ex-etc-ttys">.
+ Η ρύθμιση για modems είναι παρόμοια, αλλά πρέπει να δώσουμε
+ διαφορετικό όρισμα στην <command>getty</command> και να καθορίσουμε
+ διαφορετικό τύπο τερματικού. Η γενική μορφή τόσο για κλειδωμένη
+ όσο και για μεταβλητή ταχύτητα είναι η παρακάτω:</para>
+
+ <programlisting>ttyu0 "/usr/libexec/getty <replaceable>xxx</replaceable>" dialup on</programlisting>
+
+ <para>Το πρώτο πεδίο στην παραπάνω γραμμή είναι το ειδικό αρχείο
+ συσκευής για αυτή την καταχώριση &mdash; το
+ <devicename>ttyu0</devicename> αντιστοιχεί στο αρχείο
+ <filename>/dev/ttyu0</filename> το οποίο και θα παρακολουθεί η
+ <command>getty</command>. Το δεύτερο πεδίο,
+ <literal>"/usr/libexec/getty
+ <replaceable>xxx</replaceable>"</literal>
+ (το <replaceable>xxx</replaceable> θα έχει την αρχική τιμή
+ ικανότητας του <filename>gettytab</filename>), είναι η διεργασία που
+ θα εκτελέσει η <command>init</command> στη συσκευή. Το τρίτο πεδίο,
+ <literal>dialup</literal>, είναι ο προεπιλεγμένος τύπος τερματικού.
+ Η τέταρτη παράμετρος, <literal>on</literal>, δείχνει στην
+ <command>init</command> ότι η γραμμή είναι σε λειτουργική
+ κατάσταση. Μπορεί να υπάρχει και μια πέμπτη παράμετρος, η
+ <literal>secure</literal>, αλλά θα πρέπει να χρησιμοποιείται μόνο
+ για τερματικά στα οποία η φυσική πρόσβαση είναι ασφαλής (όπως είναι
+ η κονσόλα του συστήματος).</para>
+
+ <para>Ο προεπιλεγμένος τύπος τερματικού (<literal>dialup</literal> στο
+ παραπάνω παράδειγμα) μπορεί να αλλάξει ανάλογα με τις προτιμήσεις
+ σας. Το <literal>dialup</literal> είναι ο παραδοσιακός τύπος
+ τερματικού για επιλογικές γραμμές. Οι χρήστες μπορούν έτσι να
+ προσαρμόζουν τα scripts σύνδεσης τους ώστε να αναγνωρίζουν το
+ <literal>dialup</literal> και να ρυθμίζουν αυτόματα τον τύπο
+ τερματικού. Ωστόσο, είναι μάλλον ευκολότερο να καθορίσετε το
+ <literal>vt102</literal> ως τον προεπιλεγμένο τύπο τερματικού,
+ καθώς οι χρήστες χρησιμοποιούν συνήθως εξομοίωση VT102 στα
+ απομακρυσμένα τους συστήματα.</para>
+
+ <para>Αφού κάνετε τις αλλαγές στο <filename>/etc/ttys</filename>,
+ μπορείτε να στείλετε στη διεργασία <command>init</command> ένα σήμα
+ <acronym>HUP</acronym> για να ξαναδιαβάσει το αρχείο. Μπορείτε να
+ χρησιμοποιήσετε την παρακάτω εντολή για αυτό το σκοπό:
+
+ <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
+
+ Αν αυτή είναι η πρώτη φορά που ρυθμίζετε το σύστημα σας, ίσως
+ θέλετε να περιμένετε μέχρι να ολοκληρώσετε πλήρως τη σύνδεση και
+ ρύθμιση του modem σας πριν στείλετε σήμα στην
+ <command>init</command>.</para>
+
+ <sect4>
+ <title>Ρύθμιση για Κλειδωμένη Ταχύτητα</title>
+
+ <para>Για λειτουργία σε κλειδωμένη ταχύτητα, θα πρέπει η καταχώριση
+ σας στο <filename>ttys</filename> να παρέχει στην
+ <command>getty</command> μια καταχώριση σταθερής ταχύτητας. Για
+ ένα modem με ταχύτητα θύρας κλειδωμένη στα 19.2&nbsp;Kbps,
+ η καταχώριση <filename>ttys</filename> θα μοιάζει με την
+ παρακάτω:</para>
+
+ <programlisting>ttyu0 "/usr/libexec/getty std.19200" dialup on</programlisting>
+
+ <para>Αν το modem σας είναι κλειδωμένο σε διαφορετικό ρυθμό
+ δεδομένων, αντικαταστήστε με την κατάλληλη τιμή το
+ <literal>std.19200</literal> στην καταχώριση
+ <literal>std.<replaceable>speed</replaceable></literal>.
+ Βεβαιωθείτε ότι χρησιμοποιείτε ένα έγκυρο τύπο, όπως ορίζεται στο
+ <filename>/etc/gettytab</filename>.</para>
+ </sect4>
+
+ <sect4>
+ <title>Ρύθμιση για Μεταβλητή Ταχύτητα</title>
+
+ <para>Σε μια τέτοια ρύθμιση, η καταχώριση σας για το
+ <filename>ttys</filename> θα πρέπει να αναφέρεται στην αρχική
+ <quote>auto-baud</quote> (sic) καταχώριση του
+ <filename>/etc/gettytab</filename>. Για παράδειγμα, αν προσθέσατε
+ την παραπάνω συνιστώμενη καταχώριση για modem με μεταβλητή
+ ταχύτητας σειριακής, και με αρχική ταχύτητα τα 19.2&nbsp;Kbps
+ (την καταχώριση <filename>gettytab</filename> που περιέχει ως
+ σημείο εκκίνησης το <literal>V19200</literal>), η καταχώριση σας
+ στο <filename>ttys</filename> θα μοιάζει με την παρακάτω:</para>
+
+ <programlisting>ttyu0 "/usr/libexec/getty V19200" dialup on</programlisting>
+ </sect4>
+ </sect3>
+
+ <sect3>
+ <title><filename>/etc/rc.d/serial</filename></title>
+ <indexterm>
+ <primary>rc files</primary>
+ <secondary><filename>rc.serial</filename></secondary>
+ </indexterm>
+
+ <para>Τα modems υψηλής ταχύτητας, όπως τα V.32, V.32bis και V.34,
+ απαιτούν έλεγχο ροής μέσω υλικού (<literal>RTS/CTS</literal>).
+ Μπορείτε να προσθέσετε εντολές <command>stty</command> στο
+ <filename>/etc/rc.d/serial</filename> για να θέσετε στον πυρήνα του
+ &os; την κατάλληλη παράμετρο έλεγχου ροής μέσω υλικού των θυρών
+ modem.</para>
+
+ <para>Για παράδειγμα, για να θέσετε την επιλογή
+ <literal>termios</literal> στην τιμή <varname>crtscts</varname>
+ στις συσκευές αρχικοποίησης της δεύτερης σειριακής θύρας
+ (<devicename>COM2</devicename>) για επιλογικές κλήσεις εισόδου και
+ εξόδου, θα πρέπει να προσθέσετε τις παρακάτω γραμμές στο αρχείο
+ <filename>/etc/rc.d/serial</filename>:</para>
+
+ <programlisting># Serial port initial configuration
+stty -f /dev/ttyu1.init crtscts
+stty -f /dev/cuau1.init crtscts</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Ρυθμίσεις Μνήμης</title>
+
+ <para>Αν έχετε ένα modem στο οποίο μπορείτε να αποθηκεύσετε τις
+ παραμέτρους μόνιμα στην μη-πτητική RAM που διαθέτει, θα πρέπει να
+ χρησιμοποιήσετε ένα πρόγραμμα τερματικού (όπως το
+ <application>Telix</application> μέσω του &ms-dos; ή του
+ <command>tip</command> στο &os;) για να ρυθμίσετε τις παραμέτρους.
+ Συνδεθείτε στο modem χρησιμοποιώντας την ίδια αρχική ταχύτητα
+ επικοινωνίας με αυτή που έχετε δηλώσει ως αρχική ταχύτητα στην
+ <command>getty</command>, και ρυθμίστε τις παραμέτρους στη μνήμη του
+ ώστε να ταιριάζουν με τις παρακάτω απαιτήσεις:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το σήμα <acronym>CD</acronym> θα είναι ενεργό όταν το modem
+ είναι συνδεμένο</para>
+ </listitem>
+
+ <listitem>
+ <para>Το σήμα <acronym>DTR</acronym> θα είναι ενεργό κατά τη
+ λειτουργία. Απενεργοποίηση του DTR κλείνει τη γραμμή και
+ επαναφέρει το modem στην αρχική του κατάσταση.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <acronym>CTS</acronym> θα χρησιμοποιείται για έλεγχο
+ ροής μεταδιδόμενων δεδομένων</para>
+ </listitem>
+
+ <listitem>
+ <para>Ο έλεγχος ροής <acronym>XON/XOFF</acronym> θα είναι
+ ανενεργός</para>
+ </listitem>
+
+ <listitem>
+ <para>Το <acronym>RTS</acronym> θα χρησιμοποιείται για έλεγχο ροής
+ ληφθέντων δεδομένων</para>
+ </listitem>
+
+ <listitem>
+ <para>Ήσυχη λειτουργία (Quiet mode, χωρίς αποστολή κωδικών
+ αποτελεσμάτων)</para>
+ </listitem>
+
+ <listitem>
+ <para>Δεν θα γίνεται echo των εντολών</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Θα πρέπει να διαβάσετε την τεκμηρίωση του modem σας για να βρείτε
+ τις εντολές που πρέπει να αποστείλετε. Ίσως επίσης χρειαστεί να
+ αλλάξετε τη θέση κάποιων ρυθμιστικών διακοπτών (dip switches).</para>
+
+ <para>Για παράδειγμα, για να ρυθμίσετε τις παραπάνω παραμέτρους
+ σε ένα εξωτερικό modem &usrobotics; &sportster; 14,400, θα έπρεπε να
+ στείλετε τις παρακάτω εντολές στο modem:</para>
+
+ <programlisting>ATZ
+AT&amp;C1&amp;D2&amp;H1&amp;I0&amp;R2&amp;W</programlisting>
+
+ <para>Μπορείτε με την ευκαιρία να ρυθμίσετε και άλλους παραμέτρους του
+ modem, όπως για το αν θα χρησιμοποιείται το πρωτόκολλο V.42bis ή
+ συμπίεση MNP5.</para>
+
+ <para>Το εξωτερικό modem &usrobotics; &sportster; 14,400 διαθέτει επίσης
+ και κάποιους ρυθμιστικούς διακόπτες που πρέπει να ρυθμιστούν. Για
+ άλλα modem, ίσως μπορείτε να χρησιμοποιήσετε αυτές τις ρυθμίσεις
+ ως αναφορά:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Διακόπτης 1: Άνω Θέση &mdash; Κανονική λειτουργία DTR </para>
+ </listitem>
+
+ <listitem>
+ <para>Διακόπτης 2: N/A (Κωδικός Αποτελέσματος ως Κείμενο/Κωδικός
+ Αποτελέσματος ως Αριθμός)</para>
+ </listitem>
+
+ <listitem>
+ <para>Διακόπτης 3: Άνω θέση &mdash; Χωρίς Κωδικό
+ Αποτελέσματος</para>
+ </listitem>
+
+ <listitem>
+ <para>Διακόπτης 4: Κάτω θέση &mdash; Χωρίς echo και offline
+ εντολές</para>
+ </listitem>
+
+ <listitem>
+ <para>Διακόπτης 5: Άνω θέση &mdash; Αυτόματη Απάντηση</para>
+ </listitem>
+
+ <listitem>
+ <para>Διακόπτης 6: Άνω θέση &mdash; Φυσιολογική Ανίχνευση Φέροντος
+ Σήματος</para>
+ </listitem>
+
+ <listitem>
+ <para>Διακόπτης 7: Άνω θέση &mdash; Φόρτωση Προεπιλογών από
+ NVRAM (μη-πτητική μνήμη)</para>
+ </listitem>
+
+ <listitem>
+ <para>Διακόπτης 8: N/A (Έξυπνος/Κουτός Τρόπος Λειτουργίας)</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Θα πρέπει να απενεργοποιήσετε ή να απομονώσετε τους κωδικούς
+ αποτελεσμάτων στο modem, για να αποφύγετε προβλήματα που μπορούν να
+ δημιουργηθούν αν η <command>getty</command> από λάθος στείλει
+ προτροπή <prompt>login:</prompt> στο modem ενώ αυτό βρίσκεται σε
+ κατάσταση εντολών. Στην περίπτωση αυτή, το modem μπορεί να αναπαράγει
+ ξανά την εντολή (echo) ή να στείλει κάποιο κωδικό αποτελέσματος.
+ Αυτό μπορεί να έχει ως αποτέλεσμα μια μακρόχρονη και χαζή συνομιλία
+ μεταξύ του modem και της <command>getty</command>.</para>
+
+ <sect3>
+ <title>Ρυθμίσεις για Κλειδωμένη Ταχύτητα</title>
+
+ <para>Για λειτουργία σε κλειδωμένη ταχύτητα, θα χρειαστεί να
+ ρυθμίσετε το modem να διατηρεί σταθερή ταχύτητα υπολογιστή &mdash;
+ modem, άσχετα με την ταχύτητα επικοινωνίας της επιλογικής σύνδεσης.
+ Σε ένα εξωτερικό modem &usrobotics; &sportster; 14,400, οι εντολές
+ αυτές θα κλειδώσουν την επικοινωνία υπολογιστή &mdash; modem στην
+ ίδια ταχύτητα που έγινε η λήψη των εντολών:</para>
+
+ <programlisting>ATZ
+AT&amp;B1&amp;W</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Ρυθμίσεις για Μεταβλητή Ταχύτητα</title>
+
+ <para>Για λειτουργία σε μεταβλητή ταχύτητα, θα χρειαστεί να
+ ρυθμίσετε το modem σας να προσαρμόζει την ταχύτητα της σειριακής
+ θύρας του ώστε να ταιριάζει με αυτή της εισερχόμενης κλήσης. Σε
+ ένα εξωτερικό modem &usrobotics; &sportster; 14,400, οι εντολές
+ αυτές θα κλειδώσουν την ταχύτητα μεταφοράς δεδομένων με διόρθωση
+ λαθών του modem στην ταχύτητα που χρησιμοποιήθηκε για την αποστολή
+ των εντολών, αλλά θα επιτρέψουν στην ταχύτητα της σειριακής θύρας
+ να μεταβάλλεται για συνδέσεις που δεν έχουν διόρθωση λαθών:</para>
+
+ <programlisting>ATZ
+AT&amp;B2&amp;W</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Έλεγχος των Ρυθμίσεων του Modem</title>
+
+ <para>Τα περισσότερα modem υψηλής ταχύτητας, παρέχουν εντολές με τις
+ οποίες μπορείτε να παρακολουθήσετε τις τρέχουσες παραμέτρους
+ λειτουργίας τους με σχετικά κατανοητό τρόπο. Στο εξωτερικό modem
+ &usrobotics; &sportster; 14,400, η εντολή <command>ATI5</command>
+ δείχνει τις ρυθμίσεις που είναι αποθηκευμένες στη μη-πτητική RAM
+ του modem. Για να δείτε τις πραγματικές παραμέτρους λειτουργίας
+ του modem (όπως αυτές επηρεάζονται από τις θέσεις των ρυθμιστικών
+ διακοπτών του), χρησιμοποιήστε τις εντολές <command>ATZ</command>
+ και μετά <command>ATI4</command>.</para>
+
+ <para>Αν διαθέτετε modem άλλης εταιρίας, ελέγξτε τις οδηγίες χρήσης
+ του για να δείτε πως μπορείτε να ελέγξετε με σιγουριά τις
+ παραμέτρους ρύθμισης του.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <para>Παρακάτω θα βρείτε μερικά βήματα που μπορείτε να ακολουθήσετε για
+ να ελέγξετε τη λειτουργία του modem στο σύστημα σας.</para>
+
+ <sect3>
+ <title>Ελέγχοντας το Σύστημα σας</title>
+
+ <para>Συνδέστε το modem στο &os; σύστημα σας, εκκινήστε το, και
+ αν το modem σας διαθέτει φωτεινές ενδείξεις κατάστασης,
+ παρακολουθήστε τις για να δείτε αν ενεργοποιείται η ένδειξη
+ <acronym>DTR</acronym> όταν εμφανίζεται η προτροπή
+ <prompt>login:</prompt> στην κονσόλα του συστήματος. Αν η ένδειξη
+ αυτή είναι ενεργή, σημαίνει ότι το &os; έχει ξεκινήσει μια
+ διεργασία <command>getty</command> στην αντίστοιχη θύρα
+ επικοινωνιών και αναμένει το modem να απαντήσει μια κλήση.</para>
+
+ <para>Αν δεν ενεργοποιείται η ένδειξη <acronym>DTR</acronym>,
+ εισέλθετε στο σύστημα μέσω της κονσόλας, και δώστε την εντολή
+ <command>ps ax</command> για να δείτε αν το &os; προσπαθεί να
+ εκτελέσει διεργασία <command>getty</command> στη σωστή θύρα.
+ Ανάμεσα στις διεργασίες, θα δείτε γραμμές όπως τις παρακάτω:</para>
+
+ <screen> 114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu0
+ 115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyu1</screen>
+
+ <para>Αν δείτε κάτι διαφορετικό, όπως το παρακάτω:</para>
+
+ <screen> 114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyu0</screen>
+
+ <para>και το modem δεν έχει απαντήσει ακόμα καμία κλήση, σημαίνει ότι
+ η <command>getty</command> έχει ολοκληρώσει το άνοιγμα της
+ σειριακής θύρας. Αυτό πιθανόν σημαίνει ότι υπάρχει πρόβλημα με
+ την καλωδίωση, ή ότι το modem δεν είναι σωστά ρυθμισμένο, καθώς η
+ <command>getty</command> δεν θα πρέπει να μπορεί να ανοίξει τη θύρα
+ πριν ενεργοποιηθεί το σήμα <acronym>CD</acronym> (carrier detect,
+ ανίχνευσης φέροντος) από το modem.</para>
+
+ <para>Αν δεν βλέπετε κάποιες διεργασίες <command>getty</command> να
+ περιμένουν να ανοίξουν την επιθυμητή θύρα
+ <devicename>ttyu<replaceable>N</replaceable></devicename>, ελέγξτε
+ ξανά τις καταχωρίσεις σας στο <filename>/etc/ttys</filename> για
+ τυχόν λάθη. Ελέγξτε επίσης το αρχείο καταγραφής
+ <filename>/var/log/messages</filename> για να δείτε αν υπάρχουν
+ κάποια μηνύματα από την <command>init</command> ή την
+ <command>getty</command> σχετικά με τα προβλήματα. Αν υπάρχουν
+ μηνύματα, ελέγξτε ξανά τα αρχεία ρυθμίσεων
+ <filename>/etc/ttys</filename> και
+ <filename>/etc/gettytab</filename>, όπως και τα ειδικά αρχεία
+ συσκευών <filename>/dev/ttyu<replaceable>N</replaceable></filename> για πιθανά λάθη,
+ ελλιπείς καταχωρίσεις, ή μη-ύπαρξη των ειδικών αρχείων
+ συσκευών.</para>
+ </sect3>
+
+ <sect3>
+ <title>Προσπαθήστε να Εκτελέσετε Σύνδεση Εισόδου</title>
+
+ <para>Δοκιμάστε να εισέλθετε στο σύστημα σας μέσω απομακρυσμένης
+ σύνδεσης. Βεβαιωθείτε ότι χρησιμοποιείτε 8 bits, 1 stop bit και
+ επικοινωνία χωρίς ισοτιμία στο απομακρυσμένο σύστημα. Αν δε λάβετε
+ άμεσα την προτροπή εισόδου, ή αν λαμβάνετε σκουπίδια, δοκιμάστε να
+ πιέζετε <keycap>Enter</keycap> με ρυθμό περίπου μια φορά το
+ δευτερόλεπτο. Αν ακόμα δεν λαμβάνετε την προτροπή
+ <prompt>login:</prompt>, δοκιμάστε μετά από λίγο να στείλετε ένα
+ <command>BREAK</command>. Αν κάνετε κλήση από ένα modem υψηλής
+ ταχύτητας, δοκιμάστε ξανά, αφού κλειδώσετε την ταχύτητα
+ επικοινωνίας υπολογιστή &mdash; modem από το οποίο καλείτε (μέσω
+ π.χ. της <command>AT&amp;B1</command> σε ένα &usrobotics;
+ &sportster; modem).</para>
+
+ <para>Αν δεν μπορείτε ακόμα να λάβετε προτροπή
+ <prompt>login:</prompt>, ελέγξτε ξανά και ξανά το αρχείο
+ <filename>/etc/gettytab</filename>.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το όνομα της αρχικής ικανότητας που καθορίζεται στο αρχείο
+ <filename>/etc/ttys</filename> για τη γραμμή πρέπει να
+ ταιριάζει με το όνομα της ικανότητας στο
+ <filename>/etc/gettytab</filename></para>
+ </listitem>
+
+ <listitem>
+ <para>Κάθε καταχώριση <literal>nx=</literal> ταιριάζει με το
+ όνομα μιας αντίστοιχης ικανότητας στο
+ <filename>gettytab</filename></para>
+ </listitem>
+
+ <listitem>
+ <para>Κάθε καταχώριση <literal>tc=</literal> ταιριάζει με το
+ όνομα μιας αντίστοιχης ικανότητας στο
+ <filename>gettytab</filename></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Αν κάνετε κλήση αλλά το modem στο &os; σύστημα δεν απαντάει,
+ βεβαιωθείτε ότι το modem είναι ρυθμισμένο να απαντάει την
+ τηλεφωνική γραμμή όταν ενεργοποιείται το σήμα
+ <acronym>DTR</acronym>. Αν το modem φαίνεται να είναι ρυθμισμένο
+ σωστά, επαληθεύστε ότι η γραμμή <acronym>DTR</acronym> είναι ενεργή
+ ελέγχοντας τις φωτεινές ενδείξεις του modem (αν υπάρχουν).</para>
+
+ <para>Αν έχετε ελέγξει τα πάντα πολλές φορές, και ακόμα δεν φαίνεται
+ να βρίσκετε τη λύση, κάντε ένα διάλειμμα και προσπαθήστε ξανά
+ αργότερα. Αν ακόμα δεν λειτουργεί, ίσως είναι καλή ιδέα να στείλετε
+ ένα μήνυμα στην &a.questions; περιγράφοντας το πρόβλημα σας και
+ το modem σας, και οι καλοί άνθρωποι που παρακολουθούν την λίστα θα
+ προσπαθήσουν να σας βοηθήσουν.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="dialout">
+ <title>Υπηρεσία Επιλογικής Σύνδεσης</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
+ θυρών μετονομάστηκαν από
+ <filename>/dev/cuad<replaceable>N</replaceable></filename> σε
+ <filename>/dev/cuau<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
+ τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
+ </warning>
+
+ <indexterm><primary>dial-out service</primary></indexterm>
+
+ <para>Παρακάτω θα βρείτε κάποιες συμβουλές για να μπορέσετε να συνδέσετε
+ τον υπολογιστή σας μέσω modem σε κάποιο άλλο υπολογιστή. Με τον τρόπο
+ αυτό, μπορείτε να δημιουργήσετε σύνδεση τερματικού προς ένα
+ απομακρυσμένο υπολογιστή.</para>
+
+ <para>Η υπηρεσία αυτή χρησιμεύει επίσης για να συνδεθείτε σε μια
+ BBS.</para>
+
+ <para>Αυτό το είδος σύνδεσης μπορεί να φανεί εξαιρετικά χρήσιμο για να
+ πάρετε κάποιο αρχείο από το Internet αν έχετε πρόβλημα σύνδεσης μέσω
+ PPP. Αν θέλετε να πάρετε κάτι μέσω FTP και δεν μπορείτε να συνδεθείτε
+ μέσω PPP, συνδεθείτε μέσω τερματικού σε ένα άλλο υπολογιστή, και
+ κατεβάστε σε αυτόν το αρχείο μέσω FTP. Έπειτα, χρησιμοποιήστε το
+ πρωτόκολλο zmodem για να το μεταφέρετε στον υπολογιστή σας.</para>
+
+ <sect2 id="hayes-unsupported">
+ <title>Το τύπου Hayes Modem μου δεν Υποστηρίζεται, Τι Μπορώ να
+ Κάνω;</title>
+
+ <para>Στην πραγματικότητα, η σελίδα manual της <command>tip</command>
+ δεν είναι ενημερωμένη. Υπάρχει ήδη κατάλληλο γενικό πρόγραμμα κλήσης
+ για modems της Hayes. Απλώς χρησιμοποιήστε την καταχώριση
+ <literal>at=hayes</literal> στο αρχείο
+ <filename>/etc/remote</filename>.</para>
+
+ <para>Το πρόγραμμα οδήγησης Hayes δεν είναι αρκετά έξυπνο ώστε να
+ αναγνωρίζει κάποια από τα προχωρημένα χαρακτηριστικά των νεώτερων
+ modems. Μπορεί να μπερδευτεί από μηνύματα όπως τα
+ <literal>BUSY</literal>, <literal>NO DIALTONE</literal>,
+ ή <literal>CONNECT 115200</literal>. Θα πρέπει να απενεργοποιήσετε
+ αυτά τα μηνύματα όταν χρησιμοποιείται την <command>tip</command>
+ (στέλνοντας την εντολή <command>ATX0&amp;W</command>).</para>
+
+ <para>Επίσης, το μέγιστο χρονικό διάστημα το οποίο περιμένει η
+ <command>tip</command> είναι 60 δευτερόλεπτα. Το modem σας θα πρέπει
+ να έχει μικρότερο χρονικό περιθώριο, αλλιώς η tip θα νομίζει ότι
+ υπάρχει πρόβλημα επικοινωνίας. Δοκιμάστε την εντολή
+ <command>ATS7=45&amp;W</command>.</para>
+ </sect2>
+
+ <sect2 id="direct-at">
+ <title>Πως Υποτίθεται Ότι θα Στείλω Αυτές τις ΑΤ Εντολές;</title>
+
+ <indexterm>
+ <primary><filename>/etc/remote</filename></primary>
+ </indexterm>
+ <para>Δημιουργήστε αυτό που ονομάζεται <quote>απευθείας</quote>
+ καταχώριση στο αρχείο <filename>/etc/remote</filename>. Για
+ παράδειγμα, αν το modem σας είναι συνδεμένο στην πρώτη σειριακή θύρα,
+ <filename>/dev/cuau0</filename>, προσθέστε την ακόλουθη γραμμή:</para>
+
+ <programlisting>cuau0:dv=/dev/cuau0:br#19200:pa=none</programlisting>
+
+ <para>Στην ικανότητα br, χρησιμοποιήστε τον υψηλότερο ρυθμό bps που
+ υποστηρίζει το modem σας. Έπειτα, πληκτρολογήστε
+ <command>tip cuau0</command> και θα συνδεθείτε με το modem σας</para>
+
+ <para>Ή χρησιμοποιήστε την <command>cu</command> ως
+ <username>root</username>, δίνοντας την ακόλουθη εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cu -l<replaceable>line</replaceable> -s<replaceable>speed</replaceable></userinput></screen>
+
+ <para>Το <replaceable>line</replaceable> είναι η σειριακή θύρα
+ (π.χ. <filename>/dev/cuau0</filename>) και το
+ <replaceable>speed</replaceable> είναι η ταχύτητα
+ (π.χ. <literal>57600</literal>). Όταν τελειώσετε με τις εντολές ΑΤ,
+ γράψτε <command>~.</command> για να τερματίσετε τη σύνδεση.</para>
+ </sect2>
+
+ <sect2 id="gt-failure">
+ <title>Το Σύμβολο <literal>@</literal> της Ικανότητας pn Δεν
+ Λειτουργεί!</title>
+
+ <para>Το σύμβολο <literal>@</literal> της ικανότητας τηλεφωνικού
+ αριθμού (pn, phone number) οδηγεί την tip να διαβάσει το αρχείο
+ <filename>/etc/phones</filename> για ένα τηλεφωνικό αριθμό. Αλλά το
+ σύμβολο <literal>@</literal> είναι επίσης ένας ειδικός χαρακτήρας σε
+ αρχεία ικανοτήτων όπως το <filename>/etc/remote</filename>. Θα πρέπει
+ να χρησιμοποιήσετε την ανάποδη κάθετο για να δηλώσετε ότι δεν
+ επιθυμείτε να έχει επίδραση ειδικού χαρακτήρα:</para>
+
+ <programlisting>pn=\@</programlisting>
+ </sect2>
+
+ <sect2 id="dial-command-line">
+ <title>Πως Μπορώ να Καλέσω Ένα Τηλεφωνικό Αριθμό Από την Γραμμή
+ Εντολών;</title>
+
+ <para>Βάλτε μια <quote>γενική</quote> καταχώριση στο αρχείο
+ <filename>/etc/remote</filename>. Για παράδειγμα:</para>
+
+ <programlisting>tip115200|Dial any phone number at 115200 bps:\
+ :dv=/dev/cuau0:br#115200:at=hayes:pa=none:du:
+tip57600|Dial any phone number at 57600 bps:\
+ :dv=/dev/cuau0:br#57600:at=hayes:pa=none:du:</programlisting>
+
+ <para>Έπειτα μπορείτε να δίνετε εντολές όπως:</para>
+
+ <screen>&prompt.root; <userinput>tip -115200 5551234</userinput></screen>
+
+ <para>Αν προτιμάτε την <command>cu</command> αντί για την
+ <command>tip</command>, χρησιμοποιήστε μια γενική καταχώριση για την
+ <literal>cu</literal>:</para>
+
+ <programlisting>cu115200|Use cu to dial any number at 115200bps:\
+ :dv=/dev/cuau1:br#57600:at=hayes:pa=none:du:</programlisting>
+
+ <para>και πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput>cu 5551234 -s 115200</userinput></screen>
+ </sect2>
+
+ <sect2 id="set-bps">
+ <title>Πρέπει να Πληκτρολογώ το Ρυθμό bps Κάθε Φορά που το Κάνω
+ Αυτό;</title>
+
+ <para>Θα πρέπει να προσθέσετε μια καταχώριση
+ <literal>tip1200</literal> ή <literal>cu1200</literal>, αλλά
+ μπορείτε να βάλετε την δική σας επιθυμητή τιμή στην ικανότητα br.
+ Η εντολή <command>tip</command> θεωρεί ότι τα 1200&nbsp;bps είναι
+ μια καλή προεπιλογή, και για το λόγο αυτό ψάχνει να βρει μια
+ καταχώριση <literal>tip1200</literal>. Δεν χρειάζεται ωστόσο να
+ χρησιμοποιήσετε ταχύτητα 1200&nbsp;bps.</para>
+ </sect2>
+
+ <sect2 id="terminal-server">
+ <title>Έχω Πρόσβαση σε Ένα Αριθμό Υπολογιστών Μέσω Ενός Εξυπηρετητή
+ Τερματικών</title>
+
+ <para>Αντί να περιμένετε μέχρι να συνδεθείτε και να πληκτρολογείτε
+ <command>CONNECT <replaceable>host</replaceable></command> κάθε φορά,
+ χρησιμοποιήστε την ικανότητα <literal>cm</literal> του tip. Για
+ παράδειγμα, δείτε τις παρακάτω καταχωρίσεις στο
+ <filename>/etc/remote</filename>:</para>
+
+ <programlisting>pain|pain.deep13.com|Forrester's machine:\
+ :cm=CONNECT pain\n:tc=deep13:
+muffin|muffin.deep13.com|Frank's machine:\
+ :cm=CONNECT muffin\n:tc=deep13:
+deep13:Gizmonics Institute terminal server:\
+ :dv=/dev/cuau2:br#38400:at=hayes:du:pa=none:pn=5551234:</programlisting>
+
+ <para>Το παραπάνω, θα σας επιτρέψει να γράφετε
+ <command>tip pain</command> ή <command>tip muffin</command> για να
+ συνδέεστε στους υπολογιστές <hostid>pain</hostid> ή
+ <hostid>muffin</hostid>, και <command>tip deep13</command> για να
+ συνδέεστε στον εξυπηρετητή τερματικών.</para>
+ </sect2>
+
+ <sect2 id="tip-multiline">
+ <title>Μπορεί η Tip να Δοκιμάσει Περισσότερες Από Μια Γραμμές για κάθε
+ Σύνδεση;</title>
+
+ <para>Αυτό το πρόβλημα συνήθως εμφανίζεται σε ένα πανεπιστήμιο που έχει
+ αρκετές γραμμές για modem, αλλά και χιλιάδες φοιτητές που προσπαθούν
+ να τις χρησιμοποιήσουν.</para>
+
+ <para>Δημιουργήστε μια καταχώριση για το πανεπιστήμιο σας στο
+ <filename>/etc/remote</filename> και χρησιμοποιήστε το
+ <literal>@</literal> στην ικανότητα <literal>pn</literal>:</para>
+
+ <programlisting>big-university:\
+ :pn=\@:tc=dialout
+dialout:\
+ :dv=/dev/cuau3:br#9600:at=courier:du:pa=none:</programlisting>
+
+ <para>Έπειτα, δημιουργήστε μια λίστα με τους αριθμούς τηλεφώνων του
+ πανεπιστημίου στο <filename>/etc/phones</filename>:</para>
+
+ <programlisting>big-university 5551111
+big-university 5551112
+big-university 5551113
+big-university 5551114</programlisting>
+
+ <para>Η <command>tip</command> θα δοκιμάσει κάθε μία, με τη σειρά που
+ εμφανίζονται, και θα σταματήσει. Αν θέλετε να συνεχίζει την
+ προσπάθεια, εκτελέστε την <command>tip</command> μέσα σε ένα βρόγχο
+ while.</para>
+ </sect2>
+
+ <sect2 id="multi-controlp">
+ <title>Γιατί Πρέπει να Πιέσω
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>P</keycap>
+ </keycombo>
+ Δύο Φορές για να Στείλω το Συνδυασμό
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>P</keycap>
+ </keycombo>
+ Μια Φορά;</title>
+
+ <para>Ο συνδυασμός πλήκτρων
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>P</keycap>
+ </keycombo>
+ αποτελεί τον προεπιλεγμένο χαρακτήρα <quote>εξαναγκασμού
+ (force)</quote>, και χρησιμοποιείται για να καταλάβει η
+ <command>tip</command> ότι ο επόμενος χαρακτήρας θα πρέπει να
+ χρησιμοποιηθεί όπως είναι. Μπορείτε να θέσετε τον χαρακτήρα
+ εξαναγκασμού σε οποιοδήποτε άλλο χαρακτήρα, χρησιμοποιώντας την
+ ακολουθία διαφυγής <command>~s</command>, η οποία σημαίνει
+ <quote>ρύθμισε μια μεταβλητή</quote>.</para>
+
+ <para>Πληκτρολογήστε
+ <command>~sforce=<replaceable>single-char</replaceable></command>
+ και συνεχίστε με ένα χαρακτήρα νέας γραμμής. Το
+ <replaceable>single-char</replaceable> είναι οποιοσδήποτε μονός
+ χαρακτήρας. Αν αφήσετε κενό το
+ <replaceable>single-char</replaceable>, ο χαρακτήρας εξαναγκασμού θα
+ είναι ο nul, τον οποίο μπορείτε να πληκτρολογήσετε χρησιμοποιώντας το
+ συνδυασμό πλήκτρων
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap><keycap>2</keycap>
+ </keycombo>
+ ή
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap><keycap>Space</keycap>
+ </keycombo>.
+ Μια αρκετά καλή τιμή για το <replaceable>single-char</replaceable>
+ είναι το
+ <keycombo action="simul">
+ <keycap>Shift</keycap>
+ <keycap>Ctrl</keycap>
+ <keycap>6</keycap>
+ </keycombo>, που χρησιμοποιείται μόνο σε κάποιους εξυπηρετητές
+ τερματικών.</para>
+
+ <para>Μπορείτε να ορίσετε το χαρακτήρα εξαναγκασμού σε όποιον εσείς
+ επιθυμείτε, με την ακόλουθη καταχώριση στο αρχείο
+ <filename>&#36;HOME/.tiprc</filename>:</para>
+
+ <programlisting>force=<replaceable>single-char</replaceable></programlisting>
+ </sect2>
+
+ <sect2 id="uppercase">
+ <title>Ξαφνικά Ότι Γράφω Εμφανίζεται με Κεφαλαία Γράμματα!!</title>
+
+ <para>Μάλλον έχετε πιέσει
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>A</keycap>
+ </keycombo>, που είναι ο <quote>χαρακτήρας ανύψωσης</quote> της
+ <command>tip</command>, και είναι σχεδιασμένος ειδικά για όσους
+ έχουν πρόβλημα με το πλήκτρο <keycap>CAPS LOCK</keycap>.
+ Χρησιμοποιήστε την εντολή <command>~s</command> που δείξαμε παραπάνω,
+ για να θέσετε μια λογική τιμή στη μεταβλητή
+ <literal>raisechar</literal>. Στην πραγματικότητα, μπορείτε να
+ θέσετε την ίδια τιμή με τον χαρακτήρα εξαναγκασμού, αν δεν σκοπεύετε
+ ποτέ να χρησιμοποιήσετε κάποια από αυτές τις δυνατότητες.</para>
+
+ <para>Παρακάτω φαίνεται ένα υπόδειγμα αρχείου
+ <filename>.tiprc</filename>, το οποίο είναι τέλειο για χρήστες του
+ <application>Emacs</application> που χρειάζεται να πληκτρολογούν συχνά
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap><keycap>2</keycap>
+ </keycombo>
+ και
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap><keycap>A</keycap>
+ </keycombo>:</para>
+
+ <programlisting>force=^^
+raisechar=^^</programlisting>
+
+ <para>Ο χαρακτήρας <literal>^^</literal> είναι ο
+ <keycombo action="simul">
+ <keycap>Shift</keycap><keycap>Ctrl</keycap><keycap>6</keycap>
+ </keycombo>.</para>
+ </sect2>
+
+ <sect2 id="tip-filetransfer">
+ <title>Πως Μπορώ να Μεταφέρω Αρχεία με την
+ <command>tip</command>;</title>
+
+ <para>Αν επικοινωνείτε με άλλο &unix; σύστημα, μπορείτε να στείλετε και
+ να λάβετε αρχεία με τις εντολές <command>~p</command> (put) και
+ <command>~t</command> (take). Οι εντολές αυτές εκτελούν τις
+ <command>cat</command> και <command>echo</command> στο απομακρυσμένο
+ σύστημα για να λαμβάνουν και να στέλνουν αρχεία. Η σύνταξη τους
+ είναι:</para>
+
+ <cmdsynopsis>
+ <command>~p</command>
+ <arg choice="plain">τοπικό-αρχείο</arg>
+ <arg choice="opt">απομακρυσμένο-αρχείο</arg>
+ </cmdsynopsis>
+
+ <cmdsynopsis>
+ <command>~t</command>
+ <arg choice="plain">απομακρυσμένο-αρχείο</arg>
+ <arg choice="opt">τοπικό-αρχείο</arg>
+ </cmdsynopsis>
+
+ <para>Οι παραπάνω εντολές δεν διαθέτουν έλεγχο λαθών. Θα είναι καλύτερο
+ να χρησιμοποιήσετε κάποιο άλλο πρωτόκολλο, όπως το zmodem.</para>
+ </sect2>
+
+ <sect2 id="zmodem-tip">
+ <title>Πως Μπορώ να Εκτελέσω το zmodem με την
+ <command>tip</command>;</title>
+
+ <para>Για να λάβετε αρχεία, ξεκινήστε το πρόγραμμα αποστολής στον
+ απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε
+ <command>~C rz</command> για να ξεκινήσετε την τοπική λήψη.</para>
+
+ <para>Για να στείλετε αρχεία, ξεκινήστε το πρόγραμμα λήψης στον
+ απομακρυσμένο υπολογιστή. Έπειτα πληκτρολογήστε
+ <command>~C sz <replaceable>files</replaceable></command>
+ για να στείλετε τα αρχεία στο απομακρυσμένο σύστημα.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="serialconsole-setup">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Kazutaka</firstname>
+ <surname>YOKOTA</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ <authorgroup>
+ <author>
+ <firstname>Bill</firstname>
+ <surname>Paul</surname>
+ <contrib>Βασισμένο σε ένα κείμενο του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+ <title>Ρύθμιση της Σειριακής Κονσόλας</title>
+
+ <warning>
+ <para>Από το &os;&nbsp;8.0 και μετά, τα αρχεία συσκευών των σειριακών
+ θυρών μετονομάστηκαν από
+ <filename>/dev/ttyd<replaceable>N</replaceable></filename> σε
+ <filename>/dev/ttyu<replaceable>N</replaceable></filename>.
+ Οι χρήστες του &os;&nbsp;7.X θα πρέπει να προσαρμόσουν την παρακάτω
+ τεκμηρίωση σύμφωνα με τις παραπάνω αλλαγές.</para>
+ </warning>
+
+ <indexterm><primary>serial console</primary></indexterm>
+
+ <sect2 id="serialconsole-intro">
+ <title>Εισαγωγή</title>
+
+ <para>Το &os; έχει την ικανότητα να εκκινήσει σε ένα σύστημα το οποίο
+ ως κονσόλα διαθέτει ένα <quote>κουτό</quote> τερματικό συνδεμένο σε
+ μια σειριακή θύρα. Αυτή η ρύθμιση είναι χρήσιμη σε δύο κατηγορίες
+ ανθρώπων: διαχειριστές συστημάτων που επιθυμούν να εγκαταστήσουν
+ &os; σε μηχανήματα τα οποία δεν διαθέτουν πληκτρολόγιο ή οθόνη, και
+ προγραμματιστές που επιθυμούν να εκσφαλματώνουν τον πυρήνα ή οδηγούς
+ συσκευών.</para>
+
+ <para>Όπως περιγράφεται στο <xref linkend="boot">, το &os; χρησιμοποιεί
+ σύστημα εκκίνησης τριών σταδίων. Τα πρώτα δύο στάδια είναι στον
+ κώδικα του boot block, ο οποίος αποθηκεύεται στην αρχή της κατάτμησης
+ (slice) του δίσκου εκκίνησης του &os;. Το boot block κατόπιν
+ φορτώνει και εκτελεί τον φορτωτή εκκίνησης
+ (<filename>/boot/loader</filename>) ως κώδικα του τρίτου
+ σταδίου.</para>
+
+ <para>Για να ενεργοποιήσετε την σειριακή κονσόλα, θα πρέπει να ρυθμίσετε
+ τον κώδικα του boot block, το φορτωτή εκκίνησης, και τον
+ πυρήνα.</para>
+ </sect2>
+
+ <sect2 id="serialconsole-howto-fast">
+ <title>Ρύθμιση Σειριακής Κονσόλας (Σύντομη Έκδοση)</title>
+
+ <para>Η ενότητα αυτή υποθέτει ότι σκοπεύετε να χρησιμοποιήσετε τις
+ προεπιλεγμένες ρυθμίσεις, και θέλετε απλώς μια γρήγορη επισκόπηση της
+ διαδικασίας ρύθμισης της σειριακής κονσόλας.</para>
+
+ <procedure>
+ <step>
+ <para>Συνδέστε το σειριακό καλώδιο στην
+ <devicename>COM1</devicename> και στο τερματικό.</para>
+ </step>
+
+ <step>
+ <para>Για να δείτε όλα τα μηνύματα εκκίνησης στην σειριακή κονσόλα,
+ δώστε την παρακάτω εντολή ως υπερχρήστης:</para>
+
+ <screen>&prompt.root; echo 'console="comconsole"' &gt;&gt; /boot/loader.conf</screen>
+ </step>
+
+ <step>
+ <para>Επεξεργαστείτε το <filename>/etc/ttys</filename> και αλλάξτε
+ το <literal>off</literal> σε <literal>on</literal> και το
+ <literal>dialup</literal> σε <literal>vt100</literal> για την
+ καταχώριση <devicename>ttyu0</devicename>. Διαφορετικά, δεν θα
+ χρειάζεται κωδικός πρόσβασης για τη σύνδεση μέσω της σειριακής
+ κονσόλας, το οποίο αποτελεί πιθανό κενό ασφαλείας.</para>
+ </step>
+
+ <step>
+ <para>Επανεκκινήστε το σύστημα για να δείτε αν ίσχυσαν οι
+ αλλαγές.</para>
+ </step>
+ </procedure>
+
+ <para>Αν χρειάζεστε διαφορετικές ρυθμίσεις, θα βρείτε λεπτομέρειες για
+ την ρύθμιση στο <xref linkend="serialconsole-howto">.</para>
+ </sect2>
+
+ <sect2 id="serialconsole-howto">
+ <title>Ρύθμιση Σειριακής Κονσόλας</title>
+
+ <procedure>
+ <step>
+ <para>Προετοιμάστε ένα σειριακό καλώδιο.</para>
+
+ <indexterm><primary>null-modem cable</primary></indexterm>
+ <para>Θα χρειαστείτε είτε ένα καλώδιο τύπου null-modem, είτε ένα
+ τυποποιημένο σειριακό καλώδιο και ένα προσαρμογέα null-modem.
+ Δείτε το <xref linkend="serial-cables-ports"> για λεπτομέρειες
+ σχετικά με τα είδη των σειριακών καλωδίων.</para>
+ </step>
+
+ <step>
+ <para>Αποσυνδέστε το πληκτρολόγιο σας.</para>
+
+ <para>Τα περισσότερα PC ψάχνουν για το πληκτρολόγιο κατά την
+ διάρκεια των διαγνωστικών εκκίνησης (POST, Power On Self Test),
+ και θα αναφέρουν σφάλμα αν το πληκτρολόγιο δεν είναι συνδεμένο.
+ Μερικά μηχανήματα παραπονιούνται ηχηρά για την έλλειψη
+ πληκτρολογίου, και δεν συνεχίζουν την εκκίνηση μέχρι να το
+ συνδέσετε.</para>
+
+ <para>Αν ο υπολογιστής σας παραπονιέται για το λάθος, αλλά ξεκινά
+ έτσι και αλλιώς, δεν χρειάζεται να κάνετε τίποτα ιδιαίτερο για
+ αυτό. (Μερικά μηχανήματα με BIOS της Phoenix, λένε απλώς
+ <errorname>Keyboard Failed</errorname> και συνεχίζουν την εκκίνηση
+ κανονικά.)</para>
+
+ <para>Αν ο υπολογιστής σας αρνείται να εκκινήσει χωρίς πληκτρολόγιο,
+ θα πρέπει να ρυθμίσετε το BIOS ώστε να αγνοεί το λάθος (αν
+ γίνεται). Συμβουλευτείτε το εγχειρίδιο της μητρικής σας για
+ λεπτομέρειες σχετικά με αυτή τη διαδικασία.</para>
+
+ <tip>
+ <para>Ρυθμίστε το πληκτρολόγιο σε <quote>Not installed</quote>
+ στο BIOS. Η ρύθμιση αυτή απλώς αποτρέπει το BIOS από το να
+ ανιχνεύει το πληκτρολόγιο στην εκκίνηση, και δεν πρόκειται να
+ σας εμποδίσει να το χρησιμοποιήσετε κανονικά. Μπορείτε να
+ αφήσετε το πληκτρολόγιο συνδεμένο ακόμα και όταν
+ έχετε ενεργοποιήσει τη ρύθμιση <quote>Not installed</quote>.
+ Αν δεν υπάρχει η παραπάνω ρύθμιση στο BIOS, ψάξτε για την
+ επιλογή <quote>Halt on Error</quote>. Αλλάξτε τη σε
+ <quote>All but Keyboard</quote> ή ακόμα και σε
+ <quote>No Errors</quote>, και θα έχετε το ίδιο
+ αποτέλεσμα.</para>
+ </tip>
+
+ <note>
+ <para>Αν το σύστημα σας διαθέτει ποντίκι τύπου &ps2;,
+ πιθανόν να πρέπει να το αποσυνδέσετε και αυτό.
+ Τα ποντίκια τύπου &ps2; έχουν κάποια κυκλώματα κοινά με το
+ πληκτρολόγιο, γεγονός που μπορεί να προκαλέσει σύγχυση στο
+ πρόγραμμα ανίχνευσης του πληκτρολογίου. Κάποια συστήματα, όπως
+ το Gateway 2000 Pentium 90&nbsp;MHz με AMI BIOS,
+ συμπεριφέρονται με αυτό τον τρόπο. Σε γενικές γραμμές, αυτό
+ δεν είναι πρόβλημα καθώς το ποντίκι έτσι και αλλιώς δεν είναι
+ χρήσιμο χωρίς το πληκτρολόγιο.</para>
+ </note>
+ </step>
+
+ <step>
+ <para>Συνδέστε ένα κουτό τερματικό στην
+ <devicename>COM1</devicename>
+ (<devicename>sio0</devicename>).</para>
+
+ <para>Αν δεν έχετε κουτό τερματικό, μπορείτε να συνδέσετε ένα παλιό
+ PC/XT με ένα πρόγραμμα για modem, ή να χρησιμοποιήσετε τη σειριακή
+ θύρα σε ένα άλλο μηχάνημα &unix;. Αν δεν έχετε
+ σειριακή θύρα <devicename>COM1</devicename>
+ (<devicename>sio0</devicename>), αγοράστε μια. Τη δεδομένη στιγμή
+ δεν υπάρχει τρόπος να επιλέξετε άλλη θύρα εκτός από την
+ <devicename>COM1</devicename>, χωρίς να επαναμεταγλωττίσετε τα
+ boot blocks. Αν χρησιμοποιείτε ήδη την
+ <devicename>COM1</devicename> για κάποια άλλη συσκευή, θα πρέπει
+ να την αφαιρέσετε προσωρινά, και να εγκαταστήσετε νέο boot
+ block και πυρήνα, μόλις συνδεθείτε στο &os;. (Υποθέτουμε ότι η
+ <devicename>COM1</devicename> θα είναι έτσι και αλλιώς διαθέσιμη
+ σε ένα εξυπηρετητή αρχείων/υπολογισμών/τερματικών. Αν
+ πραγματικά χρειάζεστε την <devicename>COM1</devicename> για κάτι
+ άλλο (και δεν μπορείτε αυτό το κάτι άλλο να το μετακινήσετε στην
+ <devicename>COM2</devicename> (<devicename>sio1</devicename>)),
+ μάλλον δεν θα έπρεπε να ασχοληθείτε καθόλου με όλο αυτό το
+ θέμα).</para>
+ </step>
+
+ <step>
+ <para>Βεβαιωθείτε ότι το αρχείο ρυθμίσεων του πυρήνα σας έχει τις
+ κατάλληλες επιλογές (flags) για την <devicename>COM1</devicename>
+ (<devicename>sio0</devicename>).</para>
+
+ <para>Οι σχετικές επιλογές είναι:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>0x10</literal></term>
+
+ <listitem>
+ <para>Ενεργοποιεί την υποστήριξη κονσόλας για αυτή τη θύρα.
+ Αν δεν τεθεί αυτή η επιλογή, τα υπόλοιπα flags για την
+ κονσόλα δεν λαμβάνονται υπόψιν. Τη δεδομένη στιγμή, η
+ υποστήριξη κονσόλας μπορεί να είναι ενεργοποιημένη μόνο σε
+ μια θύρα. Η πρώτη που καθορίζεται στο αρχείο ρυθμίσεων,
+ είναι και αυτή που θα προτιμηθεί. Από μόνη της, η επιλογή
+ αυτή δεν θα ενεργοποιήσει την κονσόλα στη συγκεκριμένη
+ σειριακή θύρα. Θα πρέπει να θέσετε το παρακάτω flag ή να
+ χρησιμοποιήσετε την επιλογή <option>-h</option> που
+ περιγράφεται παρακάτω, μαζί με αυτό το flag.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>0x20</literal></term>
+
+ <listitem>
+ <para>Εξαναγκάζει τη συγκεκριμένη θύρα να γίνει η κονσόλα
+ (εκτός αν υπάρχει άλλη κονσόλα υψηλότερης προτεραιότητας)
+ άσχετα με την επιλογή <option>-h</option> που περιγράφεται
+ παρακάτω. Θα πρέπει να χρησιμοποιήσετε το flag
+ <literal>0x20</literal> μαζί με το flag
+ <option>0x10</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>0x40</literal></term>
+
+ <listitem>
+ <para>Παρακρατεί τη συγκεκριμένη θύρα (σε συνδυασμό με την
+ <literal>0x10</literal>) κάνοντας την μη διαθέσιμη για
+ κανονική πρόσβαση. Δεν θα πρέπει να θέσετε αυτή την
+ επιλογή στη σειριακή θύρα που σκοπεύετε να χρησιμοποιήσετε
+ ως σειριακή κονσόλα. Η μόνη χρήση αυτού του flag, είναι να
+ καθορίσετε ότι η θύρα θα χρησιμοποιηθεί για απομακρυσμένη
+ εκσφαλμάτωση του πυρήνα (kernel debugging). Δείτε
+ <ulink
+ url="&url.books.developers-handbook;/index.html">Το
+ Βιβλίο του Προγραμματιστή</ulink> για περισσότερες
+ λεπτομέρειες σχετικά με την απομακρυσμένη
+ εκσφαλμάτωση.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Παράδειγμα:</para>
+
+ <programlisting>device sio0 flags 0x10</programlisting>
+
+ <para>Δείτε τη σελίδα manual &man.sio.4; για περισσότερες
+ λεπτομέρειες.</para>
+
+ <para>Αν δεν έχουν καθοριστεί flags, θα πρέπει να εκτελέσετε το
+ UserConfig (σε διαφορετική κονσόλα) ή να επαναμεταγλωττίσετε τον
+ πυρήνα.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε το αρχείο <filename>boot.config</filename> στον
+ ριζικό κατάλογο της κατάτμησης <literal>a</literal> του δίσκου
+ εκκίνησης.</para>
+
+ <para>Το αρχείο αυτό θα κατευθύνει τον κώδικα του boot block σχετικά
+ με το πως θέλετε να εκκινήσει το σύστημα. Για να ενεργοποιήσετε
+ την σειριακή κονσόλα, θα χρειαστείτε μία ή περισσότερες από τις
+ παρακάτω επιλογές&mdash;αν θέλετε να προσδιορίσετε πολλαπλές
+ επιλογές, θα πρέπει να τις περιλάβετε όλες στην ίδια
+ γραμμή.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option></term>
+
+ <listitem>
+ <para>Εναλλάσσει μεταξύ της εσωτερικής και της σειριακής
+ κονσόλας. Για παράδειγμα, αν ξεκινήσετε από την εσωτερική
+ κονσόλα (οθόνη), μπορείτε να χρησιμοποιήσετε την επιλογή
+ <option>-h</option> για να κατευθύνετε το φορτωτή εκκίνησης
+ και τον πυρήνα να χρησιμοποιήσουν τη σειριακή θύρα ως
+ συσκευή κονσόλας. Εναλλακτικά, αν εκκινήσετε μέσω της
+ σειριακής θύρας, μπορείτε να χρησιμοποιήσετε την επιλογή
+ <option>-h</option> για να κατευθύνετε το φορτωτή εκκίνησης
+ και τον πυρήνα να χρησιμοποιήσουν την κανονική κονσόλα αντί
+ για τη σειριακή.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-D</option></term>
+
+ <listitem>
+ <para>Εναλλάσσει μεταξύ της απλής και της διπλής κονσόλας.
+ Στην ρύθμιση απλής κονσόλας, θα χρησιμοποιηθεί είτε η
+ εσωτερική κονσόλα (απεικόνιση σε οθόνη) είτε η σειριακή
+ θύρα, ανάλογα με το πως έχει τεθεί η επιλογή
+ <option>-h</option> που εξετάσαμε παραπάνω. Σε περίπτωση
+ διπλής κονσόλας, θα ενεργοποιηθούν ταυτόχρονα τόσο η
+ εσωτερική όσο και η σειριακή κονσόλα, άσχετα από τη
+ ρύθμιση της επιλογής <option>-h</option>. Σημειώστε ωστόσο
+ ότι η ρύθμιση διπλής κονσόλας μπορεί να ενεργοποιηθεί μόνο
+ κατά την εκκίνηση, όσο εκτελείται το boot block. Μόλις
+ δοθεί ο έλεγχος στο φορτωτή εκκίνησης, η μοναδική κονσόλα
+ που παραμένει είναι αυτή που καθορίζεται από την επιλογή
+ <option>-h</option>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-P</option></term>
+
+ <listitem>
+ <para>Ενεργοποιεί την ανίχνευση πληκτρολογίου του boot block.
+ Αν δεν βρεθεί πληκτρολόγιο, ενεργοποιούνται αυτόματα οι
+ επιλογές <option>-D</option> και <option>-h</option>.</para>
+
+ <note>
+ <para>Λόγω περιορισμών χώρου στην τρέχουσα έκδοση των boot
+ blocks, η επιλογή <option>-P</option> μπορεί να
+ ανιχνεύσει μόνο εκτεταμένα (extended) πληκτρολόγια.
+ Πληκτρολόγια με λιγότερα από 101 πλήκτρα (και χωρίς τα
+ πλήκτρα <keycap>F11</keycap> και <keycap>F12</keycap>)
+ ίσως να μην ανιχνευθούν. Εξαιτίας αυτού του περιορισμού,
+ είναι πιθανό να μην ανιχνευθούν και κάποια πληκτρολόγια
+ φορητών υπολογιστών. Αν συμβαίνει αυτό στο σύστημα σας,
+ θα πρέπει να σταματήσετε να χρησιμοποιείτε την επιλογή
+ <option>-P</option>. Δυστυχώς, δεν υπάρχει κάποιος τρόπος
+ να παρακάμψετε αυτό το πρόβλημα.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Χρησιμοποιήστε είτε την επιλογή <option>-P</option> για να
+ επιλέξετε την κονσόλα αυτόματα, ή την επιλογή <option>-h</option>
+ για να ενεργοποιήσετε τη σειριακή κονσόλα.</para>
+
+ <para>Μπορείτε επίσης να περιλάβετε και άλλες επιλογές που
+ περιγράφονται στη σελίδα manual του &man.boot.8;.</para>
+
+ <para>Όλες οι επιλογές εκκίνησης, εκτός της <option>-P</option>,
+ θα περάσουν στο φορτωτή εκκίνησης
+ (<filename>/boot/loader</filename>). Ο φορτωτής εκκίνησης θα
+ καθορίσει αν η κονσόλα θα δημιουργηθεί στην οθόνη ή στη σειριακή
+ θύρα, αφού εξετάσει μόνο την επιλογή <option>-h</option>. Αυτό
+ σημαίνει ότι αν καθορίσετε την επιλογή <option>-D</option> αλλά
+ όχι την επιλογή <option>-h</option> στο
+ <filename>/boot.config</filename>, θα μπορείτε να χρησιμοποιήσετε
+ την σειριακή θύρα ως κονσόλα μόνο κατά την εκτέλεση του boot
+ block. Ο φορτωτής εκκίνησης όμως θα χρησιμοποιήσει την εσωτερική
+ κονσόλα (οθόνη).</para>
+ </step>
+
+ <step>
+ <para>Εκκινήστε το μηχάνημα.</para>
+
+ <para>Όταν ξεκινήσετε το &os; μηχάνημα, τα boot blocks θα δείξουν
+ τα περιεχόμενα του <filename>/boot.config</filename> στην κονσόλα.
+ Για παράδειγμα:</para>
+
+ <screen>/boot.config: -P
+Keyboard: no</screen>
+
+ <para>Η δεύτερη γραμμή θα εμφανιστεί μόνο αν βάλετε την επιλογή
+ <option>-P</option> στο <filename>/boot.config</filename>, και
+ δείχνει αν υπάρχει ή όχι συνδεμένο πληκτρολόγιο. Τα μηνύματα
+ αυτά κατευθύνονται στην σειριακή ή στην εσωτερική κονσόλα, ή ακόμα
+ και στις δύο, ανάλογα με την επιλογή που έχει γίνει στο
+ <filename>/boot.config</filename>.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry align="left">Επιλογές</entry>
+ <entry align="left">Το μήνυμα εμφανίζεται στην</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>καμία</entry>
+ <entry>εσωτερική κονσόλα</entry>
+ </row>
+
+ <row>
+ <entry><option>-h</option></entry>
+ <entry>σειριακή κονσόλα</entry>
+ </row>
+
+ <row>
+ <entry><option>-D</option></entry>
+ <entry>εσωτερική και σειριακή κονσόλα</entry>
+ </row>
+
+ <row>
+ <entry><option>-Dh</option></entry>
+ <entry>σειριακή και εσωτερική κονσόλα</entry>
+ </row>
+
+ <row>
+ <entry><option>-P</option>, πληκτρολόγιο συνδεμένο</entry>
+ <entry>εσωτερική κονσόλα</entry>
+ </row>
+
+ <row>
+ <entry><option>-P</option>, χωρίς πληκτρολόγιο</entry>
+ <entry>σειριακή κονσόλα</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Μετά τα παραπάνω μηνύματα, θα υπάρξει μια μικρή παύση πριν
+ τα boot blocks συνεχίσουν φορτώνοντας το φορτωτή εκκίνησης, και
+ πριν εμφανιστούν περισσότερα μηνύματα στην κονσόλα. Υπό κανονικές
+ συνθήκες, δεν χρειάζεται να διακόψετε τα boot blocks, αλλά ίσως
+ θέλετε να το κάνετε αυτό για να βεβαιωθείτε ότι όλα είναι
+ ρυθμισμένα σωστά.</para>
+
+ <para>Πιέστε οποιοδήποτε πλήκτρο εκτός από το <keycap>Enter</keycap>
+ στην κονσόλα για να διακόψετε τη διαδικασία εκκίνησης. Τα boot
+ blocks θα σας ρωτήσουν για περισσότερες πληροφορίες. Θα πρέπει
+ να δείτε κάτι όπως το παρακάτω:</para>
+
+ <screen>&gt;&gt; FreeBSD/i386 BOOT
+Default: 0:ad(0,a)/boot/loader
+boot:</screen>
+
+ <para>Επαληθεύστε ότι το παραπάνω μήνυμα εμφανίζεται είτε στη
+ σειριακή κονσόλα, ή στην εσωτερική κονσόλα ή και στις δύο, ανάλογα
+ με τις επιλογές που έχετε βάλει στο αρχείο
+ <filename>/boot.config</filename>. Αν το μήνυμα εμφανίζεται στην
+ σωστή κονσόλα, πιέστε <keycap>Enter</keycap> για να συνεχίσετε
+ με τη διαδικασία εκκίνησης.</para>
+
+ <para>Αν επιθυμείτε σειριακή κονσόλα, αλλά δεν βλέπετε την προτροπή
+ σε αυτήν, υπάρχει κάποιο λάθος στις ρυθμίσεις. Στο μεταξύ, γράψτε
+ <option>-h</option> και πιέστε <keycap>Enter</keycap> ή
+ <keycap>Return</keycap> (αν γίνεται) για να πείτε στο boot block
+ (και έπειτα στο φορτωτή εκκίνησης και τον πυρήνα) να επιλέξει
+ τη σειριακή θύρα για την κονσόλα. Μόλις το σύστημα ξεκινήσει,
+ κοιτάξτε ξανά τις ρυθμίσεις για να βρείτε που είναι το
+ λάθος.</para>
+ </step>
+ </procedure>
+
+ <para>Μετά τη φόρτωση του φορτωτή εκκίνησης, βρίσκεστε στο τρίτο στάδιο
+ της διαδικασίας εκκίνησης και έχετε ακόμα τη δυνατότητα να επιλέξετε
+ μεταξύ της εσωτερικής και σειριακής κονσόλας, θέτοντας τις κατάλληλες
+ μεταβλητές περιβάλλοντος στο φορτωτή εκκίνησης. Δείτε το
+ <xref linkend="serialconsole-loader">.</para>
+ </sect2>
+
+ <sect2 id="serialconsole-summary">
+ <title>Περίληψη</title>
+
+ <para>Εδώ θα βρείτε μια περίληψη των διάφορων επιλογών που
+ παρουσιάστηκαν σε αυτή την ενότητα, και την κονσόλα που επιλέχθηκε
+ τελικά.</para>
+
+ <sect3>
+ <title>1η Περίπτωση: Έχετε Θέσει το Flag 0x10 για τη Θύρα
+ <devicename>sio0</devicename></title>
+
+ <programlisting>device sio0 flags 0x10</programlisting>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry align="left">Επιλογές στο /boot.config</entry>
+ <entry align="left">Κονσόλα κατά τη διάρκεια των boot
+ blocks</entry>
+ <entry align="left">Κονσόλα κατά τη διάρκεια του φορτωτή
+ εκκίνησης</entry>
+ <entry align="left">Κονσόλα στον πυρήνα</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>καμία</entry>
+ <entry>εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ </row>
+
+ <row>
+ <entry><option>-h</option></entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ </row>
+
+ <row>
+ <entry><option>-D</option></entry>
+ <entry>σειριακή και εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ </row>
+
+ <row>
+ <entry><option>-Dh</option></entry>
+ <entry>σειριακή και εσωτερική</entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ </row>
+
+ <row>
+ <entry><option>-P</option>, πληκτρολόγιο συνδεμένο</entry>
+ <entry>εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ </row>
+
+ <row>
+ <entry><option>-P</option>, χωρίς πληκτρολόγιο</entry>
+ <entry>σειριακή και εσωτερική</entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect3>
+
+ <sect3>
+ <title>2η Περίπτωση: Έχετε Θέσει το Flag 0x30 για την Θύρα
+ <devicename>sio0</devicename></title>
+
+ <programlisting>device sio0 flags 0x30</programlisting>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="4">
+ <thead>
+ <row>
+ <entry align="left">Επιλογές στο /boot.config</entry>
+ <entry align="left">Κονσόλα κατά τη διάρκεια των boot
+ blocks</entry>
+ <entry align="left">Κονσόλα κατά τη διάρκεια του φορτωτή
+ εκκίνησης</entry>
+ <entry align="left">Κονσόλα στον πυρήνα</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>καμία</entry>
+ <entry>εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ <entry>σειριακή</entry>
+ </row>
+
+ <row>
+ <entry><option>-h</option></entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ </row>
+
+ <row>
+ <entry><option>-D</option></entry>
+ <entry>σειριακή και εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ <entry>σειριακή</entry>
+ </row>
+
+ <row>
+ <entry><option>-Dh</option></entry>
+ <entry>σειριακή και εσωτερική</entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ </row>
+
+ <row>
+ <entry><option>-P</option>, πληκτρολόγιο συνδεμένο</entry>
+ <entry>εσωτερική</entry>
+ <entry>εσωτερική</entry>
+ <entry>σειριακή</entry>
+ </row>
+
+ <row>
+ <entry><option>-P</option>, χωρίς πληκτρολόγιο</entry>
+ <entry>σειριακή και εσωτερική</entry>
+ <entry>σειριακή</entry>
+ <entry>σειριακή</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect3>
+ </sect2>
+
+ <sect2 id="serialconsole-tips">
+ <title>Συμβουλές για την Σειριακή Κονσόλα</title>
+
+ <sect3>
+ <title>Ρύθμιση Μεγαλύτερης Ταχύτητας για τη Σειριακή Θύρα</title>
+
+ <para>Οι προεπιλεγμένες ρυθμίσεις της σειριακής θύρας είναι: 9600
+ baud, 8 bits, χωρίς ισοτιμία (parity), 1 stop bit. Αν θέλετε να
+ αλλάξετε την προεπιλεγμένη ταχύτητα της κονσόλας, έχετε τις παρακάτω
+ επιλογές:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Επαναμεταγλωττίστε τα boot blocks θέτοντας τη μεταβλητή
+ <makevar>BOOT_COMCONSOLE_SPEED</makevar> για να ορίσετε την νέα
+ ταχύτητα κονσόλας. Δείτε το <xref
+ linkend="serialconsole-com2"> για λεπτομερείς οδηγίες σχετικά
+ με τη μεταγλώττιση και εγκατάσταση νέων boot blocks.</para>
+
+ <para>Αν η ενεργοποίηση της σειριακής κονσόλας δεν γίνεται μέσω
+ της επιλογής <option>-h</option>, ή αν
+ η σειριακή κονσόλα που χρησιμοποιείται από τον πυρήνα είναι
+ διαφορετική από αυτή που χρησιμοποιείται από τα boot blocks, θα
+ πρέπει επίσης να προσθέσετε την παρακάτω επιλογή στο αρχείο
+ ρυθμίσεων του πυρήνα, και να μεταγλωττίσετε ένα νέο
+ πυρήνα:</para>
+
+ <programlisting>options CONSPEED=19200</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Στις επιλογές εκκίνησης του πυρήνα, χρησιμοποιήστε το
+ <option>-S</option>. Μπορείτε επίσης να προσθέσετε την επιλογή
+ <option>-S</option> στο <filename>/boot.config</filename>.
+ Η σελίδα manual &man.boot.8; περιέχει μια λίστα των
+ υποστηριζόμενων επιλογών, και περιγράφει πως να τις προσθέσετε
+ στο αρχείο <filename>/boot.config</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ενεργοποιήστε την επιλογή
+ <varname>comconsole_speed</varname> στο αρχείο
+ <filename>/boot/loader.conf</filename>.</para>
+
+ <para>Για να λειτουργήσει αυτή η επιλογή, θα πρέπει επίσης να
+ θέσετε τιμές για τις επιλογές <varname>console</varname>,
+ <varname>boot_serial</varname>, και
+ <varname>boot_multicons</varname> στο ίδιο αρχείο, το
+ <filename>/boot/loader.conf</filename>. Παρακάτω φαίνεται ένα
+ παράδειγμα χρήσης του <varname>comconsole_speed</varname> για
+ αλλαγή ταχύτητα της σειριακής κονσόλας:</para>
+
+ <programlisting>boot_multicons="YES"
+boot_serial="YES"
+comconsole_speed="115200"
+console="comconsole,vidconsole"</programlisting>
+ </listitem>
+ </itemizedlist>
+ </sect3>
+
+ <sect3 id="serialconsole-com2">
+ <title>Χρησιμοποιώντας Σειριακή Θύρα Εκτός της
+ <devicename>sio0</devicename> για την Κονσόλα.</title>
+
+ <para>Θα πρέπει να επαναμεταγλωττίσετε κάποια προγράμματα για να
+ χρησιμοποιήσετε ως κονσόλα μια σειριακή θύρα εκτός της
+ <devicename>sio0</devicename>. Αν για οποιοδήποτε λόγο
+ θέλετε να χρησιμοποιήσετε άλλη σειριακή θύρα, θα πρέπει να
+ επαναμεταγλωττίσετε τα boot blocks, το φορτωτή εκκίνησης και τον
+ πυρήνα, με τον τρόπο που φαίνεται παρακάτω.</para>
+
+ <procedure>
+ <step>
+ <para>Ανακτήστε τον πηγαίο κώδικα του πυρήνα. (Δείτε το <xref
+ linkend="updating-upgrading">)</para>
+ </step>
+
+ <step>
+ <para>Επεξεργαστείτε το αρχείο <filename>/etc/make.conf</filename>
+ και θέστε την επιλογή <literal>BOOT_COMCONSOLE_PORT</literal>
+ στη διεύθυνση της θύρας που θέλετε να χρησιμοποιήσετε (0x3F8,
+ 0x2F8, 0x3E8 or 0x2E8). Μπορείτε να χρησιμοποιήσετε μόνο τις
+ θύρες <devicename>sio0</devicename> ως
+ <devicename>sio3</devicename> (<devicename>COM1</devicename>
+ ως <devicename>COM4</devicename>). Κάρτες πολλαπλών θυρών, δεν
+ πρόκειται να λειτουργήσουν. Δεν χρειάζεται να ρυθμίσετε την
+ τιμή του interrupt.</para>
+ </step>
+
+ <step>
+ <para>Δημιουργήστε ένα αρχείο ρύθμισης προσαρμοσμένου πυρήνα, και
+ προσθέστε τα κατάλληλα flags για τη σειριακή θύρα που επιθυμείτε
+ να χρησιμοποιήσετε. Για παράδειγμα, αν θέλετε η
+ <devicename>sio1</devicename> (<devicename>COM2</devicename>)
+ να γίνει η κονσόλα:</para>
+
+ <programlisting>device sio1 flags 0x10</programlisting>
+
+ <para>ή</para>
+
+ <programlisting>device sio1 flags 0x30</programlisting>
+
+ <para>Δεν θα πρέπει να θέσετε flags κονσόλας για τις άλλες
+ σειριακές θύρες.</para>
+ </step>
+
+ <step>
+ <para>Μεταγλωττίστε και εγκαταστήστε ξανά τα boot blocks και τον
+ φορτωτή εκκίνησης:</para>
+
+ <screen>&prompt.root; <userinput>cd /sys/boot</userinput>
+&prompt.root; <userinput>make clean</userinput>
+&prompt.root; <userinput>make</userinput>
+&prompt.root; <userinput>make install</userinput></screen>
+ </step>
+
+ <step>
+ <para>Επαναμεταγλωττίστε και εγκαταστήστε τον πυρήνα.</para>
+ </step>
+
+ <step>
+ <para>Γράψτε τα boot blocks στον δίσκο εκκίνησης χρησιμοποιώντας
+ την &man.bsdlabel.8; και εκκινήστε με το νέο πυρήνα.</para>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3 id="serialconsole-ddb">
+ <title>Είσοδος στον DDB Debugger Μέσω της Σειριακής Γραμμής</title>
+
+ <para>Αν θέλετε να εισέλθετε στον debugger του πυρήνα από την σειριακή
+ κονσόλα (κάτι που είναι χρήσιμο για να εκτελέσετε διαγνωστικά από
+ απομακρυσμένη τοποθεσία, αλλά επίσης και επικίνδυνο αν στείλετε κατά
+ λάθος BREAK μέσω της σειριακής θύρας!) θα πρέπει να περιλάβετε την
+ παρακάτω επιλογή στον πυρήνα σας:</para>
+
+ <programlisting>options BREAK_TO_DEBUGGER
+options DDB</programlisting>
+ </sect3>
+
+ <sect3>
+ <title>Προτροπή Εισόδου στην Σειριακή Κονσόλα</title>
+
+ <para>Αν και αυτό δεν είναι απαραίτητο, ίσως να θέλετε να έχετε
+ προτροπή εισόδου (<emphasis>login</emphasis>) μέσω της σειριακής
+ γραμμής, τώρα που μπορείτε πλέον να δείτε τα μηνύματα εκκίνησης και
+ να εισέλθετε στο debugger του πυρήνα μέσω της σειριακής κονσόλας.
+ Η διαδικασία περιγράφεται παρακάτω.</para>
+
+ <para>Με κάποιο συντάκτη κειμένου, ανοίξτε το αρχείο
+ <filename>/etc/ttys</filename> και βρείτε τις γραμμές:</para>
+
+ <programlisting>ttyu0 "/usr/libexec/getty std.9600" unknown off secure
+ttyu1 "/usr/libexec/getty std.9600" unknown off secure
+ttyu2 "/usr/libexec/getty std.9600" unknown off secure
+ttyu3 "/usr/libexec/getty std.9600" unknown off secure</programlisting>
+
+ <para>Οι καταχωρίσεις από <devicename>ttyu0</devicename> ως
+ <devicename>ttyu3</devicename> αντιστοιχούν στις
+ <devicename>COM1</devicename> ως <devicename>COM4</devicename>.
+ Αλλάξτε το <literal>off</literal> σε <literal>on</literal> για την
+ θύρα που επιθυμείτε. Αν έχετε αλλάξει την ταχύτητα της σειριακής
+ θύρας, θα χρειαστεί να αλλάξετε το <literal>std.9600</literal> ώστε
+ να ταιριάζει με την τρέχουσα ρύθμιση, π.χ.
+ <literal>std.19200</literal>.</para>
+
+ <para>Μάλλον θα θέλετε να αλλάξετε και τον τύπο του τερματικού, από
+ <literal>unknown</literal> στον πραγματικό τύπου του σειριακού σας
+ τερματικού.</para>
+
+ <para>Αφού αλλάξετε τις ρυθμίσεις, θα πρέπει να εκτελέσετε την εντολή
+ <command>kill -HUP 1</command> ώστε να ενεργοποιηθούν.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="serialconsole-loader">
+ <title>Αλλαγή Κονσόλας μέσω του Φορτωτή Εκκίνησης</title>
+
+ <para>Σε προηγούμενες ενότητες, περιγράψαμε πως να ρυθμίσετε την
+ σειριακή κονσόλα αλλάζοντας τις ρυθμίσεις του boot block. Στην
+ ενότητα αυτή, δείχνουμε πως μπορείτε να καθορίσετε την κονσόλα
+ δίνοντας κάποιες εντολές και μεταβλητές περιβάλλοντος στον φορτωτή
+ εκκίνησης. Καθώς ο φορτωτής εκκίνησης καλείται από το τρίτο στάδιο
+ της διαδικασίας εκκίνησης, και μετά το boot block, οι ρυθμίσεις του
+ φορτωτή εκκίνησης υπερισχύουν σε σχέση με αυτές του boot block.</para>
+
+ <sect3>
+ <title>Ρύθμιση της Σειριακής Κονσόλας</title>
+
+ <para>Μπορείτε εύκολα να καθορίσετε ότι θα χρησιμοποιηθεί η
+ σειριακή κονσόλα στον φορτωτή εκκίνησης και στον πυρήνα που θα
+ φορτωθεί, γράφοντας απλώς μια γραμμή στο
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>console="comconsole"</programlisting>
+
+ <para>Η ρύθμιση αυτή θα ενεργοποιηθεί, άσχετα με το boot block που
+ συζητήσαμε στην προηγούμενη ενότητα.</para>
+
+ <para>Είναι καλύτερα η γραμμή αυτή να είναι η πρώτη στο αρχείο
+ <filename>/boot/loader.conf</filename>, ώστε να βλέπετε τα αρχικά
+ μηνύματα εκκίνησης στη σειριακή κονσόλα.</para>
+
+ <para>Με τον ίδιο τρόπο, μπορείτε να καθορίσετε την εσωτερική κονσόλα
+ ως:</para>
+
+ <programlisting>console="vidconsole"</programlisting>
+
+ <para>Αν δεν καθορίσετε τη μεταβλητή περιβάλλοντος
+ <envar>console</envar>, ο φορτωτής εκκίνησης (και έπειτα ο πυρήνας)
+ θα χρησιμοποιήσουν οποιαδήποτε κονσόλα έχετε καθορίσει στο boot
+ block με την επιλογή <option>-h</option>.</para>
+
+ <para>Μπορείτε να καθορίσετε την κονσόλα στο
+ <filename>/boot/loader.conf.local</filename> ή στο
+ <filename>/boot/loader.conf</filename>.</para>
+
+ <para>Δείτε το &man.loader.conf.5; για περισσότερες
+ πληροφορίες.</para>
+
+ <note>
+ <para>Τη δεδομένη στιγμή, ο φορτωτής εκκίνησης δεν έχει επιλογή
+ αντίστοιχη με την <option>-P</option> του boot block, και δεν
+ υπάρχει κάποιος τρόπος να γίνει αυτόματη επιλογή μεταξύ
+ εσωτερικής και σειριακής κονσόλας ανάλογα με την παρουσία
+ πληκτρολογίου.</para>
+ </note>
+ </sect3>
+
+ <sect3>
+ <title>Χρήση Σειριακής Θύρας Εκτός της <devicename>sio0</devicename>
+ για την Κονσόλα</title>
+
+ <para>Θα πρέπει να επαναμεταγλωττίσετε το φορτωτή εκκίνησης ώστε να
+ χρησιμοποιήσει μια σειριακή θύρα διαφορετική από την
+ <devicename>sio0</devicename> για τη σειριακή κονσόλα. Ακολουθήστε
+ τη διαδικασία που περιγράφεται στο <xref
+ linkend="serialconsole-com2">.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="serialconsole-caveats">
+ <title>Πιθανές Παγίδες</title>
+
+ <para>Η γενική ιδέα είναι να επιτρέπεται σε όσους το επιθυμούν, να
+ δημιουργήσουν εξειδικευμένους εξυπηρετητές που δεν απαιτούν κάρτες
+ γραφικών και πληκτρολόγια. Δυστυχώς, αν και τα περισσότερα συστήματα
+ θα σας επιτρέψουν να εκκινήσετε χωρίς πληκτρολόγιο, σε πολύ λίγα θα
+ μπορέσετε να εκκινήσετε χωρίς κάρτα γραφικών. Τα μηχανήματα με BIOS
+ της AMI μπορούν να ρυθμιστούν με αυτό τον τρόπο, απλώς αλλάζοντας την
+ επιλογή <quote>graphics adapter</quote> στις ρυθμίσεις του CMOS σε
+ <quote>Not installed.</quote></para>
+
+ <para>Τα περισσότερα μηχανήματα ωστόσο δεν υποστηρίζουν αυτή την
+ επιλογή, και θα αρνηθούν να εκκινήσουν αν δεν βάλετε μια κάρτα
+ γραφικών. Στα μηχανήματα αυτά θα πρέπει να αφήσετε μια
+ στοιχειώδη (ακόμα και μονόχρωμη) κάρτα γραφικών, αν και δεν είναι
+ απαραίτητο να συνδέσετε και οθόνη. Μπορείτε επίσης να δοκιμάσετε να
+ εγκαταστήσετε BIOS της AMI.</para>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/txtfiles.ent b/el_GR.ISO8859-7/books/handbook/txtfiles.ent
new file mode 100644
index 0000000000..33126b4574
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/txtfiles.ent
@@ -0,0 +1,85 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Λίστα με όλα τα .txt screenshots
+
+ Λίστα με entities για όλα τα .txt screenshots που περιέχονται
+ στο Εγχειρίδιο.
+
+ Κάθε entity ονομάζεται «txt.dir.foo», όπου «dir» είναι το directory στο
+ οποίο αποθηκεύεται και «foo» είναι το όνομα του αρχείου, χωρίς την
+ επέκταση «.txt».
+
+ Τα entities καλό είναι να διατηρούνται σε αλφαβητική σειρά
+ (για να μπορούμε εύκολα να ελέγξουμε αν υπάρχουν διπλές εμφανίσεις).
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/txtfiles.ent
+ %SRCID% 1.4
+
+-->
+
+<!ENTITY txt.install.adduser1 SYSTEM "install/adduser1.txt">
+<!ENTITY txt.install.adduser2 SYSTEM "install/adduser2.txt">
+<!ENTITY txt.install.adduser3 SYSTEM "install/adduser3.txt">
+<!ENTITY txt.install.boot-mgr SYSTEM "install/boot-mgr.txt">
+<!ENTITY txt.install.config-country SYSTEM "install/config-country.txt">
+<!ENTITY txt.install.console-saver1 SYSTEM "install/console-saver1.txt">
+<!ENTITY txt.install.console-saver2 SYSTEM "install/console-saver2.txt">
+<!ENTITY txt.install.console-saver3 SYSTEM "install/console-saver3.txt">
+<!ENTITY txt.install.console-saver4 SYSTEM "install/console-saver4.txt">
+<!ENTITY txt.install.disklabel-auto SYSTEM "install/disklabel-auto.txt">
+<!ENTITY txt.install.disklabel-ed1 SYSTEM "install/disklabel-ed1.txt">
+<!ENTITY txt.install.disklabel-ed2 SYSTEM "install/disklabel-ed2.txt">
+<!ENTITY txt.install.disklabel-fs SYSTEM "install/disklabel-fs.txt">
+<!ENTITY txt.install.disklabel-root1 SYSTEM "install/disklabel-root1.txt">
+<!ENTITY txt.install.disklabel-root2 SYSTEM "install/disklabel-root2.txt">
+<!ENTITY txt.install.disklabel-root3 SYSTEM "install/disklabel-root3.txt">
+<!ENTITY txt.install.dist-set SYSTEM "install/dist-set.txt">
+<!ENTITY txt.install.dist-set2 SYSTEM "install/dist-set2.txt">
+<!ENTITY txt.install.docmenu1 SYSTEM "install/docmenu1.txt">
+<!ENTITY txt.install.ed0-conf SYSTEM "install/ed0-conf.txt">
+<!ENTITY txt.install.ed0-conf2 SYSTEM "install/ed0-conf2.txt">
+<!ENTITY txt.install.edit-inetd-conf SYSTEM "install/edit-inetd-conf.txt">
+<!ENTITY txt.install.fdisk-drive1 SYSTEM "install/fdisk-drive1.txt">
+<!ENTITY txt.install.fdisk-drive2 SYSTEM "install/fdisk-drive2.txt">
+<!ENTITY txt.install.fdisk-edit1 SYSTEM "install/fdisk-edit1.txt">
+<!ENTITY txt.install.fdisk-edit2 SYSTEM "install/fdisk-edit2.txt">
+<!ENTITY txt.install.ftp-anon1 SYSTEM "install/ftp-anon1.txt">
+<!ENTITY txt.install.ftp-anon2 SYSTEM "install/ftp-anon2.txt">
+<!ENTITY txt.install.hdwrconf SYSTEM "install/hdwrconf.txt">
+<!ENTITY txt.install.keymap SYSTEM "install/keymap.txt">
+<!ENTITY txt.install.main-doc SYSTEM "install/main-doc.txt">
+<!ENTITY txt.install.main-keymap SYSTEM "install/main-keymap.txt">
+<!ENTITY txt.install.main-options SYSTEM "install/main-options.txt">
+<!ENTITY txt.install.main-std SYSTEM "install/main-std.txt">
+<!ENTITY txt.install.main1 SYSTEM "install/main1.txt">
+<!ENTITY txt.install.mainexit SYSTEM "install/mainexit.txt">
+<!ENTITY txt.install.media SYSTEM "install/media.txt">
+<!ENTITY txt.install.mouse1 SYSTEM "install/mouse1.txt">
+<!ENTITY txt.install.mouse2 SYSTEM "install/mouse2.txt">
+<!ENTITY txt.install.mouse3 SYSTEM "install/mouse3.txt">
+<!ENTITY txt.install.mouse4 SYSTEM "install/mouse4.txt">
+<!ENTITY txt.install.mouse5 SYSTEM "install/mouse5.txt">
+<!ENTITY txt.install.mouse6 SYSTEM "install/mouse6.txt">
+<!ENTITY txt.install.nfs-server-edit SYSTEM "install/nfs-server-edit.txt">
+<!ENTITY txt.install.options SYSTEM "install/options.txt">
+<!ENTITY txt.install.pkg-cat SYSTEM "install/pkg-cat.txt">
+<!ENTITY txt.install.pkg-confirm SYSTEM "install/pkg-confirm.txt">
+<!ENTITY txt.install.pkg-install SYSTEM "install/pkg-install.txt">
+<!ENTITY txt.install.pkg-sel SYSTEM "install/pkg-sel.txt">
+<!ENTITY txt.install.probstart SYSTEM "install/probstart.txt">
+<!ENTITY txt.install.security SYSTEM "install/security.txt">
+<!ENTITY txt.install.sysinstall-exit SYSTEM "install/sysinstall-exit.txt">
+<!ENTITY txt.install.timezone1 SYSTEM "install/timezone1.txt">
+<!ENTITY txt.install.timezone2 SYSTEM "install/timezone2.txt">
+<!ENTITY txt.install.timezone3 SYSTEM "install/timezone3.txt">
+<!ENTITY txt.install.userconfig SYSTEM "../../../share/images/books/handbook/install/userconfig.txt">
+<!ENTITY txt.install.userconfig2 SYSTEM "../../../share/images/books/handbook/install/userconfig2.txt">
+
+<!--
+ Local Variables:
+ coding: iso-8859-7
+ mode: sgml
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/users/chapter.sgml b/el_GR.ISO8859-7/books/handbook/users/chapter.sgml
new file mode 100644
index 0000000000..f7293f1a57
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/users/chapter.sgml
@@ -0,0 +1,1105 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Χρήστες και Βασική Διαχείριση Λογαριασμών
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/users/chapter.sgml
+ %SRCID% 1.60
+
+-->
+
+<chapter id="users">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Neil</firstname>
+ <surname>Blakey-Milner</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- Feb 2000 -->
+ </chapterinfo>
+
+ <title>Χρήστες και Βασική Διαχείριση Λογαριασμών</title>
+
+ <sect1 id="users-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το &os; επιτρέπει σε πολλαπλούς χρήστες να χρησιμοποιούν τον
+ υπολογιστή την ίδια στιγμή. Προφανώς, μόνο ένας από αυτούς τους
+ χρήστες μπορεί να κάθεται μπροστά από την οθόνη και το πληκτρολόγιο
+ κάθε δεδομένη στιγμή
+ <footnote>
+ <para>Εκτός φυσικά αν συνδέσουμε πολλαπλά τερματικά, αλλά θα
+ μιλήσουμε για αυτό στο <xref linkend="serialcomms">.</para>
+ </footnote>, αλλά οποιοσδήποτε αριθμός χρηστών μπορούν να εισέλθουν
+ μέσω του δικτύου για να φέρουν σε πέρας τις εργασίες τους. Για να
+ χρησιμοποιήσει το σύστημα, κάθε χρήστης πρέπει να έχει ένα
+ λογαριασμό.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τις διαφορές ανάμεσα στα διάφορα είδη λογαριασμών χρηστών σε ένα
+ σύστημα &os;.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να προσθέσετε λογαριασμούς χρηστών.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να διαγράψετε λογαριασμούς χρηστών.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να αλλάξετε τις λεπτομέρειες ενός λογαριασμού, όπως το
+ πλήρες όνομα του χρήστη, ή το προτιμώμενο κέλυφος (shell).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να θέσετε όρια ανά λογαριασμό, για να ελέγχετε πόρους όπως
+ η μνήμη και ο χρόνος της CPU, που μπορούν να έχουν στην διάθεση
+ τους συγκεκριμένοι λογαριασμοί ή ομάδες λογαριασμών.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε ομάδες για να κάνετε ευκολότερη τη
+ διαχείριση των λογαριασμών.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να κατανοείτε τις βασικές έννοιες του &unix; και του &os;
+ (<xref linkend="basics">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="users-introduction">
+ <title>Εισαγωγή</title>
+
+ <para>Η πρόσβαση στο σύστημα επιτυγχάνεται μέσω λογαριασμών, όλες
+ οι διεργασίες εκτελούνται από χρήστες, έτσι η διαχείριση χρηστών και
+ λογαριασμών είναι μεγάλης σημασίας στα &os; συστήματα.</para>
+
+ <para>Κάθε λογαριασμός σε ένα σύστημα &os; έχει συγκεκριμένες πληροφορίες
+ που σχετίζονται με αυτόν ώστε να αναγνωρίζεται από το σύστημα.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Όνομα χρήστη</term>
+
+ <listitem>
+ <para>Το όνομα χρήστη είναι αυτό που θα γραφεί στην
+ προτροπή <prompt>login:</prompt>. Τα ονόματα χρηστών πρέπει να
+ είναι μοναδικά για τον υπολογιστή, δεν μπορείτε να έχετε δύο
+ χρήστες με το ίδιο όνομα χρήστη. Υπάρχει ένας αριθμός κανόνων
+ για την δημιουργία έγκυρων ονομάτων χρηστών, που τεκμηριώνονται
+ στο &man.passwd.5;. Συνήθως θα χρησιμοποιείτε ονόματα χρηστών που
+ περιέχουν οκτώ ή λιγότερους όλους μικρούς χαρακτήρες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Κωδικός</term>
+
+ <listitem>
+ <para>Κάθε λογαριασμός έχει ένα κωδικό που σχετίζεται με αυτόν.
+ Ο κωδικός μπορεί να είναι κενός, οπότε και δεν θα απαιτείται
+ για πρόσβαση στο σύστημα. Αυτό κατά κανόνα είναι μια
+ πολύ κακή ιδέα, κάθε λογαριασμός θα πρέπει να έχει έναν
+ κωδικό.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>User ID (UID)</term>
+
+ <listitem>
+ <para>Το UID είναι ένας αριθμός, κατά παράδοση από το 0 έως το 65535
+ <footnote id="users-largeuidgid">
+ <para>Είναι δυνατόν να χρησιμοποιήσετε UID/GIDs όσο μεγάλα όσο
+ το 4294967295, αλλά τέτοια IDs μπορεί να προκαλέσουν σοβαρά
+ προβλήματα με λογισμικό που κάνει υποθέσεις σχετικά με τις
+ τιμές των IDs.</para>
+ </footnote>, που χρησιμοποιείται για την μοναδική αναγνώριση
+ του χρήστη στο σύστημα. Εσωτερικά, το &os; χρησιμοποιεί το UID
+ για να αναγνωρίσει χρήστες&mdash;οποιεσδήποτε εντολές του &os; που
+ σας επιτρέπουν να ορίσετε ένα όνομα χρήστη θα το μετατρέψουν στο
+ UID πριν το χρησιμοποιήσουν. Αυτό σημαίνει ότι μπορείτε να έχετε
+ πολλούς λογαριασμούς με διαφορετικά ονόματα χρήστη αλλά το ίδιο
+ UID. Όσο αφορά το &os;, αυτοί οι λογαριασμοί είναι ένας χρήστης.
+ Είναι απίθανο να χρειαστεί ποτέ να κάνετε κάτι τέτοιο.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Group ID (GID)</term>
+
+ <listitem>
+ <para>Το GID είναι ένας αριθμός, κατά παράδοση από το 0 έως το 65535
+ <footnoteref linkend="users-largeuidgid">, που χρησιμοποιείται
+ για την μοναδική αναγνώριση της πρωτεύοντος ομάδας που ανήκει ο
+ χρήστης. Οι ομάδες είναι ένας μηχανισμός για τον έλεγχο της
+ πρόσβασης σε πόρους που στηρίζεται στο GID ενός χρήστη, παρά στο
+ UID. Αυτό μπορεί να μειώσει σημαντικά το μέγεθος κάποιων αρχείων
+ διευθέτησης. Ένας χρήστης μπορεί επίσης να ανήκει σε
+ περισσότερες της μίας ομάδες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Κλάσεις σύνδεσης</term>
+
+ <listitem>
+ <para>Οι κλάσεις σύνδεσης (login classes) είναι μια επέκταση στον
+ μηχανισμό των ομάδων που παρέχουν πρόσθετη ευελιξία όταν
+ προσαρμόζουμε το σύστημα σε διαφορετικούς χρήστες.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Χρόνος αλλαγής κωδικού</term>
+
+ <listitem>
+ <para>Εξ' ορισμού το &os; δεν επιβάλλει στους χρήστες να αλλάζουν
+ περιοδικά τον κωδικό τους. Μπορείτε να το επιβάλετε αυτό σε μια
+ ανά χρήστη βάση, αναγκάζοντας κάποιους ή όλους τους χρήστες να
+ αλλάζουν τον κωδικό τους αφού έχει περάσει ένα συγκεκριμένο
+ χρονικό διάστημα.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Χρόνος λήξης λογαριασμών</term>
+
+ <listitem>
+ <para>Εξ' ορισμού στο &os; δεν λήγουν λογαριασμοί. Αν δημιουργήσετε
+ λογαριασμούς που γνωρίζετε ότι έχουν περιορισμένη διάρκεια ζωής,
+ για παράδειγμα, σε ένα σχολείο όπου έχετε λογαριασμούς για τους
+ μαθητές, τότε μπορείτε να ορίσετε πότε λήγει ο λογαριασμός. Αφού
+ ο χρόνος λήξης έχει περάσει, ο λογαριασμός δεν μπορεί να
+ χρησιμοποιηθεί για την σύνδεση στο σύστημα, αν και οι φάκελοι του
+ λογαριασμού και τα αρχεία θα παραμείνουν.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Πραγματικό όνομα χρήστη</term>
+
+ <listitem>
+ <para>Το όνομα χρήστη αναγνωρίζει μοναδικά τον λογαριασμό στο &os;,
+ αλλά δεν αντιπροσωπεύει απαραίτητα το πραγματικό όνομα του
+ χρήστη. Αυτή η πληροφορία μπορεί να συσχετιστεί με τον
+ λογαριασμό.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Προσωπικός κατάλογος</term>
+
+ <listitem>
+ <para>Ο προσωπικός κατάλογος δείχνει την πλήρη διαδρομή προς ένα
+ κατάλογο του συστήματος. Αυτός είναι και ο αρχικός κατάλογος
+ του χρήστη, κάθε φορά που συνδέεται στο σύστημα.
+ Μια κοινή σύμβαση είναι να μπαίνουν οι προσωπικοί κατάλογοι
+ χρηστών στο
+ <filename>/home/<replaceable>username</replaceable></filename>
+ ή στο <filename>/usr/home/<replaceable>username</replaceable></filename>.
+ Ο χρήστης θα αποθηκεύει τα προσωπικά του αρχεία και τους
+ καταλόγους που δημιουργεί, μέσα στον προσωπικό του
+ κατάλογο.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Κέλυφος χρήστη</term>
+
+ <listitem>
+ <para>Το κέλυφος παρέχει το εξ' ορισμού περιβάλλον που οι χρήστες
+ χρησιμοποιούν για να αλληλεπιδρούν με το σύστημα. Υπάρχουν πολλά
+ διαφορετικά είδη κελυφών, και οι έμπειροι χρήστες θα έχουν τις
+ δικές τους προτιμήσεις, οι οποίες μπορεί να αντικατοπτρίζονται
+ στις ρυθμίσεις των λογαριασμών τους.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Υπάρχουν τρεις κύριοι τύποι λογαριασμών: ο <link
+ linkend="users-superuser">υπερχρήστης (superuser)</link>, οι <link
+ linkend="users-system">χρήστες συστήματος</link>, και οι <link
+ linkend="users-user">λογαριασμοί χρηστών</link>. Ο λογαριασμός
+ υπερχρήστη, συνήθως ονομάζεται <username>root</username>,
+ χρησιμοποιείται για τη διαχείριση του συστήματος χωρίς περιορισμούς
+ στα προνόμια. Οι χρήστες συστήματος τρέχουν υπηρεσίες. Τέλος, οι
+ λογαριασμοί χρηστών χρησιμοποιούνται από πραγματικούς ανθρώπους, που
+ συνδέονται, διαβάζουν mail, και ούτω καθεξής.</para>
+ </sect1>
+
+ <sect1 id="users-superuser">
+ <title>Ο Λογαριασμός Υπερχρήστη</title>
+
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>superuser (root)</secondary>
+ </indexterm>
+ <para>Ο λογαριασμός υπερχρήστη, συνήθως καλείται
+ <username>root</username>, είναι προρυθμισμένος για να διευκολύνεται
+ η διαχείριση του συστήματος, και δεν θα πρέπει να χρησιμοποιείται για
+ καθημερινές εργασίες όπως αποστολή και λήψη mail, γενική εξερεύνηση του
+ συστήματος, ή προγραμματισμό.</para>
+
+ <para>Αυτό διότι ο υπερχρήστης, σε αντίθεση με τους κανονικούς
+ λογαριασμούς χρηστών, μπορεί να λειτουργεί χωρίς όρια, και
+ κακομεταχείριση του λογαριασμού αυτού μπορεί να έχει ως συνέπεια
+ θεαματικές καταστροφές. Οι λογαριασμοί χρηστών δεν μπορούν να
+ καταστρέψουν το σύστημα από λάθος, έτσι είναι γενικά καλύτερα να
+ χρησιμοποιείτε κανονικούς λογαριασμούς χρηστών όποτε είναι δυνατόν,
+ εκτός εάν ειδικότερα χρειάζεστε τα επιπλέον προνόμια.</para>
+
+ <para>Θα πρέπει πάντα να ελέγχετε δύο και τρεις φορές τις εντολές που
+ δίνετε σαν υπερχρήστης, αφού ένα επιπλέον κενό ή ένας χαρακτήρας που
+ λείπει, μπορεί να σημαίνει ανεπανόρθωτη απώλεια δεδομένων.</para>
+
+ <para>Έτσι, το πρώτο πράγμα που θα πρέπει να κάνετε αφού διαβάσετε αυτό
+ το κεφάλαιο, είναι να δημιουργήσετε έναν λογαριασμό χρήστη, χωρίς
+ προνόμια, για τον εαυτό σας για γενική χρήση αν δεν το έχετε κάνει ήδη.
+ Αυτό ισχύει εξίσου εάν τρέχετε ένα πολυ-χρηστικό ή μονο-χρηστικό
+ μηχάνημα. Αργότερα σε αυτό το κεφάλαιο, θα συζητήσουμε πως να
+ δημιουργείτε πρόσθετους λογαριασμούς, και πως να αλλάζετε μεταξύ
+ του κανονικού χρήστη και του υπερχρήστη.</para>
+ </sect1>
+
+ <sect1 id="users-system">
+ <title>Λογαριασμοί Συστήματος</title>
+
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>system</secondary>
+ </indexterm>
+ <para>Οι χρήστες συστήματος είναι αυτοί που χρησιμοποιούνται για να
+ τρέχουν υπηρεσίες όπως το DNS, mail, web servers, και ούτω καθεξής.
+ Ο λόγος για αυτό είναι η ασφάλεια: αν όλες οι υπηρεσίες έτρεχαν
+ με δικαιώματα υπερχρήστη, θα λειτουργούσαν χωρίς περιορισμούς.</para>
+
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary><username>daemon</username></secondary>
+ </indexterm>
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary><username>operator</username></secondary>
+ </indexterm>
+ <para>Παραδείγματα από χρήστες συστήματος είναι οι
+ <username>daemon</username>, <username>operator</username>,
+ <username>bind</username> (για το Domain Name Service),
+ <username>news</username>, και <username>www</username>.</para>
+
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary><username>nobody</username></secondary>
+ </indexterm>
+ <para>Ο <username>nobody</username> είναι ο γενικός, χωρίς προνόμια,
+ χρήστης συστήματος. Ωστόσο, είναι σημαντικό να έχετε κατά νου ότι όσο
+ περισσότερες υπηρεσίες χρησιμοποιούν τον <username>nobody</username>,
+ τόσο περισσότερα αρχεία και διεργασίες θα συσχετιστούν με αυτόν, και
+ έτσι τόσο περισσότερο προνομιούχος γίνεται αυτός ο χρήστης.</para>
+ </sect1>
+
+ <sect1 id="users-user">
+ <title>Λογαριασμοί Χρηστών</title>
+
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>user</secondary>
+ </indexterm>
+ <para>Οι λογαριασμοί χρηστών είναι το πρωταρχικό μέσο πρόσβασης για
+ πραγματικούς ανθρώπους στο σύστημα, και μέσω αυτών απομονώνεται ο κάθε
+ χρήστης και το περιβάλλον εργασίας του, αποτρέποντας έτσι πιθανή
+ καταστροφή του συστήματος ή άλλων χρηστών, και επιτρέποντας σε κάθε
+ ένα να προσαρμόζει το δικό του περιβάλλον χωρίς να επηρεάζει τους
+ άλλους.</para>
+
+ <para>Κάθε άτομο που έχει πρόσβαση στο σύστημά σας θα πρέπει να έχει ένα
+ μοναδικό λογαριασμό χρήστη. Αυτό σας επιτρέπει να βρείτε ποιος κάνει
+ τι, αποτρέπει ανθρώπους από το να πειράζουν τις ρυθμίσεις ο ένας του
+ άλλου, ή να διαβάσει ο ένας τα mail του άλλου, και ούτω καθεξής.</para>
+
+ <para>Κάθε χρήστης μπορεί να στήσει το δικό του περιβάλλον ώστε να
+ προσαρμόσει την χρήση του συστήματος, χρησιμοποιώντας εναλλακτικά
+ κελύφη, συντάκτες, συνδυασμούς πλήκτρων και γλώσσας.</para>
+ </sect1>
+
+ <sect1 id="users-modifying">
+ <title>Τροποποιώντας Λογαριασμούς</title>
+
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>modifying</secondary>
+ </indexterm>
+
+ <para>Υπάρχει μια ποικιλία από διαφορετικές εντολές διαθέσιμες στο
+ περιβάλλον &unix; για να χειριστείτε λογαριασμούς χρηστών. Οι πιο
+ κοινές εντολές συνοψίζονται παρακάτω, ακολουθούμενες από λεπτομερή
+ παραδείγματα της χρήσης τους.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <colspec colwidth="1*">
+ <colspec colwidth="2*">
+
+ <thead>
+ <row>
+ <entry>Εντολή</entry>
+ <entry>Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>&man.adduser.8;</entry>
+ <entry>Η προτεινόμενη εφαρμογή γραμμής εντολών για την προσθήκη
+ νέων χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry>&man.rmuser.8;</entry>
+ <entry>Η προτεινόμενη εφαρμογή γραμμής εντολών για την
+ διαγραφή χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry>&man.chpass.1;</entry>
+ <entry>Ένα ευέλικτο εργαλείο για την αλλαγή πληροφοριών της βάσης
+ δεδομένων των χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry>&man.passwd.1;</entry>
+ <entry>Το απλό εργαλείο γραμμής εντολών για την αλλαγή των
+ κωδικών των χρηστών.</entry>
+ </row>
+
+ <row>
+ <entry>&man.pw.8;</entry>
+ <entry>Ένα δυνατό και ευέλικτο εργαλείο για την αλλαγή όλων των
+ ρυθμίσεων των λογαριασμών των χρηστών.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <sect2 id="users-adduser">
+ <title><command>adduser</command></title>
+
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>adding</secondary>
+ </indexterm>
+ <indexterm>
+ <primary><command>adduser</command></primary>
+ </indexterm>
+ <indexterm>
+ <primary><filename class="directory">/usr/share/skel</filename></primary>
+ </indexterm>
+ <indexterm><primary>skeleton directory</primary></indexterm>
+ <para>Το &man.adduser.8; είναι ένα απλό πρόγραμμα για να προσθέτετε
+ νέους χρήστες. Δημιουργεί εγγραφές στα αρχεία συστήματος
+ <filename>passwd</filename> και <filename>group</filename>.
+ Δημιουργεί επίσης έναν προσωπικό κατάλογο για τον νέο χρήστη,
+ αντιγράφει εκεί τα εξ' ορισμού αρχεία ρυθμίσεων
+ (<quote>dotfiles</quote>) από το
+ <filename>/usr/share/skel</filename>, και μπορεί προαιρετικά να
+ στείλει ένα μήνυμα καλωσορίσματος στον νέο χρήστη.</para>
+
+ <example>
+ <title>Προσθέτοντας έναν χρήστη στο &os;</title>
+
+ <screen>&prompt.root; <userinput>adduser</userinput>
+Username: <userinput>jru</userinput>
+Full name: <userinput>J. Random User</userinput>
+Uid (Leave empty for default):
+Login group [jru]:
+Login group is jru. Invite jru into other groups? []: <userinput>wheel</userinput>
+Login class [default]:
+Shell (sh csh tcsh zsh nologin) [sh]: <userinput>zsh</userinput>
+Home directory [/home/jru]:
+Home directory permissions (Leave empty for default):
+Use password-based authentication? [yes]:
+Use an empty password? (yes/no) [no]:
+Use a random password? (yes/no) [no]:
+Enter password:
+Enter password again:
+Lock out the account after creation? [no]:
+Username : jru
+Password : ****
+Full Name : J. Random User
+Uid : 1001
+Class :
+Groups : jru wheel
+Home : /home/jru
+Shell : /usr/local/bin/zsh
+Locked : no
+OK? (yes/no): <userinput>yes</userinput>
+adduser: INFO: Successfully added (jru) to the user database.
+Add another user? (yes/no): <userinput>no</userinput>
+Goodbye!
+&prompt.root;</screen>
+ </example>
+
+ <note>
+ <para>Ο κωδικός που πληκτρολογείτε δεν φαίνεται, ούτε εμφανίζονται
+ αστερίσκοι. Φροντίστε να μην γράψετε λάθος τον κωδικό.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="users-rmuser">
+ <title><command>rmuser</command></title>
+
+ <indexterm><primary><command>rmuser</command></primary></indexterm>
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>removing</secondary>
+ </indexterm>
+
+ <para>Μπορείτε να χρησιμοποιήσετε το &man.rmuser.8; για να
+ διαγράψετε εντελώς έναν χρήστη από το σύστημα. Η &man.rmuser.8;
+ εκτελεί τα παρακάτω βήματα:</para>
+
+ <procedure>
+ <step>
+ <para>Διαγράφει την εγγραφή &man.crontab.1; του χρήστη (αν
+ υπάρχει).</para>
+ </step>
+
+ <step>
+ <para>Διαγράφει όποια εργασία &man.at.1; ανήκει στον
+ χρήστη.</para>
+ </step>
+
+ <step>
+ <para>Τερματίζει όλες τις διεργασίες που ανήκουν στον χρήστη.</para>
+ </step>
+
+ <step>
+ <para>Διαγράφει τον χρήστη από το τοπικό αρχείο κωδικών του
+ συστήματος.</para>
+ </step>
+
+ <step>
+ <para>Διαγράφει τον προσωπικό κατάλογο του χρήστη (αν ανήκει στον
+ χρήστη).</para>
+ </step>
+
+ <step>
+ <para>Διαγράφει τα εισερχόμενα αρχεία mail που ανήκουν στον χρήστη
+ από το <filename>/var/mail</filename>.</para>
+ </step>
+
+ <step>
+ <para>Διαγράφει όλα τα αρχεία που ανήκουν στον χρήστη από τις
+ προσωρινές περιοχές αποθήκευσης όπως το
+ <filename>/tmp</filename>.</para>
+ </step>
+
+ <step>
+ <para>Τέλος, διαγράφει το όνομα χρήστη από όλες τις ομάδες στις
+ οποίες ανήκει στο <filename>/etc/group</filename>.</para>
+
+ <note>
+ <para>Αν κατά τη διαγραφή του χρήστη, υπάρχει ομάδα με το όνομα
+ του η οποία δεν περιέχει άλλα μέλη, η ομάδα αυτή διαγράφεται,
+ Η συμπεριφορά αυτή είναι συμπληρωματική με την αντίστοιχη
+ της &man.adduser.8;, που δημιουργεί ομάδα με το όνομα του
+ χρήστη κατά τη δημιουργία του λογαριασμού.</para>
+ </note>
+ </step>
+ </procedure>
+
+ <para>Το &man.rmuser.8; δεν μπορεί να χρησιμοποιηθεί για την διαγραφή
+ των λογαριασμών υπερχρήστη, αφού αυτό είναι σχεδόν πάντα μια ένδειξη
+ μαζικής καταστροφής.</para>
+
+ <para>Εξ' ορισμού, χρησιμοποιείται μια διαδραστική λειτουργία, που
+ προσπαθεί να επιβεβαιώσει ότι σίγουρα γνωρίζετε τι πρόκειται να
+ κάνετε.</para>
+
+ <example>
+ <title><command>rmuser</command> Διαδραστική Διαγραφή
+ Λογαριασμού</title>
+
+ <screen>&prompt.root; <userinput>rmuser jru</userinput>
+Matching password entry:
+jru:*:1001:1001::0:0:J. Random User:/home/jru:/usr/local/bin/zsh
+Is this the entry you wish to remove? <userinput>y</userinput>
+Remove user's home directory (/home/jru)? <userinput>y</userinput>
+Updating password file, updating databases, done.
+Updating group file: trusted (removing group jru -- personal group is empty) done.
+Removing user's incoming mail file /var/mail/jru: done.
+Removing files belonging to jru from /tmp: done.
+Removing files belonging to jru from /var/tmp: done.
+Removing files belonging to jru from /var/tmp/vi.recover: done.
+&prompt.root;</screen>
+ </example>
+ </sect2>
+
+ <sect2 id="users-chpass">
+ <title><command>chpass</command></title>
+
+ <indexterm><primary><command>chpass</command></primary></indexterm>
+ <para>Το &man.chpass.1; αλλάζει πληροφορίες της βάσης δεδομένων
+ του χρήστη όπως κωδικούς, κελύφη, και προσωπικές πληροφορίες.</para>
+
+ <para>Μόνο διαχειριστές του συστήματος, όπως ο υπερχρήστης, μπορεί να
+ αλλάζει τις πληροφορίες άλλων χρηστών καθώς και τους κωδικούς με το
+ &man.chpass.1;.</para>
+
+ <para>Όταν δεν δίνονται επιλογές, εκτός από ένα προαιρετικό όνομα
+ χρήστη, το &man.chpass.1; εμφανίζει έναν συντάκτη που περιέχει τις
+ πληροφορίες του χρήστη. Όταν ο χρήστης βγει από τον συντάκτη, η βάση
+ δεδομένων χρηστών ενημερώνεται με τις νέες πληροφορίες.</para>
+
+ <note>
+ <para>Κατά την έξοδο από τον συντάκτη, αν δεν είστε ο υπερχρήστης,
+ θα ερωτηθείτε για τον κωδικό σας.</para>
+ </note>
+
+ <example>
+ <title>Διαδραστική <command>chpass</command> από τον
+ Υπερχρήστη</title>
+
+ <screen>#Changing user database information for jru.
+Login: jru
+Password: *
+Uid [#]: 1001
+Gid [# or name]: 1001
+Change [month day year]:
+Expire [month day year]:
+Class:
+Home directory: /home/jru
+Shell: /usr/local/bin/zsh
+Full Name: J. Random User
+Office Location:
+Office Phone:
+Home Phone:
+Other information:</screen>
+ </example>
+
+ <para>Ο κανονικός χρήστης μπορεί να αλλάξει μόνο ένα μικρό υποσύνολο
+ από αυτές τις πληροφορίες, και μόνο για τον εαυτό του.</para>
+
+ <example>
+ <title>Διαδραστική <command>chpass</command> από Κανονικό
+ Χρήστη</title>
+
+ <screen>#Changing user database information for jru.
+Shell: /usr/local/bin/zsh
+Full Name: J. Random User
+Office Location:
+Office Phone:
+Home Phone:
+Other information:</screen>
+ </example>
+
+ <note>
+ <para>Οι &man.chfn.1; και &man.chsh.1; είναι
+ απλά σύνδεσμοι στην &man.chpass.1;, όπως
+ είναι και οι &man.ypchpass.1;,
+ &man.ypchfn.1;, και
+ &man.ypchsh.1;. Η υποστήριξη NIS είναι αυτόματη, έτσι
+ δεν είναι απαραίτητο να καθορίσετε το <literal>yp</literal> πριν
+ την εντολή. Αν αυτό σας μπερδεύει, μην ανησυχείτε, το NIS θα
+ καλυφθεί στο <xref linkend="network-servers">.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="users-passwd">
+ <title><command>passwd</command></title>
+
+ <indexterm><primary><command>passwd</command></primary></indexterm>
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>changing password</secondary>
+ </indexterm>
+ <para>Το &man.passwd.1; είναι ο συνήθης τρόπος να
+ αλλάξετε το δικό σας κωδικό σαν χρήστης, ή τον κωδικό άλλου χρήστη
+ σαν υπερχρήστης.</para>
+
+ <note>
+ <para>Για να αποτραπούν τυχαίες ή μη εξουσιοδοτημένες αλλαγές, θα
+ σας ζητηθεί ο παλιός κωδικός πριν ορίσετε νέο.</para>
+ </note>
+
+ <example>
+ <title>Αλλάζοντας τον Κωδικό σας</title>
+
+ <screen>&prompt.user; <userinput>passwd</userinput>
+Changing local password for jru.
+Old password:
+New password:
+Retype new password:
+passwd: updating the database...
+passwd: done</screen>
+ </example>
+
+ <example>
+ <title>Αλλάζοντας τον Κωδικό άλλου Χρήστη ως Υπερχρήστης</title>
+
+ <screen>&prompt.root; <userinput>passwd jru</userinput>
+Changing local password for jru.
+New password:
+Retype new password:
+passwd: updating the database...
+passwd: done</screen>
+ </example>
+
+ <note>
+ <para>Όσο για τις &man.chpass.1;,
+ &man.yppasswd.1; είναι απλά σύνδεσμοι στην
+ &man.passwd.1;, έτσι το NIS λειτουργεί με οποιαδήποτε
+ εντολή.</para>
+ </note>
+ </sect2>
+
+ <sect2 id="users-pw">
+ <title><command>pw</command></title>
+ <indexterm><primary><command>pw</command></primary></indexterm>
+
+ <para>Η &man.pw.8; είναι μια λειτουργία της γραμμής εντολών για
+ δημιουργία, διαγραφή, αλλαγή, και εμφάνιση χρηστών και ομάδων.
+ Λειτουργεί ως front end για τα αρχεία χρηστών και ομάδων του
+ συστήματος. Η &man.pw.8; έχει ένα πολύ δυνατό σύνολο επιλογών
+ γραμμής εντολών που την καθιστούν κατάλληλη για χρήση σε δέσμες
+ εντολών (scripts) κελυφών, αλλά στους νέους χρήστες ίσως φανεί
+ περισσότερο περίπλοκη από ότι οι άλλες εντολές που παρουσιάζονται
+ εδώ.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="users-limiting">
+ <title>Περιορίζοντας Χρήστες</title>
+
+ <indexterm><primary>limiting users</primary></indexterm>
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>limiting</secondary>
+ </indexterm>
+ <para>Αν έχετε χρήστες, ίσως έχετε σκεφτεί να περιορίσετε την δυνατότητα
+ χρήσης του συστήματος από αυτούς. Το &os; παρέχει στο διαχειριστή
+ αρκετούς τρόπους για να περιορίσει τους πόρους του συστήματος που
+ μπορεί να χρησιμοποιήσει ένα άτομο. Αυτά τα όρια χωρίζονται σε δύο
+ τμήματα: μερίδια δίσκου (disk quotas), και άλλα όρια πόρων.</para>
+
+ <indexterm><primary>quotas</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>quotas</secondary>
+ </indexterm>
+ <indexterm><primary>disk quotas</primary></indexterm>
+ <para>Τα μερίδια δίσκου περιορίζουν την χρήση των δίσκων στους χρήστες,
+ και παρέχουν έναν τρόπο γρήγορου ελέγχου αυτής της χρήσης χωρίς να
+ υπολογίζονται από την αρχή κάθε φορά. Τα μερίδια συζητούνται στο <xref
+ linkend="quotas">.</para>
+
+ <para>Τα άλλα όρια πόρων περιλαμβάνουν τρόπους για περιορισμό
+ χρήσης της CPU, της μνήμης, και άλλων πόρων που μπορεί να καταναλώσει
+ ένα χρήστης. Τα όρια αυτά καθορίζονται χρησιμοποιώντας κλάσεις
+ σύνδεσης και συζητούνται εδώ.</para>
+
+ <indexterm>
+ <primary><filename>/etc/login.conf</filename></primary>
+ </indexterm>
+ <para>Οι κλάσεις σύνδεσης καθορίζονται στο
+ <filename>/etc/login.conf</filename>. Οι ακριβείς έννοιες είναι πέρα
+ από τον σκοπό αυτού του τμήματος, αλλά περιγράφονται με λεπτομέρεια
+ στην σελίδα &man.login.conf.5; του manual. Είναι αρκετό να πούμε
+ ότι κάθε χρήστης ανήκει σε μία κλάση σύνδεσης (την
+ <literal>default</literal> εξ' ορισμού), και ότι κάθε κλάση σύνδεσης
+ έχει ένα σύνολο από δυνατότητες σύνδεσης που σχετίζονται με αυτήν. Μια
+ δυνατότητα σύνδεσης καθορίζεται από ένα ζεύγος
+ <literal><replaceable>name</replaceable>=<replaceable>value</replaceable></literal>, όπου
+ <replaceable>name</replaceable> είναι ένα γνωστό αναγνωριστικό και
+ <replaceable>value</replaceable> είναι μια επιλεγμένη τιμή που
+ θα χρησιμοποιηθεί σύμφωνα με το όνομα. To στήσιμο κλάσεων
+ σύνδεσης και δυνατοτήτων είναι μια μάλλον απλή διαδικασία και
+ περιγράφεται επίσης στο &man.login.conf.5;.</para>
+
+ <note>
+ <para>Το σύστημα συνήθως δεν διαβάζει απευθείας το αρχείο ρυθμίσεων στο
+ <filename>/etc/login.conf</filename>, αλλά το αρχείο
+ βάσης δεδομένων <filename>/etc/login.conf.db</filename> το οποίο
+ παρέχει γρηγορότερες αναζητήσεις. Για να δημιουργήσουμε το
+ <filename>/etc/login.conf.db</filename> από το
+ <filename>/etc/login.conf</filename>, εκτελούμε την παρακάτω
+ εντολή:</para>
+
+ <screen>&prompt.root; <userinput>cap_mkdb /etc/login.conf</userinput></screen>
+ </note>
+
+ <para>Τα όρια πόρων είναι διαφορετικά από τις απλές δυνατότητες
+ σύνδεσης για δύο λόγους. Πρώτα, για κάθε όριο, υπάρχει ένα μεταβλητό
+ (τρέχον) και ένα μόνιμο όριο. Ένα μεταβλητό όριο μπορεί να αλλάξει από
+ τον χρήστη ή την εφαρμογή, αλλά δεν μπορεί να είναι υψηλότερο από το
+ μόνιμο όριο. Το τελευταίο μπορεί να ελαττωθεί από τον χρήστη, αλλά
+ ποτέ να αυξηθεί. Δεύτερον, τα περισσότερα όρια πόρων εφαρμόζονται ανά
+ διεργασία σε ένα συγκεκριμένο χρήστη, όχι στον χρήστη συνολικά.
+ Σημειώστε, όμως, ότι αυτές οι διαφορές είναι υποχρεωτικές από τον
+ συγκεκριμένο χειρισμό των ορίων, όχι από την υλοποίηση του πλαισίου
+ των δυνατοτήτων σύνδεσης (δηλαδή, δεν είναι <emphasis>όντως</emphasis>
+ μια ειδική περίπτωση των δυνατοτήτων σύνδεσης).</para>
+
+ <para>Και έτσι, χωρίς πρόσθετη φασαρία, παρακάτω είναι τα πιο συχνά
+ χρησιμοποιούμενα όρια πόρων (τα υπόλοιπα, μαζί με όλες τις άλλες
+ δυνατότητες σύνδεσης, μπορείτε να τα βρείτε στο
+ &man.login.conf.5;).</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><literal>coredumpsize</literal></term>
+
+ <listitem>
+ <indexterm><primary>coredumpsize</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>coredumpsize</secondary>
+ </indexterm>
+ <para>Το όριο στο μέγεθος ενός αρχείου core που δημιουργείται από
+ ένα πρόγραμμα, είναι για προφανείς λόγους, εξαρτώμενο από άλλα
+ όρια της χρήσης του δίσκου (π.χ.,
+ <literal>filesize</literal>, ή μερίδια δίσκου).
+ Παρ' όλα αυτά, χρησιμοποιείται συχνά σαν μία λιγότερο αυστηρή
+ μέθοδο ελέγχου της κατανάλωσης χώρου του δίσκου: αφού οι χρήστες
+ δεν δημιουργούν αρχεία core από μόνοι τους, και συχνά δεν τα
+ διαγράφουν, ορίζοντας το coredumpsize μπορεί να τους γλυτώσει
+ από πρόωρο τέλος αποθηκευτικού χώρου, αν για παράδειγμα
+ καταρρεύσει ένα μεγάλο πρόγραμμα (όπως
+ π.χ. το <application>emacs</application>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>cputime</literal></term>
+
+ <listitem>
+ <indexterm><primary>cputime</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>cputime</secondary>
+ </indexterm>
+ <para>Αυτό είναι το μέγιστο ποσό χρόνου της CPU που μπορεί να
+ καταναλώσει ένας χρήστης ή μια διεργασία. Διεργασίες που
+ υπερβαίνουν αυτό το όριο θα τερματιστούν από τον πυρήνα.</para>
+
+ <note>
+ <para>Αυτό είναι ένα όριο στον <emphasis>χρόνο</emphasis> της
+ CPU που καταναλώνεται, όχι στο ποσοστό της CPU όπως
+ εμφανίζεται σε κάποια πεδία από τις &man.top.1; και
+ &man.ps.1;. Όριο στο ποσοστό, μέχρι τη στιγμή που γράφονται
+ αυτές οι γραμμές, δεν είναι δυνατό, και μάλλον θα είναι
+ άχρηστο: ένας μεταγλωττιστής&mdash;πιθανότατα μια έγκυρη
+ εργασία&mdash; μπορεί εύκολα να χρησιμοποιήσει σχεδόν το 100%
+ μιας CPU για κάποιο χρόνο.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>filesize</literal></term>
+
+ <listitem>
+ <indexterm><primary>filesize</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>filesize</secondary>
+ </indexterm>
+ <para>Αυτό είναι το μέγιστο μέγεθος ενός αρχείου που μπορεί να
+ κατέχει ένας χρήστης. Σε αντίθεση με τα
+ <link linkend="quotas">μερίδια δίσκου</link>, αυτό το όριο
+ επιβάλλεται σε κάθε αρχείο χωριστά, όχι στο σύνολο όλων
+ των αρχείων που κατέχει ένας χρήστης.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>maxproc</literal></term>
+
+ <listitem>
+ <indexterm><primary>maxproc</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>maxproc</secondary>
+ </indexterm>
+ <para>Αυτό είναι ο μέγιστος αριθμός διεργασιών που μπορεί να εκτελεί
+ ένας χρήστης. Περιλαμβάνει με τον ίδιο τρόπο διεργασίες τόσο
+ παρασκηνίου όσο και προσκηνίου. Για προφανείς λόγους, δεν μπορεί
+ να είναι μεγαλύτερος από το όριο του συστήματος που ορίζεται από
+ το <varname>kern.maxproc</varname> &man.sysctl.8;. Επίσης
+ σημειώστε ότι θέτοντας πολύ μικρή τιμή, μπορεί να παρεμποδίσετε
+ την παραγωγικότητα ενός χρήστη: είναι συχνά χρήσιμο να
+ συνδέεται κάποιος πολλαπλές φορές ή να εκτελεί διοχετεύσεις
+ (pipelines). Κάποιες εργασίες, όπως η μεταγλώττιση ενός μεγάλου
+ προγράμματος, δημιουργούν επίσης πολλές διεργασίες
+ (π.χ. &man.make.1;, &man.cc.1;, και άλλοι ενδιάμεσοι
+ προεπεξεργαστές).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>memorylocked</literal></term>
+
+ <listitem>
+ <indexterm><primary>memorylocked</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>memorylocked</secondary>
+ </indexterm>
+ <para>Αυτό είναι το μέγιστο ποσό μνήμης που μπορεί να ζητήσει
+ μια διεργασία να κλειδωθεί στην κύρια μνήμη (π.χ., βλέπε
+ &man.mlock.2;). Κάποια κρίσιμα προγράμματα του συστήματος, όπως
+ το &man.amd.8;, κλειδώνουν στην κύρια μνήμη έτσι ώστε στην
+ περίπτωση που αντιμετατεθούν, δεν συνεισφέρουν στην επιβάρυνση
+ του συστήματος σε περίπτωση προβλήματος.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>memoryuse</literal></term>
+
+ <listitem>
+ <indexterm><primary>memoryuse</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>memoryuse</secondary>
+ </indexterm>
+ <para>Αυτό είναι το μέγιστο μέγεθος μνήμης που μπορεί μια διεργασία
+ να καταναλώσει σε κάθε χρονική στιγμή. Περιλαμβάνει συνολικά την
+ κύρια μνήμη και την χρήση της αντιμετάθεσης (swap). Δεν πρόκειται
+ για κάποιο συνολικό όριο για τον περιορισμό της κατανάλωσης της
+ μνήμης, αλλά είναι μια καλή αρχή.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>openfiles</literal></term>
+
+ <listitem>
+ <indexterm><primary>openfiles</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>openfiles</secondary>
+ </indexterm>
+ <para>Αυτός είναι ο μέγιστος αριθμός αρχείων που μπορεί να έχει
+ ανοικτά μια διεργασία. Στο &os;, τα αρχεία επίσης
+ χρησιμοποιούνται για να απεικονίσουν υποδοχές (sockets) και
+ κανάλια IPC. Προσέξτε λοιπόν να μην θέσετε αυτό το όριο πολύ
+ χαμηλά. Το συνολικό όριο του συστήματος καθορίζεται από
+ το <varname>kern.maxfiles</varname> &man.sysctl.8;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>sbsize</literal></term>
+
+ <listitem>
+ <indexterm><primary>sbsize</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>sbsize</secondary>
+ </indexterm>
+ <para>Αυτό είναι το όριο της μνήμης δικτύου, και άρα των
+ mbufs, που μπορεί να καταναλώσει ένας χρήστης. Ξεκίνησε ως
+ απάντηση σε μια παλιά DoS επίθεση η οποία δημιουργούσε πολλά
+ sockets, αλλά μπορεί να χρησιμοποιηθεί γενικά για τον περιορισμό
+ των επικοινωνιών δικτύου.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>stacksize</literal></term>
+
+ <listitem>
+ <indexterm><primary>stacksize</primary></indexterm>
+ <indexterm>
+ <primary>limiting users</primary>
+ <secondary>stacksize</secondary>
+ </indexterm>
+ <para>Αυτό είναι το μέγιστο όριο που μπορεί να μεγαλώσει η στοίβα
+ μιας διεργασίας. Από μόνο του δεν είναι αρκετό για να
+ περιοριστεί το μέγεθος μνήμης που μπορεί να χρησιμοποιήσει ένα
+ πρόγραμμα. Συνεπώς, πρέπει να χρησιμοποιείται σε συνδυασμό με
+ άλλα όρια.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Υπάρχουν μερικά ακόμα πράγματα που πρέπει να θυμάστε όταν θέτετε
+ όρια σε πόρους. Παρακάτω είναι μερικές γενικές συμβουλές, προτάσεις,
+ και διάφορα σχόλια.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Οι διεργασίες που ξεκινούν στην εκκίνηση του συστήματος από το
+ <filename>/etc/rc</filename> εκχωρούνται στην
+ κλάση σύνδεσης <literal>daemon</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Αν και το <filename>/etc/login.conf</filename> που έρχεται
+ με το σύστημα είναι μια καλή πηγή λογικών τιμών για τα περισσότερα
+ όρια, μόνο εσείς, ο διαχειριστής, μπορεί να ξέρετε τι είναι
+ κατάλληλο για το σύστημα σας. Θέτοντας ένα όριο πολύ ψηλά μπορεί
+ να διευκολύνετε την κατάχρηση του συστήματος σας, ενώ θέτοντας το
+ πολύ χαμηλά μπορεί να περιορίσετε την παραγωγικότητα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στους χρήστες του X Window System (X11) θα πρέπει μάλλον να
+ παραχωρηθούν περισσότεροι πόροι από ότι σε άλλους χρήστες. Το X11
+ από μόνο του καταναλώνει πολλούς πόρους, αλλά επίσης ενθαρρύνει
+ τους χρήστες να τρέχουν περισσότερα προγράμματα ταυτόχρονα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Θυμηθείτε ότι πολλά όρια εφαρμόζονται σε κάθε διεργασία χωριστά,
+ όχι στον χρήστη συνολικά. Για παράδειγμα, θέτοντας
+ <varname>openfiles</varname> σε 50 σημαίνει ότι κάθε διεργασία
+ που εκτελεί ο χρήστης μπορεί να ανοίξει έως 50 αρχεία. Έτσι, ο
+ συνολικός αριθμός αρχείων που μπορεί να ανοίξει ο χρήστης είναι η
+ τιμή του <literal>openfiles</literal> πολλαπλασιαζόμενη με την
+ τιμή του <literal>maxproc</literal>. Αυτό επίσης ισχύει για την
+ κατανάλωση μνήμης.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για περισσότερες πληροφορίες στα όρια πόρων και τις κλάσεις
+ σύνδεσης και των δυνατοτήτων γενικά, παρακαλούμε συμβουλευτείτε τις
+ σχετικές σελίδες του εγχειριδίου:
+ &man.cap.mkdb.1;, &man.getrlimit.2;, &man.login.conf.5;.</para>
+ </sect1>
+
+ <sect1 id="users-groups">
+ <title>Ομάδες</title>
+
+ <indexterm><primary>groups</primary></indexterm>
+ <indexterm>
+ <primary><filename>/etc/groups</filename></primary>
+ </indexterm>
+ <indexterm>
+ <primary>accounts</primary>
+ <secondary>groups</secondary>
+ </indexterm>
+ <para>Μία ομάδα είναι απλά μία λίστα χρηστών. Οι ομάδες αναγνωρίζονται
+ από το όνομά τους και το GID (Group ID). Στο &os; (και στα περισσότερα
+ άλλα όμοια &unix; συστήματα), οι δύο παράγοντες που ο πυρήνας
+ χρησιμοποιεί για να αποφασίσει αν μία διεργασία επιτρέπεται να κάνει
+ κάτι είναι το ID του χρήστη της και η λίστα με τις ομάδες που ανήκει.
+ Σε αντίθεση με το ID του χρήστη, μια διεργασία έχει μια λίστα με τις
+ ομάδες που σχετίζονται με αυτήν. Μπορεί να ακούσετε κάποια πράγματα
+ να αναφέρονται στο <quote>group ID</quote> ενός χρήστη ή μιας
+ διεργασίας. Τις περισσότερες φορές, αυτό σημαίνει απλά την πρώτη ομάδα
+ της λίστας.</para>
+
+ <para>Η αντιστοίχηση του ονόματος της ομάδας στο ID της ομάδας βρίσκεται
+ στο <filename>/etc/group</filename>. Αυτό είναι ένα αρχείο απλού
+ κειμένου με τέσσερα πεδία χωρισμένα με κόμματα. Το πρώτο πεδίο είναι το
+ όνομα της ομάδας, το δεύτερο είναι ο κρυπτογραφημένος κωδικός, το
+ τρίτο το ID της ομάδας, και το τέταρτο η λίστα των μελών, χωρισμένη με
+ κόμματα. Μπορείτε να την επεξεργαστείτε άφοβα με το χέρι
+ (θεωρώντας, φυσικά, ότι δεν κάνετε συντακτικά λάθη!). Για μια πιο
+ ολοκληρωμένη περιγραφή της σύνταξης, δείτε την σελίδα manual
+ &man.group.5;.</para>
+
+ <para>Αν δεν θέλετε να επεξεργαστείτε το <filename>/etc/group</filename>
+ με το χέρι, μπορείτε να χρησιμοποιήσετε την &man.pw.8; εντολή για να
+ προσθέσετε και να επεξεργαστείτε ομάδες. Για παράδειγμα, για να
+ προσθέσετε μια ομάδα που λέγεται <groupname>teamtwo</groupname> και
+ μετά να επιβεβαιώσετε ότι υπάρχει, μπορείτε να χρησιμοποιήσετε:</para>
+
+ <example>
+ <title>Προσθέτοντας μια Ομάδα Χρησιμοποιώντας το &man.pw.8;</title>
+
+ <screen>&prompt.root; <userinput>pw groupadd teamtwo</userinput>
+&prompt.root; <userinput>pw groupshow teamtwo</userinput>
+teamtwo:*:1100:</screen>
+ </example>
+
+ <para>Ο αριθμός <literal>1100</literal> παραπάνω είναι το ID της
+ ομάδας <groupname>teamtwo</groupname>. Αυτή την στιγμή, η
+ <groupname>teamtwo</groupname> δεν έχει μέλη, και γι'αυτό είναι μάλλον
+ άχρηστη. Ας το αλλάξουμε αυτό προσκαλώντας τον <username>jru</username>
+ στην ομάδα <groupname>teamtwo</groupname>.</para>
+
+ <example>
+ <title>Καθορισμός της Λίστας Μελών μιας Ομάδας με Χρήση του
+ &man.pw.8;</title>
+
+ <screen>&prompt.root; <userinput>pw groupmod teamtwo -M jru</userinput>
+&prompt.root; <userinput>pw groupshow teamtwo</userinput>
+teamtwo:*:1100:jru</screen>
+ </example>
+
+ <para>Η παράμετρος στην επιλογή <option>-M</option> είναι μια
+ λίστα χρηστών που πρόκειται να γίνουν μέλη της ομάδας, χωρισμένη με
+ κόμματα. Από τα προηγούμενα τμήματα, γνωρίζουμε ότι και το αρχείο
+ κωδικών (password file) περιέχει επίσης μια ομάδα για κάθε χρήστη.
+ Ο χρήστης εισάγεται αυτόματα (από το σύστημα) ως μέλος της ομάδας
+ αυτής. Ο χρήστης δεν θα εμφανίζεται ως μέλος της αρχικής αυτής ομάδας
+ όταν χρησιμοποιείται η επιλογή <option>groupshow</option> με την
+ &man.pw.8;, αλλά θα εμφανίζεται όταν η πληροφορία αναζητείται μέσω της
+ &man.id.1; ή παρόμοιου εργαλείου. Με άλλα λόγια, η &man.pw.8;
+ χειρίζεται μόνο το αρχείο <filename>/etc/group</filename>, και δεν θα
+ προσπαθήσει ποτέ να διαβάσει πρόσθετα δεδομένα από το
+ <filename>/etc/passwd</filename>.</para>
+
+ <example>
+ <title>Προσθήκη Νέου Μέλους στην Ομάδα με Χρήση της &man.pw.8;</title>
+
+ <screen>&prompt.root; <userinput>pw groupmod teamtwo -m db</userinput>
+&prompt.root; <userinput>pw groupshow teamtwo</userinput>
+teamtwo:*:1100:jru,db</screen>
+ </example>
+
+ <para>Η παράμετρος στην επιλογή <option>-m</option> είναι μια λίστα
+ χρηστών (χωρισμένη με κόμματα) που πρόκειται να προστεθούν στα
+ υπάρχοντα μέλη της ομάδας. Σε αντίθεση με το προηγούμενο παράδειγμα,
+ οι χρήστες αυτοί προστίθενται στην ομάδα, και δεν αντικαθιστούν τους
+ χρήστες που ήδη ανήκουν σε αυτή.</para>
+
+ <example>
+ <title>Χρησιμοποιώντας την &man.id.1; για Προσδιορισμό Μελών μιας
+ Ομάδας</title>
+
+ <screen>&prompt.user; <userinput>id jru</userinput>
+uid=1001(jru) gid=1001(jru) groups=1001(jru), 1100(teamtwo)</screen>
+ </example>
+
+ <para>Όπως μπορείτε να δείτε, ο <username>jru</username> είναι μέλος των
+ ομάδων <groupname>jru</groupname> και
+ <groupname>teamtwo</groupname>.</para>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με την &man.pw.8;, δείτε την
+ σελίδα manual, και για περισσότερες πληροφορίες σχετικά με την
+ μορφοποίηση του <filename>/etc/group</filename>, συμβουλευτείτε την
+ σελίδα manual &man.group.5;.</para>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml b/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml
new file mode 100644
index 0000000000..e844ff2ca5
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/vinum/chapter.sgml
@@ -0,0 +1,1364 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Ο Διαχειριστής Τόμων Vinum
+
+ Γράφτηκε από τον:
+ Greg Lehey (grog at lemis dot com)
+
+ Ενσωματώθηκε στο Εγχειρίδιο του FreeBSD από τους:
+ Hiten Pandya <hmp@FreeBSD.org>
+ Tom Rhodes <trhodes@FreeBSD.org>
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/vinum/chapter.sgml
+ %SRCID% 1.49
+
+-->
+
+<chapter id="vinum-vinum">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Greg</firstname>
+ <surname>Lehey</surname>
+ <contrib>Αρχική συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Ο Διαχειριστής Τόμων Vinum</title>
+
+ <sect1 id="vinum-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Οτιδήποτε δίσκους και αν έχετε, πάντα υπάρχουν πιθανά
+ προβλήματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Μπορεί να είναι πολύ μικροί.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να είναι πολύ αργοί.</para>
+ </listitem>
+
+ <listitem>
+ <para>Μπορεί να μην είναι αρκετά αξιόπιστοι.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για τα προβλήματα αυτά, έχουν προταθεί και υλοποιηθεί διάφορες
+ λύσεις. Ένας συχνά χρησιμοποιούμενος τρόπος προστασίας, είναι με την
+ χρήση πολλαπλών και ορισμένες φορές περιττών (redundant) δίσκων. Εκτός
+ από την υποστήριξη που παρέχεται για συσκευές (κάρτες και ελεγκτές)
+ hardware RAID, το βασικό σύστημα του &os; περιλαμβάνει το διαχειριστή
+ τόμων (volume manager) Vinum, ένα πρόγραμμα οδήγησης τύπου
+ μπλοκ το οποίο υλοποιεί εικονικούς δίσκους.
+ Το <emphasis>Vinum</emphasis> αποκαλείται και
+ <emphasis>Διαχειριστής Τόμων</emphasis>, και είναι ένας οδηγός
+ εικονικών δίσκων που αντιμετωπίζει τα παραπάνω τρία προβλήματα.
+ Το Vinum παρέχει καλύτερη ευελιξία, απόδοση και αξιοπιστία σε σχέση με
+ τα παραδοσιακά συστήματα αποθήκευσης, και υλοποιεί τα μοντέλα RAID-0,
+ RAID-1 και RAID-5, τόσο μεμονωμένα, όσο και σε συνδυασμό μεταξύ
+ τους.</para>
+
+ <para>Το κεφάλαιο αυτό παρέχει μια επισκόπηση των πιθανών προβλημάτων των
+ παραδοσιακών συστημάτων αποθήκευσης, και μια εισαγωγή στο Διαχειριστή
+ Τόμων Vinum.</para>
+
+ <note>
+ <para>Ξεκινώντας από το &os;&nbsp;5 και μετά, το Vinum ξαναγράφτηκε
+ ώστε να ενσωματωθεί στην αρχιτεκτονική GEOM (<xref linkend="GEOM">),
+ διατηρώντας ωστόσο τις αρχικές ιδέες, ορολογία, και τη μορφή των
+ μετα-δεδομένων (metadata) που αποθηκεύονται στον δίσκο.
+ Η νέα αυτή εκδοχή ονομάζεται <emphasis>gvinum</emphasis> (από το
+ <emphasis>GEOM vinum</emphasis>). Το ακόλουθο κείμενο αναφέρεται
+ συνήθως στο <emphasis>Vinum</emphasis> ως αφηρημένη έννοια, άσχετα με
+ τις λεπτομέρειες της υλοποίησης. Όλες οι εντολές θα πρέπει τώρα να
+ καλούνται με τη χρήση της <command>gvinum</command>,
+ το άρθρωμα πυρήνα (kernel module) έχει μετονομαστεί σε
+ <filename>geom_vinum.ko</filename> από <filename>vinum.ko</filename>,
+ και όλα τα αρχεία συσκευών βρίσκονται στον κατάλογο
+ <filename class="directory">/dev/gvinum</filename> αντί για
+ <filename class="directory">/dev/vinum</filename>. Από το
+ &os;&nbsp;6 και μετά, η παλιά υλοποίηση του Vinum δεν περιλαμβάνεται
+ πλέον στο βασικό σύστημα.</para>
+ </note>
+ </sect1>
+
+ <sect1 id="vinum-intro">
+ <title>Οι Δίσκοι Είναι Πολύ Μικροί</title>
+
+ <indexterm><primary>Vinum</primary></indexterm>
+ <indexterm><primary>RAID</primary>
+ <secondary>software</secondary></indexterm>
+
+ <para>Οι δίσκοι γίνονται ολοένα και μεγαλύτεροι, αλλά με τον ίδιο ρυθμό
+ αυξάνονται επίσης και οι απαιτήσεις μας σε αποθηκευτικό χώρο. Πολλές
+ φορές θα βρεθείτε σε θέση να χρειάζεστε ένα σύστημα αρχείων μεγαλύτερο
+ από τους δίσκους που έχετε διαθέσιμους. Σίγουρα το πρόβλημα αυτό δεν
+ είναι τόσο έντονο όσο πριν δέκα χρόνια, αλλά εξακολουθεί να υπάρχει.
+ Μερικά συστήματα επιλύουν αυτό το πρόβλημα, δημιουργώντας μια εικονική
+ συσκευή που αποθηκεύει τα δεδομένα σε ένα αριθμό διακριτών
+ δίσκων.</para>
+ </sect1>
+
+ <sect1 id="vinum-access-bottlenecks">
+ <title>Καθυστερήσεις Πρόσβασης</title>
+
+ <para>Στα μοντέρνα συστήματα, υπάρχει συχνά ανάγκη πρόσβασης δεδομένων
+ από πολλές διεργασίες ταυτόχρονα. Για παράδειγμα, μεγάλοι εξυπηρετητές
+ FTP ή HTTP μπορεί να έχουν ανά πάσα στιγμή χιλιάδες ταυτόχρονες
+ εξωτερικές συνδέσεις και να διαθέτουν πολλαπλές διεπαφές 100&nbsp;Mbit/s
+ οι οποίες ξεπερνάνε κατά πολύ τις δυνατότητες μεταφοράς δεδομένων των
+ περισσότερων σκληρών δίσκων.</para>
+
+ <para>Τα τρέχοντα μοντέλα σκληρών δίσκων μπορούν να μεταφέρουν δεδομένα
+ σειριακά με ταχύτητα μέχρι και 70&nbsp;MB/s, αλλά η τιμή αυτή έχει μικρή
+ σημασία σε ένα περιβάλλον όπου πολλές ανεξάρτητες διεργασίες χρειάζονται
+ πρόσβαση στον ίδιο δίσκο. Σε τέτοιες περιπτώσεις, κάθε διεργασία μπορεί
+ να επιτύχει μόνο ένα μικρό ποσοστό της μέγιστης αυτής απόδοσης. Είναι
+ πιο ενδιαφέρον να δούμε το πρόβλημα από την πλευρά του υποσυστήματος
+ δίσκων: ο σημαντικός παράγοντας είναι ο φόρτος στον οποίο υποβάλλεται
+ το υποσύστημα κατά τη διάρκεια μιας μεταφοράς. Με άλλα λόγια, ο χρόνος
+ που παραμένουν απασχολημένοι οι δίσκοι εξαιτίας της μεταφοράς.</para>
+
+ <para>Σε κάθε μεταφορά δεδομένων, ο δίσκος θα πρέπει πρώτα να τοποθετήσει
+ τις κεφαλές στο σωστό σημείο, να περιμένει να περάσει ο πρώτος τομέας
+ κάτω από την κεφαλή ανάγνωσης, και έπειτα να εκτελέσει τη μεταφορά.
+ Οι ενέργειες αυτές μπορούν να θεωρηθούν ατομικές: δεν έχει νόημα να
+ προσπαθήσουμε να τις διακόψουμε.</para>
+
+ <para><anchor id="vinum-latency"> Ας θεωρήσουμε μια τυπική μεταφορά
+ περίπου 10&nbsp;kB. Η τρέχουσα γενιά δίσκων υψηλής απόδοσης μπορεί να
+ τοποθετήσει τις κεφαλές στη σωστή θέση σε περίπου 3.5&nbsp;ms. Οι πιο
+ γρήγοροι δίσκοι έχουν ταχύτητα περιστροφής 15.000 στροφές το λεπτό,
+ έτσι ο μέσος χρόνος καθυστέρησης περιστροφής (μισή περιστροφή) είναι
+ 2&nbsp;ms. Με 70&nbsp;MB/s, η μεταφορά αυτή καθ' αυτή θα χρειαστεί
+ περίπου 150&nbsp;&mu;s, σχεδόν τίποτα σε σχέση με το χρόνο που
+ χρειάζεται για την τοποθέτηση της κεφαλής στο σωστό σημείο.
+ Στην περίπτωση αυτή, ο πραγματικός ρυθμός μεταφοράς πέφτει σε λίγο
+ περισσότερο από ένα 1&nbsp;ΜΒ/s και είναι εμφανές ότι εξαρτάται σε
+ μεγάλο βαθμό από το μέγεθος των δεδομένων που μεταφέρονται.</para>
+
+ <para>Η παραδοσιακή και προφανής λύση σε αυτό το πρόβλημα, είναι να
+ προσθέσουμε <quote>περισσότερους δίσκους</quote>: αντί να
+ χρησιμοποιήσουμε ένα μεγάλο δίσκο, να βάλουμε πολλούς μικρότερους με
+ τον ίδιο τελικό αποθηκευτικό χώρο. Κάθε δίσκος έχει δυνατότητα να
+ μετακινεί τις κεφαλές και να μεταφέρει δεδομένα ανεξάρτητα από τους
+ άλλους, έτσι η πραγματική διαμεταγωγή αυξάνει αναλογικά με το πλήθος
+ των δίσκων που χρησιμοποιούνται.</para>
+
+ <para>Η πραγματική αύξηση της διαμεταγωγής είναι φυσικά μικρότερη από το
+ πλήθος των δίσκων που χρησιμοποιούνται: αν και κάθε δίσκος είναι ικανός
+ να μεταφέρει δεδομένα παράλληλα με τους άλλους, δεν υπάρχει τρόπος να
+ εξασφαλίσουμε ότι οι αιτήσεις μεταφοράς κατανέμονται ομοιόμορφα σε όλους
+ τους δίσκους. Είναι αναπόφευκτο ότι το φορτίο σε ένα δίσκο θα είναι
+ μεγαλύτερο από το φορτίο σε κάποιο άλλο.</para>
+
+ <indexterm>
+ <primary>disk concatenation</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Vinum</primary>
+ <secondary>concatenation</secondary>
+ </indexterm>
+
+ <para>Η ομοιομορφία κατανομής του φορτίου στους δίσκους, εξαρτάται σε
+ μεγάλο βαθμό από τον τρόπο που έχουν μοιραστεί τα δεδομένα σε αυτούς.
+ Στην παρακάτω συζήτηση, είναι βολικό να σκεφτόμαστε τον αποθηκευτικό
+ χώρο ενός δίσκου ως ένα μεγάλο αριθμό από τομείς στους οποίους έχουμε
+ πρόσβαση με βάση ένα αριθμό, ακριβώς όπως οι σελίδες σε ένα βιβλίο.
+ Η πιο προφανής μέθοδος είναι να χωρίσουμε τον εικονικό δίσκο σε ομάδες
+ από συνεχόμενους τομείς, όπου καθεμία έχει το μέγεθος του πραγματικού
+ ανεξάρτητου φυσικού δίσκου, και να τις αποθηκεύσουμε με αυτό τον τρόπο,
+ περίπου σαν να παίρναμε ένα μεγάλο βιβλίο και να το χωρίζαμε σε
+ μικρότερους τόμους. Η μέθοδος αυτή ονομάζεται
+ <emphasis>συνένωση (concatenation)</emphasis> και έχει το πλεονέκτημα
+ ότι δεν απαιτεί τα μεγέθη των δίσκων να έχουν κάποια σχέση μεταξύ τους.
+ Λειτουργεί πολύ καλά όταν η πρόσβαση στον εικονικό δίσκο είναι
+ ομοιόμορφα κατανεμημένη σε όλη την περιοχή διευθύνσεων του. Όταν η
+ πρόσβαση συγκεντρώνεται σε μια μικρότερη περιοχή, η βελτίωση είναι
+ μικρότερη. Το <xref linkend="vinum-concat"> δείχνει την ακολουθία με
+ την οποία γίνεται η κατανομή των θέσεων αποθήκευσης όταν
+ χρησιμοποιείται η συνένωση.</para>
+
+ <para>
+ <figure id="vinum-concat">
+ <title>Οργάνωση Συνένωσης</title>
+ <graphic fileref="vinum/vinum-concat">
+ </figure>
+ </para>
+
+ <indexterm>
+ <primary>disk striping</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Vinum</primary>
+ <secondary>striping</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>RAID</primary>
+ </indexterm>
+
+ <para>Ένας εναλλακτικός τρόπος αποθήκευσης, είναι να χωριστεί η περιοχή
+ διευθύνσεων σε μικρότερα τμήματα ίσου μεγέθους τα οποία να αποθηκεύονται
+ σειριακά σε διαφορετικές συσκευές. Για παράδειγμα, οι πρώτοι 256 τομείς
+ μπορεί να είναι αποθηκευμένοι στον πρώτο δίσκο, οι επόμενοι 256 στον
+ επόμενο δίσκο, κ.ο.κ. Μετά την χρήση και του τελευταίου δίσκου,
+ η διαδικασία επαναλαμβάνεται μέχρι να γεμίσουν όλοι οι δίσκοι. Αυτή
+ η μέθοδος ονομάζεται <emphasis>striping</emphasis> ή
+ <acronym>RAID-0</acronym>.
+
+ <footnote>
+ <para>Το <acronym>RAID</acronym> σημαίνει <emphasis>Redundant
+ Array of Inexpensive Disks</emphasis> και παρέχει διάφορες μορφές
+ ανοχής σε σφάλματα, αν και στην παραπάνω χρήση ο όρος είναι
+ κάπως παραπλανητικός: το <acronym>RAID-0</acronym> δεν παρέχει καμιά
+ τέτοια προστασία δεδομένων.</para>
+ </footnote>
+
+ Το striping απαιτεί κάπως περισσότερη προσπάθεια για τον εντοπισμό των
+ δεδομένων και μπορεί να προκαλέσει μεγαλύτερο φορτίο I/O όταν μια
+ μεταφορά κατανέμεται σε πολλαπλούς δίσκους, αλλά από την άλλη
+ επιτυγχάνει μεγαλύτερο σταθερό φορτίο σε κάθε δίσκο.
+ Το <xref linkend="vinum-striped"> δείχνει τη σειρά με την οποία
+ χρησιμοποιούνται οι μονάδες αποθήκευσης σε μια οργάνωση τύπου
+ stripe.</para>
+
+ <para>
+ <figure id="vinum-striped">
+ <title>Striped Organization</title>
+ <graphic fileref="vinum/vinum-striped">
+ </figure>
+ </para>
+ </sect1>
+
+ <sect1 id="vinum-data-integrity">
+ <title>Ακεραιότητα Δεδομένων</title>
+
+ <para>Το τελευταίο πρόβλημα με την τρέχουσα τεχνολογία δίσκων, είναι
+ η αναξιοπιστία τους. Αν και τα τελευταία χρόνια η αξιοπιστία των
+ δίσκων έχει αυξηθεί σημαντικά, εξακολουθούν να είναι το εξάρτημα με
+ το μεγαλύτερο ρυθμό αποτυχίας στους εξυπηρετητές. Όταν αποτύχει ένας
+ δίσκος, τα αποτελέσματα μπορεί να είναι καταστροφικά: η αντικατάσταση
+ ενός χαλασμένου δίσκου και η αντιγραφή των δεδομένων στο νέο μπορεί
+ να διαρκέσει μέρες.</para>
+
+ <indexterm>
+ <primary>disk mirroring</primary>
+ </indexterm>
+ <indexterm>
+ <primary>Vinum</primary>
+ <secondary>mirroring</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>RAID-1</primary>
+ </indexterm>
+
+ <para>Ο παραδοσιακός τρόπος αντιμετώπισης αυτού του προβλήματος είναι το
+ <emphasis>mirroring</emphasis> (καθρεπτισμός), η διατήρηση δηλαδή δύο
+ αντιγράφων των δεδομένων σε διαφορετικούς δίσκους. Με την εφεύρεση των
+ διάφορων επιπέδων <acronym>RAID</acronym>, η τεχνική αυτή έγινε επίσης
+ γνωστή με την ονομασία <acronym>RAID επιπέδου 1</acronym> ή απλώς
+ <acronym>RAID-1</acronym>. Κάθε εγγραφή στον τόμο γίνεται και στους
+ δύο δίσκους. Η ανάγνωση μπορεί να γίνει από οποιοδήποτε δίσκο, έτσι
+ αν ένας από τους δύο αποτύχει, τα δεδομένα εξακολουθούν να είναι
+ διαθέσιμα στον άλλο.</para>
+
+ <para>Το mirroring έχει δύο προβλήματα:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το κόστος. Απαιτεί διπλάσιο κόστος από οποιαδήποτε λύση δεν
+ προσφέρει αυτή τη λειτουργία.</para>
+ </listitem>
+
+ <listitem>
+ <para>Τη μείωση της απόδοσης. Οι εγγραφές πρέπει να
+ γίνονται και στους δύο δίσκους, καταναλώνοντας έτσι το διπλάσιο
+ εύρος ζώνης σε σχέση με ένα τόμο που δεν χρησιμοποιεί mirror.
+ Η ανάγνωση δεν υποφέρει από το ίδιο πρόβλημα. Μάλιστα φαίνεται
+ να είναι και γρηγορότερη.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><indexterm><primary>RAID-5</primary></indexterm>Μια εναλλακτική
+ λύση είναι το <emphasis>parity</emphasis> (ισοτιμία), το οποίο
+ υλοποιείται στα επίπεδα 2, 3, 4 και 5 του <acronym>RAID</acronym>.
+ Από τα επίπεδα αυτά, το <acronym>RAID-5</acronym> είναι το πιο
+ ενδιαφέρον. Ο τρόπος που υλοποιείται στο Vinum, είναι μια παραλλαγή
+ της οργάνωσης δεδομένων που χρησιμοποιείται στο stripe, με τη διαφορά
+ ότι ένα μπλοκ από κάθε stripe χρησιμοποιείται για να αποθηκεύει την
+ ισοτιμία ενός άλλου μπλοκ. Στο Vinum, μια συστοιχία
+ <acronym>RAID-5</acronym>, είναι παρόμοια με μια συστοιχία stripe,
+ εκτός από το γεγονός ότι υλοποιεί <acronym>RAID-5</acronym> καθώς κάθε
+ stripe περιέχει και μπλοκ ισοτιμίας. Η τοποθεσία του μπλοκ ισοτιμίας,
+ αλλάζει από το ένα stripe στο επόμενο, κάτι που απαιτείται από το
+ <acronym>RAID-5</acronym>. Οι αριθμοί στα μπλοκ δεδομένων αναφέρονται
+ στη σχετική αρίθμηση τους.</para>
+
+ <para>
+ <figure id="vinum-raid5-org">
+ <title>RAID-5 Organization</title>
+ <graphic fileref="vinum/vinum-raid5-org">
+ </figure>
+ </para>
+
+ <para>Σε σύγκριση με το mirror, το <acronym>RAID-5</acronym> έχει το
+ πλεονέκτημα να απαιτεί σημαντικά λιγότερο χώρο αποθήκευσης. Η ταχύτητα
+ ανάγνωσης είναι ίδια με το stripe, αλλά η εγγραφή είναι σημαντικά πιο
+ αργή, περίπου το 25% της απόδοσης κατά την ανάγνωση. Αν ένας δίσκος
+ χαλάσει, η συστοιχία εξακολουθεί να λειτουργεί σε ελαττωμένη (degraded)
+ κατάσταση: η ανάγνωση από τους δίσκους που λειτουργούν κανονικά
+ συνεχίζεται απροβλημάτιστα, αλλά η ανάγνωση δεδομένων που βρίσκονταν
+ στον προβληματικό δίσκο πρέπει να επαναϋπολογιστεί με βάση τα
+ αντίστοιχα μπλοκ ισοτιμίας που βρίσκονται σε όλους τους άλλους
+ δίσκους.</para>
+ </sect1>
+
+ <sect1 id="vinum-objects">
+ <title>Αντικείμενα του Vinum</title>
+
+ <para>Για την αντιμετώπιση των παραπάνω προβλημάτων, το Vinum υλοποιεί μια
+ ιεραρχία αντικειμένων τεσσάρων επιπέδων:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το πλέον ορατό αντικείμενο είναι ο εικονικός δίσκος, ο οποίος
+ καλείται και <emphasis>τόμος (volume)</emphasis>. Οι τόμοι έχουν
+ ουσιαστικά τις ίδιες ιδιότητες με ένα δίσκο του &unix;, αν και
+ υπάρχουν κάποιες μικρές διαφορές. Δεν υπάρχουν περιορισμοί όσο
+ αφορά το μέγεθος τους.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι τόμοι αποτελούνται από <emphasis>plex</emphasis>, και κάθε
+ ένα από αυτά αντιπροσωπεύει το συνολικό χώρο διευθύνσεων ενός
+ τόμου. Αυτό το επίπεδο στην ιεραρχία παρέχει τη δυνατότητα
+ redundancy. Μπορείτε να σκεφτείτε τα plex ως μεμονωμένους δίσκους
+ σε μια συστοιχία mirror, όπου κάθε ένα περιέχει τα ίδια
+ δεδομένα.</para>
+ </listitem>
+
+ <listitem>
+ <para>Καθώς το Vinum υπάρχει μέσα στο πλαίσιο λειτουργιών του &unix;
+ που χρησιμοποιείται για την αποθήκευση σε δίσκους, θα μπορούσε
+ να χρησιμοποιήσει τις κατατμήσεις του &unix; ως το δομικό στοιχείο
+ για τη δημιουργία των plex. Στην πραγματικότητα, η λογική αυτή
+ αποδεικνύεται ιδιαίτερα περιοριστική: οι δίσκοι στο &unix; μπορούν
+ να έχουν περιορισμένο αριθμό κατατμήσεων. Αντίθετα, το Vinum
+ υποδιαιρεί μια μόνο κατάτμηση του &unix;
+ (τον <emphasis>οδηγό</emphasis>) σε συνεχόμενες περιοχές που
+ καλούνται <emphasis>υποδίσκοι (subdisks)</emphasis>. Οι υποδίσκοι
+ χρησιμοποιούνται ως τα δομικά στοιχεία για τα plex.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι υποδίσκοι βρίσκονται σε <emphasis>οδηγούς</emphasis> Vinum,
+ που τη δεδομένη στιγμή είναι κατατμήσεις του &unix;. Οι οδηγοί του
+ Vinum μπορούν να περιέχουν οποιοδήποτε αριθμό από υποδίσκους. Με
+ εξαίρεση μια μικρή περιοχή στην αρχή του δίσκου (η οποία
+ χρησιμοποιείται για την αποθήκευση δεδομένων ρύθμισης και
+ κατάστασης) όλος ο υπόλοιπος οδηγός είναι διαθέσιμος για αποθήκευση
+ δεδομένων.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Οι παρακάτω ενότητες περιγράφουν τον τρόπο με τον οποίο αυτά τα
+ αντικείμενα παρέχουν την λειτουργικότητα που απαιτείται από το
+ Vinum.</para>
+
+ <sect2>
+ <title>Μέγεθος Τόμου</title>
+
+ <para>Τα plex μπορούν να περιλαμβάνουν πολλαπλούς υποδίσκους, που
+ κατανέμονται σε όλους τους οδηγούς του Vinum. Σαν αποτέλεσμα, το
+ μέγεθος ενός συγκεκριμένου δίσκου δεν περιορίζει το μέγεθος ούτε του
+ plex, ούτε του τόμου.</para>
+ </sect2>
+
+ <sect2>
+ <title>Πλεονάζουσα (Redundant) Αποθήκευση Δεδομένων</title>
+
+ <para>Το Vinum υλοποιεί το mirroring προσαρτώντας πολλαπλά plex σε
+ ένα τόμο. Κάθε plex είναι μια αναπαράσταση των δεδομένων ενός τόμου.
+ Ένας τόμος μπορεί να περιέχει μεταξύ ενός και οκτώ plex.</para>
+
+ <para>Αν και ένα plex αντιπροσωπεύει τα πλήρη δεδομένα ενός τόμου,
+ είναι πιθανόν κάποια μέρη της αναπαράστασης να λείπουν από το φυσικό
+ μέσο, είτε επειδή έχει σχεδιαστεί με αυτό το τρόπο (αν δεν έχει
+ οριστεί υποδίσκος για κάποια τμήματα του plex) ή από πρόβλημα (ως
+ αποτέλεσμα της αποτυχίας κάποιου δίσκου). Όσο υπάρχει τουλάχιστον
+ ένα plex που μπορεί να παρέχει τα δεδομένα για την πλήρη περιοχή
+ διευθύνσεων του τόμου, ο τόμος είναι πλήρως λειτουργικός.</para>
+ </sect2>
+
+ <sect2>
+ <title>Θέματα Απόδοσης</title>
+
+ <para>Το Vinum υλοποιεί τόσο συνένωση όσο και striping σε επίπεδο
+ plex:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ένα <emphasis>plex συνένωσης (concatenated)</emphasis>
+ χρησιμοποιεί την περιοχή διευθύνσεων κάθε υποδίσκου με τη
+ σειρά.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα <emphasis>striped plex</emphasis> γράφει τα δεδομένα
+ σε λωρίδες (stripes) που κατανέμονται σε κάθε υποδίσκο. Όλοι οι
+ υποδίσκοι πρέπει να έχουν το ίδιο μέγεθος και πρέπει να υπάρχουν
+ τουλάχιστον δύο υποδίσκοι, για να ξεχωρίζουν σε σχέση με το plex
+ συνένωσης.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Είδη Οργάνωσης Plex</title>
+
+ <para>Η έκδοση του Vinum που παρέχεται με το &os;&nbsp;&rel.current;
+ υλοποιεί δύο είδη plex:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τα plex συνένωσης προσφέρουν τη μεγαλύτερη ευελιξία: μπορούν
+ να περιέχουν οποιοδήποτε αριθμό υποδίσκων, και οι υποδίσκοι αυτοί
+ μπορεί να είναι διαφορετικού μεγέθους. Το plex μπορεί να
+ επεκταθεί προσθέτοντας περισσότερους υποδίσκους. Χρειάζονται
+ λιγότερο χρόνο <acronym>CPU</acronym> σε σχέση με τα stripes, αν
+ και η διαφορά στη χρήση της <acronym>CPU</acronym> δεν είναι
+ μετρήσιμη. Από την άλλη μεριά, είναι πιο επιρρεπή σε
+ μη-ισορροπημένη λειτουργία, όπου ένας δίσκος είναι πολύ ενεργός
+ και οι υπόλοιποι αδρανούν.</para>
+ </listitem>
+
+ <listitem>
+ <para>Το μεγαλύτερο πλεονέκτημα των stripes
+ (<acronym>RAID-0</acronym>), είναι ότι έχουν πιο ισορροπημένη
+ λειτουργία: επιλέγοντας το σωστό μέγεθος λωρίδας (περίπου
+ 256&nbsp;kB), μπορείτε να εξισορροπήσετε το φορτίο σε κάθε δίσκο
+ του plex. Τα μειονεκτήματα αυτής της μεθόδου είναι (ελαφρά) πιο
+ πολύπλοκος κώδικας και περιορισμοί στους υποδίσκους: πρέπει όλοι
+ να είναι το ίδιο μέγεθος και η επέκταση ενός plex με προσθήκη
+ περισσότερων δίσκων είναι τόσο πολύπλοκη που τη δεδομένη στιγμή
+ το Vinum δεν την υλοποιεί. Το Vinum επίσης επιβάλλει ένα ακόμα
+ απλοϊκό περιορισμό: ένα plex τύπου stripe πρέπει να διαθέτει
+ υποχρεωτικά δύο τουλάχιστον υποδίσκους, διαφορετικά είναι
+ αδύνατο να το ξεχωρίσουμε από ένα plex συνένωσης.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Ο <xref linkend="vinum-comparison"> δείχνει περιληπτικά τα
+ πλεονεκτήματα και μειονεκτήματα κάθε είδους οργάνωσης plex.</para>
+
+ <table id="vinum-comparison" frame="none">
+ <title>Είδη Οργάνωσης Vinum Plex</title>
+ <tgroup cols="5">
+ <thead>
+ <row>
+ <entry>Τύπος plex</entry>
+ <entry>Ελάχιστο πλήθος υποδίσκων</entry>
+ <entry>Δυνατότητα προσθήκης υποδίσκων</entry>
+ <entry>Οι υποδίσκοι πρέπει να είναι ίδιου μεγέθους</entry>
+ <entry>Εφαρμογή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>συνένωσης (concatenated)</entry>
+ <entry>1</entry>
+ <entry>ναι</entry>
+ <entry>όχι</entry>
+ <entry>Αποθήκευση μεγάλου όγκου δεδομένων με μέγιστη ευελιξία
+ στον τρόπο κατανομής και μέτρια απόδοση.</entry>
+ </row>
+
+ <row>
+ <entry>striped</entry>
+ <entry>2</entry>
+ <entry>όχι</entry>
+ <entry>ναι</entry>
+ <entry>Υψηλή απόδοση σε συνδυασμό με πολύ καλές ταχύτητες σε
+ καταστάσεις πολλαπλής πρόσβασης.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </sect2>
+ </sect1>
+
+ <sect1 id="vinum-examples">
+ <title>Μερικά Παραδείγματα</title>
+
+ <para>Το Vinum διατηρεί μια
+ <emphasis>βάση δεδομένων με τις ρυθμίσεις του</emphasis> η οποία
+ περιγράφει τα αντικείμενα τα οποία γνωρίζει ένα συγκεκριμένο σύστημα.
+ Αρχικά, ο χρήστης δημιουργεί αυτή τη βάση δεδομένων από ένα ή
+ περισσότερα αρχεία ρυθμίσεων, με την βοήθεια του προγράμματος
+ &man.gvinum.8;. Το vinum αποθηκεύει ένα αντίγραφο της βάσης
+ δεδομένων σε κάθε slice του δίσκου (που το Vinum αποκαλεί
+ <emphasis>συσκευή</emphasis>) που βρίσκεται υπό τον έλεγχο του.
+ Η βάση δεδομένων ανανεώνεται σε κάθε αλλαγή κατάστασης, ώστε
+ όλα τα αντικείμενα του Vinum να επανέρχονται στη σωστή κατάσταση μετά
+ από μια επανεκκίνηση.</para>
+
+ <sect2>
+ <title>Το Αρχείο Ρυθμίσεων</title>
+
+ <para>Το αρχείο ρυθμίσεων περιγράφει τα μεμονωμένα αντικείμενα του
+ Vinum. Ο ορισμός για ένα απλό τόμο μπορεί να μοιάζει με τον
+ παρακάτω:</para>
+
+ <programlisting>
+ drive a device /dev/da3h
+ volume myvol
+ plex org concat
+ sd length 512m drive a</programlisting>
+
+ <para>Αυτό το αρχείο περιγράφει τέσσερα αντικείμενα του Vinum:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Η γραμμή <emphasis>drive</emphasis> περιγράφει μια κατάτμηση
+ δίσκου (<emphasis>οδηγού</emphasis>) και τη θέση της σε σχέση με
+ το φυσικό δίσκο. Δίνεται σε αυτή το συμβολικό όνομα
+ <emphasis>a</emphasis>. Αυτός ο διαχωρισμός των συμβολικών από
+ τα πραγματικά ονόματα συσκευών, μας επιτρέπει να μεταφέρουμε
+ δίσκους από μια θέση σε μια άλλη χωρίς να προκληθεί
+ σύγχυση.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η γραμμή <emphasis>volume</emphasis> περιγράφει ένα τόμο.
+ Το μόνο απαιτούμενο χαρακτηριστικό εδώ είναι το όνομα, στην
+ περίπτωση μας <emphasis>myvol</emphasis>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η γραμμή <emphasis>plex</emphasis> ορίζει ένα plex.
+ Η μόνη απαραίτητη παράμετρος είναι το είδος της οργάνωσης, στη
+ συγκεκριμένη περίπτωση το <emphasis>concat</emphasis>. Δεν
+ είναι απαραίτητο να δοθεί όνομα: το σύστημα παράγει αυτόματα
+ ένα όνομα χρησιμοποιώντας το όνομα του τόμου και την κατάληξη
+ <emphasis>.p</emphasis><emphasis>x</emphasis>, όπου το
+ <emphasis>x</emphasis> είναι ο αριθμός του plex στον τόμο. Έτσι,
+ αυτό το plex θα καλείται <emphasis>myvol.p0</emphasis>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Η γραμμή <emphasis>sd</emphasis> περιγράφει ένα υποδίσκο.
+ Οι ελάχιστες απαιτούμενες προδιαγραφές είναι το όνομα ενός
+ δίσκου στον οποίο θα αποθηκευτεί, και το μήκος του υποδίσκου.
+ Όπως συμβαίνει και με τα plex, δεν απαιτείται όνομα:
+ το σύστημα αποδίδει ονόματα αυτόματα, χρησιμοποιώντας ως σημείο
+ εκκίνησης το όνομα του plex και προσθέτοντας την κατάληξη
+ <emphasis>.s</emphasis><emphasis>x</emphasis>, όπου το
+ <emphasis>x</emphasis> είναι ο αριθμός του υποδίσκου στο plex.
+ Έτσι, το Vinum δίνει σε αυτόν τον υποδίσκο το όνομα
+ <emphasis>myvol.p0.s0</emphasis>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Μετά την επεξεργασία αυτού του αρχείου, το &man.gvinum.8; παράγει
+ την ακόλουθη έξοδο:</para>
+
+ <programlisting width="97">
+ &prompt.root; gvinum -&gt; <userinput>create config1</userinput>
+ Configuration summary
+ Drives: 1 (4 configured)
+ Volumes: 1 (4 configured)
+ Plexes: 1 (8 configured)
+ Subdisks: 1 (16 configured)
+
+ D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%)
+
+ V myvol State: up Plexes: 1 Size: 512 MB
+
+ P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
+
+ S myvol.p0.s0 State: up PO: 0 B Size: 512 MB</programlisting>
+
+ <para>Η παραπάνω έξοδος χρησιμοποιεί τη μορφή συντομευμένης λίστας του
+ &man.gvinum.8;. Η γραφική απεικόνιση φαίνεται στο <xref
+ linkend="vinum-simple-vol">.</para>
+
+ <para>
+ <figure id="vinum-simple-vol">
+ <title>Ένας Απλός Τόμος Vinum</title>
+ <graphic fileref="vinum/vinum-simple-vol">
+ </figure>
+ </para>
+
+ <para>Στο σχήμα αυτό (καθώς και σε αυτά που ακολουθούν) υπάρχει η
+ αναπαράσταση ενός τόμου που περιέχει τα plex, τα οποία με τη
+ σειρά τους περιέχουν τους υποδίσκους. Σε αυτό το απλουστευμένο
+ παράδειγμα, ο τόμος περιέχει ένα plex και το plex περιέχει ένα
+ υποδίσκο.</para>
+
+ <para>Ο τόμος αυτός δεν έχει κάποιο συγκεκριμένο
+ πλεονέκτημα σε σχέση με μια συμβατική κατάτμηση δίσκου. Περιέχει
+ ένα μόνο plex, άρα δεν έχει κάποια ικανότητα ανοχής σφαλμάτων.
+ Το plex περιέχει επίσης ένα υποδίσκο, και έτσι δεν υπάρχει διαφορά
+ στην κατανομή χώρου σε σχέση με μια συμβατική κατάτμηση. Στις
+ επόμενες ενότητες θα δείξουμε διαφορετικές και πιο ενδιαφέρουσες
+ μεθόδους ρύθμισης.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αυξημένη Αξιοπιστία: Mirroring</title>
+
+ <para>Η αξιοπιστία ενός τόμου μπορεί να αυξηθεί μέσω του mirroring
+ (καθρεπτισμού). Όταν σχεδιάζετε ένα τόμο στον οποίο θα γίνει
+ mirroring, είναι σημαντικό να εξασφαλίσετε ότι οι υποδίσκοι σε κάθε
+ plex είναι σε διαφορετικούς οδηγούς, ώστε η αποτυχία ενός δίσκου να
+ μην προκαλέσει παύση λειτουργίας και στα δύο plex. Το παρακάτω
+ παράδειγμα δείχνει πως μπορεί να γίνει mirroring ενός τόμου:</para>
+
+ <programlisting>
+ drive b device /dev/da4h
+ volume mirror
+ plex org concat
+ sd length 512m drive a
+ plex org concat
+ sd length 512m drive b</programlisting>
+
+ <para>Στο παράδειγμα αυτό, δεν ήταν απαραίτητο να καθοριστεί ξανά ο
+ οδηγός <emphasis>a</emphasis>, καθώς το Vinum διαθέτει ήδη τις
+ αντίστοιχες καταχωρίσεις στη βάση δεδομένων με τις ρυθμίσεις του.
+ Μετά την επεξεργασία των παραπάνω ορισμών, η ρύθμιση μοιάζει με
+ την παρακάτω:</para>
+
+ <programlisting width="97">
+ Drives: 2 (4 configured)
+ Volumes: 2 (4 configured)
+ Plexes: 3 (8 configured)
+ Subdisks: 3 (16 configured)
+
+ D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%)
+ D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%)
+
+ V myvol State: up Plexes: 1 Size: 512 MB
+ V mirror State: up Plexes: 2 Size: 512 MB
+
+ P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
+ P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
+ P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
+
+ S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
+ S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
+ S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB</programlisting>
+
+ <para>Το <xref linkend="vinum-mirrored-vol"> αναπαριστά αυτή τη δομή
+ γραφικά.</para>
+
+ <para>
+ <figure id="vinum-mirrored-vol">
+ <title>Ένας Mirrored Τόμος Vinum </title>
+ <graphic fileref="vinum/vinum-mirrored-vol">
+ </figure>
+ </para>
+
+ <para>Στο παράδειγμα αυτό, κάθε plex περιέχει την πλήρη περιοχή
+ διευθύνσεων, μεγέθους 512&nbsp;MB. Όπως και στο προηγούμενο
+ παράδειγμα, κάθε plex περιέχει ένα μοναδικό υποδίσκο.</para>
+ </sect2>
+
+ <sect2>
+ <title>Βελτιστοποιώντας την Απόδοση</title>
+
+ <para>Ο mirrored τόμος του προηγούμενου παραδείγματος παρουσιάζει
+ μεγαλύτερη ανοχή σφαλμάτων σε σχέση με ένα τόμο που δεν χρησιμοποιεί
+ mirror, αλλά η απόδοση του είναι μικρότερη: κάθε εγγραφή στον
+ τόμο πρέπει να γίνεται και στους δύο δίσκους, χρησιμοποιώντας έτσι
+ μεγαλύτερο ποσοστό του διαθέσιμου εύρους ζώνης. Οι απαιτήσεις που
+ ενδεχομένως έχουμε για απόδοση, απαιτούν διαφορετική προσέγγιση:
+ αντί να χρησιμοποιήσουμε mirror, μπορούμε να δημιουργήσουμε λωρίδες
+ αποθήκευσης (stripes) σε όσο το δυνατόν περισσότερους δίσκους.
+ Η παρακάτω ρύθμιση δείχνει ένα τόμο στον οποίο το plex έχει γίνει
+ stripe σε τέσσερις δίσκους:</para>
+
+ <programlisting>
+ drive c device /dev/da5h
+ drive d device /dev/da6h
+ volume stripe
+ plex org striped 512k
+ sd length 128m drive a
+ sd length 128m drive b
+ sd length 128m drive c
+ sd length 128m drive d</programlisting>
+
+ <para>Όπως και προηγουμένως, δεν χρειάζεται να ορίσουμε ξανά τους
+ δίσκους που είναι ήδη γνωστοί στο Vinum. Μετά την επεξεργασία του
+ παραπάνω ορισμού, η ρύθμιση θα μοιάζει με την παρακάτω:</para>
+
+ <programlisting width="92">
+ Drives: 4 (4 configured)
+ Volumes: 3 (4 configured)
+ Plexes: 4 (8 configured)
+ Subdisks: 7 (16 configured)
+
+ D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%)
+ D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%)
+ D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%)
+ D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%)
+
+ V myvol State: up Plexes: 1 Size: 512 MB
+ V mirror State: up Plexes: 2 Size: 512 MB
+ V striped State: up Plexes: 1 Size: 512 MB
+
+ P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
+ P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
+ P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
+ P striped.p1 State: up Subdisks: 1 Size: 512 MB
+
+ S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
+ S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
+ S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
+ S striped.p0.s0 State: up PO: 0 B Size: 128 MB
+ S striped.p0.s1 State: up PO: 512 kB Size: 128 MB
+ S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB
+ S striped.p0.s3 State: up PO: 1536 kB Size: 128 MB</programlisting>
+
+ <para>
+ <figure id="vinum-striped-vol">
+ <title>Ένας Striped Τόμος Vinum</title>
+ <graphic fileref="vinum/vinum-striped-vol">
+ </figure>
+ </para>
+
+ <para>Αυτός ο τόμος αναπαρίσταται γραφικά στο
+ <xref linkend="vinum-striped-vol">. Η απόχρωση της λωρίδας
+ αντιπροσωπεύει τη θέση της μέσα στην περιοχή διευθύνσεων του plex:
+ οι ανοιχτόχρωμες λωρίδες είναι οι πρώτες, οι σκουρόχρωμες είναι οι
+ τελευταίες.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αξιοπιστία και Απόδοση</title>
+
+ <para><anchor id="vinum-resilience">Με το κατάλληλο υλικό, είναι δυνατόν
+ να δημιουργηθούν τόμοι οι οποίοι να παρουσιάζουν τόσο μεγάλη ανοχή
+ σε σφάλματα, όσο και αυξημένη απόδοση σε σχέση με τις τυποποιημένες
+ κατατμήσεις του &unix;. Ένα τυπικό αρχείο ρυθμίσεων θα μοιάζει με το
+ παρακάτω:</para>
+
+ <programlisting>
+ volume raid10
+ plex org striped 512k
+ sd length 102480k drive a
+ sd length 102480k drive b
+ sd length 102480k drive c
+ sd length 102480k drive d
+ sd length 102480k drive e
+ plex org striped 512k
+ sd length 102480k drive c
+ sd length 102480k drive d
+ sd length 102480k drive e
+ sd length 102480k drive a
+ sd length 102480k drive b</programlisting>
+
+ <para>Οι υποδίσκοι του δεύτερου plex έχουν μετατεθεί κατά δύο οδηγούς
+ σε σχέση με αυτούς του πρώτου plex: αυτό εξασφαλίζει ότι οι εγγραφές
+ δεν γίνονται στους ίδιους υποδίσκους, ακόμα και αν μια μεταφορά
+ χρησιμοποιεί και τους δύο δίσκους.</para>
+
+ <para>Το <xref linkend="vinum-raid10-vol"> αναπαριστά γραφικά τη δομή
+ αυτού του τόμου.</para>
+
+ <para>
+ <figure id="vinum-raid10-vol">
+ <title>Ένας Mirrored και Striped Τόμος του Vinum</title>
+ <graphic fileref="vinum/vinum-raid10-vol">
+ </figure>
+ </para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="vinum-object-naming">
+ <title>Ονομασία Αντικειμένων</title>
+
+ <para>Όπως περιγράψαμε παραπάνω, το Vinum αποδίδει προεπιλεγμένα ονόματα
+ σε plex και υποδίσκους, αν και υπάρχει η δυνατότητα να τα
+ παρακάμψετε. Αυτό ωστόσο δεν συνίσταται: η εμπειρία που έχουμε από
+ το διαχειριστή τόμων VERITAS (ο οποίος επιτρέπει ελεύθερη απόδοση
+ ονομάτων στα αντικείμενα) έχει δείξει ότι αυτού του είδους η ευελιξία
+ δεν προσφέρει σημαντικά πλεονεκτήματα, και μπορεί να προκαλέσει
+ σύγχυση.</para>
+
+ <para>Τα ονόματα μπορεί να περιέχουν οποιοδήποτε μη-κενό χαρακτήρα, αλλά
+ συνίσταται να περιοριστείτε στη χρήση γραμμάτων, αριθμών και της κάτω
+ παύλας. Τα ονόματα των τόμων, των plex και των υποδίσκων μπορεί να
+ είναι μέχρι 64 χαρακτήρες, ενώ τα ονόματα των δίσκων μπορεί να είναι
+ μέχρι 32 χαρακτήρες.</para>
+
+ <para>Τα αρχεία συσκευών του Vinum δημιουργούνται στον κατάλογο
+ <filename class="directory">/dev/gvinum</filename>. Με τις ρυθμίσεις
+ που φαίνονται παραπάνω, το Vinum θα δημιουργήσει τα παρακάτω αρχεία
+ συσκευών:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Καταχωρίσεις συσκευών για κάθε τόμο. Αυτές είναι και οι κύριες
+ συσκευές που χρησιμοποιεί το Vinum. Με τις ρυθμίσεις που δείξαμε
+ παραπάνω, θα έχουμε τις συσκευές:
+ <filename class="devicefile">/dev/gvinum/myvol</filename>,
+ <filename class="devicefile">/dev/gvinum/mirror</filename>,
+ <filename class="devicefile">/dev/gvinum/striped</filename>,
+ <filename class="devicefile">/dev/gvinum/raid5</filename> και
+ <filename class="devicefile">/dev/gvinum/raid10</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Όλοι οι τόμοι διαθέτουν απευθείας καταχωρίσεις στον κατάλογο
+ <filename class="directory">/dev/gvinum/</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Οι κατάλογοι
+ <filename class="directory">/dev/gvinum/plex</filename> και
+ <filename class="directory">/dev/gvinum/sd</filename>, που
+ περιέχουν τα αρχεία συσκευών για κάθε plex και υποδίσκο
+ αντίστοιχα.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Για παράδειγμα, θεωρήστε το παρακάτω αρχείο ρυθμίσεων:</para>
+
+ <programlisting>
+ drive drive1 device /dev/sd1h
+ drive drive2 device /dev/sd2h
+ drive drive3 device /dev/sd3h
+ drive drive4 device /dev/sd4h
+ volume s64 setupstate
+ plex org striped 64k
+ sd length 100m drive drive1
+ sd length 100m drive drive2
+ sd length 100m drive drive3
+ sd length 100m drive drive4</programlisting>
+
+ <para>Μετά την επεξεργασία αυτού του αρχείου, το &man.gvinum.8; θα
+ δημιουργήσει την ακόλουθη δομή στον κατάλογο
+ <filename class="directory">/dev/gvinum</filename>:</para>
+
+ <programlisting>
+ drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex
+ crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64
+ drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd
+
+ /dev/vinum/plex:
+ total 0
+ crwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
+
+ /dev/vinum/sd:
+ total 0
+ crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0
+ crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1
+ crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2
+ crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3</programlisting>
+
+ <para>Αν και συνίσταται να μην δίνονται συγκεκριμένα ονόματα στα plex
+ και τους υποδίσκους, θα πρέπει να δοθούν ονόματα στους δίσκους του
+ Vinum. Με τον τρόπο αυτό, ο δίσκος αναγνωρίζεται αυτόματα ακόμα και
+ αν αλλάξει θέση. Τα ονόματα των δίσκων μπορεί να έχουν μέγεθος μέχρι
+ 32 χαρακτήρες.</para>
+
+ <sect2>
+ <title>Δημιουργία Συστημάτων Αρχείων</title>
+
+ <para>Οι τόμοι δείχνουν όμοιοι με τους δίσκους όσο αφορά το σύστημα,
+ με μια εξαίρεση. Αντίθετα με τους δίσκους του &unix;, το Vinum δεν
+ δημιουργεί κατατμήσεις στους τόμους, και έτσι απουσιάζει από αυτούς
+ ο αντίστοιχος πίνακας κατατμήσεων. Αυτό απαιτεί την τροποποίηση
+ κάποιων βοηθητικών προγραμμάτων και ειδικότερα του &man.newfs.8;, το
+ οποίο στις προηγούμενες υλοποιήσεις του προσπαθούσε να ερμηνεύσει
+ το τελευταίο γράμμα ενός τόμου Vinum ως αναγνωριστικό της κατάτμησης.
+ Για παράδειγμα, ένας κανονικός δίσκος μπορεί να έχει το όνομα
+ <filename class="devicefile">/dev/ad0a</filename> ή
+ <filename class="devicefile">/dev/da2h</filename>.
+ Τα ονόματα αυτά αντιπροσωπεύουν την πρώτη κατάτμηση
+ (<devicename>a</devicename>) στον πρώτο δίσκο IDE
+ (<devicename>ad</devicename>) και την όγδοη κατάτμηση
+ (<devicename>h</devicename>) στον τρίτο (2) SCSI δίσκο
+ (<devicename>da</devicename>) αντίστοιχα. Σε αντίθεση, ένας τόμος
+ του Vinum μπορεί να ονομάζεται <filename
+ class="devicefile">/dev/gvinum/concat</filename>, το οποίο δεν
+ έχει καμιά σχέση με όνομα κατάτμησης.</para>
+
+ <para>Για να δημιουργήσετε ένα σύστημα αρχείων σε αυτό τον τόμο,
+ χρησιμοποιήστε την &man.newfs.8;:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/gvinum/concat</userinput></screen>
+ </sect2>
+ </sect1>
+
+ <sect1 id="vinum-config">
+ <title>Ρύθμιση του Vinum</title>
+
+ <para>Το Vinum δεν υπάρχει στον πυρήνα <filename>GENERIC</filename>.
+ Είναι δυνατόν να δημιουργήσετε προσαρμοσμένο πυρήνα που να το περιέχει,
+ αλλά δεν συνίσταται. Ο συνηθισμένος τρόπος να ξεκινήσετε το Vinum,
+ είναι να το φορτώσετε ως άρθρωμα στον πυρήνα (<acronym>kld</acronym>).
+ Δεν χρειάζεται καν να χρησιμοποιήσετε την &man.kldload.8; για το
+ Vinum: όταν ξεκινήσετε το &man.gvinum.8;, θα γίνει έλεγχος για να
+ διαπιστωθεί αν το άρθρωμα είναι φορτωμένο, και αν δεν είναι θα
+ φορτωθεί αυτόματα.</para>
+
+ <sect2>
+ <title>Εκκίνηση</title>
+
+ <para>Το Vinum αποθηκεύει τις πληροφορίες για τις ρυθμίσεις του στα
+ slices των δίσκων, ουσιαστικά με τον ίδιο τρόπο που τις αποθηκεύει
+ και στα αρχεία ρυθμίσεων. Όταν το Vinum διαβάζει τη βάση δεδομένων
+ των ρυθμίσεων, μπορεί να αναγνωρίσει ένα αριθμό λέξεων που δεν
+ επιτρέπεται να εμφανιστούν στα αρχεία ρυθμίσεων. Για παράδειγμα, οι
+ ρυθμίσεις για κάποιο δίσκο μπορεί να περιέχουν το παρακάτω
+ κείμενο:</para>
+
+ <programlisting width="119">volume myvol state up
+volume bigraid state down
+plex name myvol.p0 state up org concat vol myvol
+plex name myvol.p1 state up org concat vol myvol
+plex name myvol.p2 state init org striped 512b vol myvol
+plex name bigraid.p0 state initializing org raid5 512b vol bigraid
+sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
+sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
+sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
+sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
+sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
+sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
+sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
+sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
+sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
+sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
+sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
+sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
+sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216b</programlisting>
+
+ <para>Οι προφανείς διαφορές εδώ, είναι η παρουσία συγκεκριμένων
+ θέσεων και ονομάτων (και τα δύο είναι επιτρεπτά, αλλά γενικά δεν
+ συνίσταται η χρήση τους) και οι πληροφορίες κατάστασης (που
+ δεν είναι διαθέσιμες στο χρήστη). Το Vinum δεν αποθηκεύει
+ πληροφορίες σχετικές με τους δίσκους στις ρυθμίσεις του: απλώς
+ ανιχνεύει όλους τους δίσκους για κατατμήσεις που περιέχουν
+ ετικέτα Vinum. Αυτό επιτρέπει στο Vinum να αναγνωρίσει τους δίσκους
+ σωστά, ακόμα και αν τους έχει δοθεί διαφορετικό &unix;
+ αναγνωριστικό (ID).</para>
+
+ <sect3 id="vinum-rc-startup">
+ <title>Αυτόματη Εκκίνηση</title>
+
+ <para>Το <emphasis>Gvinum</emphasis> ξεκινάει πάντοτε αυτόματα
+ μετά την φόρτωση του αρθρώματος μέσω του &man.loader.conf.5;.
+ Για να φορτώσετε το άρθρωμα του <emphasis>Gvinum</emphasis> κατά
+ την εκκίνηση, προσθέστε τη γραμμή
+ <literal>geom_vinum_load="YES"</literal> στο αρχείο
+ <filename>/boot/loader.conf</filename>.</para>
+
+ <para>Όταν ξεκινάτε το Vinum με την εντολή
+ <command>gvinum start</command>, το Vinum διαβάζει τη βάση
+ δεδομένων ρυθμίσεων από έναν δίσκο που βρίσκεται υπό τον έλεγχο
+ του. Κάτω από φυσιολογικές συνθήκες, κάθε δίσκος περιέχει ένα
+ όμοιο αντίγραφο της βάσης, έτσι δεν έχει σημασία από ποιο δίσκο θα
+ γίνει η ανάγνωση. Ωστόσο, μετά από κάποιο απότομο τερματισμό
+ λειτουργίας, το Vinum θα πρέπει να καθορίσει ποιος δίσκος έχει το
+ πιο πρόσφατο αντίγραφο και να διαβάσει από εκεί τις ρυθμίσεις.
+ Μετά θα διορθώσει (αν χρειάζεται) τις ρυθμίσεις και στους
+ υπόλοιπους δίσκους.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="vinum-root">
+ <title>Χρήση του Vinum στο Ριζικό Σύστημα Αρχείων</title>
+
+ <para>Σε ένα μηχάνημα στο οποίο έχει γίνει πλήρες mirror στα συστήματα
+ αρχείων με τη χρήση του Vinum, είναι συνήθως επιθυμητό να γίνει mirror
+ και στο ριζικό (root) σύστημα αρχείων. Η ρύθμιση αυτή δεν είναι
+ τόσο απλή όσο σε ένα οποιοδήποτε σύστημα αρχείων, επειδή:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το ριζικό σύστημα αρχείων πρέπει να είναι διαθέσιμο από πολύ
+ νωρίς κατά τη διαδικασία εκκίνησης, έτσι είναι απαραίτητο οι
+ υποδομές του Vinum να είναι επίσης διαθέσιμες την ίδια
+ στιγμή.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ο τόμος που περιέχει το ριζικό σύστημα αρχείων περιέχει επίσης
+ και τον κώδικα εκκίνησης (bootstrap) και τον πυρήνα, ο οποίος
+ θα πρέπει να είναι προσβάσιμος από βασικά προγράμματα
+ του συστήματος (π.χ. το BIOS σε μηχανήματα τύπου PC), τα οποία δεν
+ γνωρίζουν και δεν μπορούν να μάθουν τις λεπτομέρειες υλοποίησης του
+ Vinum.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Στις επόμενες ενότητες, ο όρος <quote>ριζικός τόμος</quote>
+ χρησιμοποιείται γενικά για να περιγράψει τον τόμο του Vinum που
+ περιέχει το ριζικό σύστημα αρχείων. Είναι γενικά καλή ιδέα να
+ χρησιμοποιείται το όνομα <literal>"root"</literal> για αυτό τον τόμο,
+ αλλά αυτό δεν αποτελεί τεχνική απαίτηση. Όλα τα παραδείγματα εντολών
+ στις παρακάτω ενότητες χρησιμοποιούν την παραπάνω παραδοχή.</para>
+
+ <sect2>
+ <title>Εκκίνηση του Vinum Αρκετά Νωρίς για το Ριζικό Σύστημα
+ Αρχείων</title>
+
+ <para>Αυτό μπορεί να επιτευχθεί με διάφορους τρόπους:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Το Vinum πρέπει να είναι διαθέσιμο στο πυρήνα κατά την
+ εκκίνηση. Για το λόγο αυτό, η μέθοδος αυτόματης εκκίνησης που
+ περιγράψαμε στο <xref linkend="vinum-rc-startup"> δεν μπορεί να
+ χρησιμοποιηθεί σε αυτή την περίπτωση και η παράμετρος
+ <literal>start_vinum</literal> <emphasis>δεν</emphasis> θα πρέπει
+ να τεθεί όταν χρησιμοποιείται η παρακάτω διάταξη. Μια πιθανή
+ επιλογή είναι να μεταγλωττίσετε στατικά το Vinum στον πυρήνα
+ ώστε να είναι διαθέσιμο πάντα, αλλά αυτό συνήθως δεν είναι
+ επιθυμητό. Υπάρχει μια ακόμα διαθέσιμη επιλογή, να ορίσετε να
+ φορτώνεται το άρθρωμα του πυρήνα μέσω του
+ <filename>/boot/loader</filename> (<xref
+ linkend="boot-loader">) πριν την εκκίνηση του ίδιου του
+ πυρήνα. Αυτό μπορεί να επιτευχθεί με τη γραμμή:</para>
+
+ <programlisting>geom_vinum_load="YES"</programlisting>
+
+ <para>στο αρχείο <filename>/boot/loader.conf</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Στο <emphasis>Gvinum</emphasis>, όλη η διαδικασία εκκίνησης
+ γίνεται αυτόματα μετά την φόρτωση του αρθρώματος πυρήνα, έτσι
+ η διαδικασία που περιγράψαμε παραπάνω είναι και η μόνη που
+ απαιτείται.</para>
+ </listitem>
+ </itemizedlist>
+ </sect2>
+
+ <sect2>
+ <title>Δημιουργία Ριζικού Τόμου Vinum με Δυνατότητα Πρόσβασης από τον
+ Κώδικα Εκκίνησης (Bootstrap).</title>
+
+ <para>Καθώς ο τρέχοντας κώδικας εκκίνησης του &os; έχει μέγεθος μόνο
+ 7.5 KB, και είναι ήδη επιφορτισμένος με την ανάγνωση αρχείων (όπως το
+ <filename>/boot/loader</filename>) από το σύστημα αρχείων UFS, είναι
+ πρακτικά αδύνατο να γνωρίζει και τις απαιτούμενες εσωτερικές δομές
+ του Vinum ώστε να μπορεί να ερμηνεύσει τις αντίστοιχες πληροφορίες
+ ρύθμισης και να μάθει τις λεπτομέρειες του τόμου εκκίνησης. Για το
+ λόγο αυτό, χρειάζεται να χρησιμοποιήσουμε κάποια τεχνάσματα ώστε να
+ δώσουμε στον κώδικα εκκίνησης την ψευδαίσθηση ύπαρξης μιας κανονικής
+ κατάτμησης <literal>"a"</literal> που να περιέχει το ριζικό σύστημα
+ αρχείων.</para>
+
+ <para>Για να καταστεί αυτό δυνατό, θα πρέπει να πληρούνται ταυτόχρονα
+ όλες οι παρακάτω προϋποθέσεις όσο αφορά τον τόμο εκκίνησης:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ο τόμος εκκίνησης δεν θα πρέπει να είναι stripe ή
+ RAID-5.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ο τόμος εκκίνησης δεν θα πρέπει να περιέχει περισσότερους
+ από ένα συνενωμένους υποδίσκους ανά plex.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Σημειώστε ότι είναι συνήθως επιθυμητό και δυνατό να υπάρχουν
+ πολλαπλά plex, καθένα από τα οποία να είναι αντίγραφο του ριζικού
+ συστήματος αρχείων. Η διαδικασία εκκίνησης θα χρησιμοποιήσει ωστόσο
+ μόνο ένα από αυτά τα αντίγραφα για να βρει τον κώδικα εκκίνησης και
+ όλα τα αρχεία, μέχρι να γίνει τελικά η προσάρτηση του ριζικού
+ συστήματος αρχείων από τον ίδιο τον πυρήνα. Κάθε μοναδικός υποδίσκος
+ μέσα σε αυτά τα plex, θα χρειαστεί να διαθέτει τη δική του
+ ψευτο-κατάτμηση <literal>"a"</literal> ώστε η συσκευή να είναι
+ εκκινήσιμη. Δεν είναι απαραίτητο κάθε μια από αυτές τις
+ ψευτο-κατατμήσεις να βρίσκεται στην ίδια θέση μέσα στην συσκευή,
+ σε σχέση με άλλες συσκευές που περιέχουν plex με ριζικό σύστημα
+ αρχείων. Είναι όμως γενικά καλή ιδέα να δημιουργήσετε τους τόμους
+ του Vinum με τέτοιο τρόπο, ώστε οι συσκευές mirror που προκύπτουν να
+ είναι συμμετρικές για να αποφύγετε τη σύγχυση.</para>
+
+ <para>Για να δημιουργηθούν αυτές οι τύπου <literal>"a"</literal>
+ κατατμήσεις για κάθε συσκευή που θα περιέχει τμήματα του ριζικού
+ τόμου, θα πρέπει να γίνουν τα ακόλουθα:</para>
+
+ <procedure>
+ <step>
+ <para>Θα πρέπει να εξετάσετε τη θέση (την απόσταση από την αρχή της
+ συσκευής) και το μέγεθος της συσκευής υποδίσκου η οποία θα είναι
+ μέρος του ριζικού τόμου, χρησιμοποιώντας την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>gvinum l -rv root</userinput></screen>
+
+ <para>Σημειώστε ότι στο Vinum οι θέσεις και τα μεγέθη μετρούνται
+ σε bytes. Θα πρέπει να διαιρέσετε αυτούς τους αριθμούς με το 512
+ για να βρείτε τους αριθμούς μπλοκ που θα χρησιμοποιήσετε στην
+ εντολή <command>bsdlabel</command>.</para>
+ </step>
+
+ <step>
+ <para>Εκτελέστε την εντολή:</para>
+
+ <screen>&prompt.root; <userinput>bsdlabel -e <replaceable>devname</replaceable></userinput></screen>
+
+ <para>για κάθε συσκευή που συμμετέχει στο ριζικό τόμο.
+ Το <replaceable>devname</replaceable> θα πρέπει να είναι είτε το
+ όνομα του δίσκου (για παράδειγμα <devicename>da0</devicename>)
+ για δίσκους χωρίς slices (χωρίς δηλ. κατατμήσεις fdisk), ή το
+ όνομα του slice (για παράδειγμα,
+ <devicename>ad0s1</devicename>).</para>
+
+ <para>Αν υπάρχει ήδη μια κατάτμηση <literal>"a"</literal> στη
+ συσκευή (που πιθανώς περιέχει το ριζικό σύστημα αρχείων που ήταν
+ σε χρήση πριν χρησιμοποιηθεί το Vinum), θα πρέπει να μετονομαστεί
+ σε κάτι άλλο ώστε να εξακολουθεί να είναι προσβάσιμο
+ (σε περίπτωση ανάγκης), αλλά δεν θα χρησιμοποιείται πλέον από
+ προεπιλογή για την εκκίνηση του συστήματος. Σημειώστε ότι οι
+ ενεργές κατατμήσεις (όπως για παράδειγμα ένα ριζικό σύστημα
+ αρχείων το οποίο είναι ήδη προσαρτημένο) δεν μπορούν να
+ μετονομαστούν. Θα πρέπει να εκτελέσετε την εντολή
+ χρησιμοποιώντας την επιλογή <quote>Fixit</quote> του CD
+ εγκατάστασης, ή να ακολουθήσετε μια διαδικασία δύο βημάτων
+ (σε περίπτωση που έχετε mirror) ξεκινώντας από τον ένα δίσκο και
+ μετονομάζοντας τον άλλο.</para>
+
+ <para>Έπειτα θα πρέπει να προσθέσετε την απόσταση (offset, αν
+ υπάρχει) της κατάτμησης Vinum αυτής της συσκευής, με την απόσταση
+ του υποδίσκου του αντίστοιχου ριζικού τόμου της συσκευής. Η τιμή
+ που θα προκύψει θα είναι η απόσταση (<literal>"offset"</literal>)
+ για τη νέα κατάτμηση <literal>"a"</literal>. Μπορείτε να πάρετε
+ αυτούσια την τιμή <literal>"size"</literal> για αυτή την κατάτμηση
+ από τον υπολογισμό που κάνατε παραπάνω. Το
+ <literal>"fstype"</literal> θα πρέπει να είναι
+ <literal>4.2BSD</literal>. Οι τιμές των
+ <literal>"fsize"</literal>, <literal>"bsize"</literal>,
+ και <literal>"cpg"</literal> θα πρέπει να επιλεχθούν με τέτοιο
+ τρόπο ώστε να ταιριάζουν με το πραγματικό σύστημα αρχείων, αν και
+ δεν έχουν σημασία στη συγκεκριμένη περίπτωση.</para>
+
+ <para>Με αυτό τον τρόπο, θα δημιουργηθεί μια νέα κατάτμηση
+ <literal>"a"</literal> η οποία επικαλύπτει την κατάτμηση του
+ Vinum σε αυτή τη συσκευή. Σημειώστε ότι η εντολή
+ <command>bsdlabel</command> θα επιτρέψει αυτή την επικάλυψη μόνο
+ αν η κατάτμηση του Vinum έχει επισημανθεί κατάλληλα με fstype
+ <literal>"vinum"</literal>.</para>
+ </step>
+
+ <step>
+ <para>Αυτό είναι όλο! Υπάρχει πλέον μια ψευτο-κατάτμηση
+ <literal>"a"</literal> σε κάθε συσκευή η οποία έχει αντίγραφο του
+ ριζικού τόμου. Συνίσταται να επαληθεύσετε ξανά το αποτέλεσμα,
+ χρησιμοποιώντας μια εντολή όπως την παρακάτω:</para>
+
+ <screen>&prompt.root; <userinput>fsck -n /dev/<replaceable>devname</replaceable>a</userinput></screen>
+ </step>
+ </procedure>
+
+ <para>Θα πρέπει να θυμάστε ότι οι θέσεις των αρχείων που περιέχουν
+ πληροφορίες ελέγχου πρέπει να είναι σχετικές ως προς το ριζικό
+ σύστημα αρχείων που βρίσκεται στο τόμο του Vinum, και ο οποίος
+ (κατά την δημιουργία καινούριου ριζικού τόμου Vinum) μπορεί να μην
+ ταιριάζει με το ριζικό σύστημα αρχείων που είναι ενεργό τη δεδομένη
+ στιγμή. Θα πρέπει ιδιαίτερα να φροντίσετε τα αρχεία
+ <filename>/etc/fstab</filename> και
+ <filename>/boot/loader.conf</filename>.</para>
+
+ <para>Στην επόμενη επανεκκίνηση, ο κώδικας εκκίνησης θα πρέπει να
+ εντοπίσει τις κατάλληλες πληροφορίες ελέγχου από το νέο (Vinum)
+ ριζικό σύστημα αρχείων και να δράσει κατάλληλα. Στο τέλος της
+ διαδικασίας αρχικοποίησης του πυρήνα, και μετά την αναγγελία όλων
+ των συσκευών, το μήνυμα το οποίο δείχνει την επιτυχή λειτουργία
+ του εγχειρήματος μοιάζει με το παρακάτω:</para>
+
+ <screen>Mounting root from ufs:/dev/gvinum/root</screen>
+ </sect2>
+
+ <sect2>
+ <title>Παράδειγμα Ρύθμισης Ριζικού Τόμου με Vinum</title>
+
+ <para>Μετά την ρύθμιση του ριζικού τόμου με το Vinum, η έξοδος της
+ εντολής <command>gvinum l -rv root</command> θα μοιάζει με την
+ παρακάτω:</para>
+
+ <screen>
+...
+Subdisk root.p0.s0:
+ Size: 125829120 bytes (120 MB)
+ State: up
+ Plex root.p0 at offset 0 (0 B)
+ Drive disk0 (/dev/da0h) at offset 135680 (132 kB)
+
+Subdisk root.p1.s0:
+ Size: 125829120 bytes (120 MB)
+ State: up
+ Plex root.p1 at offset 0 (0 B)
+ Drive disk1 (/dev/da1h) at offset 135680 (132 kB)
+ </screen>
+
+ <para>Οι τιμές που θα πρέπει να σημειώσετε είναι το
+ <literal>135680</literal> για την απόσταση (offset σε σχέση με την
+ κατάτμηση <filename class="devicefile">/dev/da0h</filename>). Αυτό
+ μεταφράζεται σε 265 block των 512 byte για την εντολή
+ <command>bsdlabel</command>. Παρόμοια, το μέγεθος του ριζικού τόμου
+ είναι 245760 μπλοκ των 512 byte. Το <filename
+ class="devicefile">/dev/da1h</filename>, το οποίο περιέχει το
+ δεύτερο αντίγραφο του ριζικού τόμου, έχει συμμετρική ρύθμιση.</para>
+
+ <para>Το bsdlabel για αυτές τις συσκευές θα μοιάζει με το
+ παρακάτω:</para>
+
+ <screen>
+...
+8 partitions:
+# size offset fstype [fsize bsize bps/cpg]
+ a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*)
+ c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*)
+ h: 71771672 16 vinum # (Cyl. 0*- 4467*)</screen>
+
+ <para>Μπορείτε να παρατηρήσετε ότι η παράμετρος
+ <literal>"size"</literal> για την ψευτο-κατάτμηση
+ <literal>"a"</literal> ταιριάζει με την τιμή που δείξαμε παραπάνω,
+ ενώ η τιμή της παραμέτρου <literal>"offset"</literal> είναι το
+ άθροισμα της απόστασης ανάμεσα στην κατάτμηση Vinum
+ <literal>"h"</literal> και της απόστασης αυτής της κατάτμησης μέσα
+ στη συσκευή (ή το slice). Πρόκειται για μια τυπική ρύθμιση που είναι
+ απαραίτητη για να αποφευχθούν τα προβλήματα που περιγράφηκαν στο
+ <xref linkend="vinum-root-panic">. Μπορείτε επίσης να δείτε ότι
+ ολόκληρη η κατάτμηση <literal>"a"</literal> περιέχεται αυτούσια
+ μέσα στην <literal>"h"</literal> η οποία και περιέχει όλες τις
+ πληροφορίες Vinum της συσκευής.</para>
+
+ <para>Σημειώστε ότι στο παραπάνω παράδειγμα η συσκευή χρησιμοποιείται
+ εξ' ολοκλήρου από το Vinum, και δεν υπάρχει κάποιο κατάλοιπο ριζικής
+ κατάτμησης από παλιότερη χρήση. Αυτό συμβαίνει επειδή πρόκειται για
+ δίσκο που χρησιμοποιήθηκε από την αρχή ως μέρος ενός συστήματος
+ Vinum.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αντιμετώπιση Προβλημάτων</title>
+
+ <para>Σε περίπτωση προβλήματος, θα χρειαστείτε κάποια μέθοδο
+ αντιμετώπισης. Η παρακάτω λίστα περιέχει μερικά από τα πιο
+ συνηθισμένα προβλήματα και τις λύσεις τους.</para>
+
+ <sect3>
+ <title>Ο Κώδικας Εκκίνησης Φορτώνεται, Αλλά το Σύστημα δεν
+ Εκκινεί</title>
+
+ <para>Αν για οποιοδήποτε λόγο το σύστημα δεν συνεχίζει την εκκίνηση,
+ θα πρέπει να διακόψετε την εκκίνηση μέσα στο χρονικό διάστημα των 10
+ δευτερολέπτων που εμφανίζεται ο φορτωτής εκκίνησης, πιέζοντας το
+ πλήκτρο <keycap>space</keycap>. Μπορείτε να εξετάσετε τις τιμές
+ των μεταβλητών του φορτωτή
+ (όπως η <literal>vinum.autostart</literal>), χρησιμοποιώντας την
+ εντολή <command>show</command>, και να τις αλλάξετε με τις εντολές
+ <command>set</command> ή <command>unset</command>.</para>
+
+ <para>Αν το μοναδικό πρόβλημα ήταν η απουσία του αρθρώματος
+ Vinum στη λίστα της αυτόματης φόρτωσης, αρκεί να δώσετε την
+ εντολή <command>load geom_vinum</command>.</para>
+
+ <para>Όταν είστε έτοιμος, η εκκίνηση μπορεί να συνεχιστεί με την
+ εντολή <command>boot -as</command>. Οι επιλογές
+ <option>-as</option> θα οδηγήσουν τον πυρήνα να ρωτήσει για το
+ ριζικό σύστημα αρχείων που πρόκειται να προσαρτηθεί
+ (<option>-a</option>), και η διαδικασία εκκίνησης θα σταματήσει σε
+ κατάσταση ενός χρήστη (single user, λόγω της επιλογής
+ <option>-s</option>), όπου η προσάρτηση του ριζικού συστήματος
+ είναι μόνο για ανάγνωση. Με τον τρόπο αυτό, ακόμα και αν έχει
+ προσαρτηθεί μόνο ένα plex ενός τόμου που αποτελείται από πολλά,
+ δεν υπάρχει κίνδυνος να δημιουργηθεί ασυνέπεια δεδομένων μεταξύ
+ των plex.</para>
+
+ <para>Στην προτροπή που εμφανίζεται για το ριζικό σύστημα αρχείων που
+ πρόκειται να προσαρτηθεί, μπορείτε να εισάγετε οποιαδήποτε
+ συσκευή περιέχει ένα έγκυρο ριζικό σύστημα αρχείων. Αν το
+ <filename>/etc/fstab</filename> έχει ρυθμιστεί σωστά, η προεπιλογή
+ θα είναι κάτι σαν <literal>ufs:/dev/gvinum/root</literal>.
+ Μια τυπική εναλλακτική τοποθεσία θα μπορούσε να είναι το
+ <literal>ufs:da0d</literal>, μια υποθετική κατάτμηση
+ που περιέχει το παλιό (πριν το Vinum) ριζικό σύστημα αρχείων.
+ Αν πρόκειται να χρησιμοποιήσετε μια
+ από τις τύπου <literal>"a"</literal> ψευτο-κατατμήσεις που είναι
+ στην πραγματικότητα υποδίσκοι της ριζικής συσκευής του Vinum, θα
+ πρέπει να είστε προσεκτικός, γιατί αν χρησιμοποιείτε mirror θα
+ γίνει προσάρτηση μόνο του ενός τμήματος της συσκευής.
+ Αν πρόκειται να προσαρτήσετε αυτή τη συσκευή αργότερα με
+ δυνατότητα εγγραφής-ανάγνωσης, είναι απαραίτητο να αφαιρέσετε τα
+ υπόλοιπα plex του ριζικού τόμου του Vinum, καθώς αυτά θα περιέχουν
+ δεδομένα που δεν είναι σε συγχρονισμό με την κατάτμηση που έχετε
+ ήδη προσαρτήσει.</para>
+ </sect3>
+
+ <sect3>
+ <title>Φορτώνει Μόνο ο Βασικός Κώδικας Εκκίνησης</title>
+
+ <para>Αν η φόρτωση του <filename>/boot/loader</filename> δεν είναι
+ επιτυχής, αλλά ο βασικός κώδικας εκκίνησης (primary bootstrap)
+ φορτώνεται (κάτι που μπορείτε να διαπιστώσετε ελέγχοντας αν
+ εμφανίζεται μια παύλα στην πάνω αριστερή γωνία της οθόνης κατά το
+ αρχικό στάδιο εκκίνησης), μπορείτε να προσπαθήσετε να διακόψετε
+ τη βασική εκκίνηση σε αυτό το σημείο χρησιμοποιώντας το πλήκτρο
+ <keycap>space</keycap>. Με αυτό τον τρόπο, η εκκίνηση θα
+ σταματήσει στο στάδιο δύο (δείτε το <xref linkend="boot-boot1">).
+ Μπορείτε εδώ να προσπαθήσετε να εκκινήσετε από μια εναλλακτική
+ κατάτμηση, π.χ. την κατάτμηση που περιείχε το ριζικό σύστημα
+ αρχείων που μετακινήσατε από το <literal>"a"</literal> όταν
+ ξεκινήσατε να χρησιμοποιείτε το Vinum.</para>
+ </sect3>
+
+ <sect3 id="vinum-root-panic">
+ <title>Δεν Γίνεται Καμιά Εκκίνηση, ο Κώδικας Εκκίνησης Προκαλεί
+ Panic</title>
+
+ <para>Αυτό μπορεί να συμβεί αν ο κώδικας εκκίνησης καταστραφεί
+ από την εγκατάσταση του Vinum. Δυστυχώς, το Vinum την τρέχουσα
+ στιγμή αφήνει μόνο 4 KB ελεύθερα στην αρχή της κατάτμησης του
+ πριν αρχίσει να γράφει τις πληροφορίες της επικεφαλίδας του.
+ Ωστόσο τα στάδια ένα και δύο καθώς και το bsdlabel που
+ ενσωματώνεται ανάμεσα τους, χρειάζονται 8 KB. Έτσι, αν μια
+ κατάτμηση Vinum ξεκίναγε στην θέση 0 μέσα σε ένα slice ή δίσκο που
+ προορίζονταν για εκκίνηση, η εγκατάσταση του Vinum θα κατέστρεφε
+ τον κώδικα εκκίνησης.</para>
+
+ <para>Με τον ίδιο τρόπο, αν η παραπάνω κατάσταση επιδιορθωθεί για
+ παράδειγμα ξεκινώντας από ένα CD <quote>Fixit</quote> και
+ επανεγκαθιστώντας τον κώδικα εκκίνησης με τη βοήθεια της εντολής
+ <command>bsdlabel -B</command> (όπως περιγράφεται στο <xref
+ linkend="boot-boot1">), ο κώδικας εκκίνησης θα καταστρέψει την
+ επικεφαλίδα του Vinum, το οποίο δεν θα μπορεί πλέον να εντοπίσει
+ τους δίσκους του. Αν και το παραπάνω δεν καταστρέφει τα δεδομένα
+ ρυθμίσεων ή τα πραγματικά δεδομένα που υπάρχουν στους τόμους (και
+ η ανάκτηση τους είναι δυνατή αν δώσετε ξανά ακριβώς τις ίδιες
+ ρυθμίσεις στο Vinum με τις αρχικές σας), η κατάσταση διορθώνεται
+ αρκετά δύσκολα. Θα πρέπει να μετακινήσετε ολόκληρη την κατάτμηση
+ του Vinum τουλάχιστον κατά 4 KB ώστε να μην υπάρχει σύγκρουση
+ μεταξύ της επικεφαλίδας του Vinum και του κώδικα εκκίνησης.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml b/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml
new file mode 100644
index 0000000000..45eafa998f
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/virtualization/chapter.sgml
@@ -0,0 +1,1321 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Εικονικοποίηση
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/virtualization/chapter.sgml
+ %SRCID% 1.27
+
+-->
+
+<chapter id="virtualization">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <contrib>Συνεισφορά από τον </contrib>
+ </author>
+ </authorgroup>
+ <!-- Mar 2007 -->
+ </chapterinfo>
+
+ <title>Εικονικοποίηση</title>
+
+ <sect1 id="virtualization-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το λογισμικό εικονικοποίησης επιτρέπει σε πολλαπλά λειτουργικά
+ συστήματα να εκτελούνται ταυτόχρονα στον ίδιο υπολογιστή. Σε υπολογιστές
+ PC το λογισμικό αυτό τυπικά χρησιμοποιεί ένα λειτουργικό ως ξενιστή
+ (host) στο οποίο και εκτελείται, και το οποίο υποστηρίζει ένα
+ οποιοδήποτε αριθμό από φιλοξενούμενα (guest) λειτουργικά.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τη διαφορά μεταξύ ενός ξενιστή (host) και ενός φιλοξενούμενου
+ (guest) λειτουργικού.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε το &os; σε ένα &apple; &macintosh;
+ υπολογιστή που βασίζεται σε &intel; αρχιτεκτονική.</para>
+ </listitem>
+
+<!-- Δεν υπάρχει υποστήριξη Xen για το FreeBSD, από τον 07/2010.
+ Οι παρακάτω πληροφορίες δεν πρέπει να φαίνονται
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε το &os; στο Linux με τη βοήθεια του
+ <application>&xen;</application>.</para>
+ </listitem>
+-->
+ <listitem>
+ <para>Πώς να εγκαταστήσετε το &os; κάτω από &microsoft.windows; με
+ το <application>Virtual PC</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να βελτιστοποιήσετε ένα &os; σύστημα για την καλύτερη
+ απόδοση σε περιβάλλον εικονικού μηχανήματος.</para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να έχετε κατανοήσει τις βασικές έννοιες του &unix; και του &os; (<xref
+ linkend="basics">).</para>
+ </listitem>
+
+ <listitem><para>Να γνωρίζετε πως θα εγκαταστήσετε το &os; (<xref
+ linkend="install">).</para></listitem>
+
+ <listitem><para>Να γνωρίζετε πως θα ρυθμίσετε τη σύνδεση σας στο δίκτυο
+ (<xref linkend="advanced-networking">).</para></listitem>
+
+ <listitem><para>Να γνωρίζετε πως να εγκαταστήσετε πρόσθετο λογισμικό
+ τρίτου κατασκευαστή (<xref linkend="ports">).</para></listitem>
+ </itemizedlist>
+
+ </sect1>
+
+
+
+ <sect1 id="virtualization-guest">
+ <title>Το &os; ως φιλοξενούμενο λειτουργικό</title>
+
+ <sect2 id="virtualization-guest-parallels">
+ <title>Το Parallels σε MacOS</title>
+
+ <para>Το <application>Parallels Desktop</application> για &mac; είναι
+ ένα εμπορικό λογισμικό το οποίον είναι διαθέσιμο για υπολογιστές
+ &apple; &mac; με επεξεργαστή &intel; και λειτουργικό &macos; 10.4.6 ή
+ νεότερο. Το &os; παρέχει πλήρη υποστήριξη ως φιλοξενούμενο
+ λειτουργικό. Όταν το <application>Parallels</application> έχει
+ εγκατασταθεί στο &macos; X, ο χρήστης πρέπει να ρυθμίσει ένα εικονικό
+ σύστημα και στη συνέχεια να εγκαταστήσει το φιλοξενούμενο λειτουργικό
+ σύστημα που επιθυμεί.</para>
+
+ <sect3 id="virtualization-guest-parallels-install">
+ <title>Εγκαθιστώντας το &os; στο Parallels/&macos; X</title>
+
+ <para>Το πρώτο βήμα για την εγκατάσταση του &os; στο &macos;
+ X/<application>Parallels</application> είναι να δημιουργήσετε ένα
+ νέο εικονικό σύστημα για το &os;. Όταν ερωτηθείτε, επιλέξτε
+ <guimenuitem>το &os;</guimenuitem> σαν το <guimenu> φιλοξενούμενο
+ λειτουργικό (Guest OS) </guimenu>.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd1">
+ </imageobject>
+ </mediaobject>
+
+ <para>Ορίστε ένα λογικό μέγεθος δίσκου και μνήμης που να
+ ανταποκρίνεται στα σχέδια που έχετε για την εικονικοποίηση του
+ &os;. 4GB δίσκος και 512MB μνήμης δουλεύουν μια χαρά για τους
+ περισσότερους χρήστες του &os;μέσα από το
+ <application>Parallels</application>:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd2">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd3">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd4">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd5">
+ </imageobject>
+ </mediaobject>
+
+ <para>Επιλέξτε τον τύπο δικτύωσης και τον προσαρμογέα δικτύου:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd6">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd7">
+ </imageobject>
+ </mediaobject>
+
+ <para>Αποθήκευση και τέλος των ρυθμίσεων:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd8">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd9">
+ </imageobject>
+ </mediaobject>
+
+ <para>Όταν το εικονικό σύστημα έχει δημιουργηθεί, θα χρειαστεί να
+ εγκαταστήσετε το ίδιο το &os;. Ο καλύτερος τρόπος για να γίνει
+ η εγκατάσταση είναι με το επίσημο &os; CD-ROM ή με κάποιο αρχείο
+ ISO, κατεβασμένο από τον επίσημο FTP τόπο. Όταν έχετε το κατάλληλο
+ ISO στο σκληρό σας, ή το CD-ROM στον οδηγό CD, ενεργοποιήστε με το ποντίκι το
+ εικονίδιο του CD στο κάτω δεξί μέρος της οθόνης του
+ <application>Parallels</application>. Με αυτόν τον τρόπο θα
+ μπορέσετε να ορίσετε την πηγή της εγκατάστασης. Μπορείτε να
+ ορίσετε το CDROM ή κάποιο διαθέσιμο ISO αρχείο.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd11">
+ </imageobject>
+ </mediaobject>
+
+ <para>Όταν έχετε αντιστοιχήσει τη πηγή εγκατάστασης, επανεκκινήστε το
+ εικονικό σύστημα πατώντας απλά το κουμπί της επανεκκίνησης (reboot)
+ του <application>Parallels</application>. Το
+ <application>Parallels</application> θα ξεκινήσει με ένα ειδικό
+ BIOS το οποίο πρώτα ελέγχει εάν υπάρχει διαθέσιμο κάποιο CD-ROM,
+ όπως κάνει και ένα φυσιολογικό BIOS.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd10">
+ </imageobject>
+ </mediaobject>
+
+ <para>Σε αυτή τη περίπτωση θα βρει το μέσο εγκατάστασης του &os;
+ και θα ξεκινήσει το <application>sysinstall</application> όπως
+ περιγράφεται στο <xref linkend="install">. Μπορείτε να
+ εγκαταστήσετε το X11, αλλά μη δοκιμάσετε να ρυθμίσετε αυτή τη
+ στιγμή.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd12">
+ </imageobject>
+ </mediaobject>
+
+ <para>Όταν τελειώσετε με την εγκατάσταση, κάντε μια επανεκκίνηση στο
+ φρέσκο εικονικό &os;.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/parallels-freebsd13">
+ </imageobject>
+ </mediaobject>
+ </sect3>
+
+ <sect3 id="virtualization-guest-parallels-configure">
+ <title>Ρυθμίζοντας το &os; στο &macos; X/Parallels</title>
+
+ <para>Αφού έχει εγκατασταθεί επιτυχώς το &os; στο &macos; X με το
+ <application>Parallels</application>, υπάρχουν μερικά βήματα ακόμη
+ που μπορούν να σας βοηθήσουν να ρυθμίσετε το εικονικό σας
+ σύστημα.</para>
+
+ <procedure>
+ <step>
+ <title>Μεταβλητές του boot loader</title>
+
+ <para>Το ποιο σημαντικό βήμα είναι να μειώσετε το μέγεθος του
+ <option>kern.hz</option> προκειμένου να αξιοποιήσετε τη CPU
+ μέσα από το <application>Parallels</application>. Αυτό μπορεί
+ να γίνει με το να προσθέσετε την ακόλουθη γραμμή στο
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>kern.hz=100</programlisting>
+
+ <para>Χωρίς αυτή τη ρύθμιση, ένα αδρανές &os; στο
+ <application>Parallels</application> θα καταναλώνει το 15% της
+ CPU ενός μονοπύρηνου &imac;. Μετά από την αλλαγή, η
+ κατανάλωση θα πέσει κοντά στο 5%.</para>
+ </step>
+
+ <step>
+ <title>Δημιουργία νέου αρχείου ρυθμίσεων του πυρήνα</title>
+
+ <para>Μπορείτε να αφαιρέσετε όλες τους οδηγούς για SCSI,
+ FireWire, και USB συσκευές.
+ Το <application>Parallels</application> παρέχει ένα εικονικό
+ προσαρμογέα δικτύου ο οποίος χρησιμοποιείται από τον οδηγό
+ &man.ed.4;, οπότε όλοι οι οδηγοί για δικτυακές συσκευές εκτός
+ των &man.ed.4; και &man.miibus.4; μπορούν να αφαιρεθούν από
+ τον πυρήνα.</para>
+ </step>
+
+ <step>
+ <title>Ρύθμιση δικτύου</title>
+
+ <para>Η πιο απλή ρύθμιση δικτύου κάνει χρήση του DHCP για να
+ συνδεθεί το εικονικό σας σύστημα στο ίδιο τοπικό δίκτυο με τον
+ &mac;. Αυτό μπορεί εύκολα να γίνει με το να προσθέσετε τη
+ γραμμή <literal>ifconfig_ed0="DHCP"</literal>
+ στο <filename>/etc/rc.conf</filename>. Πολυπλοκότερες
+ ρυθμίσεις δικτύου περιγράφονται στο
+ κεφάλαιο <xref linkend="advanced-networking">.</para>
+ </step>
+ </procedure>
+
+ </sect3>
+
+ </sect2>
+<!--
+ Η παρακάτω ενότητα δεν ισχύει καθώς το FreeBSD 7.0 δεν
+ υποστηρίζεται πλέον. Τα απαιτούμενα αρχεία από www.fsmware.com δεν
+ είναι πλέον διαθέσιμα και ο εξυπηρετητής δεν λειτουργεί, άρα δεν είναι
+ δυνατόν να χρησιμοποιηθούν οι παρακάτω οδηγίες.
+
+ <sect2 id="virtualization-guest-xen">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Fukang</firstname>
+ <surname>Chen (Loader)</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>&os; με &xen; στο Linux</title>
+
+ <para>Το <application>&xen;</application> hypervisor είναι ένα προϊόν
+ παρα-εικονικοποίησης (paravirtualization) ανοιχτού κώδικα το οποίο
+ υποστηρίζεται από την εταιρεία XenSource. Τα φιλοξενούμενα
+ λειτουργικά είναι γνωστά σαν domU domains, και ο ξενιστής σαν dom0.
+ Το πρώτο βήμα για να τρέξετε ένα εικονικό σύστημα &os; μέσα από
+ το Linux είναι να εγκαταστήσετε το <application>&xen;</application>
+ για Linux dom0. Εμείς χρησιμοποιήσαμε ως ξενιστή της διανομή
+ Slackware Linux.</para>
+
+ <sect3 id="xen-slackware-dom0">
+ <title>Εγκατάσταση &xen; 3 σε Linux dom0</title>
+
+ <procedure>
+ <step>
+ <title>Κατέβασμα &xen; 3.0 από XenSource</title>
+
+ <para>Κατεβάστε <ulink
+ url="http://bits.xensource.com/oss-xen/release/3.0.4-1/src.tgz/xen-3.0.4_1-src.tgz">xen-3.0.4_1-src.tgz</ulink>
+ from <ulink url="http://www.xensource.com/"></ulink>.</para>
+
+ </step>
+
+ <step>
+ <title>Ξεπακετάρετε το tarball</title>
+
+ <screen>&prompt.root; <userinput>cd xen-3.0.4_1-src</userinput>
+&prompt.root; <userinput>KERNELS="linux-2.6-xen0 linux-2.6-xenU" make world</userinput>
+&prompt.root; <userinput>make install</userinput></screen>
+
+ <note>
+ <para>Για να μεταγλωττίσετε ξανά τον πυρήνα για το dom0:</para>
+
+ <screen>&prompt.root; <userinput>cd xen-3.0.4_1-src/linux-2.6.16.33-xen0</userinput>
+&prompt.root; <userinput>make menuconfig</userinput>
+&prompt.root; <userinput>make</userinput>
+&prompt.root; <userinput>make install</userinput></screen>
+
+ <para>Παλιές εκδόσεις του <application>&xen;</application> ίσως χρειάζονται να οριστεί το
+ <command>make ARCH=xen menuconfig</command></para>
+ </note>
+ </step>
+
+ <step>
+ <title>Προσθήκη στη λίστα του Grub menu.lst</title>
+
+ <para>Επεξεργαστείτε το <filename>/boot/grub/menu.lst</filename>
+ και προσθέστε τις παρακάτω γραμμές:</para>
+
+ <programlisting>title Xen-3.0.4
+root (hd0,0)
+kernel /boot/xen-3.0.4-1.gz dom0_mem=262144
+module /boot/vmlinuz-2.6.16.33-xen0 root=/dev/hda1 ro</programlisting>
+ </step>
+
+ <step>
+ <title>Επανεκκινήστε το σύστημά σας και φορτώστε το &xen;</title>
+
+ <para>Αρχικά, επεξεργαστείτε
+ το <filename>/etc/xen/xend-config.sxp</filename>, και
+ προσθέστε τις παρακάτω γραμμές:</para>
+
+ <programlisting>(network-script 'network-bridge netdev=eth0')</programlisting>
+
+ <para>Στη συνέχεια, μπορούμε να τρέξουμε το
+ <application>&xen;</application>:</para>
+
+ <screen>&prompt.root; <userinput>/etc/init.d/xend start</userinput>
+&prompt.root; <userinput>/etc/init.d/xendomains start</userinput></screen>
+
+ <para>Το dom0 τρέχει:</para>
+
+ <screen>&prompt.root; <userinput>xm list</userinput>
+Name ID Mem VCPUs State Time(s)
+Domain-0 0 256 1 r&ndash;&ndash;&ndash;&ndash;&ndash; 54452.9</screen>
+ </step>
+ </procedure>
+ </sect3>
+
+ <sect3>
+ <title>&os; 7-CURRENT domU</title>
+
+ <para>Κατεβάστε το &os; domU kernel για το <application>&xen;
+ 3.0</application> και την εικόνα δίσκο (disk image)
+ από <ulink url="http://www.fsmware.com/">http://www.fsmware.com/</ulink></para>
+
+ <itemizedlist>
+ <listitem>
+ <para><ulink url="http://www.fsmware.com/xenofreebsd/7.0/download/kernel-current">kernel-current</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.fsmware.com/xenofreebsd/7.0/download/mdroot-7.0.bz2">mdroot-7.0.bz2</ulink></para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="http://www.fsmware.com/xenofreebsd/7.0/download/config/xmexample1.bsd">xmexample1.bsd</ulink></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Τοποθετήστε το αρχείο
+ ρυθμίσεων <filename>xmexample1.bsd</filename> μέσα
+ στο <filename>/etc/xen/</filename> και αλλάξτε τα στοιχεία που
+ σχετίζονται με το που βρίσκεται ο πυρήνας και η εικόνα δίσκου. Θα
+ πρέπει να μοιάζει με το παρακάτω:</para>
+
+ <programlisting>kernel = "/opt/kernel-current"
+memory = 256
+name = "freebsd"
+vif = [ '' ]
+disk = [ 'file:/opt/mdroot-7.0,hda1,w' ]
+#on_crash = 'preserve'
+extra = "boot_verbose"
+extra += ",boot_single"
+extra += ",kern.hz=100"
+extra += ",vfs.root.mountfrom=ufs:/dev/xbd769a"</programlisting>
+
+ <para>Το αρχείο <filename>mdroot-7.0.bz2</filename> θα πρέπει να είναι αποσυμπιεσμένο</para>
+
+ <para>Στη συνέχεια, το __xen_guest που βρίσκεται
+ στο <filename>kernel-current</filename> πρέπει να αλλάξει για να
+ προστεθεί το VIRT_BASE που απαιτεί το
+ <application>&xen; 3.0.3</application>:</para>
+
+ <screen>&prompt.root; <userinput>objcopy kernel-current -R __xen_guest</userinput>
+&prompt.root; <userinput>perl -e 'print "LOADER=generic,GUEST_OS=freebsd,GUEST_VER=7.0,XEN_VER=xen-3.0,BSD_SYMTAB,VIRT_BASE=0xC0000000\x00"' &gt; tmp</userinput>
+&prompt.root; <userinput>objcopy kernel-current &ndash;&ndash;add-section __xen_guest=tmp</userinput></screen>
+
+ <screen>&prompt.root; <userinput>objdump -j __xen_guest -s kernel-current</userinput>
+
+kernel-current: file format elf32-i386
+
+Contents of section __xen_guest:
+ 0000 4c4f4144 45523d67 656e6572 69632c47 LOADER=generic,G
+ 0010 55455354 5f4f533d 66726565 6273642c UEST_OS=freebsd,
+ 0020 47554553 545f5645 523d372e 302c5845 GUEST_VER=7.0,XE
+ 0030 4e5f5645 523d7865 6e2d332e 302c4253 N_VER=xen-3.0,BS
+ 0040 445f5359 4d544142 2c564952 545f4241 D_SYMTAB,VIRT_BA
+ 0050 53453d30 78433030 30303030 3000 SE=0xC0000000. </screen>
+
+ <para>Τώρα είμαστε έτοιμοι να δημιουργήσουμε και να εκκινήσουμε το
+ domU:</para>
+
+ <screen>&prompt.root; <userinput>xm create /etc/xen/xmexample1.bsd -c</userinput>
+Using config file "/etc/xen/xmexample1.bsd".
+Started domain freebsd
+WARNING: loader(8) metadata is missing!
+Copyright (c) 1992-2006 The FreeBSD Project.
+Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
+The Regents of the University of California. All rights reserved.
+FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006
+ kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF
+WARNING: DIAGNOSTIC option enabled, expect reduced performance.
+Xen reported: 1796.927 MHz processor.
+Timecounter "ixen" frequency 1796927000 Hz quality 0
+CPU: Intel(R) Pentium(R) 4 CPU 1.80GHz (1796.93-MHz 686-class CPU)
+ Origin = "GenuineIntel" Id = 0xf29 Stepping = 9
+ Features=0xbfebfbff&lt;FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,
+ DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE&gt;
+ Features2=0x4400&lt;CNTX-ID,&lt;b14&gt;&gt;
+real memory = 265244672 (252 MB)
+avail memory = 255963136 (244 MB)
+xc0: &lt;Xen Console&gt; on motherboard
+cpu0 on motherboard
+Timecounters tick every 10.000 msec
+[XEN] Initialising virtual ethernet driver.
+xn0: Ethernet address: 00:16:3e:6b:de:3a
+[XEN]
+Trying to mount root from ufs:/dev/xbd769a
+WARNING: / was not properly dismounted
+Loading configuration files.
+No suitable dump device was found.
+Entropy harvesting: interrupts ethernet point_to_point kickstart.
+Starting file system checks:
+/dev/xbd769a: 18859 files, 140370 used, 113473 free (10769 frags, 12838 blocks, 4.2% fragmentation)
+Setting hostname: demo.freebsd.org.
+lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; mtu 16384
+ inet6 ::1 prefixlen 128
+ inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
+ inet 127.0.0.1 netmask 0xff000000
+Additional routing options:.
+Mounting NFS file systems:.
+Starting syslogd.
+/etc/rc: WARNING: Dump device does not exist. Savecore not run.
+ELF ldconfig path: /lib /usr/lib /usr/lib/compat /usr/X11R6/lib /usr/local/lib
+a.out ldconfig path: /usr/lib/aout /usr/lib/compat/aout /usr/X11R6/lib/aout
+Starting usbd.
+usb: Kernel module not available: No such file or directory
+Starting local daemons:.
+Updating motd.
+Starting sshd.
+Initial i386 initialization:.
+Additional ABI support: linux.
+Starting cron.
+Local package initialization:.
+Additional TCP options:.
+Starting background file system checks in 60 seconds.
+
+Sun Apr 1 02:11:43 UTC 2007
+
+FreeBSD/i386 (demo.freebsd.org) (xc0)
+
+login: </screen>
+
+ <para>Το domU θα πρέπει να τρέχει τον πυρήνα
+ &os;&nbsp;7.0-CURRENT:</para>
+
+ <screen>&prompt.root; <userinput>uname -a</userinput>
+FreeBSD demo.freebsd.org 7.0-CURRENT FreeBSD 7.0-CURRENT #113: Wed Jan 4 06:25:43 UTC 2006
+kmacy@freebsd7.gateway.2wire.net:/usr/home/kmacy/p4/freebsd7_xen3/src/sys/i386-xen/compile/XENCONF i386</screen>
+
+ <para>Τώρα μπορούμε να ρυθμίσουμε και το δίκτυο στο domU. Το &os; domU
+ θα κάνει χρήση ενός ειδικού προσαρμογέα με όνομα
+ <devicename>xn0</devicename>:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig xn0 10.10.10.200 netmask 255.0.0.0</userinput>
+&prompt.root; <userinput>ifconfig</userinput>
+xn0: flags=843&lt;UP,BROADCAST,RUNNING,SIMPLEX&gt; mtu 1500
+ inet 10.10.10.200 netmask 0xff000000 broadcast 10.255.255.255
+ ether 00:16:3e:6b:de:3a
+lo0: flags=8049&lt;UP,LOOPBACK,RUNNING,MULTICAST&gt; mtu 16384
+ inet6 ::1 prefixlen 128
+ inet6 fe80::1%lo0 prefixlen 64 scopeid 0x2
+ inet 127.0.0.1 netmask 0xff000000 </screen>
+
+ <para>Στο dom0 Slackware, κάποιa network interfaces που εξαρτώνται από
+ το <application>&xen;</application> θα πρέπει τώρα να είναι
+ διαθέσιμα:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig</userinput>
+eth0 Link encap:Ethernet HWaddr 00:07:E9:A0:02:C2
+ inet addr:10.10.10.130 Bcast:0.0.0.0 Mask:255.0.0.0
+ UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
+ RX packets:815 errors:0 dropped:0 overruns:0 frame:0
+ TX packets:1400 errors:0 dropped:0 overruns:0 carrier:0
+ collisions:0 txqueuelen:0
+ RX bytes:204857 (200.0 KiB) TX bytes:129915 (126.8 KiB)
+
+lo Link encap:Local Loopback
+ inet addr:127.0.0.1 Mask:255.0.0.0
+ UP LOOPBACK RUNNING MTU:16436 Metric:1
+ RX packets:99 errors:0 dropped:0 overruns:0 frame:0
+ TX packets:99 errors:0 dropped:0 overruns:0 carrier:0
+ collisions:0 txqueuelen:0
+ RX bytes:9744 (9.5 KiB) TX bytes:9744 (9.5 KiB)
+
+peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
+ UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
+ RX packets:1853349 errors:0 dropped:0 overruns:0 frame:0
+ TX packets:952923 errors:0 dropped:0 overruns:0 carrier:0
+ collisions:0 txqueuelen:1000
+ RX bytes:2432115831 (2.2 GiB) TX bytes:86528526 (82.5 MiB)
+ Base address:0xc000 Memory:ef020000-ef040000
+
+vif0.1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
+ UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
+ RX packets:1400 errors:0 dropped:0 overruns:0 frame:0
+ TX packets:815 errors:0 dropped:0 overruns:0 carrier:0
+ collisions:0 txqueuelen:0
+ RX bytes:129915 (126.8 KiB) TX bytes:204857 (200.0 KiB)
+
+vif1.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
+ UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
+ RX packets:3 errors:0 dropped:0 overruns:0 frame:0
+ TX packets:2 errors:0 dropped:157 overruns:0 carrier:0
+ collisions:0 txqueuelen:1
+ RX bytes:140 (140.0 b) TX bytes:158 (158.0 b)
+
+xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF
+ UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
+ RX packets:4 errors:0 dropped:0 overruns:0 frame:0
+ TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
+ collisions:0 txqueuelen:0
+ RX bytes:112 (112.0 b) TX bytes:0 (0.0 b)</screen>
+
+ <screen>&prompt.root; <userinput>brctl show</userinput>
+bridge name bridge id STP enabled interfaces
+xenbr1 8000.feffffffffff no vif0.1
+ peth0
+ vif1.0</screen>
+ </sect3>
+ </sect2>
+-->
+ <sect2 id="virtualization-guest-virtualpc">
+ <title>Το Virtual PC στα &windows;</title>
+
+ <para>Το <application>Virtual PC</application> για &windows; είναι ένα
+ προϊόν της &microsoft; που διατίθεται για δωρεάν κατέβασμα. Δείτε
+ τις <ulink url="http://www.microsoft.com/windows/downloads/virtualpc/sysreq.mspx">απαιτήσεις συστήματος</ulink>.
+ Μετά την εγκατάσταση του <application>Virtual PC</application> στα
+ &microsoft.windows;, ο χρήστης πρέπει να ρυθμίσει ένα εικονικό
+ μηχάνημα και να εγκαταστήσει το φιλοξενούμενο λειτουργικό που
+ επιθυμεί.</para>
+
+ <sect3 id="virtualization-guest-virtualpc-install">
+ <title>Εγκατάσταση του &os; στο Virtual PC/&microsoft.windows;</title>
+
+ <para>Το πρώτο βήμα στην εγκατάσταση του &os; στα &microsoft.windows;
+ με χρήση του <application>Virtual PC</application>, είναι η
+ δημιουργία ενός νέου εικονικού μηχανήματος για την εγκατάσταση του.
+ Επιλέξτε <guimenuitem>Create a virtual machine</guimenuitem> όταν
+ ερωτηθείτε:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd1">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd2">
+ </imageobject>
+ </mediaobject>
+
+ <para>Στην ερώτηση <guimenuitem>Operating System</guimenuitem>
+ επιλέξτε <guimenuitem>Other</guimenuitem>:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd3">
+ </imageobject>
+ </mediaobject>
+
+ <para>Επιλέξτε έπειτα κατάλληλο μέγεθος για το σκληρό δίσκο και τη
+ μνήμη RAM του εικονικού μηχανήματος, ανάλογα με τη χρήση που
+ σκοπεύετε να κάνετε. Στις περισσότερες περιπτώσεις, τα 4GB δίσκου
+ και 512MB RAM είναι αρκετά για χρήση του &os; στο
+ <application>Virtual PC</application>:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd4">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd5">
+ </imageobject>
+ </mediaobject>
+
+ <para>Ολοκληρώστε αποθηκεύοντας τις ρυθμίσεις:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd6">
+ </imageobject>
+ </mediaobject>
+
+ <para>Επιλέξτε την εικονική μηχανή &os; που δημιουργήσατε και
+ κάντε κλικ στο <guimenuitem>Settings</guimenuitem>. Ρυθμίστε
+ έπειτα το είδος και την διεπαφή (interface) του δικτύου:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd7">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd8">
+ </imageobject>
+ </mediaobject>
+
+ <para>Αφού δημιουργήσετε την εικονική μηχανή σας για το &os;, θα
+ πρέπει να εγκαταστήσετε το λειτουργικό σε αυτήν. Ο καλύτερος
+ τρόπος είναι να χρησιμοποιήσετε ένα από τα επίσημα CDROM του
+ &os; ή να κατεβάσετε κάποιο αρχείο ISO από την επίσημη τοποθεσία
+ FTP. Έχοντας το κατάλληλο αρχείο ISO στο τοπικό σας σύστημα
+ αρχείων των &windows; (ή το αντίστοιχο CDROM στον οδηγό), κάντε
+ διπλό κλικ στο εικονίδιο της εικονικής μηχανής &os; για να την
+ εκκινήσετε. Έπειτα κάντε κλικ στο <guimenu>CD</guimenu> και
+ επιλέξτε <guimenu>Capture ISO Image...</guimenu> στο παράθυρο
+ του <application>Virtual PC</application>. Θα εμφανιστεί ένα
+ παράθυρο που θα σας επιτρέψει να συσχετίσετε τον εικονικό οδηγό
+ CDROM με ένα αρχείο ISO ή και με τον πραγματικό σας οδηγό.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd9">
+ </imageobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd10">
+ </imageobject>
+ </mediaobject>
+
+ <para>Μόλις δημιουργήσετε τη συσχέτιση με την πηγή που θα
+ χρησιμοποιήσετε ως CDROM, επανεκκινήστε το εικονικό σας &os;
+ μηχάνημα, επιλέγοντας <guimenu>Reset</guimenu> από το μενού
+ <guimenu>Action</guimenu>.
+ Το <application>Virtual PC</application> εκκινεί με ένα ειδικό
+ BIOS το οποίο ελέγχει πρώτα αν υπάρχει CDROM στον οδηγό, όπως
+ ακριβώς συμβαίνει και με ένα φυσιολογικό BIOS.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd11">
+ </imageobject>
+ </mediaobject>
+
+ <para>Στη δική μας περίπτωση, θα ανιχνεύσει το μέσο εγκατάστασης του
+ &os; και θα ξεκινήσει η συνηθισμένη διαδικασία εγκατάστασης μέσω
+ του <application>sysinstall</application>, όπως περιγράφεται στο
+ <xref linkend="install">. Μπορείτε να προχωρήσετε με την
+ εγκατάσταση, αλλά μη προσπαθήσετε να ρυθμίσετε το γραφικό
+ σύστημα X11 τη δεδομένη στιγμή.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd12">
+ </imageobject>
+ </mediaobject>
+
+ <para>Όταν τελειώσετε την εγκατάσταση, μη ξεχάσετε να βγάλετε το
+ CDROM από τον οδηγό (ή να καταργήσετε την αντίστοιχη συσχέτιση με
+ το αρχείο ISO). Μπορείτε έπειτα να επανεκκινήσετε στη νέα σας
+ εγκατάσταση του &os;.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/virtualpc-freebsd13">
+ </imageobject>
+ </mediaobject>
+ </sect3>
+
+ <sect3 id="virtualization-guest-virtualpc-configure">
+ <title>Ρύθμιση του &os; στο Virtual PC σε &microsoft.windows;</title>
+
+ <para>Μετά την επιτυχή εγκατάσταση του &os; στα &microsoft.windows;
+ μέσω του <application>Virtual PC</application>, θα πρέπει να
+ εκτελέσετε μια σειρά από ρυθμίσεις για να βελτιστοποιήσετε
+ την λειτουργία του συστήματος σε περιβάλλον εικονικής
+ μηχανής.</para>
+
+ <procedure>
+ <step>
+ <title>Θέστε τιμές στις μεταβλητές του φορτωτή εκκίνησης</title>
+
+ <para>Η πιο σημαντική ρύθμιση είναι να μειώσετε την τιμή της
+ μεταβλητής <option>kern.hz</option> για να μειώσετε τη χρήση
+ της CPU στο &os; όταν το χρησιμοποιείτε στο εικονικό περιβάλλον
+ του <application>Virtual PC</application>. Αυτό μπορεί να
+ επιτευχθεί προσθέτοντας την παρακάτω γραμμή στο αρχείο
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>kern.hz=100</programlisting>
+
+ <para>Χωρίς αυτή τη ρύθμιση, μια εικονική μηχανή &os; στο
+ <application>Virtual PC</application>, όταν εκτελείται χωρίς
+ φορτίο, θα χρησιμοποιεί περίπου το 40% του επεξεργαστή σε
+ ένα μηχάνημα με μία CPU. Μετά από την αλλαγή αυτή, η χρήση
+ θα είναι κοντά στο 3%.</para>
+ </step>
+
+ <step>
+ <title>Δημιουργήστε ένα νέο αρχείο ρυθμίσεων πυρήνα</title>
+
+ <para>Μπορείτε να αφαιρέσετε όλα τα προγράμματα οδήγησης για
+ συσκευές SCSI, Firewire και USB.
+ Το <application>Virtual PC</application> παρέχει μια εικονική
+ κάρτα δικτύου η οποία υποστηρίζεται από το πρόγραμμα οδήγησης
+ &man.de.4;, άρα μπορείτε να αφαιρέσετε όλες τις άλλες κάρτες
+ δικτύου από τον πυρήνα, εκτός από το &man.de.4; και το
+ &man.miibus.4;.</para>
+ </step>
+
+ <step>
+ <title>Ρύθμιση δικτύου</title>
+
+ <para>Η πιο απλή ρύθμιση δικτύου περιλαμβάνει τη χρήση του
+ πρωτοκόλλου DHCP για να συνδέσετε το εικονικό μηχάνημα σας στο
+ ίδιο τοπικό δίκτυο με το μηχάνημα ξενιστή. Αυτό επιτυγχάνεται
+ προσθέτοντας τη γραμμή <literal>ifconfig_de0="DHCP"</literal>
+ στο <filename>/etc/rc.conf</filename>. Μπορείτε να βρείτε
+ πιο προχωρημένες ρυθμίσεις δικτύου στο <xref
+ linkend="advanced-networking">.</para>
+ </step>
+ </procedure>
+ </sect3>
+ </sect2>
+
+ <sect2 id="virtualization-guest-vmware">
+ <title>Το VMware σε MacOS</title>
+
+ <para>Το <application>VMware Fusion</application> για &mac; είναι ένα
+ εμπορικό πρόγραμμα. Υπάρχει διαθέσιμο για υπολογιστές &apple; &mac;
+ αρχιτεκτονικής &intel; που τρέχουν &macos; 10.4.9 ή κάποια πιο
+ πρόσφατη έκδοση. Το &os; υποστηρίζεται πλήρως ως φιλοξενούμενο
+ (guest) λειτουργικό. Μόλις ολοκληρωθεί η εγκατάσταση
+ του <application>VMware Fusion</application> στο &macos; X, πρέπει να
+ ρυθμίσετε μια εικονική μηχανή και να εγκαταστήσετε το φιλοξενούμενο
+ λειτουργικό σύστημα.</para>
+
+ <sect3 id="virtualization-guest-vmware-install">
+ <title>Εγκατάσταση του &os; στο VMware/&macos; X</title>
+
+ <para>Αρχικά ξεκινήστε το VMware Fusion, και θα φορτώσει η Συλλογή
+ Εικονικών Μηχανών. Επιλέξτε "New" για να δημιουργήσετε μια νέα
+ εικονική μηχανή:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd01">
+ </imageobject>
+ </mediaobject>
+
+ <para>Θα δείτε να φορτώνει το New Virtual Machine Assistant, το
+ βοηθητικό πρόγραμμα δημιουργίας μιας νέας εικονικής μηχανής.
+ Επιλέξτε Continue για να συνεχίσετε:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd02">
+ </imageobject>
+ </mediaobject>
+
+ <para>Στην επιλογή λειτουργικού συστήματος
+ διαλέξτε <guimenuitem>Other</guimenuitem> και ως έκδοση λειτουργικού
+ συστήματος διαλέξτε <guimenuitem>&os;</guimenuitem>
+ ή <guimenuitem>&os; 64-bit</guimenuitem> (ανάλογα με το αν θέλετε
+ υποστήριξη για 64-bit εφαρμογές ή όχι):</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd03">
+ </imageobject>
+ </mediaobject>
+
+ <para>Δώστε ένα όνομα για το VM Image και ρυθμίστε τον κατάλογο στον
+ οποίο θέλετε να αποθηκευθεί:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd04">
+ </imageobject>
+ </mediaobject>
+
+ <para>Ρυθμίστε το μέγεθος του Εικονικού Δίσκου για την εικονική
+ μηχανή:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd05">
+ </imageobject>
+ </mediaobject>
+
+ <para>Επιλέξτε μια μέθοδο εγκατάστασης για την εικονική μηχανή: είτε
+ από ένα ISO image είτε από το CD-ROM:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd06">
+ </imageobject>
+ </mediaobject>
+
+ <para>Μόλις επιλέξετε Finish, η εικονική μηχανή θα ξεκινήσει τη
+ διαδικασία εκκίνησης (boot):</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd07">
+ </imageobject>
+ </mediaobject>
+
+ <para>Εγκαταστήστε το &os; όπως θα κάνατε και σε οποιοδήποτε άλλο
+ υπολογιστή, ή ακολουθώντας τις οδηγίες από
+ το <xref linkend="install">:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd08">
+ </imageobject>
+ </mediaobject>
+
+ <para>Μόλις ολοκληρωθεί η εγκατάσταση, μπορείτε να αλλάξετε τις
+ ρυθμίσεις της εικονικής μηχανής, όπως π.χ. το μέγεθος μνήμης που θα
+ χρησιμοποιεί:</para>
+
+ <note>
+ <para>Οι ρυθμίσεις υλικού μιας εικονικής μηχανής δε μπορούν να
+ αλλάξουν όσο τρέχει αυτή η εικονική μηχανή.</para>
+ </note>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd09">
+ </imageobject>
+ </mediaobject>
+
+ <para>Μπορείτε, ακόμη, να ρυθμίσετε τον αριθμό των επεξεργαστών τους
+ οποίους επιτρέπεται να χρησιμοποιήσει αυτή η εικονική μηχανή:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd10">
+ </imageobject>
+ </mediaobject>
+
+ <para>Ίσως έχει νόημα, επίσης, να αλλάξετε το αρχείο ή τη συσκευή που
+ φαίνεται ως CD-ROM μέσα στην εικονική μηχανή. Συνήθως μπορείτε να
+ αποσυνδέσετε το CD-ROM ή το ISO image από την εικονική μηχανή, αφού
+ δε χρειάζεται πλέον όταν έχει ολοκληρωθεί η εγκατάσταση του
+ &os;:</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd11">
+ </imageobject>
+ </mediaobject>
+
+ <para>Μια από τις τελευταίες ρυθμίσεις είναι η σύνδεση της εικονικής
+ μηχανής με το δίκτυο. Για να μπορείτε να συνδεθείτε στην ΕΜ από
+ άλλα μηχανήματα (εκτός του ξενιστή), ενεργοποιήστε την
+ επιλογή <guimenuitem>Connect directly to the physical network
+ (Bridged)</guimenuitem>. Αλλιώς, για να μπορεί η ΕΜ να συνδεθεί
+ στο δίκτυο μέσω του ξενιστή, αλλά να μη μπορούν άλλα μηχανήματα να
+ συνδεθούν σε αυτή, ενεργοποιήστε την επιλογή <guimenuitem>Share the
+ host's internet connection (NAT)</guimenuitem>.</para>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="virtualization/vmware-freebsd12">
+ </imageobject>
+ </mediaobject>
+
+ <para>Μόλις τελειώσετε με αυτές τις ρυθμίσεις, μπορείτε να εκκινήσετε
+ τη νέα εικονική μηχανή με το φρεσκο-εγκατεστημένο &os; σας.</para>
+ </sect3>
+
+ <sect3 id="virtualization-guest-vmware-configure">
+ <title>Ρυθμίσεις του &os; μέσα στο &macos; X/VMware</title>
+
+ <para>Αφού τελειώσετε με την εγκατάσταση του &os; σε μια εικονική
+ μηχανή <application>VMware</application> μέσα σε &macos; X, πρέπει
+ να κάνετε κάποιες ρυθμίσεις για να βελτιωθεί η απόδοση του &os; ως
+ φιλοξενούμενου συστήματος.</para>
+
+ <procedure>
+ <step>
+ <title>Ρυθμίσεις μεταβλητών του boot loader</title>
+
+ <para>Η πιο σημαντική ρύθμιση είναι να μειώσετε την τιμή της
+ μεταβλητής <option>kern.hz</option>, για να μειωθεί κάπως η
+ χρήση του επεξεργαστή από το &os; καθώς τρέχει μέσα
+ στο <application>VMware</application>. Προσθέστε, λοιπόν, την
+ παρακάτω γραμμή στο
+ αρχείο <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>kern.hz=100</programlisting>
+
+ <para>Χωρίς αυτή τη ρύθμιση ένα φιλοξενούμενο &os; που τρέχει μέσα
+ σε VMware μπορεί να χρησιμοποιεί μέχρι και 15% του επεξεργαστή
+ ενός &imac;. Μετά από αυτή τη ρύθμιση η χρήση του επεξεργαστή
+ μπορεί να είναι μικρότερη από 5%.</para>
+ </step>
+
+ <step>
+ <title>Δημιουργήστε ένα νέο αρχείο ρυθμίσεων πυρήνα</title>
+
+ <para>Μπορείτε να αφαιρέσετε όλες τις συσκευές FireWire και USB.
+ Το <application>VMware</application> παρέχει μια εικονική κάρτα
+ δικτύου, η οποία είναι συμβατή με τον οδηγό &man.em.4;, οπότε
+ μπορείτε να αφαιρέσετε όλες τις υπόλοιπες κάρτες δικτύου από τον
+ πυρήνα σας.</para>
+ </step>
+
+ <step>
+ <title>Ρυθμίστε το δίκτυο</title>
+
+ <para>Ο πιο εύκολος τρόπος να ρυθμίσετε το δίκτυο της εικονικής
+ μηχανής είναι να συνδεθείτε μέσω DHCP με το τοπικό δίκτυο,
+ χρησιμοποιώντας τη διεύθυνση MAC του ξενιστή. Αυτό μπορεί να
+ γίνει προσθέτοντας τη
+ γραμμή <literal>ifconfig_em0="DHCP"</literal> στο
+ αρχείο <filename>/etc/rc.conf</filename>. Για περισσότερες
+ πληροφορίες και πιο προχωρημένες ρυθμίσεις δικτύου, δείτε
+ το <xref linkend="advanced-networking">.</para>
+ </step>
+ </procedure>
+ </sect3>
+ </sect2>
+
+ <sect2 id="virtualization-guest-virtualbox-guest-additions">
+ <title>&virtualbox; Guest Additions σε &os; Guest</title>
+
+ <para>Τα πρόσθετα προγράμματα για το φιλοξενούμενο λειτουργικό
+ (guest additions) του <application>&virtualbox;</application>
+ παρέχουν υποστήριξη για τα παρακάτω:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Κοινή χρήση προχείρου (clipboard)</para>
+ </listitem>
+
+ <listitem>
+ <para>Έξυπνη χρήση δείκτη ποντικιού</para>
+ </listitem>
+
+ <listitem>
+ <para>Συγχρονισμός ώρας με τον ξενιστή (host)</para>
+ </listitem>
+
+ <listitem>
+ <para>Αναπροσαρμογή μεγέθους παραθύρου</para>
+ </listitem>
+
+ <listitem>
+ <para>Κατάσταση απρόσκοπτης λειτουργίας (seamless mode)</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Οι παρακάτω εντολές εκτελούνται στο φιλοξενούμενο &os;
+ λειτουργικό.</para>
+ </note>
+
+ <para>Αρχικά, εγκαταστήστε το πακέτο <filename
+ role="package">emulators/virtualbox-ose-additions</filename>
+ στο φιλοξενούμενο &os; λειτουργικό.</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/emulators/virtualbox-ose-additions && make install clean</userinput></screen>
+
+ <para>Προσθέστε τις παρακάτω γραμμές στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>vboxguest_enable="YES"
+vboxservice_enable="YES"</programlisting>
+
+ <para>Αν πρόκειται να χρησιμοποιήσετε το &man.ntpd.8; ή το
+ &man.ntpdate.8;, θα πρέπει να απενεργοποιήσετε το συγχρονισμό ώρας
+ με τον ξενιστή:</para>
+
+ <programlisting>vboxservice_flags="--disable-timesync"</programlisting>
+
+ <para>Το πρόγραμμα οδήγησης <literal>vboxvideo_drv</literal>
+ φυσιολογικά θα αναγνωριστεί αυτόματα όταν εκτελέσετε το
+ <command>Xorg -configure</command>. Αν αυτό δεν συμβεί,
+ τροποποιήστε το <filename>xorg.conf</filename> για την κάρτα
+ γραφικών του <application>&virtualbox;</application>:</para>
+
+ <programlisting>Section "Device"
+ ### Available Driver options are:-
+ ### Values: &lt;i&gt;: integer, &lt;f&gt;: float, &lt;bool&gt;: "True"/"False",
+ ### &lt;string&gt;: "String", &lt;freq&gt;: "&lt;f&gt; Hz/kHz/MHz"
+ ### [arg]: arg optional
+ Identifier "Card0"
+ Driver "vboxvideo"
+ VendorName "InnoTek Systemberatung GmbH"
+ BoardName "VirtualBox Graphics Adapter"
+ BusID "PCI:0:2:0"
+EndSection</programlisting>
+
+ <para>Για να χρησιμοποιήσετε το <literal>vboxmouse_drv</literal>,
+ χρησιμοποιήστε την παρακάτω ενότητα για το ποντίκι στο
+ <filename>xorg.conf</filename>:</para>
+
+ <programlisting>Section "InputDevice"
+ Identifier "Mouse0"
+ Driver "vboxmouse"
+EndSection</programlisting>
+
+ <para>Οι χρήστες του <acronym>HAL</acronym> θα πρέπει να δημιουργήσουν
+ το αρχείο
+ <filename>/usr/local/etc/hal/fdi/policy/90-vboxguest.fdi</filename>
+ ή να το αντιγράψουν από το <filename>/usr/local/share/hal/fdi/policy/10osvendor/90-vboxguest.fdi</filename>:</para>
+
+ <programlisting>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
+&lt;!--
+# Sun VirtualBox
+# Hal driver description for the vboxmouse driver
+# $Id: chapter.sgml,v 1.16 2011-12-09 19:53:53 manolis Exp $
+
+ Copyright (C) 2008-2009 Sun Microsystems, Inc.
+
+ This file is part of VirtualBox Open Source Edition (OSE, as
+ available from http://www.virtualbox.org. This file is free software;
+ you can redistribute it and/or modify it under the terms of the GNU
+ General Public License (GPL) as published by the Free Software
+ Foundation, in version 2 as it comes in the "COPYING" file of the
+ VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+ hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+
+ Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
+ Clara, CA 95054 USA or visit http://www.sun.com if you need
+ additional information or have any questions.
+--&gt;
+&lt;deviceinfo version="0.2"&gt;
+ &lt;device&gt;
+ &lt;match key="info.subsystem" string="pci"&gt;
+ &lt;match key="info.product" string="VirtualBox guest Service"&gt;
+ &lt;append key="info.capabilities" type="strlist"&gt;input&lt;/append&gt;
+ &lt;append key="info.capabilities" type="strlist"&gt;input.mouse&lt;/append&gt;
+ &lt;merge key="input.x11_driver" type="string"&gt;vboxmouse&lt;/merge&gt;
+ &lt;merge key="input.device" type="string"&gt;/dev/vboxguest&lt;/merge&gt;
+ &lt;/match&gt;
+ &lt;/match&gt;
+ &lt;/device&gt;
+&lt;/deviceinfo&gt;</programlisting>
+ </sect2>
+ </sect1>
+
+ <sect1 id="virtualization-host">
+ <title> Το &os; ως Ξενιστής (Host)</title>
+
+ <para>Για αρκετά χρόνια, κανένα από τα πακέτα εικονικοποίησης δεν
+ υποστήριζε επίσημα το &os; ως ξενιστή. Κάποιοι χρήστες
+ χρησιμοποιούσαν παλιές και κατά βάση εγκαταλελειμμένες εκδόσεις του
+ <application>VMware</application> (όπως το <filename
+ role="package">emulators/vmware3</filename>), οι οποίες
+ χρησιμοποιούσαν την συμβατότητα εκτέλεσης προγραμμάτων &linux;.
+ Λίγο μετά την επίσημη κυκλοφορία του &os;&nbsp;7.2, έγινε διαθέσιμη
+ στη Συλλογή των Ports η έκδοση Ανοικτού Κώδικα
+ (<acronym>OSE</acronym>, Open Source Edition) του
+ <application>&virtualbox;</application> της &sun;. Η εφαρμογή αυτή
+ εκτελείται ως εγγενές πρόγραμμα του &os;.</para>
+
+ <para>Το <application>&virtualbox;</application> είναι ένα πλήρες πακέτο
+ εικονικοποίησης το οποίο βρίσκεται σε διαρκή ανάπτυξη. Είναι διαθέσιμο
+ για τα περισσότερα λειτουργικά συστήματα, συμπεριλαμβανομένων των
+ &windows;, &macos;, &linux; και &os;. Έχει τη δυνατότητα να εκτελεί το
+ ίδιο καλά τόσο λειτουργικά τύπου &windows; όσο και &unix;. Έρχεται σε
+ δύο εκδόσεις: ανοικτού και κλειστού κώδικα. Από την μεριά του χρήστη,
+ ίσως ο μεγαλύτερος περιορισμός της έκδοσης ανοικτού κώδικα είναι η
+ έλλειψη υποστήριξης συσκευών USB. Μπορείτε να δείτε όλες τις διαφορές
+ στη σελίδα <quote>Editions</quote> του
+ <application>&virtualbox;</application> wiki, στην τοποθεσία <ulink
+ url="http://www.virtualbox.org/wiki/Editions"></ulink>.
+ Τη δεδομένη στιγμή, μόνο η έκδοση OSE διατίθεται για το &os;.</para>
+
+ <sect2 id="virtualization-virtualbox-install">
+ <title>Εγκατάσταση του &virtualbox;</title>
+
+ <para>Το <application>&virtualbox;</application> είναι διαθέσιμο ως &os;
+ port στο <filename role="package">emulators/virtualbox-ose</filename>.
+ Καθώς το <application>&virtualbox;</application> βρίσκεται υπό
+ συνεχή και πολύ ενεργή ανάπτυξη, βεβαιωθείτε ότι έχετε ανανεώσει το
+ δέντρο των ports πριν ξεκινήσετε την εγκατάσταση του. Χρησιμοποιήστε
+ τις παρακάτω εντολές για να το εγκαταστήσετε:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/emulators/virtualbox-ose</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Μια χρήσιμη επιλογή που εμφανίζεται στο διάλογο ρυθμίσεων, αφορά
+ την εγκατάσταση των προγραμμάτων <literal>GuestAdditions</literal>.
+ Τα προγράμματα αυτά παρέχουν μια σειρά από χρήσιμες λειτουργίες στα
+ φιλοξενούμενα λειτουργικά, όπως η διάφανη λειτουργία του δείκτη
+ ποντικιού (επιτρέπει στο ποντίκι να κινείται ελεύθερα μεταξύ του
+ ξενιστή και του φιλοξενούμενου λειτουργικού, χωρίς να απαιτείται η
+ χρήση κάποιου ειδικού πλήκτρου για εναλλαγή) καθώς και ταχύτερη
+ γραφική απεικόνιση, ειδικά σε λειτουργικά &windows;. Μπορείτε να
+ βρείτε τα guest additions στο μενού <guimenu>Devices</guimenu>, όταν
+ ολοκληρώσετε την εγκατάσταση του φιλοξενούμενου λειτουργικού.</para>
+
+ <para>Πριν χρησιμοποιήσετε το <application>&virtualbox;</application>
+ για πρώτη φορά, θα πρέπει να αλλάξετε κάποιες ρυθμίσεις. Το port
+ εγκαθιστά ένα άρθρωμα πυρήνα στον κατάλογο <filename
+ class="directory">/boot/modules</filename> το οποίο θα πρέπει να
+ φορτώσετε στον πυρήνα που εκτελείται:</para>
+
+ <screen>&prompt.root; <userinput>kldload vboxdrv</userinput></screen>
+
+ <para>Για να φορτώνεται το άρθρωμα αυτόματα σε κάθε επανεκκίνηση
+ του συστήματος, προσθέστε την παρακάτω γραμμή στο αρχείο
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>vboxdrv_load="YES"</programlisting>
+
+ <para>Για να χρησιμοποιήσετε τα αρθρώματα πυρήνα που επιτρέπουν τη
+ λειτουργία του δικτύου σε κατάσταση γέφυρας (bridged) ή host-only,
+ προσθέστε την παρακάτω γραμμή στο <filename>/etc/rc.conf</filename>
+ και επανεκκινήστε τον υπολογιστή σας:</para>
+
+ <programlisting>vboxnet_enable="YES"</programlisting>
+
+ <para>Κατά τη διάρκεια της εγκατάστασης του
+ <application>&virtualbox;</application>, δημιουργείται αυτόματα η
+ ομάδα χρηστών <groupname>vboxusers</groupname>. Όλοι οι χρήστες που
+ χρειάζονται πρόσβαση στο <application>&virtualbox;</application>, θα
+ πρέπει να ανήκουν σε αυτή την ομάδα. Μπορείτε να χρησιμοποιήσετε την
+ εντολή <command>pw</command> για να προσθέσετε νέα μέλη στην
+ ομάδα:</para>
+
+ <screen>&prompt.root; <userinput>pw groupmod vboxusers -m <replaceable>yourusername</replaceable></userinput></screen>
+
+ <para>Τα προεπιλεγμένα δικαιώματα για τη συσκευή <filename
+ class="devicefile">/dev/vboxnetctl</filename> είναι αρκετά
+ περιοριστικά και πρέπει να αλλάξουν για να λειτουργήσει το δίκτυο
+ σε κατάσταση γέφυρας.</para>
+
+ <para>Για να δοκιμάσετε τις νέες ρυθμίσεις προσωρινά:</para>
+
+ <screen>&prompt.root; <userinput>chown root:vboxusers /dev/vboxnetctl</userinput>
+&prompt.root; <userinput>chmod 0660 /dev/vboxnetctl</userinput></screen>
+
+ <para>Για να αλλάξετε τα δικαιώματα μόνιμα, προσθέστε τις παρακάτω
+ γραμμές στο <filename>/etc/devfs.conf</filename>:</para>
+
+ <programlisting>own vboxnetctl root:vboxusers
+perm vboxnetctl 0660</programlisting>
+
+ <para>Για να εκτελέσετε το <application>&virtualbox;</application>,
+ μπορείτε απλώς να επιλέξετε την καταχώριση
+ <guimenuitem>Sun VirtualBox</guimenuitem> από το μενού του γραφικού
+ σας περιβάλλοντος, ή να πληκτρολογήσετε το παρακάτω σε ένα
+ τερματικό:</para>
+
+ <screen>&prompt.user; <userinput>VirtualBox</userinput></screen>
+
+ <para>Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση και χρήση του
+ <application>&virtualbox;</application>, παρακαλούμε επισκεφθείτε την
+ επίσημη δικτυακή τοποθεσία στο <ulink
+ url="http://www.virtualbox.org"></ulink>. Καθώς το &os; port είναι
+ πολύ πρόσφατο, η εξέλιξη του είναι συνεχής. Για τις τελευταίες
+ πληροφορίες καθώς και για οδηγίες αντιμετώπισης τυχόν προβλημάτων,
+ παρακαλούμε δείτε τη σχετική σελίδα στο wiki του &os;, στην τοποθεσία
+ <ulink url="http://wiki.FreeBSD.org/VirtualBox"></ulink>.</para>
+ </sect2>
+
+ <sect2 id="virtualization-virtualbox-usb-support">
+ <title>Υποστήριξη USB στο &virtualbox;</title>
+
+ <note>
+ <para>Για τα βήματα αυτά απαιτείται το
+ <application>&virtualbox;</application>&nbsp;4.0.0 ή
+ μεταγενέστερο.</para>
+ </note>
+
+ <para>Για να μπορείτε να διαβάσετε και να γράψετε σε συσκευές USB, θα
+ πρέπει ο λογαριασμός σας να ανήκει στην ομάδα operators:</para>
+
+ <screen>&prompt.root; <userinput>pw groupmod operator -m <replaceable>jerry</replaceable></userinput></screen>
+
+ <para>Προσθέστε έπειτα τις παρακάτω γραμμές στο αρχείο
+ <filename>/etc/devfs.rules</filename> (δημιουργήστε το αν δεν υπάρχει
+ ήδη):</para>
+
+ <programlisting>[system=10]
+add path 'usb/*' mode 0660 group operator</programlisting>
+
+ <para>Για να φορτώσετε τους νέους κανόνες, προσθέστε την παρακάτω
+ γραμμή στο <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>devfs_system_ruleset="system"</programlisting>
+
+ <para>Έπειτα επανεκκινήστε το devfs:</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/devfs restart</userinput></screen>
+
+ <para>Μπορείτε τώρα να ενεργοποιήσετε το USB στο φιλοξενούμενο
+ λειτουργικό. Θα πρέπει να μπορείτε να δείτε τις συσκευές USB στις
+ προτιμήσεις του &virtualbox;.</para>
+ </sect2>
+
+ <sect2 id="virtualization-virtualbox-host-dvd-cd-access">
+ <title>Πρόσβαση στο DVD/CD του Ξενιστή</title>
+
+ <para>θα πρέπει να φορτώσετε το άρθρωμα πυρήνα
+ <command>atapicam</command> προσθέτοντας την παρακάτω γραμμή στο
+ <filename>/boot/loader.conf</filename>:</para>
+
+ <programlisting>atapicam_load="YES"</programlisting>
+
+ <para>Θα πρέπει να εκτελείται το <acronym>HAL</acronym> για να
+ λειτουργήσει σωστά το DVD/CD στο
+ <application>&virtualbox;</application>. Ενεργοποιήστε το στο
+ <filename>/etc/rc.conf</filename> και ξεκινήστε το (αν δεν
+ εκτελείται ήδη):</para>
+
+ <programlisting>hald_enable="YES"</programlisting>
+
+ <screen>&prompt.root; <userinput>/usr/local/etc/rc.d/hald start</userinput></screen>
+
+ <para>Για να μπορούν οι χρήστες να έχουν πρόσβαση στις λειτουργίες
+ CD/DVD του <application>&virtualbox;</application>, χρειάζονται
+ πρόσβαση στις συσκευές
+ <filename class="devicefile">/dev/xpt0</filename>,
+ <filename
+ class="devicefile">/dev/cd<replaceable>N</replaceable></filename>
+ και <filename
+ class="devicefile">/dev/pass<replaceable>N</replaceable></filename>.
+ Προσθέστε τις παρακάτω γραμμές στο
+ <filename>/etc/devfs.conf</filename>:</para>
+
+ <programlisting>perm cd0 0600
+perm xpt0 0660
+perm pass0 0660</programlisting>
+ </sect2>
+
+<!-- Δεν υπάρχει υποστήριξη Xen για το FreeBSD, από τον 07/2010.
+ Οι παρακάτω πληροφορίες δεν πρέπει να φαίνονται
+
+ <sect2 id="virtualization-other">
+ <title>Άλλες Επιλογές Εικονικοποίησης</title>
+
+ <para>Υπό εξέλιξη βρίσκεται η προσπάθεια να λειτουργήσει το
+ <application>&xen;</application> ως περιβάλλον ξενιστή για το
+ &os;.</para>
+ </sect2>
+-->
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ fill-column: 78
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->
diff --git a/el_GR.ISO8859-7/books/handbook/x11/chapter.sgml b/el_GR.ISO8859-7/books/handbook/x11/chapter.sgml
new file mode 100644
index 0000000000..de318cb907
--- /dev/null
+++ b/el_GR.ISO8859-7/books/handbook/x11/chapter.sgml
@@ -0,0 +1,1831 @@
+<!--
+
+ Το Εγχειρίδιο του FreeBSD: Το Σύστημα X Window
+
+ The FreeBSD Greek Documentation Project
+
+ $FreeBSD$
+
+ %SOURCE% en_US.ISO8859-1/books/handbook/x11/chapter.sgml
+ %SRCID% 1.208
+
+-->
+
+<chapter id="x11">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Ken</firstname>
+ <surname>Tom</surname>
+ <contrib>Ανανεώθηκε για τον X11 server του X.Org από τον </contrib>
+ </author>
+ <author>
+ <firstname>Marc</firstname>
+ <surname>Fonvieille</surname>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+
+ <title>Το Σύστημα X Window</title>
+
+ <sect1 id="x11-synopsis">
+ <title>Σύνοψη</title>
+
+ <para>Το &os; χρησιμοποιεί το X11 για να παρέχει στους χρήστες
+ ένα ισχυρό γραφικό περιβάλλον εργασίας. Το περιβάλλον X11
+ είναι μια υλοποίηση ανοικτού κώδικα του συστήματος X Window που
+ υλοποιείται στο <application>&xorg;</application> (καθώς και σε άλλο
+ λογισμικό που δεν περιγράφεται εδώ). Η προεπιλεγμένη και επίσημη
+ διανομή του X11 είναι το <application>&xorg;</application>, ο X11
+ server που αναπτύχθηκε από το X.Org Foundation με άδεια χρήσης αρκετά
+ όμοια με αυτή που χρησιμοποιείται από το &os;. Υπάρχουν επίσης
+ διαθέσιμοι εμπορικοί X servers για το &os;.</para>
+
+ <para>Για περισσότερες πληροφορίες που σχετίζονται με τις κάρτες γραφικών
+ που υποστηρίζονται από το περιβάλλον X11, δείτε την δικτυακή
+ τοποθεσία <ulink url="http://www.x.org/">&xorg;</ulink>.</para>
+
+ <para>Αφού διαβάσετε αυτό το κεφάλαιο, θα ξέρετε:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Τα διάφορα τμήματα του συστήματος X Window, και πως
+ συνεργάζονται μεταξύ τους.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε και να ρυθμίσετε το περιβάλλον X11.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να εγκαταστήσετε και να ρυθμίσετε διαφορετικούς
+ διαχειριστές παραθύρων (window managers).</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να χρησιμοποιήσετε &truetype; γραμματοσειρές στο X11.</para>
+ </listitem>
+
+ <listitem>
+ <para>Πως να ρυθμίσετε το σύστημα σας για σύνδεση (login) μέσω
+ γραφικού περιβάλλοντος (<application>XDM</application>).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Πριν διαβάσετε αυτό το κεφάλαιο, θα πρέπει:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Να ξέρετε πως να εγκαταστήσετε πρόσθετο λογισμικό τρίτου
+ κατασκευαστή (<xref linkend="ports">).</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="x-understanding">
+ <title>Κατανόηση του περιβάλλοντος X11</title>
+
+ <para>Η χρήση του περιβάλλοντος X11 για πρώτη φορά μπορεί να προκαλέσει
+ μια μικρή ταραχή σε όποιον έχει συνηθίσει σε άλλα γραφικά περιβάλλοντα,
+ όπως τα &microsoft.windows; ή το &macos;.</para>
+
+ <para>Γενικά, δεν είναι απαραίτητο να καταλαβαίνετε με κάθε λεπτομέρεια
+ των διαφόρων τμημάτων του X11 και πώς αλληλεπιδρούν μεταξύ τους.
+ Κάποιες βασικές γνώσεις όμως, είναι χρήσιμες και βοηθούν στο να
+ εκμεταλλευτείτε καλύτερα τις δυνατότητες του X11.</para>
+
+ <sect2>
+ <title>Γιατί λέγεται X11 το περιβάλλον εργασίας;</title>
+
+ <para>Το X δεν είναι το πρώτο περιβάλλον εργασίας που γράφτηκε για
+ συστήματα &unix;, αλλά είναι σήμερα το πιο δημοφιλές. Η αρχική ομάδα
+ ανάπτυξης του X είχε δουλέψει σε ένα άλλο σύστημα πριν γράψει το X.
+ Το όνομα του παλιότερου συστήματος ήταν <quote>W</quote> (από την
+ Αγγλική λέξη <quote>window</quote>). Το γράμμα X ήταν απλά το επόμενο
+ γράμμα στο Λατινικό αλφάβητο.</para>
+
+ <para>Μπορείτε να αναφέρεσθε στο X με τα
+ ονόματα <quote>X</quote>, <quote>X Window
+ System</quote>, <quote>X11</quote>, καθώς και με μερικούς άλλους
+ όρους. Προσοχή όμως: κάποιοι άνθρωποι θεωρούν προσβλητικό τον
+ όρο <quote>X Windows</quote>. Για περισσότερες πληροφορίες σχετικά με
+ αυτό, δείτε τη σελίδα manual &man.X.7;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Το Μοντέλο Πελάτη/Διακομιστή των X11</title>
+
+ <para>Το περιβάλλον X11 έχει σχεδιαστεί από την αρχή έτσι ώστε να έχει
+ εγγενή δικτυακή υποστήριξη, με βάση ένα
+ μοντέλο <quote>πελάτη-διακομιστή</quote>.</para>
+
+ <para>Στο μοντέλο λειτουργίας του X11, ο <quote>διακομιστής X</quote>
+ εκτελείται στον υπολογιστή στον οποίο έχει συνδεθεί το πληκτρολόγιο, η
+ οθόνη και το ποντίκι. Ο διακομιστής X είναι υπεύθυνος για τη
+ διαχείριση της οθόνης, της εισόδου από το πληκτρολόγιο, το ποντίκι,
+ κλπ. Κάθε εφαρμογή X (π.χ. το <application>XTerm</application> ή το
+ <application>&netscape;</application>) είναι ένας
+ <quote>πελάτης</quote>. Ένας πελάτης στέλνει μηνύματα στον διακομιστή
+ όπως <quote>Παρακαλώ σχεδίασε ένα παράθυρο σε αυτές τις
+ συντεταγμένες</quote>, και ο διακομιστής στέλνει πίσω μηνύματα όπως
+ <quote>Ο χρήστης μόλις πάτησε το πλήκτρο OK</quote>.</para>
+
+ <para>Σε ένα σπίτι ή ένα μικρό γραφείο, ο διακομιστής και οι πελάτες
+ X συχνά εκτελούνται στον ίδιο υπολογιστή. Όμως, είναι απόλυτα εφικτό
+ να εκτελείται ο διακομιστής X σε έναν λιγότερο ισχυρό επιτραπέζιο
+ υπολογιστή, και να εκτελούνται οι εφαρμογές X (οι πελάτες) σε ένα, ας
+ πούμε, ισχυρό και ακριβό μηχάνημα που εξυπηρετεί το γραφείο. Σε αυτό
+ το σενάριο η επικοινωνία μεταξύ των πελατών X και του διακομιστή
+ γίνεται μέσω δικτύου.</para>
+
+ <para>Αυτό προκαλεί σύγχυση σε ορισμένους, επειδή η ορολογία του X είναι
+ ακριβώς αντίθετη από ότι περίμεναν. Οι χρήστες συνήθως περιμένουν ο
+ <quote>διακομιστής X</quote> να είναι ένα μεγάλο ισχυρό μηχάνημα σε
+ ένα δωμάτιο και ο <quote>πελάτης X</quote> να είναι το μηχάνημα του
+ γραφείου τους.</para>
+
+ <para>Είναι σημαντικό να θυμάστε ότι ο διακομιστής X είναι το μηχάνημα
+ με την οθόνη και το πληκτρολόγιο, και οι πελάτες X είναι τα
+ προγράμματα που εμφανίζουν τα παράθυρα.</para>
+
+ <para>Δεν υπάρχει τίποτα στο πρωτόκολλο που να αναγκάζει τα μηχανήματα
+ των πελατών και του διακομιστή να εκτελούνται στο ίδιο λειτουργικό
+ σύστημα, ή ακόμη να εκτελούνται στον ίδιο τύπο υπολογιστή. Είναι
+ απόλυτα εφικτό να εκτελείται ένας διακομιστής X στα
+ &microsoft.windows; ή στο &macos; της Apple, και υπάρχουν διαθέσιμες
+ διάφορες ελεύθερες και εμπορικές εφαρμογές που κάνουν ακριβώς
+ αυτό.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ο Διαχειριστής Παραθύρων</title>
+
+ <para>Η φιλοσοφία σχεδιασμού του X μοιάζει πολύ με την φιλοσοφία
+ σχεδιασμού του &unix;, <quote>εργαλεία, όχι πολιτική</quote>. Αυτό
+ σημαίνει ότι το X δεν προσπαθεί να υπαγορεύσει πως θα υλοποιηθεί μια
+ εργασία. Αντίθετα, παρέχονται εργαλεία στον χρήστη, και είναι δική
+ του ευθύνη να αποφασίσει πως θα τα χρησιμοποιήσει.</para>
+
+ <para>Αυτή η φιλοσοφία επεκτείνεται στο ότι το X δεν υπαγορεύει πως
+ πρέπει να εμφανίζονται τα παράθυρα στην οθόνη, πως θα μετακινηθούν με
+ το ποντίκι, τι συνδυασμοί πλήκτρων πρέπει να χρησιμοποιηθούν για να
+ μετακινηθούμε μεταξύ των παραθύρων (π.χ.,
+ <keycombo action="simul">
+ <keycap>Alt</keycap>
+ <keycap>Tab</keycap>
+ </keycombo>, στην περίπτωση των &microsoft.windows;), πώς πρέπει να
+ μοιάζουν οι μπάρες τίτλων σε κάθε παράθυρο, αν θα έχουν ή όχι πλήκτρα
+ κλεισίματος πάνω τους, κ.o.κ.</para>
+
+ <para>Αντίθετα, το X αναθέτει αυτήν την ευθύνη σε μία εφαρμογή που
+ ονομάζεται <quote>Διαχειριστής Παραθύρων</quote>. Υπάρχουν πάρα
+ πολλοί διαχειριστές παραθύρων διαθέσιμοι για το περιβάλλον X.
+ Ορισμένοι από αυτούς είναι οι:
+ <application>AfterStep</application>,
+ <application>Blackbox</application>, <application>ctwm</application>,
+ <application>Enlightenment</application>,
+ <application>fvwm</application>, <application>Sawfish</application>,
+ <application>twm</application>,
+ <application>Window Maker</application>, και πολλοί άλλοι. Κάθε ένας
+ από αυτούς τους διαχειριστές παραθύρων έχει διαφορετική αίσθηση και
+ εμφάνιση. Μερικοί από αυτούς υποστηρίζουν
+ <quote>εικονικές επιφάνειες εργασίας</quote>, μερικοί επιτρέπουν
+ προσαρμοσμένους συνδυασμούς πλήκτρων για την διαχείριση της
+ επιφάνειας εργασίας, μερικοί έχουν ένα πλήκτρο <quote>Start</quote> ή
+ κάτι παρόμοιο, μερικοί υποστηρίζουν <quote>θέματα</quote> (themes),
+ επιτρέποντας την ολοκληρωτική αλλαγή εμφάνισης με την εφαρμογή ενός
+ νέου θέματος. Οι διαχειριστές παραθύρων που έχουμε αναφέρει ως τώρα,
+ και πολλοί άλλοι, είναι διαθέσιμοι στην κατηγορία
+ <filename>x11-wm</filename> της Συλλογής των Ports.</para>
+
+ <para>Επιπλέον, τα δύο πιο δημοφιλή ολοκληρωμένα περιβάλλοντα εργασίας,
+ το <application>KDE</application> και
+ το <application>GNOME</application>, έχουν τον δικό τους διαχειριστή
+ παραθύρων που είναι ενσωματωμένος με το υπόλοιπο περιβάλλον
+ εργασίας.</para>
+
+ <para>Κάθε διαχειριστής παραθύρων έχει επίσης και διαφορετικό μηχανισμό
+ ρύθμισης: μερικοί ρυθμίζονται συμπληρώνοντας με χειροκίνητο τρόπο ένα
+ αρχείο ρυθμίσεων, άλλοι διαθέτουν γραφικά εργαλεία για τις
+ περισσότερες ρυθμίσεις. Υπάρχει ακόμα κι ένας
+ (<application>Sawfish</application>) που έχει αρχείο ρυθμίσεων
+ γραμμένο σε μια διάλεκτο της γλώσσας Lisp.</para>
+
+ <note>
+ <title>Πολιτική Εστίασης</title>
+
+ <para>Άλλο ένα θέμα για το οποίο είναι υπεύθυνος ο διαχειριστής
+ παραθύρων είναι η <quote>πολιτική εστίασης</quote> του ποντικιού.
+ Κάθε σύστημα παραθύρων χρειάζεται κάποιο τρόπο επιλογής του
+ παραθύρου που θα δέχεται αυτά που πληκτρολογούνται, και θα πρέπει
+ να φαίνεται κάπως ότι αυτό το παράθυρο είναι ενεργό.</para>
+
+ <para>Μία γνωστή πολιτική εστίασης λέγεται
+ <quote>click-to-focus</quote>. Αυτό το μοντέλο χρησιμοποιείται στα
+ &microsoft.windows;, όπου ένα παράθυρο γίνεται ενεργό αν δεχτεί ένα
+ πάτημα του ποντικιού.</para>
+
+ <para>Το X δεν υποστηρίζει καμία συγκεκριμένη πολιτική εστίασης.
+ Αντίθετα, ο διαχειριστής παραθύρων ελέγχει ποίο παράθυρο έχει
+ εστιαστεί κάθε στιγμή. Διαφορετικοί διαχειριστές παραθύρων
+ υποστηρίζουν διαφορετικές μεθόδους εστίασης. Όλοι τους
+ υποστηρίζουν την μέθοδο click to focus, και οι περισσότεροι από
+ αυτούς υποστηρίζουν και αρκετές άλλες.</para>
+
+ <para>Οι πιο δημοφιλείς μέθοδοι εστίασης είναι:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>focus-follows-mouse</term>
+
+ <listitem>
+ <para>Το παράθυρο που βρίσκεται κάτω από τον δείκτη του
+ ποντικιού είναι το παράθυρο που έχει την εστίαση.
+ Το ενεργό παράθυρο δεν είναι απαραίτητο να είναι αυτό που
+ βρίσκεται πάνω από όλα τα άλλα. Η εστίαση αλλάζει με την
+ στόχευση ενός άλλου παραθύρου, χωρίς να είναι απαραίτητο το
+ κλικ πάνω του.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>sloppy-focus</term>
+
+ <listitem>
+ <para>Αυτή η πολιτική είναι μια μικρή επέκταση του
+ focus-follows-mouse. Με την πολιτική εστίασης
+ focus-follows-mouse, αν το ποντίκι βρεθεί πάνω από το αρχικό
+ (root) παράθυρο (ή το παρασκήνιο) δεν υπάρχει εστίαση σε
+ κανένα παράθυρο, και ότι πληκτρολογείται απλώς χάνεται. Με τη
+ sloppy-focus, η εστίαση αλλάζει μόνο αν ο δείκτης βρεθεί πάνω
+ από ένα νέο παράθυρο, και όχι όταν φεύγει από το τρέχον
+ παράθυρο.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>click-to-focus</term>
+
+ <listitem>
+ <para>Το ενεργό παράθυρο επιλέγεται με κλικ του ποντικιού. Το
+ παράθυρο τότε <quote>ανασηκώνεται</quote>, και εμφανίζεται
+ μπροστά από όλα τα άλλα παράθυρα. Ότι πληκτρολογηθεί θα
+ οδηγηθεί σε αυτό το παράθυρο, ακόμα και αν ο δείκτης
+ μετακινηθεί σε άλλο παράθυρο.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Πολλοί διαχειριστές παραθύρων υποστηρίζουν ακόμα πιο εξωτικές
+ πολιτικές εστίασης, καθώς και παραλλαγές των παραπάνω.
+ Συμβουλευθείτε την τεκμηρίωση του εκάστοτε διαχειριστή παραθύρων για
+ περισσότερες λεπτομέρειες.</para>
+ </note>
+ </sect2>
+
+ <sect2>
+ <title>Γραφικά Στοιχεία Διεπαφής (Widgets)</title>
+
+ <para>Η προσέγγιση του X να διαθέτει εργαλεία και όχι να υπαγορεύει τον
+ τρόπο χρήσης τους, διευρύνεται και στα γραφικά στοιχεία διεπαφής
+ (widgets) που φαίνονται στην οθόνη σε κάθε εφαρμογή.</para>
+
+ <para>Τα <quote>widgets</quote> είναι ένας όρος για
+ όλα τα αντικείμενα στο περιβάλλον του χρήστη που μπορεί κάποιος να
+ κάνει κλικ ή να τα χειριστεί με κάποιον τρόπο: πλήκτρα, πλαίσια
+ επιλογής, πλήκτρα εναλλαγής, εικονίδια, λίστες, και άλλα. Τα
+ &microsoft.windows; τα ονομάζουν
+ <quote>controls (χειριστήρια)</quote>.</para>
+
+ <para>Τα &microsoft.windows; και το &macos; της Apple έχουν και τα δύο
+ πολύ αυστηρή πολιτική γραφικών στοιχείων διεπαφής. Οι προγραμματιστές
+ εφαρμογών πρέπει υποτίθεται να εξασφαλίσουν ότι οι εφαρμογές τους
+ θα έχουν κοινή αίσθηση και εμφάνιση (look and feel). Στο X, δεν
+ θεωρήθηκε απαραίτητο να γίνει επιβολή ενός συγκεκριμένου στυλ
+ γραφικών, ή να τεθούν κάποια υποχρεωτικά γραφικά στοιχεία
+ διεπαφής.</para>
+
+ <para>Σαν αποτέλεσμα, μην περιμένετε τις εφαρμογές για X να έχουν κοινή
+ εμφάνιση. Υπάρχουν διάφορες δημοφιλείς συλλογές γραφικών στοιχείων
+ διεπαφής και παραλλαγές τους, συμπεριλαμβανομένης και της αυθεντικής
+ Athena συλλογής γραφικών στοιχείων διεπαφής του MIT,
+ <application>&motif;</application> (παραλλαγή της οποίας είναι και η
+ συλλογή γραφικών στοιχείων διεπαφής των &microsoft.windows;, με λοξές
+ γωνίες και τρεις διαβαθμίσεις του γκρι), το
+ <application>OpenLook</application>, και άλλα.</para>
+
+ <para>Οι περισσότερες νέες X εφαρμογές σήμερα χρησιμοποιούν μια συλλογή
+ γραφικών στοιχείων διεπαφής με μοντέρνα εμφάνιση, είτε το Qt, που
+ χρησιμοποιείται από το <application>KDE</application>, είτε το GTK+,
+ που χρησιμοποιείται από το <application>GNOME</application>.
+ Από αυτή την άποψη, υπάρχει κάποια σύγκλιση στην εμφάνιση του &unix;
+ desktop, το οποίο οπωσδήποτε κάνει τα πράγματα ευκολότερα για τον
+ νέο χρήστη.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="x-install">
+ <title>Εγκατάσταση του X11</title>
+
+ <para>Το <application>&xorg;</application> είναι η προεπιλεγμένη υλοποίηση
+ X11 για το &os;. Το <application>&xorg;</application> είναι
+ ο διακομιστής Χ της υλοποίησης X Window System του X.Org Foundation,
+ και είναι ανοικτού κώδικα. Ο <application>&xorg;</application> είναι
+ βασισμένος στον κώδικα του
+ <application>&xfree86&nbsp;4.4RC2</application> και του X11R6.6.
+ Η έκδοση του <application>&xorg;</application> που διατίθεται
+ από την Συλλογή των Ports του &os; είναι η &xorg.version;.</para>
+
+ <para>Για να μεταγλωττίσετε και να εγκαταστήσετε το
+ <application>&xorg;</application> από την Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11/xorg</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <note>
+ <para>Για να μεταγλωττίσετε ολόκληρο το
+ <application>&xorg;</application> σιγουρευθείτε ότι έχετε το λιγότερο
+ 4&nbsp;GB ελεύθερο χώρο διαθέσιμο.</para>
+ </note>
+
+ <para>Εναλλακτικά, το X11 μπορεί να εγκατασταθεί άμεσα από πακέτα.
+ Υπάρχουν διαθέσιμα έτοιμα πακέτα του Χ11 για χρήση με το εργαλείο
+ &man.pkg.add.1;. Αν χρησιμοποιήσετε τη δυνατότητα του &man.pkg.add.1;
+ για λήψη μέσω δικτύου, δεν θα πρέπει στην γραμμή εντολών να δώσετε τον
+ αριθμό έκδοσης (version number) του πακέτου. Το &man.pkg.add.1; θα
+ <quote>κατεβάσει</quote> αυτόματα την τελευταία έκδοση της
+ εφαρμογής.</para>
+
+ <para>Έτσι, για να γίνει η λήψη και η εγκατάσταση του
+ <application>&xorg;</application>, απλώς εκτελέστε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r xorg</userinput></screen>
+
+ <note>
+ <para>Τα παραπάνω παραδείγματα θα εγκαταστήσουν ολόκληρη την διανομή
+ X11 που περιλαμβάνει διακομιστές, πελάτες, γραμματοσειρές κλπ.
+ Διατίθενται επίσης ξεχωριστά, τμηματικά πακέτα και ports για το
+ X11.</para>
+
+ <para>Για να εγκαταστήσετε την ελάχιστη δυνατή διανομή X11, μπορείτε
+ εναλλακτικά να χρησιμοποιήσετε το port <filename
+ role="package">x11/xorg-minimal</filename>.</para>
+ </note>
+
+ <para>Το υπόλοιπο του κεφαλαίου θα σας εξηγήσει πως ρυθμίζεται το
+ X11, και πως να στήσετε ένα παραγωγικό desktop περιβάλλον.</para>
+ </sect1>
+
+ <sect1 id="x-config">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Christopher</firstname>
+ <surname>Shumway</surname>
+ <contrib>Συνεισφορά του </contrib>
+ <!-- July 2001 -->
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Ρύθμιση του X11</title>
+
+ <indexterm><primary>&xorg;</primary></indexterm>
+ <indexterm><primary>X11</primary></indexterm>
+
+ <sect2>
+ <title>Πριν ξεκινήσετε</title>
+
+ <para>Πριν την ρύθμιση του X11 χρειάζονται οι ακόλουθες πληροφορίες
+ για το σύστημα:</para>
+
+ <itemizedlist>
+ <listitem><para>Προδιαγραφές της οθόνης</para></listitem>
+ <listitem><para>Chipset της κάρτας γραφικών</para></listitem>
+ <listitem><para>Μνήμη της κάρτας γραφικών</para></listitem>
+ </itemizedlist>
+
+ <indexterm><primary>οριζόντιος ρυθμός ανανέωσης</primary></indexterm>
+ <indexterm><primary>κατακόρυφος ρυθμός ανανέωσης</primary></indexterm>
+
+ <para>Οι προδιαγραφές της οθόνης χρησιμοποιούνται από το
+ X11 για να ορισθεί η ανάλυση και ο ρυθμός ανανέωσης στο οποίο θα
+ λειτουργήσει. Οι προδιαγραφές αυτές βρίσκονται συνήθως
+ στην τεκμηρίωση που συνοδεύει την οθόνη ή στην ιστοσελίδα του
+ κατασκευαστή. Χρειάζονται δύο σειρές αριθμών, ο οριζόντιος ρυθμός
+ ανανέωσης και ο κατακόρυφος ρυθμός ανανέωσης.</para>
+
+ <para>Το chipset (ολοκληρωμένο κύκλωμα) της κάρτας γραφικών ορίζει
+ ποίος οδηγός συσκευής θα χρησιμοποιηθεί από το X11 για την
+ επικοινωνία με την κάρτα γραφικών. Για τα περισσότερα chipset, αυτό
+ μπορεί να ανιχνευθεί αυτόματα, αλλά είναι χρήσιμο να το γνωρίζετε σε
+ περίπτωση που δεν πετύχει η αυτόματη ανίχνευση.</para>
+
+ <para>Η μνήμη της κάρτας γραφικών καθορίζει την ανάλυση και το βάθος
+ χρώματος στο οποίο μπορεί να δουλέψει το σύστημα. Αυτό είναι
+ σημαντικό ώστε να γνωρίζει ο χρήστης τα όρια του συστήματος.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του X11</title>
+
+ <para>Το <application>&xorg;</application>
+ χρησιμοποιεί το <acronym>HAL</acronym> για την
+ αυτόματη ανίχνευση του πληκτρολογίου και του ποντικιού. Τα ports
+ <filename role="package">sysutils/hal</filename> και
+ <filename role="package">devel/dbus</filename> εγκαθίστανται ως
+ εξαρτήσεις του <filename role="package">x11/xorg</filename>, αλλά
+ θα πρέπει να ενεργοποιηθούν με τις ακόλουθες εγγραφές στο
+ <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>hald_enable="YES"
+dbus_enable="YES"</programlisting>
+
+ <para>Θα πρέπει να ξεκινήσετε τις υπηρεσίες αυτές (είτε χειροκίνητα,
+ είτε κάνοντας επανεκκίνηση) πριν συνεχίσετε με τη ρύθμιση ή την
+ χρήση του <application>&xorg;</application>.</para>
+
+ <para>Το <application>&xorg;</application>
+ μπορεί συχνά να λειτουργήσει χωρίς καμιά επιπλέον ρύθμιση, γράφοντας
+ απλώς στη γραμμή εντολών:</para>
+
+ <screen>&prompt.user; <userinput>startx</userinput></screen>
+
+ <para>Σε κάποιες περιπτώσεις, η αυτόματη ρύθμιση μπορεί να μη
+ λειτουργήσει σωστά, ή να μη ρυθμίσει τις συσκευές ακριβώς όπως
+ επιθυμείτε. Στις περιπτώσεις αυτές, θα χρειαστεί να κάνετε
+ χειροκίνητες ρυθμίσεις.</para>
+
+ <note>
+ <para>Κάποια γραφικά περιβάλλοντα, όπως το
+ <application>GNOME</application> το
+ <application>KDE</application> ή το <application>XFCE</application>,
+ διαθέτουν εργαλεία που επιτρέπουν στο χρήστη να ρυθμίσει με εύκολο
+ τρόπο διάφορες παραμέτρους της οθόνης, όπως η ανάλυση. Αν η
+ προεπιλεγμένη ρύθμιση δεν είναι αποδεκτή, και σκοπεύετε να
+ εγκαταστήσετε κάποιο από αυτά τα περιβάλλοντα, μπορείτε να
+ συνεχίσετε με την εγκατάσταση του, και να ολοκληρώσετε τις ρυθμίσεις
+ σας χρησιμοποιώντας το κατάλληλο γραφικό εργαλείο.</para>
+ </note>
+
+ <para>Το πρώτο βήμα είναι η δημιουργία ενός αρχικού αρχείου ρυθμίσεων.
+ Ως root, απλώς εκτελέστε:</para>
+
+ <screen>&prompt.root; <userinput>Xorg -configure</userinput></screen>
+
+ <para>Αυτό θα δημιουργήσει ένα πρότυπο αρχείο ρυθμίσεων του X11 στον
+ κατάλογο <filename>/root</filename> με το όνομα
+ <filename>xorg.conf.new</filename> (είτε χρησιμοποιήσετε το
+ &man.su.1; είτε συνδεθείτε απευθείας, η μεταβλητή καταλόγου
+ <envar>$HOME</envar> αλλάζει δείχνοντας τον κατάλογο του root). Το
+ X11 θα προσπαθήσει να ανιχνεύσει το υποσύστημα γραφικών του συστήματος
+ και να δημιουργήσει ένα αρχείο ρυθμίσεων που θα φορτώνει τους σωστούς
+ οδηγούς συσκευών για το υλικό που ανιχνεύθηκε στο σύστημα σας.</para>
+
+ <para>Το επόμενο βήμα είναι ο έλεγχος των υπάρχοντων ρυθμίσεων
+ για να επιβεβαιώσετε ότι το <application>&xorg;</application>
+ λειτουργεί με το υποσύστημα γραφικών του συστήματος σας.
+ Πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput>Xorg -config xorg.conf.new -retro</userinput></screen>
+
+ <para>Εάν εμφανιστεί ένα μαύρο και γκρι πλέγμα και ένας δείκτης
+ ποντικιού με μορφή X, η ρύθμιση ήταν επιτυχής. Για να τερματίσετε
+ τη δοκιμή, μεταβείτε στην εικονική κονσόλα από την οποία την
+ ξεκινήσατε, πιέζοντας
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>F<replaceable>n</replaceable></keycap>
+ </keycombo> (<keycap>F1</keycap> για την πρώτη εικονική κονσόλα) και
+ πιέστε
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>C</keycap>
+ </keycombo>.</para>
+
+ <note>
+ <para>Μπορείτε επίσης να χρησιμοποιήσετε τον συνδυασμό πλήκτρων
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>Backspace</keycap>
+ </keycombo> για τον τερματισμό του προγράμματος. Για να τον
+ ενεργοποιήσετε, δώστε την παρακάτω εντολή σε κάποιο τερματικό
+ του X:</para>
+
+ <screen>&prompt.user; <userinput>setxkbmap -option terminate:ctrl_alt_bksp</userinput></screen>
+
+ <para>Εναλλακτικά, δημιουργήστε ένα αρχείο ρυθμίσεων πληκτρολογίου
+ για το <application>hald</application> με την ονομασία
+ <filename>x11-input.fdi</filename> και αποθηκεύστε το στον
+ κατάλογο <filename
+ class="directory">/usr/local/etc/hal/fdi/policy</filename>.
+ Το αρχείο αυτό θα πρέπει να περιέχει τις παρακάτω γραμμές:</para>
+
+ <programlisting>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;deviceinfo version="0.2"&gt;
+ &lt;device&gt;
+ &lt;match key="info.capabilities" contains="input.keyboard"&gt;
+ &lt;merge key="input.x11_options.XkbOptions" type="string"&gt;terminate:ctrl_alt_bksp&lt;/merge&gt;
+ &lt;/match&gt;
+ &lt;/device&gt;
+&lt;/deviceinfo&gt;</programlisting>
+
+ <para>Θα χρειαστεί να επανεκκινήσετε το μηχάνημα σας για να
+ εξαναγκάσετε το <application>hald</application> να διαβάσει αυτό
+ το αρχείο.</para>
+
+ <para>Θα πρέπει επίσης να προσθέσετε την παρακάτω γραμμή στο αρχείο
+ <filename>xorg.conf.new</filename>, στην ενότητα
+ <literal>ServerLayout</literal> ή
+ <literal>ServerFlags</literal>:</para>
+
+ <programlisting>Option "DontZap" "off"</programlisting>
+ </note>
+
+ <para>Αν το ποντίκι δεν λειτουργεί, θα χρειαστεί να το ρυθμίσετε
+ πριν συνεχίσετε. Δείτε το <xref linkend="mouse"> στο κεφάλαιο
+ εγκατάστασης του &os;. Επιπρόσθετα, στις πρόσφατες εκδόσεις του
+ <application>&xorg;</application>,
+ οι ενότητες <literal>InputDevice</literal> στο
+ <filename>xorg.conf</filename> αγνοούνται καθώς γίνεται χρήση των
+ συσκευών που ανιχνεύθηκαν αυτόματα. Για να επαναφέρετε την παλιά
+ συμπεριφορά, προσθέστε την παρακάτω γραμμή στην ενότητα
+ <literal>ServerLayout</literal> ή <literal>ServerFlags</literal>
+ του αρχείου ρυθμίσεων:</para>
+
+ <programlisting>Option "AutoAddDevices" "false"</programlisting>
+
+ <para>Θα μπορείτε έπειτα να ρυθμίσετε τις συσκευές εισόδου όπως
+ στις προηγούμενες εκδόσεις του <application>&xorg;</application>,
+ χρησιμοποιώντας και όποιες άλλες επιλογές χρειάζεστε
+ (π.χ. εναλλαγή πληκτρολογίου).</para>
+
+ <note>
+ <para>Όπως εξηγήσαμε και προηγουμένως,
+ ο δαίμονας <application>hald</application> αναλαμβάνει να
+ ανιχνεύσει αυτόματα το πληκτρολόγιο σας. Υπάρχει περίπτωση να
+ μην γίνει σωστή ανίχνευση του μοντέλου ή της διάταξης, ωστόσο
+ κάποια γραφικά περιβάλλοντα όπως το
+ <application>GNOME</application> το <application>KDE</application>
+ και το <application>Xfce</application> παρέχουν τα δικά τους
+ εργαλεία για τη ρύθμιση του. Μπορείτε όμως να ρυθμίσετε τις
+ ιδιότητες του πληκτρολογίου και απευθείας, είτε μέσω του
+ βοηθητικού προγράμματος &man.setxkbmap.1; είτε με την προσθήκη
+ ενός κανόνα στο <application>hald</application>.</para>
+
+ <para>Για παράδειγμα, αν κάποιος θέλει να χρησιμοποιήσει ένα
+ πληκτρολόγιο 102 πλήκτρων με γαλλική διάταξη, θα πρέπει να
+ δημιουργήσει ένα αρχείο ρυθμίσεων για το
+ <application>hald</application> με το όνομα
+ <filename>x11-input.fdi</filename> και να το αποθηκεύσει στον
+ κατάλογο <filename
+ class="directory">/usr/local/etc/hal/fdi/policy</filename>.
+ Το αρχείο αυτό θα περιέχει τις παρακάτω γραμμές:</para>
+
+ <programlisting>&lt;?xml version="1.0" encoding="ISO-8859-1"?&gt;
+&lt;deviceinfo version="0.2"&gt;
+ &lt;device&gt;
+ &lt;match key="info.capabilities" contains="input.keyboard"&gt;
+ &lt;merge key="input.x11_options.XkbModel" type="string"&gt;pc102&lt;/merge&gt;
+ &lt;merge key="input.x11_options.XkbLayout" type="string"&gt;fr&lt;/merge&gt;
+ &lt;/match&gt;
+ &lt;/device&gt;
+&lt;/deviceinfo&gt;</programlisting>
+
+ <para>Αν το αρχείο αυτό υπάρχει ήδη, απλώς αντιγράψτε τις παραπάνω
+ γραμμές μέσα στο υπάρχον περιεχόμενο.</para>
+
+ <para>Θα πρέπει να επανεκκινήσετε το μηχάνημα σας για να
+ εξαναγκάσετε το <application>hald</application> να διαβάσει το
+ αρχείο.</para>
+
+ <para>Μπορείτε επίσης να κάνετε την ίδια ρύθμιση μέσα από ένα
+ τερματικό στα Χ ή ακόμα και από ένα script, εκτελώντας την
+ παρακάτω εντολή:</para>
+
+ <screen>&prompt.user; <userinput>setxkbmap -model pc102 -layout fr</userinput></screen>
+
+ <para>Μπορείτε να βρείτε τις διαθέσιμες επιλογές πληκτρολογίων και
+ διατάξεων στο αρχείο
+ <filename>/usr/local/share/X11/xkb/rules/base.lst</filename>.</para>
+ </note>
+
+ <indexterm><primary>Ρύθμιση του X11</primary></indexterm>
+
+ <para>Έπειτα, προσαρμόστε το αρχείο ρυθμίσεων
+ <filename>xorg.conf.new</filename> στις προτιμήσεις σας. Ανοίξτε το
+ με έναν συντάκτη κειμένου όπως ο &man.emacs.1; ή ο &man.ee.1;.
+ Πρώτα, προσθέστε τις συχνότητες της οθόνης. Συνήθως αναφέρονται ως
+ οριζόντιοι και κατακόρυφοι ρυθμοί συγχρονισμού. Αυτές οι
+ τιμές τοποθετούνται στο αρχείο <filename>xorg.conf.new</filename>
+ στο Section <literal>"Monitor"</literal>:</para>
+
+ <programlisting>Section "Monitor"
+ Identifier "Monitor0"
+ VendorName "Monitor Vendor"
+ ModelName "Monitor Model"
+ HorizSync 30-107
+ VertRefresh 48-120
+EndSection</programlisting>
+
+ <para>Οι μεταβλητές <literal>HorizSync</literal> και
+ <literal>VertRefresh</literal> μπορεί να μην υπάρχουν στο αρχείο
+ ρυθμίσεων. Αν δεν υπάρχουν, πρέπει να προστεθούν, με τον σωστό
+ οριζόντιο ρυθμό συγχρονισμού μετά την λέξη
+ <literal>HorizSync</literal> και τον κατακόρυφο ρυθμό συγχρονισμού
+ μετά την λέξη <literal>VertRefresh</literal>.
+ Στο παραπάνω παράδειγμα, προσθέσαμε τους αντίστοιχους ρυθμούς
+ ανανέωσης της οθόνης μας.</para>
+
+ <para>Το X επιτρέπει τη χρήση των δυνατοτήτων DPMS (Energy Star) σε
+ οθόνες που υποστηρίζουν την αντίστοιχη λειτουργία. Το πρόγραμμα
+ &man.xset.1; ελέγχει τους χρόνους και μπορεί να επιβάλλει τις
+ καταστάσεις standby, suspend, ή off. Αν θέλετε να ενεργοποιήσετε
+ τις δυνατότητες DPMS της οθόνης σας, πρέπει να προσθέσετε την
+ ακόλουθη γραμμή στο Section monitor:</para>
+
+ <programlisting>
+ Option "DPMS"</programlisting>
+
+ <indexterm>
+ <primary><filename>xorg.conf</filename></primary>
+ </indexterm>
+
+ <para>Όσο το αρχείο ρυθμίσεων <filename>xorg.conf.new</filename>
+ είναι ακόμα ανοικτό σε έναν συντάκτη κειμένου, επιλέξτε
+ την ανάλυση και το βάθος χρωμάτων που επιθυμείτε. Αυτό καθορίζεται
+ στο Section <literal>"Screen"</literal>:</para>
+
+ <programlisting>Section "Screen"
+ Identifier "Screen0"
+ Device "Card0"
+ Monitor "Monitor0"
+ DefaultDepth 24
+ SubSection "Display"
+ Viewport 0 0
+ Depth 24
+ Modes "1024x768"
+ EndSubSection
+EndSection</programlisting>
+
+ <para>Η μεταβλητή <literal>DefaultDepth</literal> ορίζει το
+ προεπιλεγμένο βάθος χρώματος που θα χρησιμοποιηθεί. Μπορείτε να την
+ παρακάμψετε με τον διακόπτη <option>-depth</option> στη γραμμή εντολών
+ του &man.Xorg.1;. Η επιλογή <literal>Modes</literal> ορίζει
+ την ανάλυση με την οποία θα λειτουργεί η οθόνη σε ένα συγκεκριμένο
+ βάθος χρωμάτων. Προσέξτε ότι υποστηρίζονται μόνο κανονικές
+ καταστάσεις VESA, όπως ορίζονται από το υποσύστημα γραφικών του
+ συστήματος. Στο παραπάνω παράδειγμα, το καθορισμένο βάθος χρωμάτων
+ είναι εικοσιτέσσερα bits ανά pixel. Σε αυτό το βάθος χρωμάτων, η
+ αποδεκτή ανάλυση είναι 1024Χ768 pixels.</para>
+
+ <para>Τέλος, αποθηκεύστε το αρχείο ρυθμίσεων και ελέγξτε το με την
+ μέθοδο ελέγχου που εξηγήσαμε παραπάνω.</para>
+
+ <note>
+ <para>Ένα από τα εργαλεία που μπορεί να σας βοηθήσουν κατά την
+ διαδικασία επίλυσης προβλημάτων, είναι τα αρχεία X11 log, που
+ περιέχουν πληροφορίες για κάθε συσκευή που επικοινωνεί με τον
+ διακομιστή X11. Τα αρχεία <application>&xorg;</application> log
+ ονομάζονται με την μορφή
+ <filename>/var/log/Xorg.0.log</filename>. Το ακριβές όνομα
+ ενός log μπορεί να είναι <filename>Xorg.0.log</filename> έως
+ <filename>Xorg.8.log</filename> και πάει λέγοντας.</para>
+ </note>
+
+ <para>Αν όλα είναι καλά, το αρχείο ρυθμίσεων πρέπει να τοποθετηθεί σε
+ μια κοινή τοποθεσία ώστε να εντοπίζεται από το &man.Xorg.1;.
+ Αυτή συνήθως είναι η <filename>/etc/X11/xorg.conf</filename> ή
+ <filename>/usr/local/etc/X11/xorg.conf</filename>.</para>
+
+ <screen>&prompt.root; <userinput>cp xorg.conf.new /etc/X11/xorg.conf</userinput></screen>
+
+ <para>Η διαδικασία ρύθμισης του X11 έχει τώρα ολοκληρωθεί.
+ Το <application>&xorg;</application> μπορείτε να το ξεκινήσετε με το
+ βοηθητικό πρόγραμμα &man.startx.1;. Ο διακομιστής X11 μπορεί επίσης
+ να εκκινήσει με τη βοήθεια του &man.xdm.1;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Εξειδικευμένα Θέματα Ρυθμίσεων</title>
+
+ <sect3>
+ <title>Ρυθμίσεις για τα &intel; i810 Graphics Chipsets</title>
+
+ <indexterm><primary>Intel i810 graphic chipset</primary></indexterm>
+
+ <para>Για να χρησιμοποιήσετε κάρτα βασισμένη στα &intel; i810
+ integrated chipsets, απαιτείται το <devicename>agpgart</devicename>,
+ η διεπαφή προγραμματισμού των X11 για το AGP. Δείτε την σελίδα
+ manual του προγράμματος οδήγησης &man.agp.4; για περισσότερες
+ πληροφορίες.</para>
+
+ <para>Mε αυτό τον τρόπο, η ρύθμιση του υλικού σας θα μπορεί να γίνει
+ όπως και σε κάθε άλλη κάρτα γραφικών. Προσοχή, σε συστήματα χωρίς
+ ενσωματωμένο τον οδηγό &man.agp.4;, ο οδηγός δεν θα φορτωθεί με την
+ εντολή &man.kldload.8;. Ο οδηγός αυτός πρέπει να βρίσκεται
+ στον πυρήνα κατά την εκκίνηση, είτε στατικά μεταγλωττισμένος, είτε
+ με χρήση του <filename>/boot/loader.conf</filename>.</para>
+ </sect3>
+
+ <sect3>
+ <title>Προσθέτοντας μια Widescreen Επίπεδη Οθόνη</title>
+
+ <indexterm><primary>Ρύθμιση widescreen επίπεδης οθόνης</primary></indexterm>
+
+ <para>Αυτό το τμήμα προϋποθέτει μερικές γνώσεις εξειδικευμένων
+ ρυθμίσεων. Αν οι προσπάθειες με τα συνήθη εργαλεία ρυθμίσεων δεν
+ καταλήξουν σε μια ρύθμιση που να λειτουργεί, υπάρχουν αρκετές
+ πληροφορίες στα αρχεία log που μπορούν να σας βοηθήσουν.
+ Ωστόσο, είναι απαραίτητη η χρήση ενός συντάκτη κειμένου.</para>
+
+ <para>Οι τρέχουσες αναλύσεις widescreen (WSXGA, WSXGA+, WUXGA, WXGA,
+ WXGA+, κ.α.) υποστηρίζουν formats και aspect ratios (αναλογίες)
+ 16:10 και 16:9 που μπορεί να δημιουργήσουν προβλήματα. Παραδείγματα
+ μερικών κοινών αναλύσεων για αναλογία 16:10 είναι τα:</para>
+
+ <itemizedlist>
+ <listitem><para>2560x1600</para></listitem>
+ <listitem><para>1920x1200</para></listitem>
+ <listitem><para>1680x1050</para></listitem>
+ <listitem><para>1440x900</para></listitem>
+ <listitem><para>1280x800</para></listitem>
+ </itemizedlist>
+
+ <para>Κάποια στιγμή, η ρύθμιση θα γίνεται πολύ απλά προσθέτοντας την
+ ανάλυση ως ένα πιθανό <literal>Mode</literal> στο
+ <literal>Section "Screen"</literal> όπως εδώ:</para>
+
+ <programlisting>Section "Screen"
+Identifier "Screen0"
+Device "Card0"
+Monitor "Monitor0"
+DefaultDepth 24
+SubSection "Display"
+ Viewport 0 0
+ Depth 24
+ Modes "1680x1050"
+EndSubSection
+EndSection</programlisting>
+
+ <para>Το <application>&xorg;</application> είναι αρκετά έξυπνο ώστε
+ να ανακτήσει τις πληροφορίες της ανάλυσης της widescreen οθόνης
+ μέσω των πληροφοριών I2C/DDC, γνωρίζοντας έτσι τι μπορεί να
+ χειριστεί η οθόνη όσο αφορά τις συχνότητες και τις αναλύσεις.</para>
+
+ <para>Αν αυτές οι <literal>ModeLines</literal> δεν υπάρχουν στους
+ οδηγούς, μπορεί να χρειαστεί να τις δώσετε εσείς στο
+ <application>&xorg;</application>. Χρησιμοποιώντας το
+ <filename>/var/log/Xorg.0.log</filename> μπορείτε να
+ ανακτήσετε αρκετές πληροφορίες ώστε να δημιουργήσετε μόνοι σας ένα
+ <literal>ModeLine</literal> που να λειτουργεί.
+ Απλώς αναζητήστε πληροφορίες που θα μοιάζουν με αυτό:</para>
+
+ <programlisting>(II) MGA(0): Supported additional Video Mode:
+(II) MGA(0): clock: 146.2 MHz Image Size: 433 x 271 mm
+(II) MGA(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0
+(II) MGA(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0
+(II) MGA(0): Ranges: V min: 48 V max: 85 Hz, H min: 30 H max: 94 kHz, PixClock max 170 MHz</programlisting>
+
+ <para>Αυτές ονομάζονται πληροφορίες EDID. Η δημιουργία ενός
+ <literal>ModeLine</literal> από αυτές, γίνεται βάζοντας απλώς τους
+ αριθμούς στη σωστή σειρά:</para>
+
+ <programlisting>ModeLine &lt;name&gt; &lt;clock&gt; &lt;4 horiz. timings&gt; &lt;4 vert. timings&gt;</programlisting>
+
+ <para>Τελικά, το <literal>ModeLine</literal> στο
+ <literal>Section "Monitor"</literal> στο παράδειγμα μας θα μοιάζει
+ με αυτό:</para>
+
+ <programlisting>Section "Monitor"
+Identifier "Monitor1"
+VendorName "Bigname"
+ModelName "BestModel"
+ModeLine "1680x1050" 146.2 1680 1784 1960 2240 1050 1053 1059 1089
+Option "DPMS"
+EndSection</programlisting>
+
+ <para>Τώρα που έχετε τελειώσει με αυτά τα απλά βήματα, το X θα πρέπει
+ να λειτουργήσει στη νέα widescreen οθόνη σας.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+
+ <sect1 id="x-fonts">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Χρήση Γραμματοσειρών στο X11</title>
+
+ <sect2 id="type1">
+ <title>Γραμματοσειρές τύπου Type1</title>
+
+ <para>Οι προκαθορισμένες γραμματοσειρές που συνοδεύουν το
+ X11 δεν είναι ιδανικές για εφαρμογές επιτραπέζιας τυπογραφίας.
+ Οι μεγάλες γραμματοσειρές παρουσίασης φαίνονται οδοντωτές και
+ ερασιτεχνικές, και οι μικρές γραμματοσειρές στο
+ <application>&netscape;</application> είναι σχεδόν ακατάληπτες.
+ Ευτυχώς όμως, υπάρχουν διαθέσιμες αρκετές, υψηλής ποιότητας
+ γραμματοσειρές Type1 (&postscript;) που μπορούν να χρησιμοποιηθούν
+ άμεσα από το X11. Για παράδειγμα, η συλλογή γραμματοσειρών URW
+ (<filename role="package">x11-fonts/urwfonts</filename>) περιέχει
+ εκδόσεις υψηλής ποιότητας των συνηθισμένων type1 γραμματοσειρών
+ (<trademark class="registered">Times Roman</trademark>,
+ <trademark class="registered">Helvetica</trademark>,
+ <trademark class="registered">Palatino</trademark> και άλλες). Η
+ συλλογή Freefonts
+ (<filename role="package">x11-fonts/freefonts</filename>) περιέχει
+ πολλές περισσότερες γραμματοσειρές, αλλά οι περισσότερες από αυτές
+ είναι για λογισμικό γραφικών όπως το <application>Gimp</application>,
+ και δεν είναι κατάλληλες για γραμματοσειρές οθόνης. Ακόμη, το X11
+ μπορεί με ελάχιστο κόπο να ρυθμιστεί ώστε να χρησιμοποιεί &truetype;
+ γραμματοσειρές. Για περισσότερες λεπτομέρειες, δείτε την σελίδα
+ manual &man.X.7; ή το <link linkend="truetype">τμήμα σχετικά με τις
+ γραμματοσειρές &truetype;</link>.</para>
+
+ <para>Για να εγκαταστήσετε τις παραπάνω συλλογές γραμματοσειρών Type1
+ από την Συλλογή των Ports, εκτελέστε τις παρακάτω εντολές:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11-fonts/urwfonts</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Με παρόμοιο τρόπο μπορείτε να εγκαταστήσετε και την freefont ή
+ άλλες συλλογές. Για να ανιχνεύσει ο X server αυτές τις
+ γραμματοσειρές, προσθέστε την κατάλληλη γραμμή στο αρχείο ρυθμίσεων
+ του (<filename>/etc/X11/xorg.conf</filename>):</para>
+
+ <programlisting>FontPath "/usr/local/lib/X11/fonts/URW/"</programlisting>
+
+ <para>Εναλλακτικά, εκτελέστε στην γραμμή εντολών μιας συνόδου X:</para>
+
+ <screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/URW</userinput>
+&prompt.user; <userinput>xset fp rehash</userinput></screen>
+
+ <para>Αυτό θα λειτουργήσει, αλλά όταν τερματίσει η σύνοδος X, οι
+ ρυθμίσεις θα χαθούν, εκτός αν προστεθούν στο αρχείο εκκίνησης
+ (το <filename>~/.xinitrc</filename> για μία συνηθισμένη
+ σύνοδο μέσω <command>startx</command>, η το
+ <filename>~/.xsession</filename> αν συνδέεστε μέσω ενός
+ γραφικού διαχειριστή σύνδεσης όπως ο <application>XDM</application>).
+ Ένας ακόμη τρόπος είναι να χρησιμοποιήσετε το αρχείο
+ <filename>/usr/local/etc/fonts/local.conf</filename>: δείτε το τμήμα
+ <link linkend="antialias">anti-aliasing (εξομάλυνσης)</link>.</para>
+ </sect2>
+
+ <sect2 id="truetype">
+ <title>Γραμματοσειρές &truetype;</title>
+
+ <indexterm><primary>Γραμματοσειρές TrueType</primary></indexterm>
+ <indexterm>
+ <primary>γραμματοσειρές</primary>
+ <secondary>TrueType</secondary>
+ </indexterm>
+
+ <para>Το <application>&xorg;</application> έχει ενσωματωμένη υποστήριξη
+ απεικόνισης γραμματοσειρών &truetype;. Υπάρχουν δύο διαφορετικά
+ modules (αρθρώματα) που μπορούν να ενεργοποιήσουν αυτήν την
+ λειτουργία. Σε αυτό το παράδειγμα χρησιμοποιείται το freetype module
+ επειδή είναι πιο συνεργάσιμο με τα άλλα back-ends απεικόνισης
+ γραμματοσειρών. Για να ενεργοποιήσετε το freetype module, απλώς
+ προσθέστε την παρακάτω γραμμή στο τμήμα <literal>"Module"</literal>
+ του αρχείου <filename>/etc/X11/xorg.conf</filename>.</para>
+
+ <programlisting>Load "freetype"</programlisting>
+
+ <para>Τώρα, δημιουργήστε έναν κατάλογο για τις γραμματοσειρές &truetype;
+ (για παράδειγμα,
+ <filename>/usr/local/lib/X11/fonts/TrueType</filename>)
+ και αντιγράψτε όλες τις γραμματοσειρές &truetype; σε αυτόν. Προσέξτε
+ ότι οι γραμματοσειρές &truetype; δεν μπορούν να είναι από ένα σύστημα
+ &macintosh; πρέπει να είναι σε μορφή &unix;/&ms-dos;/&windows; για να
+ λειτουργούν στο X11. Μόλις αντιγραφούν τα αρχεία στον κατάλογο,
+ χρησιμοποιήστε το <application>ttmkfdir</application> για να
+ δημιουργήσετε το αρχείο <filename>fonts.dir</filename>, ώστε ο X font
+ renderer να γνωρίζει την ύπαρξη των νέων αυτών αρχείων.
+ Το <command>ttmkfdir</command> διατίθεται από την Συλλογή των Ports
+ του &os; ως <filename role="package">x11-fonts/ttmkfdir</filename>.</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/local/lib/X11/fonts/TrueType</userinput>
+&prompt.root; <userinput>ttmkfdir -o fonts.dir</userinput></screen>
+
+ <para>Τώρα, πρoσθέστε τον κατάλογο &truetype; στη διαδρομή των fonts.
+ Αυτό γίνεται με τον ίδιο τρόπο που περιγράψαμε παραπάνω στις <link
+ linkend="type1">Type1</link> γραμματοσειρές, χρησιμοποιώντας το</para>
+
+ <screen>&prompt.user; <userinput>xset fp+ /usr/local/lib/X11/fonts/TrueType</userinput>
+&prompt.user; <userinput>xset fp rehash</userinput></screen>
+
+ <para>ή απλά προσθέστε μια γραμμή <literal>FontPath</literal> στο αρχείο
+ <filename>xorg.conf</filename>.</para>
+
+ <para>Αυτό ήταν. Τώρα ο <application>&netscape;</application>,
+ το <application>Gimp</application>,
+ το <application>&staroffice;</application>, και όλες οι άλλες
+ εφαρμογές X πρέπει να αναγνωρίζουν τις εγκαταστημένες &truetype;
+ γραμματοσειρές. Πολύ μικρές γραμματοσειρές (όπως αυτές που φαίνονται
+ στο κείμενο μιας ιστοσελίδας σε υψηλή ανάλυση) και πολύ μεγάλες
+ γραμματοσειρές (στο <application>&staroffice;</application>) θα
+ φαίνονται τώρα πολύ καλύτερα.</para>
+ </sect2>
+
+ <sect2 id="antialias">
+ <sect2info>
+ <authorgroup>
+ <author>
+ <firstname>Joe Marcus</firstname>
+ <surname>Clarke</surname>
+ <contrib>Ανανεώθηκε από τον </contrib>
+ <!-- May 2003 -->
+ </author>
+ </authorgroup>
+ </sect2info>
+
+ <title>Anti-Aliased Γραμματοσειρές</title>
+
+ <indexterm><primary>anti-aliased γραμματοσειρές</primary></indexterm>
+ <indexterm>
+ <primary>γραμματοσειρές</primary>
+ <secondary>anti-aliased</secondary>
+ </indexterm>
+
+ <para>Όλες οι γραμματοσειρές X11 που βρίσκονται στο
+ <filename>/usr/local/lib/X11/fonts/</filename> και το
+ <filename>~/.fonts/</filename> είναι αυτόματα διαθέσιμες για
+ anti-aliasing σε εφαρμογές Xft-aware, συμπεριλαμβανομένων
+ του <application>KDE</application>, <application>GNOME</application>
+ και <application>Firefox</application>.</para>
+
+ <para>Για να ελέγξετε ποίες γραμματοσειρές είναι anti-aliased, ή να
+ ρυθμίσετε τις ιδιότητες του anti-aliasing, δημιουργήστε (ή
+ τροποποιήστε, αν ήδη υπάρχει) το αρχείο
+ <filename>/usr/local/etc/fonts/local.conf</filename>. Μέσω αυτού του
+ αρχείου μπορούν να ρυθμιστούν αρκετά εξειδικευμένα χαρακτηριστικά του
+ συστήματος γραμματοσειρών Xft. Αυτό το τμήμα περιγράφει μόνο μερικές
+ απλές δυνατότητες. Για περισσότερες λεπτομέρειες, δείτε το
+ &man.fonts-conf.5;.</para>
+
+ <indexterm><primary>XML</primary></indexterm>
+
+ <para>Το αρχείο αυτό πρέπει να είναι μορφής XML. Δώστε μεγάλη προσοχή
+ στα πεζά / κεφαλαία, και σιγουρευθείτε ότι όλα τα tags έχουν κλείσει
+ σωστά. Το αρχείο ξεκινά με την συνηθισμένη επικεφαλίδα XML και ένα
+ ορισμό DOCTYPE, και έπειτα ακολουθεί το
+ <literal>&lt;fontconfig&gt;</literal> tag:</para>
+
+ <programlisting>
+ &lt;?xml version="1.0"?&gt;
+ &lt;!DOCTYPE fontconfig SYSTEM "fonts.dtd"&gt;
+ &lt;fontconfig&gt;</programlisting>
+
+ <para>Όπως είπαμε προηγουμένως, όλες οι γραμματοσειρές στο
+ <filename>/usr/local/lib/X11/fonts/</filename> όπως και στο
+ <filename>~/.fonts/</filename> διατίθενται ήδη σε Xft-aware εφαρμογές.
+ Αν θέλετε να προσθέσετε και άλλους καταλόγους εκτός από αυτούς τους
+ δύο, προσθέστε μια γραμμή παρόμοια με αυτή που ακολουθεί στο
+ <filename>/usr/local/etc/fonts/local.conf</filename>:</para>
+
+ <programlisting>&lt;dir&gt;/path/to/my/fonts&lt;/dir&gt;</programlisting>
+
+ <para>Αφού προσθέσετε νέες γραμματοσειρές, και ειδικότερα νέους
+ καταλόγους γραμματοσειρών, πρέπει να εκτελέσετε την ακόλουθη εντολή
+ για να αναδημιουργήσετε την cache γραμματοσειρών:</para>
+
+ <screen>&prompt.root; <userinput>fc-cache -f</userinput></screen>
+
+ <para>Το anti-aliasing κάνει τα άκρα ελαφρώς συγκεχυμένα, κάνοντας έτσι
+ τα πολύ μικρά γράμματα πιο αναγνώσιμα, και αφαιρεί τις
+ <quote>κλίμακες</quote> (σκαλοπάτια) από τα μεγάλα γράμματα, αλλά
+ μπορεί να προκαλέσει ενοχλήσεις στα μάτια αν χρησιμοποιηθεί σε
+ κανονικά μεγέθη. Για να εξαιρέσετε από το anti-aliasing μεγέθη
+ γραμματοσειρών μικρότερα από 14 point, προσθέστε αυτές τις
+ γραμμές:</para>
+
+ <programlisting> &lt;match target="font"&gt;
+ &lt;test name="size" compare="less"&gt;
+ &lt;double&gt;14&lt;/double&gt;
+ &lt;/test&gt;
+ &lt;edit name="antialias" mode="assign"&gt;
+ &lt;bool&gt;false&lt;/bool&gt;
+ &lt;/edit&gt;
+ &lt;/match&gt;
+ &lt;match target="font"&gt;
+ &lt;test name="pixelsize" compare="less" qual="any"&gt;
+ &lt;double&gt;14&lt;/double&gt;
+ &lt;/test&gt;
+ &lt;edit mode="assign" name="antialias"&gt;
+ &lt;bool&gt;false&lt;/bool&gt;
+ &lt;/edit&gt;
+ &lt;/match&gt;</programlisting>
+
+ <indexterm>
+ <primary>γραμματοσειρές</primary>
+ <secondary>spacing</secondary>
+ </indexterm>
+
+ <para>Το spacing (διαστήματα) σε μερικές monospaced γραμματοσειρές
+ μπορεί επίσης να είναι ακατάλληλο όταν χρησιμοποιείται anti-aliasing.
+ Αυτό φαίνεται να αποτελεί ιδιαίτερο πρόβλημα με το
+ <application>KDE</application>. Μια διόρθωση για αυτό, είναι να
+ επιβάλλετε στο spacing την τιμή 100 για αυτές τις γραμματοσειρές.
+ Προσθέστε τις ακόλουθες γραμμές:</para>
+
+ <programlisting> &lt;match target="pattern" name="family"&gt;
+ &lt;test qual="any" name="family"&gt;
+ &lt;string&gt;fixed&lt;/string&gt;
+ &lt;/test&gt;
+ &lt;edit name="family" mode="assign"&gt;
+ &lt;string&gt;mono&lt;/string&gt;
+ &lt;/edit&gt;
+ &lt;/match&gt;
+ &lt;match target="pattern" name="family"&gt;
+ &lt;test qual="any" name="family"&gt;
+ &lt;string&gt;console&lt;/string&gt;
+ &lt;/test&gt;
+ &lt;edit name="family" mode="assign"&gt;
+ &lt;string&gt;mono&lt;/string&gt;
+ &lt;/edit&gt;
+ &lt;/match&gt;</programlisting>
+
+ <para>(αυτό μετονομάζει τα άλλα κοινά ονόματα των fixed γραμματοσειρών
+ ως <literal>"mono"</literal>), και έπειτα προσθέστε:</para>
+
+ <programlisting> &lt;match target="pattern" name="family"&gt;
+ &lt;test qual="any" name="family"&gt;
+ &lt;string&gt;mono&lt;/string&gt;
+ &lt;/test&gt;
+ &lt;edit name="spacing" mode="assign"&gt;
+ &lt;int&gt;100&lt;/int&gt;
+ &lt;/edit&gt;
+ &lt;/match&gt; </programlisting>
+
+ <para>Συγκεκριμένες γραμματοσειρές, όπως οι Helvetica, μπορεί να
+ εμφανίζουν πρόβλημα όταν είναι anti-aliased. Το πρόβλημα συχνά
+ εκδηλώνεται ως μία γραμματοσειρά κομμένη κάθετα στην μέση. Στην
+ χειρότερη περίπτωση, μπορεί να κάνει κάποιες εφαρμογές να
+ καταρρεύσουν. Για να το αποφύγετε αυτό, μπορείτε να προσθέσετε το
+ ακόλουθο στο <filename>local.conf</filename>:</para>
+
+ <programlisting> &lt;match target="pattern" name="family"&gt;
+ &lt;test qual="any" name="family"&gt;
+ &lt;string&gt;Helvetica&lt;/string&gt;
+ &lt;/test&gt;
+ &lt;edit name="family" mode="assign"&gt;
+ &lt;string&gt;sans-serif&lt;/string&gt;
+ &lt;/edit&gt;
+ &lt;/match&gt; </programlisting>
+
+ <para>Μόλις τελειώσετε την μετατροπή του
+ <filename>local.conf</filename> σιγουρευθείτε ότι κλείσατε το αρχείο
+ με το <literal>&lt;/fontconfig&gt;</literal> tag. Αν δεν το κάνετε,
+ οι αλλαγές σας θα αγνοηθούν.</para>
+
+ <para>Τέλος, οι χρήστες μπορούν να προσθέσουν τις δικές τους ρυθμίσεις
+ μέσω των προσωπικών τους αρχείων
+ <filename>.fonts.conf</filename>. Για να γίνει αυτό, κάθε χρήστης
+ πρέπει απλώς να δημιουργήσει ένα <filename>~/.fonts.conf</filename>.
+ Αυτό το αρχείο πρέπει να είναι επίσης XML μορφής.</para>
+
+ <indexterm><primary>LCD οθόνη</primary></indexterm>
+ <indexterm>
+ <primary>γραμματοσειρές</primary>
+ <secondary>LCD screen</secondary>
+ </indexterm>
+
+ <para>Κάτι τελευταίο: σε μία LCD οθόνη, μπορεί να είναι επιθυμητός
+ ο δειγματισμός sub-pixel. Ο δειγματισμός χειρίζεται χωριστά τα
+ (οριζόντια διαχωρισμένα) κόκκινα, πράσινα και μπλε στοιχεία ώστε να
+ βελτιώσει την οριζόντια ανάλυση. Τα αποτελέσματα μπορεί να είναι
+ δραματικά καλύτερα. Για να τον ενεργοποιήσετε, προσθέστε την
+ παρακάτω γραμμή κάπου στο αρχείο
+ <filename>local.conf</filename>:</para>
+
+ <programlisting>
+ &lt;match target="font"&gt;
+ &lt;test qual="all" name="rgba"&gt;
+ &lt;const&gt;unknown&lt;/const&gt;
+ &lt;/test&gt;
+ &lt;edit name="rgba" mode="assign"&gt;
+ &lt;const&gt;rgb&lt;/const&gt;
+ &lt;/edit&gt;
+ &lt;/match&gt;
+ </programlisting>
+
+ <note>
+ <para>Ανάλογα με τον τύπο της οθόνης, το <literal>rgb</literal>
+ μπορεί να χρειαστεί να αλλάξει σε <literal>bgr</literal>,
+ <literal>vrgb</literal> ή <literal>vbgr</literal>:
+ πειραματιστείτε και δείτε ποίο λειτουργεί καλύτερα.</para>
+ </note>
+ </sect2>
+ </sect1>
+
+ <sect1 id="x-xdm">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Seth</firstname>
+ <surname>Kingsley</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Ο X Display Manager</title>
+
+ <sect2>
+ <title>Εισαγωγή</title>
+
+ <indexterm><primary>X Display Manager</primary></indexterm>
+ <para>Ο X Display Manager (<application>XDM</application>) είναι
+ ένα προαιρετικό μέρος του συστήματος X Windows που χρησιμοποιείται
+ για διαχείριση συνδέσεων (logins). Αυτό είναι χρήσιμο σε πολλές
+ περιπτώσεις, όπως σε απλά <quote>X Terminals</quote>, σε
+ desktop μηχανήματα, καθώς και σε διακομιστές μεγάλων δικτύων.
+ Αφού το σύστημα X Windows είναι ανεξάρτητο πρωτοκόλλων και δικτύων,
+ υπάρχει μεγάλο εύρος πιθανών ρυθμίσεων
+ για την λειτουργία X πελατών και διακομιστών σε διαφορετικά
+ μηχανήματα συνδεδεμένα σε ένα δίκτυο. Ο
+ <application>XDM</application> παρέχει ένα γραφικό περιβάλλον για
+ την επιλογή του διακομιστή με τον οποίο θα γίνει η σύνδεση, και για
+ την είσοδο πληροφοριών πιστοποίησης όπως του ονόματος χρήστη και του
+ κωδικού πρόσβασης.</para>
+
+ <para>Σκεφθείτε τον <application>XDM</application> ως μια εφαρμογή που
+ παρέχει τις ίδιες δυνατότητες στον χρήστη με το εργαλείο
+ &man.getty.8; (δείτε το <xref linkend="term-config"> για
+ λεπτομέρειες). Το XDM εκτελεί συνδέσεις (logins) στον διακομιστή
+ και έπειτα εκτελεί ένα διαχειριστή συνεδρίας (session manager,
+ συνήθως έναν X διαχειριστή παραθύρων, window manager) για λογαριασμό
+ του χρήστη. Ο <application>XDM</application> έπειτα περιμένει να
+ τερματίσει αυτό το πρόγραμμα, που σηματοδοτεί ότι ο χρήστης τελείωσε
+ και πρέπει να αποσυνδεθεί. Σε αυτό το σημείο,
+ ο <application>XDM</application> μπορεί να εμφανίσει ξανά την οθόνη
+ εισόδου (login) και την οθόνη επιλογής γραφικής σύνδεσης ώστε να
+ συνδεθεί ένας άλλος χρήστης.</para>
+ </sect2>
+
+ <sect2>
+ <title>Χρήση του XDM</title>
+
+ <para>Για να ξεκινήσετε να χρησιμοποιείτε το
+ <application>XDM</application>, εγκαταστήστε το port <filename
+ role="package">x11/xdm</filename> (δεν εγκαθίσταται από προεπιλογή
+ στις πρόσφατες εκδόσεις του <application>&xorg;</application>).
+ Μπορείτε έπειτα να βρείτε τον δαίμονα <application>XDM</application>
+ στο <filename>/usr/local/bin/xdm</filename>. Αυτό το πρόγραμμα
+ μπορεί να εκτελεστεί οποιαδήποτε στιγμή ως <username>root</username>
+ και θα ξεκινήσει να διαχειρίζεται την οθόνη του X στο τοπικό
+ μηχάνημα. Αν ο <application>XDM</application> πρέπει να εκτελείται
+ κάθε φορά που εκκινείται το μηχάνημα, ένας βολικός τρόπος είναι η
+ προσθήκη μιας γραμμής στο <filename>/etc/ttys</filename>. Για
+ περισσότερες πληροφορίες σχετικά με την μορφή και την χρήση αυτού του
+ αρχείου, δείτε το <xref linkend="term-etcttys">. Υπάρχει μία γραμμή
+ στο αρχικό <filename>/etc/ttys</filename> αρχείο για την εκτέλεση του
+ <application>XDM</application> σε ένα εικονικό τερματικό:</para>
+
+ <screen>ttyv8 "/usr/local/bin/xdm -nodaemon" xterm off secure</screen>
+
+ <para>Αρχικά αυτή η λειτουργία είναι απενεργοποιημένη &mdash; για να
+ την ενεργοποιήσετε αλλάξτε το πεδίο 5 από <literal>off</literal> σε
+ <literal>on</literal> και επαννεκίνηστε το &man.init.8;
+ χρησιμοποιώντας τις οδηγίες του <xref linkend="term-hup">. Το πρώτο
+ πεδίο, το όνομα του τερματικού που θα διαχειρίζεται το πρόγραμμα,
+ είναι το <literal>ttyv8</literal>. Αυτό σημαίνει ότι ο
+ <application>XDM</application> θα εκτελείται στο 9ο
+ εικονικό τερματικό.</para>
+ </sect2>
+
+ <sect2>
+ <title>Ρύθμιση του XDM</title>
+
+ <para>Ο κατάλογος ρυθμίσεων του <application>XDM</application>
+ βρίσκεται στο <filename>/usr/local/lib/X11/xdm</filename>. Σε αυτόν
+ τον κατάλογο υπάρχουν πολλά αρχεία που χρησιμοποιούνται για να
+ αλλάξουν την συμπεριφορά και εμφάνιση του
+ <application>XDM</application>. Τυπικά, θα βρείτε τα παρακάτω
+ αρχεία:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Αρχείο</entry>
+ <entry>Περιγραφή</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename>Xaccess</filename></entry>
+ <entry>Κανόνες πιστοποίησης πελατών.</entry>
+ </row>
+
+ <row>
+ <entry><filename>Xresources</filename></entry>
+ <entry>Προκαθορισμένες τιμές X resource.</entry>
+ </row>
+
+ <row>
+ <entry><filename>Xservers</filename></entry>
+ <entry>Λίστα απομακρυσμένων και τοπικών οθονών (Χ displays)
+ στις οποίες θα γίνεται διαχείριση.</entry>
+ </row>
+
+ <row>
+ <entry><filename>Xsession</filename></entry>
+ <entry>Προεπιλεγμένο script συνόδων για logins.</entry>
+ </row>
+
+ <row>
+ <entry><filename>Xsetup_</filename>*</entry>
+ <entry>Script για την εκτέλεση εντολών πριν την εμφάνιση του
+ περιβάλλοντος σύνδεσης (login screen).</entry>
+ </row>
+
+ <row>
+ <entry><filename>xdm-config</filename></entry>
+ <entry>Ρυθμίσεις για όλες τις απεικονίσεις (displays) που
+ εκτελούνται σε αυτό το μηχάνημα.</entry>
+ </row>
+
+ <row>
+ <entry><filename>xdm-errors</filename></entry>
+ <entry>Λάθη που δημιουργούνται από το πρόγραμμα.</entry>
+ </row>
+
+ <row>
+ <entry><filename>xdm-pid</filename></entry>
+ <entry>Το ID της διεργασίας του τρέχοντος XDM.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Επίσης σε αυτόν τον κατάλογο υπάρχουν μερικά scripts και
+ προγράμματα που χρησιμοποιούνται για να ρυθμίσουν την επιφάνεια
+ εργασίας όταν εκτελείται το <application>XDM</application>.
+ Θα περιγράψουμε περιληπτικά το σκοπό καθενός από αυτά τα αρχεία.
+ Η ακριβής σύνταξη και χρήση όλων αυτών των αρχείων περιγράφεται
+ στο &man.xdm.1;.</para>
+
+ <para>Η προκαθορισμένη ρύθμιση είναι ένα απλό ορθογώνιο παράθυρο
+ σύνδεσης με το όνομα του μηχανήματος να φαίνεται στην κορυφή με
+ μεγάλα γράμματα και τις προτροπές <quote>Login:</quote> και
+ <quote>Password:</quote> από κάτω. Αυτό είναι ένα καλό σημείο
+ εκκίνησης για να αλλάξετε την εμφάνιση του
+ <application>XDM</application>.</para>
+
+ <sect3>
+ <title>Xaccess</title>
+
+ <para>Το πρωτόκολλο για σύνδεση με απεικονίσεις που ελέγχονται από το
+ <application>XDM</application> ονομάζεται X Display Manager
+ Connection Protocol (XDMCP). Το αρχείο αυτό είναι ένα σύνολο
+ κανόνων για των έλεγχο των συνδέσεων XDMCP από απομακρυσμένα
+ μηχανήματα. Αγνοείται, εκτός και αν το
+ <filename>xdm-config</filename> έχει ρυθμιστεί ώστε να δέχεται
+ εισερχόμενες συνδέσεις. Η προεπιλογή είναι να μην επιτρέπεται σε
+ κανένα πελάτη να συνδεθεί.</para>
+ </sect3>
+
+ <sect3>
+ <title>Xresources</title>
+
+ <para>Πρόκειται για το αρχείο προκαθορισμένων τιμών για τις εφαρμογές
+ εμφάνισης του παράθυρου σύνδεσης (login) και επιλογέα απεικόνισης
+ (display chooser). Μέσα από αυτό μπορεί να τροποποιηθεί η εμφάνιση
+ του προγράμματος login. Η μορφή του είναι ίδια με το αρχείο
+ app-defaults που περιγράφεται στην τεκμηρίωση του X11.</para>
+ </sect3>
+
+ <sect3>
+ <title>Xservers</title>
+
+ <para>Αυτή είναι μια λίστα των απομακρυσμένων σταθμών που πρέπει να
+ εμφανίζονται ως επιλογές στο πρόγραμμα (chooser).</para>
+ </sect3>
+
+ <sect3>
+ <title>Xsession</title>
+
+ <para>Αυτό είναι το προκαθορισμένο session script που εκτελεί το
+ <application>XDM</application> μετά τη σύνδεση κάποιου χρήστη.
+ Κανονικά, κάθε χρήστης θα έχει ένα τροποποιημένο, δικό του, session
+ script στο <filename>~/.xsession</filename> που θα παρακάμπτει αυτό
+ το script.</para>
+ </sect3>
+
+ <sect3>
+ <title>Xsetup_*</title>
+
+ <para>Τα αρχεία αυτά εκτελούνται αυτόματα πριν την εμφάνιση των
+ παραθύρων επιλογής ή σύνδεσης. Υπάρχει ένα script για κάθε display
+ που χρησιμοποιείται, που ονομάζεται <filename>Xsetup_</filename> με
+ το νούμερο του display στο τέλος (για παράδειγμα
+ <filename>Xsetup_0</filename>). Κανονικά αυτά τα scripts θα
+ εκτελούν ένα ή δυο προγράμματα στο παρασκήνιο όπως π.χ. το
+ <command>xconsole</command>.</para>
+ </sect3>
+
+ <sect3>
+ <title>xdm-config</title>
+
+ <para>Το αρχείο αυτό περιέχει ρυθμίσεις στην μορφή των app-defaults,
+ που εφαρμόζονται σε κάθε display που διαχειρίζεται η συγκεκριμένη
+ εγκατάσταση.</para>
+ </sect3>
+
+ <sect3>
+ <title>xdm-errors</title>
+
+ <para>Το αρχείο αυτό περιέχει την έξοδο των διακομιστών X που
+ προσπαθεί να εκτελέσει το <application>XDM</application>. Αν ένα
+ display που προσπαθεί να εκκινήσει o <application>XDM</application>
+ κολλήσει για κάποιο λόγο, καλό είναι να αναζητήσετε εδώ τυχόν
+ μηνύματα σφαλμάτων. Τα μηνύματα αυτά καταγράφονται και στα αρχεία
+ χρηστών <filename>~/.xsession-errors</filename>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2>
+ <title>Διατηρώντας έναν Διακομιστή Απομακρυσμένων Συνδέσεων</title>
+
+ <para>Για να συνδέονται και άλλοι πελάτες στον διακομιστή οθόνης,
+ τροποποιήστε τους κανόνες ελέγχου πρόσβασης, και ενεργοποιήστε τις
+ εισερχόμενες συνδέσεις. Τα παραπάνω είναι, από προεπιλογή ρυθμισμένα
+ σε συντηρητικές τιμές. Για να κάνετε το
+ <application>XDM</application> να δέχεται συνδέσεις, αρχικά μετατρέψτε
+ σε σχόλιο την παρακάτω γραμμή στο αρχείο
+ <filename>xdm-config</filename>:</para>
+
+ <screen>! SECURITY: do not listen for XDMCP or Chooser requests
+! Comment out this line if you want to manage X terminals with xdm
+DisplayManager.requestPort: 0</screen>
+
+ <para>και μετά επανεκκινήστε τον <application>XDM</application>.
+ Να έχετε υπόψιν σας ότι τα σχόλια στα αρχεία
+ app-defaults ξεκινούν με τον χαρακτήρα <quote>!</quote>,
+ και όχι τον συνήθη <quote>#</quote>. Μπορεί να επιθυμείτε πιο
+ αυστηρούς κανόνες ελέγχου πρόσβασης. Δείτε τα παραδείγματα
+ στο <filename>Xaccess</filename>, και συμβουλευθείτε τη σελίδα manual
+ του &man.xdm.1;.</para>
+ </sect2>
+
+ <sect2>
+ <title>Αντικαταστάτες του XDM</title>
+
+ <para>Υπάρχουν αρκετοί αντικαταστάτες για το πρόγραμμα
+ <application>XDM</application>. Ένας από αυτούς,
+ ο <application>kdm</application> (έρχεται με το
+ <application>KDE</application>) αναλύεται αργότερα σε αυτό το
+ κεφάλαιο. Ο <application>kdm</application> display manager
+ προσφέρει πολλά προτερήματα στα γραφικά και διακοσμητικά στοιχεία,
+ όπως επίσης και την δυνατότητα να επιλέγουν οι χρήστες τον
+ επιθυμητό διαχειριστή παραθύρων την στιγμή της σύνδεσης.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="x11-wm">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Valentino</firstname>
+ <surname>Vaschetto</surname>
+ <contrib>Συνεισφορά του </contrib>
+ </author>
+ <!-- June 2001 -->
+ </authorgroup>
+ </sect1info>
+
+ <title>Γραφικά Περιβάλλοντα</title>
+
+ <para>Αυτό το τμήμα περιγράφει μερικά γραφικά περιβάλλοντα που διατίθενται
+ για το X στο &os;. Η έννοια <quote>γραφικό περιβάλλον</quote>
+ μπορεί να σημαίνει οτιδήποτε, από έναν απλό διαχειριστή παραθύρων μέχρι
+ ένα ολοκληρωμένα πακέτο desktop εφαρμογών, όπως το
+ <application>KDE</application> ή το
+ <application>GNOME</application>.</para>
+
+ <sect2 id="x11-wm-gnome">
+ <title>GNOME</title>
+
+ <sect3 id="x11-wm-gnome-about">
+ <title>Σχετικά με το GNOME</title>
+
+ <indexterm><primary>GNOME</primary></indexterm>
+
+ <para>Το <application>GNOME</application> είναι ένα φιλικό προς τον
+ χρήστη γραφικό περιβάλλον που επιτρέπει στους χρήστες να
+ χρησιμοποιούν και να ρυθμίζουν εύκολα τους υπολογιστές τους. Το
+ <application>GNOME</application> διαθέτει ένα panel (για
+ την εκκίνηση εφαρμογών και την προβολή κατάστασης), επιφάνεια
+ εργασίας (όπου εμφανίζονται δεδομένα και εφαρμογές), ένα πλήθος από
+ διαδεδομένα εργαλεία και εφαρμογές, καθώς και ένα σύνολο
+ τυποποιήσεων που επιτρέπει στις εφαρμογές να συνεργάζονται μεταξύ
+ τους και να δείχνουν ένα συνεπές περιβάλλον εργασίας. Οι χρήστες
+ άλλων λειτουργικών συστημάτων ή περιβάλλoντων θα αισθάνονται σαν
+ στο σπίτι τους χρησιμοποιώντας το πανίσχυρο γραφικό περιβάλλον που
+ παρέχει το <application>GNOME</application>. Περισσότερες
+ πληροφορίες σχετικά με το <application>GNOME</application> στο
+ &os; μπορούν να βρεθούν στο διαδικτυακό τόπο του <ulink
+ url="http://www.FreeBSD.org/gnome">&os; GNOME Project</ulink>. Η
+ τοποθεσία περιέχει επίσης και αναλυτικά FAQs σχετικά με την
+ εγκατάσταση, την ρύθμιση, και την διαχείριση του
+ <application>GNOME</application>.</para>
+ </sect3>
+
+ <sect3 id="x11-wm-gnome-install">
+ <title>Εγκατάσταση του GNOME</title>
+
+ <para>Το <application>GNOME</application> μπορεί να εγκατασταθεί
+ εύκολα από πακέτα ή από την Συλλογή των Ports:</para>
+
+ <para>Για να εγκαταστήσετε το έτοιμο πακέτο του
+ <application>GNOME</application> από το δίκτυο, απλώς
+ πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r gnome2</userinput></screen>
+
+ <para>Για να μεταγλωττίσετε το <application>GNOME</application> από
+ τον πηγαίο κώδικα, χρησιμοποιήστε την Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11/gnome2</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Το <application>GNOME</application> χρειάζεται το σύστημα
+ αρχείων <filename>/proc</filename> για να λειτουργήσει σωστά.
+ Προσθέστε τη γραμμή</para>
+
+ <programlisting>proc /proc procfs rw 0 0</programlisting>
+
+ <para>στο αρχείο <filename>/etc/fstab</filename> για να γίνεται
+ αυτόματα προσάρτηση του &man.procfs.5; κατά την εκκίνηση του
+ συστήματος.</para>
+
+ <para>Μόλις εγκατασταθεί το <application>GNOME</application>, θα
+ πρέπει να ρυθμιστεί ο διακομιστής X ώστε να εκκινεί το
+ <application>GNOME</application> αντί για τον προκαθορισμένο
+ διαχειριστή παραθύρων.</para>
+
+ <para>Ο ευκολότερος τρόπος για να εκκινήσετε το
+ <application>GNOME</application> είναι με το
+ <application>GDM</application>, τον GNOME Display Manager.
+ Το <application>GDM</application> εγκαθίσταται ως μέρος
+ του <application>GNOME</application>, αλλά είναι ανενεργό
+ αρχικά. Μπορεί να ενεργοποιηθεί με την προσθήκη της
+ γραμμής</para>
+
+ <programlisting>gdm_enable="YES"</programlisting>
+
+ <para>στο αρχείο
+ <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Μόλις κάνετε επανεκκίνηση,
+ το <application>GDM</application> θα ξεκινήσει
+ αυτόματα.</para>
+
+ <para>Επιπρόσθετα, είναι χρήσιμο να ξεκινούν όλες οι υπηρεσίες
+ τις οποίες απαιτεί το <application>GNOME</application>
+ ταυτόχρονα με την εκκίνηση του <application>GDM</application>.
+ Για να γίνεται αυτό προσθέστε τη γραμμή</para>
+
+ <programlisting>gnome_enable="YES"</programlisting>
+
+ <para>στο αρχείο <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Το <application>GNOME</application> μπορεί επίσης να ξεκινήσει
+ από την γραμμή εντολών ρυθμίζοντας κατάλληλα το αρχείο
+ <filename>.xinitrc</filename>.
+ Αν υπάρχει ήδη το αρχείο <filename>.xinitrc</filename>, απλώς
+ αντικαταστήστε την γραμμή που εκκινεί τον τρέχοντα διαχειριστή
+ παραθύρων με μία που να εκκινεί το
+ <application>/usr/local/bin/gnome-session</application>.
+ Αν δεν θέλετε να κάνετε περισσότερες ρυθμίσεις στο αρχείο,
+ χρειάζεται απλά να γράψετε:</para>
+
+ <screen>&prompt.user; <userinput>echo "/usr/local/bin/gnome-session" &gt; ~/.xinitrc</userinput></screen>
+
+ <para>Έπειτα, πληκτρολογήστε <command>startx</command>, και θα
+ ξεκινήσει το γραφικό περιβάλλον του
+ <application>GNOME</application></para>
+
+ <note><para>Αν χρησιμοποιείτε κάποιο παλαιότερο display manager,
+ όπως το <application>XDM</application>, το παραπάνω δεν θα
+ λειτουργήσει. Στην περίπτωση αυτή, δημιουργήστε ένα εκτελέσιμο
+ αρχείο <filename>.xsession</filename> το οποίο να περιέχει την ίδια
+ εντολή. Τροποποιήστε το αρχείο <filename>.xsession</filename>
+ και αντικαταστήστε την εντολή του τρέχοντος διαχειριστή παραθύρων
+ με το
+ <application>/usr/local/bin/gnome-session</application>:</para>
+ </note>
+
+ <screen>&prompt.user; <userinput>echo "#!/bin/sh" &gt; ~/.xsession</userinput>
+&prompt.user; <userinput>echo "/usr/local/bin/gnome-session" &gt;&gt; ~/.xsession</userinput>
+&prompt.user; <userinput>chmod +x ~/.xsession</userinput></screen>
+
+ <para>Άλλη μια επιλογή είναι να ρυθμιστεί ο display manager ώστε να
+ επιτρέπει την επιλογή του διαχειριστή παραθύρων κατά την σύνδεση.
+ Το τμήμα <link linkend="x11-wm-kde-details">Λεπτομέρειες KDE</link>
+ εξηγεί πως μπορεί να γίνει αυτό μέσω του
+ <application>kdm</application>, του display manager του
+ <application>KDE</application>.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="x11-wm-kde">
+ <title>KDE</title>
+
+ <indexterm><primary>KDE</primary></indexterm>
+
+ <sect3 id="x11-wm-kde-about">
+ <title>Σχετικά με το KDE</title>
+
+ <para>Το <application>KDE</application> είναι ένα σύγχρονο, εύκολο στη
+ χρήση, γραφικό περιβάλλον. Μερικά πράγματα που προσφέρει το
+ <application>KDE</application> στον χρήστη είναι:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ένα όμορφο σύγχρονο περιβάλλον</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα περιβάλλον με πλήρη δικτυακή διαφάνεια</para>
+ </listitem>
+
+ <listitem>
+ <para>Ένα ενσωματωμένο σύστημα βοήθειας που επιτρέπει εύκολη,
+ συνεπή πρόσβαση στην βοήθεια για την χρήση του
+ <application>KDE</application> και των εφαρμογών
+ του</para>
+ </listitem>
+
+ <listitem>
+ <para>Συνεπής εμφάνιση και συμπεριφορά όλων των εφαρμογών του
+ <application>KDE</application></para>
+ </listitem>
+
+ <listitem>
+ <para>Τυποποιημένα menu και γραμμές εργαλείων (toolbars),
+ συνδυασμοί πλήκτρων, χρωματικοί συνδυασμοί, κλπ.</para>
+ </listitem>
+
+ <listitem>
+ <para>Διεθνείς ρυθμίσεις: το <application>KDE</application>
+ διατίθεται σε περισσότερες από 40 γλώσσες</para>
+ </listitem>
+
+ <listitem>
+ <para>Κεντρικό και συνεπές σύστημα ρυθμίσεων βασισμένο σε
+ διαλόγους</para>
+ </listitem>
+
+ <listitem>
+ <para>Μεγάλο αριθμό χρήσιμων εφαρμογών, σχεδιασμένων ειδικά για το
+ <application>KDE</application></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Το <application>KDE</application> συνοδεύεται από έναν
+ περιηγητή (browser) που ονομάζεται
+ <application>Konqueror</application>, και ανταγωνίζεται σοβαρά
+ τους άλλους περιηγητές των συστημάτων &unix;.
+ Περισσότερες πληροφορίες για το <application>KDE</application>
+ μπορείτε να βρείτε στο <ulink url="http://www.kde.org/">KDE
+ website</ulink>. Για πληροφορίες σχετικές με το &os;
+ και το <application>KDE</application>, συμβουλευθείτε τον
+ διαδικτυακό τόπο του
+ <ulink url="http://freebsd.kde.org/">FreeBSD-KDE team</ulink>.</para>
+ <para>Υπάρχουν διαθέσιμες δύο εκδόσεις του
+ <application>KDE</application> για το &os;. Η Έκδοση
+ 3, κυκλοφορεί αρκετό καιρό και θεωρείται γενικά ώριμη. Στη Συλλογή
+ των Ports θα βρείτε επίσης την Έκδοση 4 από τη νεότερη γενιά.
+ Οι δύο αυτές εκδόσεις μπορούν μάλιστα να συνυπάρχουν στον ίδιο
+ υπολογιστή.</para>
+ </sect3>
+
+ <sect3 id="x11-wm-kde-install">
+ <title>Εγκατάσταση του KDE</title>
+
+ <para>Όπως και με το <application>GNOME</application> ή κάθε
+ άλλο γραφικό περιβάλλον, το λογισμικό μπορεί να εγκατασταθεί εύκολα
+ μέσω πακέτων ή από την Συλλογή των Ports:</para>
+
+ <para>Για να εγκαταστήσετε το <application>KDE3</application> μέσω
+ πακέτων από το δίκτυο, απλώς πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r kde</userinput></screen>
+
+ <para>Για να εγκαταστήσετε το <application>KDE4</application> μέσω
+ πακέτων από το δίκτυο, απλώς πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r kde4</userinput></screen>
+
+ <para>Το &man.pkg.add.1; θα ανακτήσει αυτόματα την τελευταία έκδοση
+ της εφαρμογής.</para>
+
+ <para>Για να μεταγλωττίσετε το <application>KDE3</application> από τον
+ πηγαίο κώδικα, χρησιμοποιήστε τη Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11/kde3</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Για να μεταγλωττίσετε το <application>KDE4</application> από τον
+ πηγαίο κώδικα, χρησιμοποιήστε τη Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11/kde4</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Αφού εγκατασταθεί το <application>KDE</application>,
+ θα πρέπει να ρυθμιστεί ο διακομιστής X ώστε να το εκκινεί αντί για
+ τον προκαθορισμένο διαχειριστή παραθύρων. Αυτό γίνεται με την
+ αλλαγή του αρχείου <filename>.xinitrc</filename>:</para>
+
+ <para>Για το <application>KDE3</application>:</para>
+
+ <screen>&prompt.user; <userinput>echo "exec startkde" &gt; ~/.xinitrc</userinput></screen>
+
+ <para>Για το <application>KDE4</application>:</para>
+
+ <screen>&prompt.user; <userinput>echo "exec /usr/local/kde4/bin/startkde" &gt; ~/.xinitrc</userinput></screen>
+
+ <para>Τώρα, όποτε το X Window System εκκινείται μέσω του
+ <command>startx</command>, το γραφικό περιβάλλον θα είναι το
+ <application>KDE</application>.</para>
+
+ <para>Αν χρησιμοποιείτε κάποιο display manager όπως το
+ <application>XDM</application>, η ρύθμιση είναι λίγο
+ διαφορετική. Θα πρέπει αντί για το <filename>.xinitrc</filename> να
+ τροποποιήσετε το <filename>.xsession</filename>. Οδηγίες για το
+ <application>kdm</application> δίνονται αργότερα στο κεφάλαιο
+ αυτό.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="x11-wm-kde-details">
+ <title>Περισσότερες Λεπτομέρειες για το KDE</title>
+
+ <para>Τώρα που το <application>KDE</application> έχει εγκατασταθεί στο
+ σύστημα, μπορείτε να ανακαλύψετε τις περισσότερες λειτουργίες μέσω
+ των σελίδων βοήθειας ή δοκιμάζοντας μενού και επιλογές. Οι χρήστες
+ των &windows; η του &mac; θα αισθάνονται σαν στο σπίτι τους.</para>
+
+ <para>Η καλύτερη βοήθεια για το <application>KDE</application> είναι η
+ on-line τεκμηρίωση. Το <application>KDE</application>
+ συνοδεύεται από τον δικό του περιηγητή,
+ τον <application>Konqueror</application>, πολλές χρήσιμες εφαρμογές,
+ και αναλυτική τεκμηρίωση. Το υπόλοιπο αυτής της ενότητας
+ συζητά τεχνικά θέματα που είναι δύσκολο να ανακαλυφθούν με
+ δοκιμές.</para>
+
+ <sect3 id="x11-wm-kde-kdm">
+ <title>Ο KDE Display Manager</title>
+
+ <indexterm>
+ <primary>KDE</primary>
+ <secondary>display manager</secondary>
+ </indexterm>
+
+ <para>Ο διαχειριστής ενός πολυχρηστικού συστήματος θέλει ενδεχομένως
+ η σύνδεση των χρηστών να γίνεται μέσω γραφικού περιβάλλοντος.
+ Όπως περιγράψαμε πρίν, μπορεί να χρησιμοποιηθεί το
+ <link linkend="x-xdm">XDM</link>. Όμως, το
+ <application>KDE</application> περιέχει μια
+ εναλλακτική επιλογή, το <application>kdm</application>, το οποίο
+ έχει σχεδιαστεί να είναι ποίο ελκυστικό και παρέχει περισσότερες
+ επιλογές κατά τη σύνδεση. Συγκεκριμένα, οι χρήστες μπορούν εύκολα
+ να επιλέξουν (μέσω μενού) ποίο γραφικό περιβάλλον
+ (<application>KDE</application>, <application>GNOME</application>,
+ ή κάποιο άλλο) θα εκτελεστεί μετά την σύνδεση τους.</para>
+
+ <para>Για να ενεργοποιήσετε το <application>kdm</application>, θα
+ πρέπει να επεξεργαστείτε κάποια αρχεία, τα οποία είναι διαφορετικά
+ ανάλογα με την έκδοση του <application>KDE</application> που θα
+ χρησιμοποιήσετε.</para>
+
+ <para>Για το <application>KDE3</application>, θα πρέπει να
+ τροποποιήσετε την εγγραφή για το <literal>ttyv8</literal> στο
+ <filename>/etc/ttys</filename>, όπως φαίνεται παρακάτω:</para>
+
+ <programlisting>ttyv8 "/usr/local/bin/kdm -nodaemon" xterm on secure</programlisting>
+
+ <para>Για το <application>KDE4</application>, θα πρέπει να προσθέσετε
+ τις παρακάτω γραμμές στο <filename>/etc/rc.conf</filename>:</para>
+
+ <programlisting>local_startup="${local_startup} /usr/local/kde4/etc/rc.d"
+kdm4_enable="YES"</programlisting>
+ </sect3>
+ </sect2>
+
+ <sect2 id="x11-wm-xfce">
+ <title>Xfce</title>
+
+ <sect3 id="x11-wm-xfce-about">
+ <title>Σχετικά με το Xfce</title>
+
+ <para>Το <application>Xfce</application> είναι ένα γραφικό περιβάλλον
+ που στηρίζεται στην βιβλιοθήκη GTK+ που χρησιμοποιείται και από το
+ <application>GNOME</application>, αλλά είναι πολύ πιο ελαφρύ και
+ προορίζεται για όσους θέλουν ένα απλό, αποτελεσματικό γραφικό
+ περιβάλλον που είναι εύκολο να χρησιμοποιηθεί και να ρυθμιστεί.
+ Οπτικά, μοιάζει πολύ με το <application>CDE</application>, που
+ συναντάται σε εμπορικά συστήματα &unix;.
+ Μερικά από τα χαρακτηριστικά του <application>Xfce</application>
+ είναι:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ένα απλό, εύκολο στην χρήση γραφικό περιβάλλον</para>
+ </listitem>
+
+ <listitem>
+ <para>Πλήρως παραμετροποιήσιμο με το ποντίκι, με drag and
+ drop, κλπ.</para>
+ </listitem>
+
+ <listitem>
+ <para>Κεντρικό panel παρόμοιο με του
+ <application>CDE</application>, με μενού, μικρο-εφαρμογές και
+ πλήκτρα εκκίνησης εφαρμογών</para>
+ </listitem>
+
+ <listitem>
+ <para>Ολοκληρωμένος διαχειριστής παραθύρων, διαχειριστής
+ αρχείων, διαχειριστής ήχου, συμβατότητα με το
+ <application>GNOME</application>, και άλλα</para>
+ </listitem>
+
+ <listitem>
+ <para>Δυνατότητα χρήσης θεμάτων (themes, αφού χρησιμοποιεί
+ το GTK+)</para>
+ </listitem>
+
+ <listitem>
+ <para>Γρήγορο, ελαφρύ και αποτελεσματικό: ιδανικό για
+ παλαιότερα/πιο αργά μηχανήματα ή μηχανήματα με λίγη
+ μνήμη</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Περισσότερες πληροφορίες για το <application>Xfce</application>
+ μπορείτε να βρείτε στη <ulink url="http://www.xfce.org/">δικτυακή
+ τοποθεσία του Xfce</ulink>.</para>
+ </sect3>
+
+ <sect3 id="x11-wm-xfce-install">
+ <title>Εγκατάσταση του Xfce</title>
+
+ <para>Υπάρχει (την ώρα που γράφονται αυτές οι γραμμές) έτοιμο πακέτο
+ για το <application>Xfce</application>. Για να το εγκαταστήσετε,
+ απλώς πληκτρολογήστε:</para>
+
+ <screen>&prompt.root; <userinput>pkg_add -r xfce4</userinput></screen>
+
+ <para>Εναλλακτικά, για να το μεταγλωττίσετε από τον πηγαίο κώδικα,
+ χρησιμοποιήστε την Συλλογή των Ports:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/x11-wm/xfce4</userinput>
+&prompt.root; <userinput>make install clean</userinput></screen>
+
+ <para>Τώρα, πείτε στον διακομιστή X να εκκινήσει το
+ <application>Xfce</application> την επόμενη φορά που θα γίνει
+ εκκίνηση του γραφικού περιβάλλοντος. Απλώς πληκτρολογήστε το
+ παρακάτω:</para>
+
+ <screen>&prompt.user; <userinput>echo "/usr/local/bin/startxfce4" &gt; ~/.xinitrc</userinput></screen>
+
+ <para>Την επόμενη φορά που θα εκκινήσετε το Χ, θα εμφανιστεί το
+ <application>Xfce</application>. Όπως και προηγουμένως, αν
+ χρησιμοποιείτε κάποιο display manager όπως το
+ <application>XDM</application>, δημιουργήστε ένα αρχείο
+ <filename>.xsession</filename>, όπως περιγράφεται στην παράγραφο
+ του <link linkend="x11-wm-gnome">GNOME</link>, αλλά
+ με την εντολή <filename>/usr/local/bin/startxfce4</filename>,
+ ή ρυθμίστε τον display manager να επιτρέπει
+ την επιλογή γραφικού περιβάλλοντος, όπως περιγράφεται στην παράγραφο
+ σχετικά με το <link linkend="x11-wm-kde-kdm">kdm</link>.</para>
+ </sect3>
+ </sect2>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ coding: iso-8859-7
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->